@pie-lib/render-ui 5.1.0-next.4 → 5.1.0-next.5
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/assets/enableAudioAutoplayImage.js +8 -0
- package/lib/assets/enableAudioAutoplayImage.js.map +1 -0
- package/lib/collapsible/index.js +105 -0
- package/lib/collapsible/index.js.map +1 -0
- package/lib/color.js +200 -0
- package/lib/color.js.map +1 -0
- package/lib/feedback.js +112 -0
- package/lib/feedback.js.map +1 -0
- package/lib/has-media.js +22 -0
- package/lib/has-media.js.map +1 -0
- package/lib/has-text.js +22 -0
- package/lib/has-text.js.map +1 -0
- package/lib/html-and-math.js +54 -0
- package/lib/html-and-math.js.map +1 -0
- package/lib/index.js +106 -0
- package/lib/index.js.map +1 -0
- package/lib/input-container.js +59 -0
- package/lib/input-container.js.map +1 -0
- package/lib/preview-layout.js +65 -0
- package/lib/preview-layout.js.map +1 -0
- package/lib/preview-prompt.js +296 -0
- package/lib/preview-prompt.js.map +1 -0
- package/lib/purpose.js +22 -0
- package/lib/purpose.js.map +1 -0
- package/lib/readable.js +22 -0
- package/lib/readable.js.map +1 -0
- package/lib/response-indicators.js +102 -0
- package/lib/response-indicators.js.map +1 -0
- package/lib/ui-layout.js +125 -0
- package/lib/ui-layout.js.map +1 -0
- package/lib/withUndoReset.js +135 -0
- package/lib/withUndoReset.js.map +1 -0
- package/package.json +5 -5
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = exports.PreviewPrompt = void 0;
|
|
9
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
12
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
13
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
16
|
+
var _styles = require("@mui/material/styles");
|
|
17
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
18
|
+
var color = _interopRequireWildcard(require("./color"));
|
|
19
|
+
var _mathRendering = require("@pie-lib/math-rendering");
|
|
20
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(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 (var _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
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
22
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
23
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
24
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
25
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
26
|
+
var StyledPromptContainer = (0, _styles.styled)('div')(function (_ref) {
|
|
27
|
+
var theme = _ref.theme,
|
|
28
|
+
tagName = _ref.tagName;
|
|
29
|
+
return {
|
|
30
|
+
// Base promptTable styles
|
|
31
|
+
'&:not(.MathJax) > table': {
|
|
32
|
+
borderCollapse: 'collapse'
|
|
33
|
+
},
|
|
34
|
+
// Apply vertical striping when first column is a header (th) and NOT mixed with td
|
|
35
|
+
'&:not(.MathJax) > table:has(tbody tr > th:first-child):not(:has(tbody tr > td:first-child)) tbody td:nth-child(even)': {
|
|
36
|
+
backgroundColor: '#f6f8fa',
|
|
37
|
+
color: theme.palette.common.black
|
|
38
|
+
},
|
|
39
|
+
// Apply horizontal striping for tables where first element is a data cell (td)
|
|
40
|
+
'&:not(.MathJax) > table:has(tbody tr > td:first-child) tbody tr:nth-child(even) td': {
|
|
41
|
+
backgroundColor: '#f6f8fa',
|
|
42
|
+
color: theme.palette.common.black
|
|
43
|
+
},
|
|
44
|
+
// align table content to left as per STAR requirement PD-3687
|
|
45
|
+
'&:not(.MathJax) table td, &:not(.MathJax) table th': {
|
|
46
|
+
padding: '.6em 1em',
|
|
47
|
+
textAlign: 'left'
|
|
48
|
+
},
|
|
49
|
+
// added this to fix alignment of text in prompt imported from studio (PD-3423)
|
|
50
|
+
'&:not(.MathJax) > table td > p.kds-indent': {
|
|
51
|
+
textAlign: 'initial'
|
|
52
|
+
},
|
|
53
|
+
// Conditional styles based on class names
|
|
54
|
+
'&.prompt': {
|
|
55
|
+
verticalAlign: 'middle',
|
|
56
|
+
color: color.text()
|
|
57
|
+
},
|
|
58
|
+
'&.legend': {
|
|
59
|
+
width: '100%',
|
|
60
|
+
fontSize: 'inherit !important'
|
|
61
|
+
},
|
|
62
|
+
'&.rationale': {
|
|
63
|
+
paddingLeft: theme.spacing(4),
|
|
64
|
+
paddingBottom: theme.spacing(1)
|
|
65
|
+
},
|
|
66
|
+
'&.label': {
|
|
67
|
+
color: "".concat(color.text(), " !important"),
|
|
68
|
+
display: 'flex',
|
|
69
|
+
flexDirection: 'column',
|
|
70
|
+
verticalAlign: 'middle',
|
|
71
|
+
cursor: 'pointer',
|
|
72
|
+
'& > p': {
|
|
73
|
+
margin: '0 0 0 0 !important'
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
//Used these below to replace \\embed{newLine} with \\newline from prompt which will get parsed in MathJax
|
|
80
|
+
var NEWLINE_BLOCK_REGEX = /\\embed\{newLine\}\[\]/g;
|
|
81
|
+
var NEWLINE_LATEX = '\\newline ';
|
|
82
|
+
var PreviewPrompt = exports.PreviewPrompt = /*#__PURE__*/function (_Component) {
|
|
83
|
+
function PreviewPrompt() {
|
|
84
|
+
var _this;
|
|
85
|
+
(0, _classCallCheck2["default"])(this, PreviewPrompt);
|
|
86
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
87
|
+
args[_key] = arguments[_key];
|
|
88
|
+
}
|
|
89
|
+
_this = _callSuper(this, PreviewPrompt, [].concat(args));
|
|
90
|
+
(0, _defineProperty2["default"])(_this, "parsedText", function (text) {
|
|
91
|
+
var customAudioButton = _this.props.customAudioButton;
|
|
92
|
+
var div = document.createElement('div');
|
|
93
|
+
div.innerHTML = text;
|
|
94
|
+
var audio = div.querySelector('audio');
|
|
95
|
+
if (audio) {
|
|
96
|
+
var source = document.createElement('source');
|
|
97
|
+
source.setAttribute('type', 'audio/mp3');
|
|
98
|
+
source.setAttribute('src', audio.getAttribute('src'));
|
|
99
|
+
audio.removeAttribute('src');
|
|
100
|
+
audio.setAttribute('id', 'pie-prompt-audio-player');
|
|
101
|
+
audio.appendChild(source);
|
|
102
|
+
if (customAudioButton) {
|
|
103
|
+
audio.style.display = 'none';
|
|
104
|
+
var playButton = document.createElement('div');
|
|
105
|
+
playButton.id = 'play-audio-button';
|
|
106
|
+
Object.assign(playButton.style, {
|
|
107
|
+
cursor: 'pointer',
|
|
108
|
+
display: 'block',
|
|
109
|
+
width: '128px',
|
|
110
|
+
height: '128px',
|
|
111
|
+
backgroundImage: "url(".concat(customAudioButton.pauseImage, ")"),
|
|
112
|
+
backgroundSize: 'cover',
|
|
113
|
+
borderRadius: '50%',
|
|
114
|
+
border: '1px solid #326295'
|
|
115
|
+
});
|
|
116
|
+
audio.parentNode.insertBefore(playButton, audio);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return div.innerHTML;
|
|
120
|
+
});
|
|
121
|
+
return _this;
|
|
122
|
+
}
|
|
123
|
+
(0, _inherits2["default"])(PreviewPrompt, _Component);
|
|
124
|
+
return (0, _createClass2["default"])(PreviewPrompt, [{
|
|
125
|
+
key: "addCustomAudioButtonControls",
|
|
126
|
+
value: function addCustomAudioButtonControls() {
|
|
127
|
+
var _this$props = this.props,
|
|
128
|
+
autoplayAudioEnabled = _this$props.autoplayAudioEnabled,
|
|
129
|
+
customAudioButton = _this$props.customAudioButton;
|
|
130
|
+
var playButton = document.getElementById('play-audio-button');
|
|
131
|
+
var audio = document.getElementById('pie-prompt-audio-player');
|
|
132
|
+
if (autoplayAudioEnabled && audio) {
|
|
133
|
+
audio.play().then(function () {
|
|
134
|
+
if (playButton && customAudioButton) {
|
|
135
|
+
audio.addEventListener('ended', handleAudioEnded);
|
|
136
|
+
}
|
|
137
|
+
})["catch"](function (error) {
|
|
138
|
+
console.error('Error playing audio', error);
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
if (!playButton || !audio || !customAudioButton) return;
|
|
142
|
+
var handlePlayClick = function handlePlayClick() {
|
|
143
|
+
// if already playing, don't play again
|
|
144
|
+
if (!audio.paused) return;
|
|
145
|
+
if (playButton.style.backgroundImage.includes(customAudioButton.pauseImage)) return;
|
|
146
|
+
audio.play();
|
|
147
|
+
};
|
|
148
|
+
var handleAudioEnded = function handleAudioEnded() {
|
|
149
|
+
playButton.style.backgroundImage = "url(".concat(customAudioButton.playImage, ")");
|
|
150
|
+
};
|
|
151
|
+
var handleAudioPlay = function handleAudioPlay() {
|
|
152
|
+
Object.assign(playButton.style, {
|
|
153
|
+
backgroundImage: "url(".concat(customAudioButton.pauseImage, ")"),
|
|
154
|
+
border: '1px solid #ccc'
|
|
155
|
+
});
|
|
156
|
+
};
|
|
157
|
+
var handleAudioPause = function handleAudioPause() {
|
|
158
|
+
Object.assign(playButton.style, {
|
|
159
|
+
backgroundImage: "url(".concat(customAudioButton.playImage, ")"),
|
|
160
|
+
border: '1px solid #326295'
|
|
161
|
+
});
|
|
162
|
+
};
|
|
163
|
+
playButton.addEventListener('click', handlePlayClick);
|
|
164
|
+
audio.addEventListener('play', handleAudioPlay);
|
|
165
|
+
audio.addEventListener('pause', handleAudioPause);
|
|
166
|
+
audio.addEventListener('ended', handleAudioEnded);
|
|
167
|
+
|
|
168
|
+
// store event handler references so they can be removed later
|
|
169
|
+
this._handlePlayClick = handlePlayClick;
|
|
170
|
+
this._handleAudioPlay = handleAudioPlay;
|
|
171
|
+
this._handleAudioPause = handleAudioPause;
|
|
172
|
+
this._handleAudioEnded = handleAudioEnded;
|
|
173
|
+
}
|
|
174
|
+
}, {
|
|
175
|
+
key: "removeCustomAudioButtonListeners",
|
|
176
|
+
value: function removeCustomAudioButtonListeners() {
|
|
177
|
+
var playButton = document.getElementById('play-audio-button');
|
|
178
|
+
var audio = document.querySelector('audio');
|
|
179
|
+
if (!playButton || !audio) return;
|
|
180
|
+
|
|
181
|
+
// remove event listeners using stored references
|
|
182
|
+
playButton.removeEventListener('click', this._handlePlayClick);
|
|
183
|
+
audio.removeEventListener('play', this._handleAudioPlay);
|
|
184
|
+
audio.removeEventListener('pause', this._handleAudioPause);
|
|
185
|
+
audio.removeEventListener('ended', this._handleAudioEnded);
|
|
186
|
+
}
|
|
187
|
+
}, {
|
|
188
|
+
key: "componentDidMount",
|
|
189
|
+
value: function componentDidMount() {
|
|
190
|
+
this.alignImages();
|
|
191
|
+
this.addCustomAudioButtonControls();
|
|
192
|
+
this.setupMathRendering();
|
|
193
|
+
}
|
|
194
|
+
}, {
|
|
195
|
+
key: "componentDidUpdate",
|
|
196
|
+
value: function componentDidUpdate(prevProps) {
|
|
197
|
+
this.alignImages();
|
|
198
|
+
if (prevProps.prompt !== this.props.prompt) {
|
|
199
|
+
this.renderMathContent();
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}, {
|
|
203
|
+
key: "componentWillUnmount",
|
|
204
|
+
value: function componentWillUnmount() {
|
|
205
|
+
this.removeCustomAudioButtonListeners();
|
|
206
|
+
}
|
|
207
|
+
}, {
|
|
208
|
+
key: "setupMathRendering",
|
|
209
|
+
value: function setupMathRendering() {
|
|
210
|
+
this.renderMathContent();
|
|
211
|
+
}
|
|
212
|
+
}, {
|
|
213
|
+
key: "renderMathContent",
|
|
214
|
+
value: function renderMathContent() {
|
|
215
|
+
var container = document.getElementById('preview-prompt');
|
|
216
|
+
if (container && typeof _mathRendering.renderMath === 'function') {
|
|
217
|
+
(0, _mathRendering.renderMath)(container);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}, {
|
|
221
|
+
key: "alignImages",
|
|
222
|
+
value: function alignImages() {
|
|
223
|
+
var previewPrompts = document.querySelectorAll('#preview-prompt');
|
|
224
|
+
previewPrompts.forEach(function (previewPrompt) {
|
|
225
|
+
var images = previewPrompt.getElementsByTagName('img');
|
|
226
|
+
if (images && images.length) {
|
|
227
|
+
var _iterator = _createForOfIteratorHelper(images),
|
|
228
|
+
_step;
|
|
229
|
+
try {
|
|
230
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
231
|
+
var image = _step.value;
|
|
232
|
+
// check if alignment property was set
|
|
233
|
+
if (image.attributes && image.attributes.alignment && image.attributes.alignment.value) {
|
|
234
|
+
var parentNode = image.parentElement;
|
|
235
|
+
|
|
236
|
+
// check if div is not already added to dom and replace current image with wrapped image
|
|
237
|
+
if (!(parentNode.tagName === 'DIV' && parentNode.style.display === 'flex' && parentNode.style.width === '100%')) {
|
|
238
|
+
var div = document.createElement('div');
|
|
239
|
+
div.style.display = 'flex';
|
|
240
|
+
div.style.width = '100%';
|
|
241
|
+
var copyImage = image.cloneNode(true);
|
|
242
|
+
div.appendChild(copyImage);
|
|
243
|
+
parentNode.replaceChild(div, image);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
} catch (err) {
|
|
248
|
+
_iterator.e(err);
|
|
249
|
+
} finally {
|
|
250
|
+
_iterator.f();
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
}, {
|
|
256
|
+
key: "render",
|
|
257
|
+
value: function render() {
|
|
258
|
+
var _this$props2 = this.props,
|
|
259
|
+
prompt = _this$props2.prompt,
|
|
260
|
+
tagName = _this$props2.tagName,
|
|
261
|
+
className = _this$props2.className,
|
|
262
|
+
onClick = _this$props2.onClick,
|
|
263
|
+
defaultClassName = _this$props2.defaultClassName;
|
|
264
|
+
// legend tag was added once with accessibility tasks, we need extra style to make it work with images alignment
|
|
265
|
+
var legendClass = tagName === 'legend' ? 'legend' : '';
|
|
266
|
+
var customClasses = "".concat(className || '', " ").concat(defaultClassName || '', " ").concat(legendClass).trim();
|
|
267
|
+
return /*#__PURE__*/_react["default"].createElement(StyledPromptContainer, {
|
|
268
|
+
as: tagName || 'div',
|
|
269
|
+
id: 'preview-prompt',
|
|
270
|
+
onClick: onClick,
|
|
271
|
+
className: customClasses,
|
|
272
|
+
tagName: tagName,
|
|
273
|
+
dangerouslySetInnerHTML: {
|
|
274
|
+
__html: this.parsedText(prompt || '').replace(NEWLINE_BLOCK_REGEX, NEWLINE_LATEX)
|
|
275
|
+
}
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
}]);
|
|
279
|
+
}(_react.Component);
|
|
280
|
+
(0, _defineProperty2["default"])(PreviewPrompt, "propTypes", {
|
|
281
|
+
prompt: _propTypes["default"].string,
|
|
282
|
+
tagName: _propTypes["default"].string,
|
|
283
|
+
className: _propTypes["default"].string,
|
|
284
|
+
onClick: _propTypes["default"].func,
|
|
285
|
+
defaultClassName: _propTypes["default"].string,
|
|
286
|
+
autoplayAudioEnabled: _propTypes["default"].bool,
|
|
287
|
+
customAudioButton: {
|
|
288
|
+
playImage: _propTypes["default"].string,
|
|
289
|
+
pauseImage: _propTypes["default"].string
|
|
290
|
+
}
|
|
291
|
+
});
|
|
292
|
+
(0, _defineProperty2["default"])(PreviewPrompt, "defaultProps", {
|
|
293
|
+
onClick: function onClick() {}
|
|
294
|
+
});
|
|
295
|
+
var _default = exports["default"] = PreviewPrompt;
|
|
296
|
+
//# sourceMappingURL=preview-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preview-prompt.js","names":["_react","_interopRequireWildcard","require","_styles","_propTypes","_interopRequireDefault","color","_mathRendering","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_createForOfIteratorHelper","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","done","value","TypeError","a","u","next","_arrayLikeToArray","toString","slice","constructor","name","from","test","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","apply","Boolean","prototype","valueOf","StyledPromptContainer","styled","_ref","theme","tagName","borderCollapse","backgroundColor","palette","common","black","padding","textAlign","verticalAlign","text","width","fontSize","paddingLeft","spacing","paddingBottom","concat","display","flexDirection","cursor","margin","NEWLINE_BLOCK_REGEX","NEWLINE_LATEX","PreviewPrompt","exports","_Component","_this","_classCallCheck2","_len","arguments","args","_key","_defineProperty2","customAudioButton","props","div","document","createElement","innerHTML","audio","querySelector","source","setAttribute","getAttribute","removeAttribute","appendChild","style","playButton","id","assign","height","backgroundImage","pauseImage","backgroundSize","borderRadius","border","parentNode","insertBefore","_inherits2","_createClass2","key","addCustomAudioButtonControls","_this$props","autoplayAudioEnabled","getElementById","play","then","addEventListener","handleAudioEnded","error","console","handlePlayClick","paused","includes","playImage","handleAudioPlay","handleAudioPause","_handlePlayClick","_handleAudioPlay","_handleAudioPause","_handleAudioEnded","removeCustomAudioButtonListeners","removeEventListener","componentDidMount","alignImages","setupMathRendering","componentDidUpdate","prevProps","prompt","renderMathContent","componentWillUnmount","container","renderMath","previewPrompts","querySelectorAll","forEach","previewPrompt","images","getElementsByTagName","_iterator","_step","image","attributes","alignment","parentElement","copyImage","cloneNode","replaceChild","err","render","_this$props2","className","onClick","defaultClassName","legendClass","customClasses","trim","as","dangerouslySetInnerHTML","__html","parsedText","replace","Component","PropTypes","string","func","bool","_default"],"sources":["../src/preview-prompt.jsx"],"sourcesContent":["import React, { Component } from 'react';\nimport { styled } from '@mui/material/styles';\nimport PropTypes from 'prop-types';\nimport * as color from './color';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nconst StyledPromptContainer = styled('div')(({ theme, tagName }) => ({\n // Base promptTable styles\n '&:not(.MathJax) > table': {\n borderCollapse: 'collapse',\n },\n // Apply vertical striping when first column is a header (th) and NOT mixed with td\n '&:not(.MathJax) > table:has(tbody tr > th:first-child):not(:has(tbody tr > td:first-child)) tbody td:nth-child(even)': {\n backgroundColor: '#f6f8fa',\n color: theme.palette.common.black,\n },\n // Apply horizontal striping for tables where first element is a data cell (td)\n '&:not(.MathJax) > table:has(tbody tr > td:first-child) tbody tr:nth-child(even) td': {\n backgroundColor: '#f6f8fa',\n color: theme.palette.common.black,\n },\n // align table content to left as per STAR requirement PD-3687\n '&:not(.MathJax) table td, &:not(.MathJax) table th': {\n padding: '.6em 1em',\n textAlign: 'left',\n },\n // added this to fix alignment of text in prompt imported from studio (PD-3423)\n '&:not(.MathJax) > table td > p.kds-indent': {\n textAlign: 'initial',\n },\n\n // Conditional styles based on class names\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(4),\n paddingBottom: theme.spacing(1),\n },\n '&.label': {\n color: `${color.text()} !important`,\n display: 'flex',\n flexDirection: 'column',\n verticalAlign: 'middle',\n cursor: 'pointer',\n '& > p': {\n margin: '0 0 0 0 !important',\n },\n },\n}));\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 prompt: PropTypes.string,\n tagName: PropTypes.string,\n className: PropTypes.string,\n onClick: PropTypes.func,\n defaultClassName: PropTypes.string,\n autoplayAudioEnabled: PropTypes.bool,\n customAudioButton: {\n playImage: PropTypes.string,\n pauseImage: PropTypes.string,\n },\n };\n\n static defaultProps = {\n onClick: () => {},\n };\n\n parsedText = (text) => {\n const { customAudioButton } = this.props;\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.setAttribute('id', 'pie-prompt-audio-player');\n\n audio.appendChild(source);\n\n if (customAudioButton) {\n audio.style.display = 'none';\n\n const playButton = document.createElement('div');\n playButton.id = 'play-audio-button';\n\n Object.assign(playButton.style, {\n cursor: 'pointer',\n display: 'block',\n width: '128px',\n height: '128px',\n backgroundImage: `url(${customAudioButton.pauseImage})`,\n backgroundSize: 'cover',\n borderRadius: '50%',\n border: '1px solid #326295',\n });\n\n audio.parentNode.insertBefore(playButton, audio);\n }\n }\n\n return div.innerHTML;\n };\n\n addCustomAudioButtonControls() {\n const { autoplayAudioEnabled, customAudioButton } = this.props;\n const playButton = document.getElementById('play-audio-button');\n const audio = document.getElementById('pie-prompt-audio-player');\n\n if (autoplayAudioEnabled && audio) {\n audio\n .play()\n .then(() => {\n if (playButton && customAudioButton) {\n audio.addEventListener('ended', handleAudioEnded);\n }\n })\n .catch((error) => {\n console.error('Error playing audio', error);\n });\n }\n\n if (!playButton || !audio || !customAudioButton) return;\n\n const handlePlayClick = () => {\n // if already playing, don't play again\n if (!audio.paused) return;\n if (playButton.style.backgroundImage.includes(customAudioButton.pauseImage)) return;\n\n audio.play();\n };\n\n const handleAudioEnded = () => {\n playButton.style.backgroundImage = `url(${customAudioButton.playImage})`;\n };\n\n const handleAudioPlay = () => {\n Object.assign(playButton.style, {\n backgroundImage: `url(${customAudioButton.pauseImage})`,\n border: '1px solid #ccc',\n });\n };\n\n const handleAudioPause = () => {\n Object.assign(playButton.style, {\n backgroundImage: `url(${customAudioButton.playImage})`,\n border: '1px solid #326295',\n });\n };\n\n playButton.addEventListener('click', handlePlayClick);\n audio.addEventListener('play', handleAudioPlay);\n audio.addEventListener('pause', handleAudioPause);\n audio.addEventListener('ended', handleAudioEnded);\n\n // store event handler references so they can be removed later\n this._handlePlayClick = handlePlayClick;\n this._handleAudioPlay = handleAudioPlay;\n this._handleAudioPause = handleAudioPause;\n this._handleAudioEnded = handleAudioEnded;\n }\n\n removeCustomAudioButtonListeners() {\n const playButton = document.getElementById('play-audio-button');\n const audio = document.querySelector('audio');\n\n if (!playButton || !audio) return;\n\n // remove event listeners using stored references\n playButton.removeEventListener('click', this._handlePlayClick);\n audio.removeEventListener('play', this._handleAudioPlay);\n audio.removeEventListener('pause', this._handleAudioPause);\n audio.removeEventListener('ended', this._handleAudioEnded);\n }\n\n componentDidMount() {\n this.alignImages();\n this.addCustomAudioButtonControls();\n this.setupMathRendering();\n }\n\n componentDidUpdate(prevProps) {\n this.alignImages();\n\n if (prevProps.prompt !== this.props.prompt) {\n this.renderMathContent();\n }\n }\n\n componentWillUnmount() {\n this.removeCustomAudioButtonListeners();\n }\n\n setupMathRendering() {\n this.renderMathContent();\n }\n\n renderMathContent() {\n const container = document.getElementById('preview-prompt');\n if (container && typeof renderMath === 'function') {\n renderMath(container);\n }\n }\n\n alignImages() {\n const previewPrompts = document.querySelectorAll('#preview-prompt');\n\n previewPrompts.forEach((previewPrompt) => {\n const images = 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 !(\n parentNode.tagName === 'DIV' &&\n parentNode.style.display === 'flex' &&\n parentNode.style.width === '100%'\n )\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\n render() {\n const { prompt, tagName, className, onClick, defaultClassName } = this.props;\n // legend tag was added once with accessibility tasks, we need extra style to make it work with images alignment\n const legendClass = tagName === 'legend' ? 'legend' : '';\n const customClasses = `${className || ''} ${defaultClassName || ''} ${legendClass}`.trim();\n\n return (\n <StyledPromptContainer\n as={tagName || 'div'}\n id={'preview-prompt'}\n onClick={onClick}\n className={customClasses}\n tagName={tagName}\n dangerouslySetInnerHTML={{\n __html: this.parsedText(prompt || '').replace(NEWLINE_BLOCK_REGEX, NEWLINE_LATEX),\n }}\n />\n );\n }\n}\n\nexport default PreviewPrompt;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/purpose.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
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 _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var Purpose = function Purpose(props) {
|
|
11
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, _react["default"].Children.map(props.children, function (child) {
|
|
12
|
+
return /*#__PURE__*/_react["default"].cloneElement(child, {
|
|
13
|
+
'data-pie-purpose': props.purpose
|
|
14
|
+
});
|
|
15
|
+
}));
|
|
16
|
+
};
|
|
17
|
+
Purpose.propTypes = {
|
|
18
|
+
children: _propTypes["default"].node,
|
|
19
|
+
purpose: _propTypes["default"].string
|
|
20
|
+
};
|
|
21
|
+
var _default = exports["default"] = Purpose;
|
|
22
|
+
//# sourceMappingURL=purpose.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purpose.js","names":["_propTypes","_interopRequireDefault","require","_react","Purpose","props","createElement","Fragment","React","Children","map","children","child","cloneElement","purpose","propTypes","PropTypes","node","string","_default","exports"],"sources":["../src/purpose.jsx"],"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"],"mappings":";;;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAME,OAAO,GAAG,SAAVA,OAAOA,CAAIC,KAAK,EAAK;EACzB,oBACEF,MAAA,YAAAG,aAAA,CAAAH,MAAA,YAAAI,QAAA,QACGC,iBAAK,CAACC,QAAQ,CAACC,GAAG,CAACL,KAAK,CAACM,QAAQ,EAAE,UAACC,KAAK;IAAA,oBAAKJ,iBAAK,CAACK,YAAY,CAACD,KAAK,EAAE;MAAE,kBAAkB,EAAEP,KAAK,CAACS;IAAQ,CAAC,CAAC;EAAA,EAC/G,CAAC;AAEP,CAAC;AAEDV,OAAO,CAACW,SAAS,GAAG;EAClBJ,QAAQ,EAAEK,qBAAS,CAACC,IAAI;EACxBH,OAAO,EAAEE,qBAAS,CAACE;AACrB,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,cAEahB,OAAO","ignoreList":[]}
|
package/lib/readable.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
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 _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var Readable = function Readable(props) {
|
|
11
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, _react["default"].Children.map(props.children, function (child) {
|
|
12
|
+
return /*#__PURE__*/_react["default"].cloneElement(child, {
|
|
13
|
+
'data-pie-readable': props["false"] === undefined
|
|
14
|
+
});
|
|
15
|
+
}));
|
|
16
|
+
};
|
|
17
|
+
Readable.propTypes = {
|
|
18
|
+
children: _propTypes["default"].node,
|
|
19
|
+
"false": _propTypes["default"].bool
|
|
20
|
+
};
|
|
21
|
+
var _default = exports["default"] = Readable;
|
|
22
|
+
//# sourceMappingURL=readable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readable.js","names":["_propTypes","_interopRequireDefault","require","_react","Readable","props","createElement","Fragment","React","Children","map","children","child","cloneElement","undefined","propTypes","PropTypes","node","bool","_default","exports"],"sources":["../src/readable.jsx"],"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"],"mappings":";;;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAME,QAAQ,GAAG,SAAXA,QAAQA,CAAIC,KAAK,EAAK;EAC1B,oBACEF,MAAA,YAAAG,aAAA,CAAAH,MAAA,YAAAI,QAAA,QACGC,iBAAK,CAACC,QAAQ,CAACC,GAAG,CAACL,KAAK,CAACM,QAAQ,EAAE,UAACC,KAAK;IAAA,oBACxCJ,iBAAK,CAACK,YAAY,CAACD,KAAK,EAAE;MAAE,mBAAmB,EAAEP,KAAK,SAAM,KAAKS;IAAU,CAAC,CAAC;EAAA,CAC/E,CACA,CAAC;AAEP,CAAC;AAEDV,QAAQ,CAACW,SAAS,GAAG;EACnBJ,QAAQ,EAAEK,qBAAS,CAACC,IAAI;EACxB,SAAOD,qBAAS,CAACE;AACnB,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,cAEahB,QAAQ","ignoreList":[]}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.PartiallyCorrect = exports.NothingSubmitted = exports.Incorrect = exports.Correct = void 0;
|
|
9
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
12
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
13
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
var _react = _interopRequireDefault(require("react"));
|
|
16
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
17
|
+
var icons = _interopRequireWildcard(require("@pie-lib/icons"));
|
|
18
|
+
var _Popover = _interopRequireDefault(require("@mui/material/Popover"));
|
|
19
|
+
var _styles = require("@mui/material/styles");
|
|
20
|
+
var _feedback = _interopRequireDefault(require("./feedback"));
|
|
21
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
22
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(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 (var _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); }
|
|
23
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
24
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
25
|
+
var log = (0, _debug["default"])('pie-libs:render-ui:response-indicators');
|
|
26
|
+
var ResponseIndicatorContainer = (0, _styles.styled)('div')(function (_ref) {
|
|
27
|
+
var hasFeedback = _ref.hasFeedback;
|
|
28
|
+
return {
|
|
29
|
+
cursor: hasFeedback ? 'pointer' : 'default'
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
var StyledPopover = (0, _styles.styled)(_Popover["default"])({
|
|
33
|
+
cursor: 'pointer'
|
|
34
|
+
});
|
|
35
|
+
var PopoverPaper = (0, _styles.styled)('div')({
|
|
36
|
+
padding: '0',
|
|
37
|
+
borderRadius: '4px'
|
|
38
|
+
});
|
|
39
|
+
var BuildIndicator = function BuildIndicator(Icon, correctness) {
|
|
40
|
+
var Indicator = /*#__PURE__*/function (_React$Component) {
|
|
41
|
+
function Indicator(props) {
|
|
42
|
+
var _this;
|
|
43
|
+
(0, _classCallCheck2["default"])(this, Indicator);
|
|
44
|
+
_this = _callSuper(this, Indicator, [props]);
|
|
45
|
+
(0, _defineProperty2["default"])(_this, "handlePopoverOpen", function (event) {
|
|
46
|
+
log('[handlePopoverOpen]', event.target);
|
|
47
|
+
_this.setState({
|
|
48
|
+
anchorEl: event.target
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
(0, _defineProperty2["default"])(_this, "handlePopoverClose", function () {
|
|
52
|
+
_this.setState({
|
|
53
|
+
anchorEl: null
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
_this.state = {};
|
|
57
|
+
return _this;
|
|
58
|
+
}
|
|
59
|
+
(0, _inherits2["default"])(Indicator, _React$Component);
|
|
60
|
+
return (0, _createClass2["default"])(Indicator, [{
|
|
61
|
+
key: "render",
|
|
62
|
+
value: function render() {
|
|
63
|
+
var _this2 = this;
|
|
64
|
+
var feedback = this.props.feedback;
|
|
65
|
+
var anchorEl = this.state.anchorEl;
|
|
66
|
+
return /*#__PURE__*/_react["default"].createElement(ResponseIndicatorContainer, {
|
|
67
|
+
hasFeedback: !!feedback
|
|
68
|
+
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
69
|
+
ref: function ref(r) {
|
|
70
|
+
return _this2.icon = r;
|
|
71
|
+
},
|
|
72
|
+
onClick: this.handlePopoverOpen
|
|
73
|
+
}, /*#__PURE__*/_react["default"].createElement(Icon, null)), feedback && /*#__PURE__*/_react["default"].createElement(StyledPopover, {
|
|
74
|
+
PaperComponent: PopoverPaper,
|
|
75
|
+
open: !!anchorEl,
|
|
76
|
+
anchorEl: anchorEl,
|
|
77
|
+
anchorOrigin: {
|
|
78
|
+
vertical: 'bottom',
|
|
79
|
+
horizontal: 'left'
|
|
80
|
+
},
|
|
81
|
+
transformOrigin: {
|
|
82
|
+
vertical: 'top',
|
|
83
|
+
horizontal: 'left'
|
|
84
|
+
},
|
|
85
|
+
onClose: this.handlePopoverClose
|
|
86
|
+
}, /*#__PURE__*/_react["default"].createElement(_feedback["default"], {
|
|
87
|
+
feedback: feedback,
|
|
88
|
+
correctness: correctness
|
|
89
|
+
})));
|
|
90
|
+
}
|
|
91
|
+
}]);
|
|
92
|
+
}(_react["default"].Component);
|
|
93
|
+
Indicator.propTypes = {
|
|
94
|
+
feedback: _propTypes["default"].string
|
|
95
|
+
};
|
|
96
|
+
return Indicator;
|
|
97
|
+
};
|
|
98
|
+
var Correct = exports.Correct = BuildIndicator(icons.Correct, 'correct');
|
|
99
|
+
var Incorrect = exports.Incorrect = BuildIndicator(icons.Incorrect, 'incorrect');
|
|
100
|
+
var PartiallyCorrect = exports.PartiallyCorrect = BuildIndicator(icons.PartiallyCorrect, 'partially-correct');
|
|
101
|
+
var NothingSubmitted = exports.NothingSubmitted = BuildIndicator(icons.NothingSubmitted, 'nothing-submitted');
|
|
102
|
+
//# sourceMappingURL=response-indicators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-indicators.js","names":["_react","_interopRequireDefault","require","_propTypes","icons","_interopRequireWildcard","_Popover","_styles","_feedback","_debug","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","log","debug","ResponseIndicatorContainer","styled","_ref","hasFeedback","cursor","StyledPopover","Popover","PopoverPaper","padding","borderRadius","BuildIndicator","Icon","correctness","Indicator","_React$Component","props","_this","_classCallCheck2","_defineProperty2","event","target","setState","anchorEl","state","_inherits2","_createClass2","key","value","render","_this2","feedback","createElement","ref","icon","onClick","handlePopoverOpen","PaperComponent","open","anchorOrigin","vertical","horizontal","transformOrigin","onClose","handlePopoverClose","React","Component","propTypes","PropTypes","string","Correct","exports","Incorrect","PartiallyCorrect","NothingSubmitted"],"sources":["../src/response-indicators.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as icons from '@pie-lib/icons';\nimport Popover from '@mui/material/Popover';\nimport { styled } from '@mui/material/styles';\nimport Feedback from './feedback';\nimport debug from 'debug';\n\nconst log = debug('pie-libs:render-ui:response-indicators');\n\nconst ResponseIndicatorContainer = styled('div')(({ hasFeedback }) => ({\n cursor: hasFeedback ? 'pointer' : 'default',\n}));\n\nconst StyledPopover = styled(Popover)({\n cursor: 'pointer',\n});\n\nconst PopoverPaper = styled('div')({\n padding: '0',\n borderRadius: '4px',\n});\n\nconst BuildIndicator = (Icon, correctness) => {\n class Indicator 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 } = this.props;\n const { anchorEl } = this.state;\n return (\n <ResponseIndicatorContainer hasFeedback={!!feedback}>\n <span ref={(r) => (this.icon = r)} onClick={this.handlePopoverOpen}>\n <Icon />\n </span>\n\n {feedback && (\n <StyledPopover\n PaperComponent={PopoverPaper}\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 </StyledPopover>\n )}\n </ResponseIndicatorContainer>\n );\n }\n }\n\n Indicator.propTypes = {\n feedback: PropTypes.string,\n };\n\n return Indicator;\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"],"mappings":"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","ignoreList":[]}
|