@pie-element/placement-ordering 14.1.1 → 14.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 (108) hide show
  1. package/configure.js +2 -0
  2. package/controller.js +1 -0
  3. package/dist/author/choice-editor.d.ts +39 -0
  4. package/dist/author/choice-editor.js +156 -0
  5. package/dist/author/choice-tile.d.ts +40 -0
  6. package/dist/author/choice-tile.js +132 -0
  7. package/dist/author/defaults.d.ts +213 -0
  8. package/dist/author/defaults.js +159 -0
  9. package/dist/author/design.d.ts +21 -0
  10. package/dist/author/design.js +273 -0
  11. package/dist/author/help.d.ts +11 -0
  12. package/dist/author/index.d.ts +45 -0
  13. package/dist/author/index.js +85 -0
  14. package/dist/author/utils.d.ts +15 -0
  15. package/dist/author/utils.js +62 -0
  16. package/dist/browser/author/index.js +40697 -0
  17. package/dist/browser/author/index.js.map +1 -0
  18. package/dist/browser/browser-Dbw2uHQ7.js +372 -0
  19. package/dist/browser/browser-Dbw2uHQ7.js.map +1 -0
  20. package/dist/browser/controller/index.js +242 -0
  21. package/dist/browser/controller/index.js.map +1 -0
  22. package/dist/browser/delivery/index.js +1035 -0
  23. package/dist/browser/delivery/index.js.map +1 -0
  24. package/dist/browser/dist-D9ARZhQk.js +1426 -0
  25. package/dist/browser/dist-D9ARZhQk.js.map +1 -0
  26. package/dist/browser/drag-provider-DSf9QLEN.js +10548 -0
  27. package/dist/browser/drag-provider-DSf9QLEN.js.map +1 -0
  28. package/dist/browser/placement-ordering.css +2 -0
  29. package/dist/controller/defaults.d.ts +31 -0
  30. package/dist/controller/defaults.js +25 -0
  31. package/dist/controller/index.d.ts +29 -0
  32. package/dist/controller/index.js +123 -0
  33. package/dist/controller/scoring.d.ts +27 -0
  34. package/dist/controller/scoring.js +30 -0
  35. package/dist/delivery/index.d.ts +26 -0
  36. package/dist/delivery/index.js +70 -0
  37. package/dist/delivery/main.d.ts +19 -0
  38. package/dist/delivery/main.js +22 -0
  39. package/dist/delivery/ordering.d.ts +18 -0
  40. package/dist/delivery/ordering.js +93 -0
  41. package/dist/delivery/placement-ordering.d.ts +28 -0
  42. package/dist/delivery/placement-ordering.js +213 -0
  43. package/dist/delivery/tile.d.ts +28 -0
  44. package/dist/delivery/tile.js +165 -0
  45. package/dist/delivery/tiler.d.ts +42 -0
  46. package/dist/delivery/tiler.js +89 -0
  47. package/dist/delivery/utils.d.ts +9 -0
  48. package/dist/delivery/utils.js +8 -0
  49. package/dist/index.d.ts +1 -0
  50. package/dist/index.iife.d.ts +8 -0
  51. package/dist/index.iife.js +152 -0
  52. package/dist/index.js +2 -0
  53. package/dist/runtime-support.d.ts +12 -0
  54. package/dist/runtime-support.js +12 -0
  55. package/package.json +90 -22
  56. package/CHANGELOG.json +0 -1312
  57. package/CHANGELOG.md +0 -2432
  58. package/LICENSE.md +0 -5
  59. package/README.md +0 -57
  60. package/configure/CHANGELOG.json +0 -952
  61. package/configure/CHANGELOG.md +0 -2127
  62. package/configure/lib/choice-editor.js +0 -252
  63. package/configure/lib/choice-editor.js.map +0 -1
  64. package/configure/lib/choice-tile.js +0 -205
  65. package/configure/lib/choice-tile.js.map +0 -1
  66. package/configure/lib/defaults.js +0 -211
  67. package/configure/lib/defaults.js.map +0 -1
  68. package/configure/lib/design.js +0 -427
  69. package/configure/lib/design.js.map +0 -1
  70. package/configure/lib/help.js +0 -14
  71. package/configure/lib/help.js.map +0 -1
  72. package/configure/lib/index.js +0 -155
  73. package/configure/lib/index.js.map +0 -1
  74. package/configure/lib/utils.js +0 -108
  75. package/configure/lib/utils.js.map +0 -1
  76. package/configure/package.json +0 -26
  77. package/controller/CHANGELOG.json +0 -517
  78. package/controller/CHANGELOG.md +0 -1518
  79. package/controller/lib/defaults.js +0 -29
  80. package/controller/lib/defaults.js.map +0 -1
  81. package/controller/lib/index.js +0 -285
  82. package/controller/lib/index.js.map +0 -1
  83. package/controller/lib/scoring.js +0 -109
  84. package/controller/lib/scoring.js.map +0 -1
  85. package/controller/package.json +0 -15
  86. package/docs/config-schema.json +0 -2964
  87. package/docs/config-schema.json.md +0 -2190
  88. package/docs/demo/config.js +0 -8
  89. package/docs/demo/generate.js +0 -50
  90. package/docs/demo/index.html +0 -1
  91. package/docs/demo/session.js +0 -7
  92. package/docs/pie-schema.json +0 -1613
  93. package/docs/pie-schema.json.md +0 -973
  94. package/icon.png +0 -0
  95. package/lib/index.js +0 -122
  96. package/lib/index.js.map +0 -1
  97. package/lib/main.js +0 -32
  98. package/lib/main.js.map +0 -1
  99. package/lib/ordering.js +0 -165
  100. package/lib/ordering.js.map +0 -1
  101. package/lib/placement-ordering.js +0 -419
  102. package/lib/placement-ordering.js.map +0 -1
  103. package/lib/tile.js +0 -259
  104. package/lib/tile.js.map +0 -1
  105. package/lib/tiler.js +0 -165
  106. package/lib/tiler.js.map +0 -1
  107. package/lib/utils.js +0 -18
  108. package/lib/utils.js.map +0 -1
@@ -1,252 +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 = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _propTypes = _interopRequireDefault(require("prop-types"));
10
- var _react = _interopRequireDefault(require("react"));
11
- var _debug = _interopRequireDefault(require("debug"));
12
- var _lodashEs = require("lodash-es");
13
- var _Button = _interopRequireDefault(require("@mui/material/Button"));
14
- var _styles = require("@mui/material/styles");
15
- var _renderUi = require("@pie-lib/render-ui");
16
- var _configUi = require("@pie-lib/config-ui");
17
- var _choiceTile = _interopRequireDefault(require("./choice-tile"));
18
- function findFreeChoiceSlot(choices) {
19
- let slot = 1;
20
- const ids = choices.map(c => c.id);
21
- while (ids.includes(`c${slot}`)) {
22
- slot++;
23
- }
24
- return slot;
25
- }
26
- const log = (0, _debug.default)('@pie-element:placement-ordering:configure:choice-editor');
27
- const StyledControls = (0, _styles.styled)('div')({
28
- display: 'flex',
29
- alignItems: 'center',
30
- justifyContent: 'space-between'
31
- });
32
- const StyledAddButton = (0, _styles.styled)(_Button.default)(({
33
- theme
34
- }) => ({
35
- marginTop: theme.spacing(2.5),
36
- paddingLeft: theme.spacing(1.5),
37
- paddingRight: theme.spacing(1.5),
38
- '& .MuiButton-label': {
39
- transition: 'opacity 200ms linear',
40
- '&:hover': {
41
- opacity: 0.3
42
- }
43
- }
44
- }));
45
- const StyledVTiler = (0, _styles.styled)('div')({
46
- gridAutoFlow: 'column',
47
- display: 'grid',
48
- gridGap: '10px',
49
- alignItems: 'center'
50
- });
51
- const StyledColumnLabel = (0, _styles.styled)(_renderUi.InputContainer)(({
52
- theme
53
- }) => ({
54
- width: '100%',
55
- paddingTop: theme.spacing(2)
56
- }));
57
- const ErrorText = (0, _styles.styled)('div')(({
58
- theme
59
- }) => ({
60
- fontSize: theme.typography.fontSize - 2,
61
- color: theme.palette.error.main,
62
- paddingTop: theme.spacing(1)
63
- }));
64
- class ChoiceEditor extends _react.default.Component {
65
- constructor(props) {
66
- super(props);
67
- (0, _defineProperty2.default)(this, "state", {
68
- warning: {
69
- open: false
70
- }
71
- });
72
- this.onChoiceChange = choice => {
73
- const {
74
- choices,
75
- onChange,
76
- correctResponse
77
- } = this.props;
78
- const index = choices.findIndex(c => c.id === choice.id);
79
- choices.splice(index, 1, {
80
- ...choices[index],
81
- label: choice.label
82
- });
83
- onChange(choices, correctResponse);
84
- };
85
- this.onDelete = choice => {
86
- const {
87
- choices,
88
- onChange,
89
- correctResponse,
90
- choicesLabel
91
- } = this.props;
92
- if (choices && choices.length === 3) {
93
- this.setState({
94
- warning: {
95
- open: true,
96
- text: `There have to be at least 3 ${choicesLabel}.`
97
- }
98
- });
99
- } else {
100
- const updatedChoices = choices.filter(c => c.id !== choice.id);
101
- const updatedCorrectResponse = correctResponse.filter(v => v.id !== choice.id);
102
- onChange(updatedChoices, updatedCorrectResponse);
103
- }
104
- };
105
- this.addChoice = () => {
106
- const {
107
- choices,
108
- correctResponse,
109
- onChange,
110
- choicesLabel
111
- } = this.props;
112
- if (choices && choices.length === 10) {
113
- this.setState({
114
- warning: {
115
- open: true,
116
- text: `There can be maximum 10 ${choicesLabel}.`
117
- }
118
- });
119
- } else {
120
- const freeId = findFreeChoiceSlot(choices);
121
- const id = `c${freeId}`;
122
- const newChoice = {
123
- id,
124
- label: ''
125
- };
126
- const newCorrectResponse = {
127
- id,
128
- /**
129
- * Note: weights are not configurable in the existing component
130
- * so we'll want do disable this in the controller and ignore it for now.
131
- */
132
- weight: 0
133
- };
134
- const updatedChoices = choices.concat([newChoice]);
135
- const updatedCorrectResponse = correctResponse.concat([newCorrectResponse]);
136
- onChange(updatedChoices, updatedCorrectResponse);
137
- }
138
- };
139
- this.shuffleChoices = () => {
140
- const {
141
- onChange,
142
- choices,
143
- correctResponse,
144
- placementArea
145
- } = this.props;
146
- let shuffled = (0, _lodashEs.shuffle)(choices);
147
-
148
- // if placementArea is disabled, make sure we don't shuffle choices in the correct order
149
- const shuffledCorrect = !placementArea && (0, _lodashEs.isEqual)(shuffled.map(item => item.id), correctResponse.map(item => item.id));
150
- if (shuffledCorrect) {
151
- const shuffledTwice = (0, _lodashEs.shuffle)(shuffled);
152
- onChange(shuffledTwice, correctResponse);
153
- } else {
154
- onChange(shuffled, correctResponse);
155
- }
156
- };
157
- }
158
- render() {
159
- const {
160
- correctResponse,
161
- choices,
162
- imageSupport,
163
- toolbarOpts,
164
- pluginProps,
165
- singularChoiceLabel,
166
- pluralChoiceLabel,
167
- choicesLabel,
168
- spellCheck,
169
- maxImageWidth,
170
- maxImageHeight,
171
- errors,
172
- mathMlOptions = {},
173
- ordering
174
- } = this.props;
175
- const {
176
- warning
177
- } = this.state;
178
- const {
179
- choicesErrors,
180
- orderError
181
- } = errors || {};
182
- const vTilerStyle = {
183
- gridTemplateColumns: 'repeat(2, 1fr)',
184
- gridTemplateRows: `repeat(${choices.length}, 1fr)`
185
- };
186
- return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(StyledVTiler, {
187
- style: {
188
- gridTemplateColumns: 'repeat(2, 1fr)'
189
- }
190
- }, /*#__PURE__*/_react.default.createElement(StyledColumnLabel, {
191
- label: `Student ${choicesLabel || 'Choices'}`
192
- }), /*#__PURE__*/_react.default.createElement(StyledColumnLabel, {
193
- label: "Correct Order"
194
- })), /*#__PURE__*/_react.default.createElement(StyledVTiler, {
195
- style: vTilerStyle
196
- }, ordering.tiles.map((choice, index) => /*#__PURE__*/_react.default.createElement(_choiceTile.default, {
197
- key: `${choice.type}-${choice.id}`,
198
- choice: choice,
199
- index: index,
200
- imageSupport: imageSupport,
201
- onDelete: this.onDelete.bind(this, choice),
202
- onChoiceChange: this.onChoiceChange,
203
- toolbarOpts: toolbarOpts,
204
- pluginProps: pluginProps,
205
- choices: choices,
206
- choicesLabel: choicesLabel,
207
- spellCheck: spellCheck,
208
- maxImageWidth: maxImageWidth,
209
- maxImageHeight: maxImageHeight,
210
- error: choicesErrors?.[choice.id] || orderError && ' ' || null,
211
- mathMlOptions: mathMlOptions
212
- }))), orderError && /*#__PURE__*/_react.default.createElement(ErrorText, null, orderError), /*#__PURE__*/_react.default.createElement(StyledControls, null, /*#__PURE__*/_react.default.createElement(StyledAddButton, {
213
- onClick: this.shuffleChoices,
214
- size: "small",
215
- variant: "contained"
216
- }, `SHUFFLE ${pluralChoiceLabel}`.toUpperCase()), /*#__PURE__*/_react.default.createElement(StyledAddButton, {
217
- onClick: this.addChoice,
218
- size: "small",
219
- variant: "contained"
220
- }, `ADD ${singularChoiceLabel}`.toUpperCase())), /*#__PURE__*/_react.default.createElement(_configUi.AlertDialog, {
221
- open: warning.open,
222
- title: "Warning",
223
- text: warning.text,
224
- onConfirm: () => this.setState({
225
- warning: {
226
- open: false
227
- }
228
- })
229
- }));
230
- }
231
- }
232
- (0, _defineProperty2.default)(ChoiceEditor, "propTypes", {
233
- correctResponse: _propTypes.default.array.isRequired,
234
- choices: _propTypes.default.array.isRequired,
235
- onChange: _propTypes.default.func.isRequired,
236
- imageSupport: _propTypes.default.shape({
237
- add: _propTypes.default.func.isRequired,
238
- delete: _propTypes.default.func.isRequired
239
- }),
240
- maxImageHeight: _propTypes.default.object,
241
- maxImageWidth: _propTypes.default.object,
242
- toolbarOpts: _propTypes.default.object,
243
- pluginProps: _propTypes.default.object,
244
- placementArea: _propTypes.default.bool,
245
- singularChoiceLabel: _propTypes.default.string,
246
- pluralChoiceLabel: _propTypes.default.string,
247
- choicesLabel: _propTypes.default.string,
248
- errors: _propTypes.default.object,
249
- spellCheck: _propTypes.default.bool
250
- });
251
- var _default = exports.default = ChoiceEditor;
252
- //# sourceMappingURL=choice-editor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"choice-editor.js","names":["_propTypes","_interopRequireDefault","require","_react","_debug","_lodashEs","_Button","_styles","_renderUi","_configUi","_choiceTile","findFreeChoiceSlot","choices","slot","ids","map","c","id","includes","log","debug","StyledControls","styled","display","alignItems","justifyContent","StyledAddButton","Button","theme","marginTop","spacing","paddingLeft","paddingRight","transition","opacity","StyledVTiler","gridAutoFlow","gridGap","StyledColumnLabel","InputContainer","width","paddingTop","ErrorText","fontSize","typography","color","palette","error","main","ChoiceEditor","React","Component","constructor","props","_defineProperty2","default","warning","open","onChoiceChange","choice","onChange","correctResponse","index","findIndex","splice","label","onDelete","choicesLabel","length","setState","text","updatedChoices","filter","updatedCorrectResponse","v","addChoice","freeId","newChoice","newCorrectResponse","weight","concat","shuffleChoices","placementArea","shuffled","shuffle","shuffledCorrect","isEqual","item","shuffledTwice","render","imageSupport","toolbarOpts","pluginProps","singularChoiceLabel","pluralChoiceLabel","spellCheck","maxImageWidth","maxImageHeight","errors","mathMlOptions","ordering","state","choicesErrors","orderError","vTilerStyle","gridTemplateColumns","gridTemplateRows","createElement","style","tiles","key","type","bind","onClick","size","variant","toUpperCase","AlertDialog","title","onConfirm","PropTypes","array","isRequired","func","shape","add","delete","object","bool","string","_default","exports"],"sources":["../src/choice-editor.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport debug from 'debug';\nimport { isEqual, shuffle } from 'lodash-es';\nimport Button from '@mui/material/Button';\nimport { styled } from '@mui/material/styles';\nimport { InputContainer } from '@pie-lib/render-ui';\nimport { AlertDialog } from '@pie-lib/config-ui';\n\nimport ChoiceTile from './choice-tile';\n\nfunction findFreeChoiceSlot(choices) {\n let slot = 1;\n const ids = choices.map((c) => c.id);\n\n while (ids.includes(`c${slot}`)) {\n slot++;\n }\n\n return slot;\n}\n\nconst log = debug('@pie-element:placement-ordering:configure:choice-editor');\n\nconst StyledControls = styled('div')({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n});\n\nconst StyledAddButton = styled(Button)(({ theme }) => ({\n marginTop: theme.spacing(2.5),\n paddingLeft: theme.spacing(1.5),\n paddingRight: theme.spacing(1.5),\n '& .MuiButton-label': {\n transition: 'opacity 200ms linear',\n '&:hover': {\n opacity: 0.3,\n },\n },\n}));\n\nconst StyledVTiler = styled('div')({\n gridAutoFlow: 'column',\n display: 'grid',\n gridGap: '10px',\n alignItems: 'center',\n});\n\nconst StyledColumnLabel = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(2),\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(1),\n}));\n\nclass ChoiceEditor extends React.Component {\n static propTypes = {\n correctResponse: PropTypes.array.isRequired,\n choices: PropTypes.array.isRequired,\n onChange: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n maxImageHeight: PropTypes.object,\n maxImageWidth: PropTypes.object,\n toolbarOpts: PropTypes.object,\n pluginProps: PropTypes.object,\n placementArea: PropTypes.bool,\n singularChoiceLabel: PropTypes.string,\n pluralChoiceLabel: PropTypes.string,\n choicesLabel: PropTypes.string,\n errors: PropTypes.object,\n spellCheck: PropTypes.bool,\n };\n\n state = { warning: { open: false } };\n\n constructor(props) {\n super(props);\n\n this.onChoiceChange = (choice) => {\n const { choices, onChange, correctResponse } = this.props;\n const index = choices.findIndex((c) => c.id === choice.id);\n\n choices.splice(index, 1, { ...choices[index], label: choice.label });\n onChange(choices, correctResponse);\n };\n\n this.onDelete = (choice) => {\n const { choices, onChange, correctResponse, choicesLabel } = this.props;\n\n if (choices && choices.length === 3) {\n this.setState({\n warning: {\n open: true,\n text: `There have to be at least 3 ${choicesLabel}.`,\n },\n });\n } else {\n const updatedChoices = choices.filter((c) => c.id !== choice.id);\n const updatedCorrectResponse = correctResponse.filter((v) => v.id !== choice.id);\n\n onChange(updatedChoices, updatedCorrectResponse);\n }\n };\n\n this.addChoice = () => {\n const { choices, correctResponse, onChange, choicesLabel } = this.props;\n\n if (choices && choices.length === 10) {\n this.setState({\n warning: {\n open: true,\n text: `There can be maximum 10 ${choicesLabel}.`,\n },\n });\n } else {\n const freeId = findFreeChoiceSlot(choices);\n const id = `c${freeId}`;\n const newChoice = { id, label: '' };\n\n const newCorrectResponse = {\n id,\n /**\n * Note: weights are not configurable in the existing component\n * so we'll want do disable this in the controller and ignore it for now.\n */\n weight: 0,\n };\n\n const updatedChoices = choices.concat([newChoice]);\n const updatedCorrectResponse = correctResponse.concat([newCorrectResponse]);\n\n onChange(updatedChoices, updatedCorrectResponse);\n }\n };\n\n this.shuffleChoices = () => {\n const { onChange, choices, correctResponse, placementArea } = this.props;\n let shuffled = shuffle(choices);\n\n // if placementArea is disabled, make sure we don't shuffle choices in the correct order\n const shuffledCorrect =\n !placementArea &&\n isEqual(\n shuffled.map((item) => item.id),\n correctResponse.map((item) => item.id),\n );\n\n if (shuffledCorrect) {\n const shuffledTwice = shuffle(shuffled);\n\n onChange(shuffledTwice, correctResponse);\n } else {\n onChange(shuffled, correctResponse);\n }\n };\n }\n\n render() {\n const {\n correctResponse,\n choices,\n imageSupport,\n toolbarOpts,\n pluginProps,\n singularChoiceLabel,\n pluralChoiceLabel,\n choicesLabel,\n spellCheck,\n maxImageWidth,\n maxImageHeight,\n errors,\n mathMlOptions = {},\n ordering,\n } = this.props;\n const { warning } = this.state;\n const { choicesErrors, orderError } = errors || {};\n\n const vTilerStyle = {\n gridTemplateColumns: 'repeat(2, 1fr)',\n gridTemplateRows: `repeat(${choices.length}, 1fr)`,\n };\n\n return (\n <div>\n <StyledVTiler style={{ gridTemplateColumns: 'repeat(2, 1fr)' }}>\n <StyledColumnLabel label={`Student ${choicesLabel || 'Choices'}`} />\n <StyledColumnLabel label=\"Correct Order\" />\n </StyledVTiler>\n <StyledVTiler style={vTilerStyle}>\n {ordering.tiles.map((choice, index) => (\n <ChoiceTile\n key={`${choice.type}-${choice.id}`}\n choice={choice}\n index={index}\n imageSupport={imageSupport}\n onDelete={this.onDelete.bind(this, choice)}\n onChoiceChange={this.onChoiceChange}\n toolbarOpts={toolbarOpts}\n pluginProps={pluginProps}\n choices={choices}\n choicesLabel={choicesLabel}\n spellCheck={spellCheck}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n error={choicesErrors?.[choice.id] || (orderError && ' ') || null}\n mathMlOptions={mathMlOptions}\n />\n ))}\n </StyledVTiler>\n {orderError && <ErrorText>{orderError}</ErrorText>}\n <StyledControls>\n <StyledAddButton onClick={this.shuffleChoices} size=\"small\" variant=\"contained\">\n {`SHUFFLE ${pluralChoiceLabel}`.toUpperCase()}\n </StyledAddButton>\n\n <StyledAddButton onClick={this.addChoice} size=\"small\" variant=\"contained\">\n {`ADD ${singularChoiceLabel}`.toUpperCase()}\n </StyledAddButton>\n </StyledControls>\n <AlertDialog\n open={warning.open}\n title=\"Warning\"\n text={warning.text}\n onConfirm={() => this.setState({ warning: { open: false } })}\n />\n </div>\n );\n }\n}\n\nexport default ChoiceEditor;\n"],"mappings":"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","ignoreList":[]}
@@ -1,205 +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.ChoiceTile = 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 _CardActions = _interopRequireDefault(require("@mui/material/CardActions"));
14
- var _DragHandle = _interopRequireDefault(require("@mui/icons-material/DragHandle"));
15
- var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
16
- var _RemoveCircle = _interopRequireDefault(require("@mui/icons-material/RemoveCircle"));
17
- var _styles = require("@mui/material/styles");
18
- var _renderUi = require("@pie-lib/render-ui");
19
- var _editableHtmlTipTap = _interopRequireWildcard(require("@pie-lib/editable-html-tip-tap"));
20
- 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); }
21
- const log = (0, _debug.default)('@pie-element:placement-ordering:configure:choice-tile');
22
- const StyledChoiceTile = (0, _styles.styled)('div')(({
23
- theme
24
- }) => ({
25
- margin: `${theme.spacing(1)} 0`,
26
- backgroundColor: theme.palette.background.paper,
27
- display: 'flex',
28
- flexDirection: 'column',
29
- cursor: 'move',
30
- touchAction: 'none'
31
- }));
32
- const StyledEditableHtml = (0, _styles.styled)(_editableHtmlTipTap.default)(({
33
- theme,
34
- isTargetPrompt
35
- }) => ({
36
- width: '80%',
37
- borderRadius: '4px',
38
- ...(isTargetPrompt && {
39
- backgroundColor: theme.palette.error.light
40
- })
41
- }));
42
- const StyledControls = (0, _styles.styled)('div')(() => ({
43
- display: 'flex',
44
- justifyContent: 'flex-end'
45
- }));
46
- const StyledActions = (0, _styles.styled)(_DragHandle.default)(({
47
- theme
48
- }) => ({
49
- color: theme.palette.error[400]
50
- }));
51
- const StyledErrorText = (0, _styles.styled)('div')(({
52
- theme
53
- }) => ({
54
- fontSize: theme.typography.fontSize - 2,
55
- color: theme.palette.error.main,
56
- marginLeft: theme.spacing(5),
57
- marginTop: theme.spacing(1)
58
- }));
59
- const StyledRemoveCircle = (0, _styles.styled)(_RemoveCircle.default)(({
60
- theme
61
- }) => ({
62
- fill: theme.palette.error[500]
63
- }));
64
- const StyledIconButton = (0, _styles.styled)(_IconButton.default)({
65
- color: `${_renderUi.color.tertiary()} !important`
66
- });
67
- const ChoiceTile = props => {
68
- const {
69
- choice,
70
- index,
71
- onChoiceChange,
72
- onDelete,
73
- imageSupport,
74
- spellCheck,
75
- toolbarOpts,
76
- pluginProps,
77
- maxImageWidth,
78
- maxImageHeight,
79
- error,
80
- mathMlOptions = {}
81
- } = props;
82
- const {
83
- label,
84
- editable,
85
- type
86
- } = choice;
87
- const draggableId = `${type}-${choice.id}`;
88
- const droppableId = `${type}-drop-${choice.id}`;
89
- const {
90
- attributes,
91
- listeners,
92
- setNodeRef: setDragRef,
93
- transform,
94
- isDragging
95
- } = (0, _core.useDraggable)({
96
- id: draggableId,
97
- data: {
98
- id: choice.id,
99
- index,
100
- type
101
- }
102
- });
103
- const {
104
- setNodeRef: setDropRef
105
- } = (0, _core.useDroppable)({
106
- id: droppableId,
107
- data: {
108
- id: choice.id,
109
- index,
110
- type
111
- }
112
- });
113
- const onLabelChange = label => {
114
- choice.label = label;
115
- onChoiceChange(choice);
116
- };
117
- const style = {
118
- transform: transform ? `translate3d(${transform.x}px, ${transform.y}px, 0)` : undefined,
119
- opacity: isDragging ? 0.5 : 1,
120
- width: '100%'
121
- };
122
- const filteredDefaultPlugins = (_editableHtmlTipTap.DEFAULT_PLUGINS || []).filter(p => p !== 'bulleted-list' && p !== 'numbered-list');
123
- const isEditableElement = target => target.closest('[contenteditable]') || target.closest('input') || target.closest('textarea') || target.isContentEditable;
124
-
125
- // edit listeners to prevent dragging when interacting with editable-html element
126
- const filteredListeners = {
127
- ...listeners,
128
- onKeyDown: e => {
129
- if (isEditableElement(e.target)) {
130
- return;
131
- }
132
- listeners?.onKeyDown?.(e);
133
- },
134
- onPointerDown: e => {
135
- if (isEditableElement(e.target)) {
136
- return;
137
- }
138
- listeners?.onPointerDown?.(e);
139
- }
140
- };
141
- return /*#__PURE__*/_react.default.createElement("div", {
142
- ref: setDropRef
143
- }, /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
144
- ref: setDragRef
145
- }, filteredListeners, attributes), /*#__PURE__*/_react.default.createElement(StyledChoiceTile, {
146
- style: style
147
- }, /*#__PURE__*/_react.default.createElement("div", {
148
- style: {
149
- width: '100%',
150
- display: 'flex'
151
- }
152
- }, /*#__PURE__*/_react.default.createElement(_CardActions.default, null, /*#__PURE__*/_react.default.createElement(StyledActions, null)), /*#__PURE__*/_react.default.createElement(StyledEditableHtml, {
153
- disabled: !editable,
154
- placeholder: type !== 'target' && !label.includes('data-latex') ? 'Enter a choice' : '',
155
- markup: label,
156
- imageSupport: imageSupport || undefined,
157
- onChange: onLabelChange,
158
- pluginProps: pluginProps,
159
- toolbarOpts: toolbarOpts,
160
- activePlugins: filteredDefaultPlugins,
161
- spellCheck: spellCheck,
162
- autoWidthToolbar: true,
163
- maxImageWidth: maxImageWidth,
164
- maxImageHeight: maxImageHeight,
165
- languageCharactersProps: [{
166
- language: 'spanish'
167
- }, {
168
- language: 'special'
169
- }],
170
- error: editable && error,
171
- mathMlOptions: mathMlOptions
172
- }), editable && /*#__PURE__*/_react.default.createElement(StyledControls, null, /*#__PURE__*/_react.default.createElement(StyledIconButton, {
173
- onClick: onDelete,
174
- size: "large"
175
- }, /*#__PURE__*/_react.default.createElement(StyledRemoveCircle, null)))), editable && error && /*#__PURE__*/_react.default.createElement(StyledErrorText, null, error))));
176
- };
177
- exports.ChoiceTile = ChoiceTile;
178
- ChoiceTile.propTypes = {
179
- id: _propTypes.default.any,
180
- maxImageHeight: _propTypes.default.object,
181
- maxImageWidth: _propTypes.default.object,
182
- label: _propTypes.default.string,
183
- isOver: _propTypes.default.bool,
184
- type: _propTypes.default.string,
185
- empty: _propTypes.default.bool,
186
- disabled: _propTypes.default.bool,
187
- outcome: _propTypes.default.object,
188
- index: _propTypes.default.number,
189
- imageSupport: _propTypes.default.shape({
190
- add: _propTypes.default.func.isRequired,
191
- delete: _propTypes.default.func.isRequired
192
- }),
193
- choice: _propTypes.default.object,
194
- choices: _propTypes.default.array.isRequired,
195
- onChoiceChange: _propTypes.default.func.isRequired,
196
- onDelete: _propTypes.default.func.isRequired,
197
- toolbarOpts: _propTypes.default.object,
198
- pluginProps: _propTypes.default.object,
199
- choicesLabel: _propTypes.default.string,
200
- error: _propTypes.default.string,
201
- spellCheck: _propTypes.default.bool,
202
- mathMlOptions: _propTypes.default.object
203
- };
204
- var _default = exports.default = ChoiceTile;
205
- //# sourceMappingURL=choice-tile.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"choice-tile.js","names":["_react","_interopRequireDefault","require","_propTypes","_debug","_core","_CardActions","_DragHandle","_IconButton","_RemoveCircle","_styles","_renderUi","_editableHtmlTipTap","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","log","debug","StyledChoiceTile","styled","theme","margin","spacing","backgroundColor","palette","background","paper","display","flexDirection","cursor","touchAction","StyledEditableHtml","EditableHtml","isTargetPrompt","width","borderRadius","error","light","StyledControls","justifyContent","StyledActions","DragHandle","color","StyledErrorText","fontSize","typography","main","marginLeft","marginTop","StyledRemoveCircle","RemoveCircle","fill","StyledIconButton","IconButton","tertiary","ChoiceTile","props","choice","index","onChoiceChange","onDelete","imageSupport","spellCheck","toolbarOpts","pluginProps","maxImageWidth","maxImageHeight","mathMlOptions","label","editable","type","draggableId","id","droppableId","attributes","listeners","setNodeRef","setDragRef","transform","isDragging","useDraggable","data","setDropRef","useDroppable","onLabelChange","style","x","y","undefined","opacity","filteredDefaultPlugins","DEFAULT_PLUGINS","filter","p","isEditableElement","target","closest","isContentEditable","filteredListeners","onKeyDown","onPointerDown","createElement","ref","_extends2","disabled","placeholder","includes","markup","onChange","activePlugins","autoWidthToolbar","languageCharactersProps","language","onClick","size","exports","propTypes","PropTypes","any","object","string","isOver","bool","empty","outcome","number","shape","add","func","isRequired","delete","choices","array","choicesLabel","_default"],"sources":["../src/choice-tile.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport { useDraggable, useDroppable } from '@dnd-kit/core';\nimport CardActions from '@mui/material/CardActions';\nimport DragHandle from '@mui/icons-material/DragHandle';\nimport IconButton from '@mui/material/IconButton';\nimport RemoveCircle from '@mui/icons-material/RemoveCircle';\nimport { styled } from '@mui/material/styles';\n\nimport { color } from '@pie-lib/render-ui';\nimport EditableHtml, { DEFAULT_PLUGINS } from '@pie-lib/editable-html-tip-tap';\n\nconst log = debug('@pie-element:placement-ordering:configure:choice-tile');\n\nconst StyledChoiceTile = styled('div')(({ theme }) => ({\n margin: `${theme.spacing(1)} 0`,\n backgroundColor: theme.palette.background.paper,\n display: 'flex',\n flexDirection: 'column',\n cursor: 'move',\n touchAction: 'none',\n}));\n\nconst StyledEditableHtml = styled(EditableHtml)(({ theme, isTargetPrompt }) => ({\n width: '80%',\n borderRadius: '4px',\n ...(isTargetPrompt && {\n backgroundColor: theme.palette.error.light,\n }),\n}));\n\nconst StyledControls = styled('div')(() => ({\n display: 'flex',\n justifyContent: 'flex-end',\n}));\n\nconst StyledActions = styled(DragHandle)(({ theme }) => ({\n color: theme.palette.error[400],\n}));\n\nconst StyledErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n marginLeft: theme.spacing(5),\n marginTop: theme.spacing(1),\n}));\n\nconst StyledRemoveCircle = styled(RemoveCircle)(({ theme }) => ({\n fill: theme.palette.error[500],\n}));\n\nconst StyledIconButton = styled(IconButton)({\n color: `${color.tertiary()} !important`,\n});\n\nexport const ChoiceTile = (props) => {\n const {\n choice,\n index,\n onChoiceChange,\n onDelete,\n imageSupport,\n spellCheck,\n toolbarOpts,\n pluginProps,\n maxImageWidth,\n maxImageHeight,\n error,\n mathMlOptions = {},\n } = props;\n const { label, editable, type } = choice;\n const draggableId = `${type}-${choice.id}`;\n const droppableId = `${type}-drop-${choice.id}`;\n\n const {\n attributes,\n listeners,\n setNodeRef: setDragRef,\n transform,\n isDragging,\n } = useDraggable({\n id: draggableId,\n data: {\n id: choice.id,\n index,\n type,\n },\n });\n\n const { setNodeRef: setDropRef } = useDroppable({\n id: droppableId,\n data: {\n id: choice.id,\n index,\n type,\n },\n });\n\n const onLabelChange = (label) => {\n choice.label = label;\n onChoiceChange(choice);\n };\n\n const style = {\n transform: transform ? `translate3d(${transform.x}px, ${transform.y}px, 0)` : undefined,\n opacity: isDragging ? 0.5 : 1,\n width: '100%',\n };\n\n const filteredDefaultPlugins = (DEFAULT_PLUGINS || []).filter((p) => p !== 'bulleted-list' && p !== 'numbered-list');\n\n const isEditableElement = (target) =>\n target.closest('[contenteditable]') ||\n target.closest('input') ||\n target.closest('textarea') ||\n target.isContentEditable;\n\n // edit listeners to prevent dragging when interacting with editable-html element\n const filteredListeners = {\n ...listeners,\n onKeyDown: (e) => {\n if (isEditableElement(e.target)) {\n return;\n }\n\n listeners?.onKeyDown?.(e);\n },\n onPointerDown: (e) => {\n if (isEditableElement(e.target)) {\n return;\n }\n\n listeners?.onPointerDown?.(e);\n },\n };\n\n return (\n <div ref={setDropRef}>\n <div ref={setDragRef} {...filteredListeners} {...attributes}>\n <StyledChoiceTile style={style}>\n <div style={{ width: '100%', display: 'flex' }}>\n <CardActions>\n <StyledActions />\n </CardActions>\n\n <StyledEditableHtml\n disabled={!editable}\n placeholder={type !== 'target' && !label.includes('data-latex') ? 'Enter a choice' : ''}\n markup={label}\n imageSupport={imageSupport || undefined}\n onChange={onLabelChange}\n pluginProps={pluginProps}\n toolbarOpts={toolbarOpts}\n activePlugins={filteredDefaultPlugins}\n spellCheck={spellCheck}\n autoWidthToolbar\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n error={editable && error}\n mathMlOptions={mathMlOptions}\n />\n\n {editable && (\n <StyledControls>\n <StyledIconButton onClick={onDelete} size=\"large\">\n <StyledRemoveCircle />\n </StyledIconButton>\n </StyledControls>\n )}\n </div>\n\n {editable && error && <StyledErrorText>{error}</StyledErrorText>}\n </StyledChoiceTile>\n </div>\n </div>\n );\n};\n\nChoiceTile.propTypes = {\n id: PropTypes.any,\n maxImageHeight: PropTypes.object,\n maxImageWidth: PropTypes.object,\n label: PropTypes.string,\n isOver: PropTypes.bool,\n type: PropTypes.string,\n empty: PropTypes.bool,\n disabled: PropTypes.bool,\n outcome: PropTypes.object,\n index: PropTypes.number,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n choice: PropTypes.object,\n choices: PropTypes.array.isRequired,\n onChoiceChange: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n toolbarOpts: PropTypes.object,\n pluginProps: PropTypes.object,\n choicesLabel: PropTypes.string,\n error: PropTypes.string,\n spellCheck: PropTypes.bool,\n mathMlOptions: PropTypes.object,\n};\n\nexport default ChoiceTile;\n"],"mappings":"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","ignoreList":[]}