@pie-lib/config-ui 12.0.0-next.0 → 12.1.0-next.0
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/lib/__tests__/alert-dialog.test.js +262 -0
- package/lib/__tests__/checkbox.test.js +227 -0
- package/lib/__tests__/choice-utils.test.js +14 -0
- package/lib/__tests__/form-section.test.js +252 -0
- package/lib/__tests__/help.test.js +270 -0
- package/lib/__tests__/input.test.js +268 -0
- package/lib/__tests__/langs.test.js +541 -0
- package/lib/__tests__/number-text-field-custom.test.js +362 -0
- package/lib/__tests__/number-text-field.test.js +421 -0
- package/lib/__tests__/radio-with-label.test.js +233 -0
- package/lib/__tests__/settings-panel.test.js +184 -0
- package/lib/__tests__/settings.test.js +653 -0
- package/lib/__tests__/tabs.test.js +211 -0
- package/lib/__tests__/two-choice.test.js +124 -0
- package/lib/__tests__/with-stateful-model.test.js +221 -0
- package/lib/alert-dialog.js +1 -1
- package/lib/checkbox.js +1 -1
- package/lib/choice-configuration/__tests__/feedback-menu.test.js +287 -0
- package/lib/choice-configuration/__tests__/index.test.js +253 -0
- package/lib/choice-configuration/feedback-menu.js +1 -1
- package/lib/choice-configuration/index.js +3 -3
- package/lib/choice-configuration/index.js.map +1 -1
- package/lib/choice-utils.js +1 -1
- package/lib/feedback-config/__tests__/feedback-config.test.js +201 -0
- package/lib/feedback-config/__tests__/feedback-selector.test.js +177 -0
- package/lib/feedback-config/feedback-selector.js +3 -3
- package/lib/feedback-config/feedback-selector.js.map +1 -1
- package/lib/feedback-config/group.js +1 -1
- package/lib/feedback-config/index.js +1 -1
- package/lib/form-section.js +1 -1
- package/lib/help.js +1 -1
- package/lib/index.js +1 -1
- package/lib/input.js +1 -1
- package/lib/inputs.js +1 -1
- package/lib/langs.js +1 -1
- package/lib/layout/__tests__/config.layout.test.js +70 -0
- package/lib/layout/__tests__/layout-content.test.js +6 -0
- package/lib/layout/config-layout.js +1 -1
- package/lib/layout/index.js +1 -1
- package/lib/layout/layout-contents.js +1 -1
- package/lib/layout/settings-box.js +1 -1
- package/lib/mui-box/index.js +1 -1
- package/lib/number-text-field-custom.js +1 -1
- package/lib/number-text-field.js +1 -1
- package/lib/radio-with-label.js +1 -1
- package/lib/settings/display-size.js +1 -1
- package/lib/settings/index.js +1 -1
- package/lib/settings/panel.js +1 -1
- package/lib/settings/settings-radio-label.js +1 -1
- package/lib/settings/toggle.js +1 -1
- package/lib/tabs/index.js +1 -1
- package/lib/tags-input/__tests__/index.test.js +183 -0
- package/lib/tags-input/index.js +1 -1
- package/lib/two-choice.js +1 -1
- package/lib/with-stateful-model.js +1 -1
- package/package.json +5 -13
- package/src/choice-configuration/__tests__/index.test.jsx +1 -1
- package/src/choice-configuration/index.jsx +68 -75
- package/src/feedback-config/__tests__/feedback-selector.test.jsx +3 -13
- package/src/feedback-config/feedback-selector.jsx +3 -7
|
@@ -6,14 +6,14 @@ import ActionDelete from '@mui/icons-material/Delete';
|
|
|
6
6
|
import ArrowRight from '@mui/icons-material/SubdirectoryArrowRight';
|
|
7
7
|
import IconButton from '@mui/material/IconButton';
|
|
8
8
|
import { InputContainer } from '@pie-lib/render-ui';
|
|
9
|
-
// import EditableHtml from '@pie-lib/editable-html';
|
|
9
|
+
// import EditableHtml from '@pie-lib/editable-html-tip-tap';
|
|
10
10
|
import { InputCheckbox, InputRadio } from '../inputs';
|
|
11
11
|
import FeedbackMenu from './feedback-menu';
|
|
12
12
|
|
|
13
13
|
// - mathquill error window not defined
|
|
14
14
|
let EditableHtml;
|
|
15
15
|
if (typeof window !== 'undefined') {
|
|
16
|
-
EditableHtml = require('@pie-lib/editable-html')['default'];
|
|
16
|
+
EditableHtml = require('@pie-lib/editable-html-tip-tap')['default'];
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
const StyledEditorHolder = styled('div')(({ theme }) => ({
|
|
@@ -38,7 +38,6 @@ const EditableHtmlContainer = ({
|
|
|
38
38
|
uploadSoundSupport,
|
|
39
39
|
mathMlOptions = {},
|
|
40
40
|
}) => {
|
|
41
|
-
|
|
42
41
|
return (
|
|
43
42
|
<InputContainer label={label} className={className}>
|
|
44
43
|
<StyledEditorHolder>
|
|
@@ -288,81 +287,75 @@ export class ChoiceConfiguration extends React.Component {
|
|
|
288
287
|
const InputToggle = mode === 'checkbox' ? InputCheckbox : InputRadio;
|
|
289
288
|
|
|
290
289
|
return (
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
{allowFeedBack && (
|
|
328
|
-
<Feedback
|
|
329
|
-
{...data.feedback}
|
|
330
|
-
correct={data.correct}
|
|
331
|
-
defaults={defaultFeedback}
|
|
332
|
-
onChange={this.onFeedbackValueChange}
|
|
333
|
-
toolbarOpts={toolbarOpts}
|
|
334
|
-
/>
|
|
335
|
-
)}
|
|
336
|
-
</StyledMiddleColumn>
|
|
290
|
+
<StyledTopRow>
|
|
291
|
+
{index > 0 && (
|
|
292
|
+
<StyledIndex type="title">
|
|
293
|
+
{useLetterOrdering ? String.fromCharCode(96 + index).toUpperCase() : index}
|
|
294
|
+
</StyledIndex>
|
|
295
|
+
)}
|
|
296
|
+
|
|
297
|
+
<StyledToggle>
|
|
298
|
+
<InputToggle
|
|
299
|
+
onChange={this.onCheckedChange}
|
|
300
|
+
label={!noLabels ? 'Correct' : ''}
|
|
301
|
+
checked={!!data.correct}
|
|
302
|
+
error={noCorrectAnswerError}
|
|
303
|
+
/>
|
|
304
|
+
</StyledToggle>
|
|
305
|
+
|
|
306
|
+
<StyledMiddleColumn>
|
|
307
|
+
<EditableHtmlContainer
|
|
308
|
+
label={!noLabels ? 'Label' : ''}
|
|
309
|
+
value={data.label}
|
|
310
|
+
onChange={this.onLabelChange}
|
|
311
|
+
imageSupport={imageSupport}
|
|
312
|
+
disableImageAlignmentButtons={disableImageAlignmentButtons}
|
|
313
|
+
disabled={disabled}
|
|
314
|
+
spellCheck={spellCheck}
|
|
315
|
+
nonEmpty={nonEmpty}
|
|
316
|
+
pluginOpts={pluginOpts}
|
|
317
|
+
toolbarOpts={toolbarOpts}
|
|
318
|
+
error={error}
|
|
319
|
+
uploadSoundSupport={uploadSoundSupport}
|
|
320
|
+
mathMlOptions={mathMlOptions}
|
|
321
|
+
maxImageWidth={maxImageWidth}
|
|
322
|
+
maxImageHeight={maxImageHeight}
|
|
323
|
+
/>
|
|
324
|
+
{error && <StyledErrorText>{error}</StyledErrorText>}
|
|
337
325
|
|
|
338
326
|
{allowFeedBack && (
|
|
339
|
-
<
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
</StyledFeedbackIcon>
|
|
347
|
-
</InputContainer>
|
|
348
|
-
</StyledFeedback>
|
|
349
|
-
)}
|
|
350
|
-
|
|
351
|
-
{allowDelete && (
|
|
352
|
-
<StyledDelete>
|
|
353
|
-
<InputContainer label={!noLabels ? 'Delete' : ''}>
|
|
354
|
-
<StyledDeleteIcon>
|
|
355
|
-
<IconButton
|
|
356
|
-
aria-label="delete"
|
|
357
|
-
onClick={onDelete}
|
|
358
|
-
size="large">
|
|
359
|
-
<ActionDelete />
|
|
360
|
-
</IconButton>
|
|
361
|
-
</StyledDeleteIcon>
|
|
362
|
-
</InputContainer>
|
|
363
|
-
</StyledDelete>
|
|
327
|
+
<Feedback
|
|
328
|
+
{...data.feedback}
|
|
329
|
+
correct={data.correct}
|
|
330
|
+
defaults={defaultFeedback}
|
|
331
|
+
onChange={this.onFeedbackValueChange}
|
|
332
|
+
toolbarOpts={toolbarOpts}
|
|
333
|
+
/>
|
|
364
334
|
)}
|
|
365
|
-
</
|
|
335
|
+
</StyledMiddleColumn>
|
|
336
|
+
|
|
337
|
+
{allowFeedBack && (
|
|
338
|
+
<StyledFeedback>
|
|
339
|
+
<InputContainer label={!noLabels ? 'Feedback' : ''}>
|
|
340
|
+
<StyledFeedbackIcon>
|
|
341
|
+
<FeedbackMenu onChange={this.onFeedbackTypeChange} value={data.feedback} />
|
|
342
|
+
</StyledFeedbackIcon>
|
|
343
|
+
</InputContainer>
|
|
344
|
+
</StyledFeedback>
|
|
345
|
+
)}
|
|
346
|
+
|
|
347
|
+
{allowDelete && (
|
|
348
|
+
<StyledDelete>
|
|
349
|
+
<InputContainer label={!noLabels ? 'Delete' : ''}>
|
|
350
|
+
<StyledDeleteIcon>
|
|
351
|
+
<IconButton aria-label="delete" onClick={onDelete} size="large">
|
|
352
|
+
<ActionDelete />
|
|
353
|
+
</IconButton>
|
|
354
|
+
</StyledDeleteIcon>
|
|
355
|
+
</InputContainer>
|
|
356
|
+
</StyledDelete>
|
|
357
|
+
)}
|
|
358
|
+
</StyledTopRow>
|
|
366
359
|
);
|
|
367
360
|
}
|
|
368
361
|
}
|
|
@@ -4,15 +4,11 @@ import React from 'react';
|
|
|
4
4
|
import { FeedbackSelector } from '../feedback-selector';
|
|
5
5
|
|
|
6
6
|
// Mock the editable-html component to avoid window dependencies in tests
|
|
7
|
-
jest.mock('@pie-lib/editable-html', () => {
|
|
7
|
+
jest.mock('@pie-lib/editable-html-tip-tap', () => {
|
|
8
8
|
return {
|
|
9
9
|
__esModule: true,
|
|
10
10
|
default: ({ markup, onChange }) => (
|
|
11
|
-
<textarea
|
|
12
|
-
data-testid="editable-html"
|
|
13
|
-
defaultValue={markup || ''}
|
|
14
|
-
onChange={(e) => onChange(e.target.value)}
|
|
15
|
-
/>
|
|
11
|
+
<textarea data-testid="editable-html" defaultValue={markup || ''} onChange={(e) => onChange(e.target.value)} />
|
|
16
12
|
),
|
|
17
13
|
};
|
|
18
14
|
});
|
|
@@ -21,13 +17,7 @@ describe('feedback-selector', () => {
|
|
|
21
17
|
let onChange;
|
|
22
18
|
|
|
23
19
|
const renderComponent = (feedback = { type: 'default', default: 'hi' }) => {
|
|
24
|
-
return render(
|
|
25
|
-
<FeedbackSelector
|
|
26
|
-
label={'Feedback'}
|
|
27
|
-
onChange={onChange}
|
|
28
|
-
feedback={feedback}
|
|
29
|
-
/>
|
|
30
|
-
);
|
|
20
|
+
return render(<FeedbackSelector label={'Feedback'} onChange={onChange} feedback={feedback} />);
|
|
31
21
|
};
|
|
32
22
|
|
|
33
23
|
beforeEach(() => {
|
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
//import EditableHTML from '@pie-lib/editable-html';
|
|
1
|
+
//import EditableHTML from '@pie-lib/editable-html-tip-tap';
|
|
2
2
|
import { InputContainer } from '@pie-lib/render-ui';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import { styled } from '@mui/material/styles';
|
|
6
6
|
import Group from './group';
|
|
7
7
|
|
|
8
|
-
|
|
9
8
|
// - mathquill error window not defined
|
|
10
9
|
let EditableHtml;
|
|
11
10
|
let StyledEditableHTML;
|
|
12
11
|
if (typeof window !== 'undefined') {
|
|
13
|
-
EditableHtml = require('@pie-lib/editable-html')['default'];
|
|
12
|
+
EditableHtml = require('@pie-lib/editable-html-tip-tap')['default'];
|
|
14
13
|
StyledEditableHTML = styled(EditableHtml)(({ theme }) => ({
|
|
15
14
|
fontFamily: theme.typography.fontFamily,
|
|
16
15
|
}));
|
|
@@ -87,10 +86,7 @@ export class FeedbackSelector extends React.Component {
|
|
|
87
86
|
|
|
88
87
|
return (
|
|
89
88
|
<StyledFeedbackSelector>
|
|
90
|
-
<StyledInputContainer
|
|
91
|
-
label={label}
|
|
92
|
-
extraClasses={{ label: { transform: 'translateY(-20%)' } }}
|
|
93
|
-
>
|
|
89
|
+
<StyledInputContainer label={label} extraClasses={{ label: { transform: 'translateY(-20%)' } }}>
|
|
94
90
|
<StyledGroup
|
|
95
91
|
keys={feedbackKeys}
|
|
96
92
|
label={label}
|