@pie-lib/render-ui 4.15.9 → 4.17.0-beta.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/CHANGELOG.md +16 -0
- package/NEXT.CHANGELOG.json +1 -0
- package/lib/__tests__/color.test.js +20 -0
- package/lib/__tests__/has-media.test.js +28 -0
- package/lib/__tests__/has-text.test.js +27 -0
- package/lib/__tests__/html-and-math.test.js +64 -0
- package/lib/__tests__/preview-prompt.test.js +66 -0
- package/lib/__tests__/purpose.test.js +42 -0
- package/lib/__tests__/readable.test.js +49 -0
- package/lib/__tests__/response-indicators.test.js +27 -0
- package/lib/__tests__/ui-layout.test.js +43 -0
- package/lib/__tests__/withUndoReset.test.js +223 -0
- package/lib/append-css-rules.js +88 -0
- package/lib/assets/enableAudioAutoplayImage.js +9 -0
- package/lib/collapsible/__tests__/index.test.js +23 -0
- package/lib/collapsible/index.js +3 -2
- package/lib/color.js +124 -3
- package/lib/feedback.js +1 -2
- package/lib/has-media.js +27 -0
- package/lib/has-text.js +6 -2
- package/lib/html-and-math.js +1 -1
- package/lib/index.js +33 -1
- package/lib/input-container.js +1 -1
- package/lib/preview-layout.js +17 -5
- package/lib/preview-prompt.js +157 -42
- package/lib/purpose.js +1 -1
- package/lib/readable.js +1 -1
- package/lib/response-indicators.js +1 -1
- package/lib/ui-layout.js +122 -0
- package/lib/withUndoReset.js +1 -1
- package/package.json +4 -4
- package/src/__tests__/__snapshots__/html-and-math.test.js.snap +11 -0
- package/src/__tests__/__snapshots__/preview-prompt.test.jsx.snap +37 -0
- package/src/__tests__/__snapshots__/purpose.test.jsx.snap +42 -0
- package/src/__tests__/__snapshots__/readable.test.jsx.snap +64 -0
- package/src/__tests__/__snapshots__/response-indicators.test.jsx.snap +95 -0
- package/src/__tests__/color.test.js +12 -0
- package/src/__tests__/has-media.test.js +20 -0
- package/src/__tests__/has-text.test.js +21 -0
- package/src/__tests__/html-and-math.test.js +46 -0
- package/src/__tests__/preview-prompt.test.jsx +56 -0
- package/src/__tests__/purpose.test.jsx +47 -0
- package/src/__tests__/readable.test.jsx +64 -0
- package/src/__tests__/response-indicators.test.jsx +16 -0
- package/src/__tests__/ui-layout.test.jsx +34 -0
- package/src/__tests__/withUndoReset.test.jsx +254 -0
- package/src/append-css-rules.js +51 -0
- package/src/assets/enableAudioAutoplayImage.js +1 -0
- package/src/collapsible/__tests__/__snapshots__/index.test.jsx.snap +18 -0
- package/src/collapsible/__tests__/index.test.jsx +13 -0
- package/src/collapsible/index.jsx +1 -0
- package/src/color.js +40 -0
- package/src/feedback.jsx +0 -1
- package/src/has-media.js +16 -0
- package/src/has-text.js +5 -1
- package/src/index.js +8 -0
- package/src/preview-layout.jsx +14 -3
- package/src/preview-prompt.jsx +150 -26
- package/src/ui-layout.jsx +66 -0
- package/README.md +0 -33
- package/lib/collapsible/index.js.map +0 -1
- package/lib/color.js.map +0 -1
- package/lib/feedback.js.map +0 -1
- package/lib/has-text.js.map +0 -1
- package/lib/html-and-math.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/input-container.js.map +0 -1
- package/lib/preview-layout.js.map +0 -1
- package/lib/preview-prompt.js.map +0 -1
- package/lib/purpose.js.map +0 -1
- package/lib/readable.js.map +0 -1
- package/lib/response-indicators.js.map +0 -1
- package/lib/withUndoReset.js.map +0 -1
package/src/preview-prompt.jsx
CHANGED
|
@@ -15,6 +15,11 @@ export class PreviewPrompt extends Component {
|
|
|
15
15
|
className: PropTypes.string,
|
|
16
16
|
onClick: PropTypes.func,
|
|
17
17
|
defaultClassName: PropTypes.string,
|
|
18
|
+
autoplayAudioEnabled: PropTypes.bool,
|
|
19
|
+
customAudioButton: {
|
|
20
|
+
playImage: PropTypes.string,
|
|
21
|
+
pauseImage: PropTypes.string,
|
|
22
|
+
},
|
|
18
23
|
};
|
|
19
24
|
|
|
20
25
|
static defaultProps = {
|
|
@@ -22,7 +27,7 @@ export class PreviewPrompt extends Component {
|
|
|
22
27
|
};
|
|
23
28
|
|
|
24
29
|
parsedText = (text) => {
|
|
25
|
-
|
|
30
|
+
const { customAudioButton } = this.props;
|
|
26
31
|
const div = document.createElement('div');
|
|
27
32
|
div.innerHTML = text;
|
|
28
33
|
|
|
@@ -34,38 +39,150 @@ export class PreviewPrompt extends Component {
|
|
|
34
39
|
source.setAttribute('src', audio.getAttribute('src'));
|
|
35
40
|
|
|
36
41
|
audio.removeAttribute('src');
|
|
42
|
+
audio.setAttribute('id', 'pie-prompt-audio-player');
|
|
43
|
+
|
|
37
44
|
audio.appendChild(source);
|
|
45
|
+
|
|
46
|
+
if (customAudioButton) {
|
|
47
|
+
audio.style.display = 'none';
|
|
48
|
+
|
|
49
|
+
const playButton = document.createElement('div');
|
|
50
|
+
playButton.id = 'play-audio-button';
|
|
51
|
+
|
|
52
|
+
Object.assign(playButton.style, {
|
|
53
|
+
cursor: 'pointer',
|
|
54
|
+
display: 'block',
|
|
55
|
+
width: '128px',
|
|
56
|
+
height: '128px',
|
|
57
|
+
backgroundImage: `url(${customAudioButton.pauseImage})`,
|
|
58
|
+
backgroundSize: 'cover',
|
|
59
|
+
borderRadius: '50%',
|
|
60
|
+
border: '1px solid #326295',
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
audio.parentNode.insertBefore(playButton, audio);
|
|
64
|
+
}
|
|
38
65
|
}
|
|
39
66
|
|
|
40
67
|
return div.innerHTML;
|
|
41
68
|
};
|
|
42
69
|
|
|
70
|
+
addCustomAudioButtonControls() {
|
|
71
|
+
const { autoplayAudioEnabled, customAudioButton } = this.props;
|
|
72
|
+
const playButton = document.getElementById('play-audio-button');
|
|
73
|
+
const audio = document.getElementById('pie-prompt-audio-player');
|
|
74
|
+
|
|
75
|
+
if (autoplayAudioEnabled && audio) {
|
|
76
|
+
audio
|
|
77
|
+
.play()
|
|
78
|
+
.then(() => {
|
|
79
|
+
if (playButton && customAudioButton) {
|
|
80
|
+
audio.addEventListener('ended', handleAudioEnded);
|
|
81
|
+
}
|
|
82
|
+
})
|
|
83
|
+
.catch((error) => {
|
|
84
|
+
console.error('Error playing audio', error);
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (!playButton || !audio || !customAudioButton) return;
|
|
89
|
+
|
|
90
|
+
const handlePlayClick = () => {
|
|
91
|
+
// if already playing, don't play again
|
|
92
|
+
if (!audio.paused) return;
|
|
93
|
+
if (playButton.style.backgroundImage.includes(customAudioButton.pauseImage)) return;
|
|
94
|
+
|
|
95
|
+
audio.play();
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
const handleAudioEnded = () => {
|
|
99
|
+
playButton.style.backgroundImage = `url(${customAudioButton.playImage})`;
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
const handleAudioPlay = () => {
|
|
103
|
+
Object.assign(playButton.style, {
|
|
104
|
+
backgroundImage: `url(${customAudioButton.pauseImage})`,
|
|
105
|
+
border: '1px solid #ccc',
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
const handleAudioPause = () => {
|
|
110
|
+
Object.assign(playButton.style, {
|
|
111
|
+
backgroundImage: `url(${customAudioButton.playImage})`,
|
|
112
|
+
border: '1px solid #326295',
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
playButton.addEventListener('click', handlePlayClick);
|
|
117
|
+
audio.addEventListener('play', handleAudioPlay);
|
|
118
|
+
audio.addEventListener('pause', handleAudioPause);
|
|
119
|
+
audio.addEventListener('ended', handleAudioEnded);
|
|
120
|
+
|
|
121
|
+
// store event handler references so they can be removed later
|
|
122
|
+
this._handlePlayClick = handlePlayClick;
|
|
123
|
+
this._handleAudioPlay = handleAudioPlay;
|
|
124
|
+
this._handleAudioPause = handleAudioPause;
|
|
125
|
+
this._handleAudioEnded = handleAudioEnded;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
removeCustomAudioButtonListeners() {
|
|
129
|
+
const playButton = document.getElementById('play-audio-button');
|
|
130
|
+
const audio = document.querySelector('audio');
|
|
131
|
+
|
|
132
|
+
if (!playButton || !audio) return;
|
|
133
|
+
|
|
134
|
+
// remove event listeners using stored references
|
|
135
|
+
playButton.removeEventListener('click', this._handlePlayClick);
|
|
136
|
+
audio.removeEventListener('play', this._handleAudioPlay);
|
|
137
|
+
audio.removeEventListener('pause', this._handleAudioPause);
|
|
138
|
+
audio.removeEventListener('ended', this._handleAudioEnded);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
componentDidMount() {
|
|
142
|
+
this.alignImages();
|
|
143
|
+
this.addCustomAudioButtonControls();
|
|
144
|
+
}
|
|
145
|
+
|
|
43
146
|
componentDidUpdate() {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
div
|
|
64
|
-
|
|
147
|
+
this.alignImages();
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
componentWillUnmount() {
|
|
151
|
+
this.removeCustomAudioButtonListeners();
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
alignImages() {
|
|
155
|
+
const previewPrompts = document.querySelectorAll('#preview-prompt');
|
|
156
|
+
|
|
157
|
+
previewPrompts.forEach((previewPrompt) => {
|
|
158
|
+
const images = previewPrompt.getElementsByTagName('img');
|
|
159
|
+
|
|
160
|
+
if (images && images.length) {
|
|
161
|
+
for (let image of images) {
|
|
162
|
+
// check if alignment property was set
|
|
163
|
+
if (image.attributes && image.attributes.alignment && image.attributes.alignment.value) {
|
|
164
|
+
const parentNode = image.parentElement;
|
|
165
|
+
|
|
166
|
+
// check if div is not already added to dom and replace current image with wrapped image
|
|
167
|
+
if (
|
|
168
|
+
!(
|
|
169
|
+
parentNode.tagName === 'DIV' &&
|
|
170
|
+
parentNode.style.display === 'flex' &&
|
|
171
|
+
parentNode.style.width === '100%'
|
|
172
|
+
)
|
|
173
|
+
) {
|
|
174
|
+
const div = document.createElement('div');
|
|
175
|
+
div.style.display = 'flex';
|
|
176
|
+
div.style.width = '100%';
|
|
177
|
+
|
|
178
|
+
const copyImage = image.cloneNode(true);
|
|
179
|
+
div.appendChild(copyImage);
|
|
180
|
+
parentNode.replaceChild(div, image);
|
|
181
|
+
}
|
|
65
182
|
}
|
|
66
183
|
}
|
|
67
184
|
}
|
|
68
|
-
}
|
|
185
|
+
});
|
|
69
186
|
}
|
|
70
187
|
|
|
71
188
|
render() {
|
|
@@ -105,7 +222,8 @@ const styles = (theme) => ({
|
|
|
105
222
|
},
|
|
106
223
|
label: {
|
|
107
224
|
color: `${color.text()} !important`, //'var(--choice-input-color, black)',
|
|
108
|
-
display: '
|
|
225
|
+
display: 'flex',
|
|
226
|
+
flexDirection: 'column',
|
|
109
227
|
verticalAlign: 'middle',
|
|
110
228
|
cursor: 'pointer',
|
|
111
229
|
'& > p': {
|
|
@@ -119,11 +237,17 @@ const styles = (theme) => ({
|
|
|
119
237
|
'&:not(.MathJax) > table tr': {
|
|
120
238
|
'&:nth-child(2n)': {
|
|
121
239
|
backgroundColor: '#f6f8fa',
|
|
240
|
+
color: theme.palette.common.black,
|
|
122
241
|
},
|
|
123
242
|
},
|
|
124
|
-
|
|
243
|
+
// align table content to left as per STAR requirement PD-3687
|
|
244
|
+
'&:not(.MathJax) table td, &:not(.MathJax) table th': {
|
|
125
245
|
padding: '.6em 1em',
|
|
126
|
-
textAlign: '
|
|
246
|
+
textAlign: 'left',
|
|
247
|
+
},
|
|
248
|
+
// added this to fix alignment of text in prompt imported from studio (PD-3423)
|
|
249
|
+
'&:not(.MathJax) > table td > p.kds-indent': {
|
|
250
|
+
textAlign: 'initial',
|
|
127
251
|
},
|
|
128
252
|
},
|
|
129
253
|
});
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { withStyles } from '@material-ui/core/styles';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import classNames from 'classnames';
|
|
5
|
+
import AppendCSSRules from './append-css-rules';
|
|
6
|
+
|
|
7
|
+
class UiLayout extends AppendCSSRules {
|
|
8
|
+
static propTypes = {
|
|
9
|
+
classes: PropTypes.object,
|
|
10
|
+
className: PropTypes.string,
|
|
11
|
+
children: PropTypes.array,
|
|
12
|
+
extraCSSRules: PropTypes.shape({
|
|
13
|
+
names: PropTypes.arrayOf(PropTypes.string),
|
|
14
|
+
rules: PropTypes.string,
|
|
15
|
+
}),
|
|
16
|
+
fontSizeFactor: PropTypes.number,
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
static defaultProps = {
|
|
20
|
+
extraCSSRules: {},
|
|
21
|
+
fontSizeFactor: 1,
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
constructor(props) {
|
|
25
|
+
super(props);
|
|
26
|
+
this.classesSheet = document.createElement('style');
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
computeStyle(fontSizeFactor) {
|
|
30
|
+
const getFontSize = (element) => parseFloat(getComputedStyle(element).fontSize);
|
|
31
|
+
|
|
32
|
+
const rootFontSize = getFontSize(document.documentElement);
|
|
33
|
+
const bodyFontSize = getFontSize(document.body);
|
|
34
|
+
const effectiveFontSize = Math.max(rootFontSize, bodyFontSize);
|
|
35
|
+
|
|
36
|
+
return fontSizeFactor !== 1 ? { fontSize: `${effectiveFontSize * fontSizeFactor}px` } : null;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
render() {
|
|
40
|
+
const { children, className, classes, fontSizeFactor, ...rest } = this.props;
|
|
41
|
+
|
|
42
|
+
const finalClass = classNames(className, classes.extraCSSRules, classes.uiLayoutContainer);
|
|
43
|
+
const { extraCSSRules, ...restProps } = rest;
|
|
44
|
+
const style = this.computeStyle(fontSizeFactor);
|
|
45
|
+
|
|
46
|
+
return (
|
|
47
|
+
<div className={finalClass} {...restProps} {...(style && { style })}>
|
|
48
|
+
{children}
|
|
49
|
+
</div>
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const styles = {
|
|
55
|
+
extraCSSRules: {},
|
|
56
|
+
// need this because some browsers set their own style on table
|
|
57
|
+
uiLayoutContainer: {
|
|
58
|
+
'& table, th, td': {
|
|
59
|
+
fontSize: 'inherit' /* Ensure table elements inherit font size */,
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const Styled = withStyles(styles)(UiLayout);
|
|
65
|
+
|
|
66
|
+
export default Styled;
|
package/README.md
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# @pie-lib/render-ui
|
|
2
|
-
|
|
3
|
-
Some shared ui components for player rendering that are so small that they don't warrant their own package..
|
|
4
|
-
|
|
5
|
-
## install
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
npm install
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## demo
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
cd demo
|
|
15
|
-
../node_modules/.bin/webpack-dev-server --hot --inline
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
go to http://localhost:8080
|
|
19
|
-
|
|
20
|
-
# colors
|
|
21
|
-
|
|
22
|
-
This package contains a color module that defines the css custom properties that all pie elements should use. It loosely follows the material design naming scheme with a few additions.
|
|
23
|
-
|
|
24
|
-
| name | description | fallback |
|
|
25
|
-
| ---------------------- | --------------------------------------- | ------------------ |
|
|
26
|
-
| `--pie-text` | the color of the text | defaults.TEXT |
|
|
27
|
-
| `--pie-primary` | the primary fill color | defaults.PRIMARY |
|
|
28
|
-
| `--pie-primary-text` | the color of primary text | `--pie-text` |
|
|
29
|
-
| `--pie-secondary` | the secondary fill color | defaults.SECONDARY |
|
|
30
|
-
| `--pie-secondary-text` | the color of secondary text | `--pie-text` |
|
|
31
|
-
| `--pie-correct` | the fill color for correct ui widgets | defaults.CORRECT |
|
|
32
|
-
| `--pie-incorrect` | the fill color for incorrect ui widgets | defaults.INCORRECT |
|
|
33
|
-
| `--pie-disabled` | the disabled color | defaults.DISABLED |
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/collapsible/index.jsx"],"names":["Collapsible","expanded","setState","state","root","props","classes","labels","children","className","title","visible","hidden","r","toggleExpanded","collapsible","React","Component","PropTypes","object","isRequired","string","shape","theme","color","palette","primary","light","borderBottom","paddingTop","spacing","unit"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,W;;;;;;;;;;;;;;;8FAeH;AACNC,MAAAA,QAAQ,EAAE;AADJ,K;uGAIS,YAAM;AACrB,YAAKC,QAAL,CAAc,UAACC,KAAD;AAAA,eAAY;AAAEF,UAAAA,QAAQ,EAAE,CAACE,KAAK,CAACF;AAAnB,SAAZ;AAAA,OAAd;AACD,K;;;;;;WAED,6BAAoB;AAClB,qCAAW,KAAKG,IAAhB;AACD;;;WAED,8BAAqB;AACnB,qCAAW,KAAKA,IAAhB;AACD;;;WAED,kBAAS;AAAA;;AACP,wBAAiD,KAAKC,KAAtD;AAAA,UAAQC,OAAR,eAAQA,OAAR;AAAA,UAAiBC,MAAjB,eAAiBA,MAAjB;AAAA,UAAyBC,QAAzB,eAAyBA,QAAzB;AAAA,UAAmCC,SAAnC,eAAmCA,SAAnC;AACA,UAAMC,KAAK,GAAG,KAAKP,KAAL,CAAWF,QAAX,GAAsBM,MAAM,CAACI,OAAP,IAAkB,MAAxC,GAAiDJ,MAAM,CAACK,MAAP,IAAiB,MAAhF;AAEA,0BACE;AAAK,QAAA,SAAS,EAAEH,SAAhB;AAA2B,QAAA,GAAG,EAAE,aAACI,CAAD;AAAA,iBAAQ,MAAI,CAACT,IAAL,GAAYS,CAApB;AAAA;AAAhC,sBACE;AAAK,QAAA,OAAO,EAAE,KAAKC;AAAnB,sBACE;AAAM,QAAA,SAAS,EAAER,OAAO,CAACI;AAAzB,SAAiCA,KAAjC,CADF,CADF,eAIE,gCAAC,kBAAD;AAAU,cAAI,KAAKP,KAAL,CAAWF,QAAzB;AAAmC,QAAA,OAAO,EAAC,MAA3C;AAAkD,QAAA,aAAa,MAA/D;AAAgE,QAAA,SAAS,EAAEK,OAAO,CAACS;AAAnF,SACGP,QADH,CAJF,CADF;AAUD;;;EA7C8BQ,kBAAMC,S;;;iCAA1BjB,W,eACQ;AACjBM,EAAAA,OAAO,EAAEY,sBAAUC,MAAV,CAAiBC,UADT;AAEjBX,EAAAA,SAAS,EAAES,sBAAUG,MAFJ;AAGjBb,EAAAA,QAAQ,EAAEU,sBAAUC,MAHH;AAIjBZ,EAAAA,MAAM,EAAEW,sBAAUI,KAAV,CAAgB;AACtBX,IAAAA,OAAO,EAAEO,sBAAUG,MADG;AAEtBT,IAAAA,MAAM,EAAEM,sBAAUG;AAFI,GAAhB;AAJS,C;iCADRrB,W,kBAWW;AACpBO,EAAAA,MAAM,EAAE;AADY,C;;eAqCT,uBAAW,UAACgB,KAAD;AAAA,SAAY;AACpCb,IAAAA,KAAK,EAAE;AACLc,MAAAA,KAAK,EAAED,KAAK,CAACE,OAAN,CAAcC,OAAd,CAAsBC,KADxB;AAELC,MAAAA,YAAY,uBAAgBL,KAAK,CAACE,OAAN,CAAcC,OAAd,CAAsBC,KAAtC;AAFP,KAD6B;AAKpCZ,IAAAA,WAAW,EAAE;AACXc,MAAAA,UAAU,EAAEN,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB;AADtB;AALuB,GAAZ;AAAA,CAAX,EAQX/B,WARW,C","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles/index';\nimport Collapse from '@material-ui/core/Collapse/index';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport PropTypes from 'prop-types';\n\nexport class Collapsible extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n children: PropTypes.object,\n labels: PropTypes.shape({\n visible: PropTypes.string,\n hidden: PropTypes.string,\n }),\n };\n\n static defaultProps = {\n labels: {},\n };\n\n state = {\n expanded: false,\n };\n\n toggleExpanded = () => {\n this.setState((state) => ({ expanded: !state.expanded }));\n };\n\n componentDidMount() {\n renderMath(this.root);\n }\n\n componentDidUpdate() {\n renderMath(this.root);\n }\n\n render() {\n const { classes, labels, children, className } = this.props;\n const title = this.state.expanded ? labels.visible || 'Hide' : labels.hidden || 'Show';\n\n return (\n <div className={className} ref={(r) => (this.root = r)}>\n <div onClick={this.toggleExpanded}>\n <span className={classes.title}>{title}</span>\n </div>\n <Collapse in={this.state.expanded} timeout=\"auto\" unmountOnExit className={classes.collapsible}>\n {children}\n </Collapse>\n </div>\n );\n }\n}\n\nexport default withStyles((theme) => ({\n title: {\n color: theme.palette.primary.light,\n borderBottom: `1px dotted ${theme.palette.primary.light}`,\n },\n collapsible: {\n paddingTop: theme.spacing.unit * 2,\n },\n}))(Collapsible);\n"],"file":"index.js"}
|
package/lib/color.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/color.js"],"names":["defaults","TEXT","DISABLED","CORRECT","green","CORRECT_SECONDARY","INCORRECT","orange","INCORRECT_SECONDARY","red","MISSING","PRIMARY","indigo","PRIMARY_LIGHT","PRIMARY_DARK","SECONDARY","pink","A400","SECONDARY_LIGHT","SECONDARY_DARK","BACKGROUND","SECONDARY_BACKGROUND","Object","freeze","v","prefix","args","fallback","pop","reduceRight","acc","pv","text","disabled","correct","correctSecondary","incorrect","incorrectSecondary","missing","primary","primaryLight","primaryDark","primaryText","secondary","secondaryLight","secondaryDark","secondaryText","background","secondaryBackground"],"mappings":"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","sourcesContent":["import green from '@material-ui/core/colors/green';\nimport orange from '@material-ui/core/colors/orange';\nimport pink from '@material-ui/core/colors/pink';\nimport indigo from '@material-ui/core/colors/indigo';\nimport red from '@material-ui/core/colors/red';\n\nexport const defaults = {\n TEXT: 'black',\n DISABLED: 'grey',\n CORRECT: green[500],\n CORRECT_SECONDARY: green[50],\n INCORRECT: orange[500],\n INCORRECT_SECONDARY: red[50],\n MISSING: red[700],\n PRIMARY: indigo[500],\n PRIMARY_LIGHT: indigo[200],\n PRIMARY_DARK: indigo[800],\n SECONDARY: pink.A400,\n SECONDARY_LIGHT: pink[200],\n SECONDARY_DARK: pink[900],\n BACKGROUND: 'rgba(255,255,255,0)',\n SECONDARY_BACKGROUND: 'rgba(241,241,241,1)',\n};\n\nObject.freeze(defaults);\n\nexport const v = (prefix) => (...args) => {\n const fallback = args.pop();\n return args.reduceRight((acc, v) => {\n return `var(--${prefix}-${v}, ${acc})`;\n }, fallback);\n};\n\nconst pv = v('pie');\n\nexport const text = () => pv('text', defaults.TEXT);\nexport const disabled = () => pv('disabled', defaults.DISABLED);\nexport const correct = () => pv('correct', defaults.CORRECT);\nexport const correctSecondary = () => pv('correct-secondary', defaults.CORRECT_SECONDARY);\nexport const incorrect = () => pv('incorrect', defaults.INCORRECT);\nexport const incorrectSecondary = () => pv('incorrect-secondary', defaults.INCORRECT_SECONDARY);\nexport const missing = () => pv('missing', defaults.MISSING);\n\nexport const primary = () => pv('primary', defaults.PRIMARY);\nexport const primaryLight = () => pv('primary-light', defaults.PRIMARY_LIGHT);\nexport const primaryDark = () => pv('primary-dark', defaults.PRIMARY_DARK);\nexport const primaryText = () => pv('primary-text', 'text', defaults.TEXT);\n\nexport const secondary = () => pv('secondary', defaults.SECONDARY);\nexport const secondaryLight = () => pv('secondary-light', defaults.SECONDARY_LIGHT);\nexport const secondaryDark = () => pv('secondary-dark', defaults.SECONDARY_DARK);\n\nexport const secondaryText = () => pv('secondary-text', 'text', defaults.TEXT);\nexport const background = () => pv('background', defaults.BACKGROUND);\nexport const secondaryBackground = () => pv('secondary-background', defaults.SECONDARY_BACKGROUND);\n"],"file":"color.js"}
|
package/lib/feedback.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/feedback.jsx"],"names":["styleSheet","corespringFeedback","transformOrigin","width","display","overflow","color","content","backgroundColor","disabled","borderRadius","fontFamily","fontSize","lineHeight","margin","padding","verticalAlign","correct","incorrect","feedbackEnter","height","feedbackEnterActive","transition","feedbackLeave","feedbackLeaveActive","Feedback","props","correctness","feedback","classes","chooseFeedback","enter","enterActive","leave","leaveActive","exit","__html","React","Component","PropTypes","string","object","isRequired","name"],"mappings":"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","sourcesContent":["/**\n * Lifted from multiple-choice - TODO: create a shared package for it.\n */\nimport { withStyles } from '@material-ui/core/styles';\n\nimport React from 'react';\nimport { TransitionGroup, CSSTransition } from 'react-transition-group';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport * as color from './color';\n\nconst styleSheet = {\n corespringFeedback: {\n transformOrigin: '0% 0px 0px',\n width: '100%',\n display: 'block',\n overflow: 'hidden',\n '&:.incorrect': {\n color: '#946202',\n },\n },\n content: {\n '-webkit-font-smoothing': 'antialiased',\n backgroundColor: `var(--feedback-bg-color, ${color.disabled()})`,\n borderRadius: '4px',\n fontFamily: '\"Roboto\", \"Noto\", sans-serif',\n fontSize: '12px',\n lineHeight: '25px',\n margin: '0px',\n padding: '10px',\n verticalAlign: 'middle',\n color: 'var(--feedback-color, white)',\n },\n correct: {\n backgroundColor: `var(--feedback-correct-bg-color, ${color.correct()})`,\n },\n incorrect: {\n backgroundColor: `var(--feedback-incorrect-bg-color, ${color.incorrect()})`,\n },\n feedbackEnter: {\n height: '1px',\n },\n feedbackEnterActive: {\n height: '45px',\n transition: 'height 500ms',\n },\n feedbackLeave: {\n height: '45px',\n },\n feedbackLeaveActive: {\n height: '1px',\n transition: 'height 200ms',\n },\n};\n\nexport class Feedback extends React.Component {\n static propTypes = {\n correctness: PropTypes.string,\n feedback: PropTypes.string,\n classes: PropTypes.object.isRequired,\n };\n\n render() {\n const { correctness, feedback, classes } = this.props;\n\n function chooseFeedback(correctness) {\n if (correctness && feedback) {\n return (\n <CSSTransition\n classNames={{\n enter: classes.feedbackEnter,\n enterActive: classes.feedbackEnterActive,\n leave: classes.feedbackLeave,\n leaveActive: classes.feedbackLeaveActive,\n }}\n key=\"hasFeedback\"\n timeout={{ enter: 500, exit: 300 }}\n >\n <div className={classes.corespringFeedback}>\n <div\n className={classNames(classes.content, classes[correctness])}\n dangerouslySetInnerHTML={{ __html: feedback }}\n />\n </div>\n </CSSTransition>\n );\n } else {\n return null;\n }\n }\n\n return (\n <div>\n <TransitionGroup>{chooseFeedback(correctness)}</TransitionGroup>\n </div>\n );\n }\n}\n\nexport default withStyles(styleSheet, { name: 'Feedback' })(Feedback);\n"],"file":"feedback.js"}
|
package/lib/has-text.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/has-text.js"],"names":["dp","DOMParser","markupToText","s","root","parseFromString","body","textContent","hasText","tc","trim"],"mappings":";;;;;;AAAA,IAAMA,EAAE,GAAG,IAAIC,SAAJ,EAAX;;AAEA,IAAMC,YAAY,GAAG,SAAfA,YAAe,CAACC,CAAD,EAAO;AAC1B,MAAMC,IAAI,GAAGJ,EAAE,CAACK,eAAH,CAAmBF,CAAnB,EAAsB,WAAtB,CAAb;AACA,SAAOC,IAAI,CAACE,IAAL,CAAUC,WAAjB;AACD,CAHD;;AAKO,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAACL,CAAD,EAAO;AAC5B,MAAI,CAACA,CAAL,EAAQ;AACN,WAAO,KAAP;AACD;;AACD,MAAMM,EAAE,GAAGP,YAAY,CAACC,CAAD,CAAvB;AACA,SAAO,CAAC,EAAEM,EAAE,IAAIA,EAAE,CAACC,IAAH,EAAR,CAAR;AACD,CANM","sourcesContent":["const dp = new DOMParser();\n\nconst markupToText = (s) => {\n const root = dp.parseFromString(s, 'text/html');\n return root.body.textContent;\n};\n\nexport const hasText = (s) => {\n if (!s) {\n return false;\n }\n const tc = markupToText(s);\n return !!(tc && tc.trim());\n};\n"],"file":"has-text.js"}
|
package/lib/html-and-math.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/html-and-math.js"],"names":["HtmlAndMath","node","props","tag","className","html","Tag","r","__html","React","Component","PropTypes","string"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;IAEqBA,W;;;;;;;;;;;;WAYnB,6BAAoB;AAClB,UAAI,KAAKC,IAAT,EAAe;AACb,uCAAW,KAAKA,IAAhB;AACD;AACF;;;WAED,8BAAqB;AACnB,UAAI,KAAKA,IAAT,EAAe;AACb,uCAAW,KAAKA,IAAhB;AACD;AACF;;;WAED,kBAAS;AAAA;;AACP,wBAAiC,KAAKC,KAAtC;AAAA,UAAQC,GAAR,eAAQA,GAAR;AAAA,UAAaC,SAAb,eAAaA,SAAb;AAAA,UAAwBC,IAAxB,eAAwBA,IAAxB;AACA,UAAMC,GAAG,GAAGH,GAAG,IAAI,KAAnB;AACA,0BAAO,gCAAC,GAAD;AAAK,QAAA,GAAG,EAAE,aAACI,CAAD;AAAA,iBAAQ,KAAI,CAACN,IAAL,GAAYM,CAApB;AAAA,SAAV;AAAkC,QAAA,SAAS,EAAEH,SAA7C;AAAwD,QAAA,uBAAuB,EAAE;AAAEI,UAAAA,MAAM,EAAEH;AAAV;AAAjF,QAAP;AACD;;;EA5BsCI,kBAAMC,S;;;iCAA1BV,W,eACA;AACjBG,EAAAA,GAAG,EAAEQ,sBAAUC,MADE;AAEjBR,EAAAA,SAAS,EAAEO,sBAAUC,MAFJ;AAGjBP,EAAAA,IAAI,EAAEM,sBAAUC;AAHC,C;iCADAZ,W,kBAOG;AACpBG,EAAAA,GAAG,EAAE,KADe;AAEpBE,EAAAA,IAAI,EAAE;AAFc,C","sourcesContent":["import React from 'react';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport PropTypes from 'prop-types';\n\nexport default class HtmlAndMath extends React.Component {\n static propTypes = {\n tag: PropTypes.string,\n className: PropTypes.string,\n html: PropTypes.string,\n };\n\n static defaultProps = {\n tag: 'div',\n html: '',\n };\n\n componentDidMount() {\n if (this.node) {\n renderMath(this.node);\n }\n }\n\n componentDidUpdate() {\n if (this.node) {\n renderMath(this.node);\n }\n }\n\n render() {\n const { tag, className, html } = this.props;\n const Tag = tag || 'div';\n return <Tag ref={(r) => (this.node = r)} className={className} dangerouslySetInnerHTML={{ __html: html }} />;\n }\n}\n"],"file":"html-and-math.js"}
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AACA","sourcesContent":["import * as indicators from './response-indicators';\nimport Feedback from './feedback';\nimport Collapsible from './collapsible';\nimport withUndoReset from './withUndoReset';\nimport PreviewLayout from './preview-layout';\nimport HtmlAndMath from './html-and-math';\nimport InputContainer from './input-container';\nimport PreviewPrompt from './preview-prompt';\nimport Readable from './readable';\nimport Purpose from './purpose';\nimport * as color from './color';\nimport { hasText } from './has-text';\n\nexport {\n HtmlAndMath,\n indicators,\n withUndoReset,\n Feedback,\n PreviewLayout,\n Collapsible,\n InputContainer,\n PreviewPrompt,\n color,\n Readable,\n Purpose,\n hasText,\n};\n"],"file":"index.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/input-container.jsx"],"names":["RawInputContainer","props","label","className","children","classes","names","formControl","propTypes","PropTypes","oneOfType","string","object","isRequired","arrayOf","node","theme","marginLeft","marginRight","paddingBottom","spacing","unit","flex","minWidth","fontSize","whiteSpace"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,KAAD,EAAW;AACnC,MAAQC,KAAR,GAAgDD,KAAhD,CAAQC,KAAR;AAAA,MAAeC,SAAf,GAAgDF,KAAhD,CAAeE,SAAf;AAAA,MAA0BC,QAA1B,GAAgDH,KAAhD,CAA0BG,QAA1B;AAAA,MAAoCC,OAApC,GAAgDJ,KAAhD,CAAoCI,OAApC;AACA,MAAMC,KAAK,GAAG,4BAAWD,OAAO,CAACE,WAAnB,EAAgCJ,SAAhC,CAAd;AAEA,sBACE,gCAAC,uBAAD;AAAa,IAAA,SAAS,EAAEG;AAAxB,kBACE,gCAAC,sBAAD;AAAY,IAAA,SAAS,EAAED,OAAO,CAACH,KAA/B;AAAsC,IAAA,MAAM,EAAE;AAA9C,KACGA,KADH,CADF,EAIGE,QAJH,CADF;AAQD,CAZD;;AAcAJ,iBAAiB,CAACQ,SAAlB,GAA8B;AAC5BN,EAAAA,KAAK,EAAEO,sBAAUC,SAAV,CAAoB,CAACD,sBAAUE,MAAX,EAAmBF,sBAAUG,MAA7B,CAApB,EAA0DC,UADrC;AAE5BV,EAAAA,SAAS,EAAEM,sBAAUE,MAFO;AAG5BP,EAAAA,QAAQ,EAAEK,sBAAUC,SAAV,CAAoB,CAACD,sBAAUK,OAAV,CAAkBL,sBAAUM,IAA5B,CAAD,EAAoCN,sBAAUM,IAA9C,CAApB,EAAyEF,UAHvD;AAI5BR,EAAAA,OAAO,EAAEI,sBAAUG,MAAV,CAAiBC;AAJE,CAA9B;;eAOe,wBAAW,UAACG,KAAD;AAAA,SAAY;AACpCT,IAAAA,WAAW,EAAE;AACXU,MAAAA,UAAU,EAAE,CADD;AAEXC,MAAAA,WAAW,EAAE,CAFF;AAGXC,MAAAA,aAAa,EAAEH,KAAK,CAACI,OAAN,CAAcC,IAHlB;AAIXC,MAAAA,IAAI,EAAE,UAJK;AAKXC,MAAAA,QAAQ,EAAEP,KAAK,CAACI,OAAN,CAAcC,IAAd,GAAqB;AALpB,KADuB;AAQpCnB,IAAAA,KAAK,EAAE;AACLsB,MAAAA,QAAQ,EAAE,SADL;AAELC,MAAAA,UAAU,EAAE;AAFP;AAR6B,GAAZ;AAAA,CAAX,EAYXzB,iBAZW,C","sourcesContent":["import InputLabel from '@material-ui/core/InputLabel';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport FormControl from '@material-ui/core/FormControl';\n\nconst RawInputContainer = (props) => {\n const { label, className, children, classes } = props;\n const names = classNames(classes.formControl, className);\n\n return (\n <FormControl className={names}>\n <InputLabel className={classes.label} shrink={true}>\n {label}\n </InputLabel>\n {children}\n </FormControl>\n );\n};\n\nRawInputContainer.propTypes = {\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n classes: PropTypes.object.isRequired,\n};\n\nexport default withStyles((theme) => ({\n formControl: {\n marginLeft: 0,\n marginRight: 0,\n paddingBottom: theme.spacing.unit,\n flex: '1 0 auto',\n minWidth: theme.spacing.unit * 4,\n },\n label: {\n fontSize: 'inherit',\n whiteSpace: 'nowrap',\n },\n}))(RawInputContainer);\n"],"file":"input-container.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/preview-layout.jsx"],"names":["PreviewLayout","props","children","classes","ariaLabel","role","accessibility","container","React","Component","PropTypes","string","oneOfType","arrayOf","node","isRequired","object","styles","display","flexDirection","position","theme","typography","useNextVariants","palette","action","disabled","overrides","MuiRadio","root","color","MuiCheckbox","MuiTabs","borderBottom","MuiSwitch","backgroundColor","opacity","Styled","RootElem"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;IAEMA,a;;;;;;;;;;;;WAQJ,kBAAS;AACP,wBAA+C,KAAKC,KAApD;AAAA,UAAQC,QAAR,eAAQA,QAAR;AAAA,UAAkBC,OAAlB,eAAkBA,OAAlB;AAAA,UAA2BC,SAA3B,eAA2BA,SAA3B;AAAA,UAAsCC,IAAtC,eAAsCA,IAAtC;AACA,UAAMC,aAAa,GAAGF,SAAS,GAAG;AAAE,sBAAcA,SAAhB;AAA2BC,QAAAA,IAAI,EAAJA;AAA3B,OAAH,GAAuC,EAAtE;AAEA,0BACE;AAAK,QAAA,SAAS,EAAEF,OAAO,CAACI;AAAxB,SAAuCD,aAAvC,GACGJ,QADH,CADF;AAKD;;;EAjByBM,kBAAMC,S;;iCAA5BT,a,eACe;AACjBI,EAAAA,SAAS,EAAEM,sBAAUC,MADJ;AAEjBT,EAAAA,QAAQ,EAAEQ,sBAAUE,SAAV,CAAoB,CAACF,sBAAUG,OAAV,CAAkBH,sBAAUI,IAA5B,CAAD,EAAoCJ,sBAAUI,IAA9C,CAApB,EAAyEC,UAFlE;AAGjBZ,EAAAA,OAAO,EAAEO,sBAAUM,MAHF;AAIjBX,EAAAA,IAAI,EAAEK,sBAAUC;AAJC,C;;AAmBrB,IAAMM,MAAM,GAAG,SAATA,MAAS;AAAA,SAAO;AACpBV,IAAAA,SAAS,EAAE;AACTW,MAAAA,OAAO,EAAE,MADA;AAETC,MAAAA,aAAa,EAAE,QAFN;AAGTC,MAAAA,QAAQ,EAAE;AAHD;AADS,GAAP;AAAA,CAAf;;AAQA,IAAMC,KAAK,GAAG,4BAAe;AAC3BC,EAAAA,UAAU,EAAE;AACVC,IAAAA,eAAe,EAAE;AADP,GADe;AAI3BC,EAAAA,OAAO,EAAE;AACPC,IAAAA,MAAM,EAAE;AACNC,MAAAA,QAAQ,EAAE;AADJ;AADD,GAJkB;AAS3BC,EAAAA,SAAS,EAAE;AACTC,IAAAA,QAAQ,EAAE;AACRC,MAAAA,IAAI,EAAE;AACJ,qBAAa;AACXC,UAAAA,KAAK,EAAE;AADI;AADT;AADE,KADD;AAQTC,IAAAA,WAAW,EAAE;AACXF,MAAAA,IAAI,EAAE;AACJ,qBAAa;AACXC,UAAAA,KAAK,EAAE;AADI;AADT;AADK,KARJ;AAeTE,IAAAA,OAAO,EAAE;AACPH,MAAAA,IAAI,EAAE;AACJI,QAAAA,YAAY,EAAE;AADV;AADC,KAfA;AAoBTC,IAAAA,SAAS,EAAE;AACTL,MAAAA,IAAI,EAAE;AACJ,qBAAa;AACXC,UAAAA,KAAK,EAAE,oBADI;AAEX,sBAAY;AACVK,YAAAA,eAAe,EAAE,oBADP;AAEVC,YAAAA,OAAO,EAAE;AAFC;AAFD;AADT;AADG;AApBF;AATgB,CAAf,CAAd;AA2CA,IAAMC,MAAM,GAAG,wBAAWpB,MAAX,EAAmBjB,aAAnB,CAAf;;AAEA,IAAMsC,QAAQ,GAAG,SAAXA,QAAW,CAACrC,KAAD;AAAA,sBACf,gCAAC,wBAAD;AAAkB,IAAA,KAAK,EAAEoB;AAAzB,kBACE,gCAAC,MAAD,EAAYpB,KAAZ,CADF,CADe;AAAA,CAAjB;;eAMeqC,Q","sourcesContent":["import React from 'react';\nimport { withStyles, createMuiTheme, MuiThemeProvider } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\n\nclass PreviewLayout extends React.Component {\n static propTypes = {\n ariaLabel: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n classes: PropTypes.object,\n role: PropTypes.string,\n };\n\n render() {\n const { children, classes, ariaLabel, role } = this.props;\n const accessibility = ariaLabel ? { 'aria-label': ariaLabel, role } : {};\n\n return (\n <div className={classes.container} {...accessibility}>\n {children}\n </div>\n );\n }\n}\n\nconst styles = () => ({\n container: {\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n },\n});\n\nconst theme = createMuiTheme({\n typography: {\n useNextVariants: true,\n },\n palette: {\n action: {\n disabled: 'rgba(0, 0, 0, 0.54);',\n },\n },\n overrides: {\n MuiRadio: {\n root: {\n '&$checked': {\n color: '#3f51b5 !important',\n },\n },\n },\n MuiCheckbox: {\n root: {\n '&$checked': {\n color: '#3f51b5 !important',\n },\n },\n },\n MuiTabs: {\n root: {\n borderBottom: '1px solid #eee',\n },\n },\n MuiSwitch: {\n root: {\n '&$checked': {\n color: '#3f51b5 !important',\n '& + $bar': {\n backgroundColor: '#3f51b5 !important',\n opacity: 0.5,\n },\n },\n },\n },\n },\n});\n\nconst Styled = withStyles(styles)(PreviewLayout);\n\nconst RootElem = (props) => (\n <MuiThemeProvider theme={theme}>\n <Styled {...props} />\n </MuiThemeProvider>\n);\n\nexport default RootElem;\n"],"file":"preview-layout.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/preview-prompt.jsx"],"names":["NEWLINE_BLOCK_REGEX","NEWLINE_LATEX","PreviewPrompt","text","div","document","createElement","innerHTML","audio","querySelector","source","setAttribute","getAttribute","removeAttribute","appendChild","previewPrompt","images","getElementsByTagName","length","image","attributes","alignment","value","parentNode","parentElement","tagName","style","display","width","copyImage","cloneNode","replaceChild","props","prompt","classes","className","onClick","defaultClassName","CustomTag","legendClass","customClasses","promptTable","__html","parsedText","replace","Component","PropTypes","object","string","func","styles","theme","verticalAlign","color","legend","fontSize","rationale","paddingLeft","spacing","unit","paddingBottom","label","cursor","margin","borderCollapse","backgroundColor","padding","textAlign"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;AAEA;AACA,IAAMA,mBAAmB,GAAG,yBAA5B;AACA,IAAMC,aAAa,GAAG,YAAtB;;IAEaC,a;;;;;;;;;;;;;;;mGAcE,UAACC,IAAD,EAAU;AACrB;AACA,UAAMC,GAAG,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAZ;AACAF,MAAAA,GAAG,CAACG,SAAJ,GAAgBJ,IAAhB;AAEA,UAAMK,KAAK,GAAGJ,GAAG,CAACK,aAAJ,CAAkB,OAAlB,CAAd;;AACA,UAAID,KAAJ,EAAW;AACT,YAAME,MAAM,GAAGL,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAAf;AAEAI,QAAAA,MAAM,CAACC,YAAP,CAAoB,MAApB,EAA4B,WAA5B;AACAD,QAAAA,MAAM,CAACC,YAAP,CAAoB,KAApB,EAA2BH,KAAK,CAACI,YAAN,CAAmB,KAAnB,CAA3B;AAEAJ,QAAAA,KAAK,CAACK,eAAN,CAAsB,KAAtB;AACAL,QAAAA,KAAK,CAACM,WAAN,CAAkBJ,MAAlB;AACD;;AAED,aAAON,GAAG,CAACG,SAAX;AACD,K;;;;;;WAED,8BAAqB;AACnB;AACA,UAAMQ,aAAa,GAAGV,QAAQ,CAACI,aAAT,CAAuB,iBAAvB,CAAtB;AACA,UAAMO,MAAM,GAAGD,aAAa,IAAIA,aAAa,CAACE,oBAAd,CAAmC,KAAnC,CAAhC;;AAEA,UAAID,MAAM,IAAIA,MAAM,CAACE,MAArB,EAA6B;AAAA,mDACTF,MADS;AAAA;;AAAA;AAC3B,8DAA0B;AAAA,gBAAjBG,KAAiB;;AACxB;AACA,gBAAIA,KAAK,CAACC,UAAN,IAAoBD,KAAK,CAACC,UAAN,CAAiBC,SAArC,IAAkDF,KAAK,CAACC,UAAN,CAAiBC,SAAjB,CAA2BC,KAAjF,EAAwF;AACtF,kBAAMC,UAAU,GAAGJ,KAAK,CAACK,aAAzB,CADsF,CAGtF;;AACA,kBACE,EAAED,UAAU,CAACE,OAAX,KAAuB,KAAvB,IAAgCF,UAAU,CAACG,KAAX,CAAiBC,OAAjB,KAA6B,MAA7D,IAAuEJ,UAAU,CAACG,KAAX,CAAiBE,KAAjB,KAA2B,MAApG,CADF,EAEE;AACA,oBAAMxB,GAAG,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAZ;AACAF,gBAAAA,GAAG,CAACsB,KAAJ,CAAUC,OAAV,GAAoB,MAApB;AACAvB,gBAAAA,GAAG,CAACsB,KAAJ,CAAUE,KAAV,GAAkB,MAAlB;AAEA,oBAAMC,SAAS,GAAGV,KAAK,CAACW,SAAN,CAAgB,IAAhB,CAAlB;AACA1B,gBAAAA,GAAG,CAACU,WAAJ,CAAgBe,SAAhB;AACAN,gBAAAA,UAAU,CAACQ,YAAX,CAAwB3B,GAAxB,EAA6Be,KAA7B;AACD;AACF;AACF;AAnB0B;AAAA;AAAA;AAAA;AAAA;AAoB5B;AACF;;;WAED,kBAAS;AACP,wBAA2E,KAAKa,KAAhF;AAAA,UAAQC,MAAR,eAAQA,MAAR;AAAA,UAAgBC,OAAhB,eAAgBA,OAAhB;AAAA,UAAyBT,OAAzB,eAAyBA,OAAzB;AAAA,UAAkCU,SAAlC,eAAkCA,SAAlC;AAAA,UAA6CC,OAA7C,eAA6CA,OAA7C;AAAA,UAAsDC,gBAAtD,eAAsDA,gBAAtD;AACA,UAAMC,SAAS,GAAGb,OAAO,IAAI,KAA7B,CAFO,CAGP;;AACA,UAAMc,WAAW,GAAGd,OAAO,KAAK,QAAZ,GAAuB,QAAvB,GAAkC,EAAtD;AACA,UAAMe,aAAa,aAAMN,OAAO,CAACO,WAAd,cAA6BP,OAAO,CAACC,SAAD,CAAP,IAAsB,EAAnD,cAAyDE,gBAAgB,IAAI,EAA7E,cAAmFH,OAAO,CAC3GK,WAD2G,CAAP,IAEjG,EAFc,CAAnB;AAIA,0BACE,gCAAC,SAAD;AACE,QAAA,EAAE,EAAE,gBADN;AAEE,QAAA,OAAO,EAAEH,OAFX;AAGE,QAAA,SAAS,EAAEI,aAHb;AAIE,QAAA,uBAAuB,EAAE;AACvBE,UAAAA,MAAM,EAAE,KAAKC,UAAL,CAAgBV,MAAM,IAAI,EAA1B,EAA8BW,OAA9B,CAAsC5C,mBAAtC,EAA2DC,aAA3D;AADe;AAJ3B,QADF;AAUD;;;EAhFgC4C,gB;;;iCAAtB3C,a,eACQ;AACjBgC,EAAAA,OAAO,EAAEY,sBAAUC,MADF;AAEjBd,EAAAA,MAAM,EAAEa,sBAAUE,MAFD;AAGjBvB,EAAAA,OAAO,EAAEqB,sBAAUE,MAHF;AAIjBb,EAAAA,SAAS,EAAEW,sBAAUE,MAJJ;AAKjBZ,EAAAA,OAAO,EAAEU,sBAAUG,IALF;AAMjBZ,EAAAA,gBAAgB,EAAES,sBAAUE;AANX,C;iCADR9C,a,kBAUW;AACpBkC,EAAAA,OAAO,EAAE,mBAAM,CAAE;AADG,C;;AAyExB,IAAMc,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBlB,IAAAA,MAAM,EAAE;AACNmB,MAAAA,aAAa,EAAE,QADT;AAENC,MAAAA,KAAK,EAAEA,KAAK,CAAClD,IAAN;AAFD,KADiB;AAKzBmD,IAAAA,MAAM,EAAE;AACN1B,MAAAA,KAAK,EAAE,MADD;AAEN2B,MAAAA,QAAQ,EAAE;AAFJ,KALiB;AASzBC,IAAAA,SAAS,EAAE;AACTC,MAAAA,WAAW,EAAEN,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CADzB;AAETC,MAAAA,aAAa,EAAET,KAAK,CAACO,OAAN,CAAcC;AAFpB,KATc;AAazBE,IAAAA,KAAK,EAAE;AACLR,MAAAA,KAAK,YAAKA,KAAK,CAAClD,IAAN,EAAL,gBADA;AACgC;AACrCwB,MAAAA,OAAO,EAAE,cAFJ;AAGLyB,MAAAA,aAAa,EAAE,QAHV;AAILU,MAAAA,MAAM,EAAE,SAJH;AAKL,eAAS;AACPC,QAAAA,MAAM,EAAE;AADD;AALJ,KAbkB;AAsBzBtB,IAAAA,WAAW,EAAE;AACX,iCAA2B;AACzBuB,QAAAA,cAAc,EAAE;AADS,OADhB;AAIX,oCAA8B;AAC5B,2BAAmB;AACjBC,UAAAA,eAAe,EAAE;AADA;AADS,OAJnB;AASX,gEAA0D;AACxDC,QAAAA,OAAO,EAAE,UAD+C;AAExDC,QAAAA,SAAS,EAAE;AAF6C;AAT/C;AAtBY,GAAZ;AAAA,CAAf;;eAqCe,wBAAWjB,MAAX,EAAmBhD,aAAnB,C","sourcesContent":["import React, { Component } from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nimport * as color from './color';\n\n//Used these below to replace \\\\embed{newLine} with \\\\newline from prompt which will get parsed in MathJax\nconst NEWLINE_BLOCK_REGEX = /\\\\embed\\{newLine\\}\\[\\]/g;\nconst NEWLINE_LATEX = '\\\\newline ';\n\nexport class PreviewPrompt extends Component {\n static propTypes = {\n classes: PropTypes.object,\n prompt: PropTypes.string,\n tagName: PropTypes.string,\n className: PropTypes.string,\n onClick: PropTypes.func,\n defaultClassName: PropTypes.string,\n };\n\n static defaultProps = {\n onClick: () => {},\n };\n\n parsedText = (text) => {\n // fix imported audio content for Safari PD-1419\n const div = document.createElement('div');\n div.innerHTML = text;\n\n const audio = div.querySelector('audio');\n if (audio) {\n const source = document.createElement('source');\n\n source.setAttribute('type', 'audio/mp3');\n source.setAttribute('src', audio.getAttribute('src'));\n\n audio.removeAttribute('src');\n audio.appendChild(source);\n }\n\n return div.innerHTML;\n };\n\n componentDidUpdate() {\n // set image parent style so it can be horizontally aligned\n const previewPrompt = document.querySelector('#preview-prompt');\n const images = previewPrompt && previewPrompt.getElementsByTagName('img');\n\n if (images && images.length) {\n for (let image of images) {\n // check if alignment property was set\n if (image.attributes && image.attributes.alignment && image.attributes.alignment.value) {\n const parentNode = image.parentElement;\n\n // check if div is not already added to dom and replace current image with wrapped image\n if (\n !(parentNode.tagName === 'DIV' && parentNode.style.display === 'flex' && parentNode.style.width === '100%')\n ) {\n const div = document.createElement('div');\n div.style.display = 'flex';\n div.style.width = '100%';\n\n const copyImage = image.cloneNode(true);\n div.appendChild(copyImage);\n parentNode.replaceChild(div, image);\n }\n }\n }\n }\n }\n\n render() {\n const { prompt, classes, tagName, className, onClick, defaultClassName } = this.props;\n const CustomTag = tagName || 'div';\n // legend tag was added once with accessibility tasks, wee need extra style to make it work with images alignment\n const legendClass = tagName === 'legend' ? 'legend' : '';\n const customClasses = `${classes.promptTable} ${classes[className] || ''} ${defaultClassName || ''} ${classes[\n legendClass\n ] || ''}`;\n\n return (\n <CustomTag\n id={'preview-prompt'}\n onClick={onClick}\n className={customClasses}\n dangerouslySetInnerHTML={{\n __html: this.parsedText(prompt || '').replace(NEWLINE_BLOCK_REGEX, NEWLINE_LATEX),\n }}\n />\n );\n }\n}\n\nconst styles = (theme) => ({\n prompt: {\n verticalAlign: 'middle',\n color: color.text(),\n },\n legend: {\n width: '100%',\n fontSize: 'inherit !important',\n },\n rationale: {\n paddingLeft: theme.spacing.unit * 4,\n paddingBottom: theme.spacing.unit,\n },\n label: {\n color: `${color.text()} !important`, //'var(--choice-input-color, black)',\n display: 'inline-block',\n verticalAlign: 'middle',\n cursor: 'pointer',\n '& > p': {\n margin: '0 0 0 0 !important',\n },\n },\n promptTable: {\n '&:not(.MathJax) > table': {\n borderCollapse: 'collapse',\n },\n '&:not(.MathJax) > table tr': {\n '&:nth-child(2n)': {\n backgroundColor: '#f6f8fa',\n },\n },\n '&:not(.MathJax) > table td, &:not(.MathJax) > table th': {\n padding: '.6em 1em',\n textAlign: 'center',\n },\n },\n});\nexport default withStyles(styles)(PreviewPrompt);\n"],"file":"preview-prompt.js"}
|
package/lib/purpose.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/purpose.jsx"],"names":["Purpose","props","React","Children","map","children","child","cloneElement","purpose","propTypes","PropTypes","node","string"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,OAAO,GAAG,SAAVA,OAAU,CAACC,KAAD,EAAW;AACzB,sBACE,kEACGC,kBAAMC,QAAN,CAAeC,GAAf,CAAmBH,KAAK,CAACI,QAAzB,EAAmC,UAACC,KAAD;AAAA,wBAAWJ,kBAAMK,YAAN,CAAmBD,KAAnB,EAA0B;AAAE,0BAAoBL,KAAK,CAACO;AAA5B,KAA1B,CAAX;AAAA,GAAnC,CADH,CADF;AAKD,CAND;;AAQAR,OAAO,CAACS,SAAR,GAAoB;AAClBJ,EAAAA,QAAQ,EAAEK,sBAAUC,IADF;AAElBH,EAAAA,OAAO,EAAEE,sBAAUE;AAFD,CAApB;eAKeZ,O","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nconst Purpose = (props) => {\n return (\n <>\n {React.Children.map(props.children, (child) => React.cloneElement(child, { 'data-pie-purpose': props.purpose }))}\n </>\n );\n};\n\nPurpose.propTypes = {\n children: PropTypes.node,\n purpose: PropTypes.string,\n};\n\nexport default Purpose;\n"],"file":"purpose.js"}
|
package/lib/readable.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/readable.jsx"],"names":["Readable","props","React","Children","map","children","child","cloneElement","undefined","propTypes","PropTypes","node","bool"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,QAAQ,GAAG,SAAXA,QAAW,CAACC,KAAD,EAAW;AAC1B,sBACE,kEACGC,kBAAMC,QAAN,CAAeC,GAAf,CAAmBH,KAAK,CAACI,QAAzB,EAAmC,UAACC,KAAD;AAAA,wBAClCJ,kBAAMK,YAAN,CAAmBD,KAAnB,EAA0B;AAAE,2BAAqBL,KAAK,SAAL,KAAgBO;AAAvC,KAA1B,CADkC;AAAA,GAAnC,CADH,CADF;AAOD,CARD;;AAUAR,QAAQ,CAACS,SAAT,GAAqB;AACnBJ,EAAAA,QAAQ,EAAEK,sBAAUC,IADD;AAEnB,WAAOD,sBAAUE;AAFE,CAArB;eAKeZ,Q","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nconst Readable = (props) => {\n return (\n <>\n {React.Children.map(props.children, (child) =>\n React.cloneElement(child, { 'data-pie-readable': props.false === undefined }),\n )}\n </>\n );\n};\n\nReadable.propTypes = {\n children: PropTypes.node,\n false: PropTypes.bool,\n};\n\nexport default Readable;\n"],"file":"readable.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/response-indicators.jsx"],"names":["log","styles","responseIndicator","cursor","paper","padding","borderRadius","popover","popperClose","BuildIndicator","Icon","correctness","RawIndicator","props","event","target","setState","anchorEl","state","feedback","classes","r","icon","handlePopoverOpen","vertical","horizontal","handlePopoverClose","React","Component","propTypes","PropTypes","string","object","isRequired","Correct","icons","Incorrect","PartiallyCorrect","NothingSubmitted"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as icons from '@pie-lib/icons';\nimport Popover from '@material-ui/core/Popover';\nimport { withStyles } from '@material-ui/core/styles';\nimport Feedback from './feedback';\nimport debug from 'debug';\n\nconst log = debug('pie-libs:render-ui:response-indicators');\n\nconst styles = () => ({\n responseIndicator: {\n cursor: 'pointer',\n },\n paper: {\n padding: '0',\n borderRadius: '4px',\n },\n popover: {\n cursor: 'pointer',\n },\n popperClose: {\n cursor: 'pointer',\n },\n});\n\nconst BuildIndicator = (Icon, correctness) => {\n class RawIndicator extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n handlePopoverOpen = (event) => {\n log('[handlePopoverOpen]', event.target);\n this.setState({ anchorEl: event.target });\n };\n\n handlePopoverClose = () => {\n this.setState({ anchorEl: null });\n };\n\n render() {\n const { feedback, classes } = this.props;\n const { anchorEl } = this.state;\n return (\n <div className={feedback && classes.responseIndicator}>\n <span ref={(r) => (this.icon = r)} onClick={this.handlePopoverOpen}>\n <Icon />\n </span>\n\n {feedback && (\n <Popover\n className={classes.popover}\n classes={{\n paper: classes.paper,\n }}\n open={!!anchorEl}\n anchorEl={anchorEl}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left',\n }}\n onClose={this.handlePopoverClose}\n >\n <Feedback feedback={feedback} correctness={correctness} />\n </Popover>\n )}\n </div>\n );\n }\n }\n\n RawIndicator.propTypes = {\n feedback: PropTypes.string,\n classes: PropTypes.object.isRequired,\n };\n\n return withStyles(styles)(RawIndicator);\n};\n\nexport const Correct = BuildIndicator(icons.Correct, 'correct');\nexport const Incorrect = BuildIndicator(icons.Incorrect, 'incorrect');\nexport const PartiallyCorrect = BuildIndicator(icons.PartiallyCorrect, 'partially-correct');\nexport const NothingSubmitted = BuildIndicator(icons.NothingSubmitted, 'nothing-submitted');\n"],"file":"response-indicators.js"}
|
package/lib/withUndoReset.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/withUndoReset.jsx"],"names":["styles","theme","wrapper","display","flexDirection","resetUndoContainer","alignItems","justifyContent","icon","width","height","color","marginRight","spacing","unit","buttonContainer","marginLeft","withUndoReset","WrappedComponent","WithUndoReset","props","session","setState","state","changes","onSessionChange","newChanges","pop","length","sessionInitialValues","JSON","parse","stringify","classes","rest","onUndo","onReset","React","Component","PropTypes","object","func"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '@material-ui/core/Button';\nimport { withStyles } from '@material-ui/core/styles';\nimport Restore from '@material-ui/icons/Restore';\nimport Undo from '@material-ui/icons/Undo';\n\nconst styles = (theme) => ({\n wrapper: {\n display: 'flex',\n flexDirection: 'column',\n },\n resetUndoContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n icon: {\n width: '24px',\n height: '24px',\n color: 'gray',\n marginRight: theme.spacing.unit,\n },\n buttonContainer: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: theme.spacing.unit * 3,\n marginRight: theme.spacing.unit * 3,\n },\n});\n\n/**\n * HOC that adds undo and reset functionality for session values\n */\nconst withUndoReset = (WrappedComponent) => {\n class WithUndoReset extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n session: PropTypes.object,\n onSessionChange: PropTypes.func,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n sessionInitialValues: JSON.parse(JSON.stringify(props.session)),\n session: props.session,\n changes: [],\n };\n }\n\n onSessionChange = (session) => {\n this.setState(\n (state) => ({ session, changes: [...state.changes, session] }),\n () => this.props.onSessionChange(session),\n );\n };\n\n onUndo = () => {\n this.setState(\n (state) => {\n const newChanges = [...state.changes];\n\n newChanges.pop();\n\n return {\n changes: newChanges,\n session: newChanges.length ? newChanges[newChanges.length - 1] : state.sessionInitialValues,\n };\n },\n () => this.props.onSessionChange(this.state.session),\n );\n };\n\n onReset = () => {\n this.setState(\n (state) => ({ session: state.sessionInitialValues, changes: [] }),\n () => this.props.onSessionChange(this.state.sessionInitialValues),\n );\n };\n\n render() {\n const { classes, ...rest } = this.props;\n const { changes, session } = this.state;\n\n return (\n <div className={classes.wrapper}>\n <div className={classes.resetUndoContainer}>\n <Button\n className={classes.buttonContainer}\n color=\"primary\"\n disabled={changes.length === 0}\n onClick={this.onUndo}\n >\n <Undo className={classes.icon} /> Undo\n </Button>\n <Button\n className={classes.buttonContainer}\n color=\"primary\"\n disabled={changes.length === 0}\n onClick={this.onReset}\n >\n <Restore className={classes.icon} /> Start Over\n </Button>\n </div>\n <WrappedComponent {...rest} session={session} onSessionChange={this.onSessionChange} />\n </div>\n );\n }\n }\n\n return withStyles(styles)(WithUndoReset);\n};\n\nexport default withUndoReset;\n"],"file":"withUndoReset.js"}
|