@pie-element/match-list 7.1.1 → 7.1.2-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/controller.js +1 -0
  2. package/dist/browser/controller/index.js +201 -0
  3. package/dist/browser/controller/index.js.map +1 -0
  4. package/dist/browser/delivery/index.js +13055 -0
  5. package/dist/browser/delivery/index.js.map +1 -0
  6. package/dist/browser/dist-BT3FUErB.js +274 -0
  7. package/dist/browser/dist-BT3FUErB.js.map +1 -0
  8. package/dist/controller/defaults.d.ts +17 -0
  9. package/dist/controller/defaults.js +9 -0
  10. package/dist/controller/index.d.ts +38 -0
  11. package/dist/controller/index.js +105 -0
  12. package/dist/delivery/answer-area.d.ts +27 -0
  13. package/dist/delivery/answer-area.js +92 -0
  14. package/dist/delivery/answer.d.ts +40 -0
  15. package/dist/delivery/answer.js +176 -0
  16. package/dist/delivery/arrow.d.ts +17 -0
  17. package/dist/delivery/arrow.js +35 -0
  18. package/dist/delivery/choices-list.d.ts +21 -0
  19. package/dist/delivery/choices-list.js +35 -0
  20. package/dist/delivery/droppable-placeholder.d.ts +24 -0
  21. package/dist/delivery/droppable-placeholder.js +42 -0
  22. package/dist/delivery/index.d.ts +21 -0
  23. package/dist/delivery/index.js +49 -0
  24. package/dist/delivery/main.d.ts +26 -0
  25. package/dist/delivery/main.js +147 -0
  26. package/dist/index.d.ts +1 -0
  27. package/dist/index.iife.d.ts +8 -0
  28. package/dist/index.iife.js +152 -0
  29. package/dist/index.js +2 -0
  30. package/dist/runtime-support.d.ts +12 -0
  31. package/dist/runtime-support.js +12 -0
  32. package/package.json +70 -22
  33. package/CHANGELOG.json +0 -572
  34. package/CHANGELOG.md +0 -1489
  35. package/LICENSE.md +0 -5
  36. package/README.md +0 -1
  37. package/controller/CHANGELOG.json +0 -242
  38. package/controller/CHANGELOG.md +0 -1047
  39. package/controller/lib/defaults.js +0 -15
  40. package/controller/lib/defaults.js.map +0 -1
  41. package/controller/lib/index.js +0 -246
  42. package/controller/lib/index.js.map +0 -1
  43. package/controller/package.json +0 -25
  44. package/docs/config-schema.json +0 -70
  45. package/docs/config-schema.json.md +0 -55
  46. package/docs/demo/config.js +0 -34
  47. package/docs/demo/generate.js +0 -54
  48. package/docs/demo/index.html +0 -1
  49. package/docs/demo/session.js +0 -6
  50. package/docs/pie-schema.json +0 -170
  51. package/docs/pie-schema.json.md +0 -104
  52. package/lib/answer-area.js +0 -168
  53. package/lib/answer-area.js.map +0 -1
  54. package/lib/answer.js +0 -267
  55. package/lib/answer.js.map +0 -1
  56. package/lib/arrow.js +0 -57
  57. package/lib/arrow.js.map +0 -1
  58. package/lib/choices-list.js +0 -60
  59. package/lib/choices-list.js.map +0 -1
  60. package/lib/droppable-placeholder.js +0 -60
  61. package/lib/droppable-placeholder.js.map +0 -1
  62. package/lib/index.js +0 -86
  63. package/lib/index.js.map +0 -1
  64. package/lib/main.js +0 -220
  65. package/lib/main.js.map +0 -1
package/lib/answer.js DELETED
@@ -1,267 +0,0 @@
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.Answer = void 0;
8
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
- var _core = require("@dnd-kit/core");
11
- var _propTypes = _interopRequireDefault(require("prop-types"));
12
- var _react = _interopRequireDefault(require("react"));
13
- var _debug = _interopRequireDefault(require("debug"));
14
- var _styles = require("@mui/material/styles");
15
- var _drag = require("@pie-lib/drag");
16
- var _lodashEs = require("lodash-es");
17
- var _renderUi = require("@pie-lib/render-ui");
18
- const log = (0, _debug.default)('pie-elements:match-title:answer');
19
- const HolderNumber = (0, _styles.styled)('div')(({
20
- theme
21
- }) => ({
22
- width: '100%',
23
- fontSize: '18px',
24
- textAlign: 'center',
25
- color: `rgba(${theme.palette.common.black}, 0.6)`
26
- }));
27
- const Holder = ({
28
- index,
29
- isOver,
30
- disabled,
31
- type
32
- }) => /*#__PURE__*/_react.default.createElement(_drag.PlaceHolder, {
33
- extraStyles: {
34
- display: 'flex',
35
- padding: '0',
36
- alignItems: 'center',
37
- justifyContent: 'center',
38
- height: '40px'
39
- },
40
- disabled: disabled,
41
- isOver: isOver,
42
- type: type
43
- }, index !== undefined && /*#__PURE__*/_react.default.createElement(HolderNumber, null, index));
44
- Holder.propTypes = {
45
- index: _propTypes.default.number,
46
- isOver: _propTypes.default.bool,
47
- disabled: _propTypes.default.bool,
48
- type: _propTypes.default.string
49
- };
50
- const AnswerContentContainer = (0, _styles.styled)('div')(({
51
- theme,
52
- isDragging,
53
- isOver,
54
- disabled,
55
- outcome
56
- }) => ({
57
- color: _renderUi.color.text(),
58
- backgroundColor: _renderUi.color.white(),
59
- border: `1px solid ${outcome === 'correct' ? _renderUi.color.correct() : outcome === 'incorrect' ? _renderUi.color.incorrect() : theme.palette.grey[400]}`,
60
- cursor: disabled ? 'not-allowed' : 'pointer',
61
- width: '100%',
62
- padding: '10px',
63
- boxSizing: 'border-box',
64
- overflow: 'hidden',
65
- transition: 'opacity 200ms linear',
66
- wordBreak: 'break-word',
67
- opacity: isDragging && !disabled ? 0.5 : isOver && !disabled ? 0.2 : 1,
68
- touchAction: 'none'
69
- }));
70
- const AnswerContent = props => {
71
- const {
72
- isDragging,
73
- isOver,
74
- title,
75
- disabled,
76
- empty,
77
- outcome,
78
- guideIndex,
79
- type
80
- } = props;
81
- if (empty) {
82
- return /*#__PURE__*/_react.default.createElement(Holder, {
83
- index: guideIndex,
84
- isOver: isOver,
85
- disabled: disabled,
86
- type: type
87
- });
88
- } else {
89
- return /*#__PURE__*/_react.default.createElement(AnswerContentContainer, {
90
- isDragging: isDragging,
91
- isOver: isOver,
92
- disabled: disabled,
93
- outcome: outcome,
94
- dangerouslySetInnerHTML: {
95
- __html: title
96
- }
97
- });
98
- }
99
- };
100
- const AnswerContainer = (0, _styles.styled)('div')(({
101
- correct,
102
- theme
103
- }) => ({
104
- boxSizing: 'border-box',
105
- minHeight: 40,
106
- minWidth: '200px',
107
- overflow: 'hidden',
108
- margin: theme.spacing(0.5),
109
- padding: '0px',
110
- textAlign: 'center',
111
- height: 'initial',
112
- border: correct === true ? `1px solid var(--feedback-correct-bg-color, ${_renderUi.color.correct()})` : correct === false ? `1px solid var(--feedback-incorrect-bg-color, ${_renderUi.color.incorrect()})` : 'none'
113
- }));
114
- class Answer extends _react.default.Component {
115
- constructor(...args) {
116
- super(...args);
117
- (0, _defineProperty2.default)(this, "handleTouchStart", e => {
118
- // do NOT call e.preventDefault() here — it prevents pointer events necessary for dnd-kit.
119
- // Keep this handler empty or remove it if you don't need it.
120
- // e.preventDefault();
121
- });
122
- }
123
- componentDidMount() {
124
- if (this.ref) {
125
- // NOTE: preventing default on touchstart can block dnd-kit pointer handling on some devices.
126
- // Consider removing this if you have issues on touch devices.
127
- this.ref.addEventListener('touchstart', this.handleTouchStart, {
128
- passive: true
129
- });
130
- }
131
- }
132
- componentWillUnmount() {
133
- if (this.ref) {
134
- this.ref.removeEventListener('touchstart', this.handleTouchStart);
135
- }
136
- }
137
- render() {
138
- const {
139
- id,
140
- title,
141
- isDragging = false,
142
- className,
143
- disabled,
144
- isOver = false,
145
- type,
146
- correct
147
- } = this.props;
148
- log('[render], props: ', this.props);
149
- return /*#__PURE__*/_react.default.createElement(AnswerContainer, {
150
- correct: correct,
151
- className: className,
152
- ref: ref => this.ref = ref
153
- }, /*#__PURE__*/_react.default.createElement(AnswerContent, {
154
- title: title,
155
- id: id,
156
- isOver: isOver,
157
- empty: (0, _lodashEs.isEmpty)(title),
158
- isDragging: isDragging,
159
- disabled: disabled,
160
- type: type
161
- }));
162
- }
163
- }
164
- exports.Answer = Answer;
165
- (0, _defineProperty2.default)(Answer, "propTypes", {
166
- className: _propTypes.default.string,
167
- isDragging: _propTypes.default.bool,
168
- id: _propTypes.default.any,
169
- title: _propTypes.default.string,
170
- isOver: _propTypes.default.bool,
171
- empty: _propTypes.default.bool,
172
- type: _propTypes.default.string,
173
- disabled: _propTypes.default.bool,
174
- correct: _propTypes.default.bool
175
- });
176
- function DragAndDropAnswer(props) {
177
- const {
178
- id,
179
- instanceId,
180
- promptId,
181
- draggable = true,
182
- disabled = false,
183
- type
184
- } = props;
185
- const dragId = `${type || 'answer'}-${id}`;
186
- // droppable only if promptId exists
187
- const dropId = promptId !== undefined && promptId !== null ? `drop-${promptId}` : undefined;
188
- const {
189
- attributes,
190
- listeners,
191
- setNodeRef: setDragRef,
192
- transform,
193
- transition,
194
- isDragging
195
- } = (0, _core.useDraggable)({
196
- id: dragId,
197
- data: {
198
- type: type || 'answer',
199
- id,
200
- instanceId,
201
- value: props.title,
202
- promptId
203
- },
204
- disabled: !draggable || disabled
205
- });
206
- const droppable = (0, _core.useDroppable)({
207
- id: dropId,
208
- data: dropId ? {
209
- type: 'drop-zone',
210
- promptId,
211
- instanceId
212
- } : undefined,
213
- disabled: disabled || !dropId
214
- });
215
- const setDropRef = droppable.setNodeRef;
216
- const isOver = droppable.isOver;
217
-
218
- // compute style: apply transform to the element that actually moves
219
- const transformStyle = transform ? `translate3d(${transform.x}px, ${transform.y}px, 0)` : undefined;
220
-
221
- // If this item is a drop-zone (prompt slot), we render an outer droppable wrapper.
222
- // For droppable wrapper we apply style to the outer wrapper
223
- if (dropId) {
224
- return /*#__PURE__*/_react.default.createElement("div", {
225
- ref: setDropRef,
226
- style: {
227
- flex: 1,
228
- transform: transformStyle,
229
- transition,
230
- opacity: isDragging ? 0.5 : 1,
231
- backgroundColor: isOver ? 'rgba(0,0,0,0.05)' : 'transparent'
232
- }
233
- }, /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
234
- ref: setDragRef
235
- }, listeners, attributes), /*#__PURE__*/_react.default.createElement(Answer, (0, _extends2.default)({}, props, {
236
- isDragging: isDragging,
237
- isOver: isOver
238
- }))));
239
- }
240
-
241
- // if there is NO dropId (this is a choice / draggable-only), render only draggable node and apply transform to it.
242
- return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
243
- ref: setDragRef
244
- }, listeners, attributes, {
245
- style: {
246
- transform: transformStyle,
247
- transition,
248
- cursor: disabled ? 'not-allowed' : 'grab',
249
- opacity: isDragging ? 0.5 : 1,
250
- touchAction: draggable && !disabled ? 'none' : 'auto'
251
- }
252
- }), /*#__PURE__*/_react.default.createElement(Answer, (0, _extends2.default)({}, props, {
253
- isDragging: isDragging,
254
- isOver: false
255
- })));
256
- }
257
- DragAndDropAnswer.propTypes = {
258
- id: _propTypes.default.any,
259
- instanceId: _propTypes.default.string,
260
- promptId: _propTypes.default.any,
261
- title: _propTypes.default.string,
262
- draggable: _propTypes.default.bool,
263
- disabled: _propTypes.default.bool,
264
- type: _propTypes.default.string
265
- };
266
- var _default = exports.default = DragAndDropAnswer;
267
- //# sourceMappingURL=answer.js.map
package/lib/answer.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"answer.js","names":["_core","require","_propTypes","_interopRequireDefault","_react","_debug","_styles","_drag","_lodashEs","_renderUi","log","debug","HolderNumber","styled","theme","width","fontSize","textAlign","color","palette","common","black","Holder","index","isOver","disabled","type","default","createElement","PlaceHolder","extraStyles","display","padding","alignItems","justifyContent","height","undefined","propTypes","PropTypes","number","bool","string","AnswerContentContainer","isDragging","outcome","text","backgroundColor","white","border","correct","incorrect","grey","cursor","boxSizing","overflow","transition","wordBreak","opacity","touchAction","AnswerContent","props","title","empty","guideIndex","dangerouslySetInnerHTML","__html","AnswerContainer","minHeight","minWidth","margin","spacing","Answer","React","Component","constructor","args","_defineProperty2","e","componentDidMount","ref","addEventListener","handleTouchStart","passive","componentWillUnmount","removeEventListener","render","id","className","isEmpty","exports","any","DragAndDropAnswer","instanceId","promptId","draggable","dragId","dropId","attributes","listeners","setNodeRef","setDragRef","transform","useDraggable","data","value","droppable","useDroppable","setDropRef","transformStyle","x","y","style","flex","_extends2","_default"],"sources":["../src/answer.jsx"],"sourcesContent":["import { useDraggable, useDroppable } from '@dnd-kit/core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport debug from 'debug';\nimport { styled } from '@mui/material/styles';\nimport { PlaceHolder } from '@pie-lib/drag';\nimport { isEmpty } from 'lodash-es';\nimport { color } from '@pie-lib/render-ui';\n\nconst log = debug('pie-elements:match-title:answer');\n\nconst HolderNumber = styled('div')(({ theme }) => ({\n width: '100%',\n fontSize: '18px',\n textAlign: 'center',\n color: `rgba(${theme.palette.common.black}, 0.6)`,\n}));\n\nconst Holder = ({ index, isOver, disabled, type }) => (\n <PlaceHolder\n extraStyles={{\n display: 'flex',\n padding: '0',\n alignItems: 'center',\n justifyContent: 'center',\n height: '40px',\n }}\n disabled={disabled}\n isOver={isOver}\n type={type}\n >\n {index !== undefined && <HolderNumber>{index}</HolderNumber>}\n </PlaceHolder>\n);\n\nHolder.propTypes = {\n index: PropTypes.number,\n isOver: PropTypes.bool,\n disabled: PropTypes.bool,\n type: PropTypes.string,\n};\n\nconst AnswerContentContainer = styled('div')(({ theme, isDragging, isOver, disabled, outcome }) => ({\n color: color.text(),\n backgroundColor: color.white(),\n border: `1px solid ${outcome === 'correct' ? color.correct() :\n outcome === 'incorrect' ? color.incorrect() :\n theme.palette.grey[400]\n }`,\n cursor: disabled ? 'not-allowed' : 'pointer',\n width: '100%',\n padding: '10px',\n boxSizing: 'border-box',\n overflow: 'hidden',\n transition: 'opacity 200ms linear',\n wordBreak: 'break-word',\n opacity: isDragging && !disabled ? 0.5 : isOver && !disabled ? 0.2 : 1,\n touchAction: 'none'\n}));\n\nconst AnswerContent = (props) => {\n const { isDragging, isOver, title, disabled, empty, outcome, guideIndex, type } = props;\n\n if (empty) {\n return <Holder\n index={guideIndex}\n isOver={isOver}\n disabled={disabled}\n type={type}\n\n />;\n } else {\n return (\n <AnswerContentContainer\n isDragging={isDragging}\n isOver={isOver}\n disabled={disabled}\n outcome={outcome}\n dangerouslySetInnerHTML={{ __html: title }}\n />\n );\n }\n};\n\nconst AnswerContainer = styled('div')(({ correct, theme }) => ({\n boxSizing: 'border-box',\n minHeight: 40,\n minWidth: '200px',\n overflow: 'hidden',\n margin: theme.spacing(0.5),\n padding: '0px',\n textAlign: 'center',\n height: 'initial',\n border: correct === true ? `1px solid var(--feedback-correct-bg-color, ${color.correct()})` :\n correct === false ? `1px solid var(--feedback-incorrect-bg-color, ${color.incorrect()})` :\n 'none',\n}));\n\nexport class Answer extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n isDragging: PropTypes.bool,\n id: PropTypes.any,\n title: PropTypes.string,\n isOver: PropTypes.bool,\n empty: PropTypes.bool,\n type: PropTypes.string,\n disabled: PropTypes.bool,\n correct: PropTypes.bool,\n };\n\n componentDidMount() {\n if (this.ref) {\n // NOTE: preventing default on touchstart can block dnd-kit pointer handling on some devices.\n // Consider removing this if you have issues on touch devices.\n this.ref.addEventListener('touchstart', this.handleTouchStart, { passive: true });\n }\n }\n\n componentWillUnmount() {\n if (this.ref) {\n this.ref.removeEventListener('touchstart', this.handleTouchStart);\n }\n }\n\n handleTouchStart = (e) => {\n // do NOT call e.preventDefault() here — it prevents pointer events necessary for dnd-kit.\n // Keep this handler empty or remove it if you don't need it.\n // e.preventDefault();\n };\n\n render() {\n const {\n id,\n title,\n isDragging = false,\n className,\n disabled,\n isOver = false,\n type,\n correct,\n } = this.props;\n\n log('[render], props: ', this.props);\n\n return (\n <AnswerContainer correct={correct} className={className} ref={(ref) => (this.ref = ref)}>\n <AnswerContent\n title={title}\n id={id}\n isOver={isOver}\n empty={isEmpty(title)}\n isDragging={isDragging}\n disabled={disabled}\n type={type}\n />\n </AnswerContainer>\n );\n }\n}\n\nfunction DragAndDropAnswer(props) {\n const { id, instanceId, promptId, draggable = true, disabled = false, type } = props;\n\n const dragId = `${type || 'answer'}-${id}`;\n // droppable only if promptId exists\n const dropId = promptId !== undefined && promptId !== null ? `drop-${promptId}` : undefined;\n\n const {\n attributes,\n listeners,\n setNodeRef: setDragRef,\n transform,\n transition,\n isDragging,\n } = useDraggable({\n id: dragId,\n data: {\n type: type || 'answer',\n id,\n instanceId,\n value: props.title,\n promptId,\n },\n disabled: !draggable || disabled,\n });\n\n const droppable = useDroppable({\n id: dropId,\n data: dropId ? { type: 'drop-zone', promptId, instanceId } : undefined,\n disabled: disabled || !dropId,\n });\n\n const setDropRef = droppable.setNodeRef;\n const isOver = droppable.isOver;\n\n // compute style: apply transform to the element that actually moves\n const transformStyle = transform\n ? `translate3d(${transform.x}px, ${transform.y}px, 0)`\n : undefined;\n\n // If this item is a drop-zone (prompt slot), we render an outer droppable wrapper.\n // For droppable wrapper we apply style to the outer wrapper\n if (dropId) {\n return (\n <div\n ref={setDropRef}\n style={{\n flex: 1,\n transform: transformStyle,\n transition,\n opacity: isDragging ? 0.5 : 1,\n backgroundColor: isOver ? 'rgba(0,0,0,0.05)' : 'transparent',\n }}\n >\n <div ref={setDragRef} {...listeners} {...attributes}>\n <Answer {...props} isDragging={isDragging} isOver={isOver} />\n </div>\n </div>\n );\n }\n\n // if there is NO dropId (this is a choice / draggable-only), render only draggable node and apply transform to it.\n return (\n <div\n ref={setDragRef}\n {...listeners}\n {...attributes}\n style={{\n transform: transformStyle,\n transition,\n cursor: disabled ? 'not-allowed' : 'grab',\n opacity: isDragging ? 0.5 : 1,\n touchAction: draggable && !disabled ? 'none' : 'auto',\n }}\n >\n <Answer {...props} isDragging={isDragging} isOver={false} />\n </div>\n );\n}\n\nDragAndDropAnswer.propTypes = {\n id: PropTypes.any,\n instanceId: PropTypes.string,\n promptId: PropTypes.any,\n title: PropTypes.string,\n draggable: PropTypes.bool,\n disabled: PropTypes.bool,\n type: PropTypes.string,\n};\n\nexport default DragAndDropAnswer;\n"],"mappings":"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","ignoreList":[]}
package/lib/arrow.js DELETED
@@ -1,57 +0,0 @@
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.Arrow = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _react = _interopRequireDefault(require("react"));
10
- var _propTypes = _interopRequireDefault(require("prop-types"));
11
- var _ArrowDropDown = _interopRequireDefault(require("@mui/icons-material/ArrowDropDown"));
12
- var _styles = require("@mui/material/styles");
13
- const ArrowContainer = (0, _styles.styled)('div')({
14
- display: 'inline-block',
15
- position: 'relative',
16
- width: '100%'
17
- });
18
- const Line = (0, _styles.styled)('span')(({
19
- theme,
20
- isRight
21
- }) => ({
22
- backgroundColor: theme.palette.grey[500],
23
- bottom: isRight ? 20 : 19,
24
- content: '""',
25
- display: 'block',
26
- height: 1,
27
- left: 20,
28
- position: 'absolute',
29
- width: '100%'
30
- }));
31
- class Arrow extends _react.default.Component {
32
- render() {
33
- const {
34
- direction
35
- } = this.props;
36
- const extraStyle = direction === 'left' ? {} : {
37
- transform: 'rotate(180deg)'
38
- };
39
- return /*#__PURE__*/_react.default.createElement(ArrowContainer, {
40
- style: extraStyle
41
- }, /*#__PURE__*/_react.default.createElement(_ArrowDropDown.default, {
42
- style: {
43
- transform: 'rotate(90deg)',
44
- color: '#979797',
45
- fontSize: 40
46
- }
47
- }), /*#__PURE__*/_react.default.createElement(Line, {
48
- isRight: direction !== 'left'
49
- }));
50
- }
51
- }
52
- exports.Arrow = Arrow;
53
- (0, _defineProperty2.default)(Arrow, "propTypes", {
54
- direction: _propTypes.default.string
55
- });
56
- var _default = exports.default = Arrow;
57
- //# sourceMappingURL=arrow.js.map
package/lib/arrow.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"arrow.js","names":["_react","_interopRequireDefault","require","_propTypes","_ArrowDropDown","_styles","ArrowContainer","styled","display","position","width","Line","theme","isRight","backgroundColor","palette","grey","bottom","content","height","left","Arrow","React","Component","render","direction","props","extraStyle","transform","default","createElement","style","color","fontSize","exports","_defineProperty2","PropTypes","string","_default"],"sources":["../src/arrow.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport ArrowHead from '@mui/icons-material/ArrowDropDown';\nimport { styled } from '@mui/material/styles';\n\nconst ArrowContainer = styled('div')({\n display: 'inline-block',\n position: 'relative',\n width: '100%',\n});\n\nconst Line = styled('span')(({ theme, isRight }) => ({\n backgroundColor: theme.palette.grey[500],\n bottom: isRight ? 20 : 19,\n content: '\"\"',\n display: 'block',\n height: 1,\n left: 20,\n position: 'absolute',\n width: '100%',\n}));\n\nexport class Arrow extends React.Component {\n static propTypes = {\n direction: PropTypes.string,\n };\n\n render() {\n const { direction } = this.props;\n\n const extraStyle =\n direction === 'left'\n ? {}\n : {\n transform: 'rotate(180deg)',\n };\n\n return (\n <ArrowContainer style={extraStyle}>\n <ArrowHead\n style={{\n transform: 'rotate(90deg)',\n color: '#979797',\n fontSize: 40,\n }}\n />\n <Line isRight={direction !== 'left'} />\n </ArrowContainer>\n );\n }\n}\n\nexport default Arrow;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,cAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAEA,MAAMI,cAAc,GAAG,IAAAC,cAAM,EAAC,KAAK,CAAC,CAAC;EACnCC,OAAO,EAAE,cAAc;EACvBC,QAAQ,EAAE,UAAU;EACpBC,KAAK,EAAE;AACT,CAAC,CAAC;AAEF,MAAMC,IAAI,GAAG,IAAAJ,cAAM,EAAC,MAAM,CAAC,CAAC,CAAC;EAAEK,KAAK;EAAEC;AAAQ,CAAC,MAAM;EACnDC,eAAe,EAAEF,KAAK,CAACG,OAAO,CAACC,IAAI,CAAC,GAAG,CAAC;EACxCC,MAAM,EAAEJ,OAAO,GAAG,EAAE,GAAG,EAAE;EACzBK,OAAO,EAAE,IAAI;EACbV,OAAO,EAAE,OAAO;EAChBW,MAAM,EAAE,CAAC;EACTC,IAAI,EAAE,EAAE;EACRX,QAAQ,EAAE,UAAU;EACpBC,KAAK,EAAE;AACT,CAAC,CAAC,CAAC;AAEI,MAAMW,KAAK,SAASC,cAAK,CAACC,SAAS,CAAC;EAKzCC,MAAMA,CAAA,EAAG;IACP,MAAM;MAAEC;IAAU,CAAC,GAAG,IAAI,CAACC,KAAK;IAEhC,MAAMC,UAAU,GACdF,SAAS,KAAK,MAAM,GAChB,CAAC,CAAC,GACF;MACEG,SAAS,EAAE;IACb,CAAC;IAEP,oBACE5B,MAAA,CAAA6B,OAAA,CAAAC,aAAA,CAACxB,cAAc;MAACyB,KAAK,EAAEJ;IAAW,gBAChC3B,MAAA,CAAA6B,OAAA,CAAAC,aAAA,CAAC1B,cAAA,CAAAyB,OAAS;MACRE,KAAK,EAAE;QACLH,SAAS,EAAE,eAAe;QAC1BI,KAAK,EAAE,SAAS;QAChBC,QAAQ,EAAE;MACZ;IAAE,CACH,CAAC,eACFjC,MAAA,CAAA6B,OAAA,CAAAC,aAAA,CAACnB,IAAI;MAACE,OAAO,EAAEY,SAAS,KAAK;IAAO,CAAE,CACxB,CAAC;EAErB;AACF;AAACS,OAAA,CAAAb,KAAA,GAAAA,KAAA;AAAA,IAAAc,gBAAA,CAAAN,OAAA,EA5BYR,KAAK,eACG;EACjBI,SAAS,EAAEW,kBAAS,CAACC;AACvB,CAAC;AAAA,IAAAC,QAAA,GAAAJ,OAAA,CAAAL,OAAA,GA2BYR,KAAK","ignoreList":[]}
@@ -1,60 +0,0 @@
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.ChoicesList = 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 _lodashEs = require("lodash-es");
14
- var _answer = _interopRequireDefault(require("./answer"));
15
- var _droppablePlaceholder = require("./droppable-placeholder");
16
- const ChoicesContainer = (0, _styles.styled)('div')(({
17
- theme
18
- }) => ({
19
- marginBottom: theme.spacing(2)
20
- }));
21
- class ChoicesList extends _react.default.Component {
22
- render() {
23
- const {
24
- model,
25
- disabled,
26
- session,
27
- instanceId,
28
- onRemoveAnswer
29
- } = this.props;
30
- const {
31
- config
32
- } = model;
33
- const {
34
- duplicates
35
- } = config;
36
- const filteredAnswers = config.answers.filter(answer => duplicates || (0, _lodashEs.isEmpty)(session) || !session.value || (0, _lodashEs.isUndefined)((0, _lodashEs.find)(session.value, val => val === answer.id))).map(answer => /*#__PURE__*/_react.default.createElement(_answer.default, (0, _extends2.default)({
37
- key: answer.id,
38
- instanceId: instanceId,
39
- draggable: true,
40
- disabled: disabled,
41
- session: session,
42
- type: "choice"
43
- }, answer)));
44
- return /*#__PURE__*/_react.default.createElement(ChoicesContainer, null, /*#__PURE__*/_react.default.createElement(_droppablePlaceholder.DroppablePlaceholder, {
45
- id: "choices-pool",
46
- disabled: disabled,
47
- onRemoveAnswer: onRemoveAnswer
48
- }, filteredAnswers));
49
- }
50
- }
51
- exports.ChoicesList = ChoicesList;
52
- (0, _defineProperty2.default)(ChoicesList, "propTypes", {
53
- session: _propTypes.default.object.isRequired,
54
- instanceId: _propTypes.default.string.isRequired,
55
- model: _propTypes.default.object.isRequired,
56
- disabled: _propTypes.default.bool.isRequired,
57
- onRemoveAnswer: _propTypes.default.func
58
- });
59
- var _default = exports.default = ChoicesList;
60
- //# sourceMappingURL=choices-list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"choices-list.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_lodashEs","_answer","_droppablePlaceholder","ChoicesContainer","styled","theme","marginBottom","spacing","ChoicesList","React","Component","render","model","disabled","session","instanceId","onRemoveAnswer","props","config","duplicates","filteredAnswers","answers","filter","answer","isEmpty","value","isUndefined","find","val","id","map","default","createElement","_extends2","key","draggable","type","DroppablePlaceholder","exports","_defineProperty2","PropTypes","object","isRequired","string","bool","func","_default"],"sources":["../src/choices-list.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { find, isEmpty, isUndefined } from 'lodash-es';\nimport DragAndDropAnswer from './answer';\nimport { DroppablePlaceholder } from './droppable-placeholder';\n\nconst ChoicesContainer = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2),\n}));\n\nexport class ChoicesList extends React.Component {\n static propTypes = {\n session: PropTypes.object.isRequired,\n instanceId: PropTypes.string.isRequired,\n model: PropTypes.object.isRequired,\n disabled: PropTypes.bool.isRequired,\n onRemoveAnswer: PropTypes.func,\n };\n\n render() {\n const { model, disabled, session, instanceId, onRemoveAnswer } = this.props;\n const { config } = model;\n const { duplicates } = config;\n\n const filteredAnswers = config.answers\n .filter(\n (answer) =>\n duplicates ||\n isEmpty(session) ||\n !session.value ||\n isUndefined(find(session.value, (val) => val === answer.id)),\n )\n .map((answer) => (\n <DragAndDropAnswer\n key={answer.id}\n instanceId={instanceId}\n draggable={true}\n disabled={disabled}\n session={session}\n type=\"choice\"\n {...answer}\n />\n ));\n\n return (\n <ChoicesContainer>\n <DroppablePlaceholder id=\"choices-pool\" disabled={disabled} onRemoveAnswer={onRemoveAnswer}>\n {filteredAnswers}\n </DroppablePlaceholder>\n </ChoicesContainer>\n );\n }\n}\n\nexport default ChoicesList;\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,qBAAA,GAAAL,OAAA;AAEA,MAAMM,gBAAgB,GAAG,IAAAC,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEC;AAAM,CAAC,MAAM;EACrDC,YAAY,EAAED,KAAK,CAACE,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEI,MAAMC,WAAW,SAASC,cAAK,CAACC,SAAS,CAAC;EAS/CC,MAAMA,CAAA,EAAG;IACP,MAAM;MAAEC,KAAK;MAAEC,QAAQ;MAAEC,OAAO;MAAEC,UAAU;MAAEC;IAAe,CAAC,GAAG,IAAI,CAACC,KAAK;IAC3E,MAAM;MAAEC;IAAO,CAAC,GAAGN,KAAK;IACxB,MAAM;MAAEO;IAAW,CAAC,GAAGD,MAAM;IAE7B,MAAME,eAAe,GAAGF,MAAM,CAACG,OAAO,CACnCC,MAAM,CACJC,MAAM,IACLJ,UAAU,IACV,IAAAK,iBAAO,EAACV,OAAO,CAAC,IAChB,CAACA,OAAO,CAACW,KAAK,IACd,IAAAC,qBAAW,EAAC,IAAAC,cAAI,EAACb,OAAO,CAACW,KAAK,EAAGG,GAAG,IAAKA,GAAG,KAAKL,MAAM,CAACM,EAAE,CAAC,CAC/D,CAAC,CACAC,GAAG,CAAEP,MAAM,iBACV5B,MAAA,CAAAoC,OAAA,CAAAC,aAAA,CAAC/B,OAAA,CAAA8B,OAAiB,MAAAE,SAAA,CAAAF,OAAA;MAChBG,GAAG,EAAEX,MAAM,CAACM,EAAG;MACfd,UAAU,EAAEA,UAAW;MACvBoB,SAAS,EAAE,IAAK;MAChBtB,QAAQ,EAAEA,QAAS;MACnBC,OAAO,EAAEA,OAAQ;MACjBsB,IAAI,EAAC;IAAQ,GACTb,MAAM,CACX,CACF,CAAC;IAEJ,oBACE5B,MAAA,CAAAoC,OAAA,CAAAC,aAAA,CAAC7B,gBAAgB,qBACfR,MAAA,CAAAoC,OAAA,CAAAC,aAAA,CAAC9B,qBAAA,CAAAmC,oBAAoB;MAACR,EAAE,EAAC,cAAc;MAAChB,QAAQ,EAAEA,QAAS;MAACG,cAAc,EAAEA;IAAe,GACxFI,eACmB,CACN,CAAC;EAEvB;AACF;AAACkB,OAAA,CAAA9B,WAAA,GAAAA,WAAA;AAAA,IAAA+B,gBAAA,CAAAR,OAAA,EA1CYvB,WAAW,eACH;EACjBM,OAAO,EAAE0B,kBAAS,CAACC,MAAM,CAACC,UAAU;EACpC3B,UAAU,EAAEyB,kBAAS,CAACG,MAAM,CAACD,UAAU;EACvC9B,KAAK,EAAE4B,kBAAS,CAACC,MAAM,CAACC,UAAU;EAClC7B,QAAQ,EAAE2B,kBAAS,CAACI,IAAI,CAACF,UAAU;EACnC1B,cAAc,EAAEwB,kBAAS,CAACK;AAC5B,CAAC;AAAA,IAAAC,QAAA,GAAAR,OAAA,CAAAP,OAAA,GAqCYvB,WAAW","ignoreList":[]}
@@ -1,60 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.DroppablePlaceholder = DroppablePlaceholder;
8
- exports.default = void 0;
9
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
- var _react = _interopRequireDefault(require("react"));
11
- var _propTypes = _interopRequireDefault(require("prop-types"));
12
- var _core = require("@dnd-kit/core");
13
- var _styles = require("@mui/material/styles");
14
- var _drag = require("@pie-lib/drag");
15
- const Container = (0, _styles.styled)('div')(({
16
- theme
17
- }) => ({
18
- alignItems: 'center',
19
- display: 'flex',
20
- flexDirection: 'row',
21
- flexWrap: 'wrap',
22
- justifyContent: 'space-between',
23
- marginTop: theme.spacing(1),
24
- marginBottom: theme.spacing(1),
25
- minHeight: 50,
26
- transition: 'background-color 200ms ease'
27
- }));
28
- function DroppablePlaceholder({
29
- id,
30
- disabled,
31
- children,
32
- ...rest
33
- }) {
34
- const {
35
- setNodeRef,
36
- isOver
37
- } = (0, _core.useDroppable)({
38
- id: id || 'choices-pool',
39
- data: {
40
- type: 'choices-pool'
41
- },
42
- disabled
43
- });
44
- return /*#__PURE__*/_react.default.createElement(Container, (0, _extends2.default)({
45
- ref: setNodeRef,
46
- style: {
47
- backgroundColor: isOver ? 'rgba(0,0,0,0.05)' : 'transparent'
48
- }
49
- }, rest), /*#__PURE__*/_react.default.createElement(_drag.MatchDroppablePlaceholder, {
50
- id: id,
51
- disabled: disabled
52
- }, children));
53
- }
54
- DroppablePlaceholder.propTypes = {
55
- id: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
56
- disabled: _propTypes.default.bool,
57
- children: _propTypes.default.node
58
- };
59
- var _default = exports.default = DroppablePlaceholder;
60
- //# sourceMappingURL=droppable-placeholder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"droppable-placeholder.js","names":["_react","_interopRequireDefault","require","_propTypes","_core","_styles","_drag","Container","styled","theme","alignItems","display","flexDirection","flexWrap","justifyContent","marginTop","spacing","marginBottom","minHeight","transition","DroppablePlaceholder","id","disabled","children","rest","setNodeRef","isOver","useDroppable","data","type","default","createElement","_extends2","ref","style","backgroundColor","MatchDroppablePlaceholder","propTypes","PropTypes","oneOfType","string","number","bool","node","_default","exports"],"sources":["../src/droppable-placeholder.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDroppable } from '@dnd-kit/core';\nimport { styled } from '@mui/material/styles';\nimport { MatchDroppablePlaceholder } from '@pie-lib/drag';\n\nconst Container = styled('div')(({ theme }) => ({\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n minHeight: 50,\n transition: 'background-color 200ms ease',\n}));\n\nexport function DroppablePlaceholder({ id, disabled, children, ...rest }) {\n const { setNodeRef, isOver } = useDroppable({\n id: id || 'choices-pool',\n data: { type: 'choices-pool' },\n disabled,\n });\n\n return (\n <Container\n ref={setNodeRef}\n style={{ backgroundColor: isOver ? 'rgba(0,0,0,0.05)' : 'transparent' }}\n {...rest}\n >\n <MatchDroppablePlaceholder id={id} disabled={disabled}>\n {children}\n </MatchDroppablePlaceholder>\n </Container>\n );\n}\n\nDroppablePlaceholder.propTypes = {\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n disabled: PropTypes.bool,\n children: PropTypes.node,\n};\n\nexport default DroppablePlaceholder;\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AAEA,MAAMK,SAAS,GAAG,IAAAC,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEC;AAAM,CAAC,MAAM;EAC5CC,UAAU,EAAE,QAAQ;EACpBC,OAAO,EAAE,MAAM;EACfC,aAAa,EAAE,KAAK;EACpBC,QAAQ,EAAE,MAAM;EAChBC,cAAc,EAAE,eAAe;EAC/BC,SAAS,EAAEN,KAAK,CAACO,OAAO,CAAC,CAAC,CAAC;EAC3BC,YAAY,EAAER,KAAK,CAACO,OAAO,CAAC,CAAC,CAAC;EAC9BE,SAAS,EAAE,EAAE;EACbC,UAAU,EAAE;AAChB,CAAC,CAAC,CAAC;AAEI,SAASC,oBAAoBA,CAAC;EAAEC,EAAE;EAAEC,QAAQ;EAAEC,QAAQ;EAAE,GAAGC;AAAK,CAAC,EAAE;EACtE,MAAM;IAAEC,UAAU;IAAEC;EAAO,CAAC,GAAG,IAAAC,kBAAY,EAAC;IACxCN,EAAE,EAAEA,EAAE,IAAI,cAAc;IACxBO,IAAI,EAAE;MAAEC,IAAI,EAAE;IAAe,CAAC;IAC9BP;EACJ,CAAC,CAAC;EAEF,oBACItB,MAAA,CAAA8B,OAAA,CAAAC,aAAA,CAACxB,SAAS,MAAAyB,SAAA,CAAAF,OAAA;IACNG,GAAG,EAAER,UAAW;IAChBS,KAAK,EAAE;MAAEC,eAAe,EAAET,MAAM,GAAG,kBAAkB,GAAG;IAAc;EAAE,GACpEF,IAAI,gBAERxB,MAAA,CAAA8B,OAAA,CAAAC,aAAA,CAACzB,KAAA,CAAA8B,yBAAyB;IAACf,EAAE,EAAEA,EAAG;IAACC,QAAQ,EAAEA;EAAS,GACjDC,QACsB,CACpB,CAAC;AAEpB;AAEAH,oBAAoB,CAACiB,SAAS,GAAG;EAC7BhB,EAAE,EAAEiB,kBAAS,CAACC,SAAS,CAAC,CAACD,kBAAS,CAACE,MAAM,EAAEF,kBAAS,CAACG,MAAM,CAAC,CAAC;EAC7DnB,QAAQ,EAAEgB,kBAAS,CAACI,IAAI;EACxBnB,QAAQ,EAAEe,kBAAS,CAACK;AACxB,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAf,OAAA,GAEaV,oBAAoB","ignoreList":[]}
package/lib/index.js DELETED
@@ -1,86 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- Object.defineProperty(exports, "Component", {
8
- enumerable: true,
9
- get: function () {
10
- return _main.default;
11
- }
12
- });
13
- exports.isComplete = exports.default = void 0;
14
- var _react = _interopRequireDefault(require("react"));
15
- var _client = require("react-dom/client");
16
- var _debug = _interopRequireDefault(require("debug"));
17
- var _main = _interopRequireDefault(require("./main"));
18
- var _piePlayerEvents = require("@pie-framework/pie-player-events");
19
- var _mathRendering = require("@pie-lib/math-rendering");
20
- const log = (0, _debug.default)('pie-ui:graph-lines');
21
- const isComplete = (session, model) => {
22
- if (!session) {
23
- return false;
24
- }
25
- const value = session.value;
26
- let complete = true;
27
- if (value) {
28
- (model.config.prompts || []).forEach(prompt => {
29
- if (!Number.isFinite(value[prompt.id])) {
30
- complete = false;
31
- }
32
- });
33
- }
34
- return complete;
35
- };
36
- exports.isComplete = isComplete;
37
- class MatchList extends HTMLElement {
38
- constructor() {
39
- super();
40
- this._root = null;
41
- }
42
- set model(m) {
43
- this._model = m;
44
- this._render();
45
- }
46
- set session(s) {
47
- this._session = s;
48
- this._render();
49
- }
50
- get session() {
51
- return this._session;
52
- }
53
- sessionChanged(s) {
54
- this._session.value = s.value;
55
- this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(this.tagName.toLowerCase(), isComplete(this._session, this._model)));
56
- log('session: ', this._session);
57
- this._render();
58
- }
59
- connectedCallback() {
60
- this._render();
61
- }
62
- _render() {
63
- if (!this._model || !this._session) {
64
- return;
65
- }
66
- const el = /*#__PURE__*/_react.default.createElement(_main.default, {
67
- model: this._model,
68
- session: this._session,
69
- onSessionChange: this.sessionChanged.bind(this)
70
- });
71
- if (!this._root) {
72
- this._root = (0, _client.createRoot)(this);
73
- }
74
- this._root.render(el);
75
- queueMicrotask(() => {
76
- (0, _mathRendering.renderMath)(this);
77
- });
78
- }
79
- disconnectedCallback() {
80
- if (this._root) {
81
- this._root.unmount();
82
- }
83
- }
84
- }
85
- exports.default = MatchList;
86
- //# sourceMappingURL=index.js.map
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_debug","_main","_piePlayerEvents","_mathRendering","log","debug","isComplete","session","model","value","complete","config","prompts","forEach","prompt","Number","isFinite","id","exports","MatchList","HTMLElement","constructor","_root","m","_model","_render","s","_session","sessionChanged","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","connectedCallback","el","React","createElement","Main","onSessionChange","bind","createRoot","render","queueMicrotask","renderMath","disconnectedCallback","unmount","default"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport debug from 'debug';\nimport Main from './main';\n\nimport { SessionChangedEvent } from '@pie-framework/pie-player-events';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nconst log = debug('pie-ui:graph-lines');\n\nexport { Main as Component };\n\nexport const isComplete = (session, model) => {\n if (!session) {\n return false;\n }\n\n const value = session.value;\n let complete = true;\n\n if (value) {\n (model.config.prompts || []).forEach((prompt) => {\n if (!Number.isFinite(value[prompt.id])) {\n complete = false;\n }\n });\n }\n\n return complete;\n};\n\nexport default class MatchList extends HTMLElement {\n constructor() {\n super();\n this._root = null;\n }\n\n set model(m) {\n this._model = m;\n this._render();\n }\n\n set session(s) {\n this._session = s;\n this._render();\n }\n\n get session() {\n return this._session;\n }\n\n sessionChanged(s) {\n this._session.value = s.value;\n\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), isComplete(this._session, this._model)));\n\n log('session: ', this._session);\n this._render();\n }\n\n connectedCallback() {\n this._render();\n }\n\n _render() {\n if (!this._model || !this._session) {\n return;\n }\n\n const el = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onSessionChange: this.sessionChanged.bind(this),\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(el);\n queueMicrotask(() => {\n renderMath(this);\n });\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}