@pie-element/extended-text-entry 11.8.9 → 11.8.10-next.86

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.
@@ -2,6 +2,8 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
@@ -23,7 +25,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
23
25
 
24
26
  var _react = _interopRequireDefault(require("react"));
25
27
 
26
- var _configUi = require("@pie-lib/pie-toolbox/config-ui");
28
+ var _configUi = require("@pie-lib/config-ui");
27
29
 
28
30
  var _propTypes = _interopRequireDefault(require("prop-types"));
29
31
 
@@ -31,7 +33,11 @@ var _Typography = _interopRequireDefault(require("@material-ui/core/Typography")
31
33
 
32
34
  var _styles = require("@material-ui/core/styles");
33
35
 
34
- var _editableHtml = require("@pie-lib/pie-toolbox/editable-html");
36
+ var _editableHtml = _interopRequireWildcard(require("@pie-lib/editable-html"));
37
+
38
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
39
+
40
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
35
41
 
36
42
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
37
43
 
@@ -223,7 +229,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
223
229
  }, teacherInstructionsEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
224
230
  label: teacherInstructions.label,
225
231
  className: classes.promptContainer
226
- }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
232
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
227
233
  className: classes.prompt,
228
234
  markup: model.teacherInstructions || '',
229
235
  onChange: this.changeTeacherInstructions,
@@ -247,7 +253,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
247
253
  }, teacherInstructionsError)), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
248
254
  label: prompt.label,
249
255
  className: classes.promptContainer
250
- }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
256
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
251
257
  activePlugins: _editableHtml.ALL_PLUGINS,
252
258
  className: classes.prompt,
253
259
  markup: model.prompt || '',
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/main.jsx"],"names":["Panel","settings","toggle","numberFields","dropdown","defaultFeedback","type","Main","props","markup","onModelChanged","model","prompt","feedback","update","teacherInstructions","state","setDimensions","classes","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","annotations","contentDimensions","dimensions","equationEditor","playerSpellCheck","settingsPanelDisabled","spanishInput","specialInput","spellCheck","studentInstructions","mathInput","maxImageWidth","maxImageHeight","multiple","withRubric","mathMlOptions","baseInputConfiguration","errors","extraCSSRules","feedbackEnabled","promptEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","promptError","teacherInstructionsError","defaultImageMaxWidth","defaultImageMaxHeight","toolbarOpts","position","panelSettings","label","enabled","width","suffix","min","max","height","annotationsEnabled","playerSpellCheckDisabled","panelProperties","studentInstructionsEnabled","rubricEnabled","getPluginProps","Object","assign","config","Settings","Properties","promptContainer","changeTeacherInstructions","language","inputConfiguration","errorText","ALL_PLUGINS","onPromptChange","header","changeFeedback","React","Component","PropTypes","func","isRequired","object","theme","paddingBottom","spacing","unit","paddingTop","marginBottom","fontSize","typography","color","palette","error","main"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { FeedbackSelector, InputContainer, settings, layout } from '@pie-lib/pie-toolbox/config-ui';\nimport PropTypes from 'prop-types';\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\nimport { EditableHtml, ALL_PLUGINS } from '@pie-lib/pie-toolbox/editable-html';\n\nconst { Panel, toggle, numberFields, dropdown } = settings;\n\nconst defaultFeedback = {\n type: 'default',\n default: 'Your answer has been submitted',\n};\n\nexport class Main extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n imageSupport: PropTypes.object.isRequired,\n uploadSoundSupport: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = { setDimensions: true };\n }\n\n onPromptChange = (markup) => {\n const { onModelChanged, model } = this.props;\n\n onModelChanged({ ...model, prompt: markup });\n };\n\n changeFeedback = (feedback) => {\n const { model, onModelChanged } = this.props;\n const update = { ...model, feedback };\n\n onModelChanged(update);\n };\n\n changeTeacherInstructions = (teacherInstructions) => {\n const { model, onModelChanged } = this.props;\n const update = { ...model, teacherInstructions };\n\n onModelChanged(update);\n };\n\n render() {\n const { model, classes, configuration, imageSupport, onConfigurationChanged, onModelChanged, uploadSoundSupport } =\n this.props;\n const {\n annotations= {},\n contentDimensions = {},\n dimensions = {},\n equationEditor = {},\n feedback = {},\n playerSpellCheck = {},\n prompt = {},\n settingsPanelDisabled,\n spanishInput = {},\n specialInput = {},\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n mathInput = {},\n maxImageWidth = {},\n maxImageHeight = {},\n multiple = {},\n withRubric = {},\n mathMlOptions = {},\n baseInputConfiguration = {},\n } = configuration || {};\n const {\n errors = {},\n extraCSSRules,\n feedbackEnabled,\n promptEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n const { prompt: promptError, teacherInstructions: teacherInstructionsError } = errors;\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const panelSettings = {\n mathInput: mathInput.settings && toggle(mathInput.label),\n equationEditor:\n equationEditor.enabled &&\n model.mathInput &&\n dropdown(equationEditor.label, [\n 'non-negative-integers',\n 'integers',\n 'decimals',\n 'fractions',\n 'Grade 1 - 2',\n 'Grade 3 - 5',\n 'Grade 6 - 7',\n 'Grade 8 - HS',\n 'geometry',\n 'advanced-algebra',\n 'statistics',\n 'item-authoring',\n ]),\n spanishInput: spanishInput.settings && toggle(spanishInput.label),\n specialInput: specialInput.settings && toggle(specialInput.label),\n dimensions: dimensions.settings && numberFields(dimensions.label, {\n width: { label: 'Width (px)', suffix: 'px', min: 100, max: 1200 },\n height: { label: 'Height (px)', suffix: 'px', min: 100, max: 500 },\n }),\n 'multiple.enabled': multiple.settings && toggle(multiple.label, true),\n promptEnabled: prompt.settings && toggle(prompt.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n annotationsEnabled: annotations.settings && toggle(annotations.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n playerSpellCheckDisabled: playerSpellCheck.settings && toggle(playerSpellCheck.label),\n };\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n const getPluginProps = (props) => {\n return Object.assign(\n {\n ...baseInputConfiguration,\n },\n props || {},\n );\n };\n\n return (\n <layout.ConfigLayout\n extraCSSRules={extraCSSRules}\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={(model) => onModelChanged(model)}\n onChangeConfiguration={(config) => onConfigurationChanged(config)}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptContainer}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={teacherInstructionsError}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration)}\n />\n {teacherInstructionsError && <div className={classes.errorText}>{teacherInstructionsError}</div>}\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.promptContainer}>\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n className={classes.prompt}\n markup={model.prompt || ''}\n onChange={this.onPromptChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={promptError}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n pluginProps={getPluginProps(prompt?.inputConfiguration)}\n />\n {promptError && <div className={classes.errorText}>{promptError}</div>}\n </InputContainer>\n )}\n\n {feedbackEnabled && (\n <React.Fragment>\n <Typography className={classes.header} variant=\"subheading\">\n Feedback\n </Typography>\n\n <FeedbackSelector\n label=\"When submitted, show\"\n feedback={model.feedback || defaultFeedback}\n onChange={this.changeFeedback}\n toolbarOpts={toolbarOpts}\n />\n </React.Fragment>\n )}\n </layout.ConfigLayout>\n );\n }\n}\nexport default withStyles((theme) => ({\n header: {\n paddingBottom: theme.spacing.unit,\n },\n promptContainer: {\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n width: '100%',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n}))(Main);\n"],"file":"main.js"}
1
+ {"version":3,"sources":["../src/main.jsx"],"names":["Panel","settings","toggle","numberFields","dropdown","defaultFeedback","type","Main","props","markup","onModelChanged","model","prompt","feedback","update","teacherInstructions","state","setDimensions","classes","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","annotations","contentDimensions","dimensions","equationEditor","playerSpellCheck","settingsPanelDisabled","spanishInput","specialInput","spellCheck","studentInstructions","mathInput","maxImageWidth","maxImageHeight","multiple","withRubric","mathMlOptions","baseInputConfiguration","errors","extraCSSRules","feedbackEnabled","promptEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","promptError","teacherInstructionsError","defaultImageMaxWidth","defaultImageMaxHeight","toolbarOpts","position","panelSettings","label","enabled","width","suffix","min","max","height","annotationsEnabled","playerSpellCheckDisabled","panelProperties","studentInstructionsEnabled","rubricEnabled","getPluginProps","Object","assign","config","Settings","Properties","promptContainer","changeTeacherInstructions","language","inputConfiguration","errorText","ALL_PLUGINS","onPromptChange","header","changeFeedback","React","Component","PropTypes","func","isRequired","object","theme","paddingBottom","spacing","unit","paddingTop","marginBottom","fontSize","typography","color","palette","error","main"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { FeedbackSelector, InputContainer, settings, layout } from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\nimport EditableHtml, { ALL_PLUGINS } from '@pie-lib/editable-html';\n\nconst { Panel, toggle, numberFields, dropdown } = settings;\n\nconst defaultFeedback = {\n type: 'default',\n default: 'Your answer has been submitted',\n};\n\nexport class Main extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n imageSupport: PropTypes.object.isRequired,\n uploadSoundSupport: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = { setDimensions: true };\n }\n\n onPromptChange = (markup) => {\n const { onModelChanged, model } = this.props;\n\n onModelChanged({ ...model, prompt: markup });\n };\n\n changeFeedback = (feedback) => {\n const { model, onModelChanged } = this.props;\n const update = { ...model, feedback };\n\n onModelChanged(update);\n };\n\n changeTeacherInstructions = (teacherInstructions) => {\n const { model, onModelChanged } = this.props;\n const update = { ...model, teacherInstructions };\n\n onModelChanged(update);\n };\n\n render() {\n const { model, classes, configuration, imageSupport, onConfigurationChanged, onModelChanged, uploadSoundSupport } =\n this.props;\n const {\n annotations = {},\n contentDimensions = {},\n dimensions = {},\n equationEditor = {},\n feedback = {},\n playerSpellCheck = {},\n prompt = {},\n settingsPanelDisabled,\n spanishInput = {},\n specialInput = {},\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n mathInput = {},\n maxImageWidth = {},\n maxImageHeight = {},\n multiple = {},\n withRubric = {},\n mathMlOptions = {},\n baseInputConfiguration = {},\n } = configuration || {};\n const {\n errors = {},\n extraCSSRules,\n feedbackEnabled,\n promptEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n const { prompt: promptError, teacherInstructions: teacherInstructionsError } = errors;\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const panelSettings = {\n mathInput: mathInput.settings && toggle(mathInput.label),\n equationEditor:\n equationEditor.enabled &&\n model.mathInput &&\n dropdown(equationEditor.label, [\n 'non-negative-integers',\n 'integers',\n 'decimals',\n 'fractions',\n 'Grade 1 - 2',\n 'Grade 3 - 5',\n 'Grade 6 - 7',\n 'Grade 8 - HS',\n 'geometry',\n 'advanced-algebra',\n 'statistics',\n 'item-authoring',\n ]),\n spanishInput: spanishInput.settings && toggle(spanishInput.label),\n specialInput: specialInput.settings && toggle(specialInput.label),\n dimensions:\n dimensions.settings &&\n numberFields(dimensions.label, {\n width: { label: 'Width (px)', suffix: 'px', min: 100, max: 1200 },\n height: { label: 'Height (px)', suffix: 'px', min: 100, max: 500 },\n }),\n 'multiple.enabled': multiple.settings && toggle(multiple.label, true),\n promptEnabled: prompt.settings && toggle(prompt.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n annotationsEnabled: annotations.settings && toggle(annotations.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n playerSpellCheckDisabled: playerSpellCheck.settings && toggle(playerSpellCheck.label),\n };\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n const getPluginProps = (props) => {\n return Object.assign(\n {\n ...baseInputConfiguration,\n },\n props || {},\n );\n };\n\n return (\n <layout.ConfigLayout\n extraCSSRules={extraCSSRules}\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={(model) => onModelChanged(model)}\n onChangeConfiguration={(config) => onConfigurationChanged(config)}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptContainer}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={teacherInstructionsError}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration)}\n />\n {teacherInstructionsError && <div className={classes.errorText}>{teacherInstructionsError}</div>}\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.promptContainer}>\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n className={classes.prompt}\n markup={model.prompt || ''}\n onChange={this.onPromptChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={promptError}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n pluginProps={getPluginProps(prompt?.inputConfiguration)}\n />\n {promptError && <div className={classes.errorText}>{promptError}</div>}\n </InputContainer>\n )}\n\n {feedbackEnabled && (\n <React.Fragment>\n <Typography className={classes.header} variant=\"subheading\">\n Feedback\n </Typography>\n\n <FeedbackSelector\n label=\"When submitted, show\"\n feedback={model.feedback || defaultFeedback}\n onChange={this.changeFeedback}\n toolbarOpts={toolbarOpts}\n />\n </React.Fragment>\n )}\n </layout.ConfigLayout>\n );\n }\n}\nexport default withStyles((theme) => ({\n header: {\n paddingBottom: theme.spacing.unit,\n },\n promptContainer: {\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n width: '100%',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n}))(Main);\n"],"file":"main.js"}
@@ -10,7 +10,8 @@
10
10
  "dependencies": {
11
11
  "@material-ui/core": "^3.9.2",
12
12
  "@pie-framework/pie-configure-events": "^1.3.0",
13
- "@pie-lib/pie-toolbox": "2.25.2",
13
+ "@pie-lib/config-ui": "^11.24.0",
14
+ "@pie-lib/editable-html": "^11.16.0",
14
15
  "lodash": "^4.17.15",
15
16
  "prop-types": "^15.6.2",
16
17
  "react": "^16.8.1",
@@ -19,7 +19,7 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
19
19
 
20
20
  var _debug = _interopRequireDefault(require("debug"));
21
21
 
22
- var _feedback = require("@pie-lib/pie-toolbox/feedback");
22
+ var _feedback = require("@pie-lib/feedback");
23
23
 
24
24
  var _defaults = _interopRequireDefault(require("./defaults"));
25
25
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["log","createDefaultModel","model","defaults","normalize","question","session","env","normalizedQuestion","fb","mode","feedbackEnabled","feedback","Promise","resolve","undefined","teacherInstructions","role","teacherInstructionsEnabled","equationEditor","annotatorMode","annotationsEnabled","then","prompt","promptEnabled","dimensions","customKeys","id","disabled","language","mathInput","spanishInput","specialInput","spellCheckEnabled","playerSpellCheckDisabled","playersToolbarPosition","disabledAnnotator","predefinedAnnotations","extraCSSRules","outcome","score","completed","note","getInnerText","html","replaceAll","getContent","replace","validate","config","errors","forEach","field","required"],"mappings":"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","sourcesContent":["import debug from 'debug';\nimport { getFeedback } from '@pie-lib/pie-toolbox/feedback';\nimport defaults from './defaults';\n\nconst log = debug('@pie-element:extended-text-entry:controller');\n\nexport async function createDefaultModel(model = {}) {\n log('[createDefaultModel]', model);\n\n return { ...defaults, ...model };\n}\n\nexport const normalize = (question) => ({ ...defaults, ...question });\n\nexport async function model(question, session, env) {\n log('[question]', question);\n const normalizedQuestion = normalize(question);\n\n const fb =\n env.mode === 'evaluate' && normalizedQuestion.feedbackEnabled\n ? getFeedback(normalizedQuestion.feedback, 'Your answer has been submitted')\n : Promise.resolve(undefined);\n\n let teacherInstructions = null;\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n teacherInstructions = normalizedQuestion.teacherInstructionsEnabled ? normalizedQuestion.teacherInstructions : null;\n } else {\n teacherInstructions = null;\n }\n\n let equationEditor = normalizedQuestion.equationEditor || 'miscellaneous';\n\n switch (normalizedQuestion.equationEditor) {\n case 'Grade 1 - 2':\n equationEditor = 1;\n break;\n case 'Grade 3 - 5':\n equationEditor = 3;\n break;\n case 'Grade 6 - 7':\n equationEditor = 6;\n break;\n case 'Grade 8 - HS':\n equationEditor = 8;\n break;\n default:\n break;\n }\n\n const annotatorMode = normalizedQuestion.annotationsEnabled && (env.role === 'instructor' || env.mode === 'evaluate');\n\n return fb.then((feedback) => ({\n prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null,\n dimensions: normalizedQuestion.dimensions,\n customKeys: normalizedQuestion.customKeys || [],\n id: normalizedQuestion.id,\n disabled: env.mode !== 'gather',\n feedback,\n teacherInstructions,\n language:normalizedQuestion.language,\n mathInput: normalizedQuestion.mathInput,\n spanishInput: normalizedQuestion.spanishInput,\n specialInput: normalizedQuestion.specialInput,\n equationEditor,\n spellCheckEnabled: !normalizedQuestion.playerSpellCheckDisabled,\n playersToolbarPosition: normalizedQuestion.playersToolbarPosition || 'bottom',\n annotatorMode,\n disabledAnnotator: normalizedQuestion.annotationsEnabled ? env.role !== 'instructor' : true,\n predefinedAnnotations: normalizedQuestion.annotationsEnabled ? normalizedQuestion.predefinedAnnotations : [],\n extraCSSRules: normalizedQuestion.extraCSSRules,\n }));\n}\n\nexport async function outcome(/*question, session, env*/) {\n return {\n score: 0,\n completed: 'n/a',\n note: 'Requires manual scoring',\n };\n}\n\n// remove all html tags\nconst getInnerText = (html) => (html || '').replaceAll(/<[^>]*>/g, '');\n\n// remove all html tags except img, iframe and source tag for audio\nconst getContent = (html) => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');\n\nexport const validate = (model = {}, config = {}) => {\n const errors = {};\n\n ['teacherInstructions', 'prompt'].forEach((field) => {\n if (config[field]?.required && !getContent(model[field])) {\n errors[field] = 'This field is required.';\n }\n });\n\n return errors;\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["log","createDefaultModel","model","defaults","normalize","question","session","env","normalizedQuestion","fb","mode","feedbackEnabled","feedback","Promise","resolve","undefined","teacherInstructions","role","teacherInstructionsEnabled","equationEditor","annotatorMode","annotationsEnabled","then","prompt","promptEnabled","dimensions","customKeys","id","disabled","language","mathInput","spanishInput","specialInput","spellCheckEnabled","playerSpellCheckDisabled","playersToolbarPosition","disabledAnnotator","predefinedAnnotations","extraCSSRules","outcome","score","completed","note","getInnerText","html","replaceAll","getContent","replace","validate","config","errors","forEach","field","required"],"mappings":"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","sourcesContent":["import debug from 'debug';\nimport { getFeedback } from '@pie-lib/feedback';\nimport defaults from './defaults';\n\nconst log = debug('@pie-element:extended-text-entry:controller');\n\nexport async function createDefaultModel(model = {}) {\n log('[createDefaultModel]', model);\n\n return { ...defaults, ...model };\n}\n\nexport const normalize = (question) => ({ ...defaults, ...question });\n\nexport async function model(question, session, env) {\n log('[question]', question);\n const normalizedQuestion = normalize(question);\n\n const fb =\n env.mode === 'evaluate' && normalizedQuestion.feedbackEnabled\n ? getFeedback(normalizedQuestion.feedback, 'Your answer has been submitted')\n : Promise.resolve(undefined);\n\n let teacherInstructions = null;\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n teacherInstructions = normalizedQuestion.teacherInstructionsEnabled ? normalizedQuestion.teacherInstructions : null;\n } else {\n teacherInstructions = null;\n }\n\n let equationEditor = normalizedQuestion.equationEditor || 'miscellaneous';\n\n switch (normalizedQuestion.equationEditor) {\n case 'Grade 1 - 2':\n equationEditor = 1;\n break;\n case 'Grade 3 - 5':\n equationEditor = 3;\n break;\n case 'Grade 6 - 7':\n equationEditor = 6;\n break;\n case 'Grade 8 - HS':\n equationEditor = 8;\n break;\n default:\n break;\n }\n\n const annotatorMode = normalizedQuestion.annotationsEnabled && (env.role === 'instructor' || env.mode === 'evaluate');\n\n return fb.then((feedback) => ({\n prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null,\n dimensions: normalizedQuestion.dimensions,\n customKeys: normalizedQuestion.customKeys || [],\n id: normalizedQuestion.id,\n disabled: env.mode !== 'gather',\n feedback,\n teacherInstructions,\n language: normalizedQuestion.language,\n mathInput: normalizedQuestion.mathInput,\n spanishInput: normalizedQuestion.spanishInput,\n specialInput: normalizedQuestion.specialInput,\n equationEditor,\n spellCheckEnabled: !normalizedQuestion.playerSpellCheckDisabled,\n playersToolbarPosition: normalizedQuestion.playersToolbarPosition || 'bottom',\n annotatorMode,\n disabledAnnotator: normalizedQuestion.annotationsEnabled ? env.role !== 'instructor' : true,\n predefinedAnnotations: normalizedQuestion.annotationsEnabled ? normalizedQuestion.predefinedAnnotations : [],\n extraCSSRules: normalizedQuestion.extraCSSRules,\n }));\n}\n\nexport async function outcome(/*question, session, env*/) {\n return {\n score: 0,\n completed: 'n/a',\n note: 'Requires manual scoring',\n };\n}\n\n// remove all html tags\nconst getInnerText = (html) => (html || '').replaceAll(/<[^>]*>/g, '');\n\n// remove all html tags except img, iframe and source tag for audio\nconst getContent = (html) => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');\n\nexport const validate = (model = {}, config = {}) => {\n const errors = {};\n\n ['teacherInstructions', 'prompt'].forEach((field) => {\n if (config[field]?.required && !getContent(model[field])) {\n errors[field] = 'This field is required.';\n }\n });\n\n return errors;\n};\n"],"file":"index.js"}
@@ -6,7 +6,7 @@
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
8
8
  "dependencies": {
9
- "@pie-lib/pie-toolbox": "2.25.2"
9
+ "@pie-lib/feedback": "^0.19.0"
10
10
  },
11
11
  "scripts": {
12
12
  "test": "echo \"Error: no test specified\" && exit 1"
@@ -37,9 +37,9 @@ var _freeformEditor = _interopRequireDefault(require("./freeform-editor"));
37
37
 
38
38
  var _annotationMenu = _interopRequireDefault(require("./annotation-menu"));
39
39
 
40
- var _editableHtml = require("@pie-lib/pie-toolbox/editable-html");
40
+ var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
41
41
 
42
- var _configUi = require("@pie-lib/pie-toolbox/config-ui");
42
+ var _configUi = require("@pie-lib/config-ui");
43
43
 
44
44
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
45
45
 
@@ -634,7 +634,7 @@ var AnnotationEditor = /*#__PURE__*/function (_React$Component) {
634
634
  })), /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
635
635
  label: 'Comment',
636
636
  className: classes.commentContainer
637
- }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
637
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
638
638
  className: classes.prompt,
639
639
  markup: comment || '',
640
640
  onChange: onCommentChange,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/annotation/annotation-editor.jsx"],"names":["style","theme","textContainer","padding","backgroundColor","border","borderRadius","overflowY","lineHeight","whiteSpace","overflowWrap","margin","userSelect","labelsContainer","width","wrapper","position","overflowX","display","commentContainer","paddingTop","spacing","unit","marginBottom","marginTop","annotation","cursor","annotationLabel","top","left","fontSize","typography","fontStyle","fontWeight","color","labelHover","zIndex","highlight","hover","sideAnnotationHover","borderRightColor","sideAnnotation","marginLeft","wordBreak","palette","common","white","right","content","height","pointerEvents","borderWidth","AnnotationEditor","props","textRef","labelsRef","offsetLeft","offsetWidth","Array","from","children","forEach","label","spans","dataset","annId","spanOffset","offsetTop","offsetParent","scrollTop","event","annotations","classes","selectionDetails","state","target","id","annotationId","selectedElems","labelElem","annotationIndex","findIndex","isSideLabel","hasAttribute","classList","add","setState","anchorEl","openedMenu","openedEditor","elem","remove","length","selection","window","getSelection","detail","rangeCount","selectedRange","getRangeAt","selectedText","toString","isSelectionInside","contains","commonAncestorContainer","isCollapsed","onChange","parentRef","removeChild","splice","handleClose","elems","disabled","type","className","onclick","handleClick","onmouseover","handleHover","onmouseout","handleCancelHover","firstSpan","document","createElement","innerHTML","freeform","appendChild","start","end","Date","getTime","join","createDOMAnnotation","newAnnotation","text","updatedAnnotation","oldType","oldLabel","updateLabel","createNewAnnotation","push","newLabel","span","domStart","domEnd","range","createRange","setStart","node","offset","setEnd","adjustAnnotationsPosition","addEventListener","removeEventListener","comment","customKeys","disabledMath","keypadMode","maxHeight","onCommentChange","predefinedAnnotations","anchorOffset","topOffset","minHeight","r","clearSelection","handleSelection","__html","prompt","math","controlledKeypadMode","video","audio","textAlign","deleteAnnotation","editAnnotation","addAnnotation","handleMenuClick","updateAnnotation","changeAnnotationType","React","Component","PropTypes","string","array","func","isRequired","number","bool","object"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport {\n clearSelection,\n isSideLabel,\n getAnnotationElements,\n getDOMNodes,\n getLabelElement,\n getRangeDetails,\n removeElemsWrapping,\n wrapRange,\n} from './annotation-utils';\nimport FreeformEditor from './freeform-editor';\nimport AnnotationMenu from './annotation-menu';\n\nimport { EditableHtml } from '@pie-lib/pie-toolbox/editable-html';\nimport { InputContainer } from '@pie-lib/pie-toolbox/config-ui';\n\nconst style = (theme) => ({\n textContainer: {\n padding: '10px 120px 10px 16px',\n backgroundColor: 'rgba(0, 0, 0, 0.06)',\n border: '1px solid #ccc',\n borderRadius: '4px',\n overflowY: 'scroll',\n lineHeight: '36px',\n whiteSpace: 'pre-wrap',\n overflowWrap: 'break-word',\n '& p': {\n margin: 0,\n },\n '& span[data-latex]': {\n userSelect: 'none',\n '-webkit-user-select': 'none',\n '-moz-user-select': 'none',\n '-ms-user-select': 'none',\n },\n },\n labelsContainer: {\n width: '230px',\n },\n wrapper: {\n position: 'relative',\n overflowX: 'hidden',\n display: 'flex',\n },\n commentContainer: {\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n marginTop: theme.spacing.unit * 2,\n width: '100%',\n },\n annotation: {\n position: 'relative',\n cursor: 'pointer',\n\n '&.positive': {\n backgroundColor: 'rgb(51, 255, 51, 0.5)',\n },\n\n '&.negative': {\n backgroundColor: 'rgba(255, 102, 204, 0.4)',\n },\n },\n annotationLabel: {\n backgroundColor: 'rgb(242, 242, 242)',\n padding: '2px',\n position: 'absolute',\n userSelect: 'none',\n whiteSpace: 'nowrap',\n top: '-10px',\n left: '-2px',\n fontSize: theme.typography.fontSize - 2,\n fontStyle: 'normal',\n fontWeight: 'normal',\n lineHeight: '6px',\n '-webkit-user-select': 'none',\n '-moz-user-select': 'none',\n '-ms-user-select': 'none',\n\n '&.positive': {\n color: 'rgb(0, 128, 0)',\n },\n\n '&.negative': {\n color: 'rgb(204, 0, 136)',\n },\n },\n labelHover: {\n zIndex: 20,\n\n '&.positive': {\n color: 'rgb(0, 77, 0)',\n },\n\n '&.negative': {\n color: 'rgb(153, 0, 102)',\n },\n },\n highlight: {\n zIndex: 10,\n },\n hover: {\n zIndex: 20,\n\n '&.positive': {\n backgroundColor: 'rgb(51, 255, 51, 0.7)',\n },\n\n '&.negative': {\n backgroundColor: 'rgba(255, 102, 204, 0.55)',\n },\n },\n sideAnnotationHover: {\n zIndex: 20,\n\n '&.negative': {\n backgroundColor: 'rgb(255, 179, 230) !important',\n '&:before': {\n borderRightColor: 'rgb(255, 179, 230) !important',\n },\n },\n\n '&.positive': {\n backgroundColor: 'rgb(128, 255, 128) !important',\n '&:before': {\n borderRightColor: 'rgb(153, 255, 153) !important',\n },\n },\n },\n sideAnnotation: {\n position: 'absolute',\n padding: theme.spacing.unit / 2,\n borderRadius: '4px',\n marginLeft: theme.spacing.unit ,\n width: '180px',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n border: `2px solid ${theme.palette.common.white}`,\n fontSize: theme.typography.fontSize,\n fontStyle: 'normal',\n fontWeight: 'normal',\n\n '&:before': {\n position: 'absolute',\n right: '100%',\n top: '5px',\n border: 'solid transparent',\n content: '\"\"',\n height: 0,\n width: 0,\n pointerEvents: 'none',\n borderWidth: '7px',\n },\n\n '&.negative': {\n backgroundColor: 'rgb(255, 204, 238)',\n '&:before': {\n borderRightColor: 'rgb(255, 204, 238)',\n },\n },\n\n '&.positive': {\n backgroundColor: 'rgb(153, 255, 153)',\n '&:before': {\n borderRightColor: 'rgb(153, 255, 153)',\n },\n },\n },\n});\n\nclass AnnotationEditor extends React.Component {\n static propTypes = {\n text: PropTypes.string,\n comment: PropTypes.string,\n annotations: PropTypes.array,\n predefinedAnnotations: PropTypes.array,\n onChange: PropTypes.func.isRequired,\n onCommentChange: PropTypes.func.isRequired,\n width: PropTypes.number,\n height: PropTypes.number,\n maxHeight: PropTypes.string,\n disabled: PropTypes.bool,\n disabledMath: PropTypes.bool,\n customKeys: PropTypes.array,\n keypadMode: PropTypes.string,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n anchorEl: null,\n openedMenu: false,\n openedEditor: false,\n selectedElems: [],\n labelElem: null,\n selectionDetails: null,\n annotation: null,\n annotationIndex: null,\n };\n }\n\n componentDidMount() {\n const { annotations, text } = this.props;\n\n if (text) {\n annotations.forEach((annotation) => {\n const [domStart, domEnd] = getDOMNodes(annotation.start, annotation.end, this.textRef);\n\n if (domStart && domEnd) {\n const range = document.createRange();\n\n range.setStart(domStart.node, domStart.offset);\n range.setEnd(domEnd.node, domEnd.offset);\n\n const spans = wrapRange(range);\n\n this.createDOMAnnotation(spans, annotation);\n }\n });\n }\n\n if (this.textRef) {\n this.adjustAnnotationsPosition();\n this.textRef.addEventListener('scroll', this.adjustAnnotationsPosition);\n }\n }\n\n adjustAnnotationsPosition = () => {\n if (this.textRef && this.labelsRef) {\n const left = this.textRef.offsetLeft + this.textRef.offsetWidth + 8;\n\n Array.from(this.labelsRef.children).forEach((label) => {\n const spans = getAnnotationElements(label.dataset.annId);\n const spanOffset = spans[0].offsetTop ? spans[0].offsetTop : spans[0].offsetParent.offsetTop;\n const top = spanOffset - this.textRef.scrollTop - 6;\n\n label.style.top = `${top}px`;\n label.style.left = `${left}px`;\n });\n }\n };\n\n handleClick = (event) => {\n const { annotations, classes } = this.props;\n const { selectionDetails } = this.state;\n\n if (selectionDetails) {\n // new selection was made inside another annotation and should not update that annotation\n return;\n }\n\n const { id, annId } = event.target.dataset;\n const annotationId = id || annId;\n const selectedElems = getAnnotationElements(annotationId);\n const labelElem = getLabelElement(annotationId);\n const annotationIndex = annotations.findIndex((annotation) => annotation.id === annotationId);\n const isSideLabel = labelElem.hasAttribute('data-freeform');\n\n if (isSideLabel) {\n labelElem.classList.add(classes.highlight);\n }\n\n this.setState({\n anchorEl: selectedElems[0],\n openedMenu: !!id || (!!annId && !isSideLabel), // true if the annotation or the label was clicked\n openedEditor: !!annId && isSideLabel, // true if the side label was clicked\n selectedElems,\n labelElem,\n annotationIndex,\n annotation: annotations[annotationIndex],\n selectionDetails: null,\n });\n };\n\n handleHover = (event) => {\n const { classes } = this.props;\n const { id, annId } = event.target.dataset;\n const annotationId = id || annId;\n const selectedElems = getAnnotationElements(annotationId);\n const labelElem = getLabelElement(annotationId);\n const isSideLabel = labelElem.hasAttribute('data-freeform');\n\n selectedElems.forEach((elem) => elem.classList.add(classes.hover));\n labelElem.classList.add(isSideLabel ? classes.sideAnnotationHover : classes.labelHover);\n };\n\n handleCancelHover = (event) => {\n const { classes } = this.props;\n const { id, annId } = event.target.dataset;\n const annotationId = id || annId;\n const selectedElems = getAnnotationElements(annotationId);\n const labelElem = getLabelElement(annotationId);\n const isSideLabel = labelElem.hasAttribute('data-freeform');\n\n selectedElems.forEach((elem) => elem.classList.remove(classes.hover));\n labelElem.classList.remove(isSideLabel ? classes.sideAnnotationHover : classes.labelHover);\n };\n\n handleClose = (event) => {\n const { classes } = this.props;\n const { selectedElems, labelElem } = this.state;\n\n if (selectedElems.length && !selectedElems[0].hasAttribute('data-id')) {\n removeElemsWrapping(selectedElems, this.textRef);\n }\n\n if (labelElem) {\n labelElem.classList.remove(classes.highlight);\n }\n\n this.setState({\n anchorEl: null,\n openedMenu: false,\n openedEditor: false,\n selectedElems: [],\n labelElem: null,\n selectionDetails: null,\n annotationIndex: null,\n annotation: null,\n });\n\n clearSelection();\n };\n\n handleSelection = (event) => {\n const selection = window.getSelection();\n\n // prevent unwanted selections\n if (event.detail > 2) {\n clearSelection();\n return;\n }\n\n if (selection && selection.rangeCount > 0) {\n const selectedRange = selection.getRangeAt(0);\n const selectedText = selectedRange.toString();\n const isSelectionInside = this.textRef.contains(selectedRange.commonAncestorContainer);\n\n if (!selection.isCollapsed && selectedText !== '' && isSelectionInside) {\n const selectionDetails = getRangeDetails(selectedRange, this.textRef);\n const selectedElems = wrapRange(selectedRange);\n\n this.setState({\n anchorEl: selectedElems[0],\n openedMenu: true,\n selectedElems,\n selectionDetails,\n });\n }\n }\n };\n\n deleteAnnotation = () => {\n const { annotations, onChange } = this.props;\n const { selectedElems, labelElem, annotationIndex, annotation } = this.state;\n const parentRef = isSideLabel(annotation.label) ? this.labelsRef : selectedElems[0];\n\n parentRef.removeChild(labelElem);\n removeElemsWrapping(selectedElems, this.textRef);\n annotations.splice(annotationIndex, 1);\n\n onChange(annotations);\n this.handleClose();\n };\n\n createDOMAnnotation = (elems, annotation) => {\n const { classes, disabled } = this.props;\n const { id, label, type } = annotation;\n\n (elems || []).forEach((elem) => {\n elem.dataset.id = id;\n elem.className = classNames(classes.annotation, type);\n elem.onclick = !disabled && this.handleClick;\n elem.onmouseover = this.handleHover;\n elem.onmouseout = this.handleCancelHover;\n });\n\n const firstSpan = (elems && elems[0]) || {};\n const labelElem = document.createElement('SPAN');\n\n labelElem.dataset.annId = id;\n labelElem.innerHTML = label;\n labelElem.onclick = !disabled && this.handleClick;\n labelElem.onmouseover = this.handleHover;\n labelElem.onmouseout = this.handleCancelHover;\n\n if (isSideLabel(label)) {\n const spanOffset = firstSpan.offsetTop ? firstSpan.offsetTop : firstSpan.offsetParent.offsetTop;\n const top = spanOffset - this.textRef.scrollTop;\n const left = this.textRef.offsetLeft + this.textRef.offsetWidth + 8;\n\n labelElem.dataset.freeform = true;\n labelElem.className = classNames(classes.sideAnnotation, type);\n labelElem.style.top = `${top}px`;\n labelElem.style.left = `${left}px`;\n\n this.labelsRef.appendChild(labelElem);\n } else {\n labelElem.className = classNames(classes.annotationLabel, type);\n firstSpan.appendChild(labelElem);\n }\n };\n\n createNewAnnotation = (label, type) => {\n const { selectedElems, selectionDetails } = this.state;\n const annotation = {\n id: [selectionDetails.start, selectionDetails.end, new Date().getTime()].join('-'),\n label,\n type,\n ...selectionDetails,\n };\n\n this.createDOMAnnotation(selectedElems, annotation);\n\n return annotation;\n };\n\n handleMenuClick = (newAnnotation) => {\n const { annotations, onChange } = this.props;\n const { annotation, annotationIndex } = this.state;\n const { type, text: label } = newAnnotation;\n\n if (annotation) {\n const updatedAnnotation = { ...annotation, label, type };\n const { type: oldType, label: oldLabel } = annotation;\n\n this.updateLabel(oldLabel, updatedAnnotation, type !== oldType && oldType);\n annotations.splice(annotationIndex, 1, updatedAnnotation);\n } else {\n const newAnnotation = this.createNewAnnotation(label, type);\n\n annotations.push(newAnnotation);\n }\n\n onChange(annotations);\n this.handleClose();\n };\n\n editAnnotation = () => {\n this.setState({\n openedMenu: false,\n openedEditor: true,\n });\n };\n\n addAnnotation = (type) => {\n const { annotations, onChange } = this.props;\n const annotation = this.createNewAnnotation('', type);\n const labelElem = getLabelElement(annotation.id);\n\n annotations.push(annotation);\n\n this.setState({\n openedMenu: false,\n openedEditor: true,\n annotationIndex: annotations.length - 1,\n annotation,\n labelElem,\n });\n\n onChange(annotations);\n };\n\n updateLabel = (oldLabel, annotation, oldType) => {\n const { selectedElems, labelElem } = this.state;\n const { label, type } = annotation;\n\n if ((isSideLabel(label) && isSideLabel(oldLabel)) || (!isSideLabel(label) && !isSideLabel(oldLabel))) {\n labelElem.innerHTML = label;\n\n if (oldType) {\n labelElem.classList.remove(oldType);\n labelElem.classList.add(type);\n\n selectedElems.forEach((elem) => {\n elem.classList.remove(oldType);\n elem.classList.add(type);\n });\n }\n } else if (isSideLabel(label) && !isSideLabel(oldLabel)) {\n selectedElems[0].removeChild(labelElem);\n this.createDOMAnnotation(selectedElems, annotation);\n } else if (!isSideLabel(label) && isSideLabel(oldLabel)) {\n this.labelsRef.removeChild(labelElem);\n this.createDOMAnnotation(selectedElems, annotation);\n }\n };\n\n changeAnnotationType = (newLabel) => {\n const { annotations, onChange } = this.props;\n const { annotationIndex, selectedElems } = this.state;\n const { type: oldType, label: oldLabel } = annotations[annotationIndex];\n const type = oldType === 'positive' ? 'negative' : 'positive';\n const updatedAnnotation = { ...annotations[annotationIndex], type, label: newLabel };\n\n selectedElems.forEach((span) => {\n span.classList.remove(oldType);\n span.classList.add(type);\n });\n\n this.updateLabel(oldLabel, updatedAnnotation, oldType);\n annotations.splice(annotationIndex, 1, updatedAnnotation);\n\n onChange(annotations);\n this.handleClose();\n };\n\n updateAnnotation = (oldLabel, newLabel) => {\n const { annotations, onChange } = this.props;\n const { annotationIndex } = this.state;\n const updatedAnnotation = { ...annotations[annotationIndex], label: newLabel };\n\n this.updateLabel(oldLabel, updatedAnnotation);\n annotations.splice(annotationIndex, 1, updatedAnnotation);\n\n onChange(annotations);\n };\n\n componentWillUnmount() {\n this.textRef.removeEventListener('scroll', this.adjustAnnotationsPosition);\n }\n\n render() {\n const {\n classes,\n comment,\n customKeys,\n disabled,\n disabledMath,\n keypadMode,\n height,\n width,\n maxHeight,\n onCommentChange,\n predefinedAnnotations,\n text,\n } = this.props;\n const { anchorEl, annotation, openedMenu, openedEditor, selectionDetails } = this.state;\n\n const anchorOffset = anchorEl && (anchorEl.offsetTop ? anchorEl.offsetTop : anchorEl.offsetParent.offsetTop);\n const topOffset = this.textRef && anchorOffset ? anchorOffset - this.textRef.scrollTop - 8 : 0;\n\n return (\n <div>\n <div className={classes.wrapper}>\n <div\n className={classes.textContainer}\n style={{ width: width - 34, minHeight: height, maxHeight: maxHeight }}\n ref={(r) => (this.textRef = r)}\n onMouseDown={!disabled ? clearSelection : () => {}}\n onMouseUp={!disabled ? this.handleSelection : () => {}}\n dangerouslySetInnerHTML={{ __html: text }}\n />\n <div className={classes.labelsContainer} ref={(r) => (this.labelsRef = r)} />\n </div>\n\n <InputContainer label={'Comment'} className={classes.commentContainer}>\n <EditableHtml\n className={classes.prompt}\n markup={comment || ''}\n onChange={onCommentChange}\n width={width && (width + 104).toString()}\n disabled={disabled}\n pluginProps={{\n math: {\n disabled: disabledMath,\n customKeys: customKeys,\n keypadMode: keypadMode,\n controlledKeypadMode: false,\n },\n video: {\n disabled: true,\n },\n audio: {\n disabled: true,\n },\n textAlign: {\n disabled: true,\n }\n }}\n />\n </InputContainer>\n\n <AnnotationMenu\n anchorEl={anchorEl}\n open={openedMenu && !disabled}\n annotations={predefinedAnnotations}\n isNewAnnotation={!!selectionDetails}\n onClose={this.handleClose}\n onDelete={this.deleteAnnotation}\n onEdit={this.editAnnotation}\n onWrite={this.addAnnotation}\n onAnnotate={this.handleMenuClick}\n />\n\n <FreeformEditor\n anchorEl={this.textRef}\n open={openedEditor && !disabled}\n offset={topOffset}\n value={(annotation && annotation.label) || ''}\n type={annotation && annotation.type}\n onClose={this.handleClose}\n onDelete={this.deleteAnnotation}\n onSave={this.updateAnnotation}\n onTypeChange={this.changeAnnotationType}\n />\n </div>\n );\n }\n}\n\nexport default withStyles(style)(AnnotationEditor);\n"],"file":"annotation-editor.js"}
1
+ {"version":3,"sources":["../../src/annotation/annotation-editor.jsx"],"names":["style","theme","textContainer","padding","backgroundColor","border","borderRadius","overflowY","lineHeight","whiteSpace","overflowWrap","margin","userSelect","labelsContainer","width","wrapper","position","overflowX","display","commentContainer","paddingTop","spacing","unit","marginBottom","marginTop","annotation","cursor","annotationLabel","top","left","fontSize","typography","fontStyle","fontWeight","color","labelHover","zIndex","highlight","hover","sideAnnotationHover","borderRightColor","sideAnnotation","marginLeft","wordBreak","palette","common","white","right","content","height","pointerEvents","borderWidth","AnnotationEditor","props","textRef","labelsRef","offsetLeft","offsetWidth","Array","from","children","forEach","label","spans","dataset","annId","spanOffset","offsetTop","offsetParent","scrollTop","event","annotations","classes","selectionDetails","state","target","id","annotationId","selectedElems","labelElem","annotationIndex","findIndex","isSideLabel","hasAttribute","classList","add","setState","anchorEl","openedMenu","openedEditor","elem","remove","length","selection","window","getSelection","detail","rangeCount","selectedRange","getRangeAt","selectedText","toString","isSelectionInside","contains","commonAncestorContainer","isCollapsed","onChange","parentRef","removeChild","splice","handleClose","elems","disabled","type","className","onclick","handleClick","onmouseover","handleHover","onmouseout","handleCancelHover","firstSpan","document","createElement","innerHTML","freeform","appendChild","start","end","Date","getTime","join","createDOMAnnotation","newAnnotation","text","updatedAnnotation","oldType","oldLabel","updateLabel","createNewAnnotation","push","newLabel","span","domStart","domEnd","range","createRange","setStart","node","offset","setEnd","adjustAnnotationsPosition","addEventListener","removeEventListener","comment","customKeys","disabledMath","keypadMode","maxHeight","onCommentChange","predefinedAnnotations","anchorOffset","topOffset","minHeight","r","clearSelection","handleSelection","__html","prompt","math","controlledKeypadMode","video","audio","textAlign","deleteAnnotation","editAnnotation","addAnnotation","handleMenuClick","updateAnnotation","changeAnnotationType","React","Component","PropTypes","string","array","func","isRequired","number","bool","object"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport {\n clearSelection,\n isSideLabel,\n getAnnotationElements,\n getDOMNodes,\n getLabelElement,\n getRangeDetails,\n removeElemsWrapping,\n wrapRange,\n} from './annotation-utils';\nimport FreeformEditor from './freeform-editor';\nimport AnnotationMenu from './annotation-menu';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { InputContainer } from '@pie-lib/config-ui';\n\nconst style = (theme) => ({\n textContainer: {\n padding: '10px 120px 10px 16px',\n backgroundColor: 'rgba(0, 0, 0, 0.06)',\n border: '1px solid #ccc',\n borderRadius: '4px',\n overflowY: 'scroll',\n lineHeight: '36px',\n whiteSpace: 'pre-wrap',\n overflowWrap: 'break-word',\n '& p': {\n margin: 0,\n },\n '& span[data-latex]': {\n userSelect: 'none',\n '-webkit-user-select': 'none',\n '-moz-user-select': 'none',\n '-ms-user-select': 'none',\n },\n },\n labelsContainer: {\n width: '230px',\n },\n wrapper: {\n position: 'relative',\n overflowX: 'hidden',\n display: 'flex',\n },\n commentContainer: {\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n marginTop: theme.spacing.unit * 2,\n width: '100%',\n },\n annotation: {\n position: 'relative',\n cursor: 'pointer',\n\n '&.positive': {\n backgroundColor: 'rgb(51, 255, 51, 0.5)',\n },\n\n '&.negative': {\n backgroundColor: 'rgba(255, 102, 204, 0.4)',\n },\n },\n annotationLabel: {\n backgroundColor: 'rgb(242, 242, 242)',\n padding: '2px',\n position: 'absolute',\n userSelect: 'none',\n whiteSpace: 'nowrap',\n top: '-10px',\n left: '-2px',\n fontSize: theme.typography.fontSize - 2,\n fontStyle: 'normal',\n fontWeight: 'normal',\n lineHeight: '6px',\n '-webkit-user-select': 'none',\n '-moz-user-select': 'none',\n '-ms-user-select': 'none',\n\n '&.positive': {\n color: 'rgb(0, 128, 0)',\n },\n\n '&.negative': {\n color: 'rgb(204, 0, 136)',\n },\n },\n labelHover: {\n zIndex: 20,\n\n '&.positive': {\n color: 'rgb(0, 77, 0)',\n },\n\n '&.negative': {\n color: 'rgb(153, 0, 102)',\n },\n },\n highlight: {\n zIndex: 10,\n },\n hover: {\n zIndex: 20,\n\n '&.positive': {\n backgroundColor: 'rgb(51, 255, 51, 0.7)',\n },\n\n '&.negative': {\n backgroundColor: 'rgba(255, 102, 204, 0.55)',\n },\n },\n sideAnnotationHover: {\n zIndex: 20,\n\n '&.negative': {\n backgroundColor: 'rgb(255, 179, 230) !important',\n '&:before': {\n borderRightColor: 'rgb(255, 179, 230) !important',\n },\n },\n\n '&.positive': {\n backgroundColor: 'rgb(128, 255, 128) !important',\n '&:before': {\n borderRightColor: 'rgb(153, 255, 153) !important',\n },\n },\n },\n sideAnnotation: {\n position: 'absolute',\n padding: theme.spacing.unit / 2,\n borderRadius: '4px',\n marginLeft: theme.spacing.unit,\n width: '180px',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n border: `2px solid ${theme.palette.common.white}`,\n fontSize: theme.typography.fontSize,\n fontStyle: 'normal',\n fontWeight: 'normal',\n\n '&:before': {\n position: 'absolute',\n right: '100%',\n top: '5px',\n border: 'solid transparent',\n content: '\"\"',\n height: 0,\n width: 0,\n pointerEvents: 'none',\n borderWidth: '7px',\n },\n\n '&.negative': {\n backgroundColor: 'rgb(255, 204, 238)',\n '&:before': {\n borderRightColor: 'rgb(255, 204, 238)',\n },\n },\n\n '&.positive': {\n backgroundColor: 'rgb(153, 255, 153)',\n '&:before': {\n borderRightColor: 'rgb(153, 255, 153)',\n },\n },\n },\n});\n\nclass AnnotationEditor extends React.Component {\n static propTypes = {\n text: PropTypes.string,\n comment: PropTypes.string,\n annotations: PropTypes.array,\n predefinedAnnotations: PropTypes.array,\n onChange: PropTypes.func.isRequired,\n onCommentChange: PropTypes.func.isRequired,\n width: PropTypes.number,\n height: PropTypes.number,\n maxHeight: PropTypes.string,\n disabled: PropTypes.bool,\n disabledMath: PropTypes.bool,\n customKeys: PropTypes.array,\n keypadMode: PropTypes.string,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n anchorEl: null,\n openedMenu: false,\n openedEditor: false,\n selectedElems: [],\n labelElem: null,\n selectionDetails: null,\n annotation: null,\n annotationIndex: null,\n };\n }\n\n componentDidMount() {\n const { annotations, text } = this.props;\n\n if (text) {\n annotations.forEach((annotation) => {\n const [domStart, domEnd] = getDOMNodes(annotation.start, annotation.end, this.textRef);\n\n if (domStart && domEnd) {\n const range = document.createRange();\n\n range.setStart(domStart.node, domStart.offset);\n range.setEnd(domEnd.node, domEnd.offset);\n\n const spans = wrapRange(range);\n\n this.createDOMAnnotation(spans, annotation);\n }\n });\n }\n\n if (this.textRef) {\n this.adjustAnnotationsPosition();\n this.textRef.addEventListener('scroll', this.adjustAnnotationsPosition);\n }\n }\n\n adjustAnnotationsPosition = () => {\n if (this.textRef && this.labelsRef) {\n const left = this.textRef.offsetLeft + this.textRef.offsetWidth + 8;\n\n Array.from(this.labelsRef.children).forEach((label) => {\n const spans = getAnnotationElements(label.dataset.annId);\n const spanOffset = spans[0].offsetTop ? spans[0].offsetTop : spans[0].offsetParent.offsetTop;\n const top = spanOffset - this.textRef.scrollTop - 6;\n\n label.style.top = `${top}px`;\n label.style.left = `${left}px`;\n });\n }\n };\n\n handleClick = (event) => {\n const { annotations, classes } = this.props;\n const { selectionDetails } = this.state;\n\n if (selectionDetails) {\n // new selection was made inside another annotation and should not update that annotation\n return;\n }\n\n const { id, annId } = event.target.dataset;\n const annotationId = id || annId;\n const selectedElems = getAnnotationElements(annotationId);\n const labelElem = getLabelElement(annotationId);\n const annotationIndex = annotations.findIndex((annotation) => annotation.id === annotationId);\n const isSideLabel = labelElem.hasAttribute('data-freeform');\n\n if (isSideLabel) {\n labelElem.classList.add(classes.highlight);\n }\n\n this.setState({\n anchorEl: selectedElems[0],\n openedMenu: !!id || (!!annId && !isSideLabel), // true if the annotation or the label was clicked\n openedEditor: !!annId && isSideLabel, // true if the side label was clicked\n selectedElems,\n labelElem,\n annotationIndex,\n annotation: annotations[annotationIndex],\n selectionDetails: null,\n });\n };\n\n handleHover = (event) => {\n const { classes } = this.props;\n const { id, annId } = event.target.dataset;\n const annotationId = id || annId;\n const selectedElems = getAnnotationElements(annotationId);\n const labelElem = getLabelElement(annotationId);\n const isSideLabel = labelElem.hasAttribute('data-freeform');\n\n selectedElems.forEach((elem) => elem.classList.add(classes.hover));\n labelElem.classList.add(isSideLabel ? classes.sideAnnotationHover : classes.labelHover);\n };\n\n handleCancelHover = (event) => {\n const { classes } = this.props;\n const { id, annId } = event.target.dataset;\n const annotationId = id || annId;\n const selectedElems = getAnnotationElements(annotationId);\n const labelElem = getLabelElement(annotationId);\n const isSideLabel = labelElem.hasAttribute('data-freeform');\n\n selectedElems.forEach((elem) => elem.classList.remove(classes.hover));\n labelElem.classList.remove(isSideLabel ? classes.sideAnnotationHover : classes.labelHover);\n };\n\n handleClose = (event) => {\n const { classes } = this.props;\n const { selectedElems, labelElem } = this.state;\n\n if (selectedElems.length && !selectedElems[0].hasAttribute('data-id')) {\n removeElemsWrapping(selectedElems, this.textRef);\n }\n\n if (labelElem) {\n labelElem.classList.remove(classes.highlight);\n }\n\n this.setState({\n anchorEl: null,\n openedMenu: false,\n openedEditor: false,\n selectedElems: [],\n labelElem: null,\n selectionDetails: null,\n annotationIndex: null,\n annotation: null,\n });\n\n clearSelection();\n };\n\n handleSelection = (event) => {\n const selection = window.getSelection();\n\n // prevent unwanted selections\n if (event.detail > 2) {\n clearSelection();\n return;\n }\n\n if (selection && selection.rangeCount > 0) {\n const selectedRange = selection.getRangeAt(0);\n const selectedText = selectedRange.toString();\n const isSelectionInside = this.textRef.contains(selectedRange.commonAncestorContainer);\n\n if (!selection.isCollapsed && selectedText !== '' && isSelectionInside) {\n const selectionDetails = getRangeDetails(selectedRange, this.textRef);\n const selectedElems = wrapRange(selectedRange);\n\n this.setState({\n anchorEl: selectedElems[0],\n openedMenu: true,\n selectedElems,\n selectionDetails,\n });\n }\n }\n };\n\n deleteAnnotation = () => {\n const { annotations, onChange } = this.props;\n const { selectedElems, labelElem, annotationIndex, annotation } = this.state;\n const parentRef = isSideLabel(annotation.label) ? this.labelsRef : selectedElems[0];\n\n parentRef.removeChild(labelElem);\n removeElemsWrapping(selectedElems, this.textRef);\n annotations.splice(annotationIndex, 1);\n\n onChange(annotations);\n this.handleClose();\n };\n\n createDOMAnnotation = (elems, annotation) => {\n const { classes, disabled } = this.props;\n const { id, label, type } = annotation;\n\n (elems || []).forEach((elem) => {\n elem.dataset.id = id;\n elem.className = classNames(classes.annotation, type);\n elem.onclick = !disabled && this.handleClick;\n elem.onmouseover = this.handleHover;\n elem.onmouseout = this.handleCancelHover;\n });\n\n const firstSpan = (elems && elems[0]) || {};\n const labelElem = document.createElement('SPAN');\n\n labelElem.dataset.annId = id;\n labelElem.innerHTML = label;\n labelElem.onclick = !disabled && this.handleClick;\n labelElem.onmouseover = this.handleHover;\n labelElem.onmouseout = this.handleCancelHover;\n\n if (isSideLabel(label)) {\n const spanOffset = firstSpan.offsetTop ? firstSpan.offsetTop : firstSpan.offsetParent.offsetTop;\n const top = spanOffset - this.textRef.scrollTop;\n const left = this.textRef.offsetLeft + this.textRef.offsetWidth + 8;\n\n labelElem.dataset.freeform = true;\n labelElem.className = classNames(classes.sideAnnotation, type);\n labelElem.style.top = `${top}px`;\n labelElem.style.left = `${left}px`;\n\n this.labelsRef.appendChild(labelElem);\n } else {\n labelElem.className = classNames(classes.annotationLabel, type);\n firstSpan.appendChild(labelElem);\n }\n };\n\n createNewAnnotation = (label, type) => {\n const { selectedElems, selectionDetails } = this.state;\n const annotation = {\n id: [selectionDetails.start, selectionDetails.end, new Date().getTime()].join('-'),\n label,\n type,\n ...selectionDetails,\n };\n\n this.createDOMAnnotation(selectedElems, annotation);\n\n return annotation;\n };\n\n handleMenuClick = (newAnnotation) => {\n const { annotations, onChange } = this.props;\n const { annotation, annotationIndex } = this.state;\n const { type, text: label } = newAnnotation;\n\n if (annotation) {\n const updatedAnnotation = { ...annotation, label, type };\n const { type: oldType, label: oldLabel } = annotation;\n\n this.updateLabel(oldLabel, updatedAnnotation, type !== oldType && oldType);\n annotations.splice(annotationIndex, 1, updatedAnnotation);\n } else {\n const newAnnotation = this.createNewAnnotation(label, type);\n\n annotations.push(newAnnotation);\n }\n\n onChange(annotations);\n this.handleClose();\n };\n\n editAnnotation = () => {\n this.setState({\n openedMenu: false,\n openedEditor: true,\n });\n };\n\n addAnnotation = (type) => {\n const { annotations, onChange } = this.props;\n const annotation = this.createNewAnnotation('', type);\n const labelElem = getLabelElement(annotation.id);\n\n annotations.push(annotation);\n\n this.setState({\n openedMenu: false,\n openedEditor: true,\n annotationIndex: annotations.length - 1,\n annotation,\n labelElem,\n });\n\n onChange(annotations);\n };\n\n updateLabel = (oldLabel, annotation, oldType) => {\n const { selectedElems, labelElem } = this.state;\n const { label, type } = annotation;\n\n if ((isSideLabel(label) && isSideLabel(oldLabel)) || (!isSideLabel(label) && !isSideLabel(oldLabel))) {\n labelElem.innerHTML = label;\n\n if (oldType) {\n labelElem.classList.remove(oldType);\n labelElem.classList.add(type);\n\n selectedElems.forEach((elem) => {\n elem.classList.remove(oldType);\n elem.classList.add(type);\n });\n }\n } else if (isSideLabel(label) && !isSideLabel(oldLabel)) {\n selectedElems[0].removeChild(labelElem);\n this.createDOMAnnotation(selectedElems, annotation);\n } else if (!isSideLabel(label) && isSideLabel(oldLabel)) {\n this.labelsRef.removeChild(labelElem);\n this.createDOMAnnotation(selectedElems, annotation);\n }\n };\n\n changeAnnotationType = (newLabel) => {\n const { annotations, onChange } = this.props;\n const { annotationIndex, selectedElems } = this.state;\n const { type: oldType, label: oldLabel } = annotations[annotationIndex];\n const type = oldType === 'positive' ? 'negative' : 'positive';\n const updatedAnnotation = { ...annotations[annotationIndex], type, label: newLabel };\n\n selectedElems.forEach((span) => {\n span.classList.remove(oldType);\n span.classList.add(type);\n });\n\n this.updateLabel(oldLabel, updatedAnnotation, oldType);\n annotations.splice(annotationIndex, 1, updatedAnnotation);\n\n onChange(annotations);\n this.handleClose();\n };\n\n updateAnnotation = (oldLabel, newLabel) => {\n const { annotations, onChange } = this.props;\n const { annotationIndex } = this.state;\n const updatedAnnotation = { ...annotations[annotationIndex], label: newLabel };\n\n this.updateLabel(oldLabel, updatedAnnotation);\n annotations.splice(annotationIndex, 1, updatedAnnotation);\n\n onChange(annotations);\n };\n\n componentWillUnmount() {\n this.textRef.removeEventListener('scroll', this.adjustAnnotationsPosition);\n }\n\n render() {\n const {\n classes,\n comment,\n customKeys,\n disabled,\n disabledMath,\n keypadMode,\n height,\n width,\n maxHeight,\n onCommentChange,\n predefinedAnnotations,\n text,\n } = this.props;\n const { anchorEl, annotation, openedMenu, openedEditor, selectionDetails } = this.state;\n\n const anchorOffset = anchorEl && (anchorEl.offsetTop ? anchorEl.offsetTop : anchorEl.offsetParent.offsetTop);\n const topOffset = this.textRef && anchorOffset ? anchorOffset - this.textRef.scrollTop - 8 : 0;\n\n return (\n <div>\n <div className={classes.wrapper}>\n <div\n className={classes.textContainer}\n style={{ width: width - 34, minHeight: height, maxHeight: maxHeight }}\n ref={(r) => (this.textRef = r)}\n onMouseDown={!disabled ? clearSelection : () => {}}\n onMouseUp={!disabled ? this.handleSelection : () => {}}\n dangerouslySetInnerHTML={{ __html: text }}\n />\n <div className={classes.labelsContainer} ref={(r) => (this.labelsRef = r)} />\n </div>\n\n <InputContainer label={'Comment'} className={classes.commentContainer}>\n <EditableHtml\n className={classes.prompt}\n markup={comment || ''}\n onChange={onCommentChange}\n width={width && (width + 104).toString()}\n disabled={disabled}\n pluginProps={{\n math: {\n disabled: disabledMath,\n customKeys: customKeys,\n keypadMode: keypadMode,\n controlledKeypadMode: false,\n },\n video: {\n disabled: true,\n },\n audio: {\n disabled: true,\n },\n textAlign: {\n disabled: true,\n },\n }}\n />\n </InputContainer>\n\n <AnnotationMenu\n anchorEl={anchorEl}\n open={openedMenu && !disabled}\n annotations={predefinedAnnotations}\n isNewAnnotation={!!selectionDetails}\n onClose={this.handleClose}\n onDelete={this.deleteAnnotation}\n onEdit={this.editAnnotation}\n onWrite={this.addAnnotation}\n onAnnotate={this.handleMenuClick}\n />\n\n <FreeformEditor\n anchorEl={this.textRef}\n open={openedEditor && !disabled}\n offset={topOffset}\n value={(annotation && annotation.label) || ''}\n type={annotation && annotation.type}\n onClose={this.handleClose}\n onDelete={this.deleteAnnotation}\n onSave={this.updateAnnotation}\n onTypeChange={this.changeAnnotationType}\n />\n </div>\n );\n }\n}\n\nexport default withStyles(style)(AnnotationEditor);\n"],"file":"annotation-editor.js"}
package/lib/index.js CHANGED
@@ -31,7 +31,7 @@ var _reactDom = _interopRequireDefault(require("react-dom"));
31
31
 
32
32
  var _debug = _interopRequireDefault(require("debug"));
33
33
 
34
- var _mathRendering = require("@pie-lib/pie-toolbox/math-rendering");
34
+ var _mathRendering = require("@pie-lib/math-rendering");
35
35
 
36
36
  var _piePlayerEvents = require("@pie-framework/pie-player-events");
37
37
 
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["log","domParser","window","undefined","DOMParser","parseFromString","v","textContent","value","document","body","err","isComplete","tc","out","length","RootExtendedTextEntry","_model","_session","language","lang","slice","setAttribute","m","dispatchEvent","ModelSetEvent","tagName","toLowerCase","render","s","SessionChangedEvent","annotations","comment","elem","React","createElement","Main","model","session","onValueChange","valueChange","bind","onAnnotationsChange","annotationsChange","onCommentChange","commentChange","setLangAttribute","ReactDOM","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AACA;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,mCAAN,CAAZ;AAEA,IAAMC,SAAS,GAAG,QAAOC,MAAP,0DAAOA,MAAP,OAAkBC,SAAlB,GAA8B,IAAIC,SAAJ,EAA9B,GAAgD;AAAEC,EAAAA,eAAe,EAAE,yBAACC,CAAD;AAAA,WAAOA,CAAP;AAAA;AAAnB,CAAlE;;AAEO,SAASC,WAAT,CAAqBC,KAArB,EAA4B;AACjC,MAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AAC7B,WAAOL,SAAP;AACD;;AAED,MAAI;AACF,QAAMM,QAAQ,GAAGR,SAAS,CAACI,eAAV,CAA0BG,KAA1B,EAAiC,WAAjC,CAAjB;AACA,QAAMD,YAAW,GAAGE,QAAQ,CAACC,IAAT,CAAcH,WAAlC;AAEA,WAAOA,YAAP;AACD,GALD,CAKE,OAAOI,GAAP,EAAY;AACZX,IAAAA,GAAG,CAAC,kCAAD,EAAqCQ,KAArC,CAAH;AACA,WAAOA,KAAP;AACD;AACF;;AAEM,SAASI,UAAT,CAAoBJ,KAApB,EAA2B;AAChC,MAAMK,EAAE,GAAGN,WAAW,CAACC,KAAD,CAAtB;AACA,MAAMM,GAAG,GAAGD,EAAE,KAAKV,SAAP,IAAoBU,EAAE,CAACE,MAAH,GAAY,CAA5C;AAEA,SAAOD,GAAP;AACD;;IAEoBE,qB;;;;;AACnB,mCAAc;AAAA;;AAAA;AACZ;AACA,UAAKC,MAAL,GAAc,IAAd;AACA,UAAKC,QAAL,GAAgB,IAAhB;AAHY;AAIb;;;;WAED,4BAAmB;AACjB,UAAMC,QAAQ,GAAG,KAAKF,MAAL,6BAAsB,KAAKA,MAAL,CAAYE,QAAlC,IAA6C,KAAKF,MAAL,CAAYE,QAAzD,GAAoE,EAArF;AACA,UAAMC,IAAI,GAAGD,QAAQ,GAAGA,QAAQ,CAACE,KAAT,CAAe,CAAf,EAAkB,CAAlB,CAAH,GAA0B,IAA/C;AACA,WAAKC,YAAL,CAAkB,MAAlB,EAA0BF,IAA1B;AACD;;;SAED,aAAUG,CAAV,EAAa;AACX,WAAKN,MAAL,GAAcM,CAAd;AACA,WAAKC,aAAL,CAAmB,IAAIC,8BAAJ,CAAkB,KAAKC,OAAL,CAAaC,WAAb,EAAlB,EAA8C,KAA9C,EAAqD,CAAC,CAAC,KAAKV,MAA5D,CAAnB;AAEA,WAAKW,MAAL;AACD;;;SAOD,eAAc;AACZ,aAAO,KAAKV,QAAZ;AACD,K;SAPD,aAAYW,CAAZ,EAAe;AACb,WAAKX,QAAL,GAAgBW,CAAhB;AACA,WAAKD,MAAL;AACD;;;WAMD,qBAAYpB,KAAZ,EAAmB;AACjB,WAAKU,QAAL,CAAcV,KAAd,GAAsBA,KAAtB;AAEA,WAAKgB,aAAL,CAAmB,IAAIM,oCAAJ,CAAwB,KAAKJ,OAAL,CAAaC,WAAb,EAAxB,EAAoDf,UAAU,CAACJ,KAAD,CAA9D,CAAnB;AAEA,WAAKoB,MAAL;AACD;;;WAED,2BAAkBG,WAAlB,EAA+B;AAC7B,WAAKb,QAAL,CAAca,WAAd,GAA4BA,WAA5B;AAEA,WAAKP,aAAL,CAAmB,IAAIM,oCAAJ,CAAwB,KAAKJ,OAAL,CAAaC,WAAb,EAAxB,EAAoD,IAApD,CAAnB;AAEA,WAAKC,MAAL;AACD;;;WAED,uBAAcI,OAAd,EAAuB;AACrB,WAAKd,QAAL,CAAcc,OAAd,GAAwBA,OAAxB;AAEA,WAAKR,aAAL,CAAmB,IAAIM,oCAAJ,CAAwB,KAAKJ,OAAL,CAAaC,WAAb,EAAxB,EAAoDf,UAAU,CAACoB,OAAD,CAA9D,CAAnB;AAEA,WAAKJ,MAAL;AACD;;;WAED,6BAAoB;AAClB,WAAKN,YAAL,CAAkB,YAAlB,EAAgC,2BAAhC;AACA,WAAKA,YAAL,CAAkB,MAAlB,EAA0B,QAA1B;AAEA,WAAKM,MAAL;AACD;;;WAED,kBAAS;AAAA;;AACP,UAAI,KAAKX,MAAL,IAAe,KAAKC,QAAxB,EAAkC;AAChC,YAAIe,IAAI,gBAAGC,kBAAMC,aAAN,CAAoBC,gBAApB,EAA0B;AACnCC,UAAAA,KAAK,EAAE,KAAKpB,MADuB;AAEnCqB,UAAAA,OAAO,EAAE,KAAKpB,QAFqB;AAGnCqB,UAAAA,aAAa,EAAE,KAAKC,WAAL,CAAiBC,IAAjB,CAAsB,IAAtB,CAHoB;AAInCC,UAAAA,mBAAmB,EAAE,KAAKC,iBAAL,CAAuBF,IAAvB,CAA4B,IAA5B,CAJc;AAKnCG,UAAAA,eAAe,EAAE,KAAKC,aAAL,CAAmBJ,IAAnB,CAAwB,IAAxB;AALkB,SAA1B,CAAX;;AAQA,aAAKK,gBAAL;;AAEAC,6BAASnB,MAAT,CAAgBK,IAAhB,EAAsB,IAAtB,EAA4B,YAAM;AAChC,yCAAW,MAAX;AACD,SAFD;AAGD;AACF;;;kDA5EgDe,W","sourcesContent":["import Main from './main';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport debug from 'debug';\n\nimport { renderMath } from '@pie-lib/pie-toolbox/math-rendering';\nimport { ModelSetEvent, SessionChangedEvent } from '@pie-framework/pie-player-events';\n\nconst log = debug('@pie-elements:extended-text-entry');\n\nconst domParser = typeof window !== undefined ? new DOMParser() : { parseFromString: (v) => v };\n\nexport function textContent(value) {\n if (typeof value !== 'string') {\n return undefined;\n }\n\n try {\n const document = domParser.parseFromString(value, 'text/html');\n const textContent = document.body.textContent;\n\n return textContent;\n } catch (err) {\n log('tried to parse as dom and failed', value);\n return value;\n }\n}\n\nexport function isComplete(value) {\n const tc = textContent(value);\n const out = tc !== undefined && tc.length > 0;\n\n return out;\n}\n\nexport default class RootExtendedTextEntry extends HTMLElement {\n constructor() {\n super();\n this._model = null;\n this._session = null;\n }\n\n setLangAttribute() {\n const language = this._model && typeof this._model.language ? this._model.language : '';\n const lang = language ? language.slice(0, 2) : 'en';\n this.setAttribute('lang', lang);\n }\n\n set model(m) {\n this._model = m;\n this.dispatchEvent(new ModelSetEvent(this.tagName.toLowerCase(), false, !!this._model));\n\n this.render();\n }\n\n set session(s) {\n this._session = s;\n this.render();\n }\n\n get session() {\n return this._session;\n }\n\n valueChange(value) {\n this._session.value = value;\n\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), isComplete(value)));\n\n this.render();\n }\n\n annotationsChange(annotations) {\n this._session.annotations = annotations;\n\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), true));\n\n this.render();\n }\n\n commentChange(comment) {\n this._session.comment = comment;\n\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), isComplete(comment)));\n\n this.render();\n }\n\n connectedCallback() {\n this.setAttribute('aria-label', 'Written Response Question');\n this.setAttribute('role', 'region');\n\n this.render();\n }\n\n render() {\n if (this._model && this._session) {\n let elem = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onValueChange: this.valueChange.bind(this),\n onAnnotationsChange: this.annotationsChange.bind(this),\n onCommentChange: this.commentChange.bind(this),\n });\n\n this.setLangAttribute();\n\n ReactDOM.render(elem, this, () => {\n renderMath(this);\n });\n }\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["log","domParser","window","undefined","DOMParser","parseFromString","v","textContent","value","document","body","err","isComplete","tc","out","length","RootExtendedTextEntry","_model","_session","language","lang","slice","setAttribute","m","dispatchEvent","ModelSetEvent","tagName","toLowerCase","render","s","SessionChangedEvent","annotations","comment","elem","React","createElement","Main","model","session","onValueChange","valueChange","bind","onAnnotationsChange","annotationsChange","onCommentChange","commentChange","setLangAttribute","ReactDOM","HTMLElement"],"mappings":"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","sourcesContent":["import Main from './main';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport debug from 'debug';\n\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { ModelSetEvent, SessionChangedEvent } from '@pie-framework/pie-player-events';\n\nconst log = debug('@pie-elements:extended-text-entry');\n\nconst domParser = typeof window !== undefined ? new DOMParser() : { parseFromString: (v) => v };\n\nexport function textContent(value) {\n if (typeof value !== 'string') {\n return undefined;\n }\n\n try {\n const document = domParser.parseFromString(value, 'text/html');\n const textContent = document.body.textContent;\n\n return textContent;\n } catch (err) {\n log('tried to parse as dom and failed', value);\n return value;\n }\n}\n\nexport function isComplete(value) {\n const tc = textContent(value);\n const out = tc !== undefined && tc.length > 0;\n\n return out;\n}\n\nexport default class RootExtendedTextEntry extends HTMLElement {\n constructor() {\n super();\n this._model = null;\n this._session = null;\n }\n\n setLangAttribute() {\n const language = this._model && typeof this._model.language ? this._model.language : '';\n const lang = language ? language.slice(0, 2) : 'en';\n this.setAttribute('lang', lang);\n }\n\n set model(m) {\n this._model = m;\n this.dispatchEvent(new ModelSetEvent(this.tagName.toLowerCase(), false, !!this._model));\n\n this.render();\n }\n\n set session(s) {\n this._session = s;\n this.render();\n }\n\n get session() {\n return this._session;\n }\n\n valueChange(value) {\n this._session.value = value;\n\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), isComplete(value)));\n\n this.render();\n }\n\n annotationsChange(annotations) {\n this._session.annotations = annotations;\n\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), true));\n\n this.render();\n }\n\n commentChange(comment) {\n this._session.comment = comment;\n\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), isComplete(comment)));\n\n this.render();\n }\n\n connectedCallback() {\n this.setAttribute('aria-label', 'Written Response Question');\n this.setAttribute('role', 'region');\n\n this.render();\n }\n\n render() {\n if (this._model && this._session) {\n let elem = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onValueChange: this.valueChange.bind(this),\n onAnnotationsChange: this.annotationsChange.bind(this),\n onCommentChange: this.commentChange.bind(this),\n });\n\n this.setLangAttribute();\n\n ReactDOM.render(elem, this, () => {\n renderMath(this);\n });\n }\n }\n}\n"],"file":"index.js"}
package/lib/main.js CHANGED
@@ -35,9 +35,9 @@ var _Typography = _interopRequireDefault(require("@material-ui/core/Typography")
35
35
 
36
36
  var _styles = require("@material-ui/core/styles");
37
37
 
38
- var _editableHtml = require("@pie-lib/pie-toolbox/editable-html");
38
+ var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
39
39
 
40
- var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
40
+ var _renderUi = require("@pie-lib/render-ui");
41
41
 
42
42
  var _annotationEditor = _interopRequireDefault(require("./annotation/annotation-editor"));
43
43
 
@@ -193,7 +193,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
193
193
  disabledMath: !mathInput,
194
194
  customKeys: customKeys,
195
195
  keypadMode: equationEditor
196
- }) : /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
196
+ }) : /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
197
197
  className: (0, _classnames["default"])(classes.editor, 'response-area-editor'),
198
198
  onChange: this.changeSessionValue,
199
199
  markup: value || '',
package/lib/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/main.jsx"],"names":["log","style","theme","main","backgroundColor","color","background","text","prompt","width","marginBottom","spacing","unit","fontSize","teacherInstructions","editor","borderRadius","srOnly","position","left","top","height","overflow","Main","props","onValueChange","onCommentChange","model","classes","session","onAnnotationsChange","animationsDisabled","annotatorMode","customKeys","dimensions","disabled","disabledAnnotator","equationEditor","extraCSSRules","feedback","mathInput","playersToolbarPosition","predefinedAnnotations","spanishInput","specialInput","spellCheckEnabled","annotations","comment","value","maxHeight","toolbarOpts","teacherInstructionsDiv","languageCharactersProps","push","language","ref","containerRef","hidden","visible","collapsible","changeSessionComment","changeSessionValue","toString","math","keypadMode","controlledKeypadMode","video","audio","table","textAlign","separateParagraphs","React","Component","PropTypes","func","isRequired","object","shape","string","array"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport debounce from 'lodash/debounce';\nimport debug from 'debug';\n\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport { EditableHtml } from '@pie-lib/pie-toolbox/editable-html';\nimport { color, Feedback, Collapsible, PreviewPrompt, UiLayout } from '@pie-lib/pie-toolbox/render-ui';\n\nimport AnnotationEditor from './annotation/annotation-editor';\n\nconst log = debug('@pie-ui:extended-text-entry');\n\nconst style = (theme) => ({\n main: {\n backgroundColor: color.background(),\n color: color.text(),\n },\n prompt: {\n width: '100%',\n color: color.text(),\n marginBottom: theme.spacing.unit * 2,\n fontSize: 'inherit',\n },\n teacherInstructions: {\n marginBottom: theme.spacing.unit * 2,\n },\n editor: {\n marginBottom: theme.spacing.unit * 2,\n borderRadius: '4px',\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n});\n\nexport class Main extends React.Component {\n static propTypes = {\n onValueChange: PropTypes.func.isRequired,\n onAnnotationsChange: PropTypes.func.isRequired,\n onCommentChange: PropTypes.func.isRequired,\n model: PropTypes.object,\n classes: PropTypes.object.isRequired,\n session: PropTypes.shape({\n value: PropTypes.string,\n annotations: PropTypes.array,\n comment: PropTypes.string,\n }).isRequired,\n };\n\n changeSessionValue = debounce(this.props.onValueChange, 1500);\n\n changeSessionComment = debounce(this.props.onCommentChange, 1500);\n\n render() {\n const { model, classes, session, onAnnotationsChange } = this.props;\n const {\n animationsDisabled,\n annotatorMode,\n customKeys,\n dimensions,\n disabled,\n disabledAnnotator,\n equationEditor,\n extraCSSRules,\n feedback,\n mathInput,\n playersToolbarPosition,\n predefinedAnnotations,\n prompt,\n spanishInput,\n specialInput,\n spellCheckEnabled,\n teacherInstructions,\n } = model;\n const { annotations, comment, value } = session;\n const { width, height } = dimensions || {};\n const maxHeight = '40vh';\n const toolbarOpts = { position: playersToolbarPosition === 'top' ? 'top' : 'bottom' };\n\n log('[render] disabled? ', disabled);\n\n const teacherInstructionsDiv = (\n <PreviewPrompt defaultClassName=\"teacher-instructions\" prompt={teacherInstructions} />\n );\n\n const languageCharactersProps = [];\n\n if (spanishInput) {\n languageCharactersProps.push({ language: 'spanish' });\n }\n\n if (specialInput) {\n languageCharactersProps.push({ language: 'special' });\n }\n\n return (\n <UiLayout\n extraCSSRules={extraCSSRules}\n className={classes.main}\n ref={(ref) => {\n this.containerRef = ref;\n }}\n >\n <h2 className={classes.srOnly}>Constructed Response Question</h2>\n\n {teacherInstructions && (\n <div className={classes.teacherInstructions}>\n {!animationsDisabled ? (\n <Collapsible\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n className={classes.collapsible}\n >\n {teacherInstructionsDiv}\n </Collapsible>\n ) : (\n teacherInstructionsDiv\n )}\n </div>\n )}\n\n {prompt && (\n <Typography component={'span'} className={classes.prompt}>\n <PreviewPrompt defaultClassName=\"prompt\" prompt={model.prompt} />\n </Typography>\n )}\n\n {annotatorMode ? (\n <AnnotationEditor\n text={value || ''}\n annotations={annotations || []}\n comment={comment || ''}\n predefinedAnnotations={predefinedAnnotations || []}\n onChange={onAnnotationsChange}\n onCommentChange={this.changeSessionComment}\n width={width}\n height={height}\n maxHeight={maxHeight}\n disabled={disabledAnnotator}\n disabledMath={!mathInput}\n customKeys={customKeys}\n keypadMode={equationEditor}\n />\n ) : (\n <EditableHtml\n className={classnames(classes.editor, 'response-area-editor')}\n onChange={this.changeSessionValue}\n markup={value || ''}\n maxWidth={width && width.toString()}\n minWidth={'100px'}\n minHeight={height && height.toString()}\n maxHeight={maxHeight}\n disabled={disabled}\n highlightShape={true}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n charactersLimit={50000}\n autoWidthToolbar\n pluginProps={{\n math: {\n disabled: !mathInput,\n customKeys: this.props.model.customKeys,\n keypadMode: this.props.model.equationEditor,\n controlledKeypadMode: false,\n },\n video: {\n disabled: true,\n },\n audio: {\n disabled: true,\n },\n table: {\n disabled: true,\n },\n textAlign: {\n disabled: true,\n },\n separateParagraphs: { disabled: false },\n }}\n languageCharactersProps={languageCharactersProps}\n />\n )}\n\n {feedback && <Feedback correctness=\"correct\" feedback={feedback} />}\n </UiLayout>\n );\n }\n}\n\nexport default withStyles(style)(Main);\n"],"file":"main.js"}
1
+ {"version":3,"sources":["../src/main.jsx"],"names":["log","style","theme","main","backgroundColor","color","background","text","prompt","width","marginBottom","spacing","unit","fontSize","teacherInstructions","editor","borderRadius","srOnly","position","left","top","height","overflow","Main","props","onValueChange","onCommentChange","model","classes","session","onAnnotationsChange","animationsDisabled","annotatorMode","customKeys","dimensions","disabled","disabledAnnotator","equationEditor","extraCSSRules","feedback","mathInput","playersToolbarPosition","predefinedAnnotations","spanishInput","specialInput","spellCheckEnabled","annotations","comment","value","maxHeight","toolbarOpts","teacherInstructionsDiv","languageCharactersProps","push","language","ref","containerRef","hidden","visible","collapsible","changeSessionComment","changeSessionValue","toString","math","keypadMode","controlledKeypadMode","video","audio","table","textAlign","separateParagraphs","React","Component","PropTypes","func","isRequired","object","shape","string","array"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport debounce from 'lodash/debounce';\nimport debug from 'debug';\n\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport EditableHtml from '@pie-lib/editable-html';\nimport { color, Feedback, Collapsible, PreviewPrompt, UiLayout } from '@pie-lib/render-ui';\n\nimport AnnotationEditor from './annotation/annotation-editor';\n\nconst log = debug('@pie-ui:extended-text-entry');\n\nconst style = (theme) => ({\n main: {\n backgroundColor: color.background(),\n color: color.text(),\n },\n prompt: {\n width: '100%',\n color: color.text(),\n marginBottom: theme.spacing.unit * 2,\n fontSize: 'inherit',\n },\n teacherInstructions: {\n marginBottom: theme.spacing.unit * 2,\n },\n editor: {\n marginBottom: theme.spacing.unit * 2,\n borderRadius: '4px',\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n});\n\nexport class Main extends React.Component {\n static propTypes = {\n onValueChange: PropTypes.func.isRequired,\n onAnnotationsChange: PropTypes.func.isRequired,\n onCommentChange: PropTypes.func.isRequired,\n model: PropTypes.object,\n classes: PropTypes.object.isRequired,\n session: PropTypes.shape({\n value: PropTypes.string,\n annotations: PropTypes.array,\n comment: PropTypes.string,\n }).isRequired,\n };\n\n changeSessionValue = debounce(this.props.onValueChange, 1500);\n\n changeSessionComment = debounce(this.props.onCommentChange, 1500);\n\n render() {\n const { model, classes, session, onAnnotationsChange } = this.props;\n const {\n animationsDisabled,\n annotatorMode,\n customKeys,\n dimensions,\n disabled,\n disabledAnnotator,\n equationEditor,\n extraCSSRules,\n feedback,\n mathInput,\n playersToolbarPosition,\n predefinedAnnotations,\n prompt,\n spanishInput,\n specialInput,\n spellCheckEnabled,\n teacherInstructions,\n } = model;\n const { annotations, comment, value } = session;\n const { width, height } = dimensions || {};\n const maxHeight = '40vh';\n const toolbarOpts = { position: playersToolbarPosition === 'top' ? 'top' : 'bottom' };\n\n log('[render] disabled? ', disabled);\n\n const teacherInstructionsDiv = (\n <PreviewPrompt defaultClassName=\"teacher-instructions\" prompt={teacherInstructions} />\n );\n\n const languageCharactersProps = [];\n\n if (spanishInput) {\n languageCharactersProps.push({ language: 'spanish' });\n }\n\n if (specialInput) {\n languageCharactersProps.push({ language: 'special' });\n }\n\n return (\n <UiLayout\n extraCSSRules={extraCSSRules}\n className={classes.main}\n ref={(ref) => {\n this.containerRef = ref;\n }}\n >\n <h2 className={classes.srOnly}>Constructed Response Question</h2>\n\n {teacherInstructions && (\n <div className={classes.teacherInstructions}>\n {!animationsDisabled ? (\n <Collapsible\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n className={classes.collapsible}\n >\n {teacherInstructionsDiv}\n </Collapsible>\n ) : (\n teacherInstructionsDiv\n )}\n </div>\n )}\n\n {prompt && (\n <Typography component={'span'} className={classes.prompt}>\n <PreviewPrompt defaultClassName=\"prompt\" prompt={model.prompt} />\n </Typography>\n )}\n\n {annotatorMode ? (\n <AnnotationEditor\n text={value || ''}\n annotations={annotations || []}\n comment={comment || ''}\n predefinedAnnotations={predefinedAnnotations || []}\n onChange={onAnnotationsChange}\n onCommentChange={this.changeSessionComment}\n width={width}\n height={height}\n maxHeight={maxHeight}\n disabled={disabledAnnotator}\n disabledMath={!mathInput}\n customKeys={customKeys}\n keypadMode={equationEditor}\n />\n ) : (\n <EditableHtml\n className={classnames(classes.editor, 'response-area-editor')}\n onChange={this.changeSessionValue}\n markup={value || ''}\n maxWidth={width && width.toString()}\n minWidth={'100px'}\n minHeight={height && height.toString()}\n maxHeight={maxHeight}\n disabled={disabled}\n highlightShape={true}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n charactersLimit={50000}\n autoWidthToolbar\n pluginProps={{\n math: {\n disabled: !mathInput,\n customKeys: this.props.model.customKeys,\n keypadMode: this.props.model.equationEditor,\n controlledKeypadMode: false,\n },\n video: {\n disabled: true,\n },\n audio: {\n disabled: true,\n },\n table: {\n disabled: true,\n },\n textAlign: {\n disabled: true,\n },\n separateParagraphs: { disabled: false },\n }}\n languageCharactersProps={languageCharactersProps}\n />\n )}\n\n {feedback && <Feedback correctness=\"correct\" feedback={feedback} />}\n </UiLayout>\n );\n }\n}\n\nexport default withStyles(style)(Main);\n"],"file":"main.js"}
package/lib/print.js CHANGED
@@ -31,7 +31,7 @@ var _debounce = _interopRequireDefault(require("lodash/debounce"));
31
31
 
32
32
  var _main = _interopRequireDefault(require("./main"));
33
33
 
34
- var _mathRendering = require("@pie-lib/pie-toolbox/math-rendering");
34
+ var _mathRendering = require("@pie-lib/math-rendering");
35
35
 
36
36
  var _debug = _interopRequireDefault(require("debug"));
37
37