@pie-element/inline-dropdown 10.1.4 → 10.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/configure/CHANGELOG.md +8 -0
- package/configure/lib/index.js +4 -0
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/inline-dropdown-toolbar.js +14 -8
- package/configure/lib/inline-dropdown-toolbar.js.map +1 -1
- package/configure/lib/main.js.map +1 -1
- package/configure/package.json +3 -3
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [10.1.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/inline-dropdown@10.1.4...@pie-element/inline-dropdown@10.1.5) (2026-06-22)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- add done button when editing choice [PIE-683] ([4e07188](https://github.com/pie-framework/pie-elements/commit/4e071883666d7bf33906379ac1f433077a3db8d7))
|
|
11
|
+
- bump shared modules and libs PIE-674, PIE-662, PIE-705, PIE-674, PIE-963 ([78a3f64](https://github.com/pie-framework/pie-elements/commit/78a3f64652c9581c61bd4159f3210fc1e32d8bcf))
|
|
12
|
+
- handle webcomponent lifecycle on every element that misses it PIE-703 ([9d5923f](https://github.com/pie-framework/pie-elements/commit/9d5923f973f0471e1e8f69ad4309cfc63d980d93))
|
|
13
|
+
|
|
6
14
|
## [10.1.4](https://github.com/pie-framework/pie-elements/compare/@pie-element/inline-dropdown@10.1.3...@pie-element/inline-dropdown@10.1.4) (2026-06-17)
|
|
7
15
|
|
|
8
16
|
### Bug Fixes
|
package/configure/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [9.1.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/inline-dropdown-configure@9.1.4...@pie-element/inline-dropdown-configure@9.1.5) (2026-06-22)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- add done button when editing choice [PIE-683] ([4e07188](https://github.com/pie-framework/pie-elements/commit/4e071883666d7bf33906379ac1f433077a3db8d7))
|
|
11
|
+
- bump shared modules and libs PIE-674, PIE-662, PIE-705, PIE-674, PIE-963 ([78a3f64](https://github.com/pie-framework/pie-elements/commit/78a3f64652c9581c61bd4159f3210fc1e32d8bcf))
|
|
12
|
+
- handle webcomponent lifecycle on every element that misses it PIE-703 ([9d5923f](https://github.com/pie-framework/pie-elements/commit/9d5923f973f0471e1e8f69ad4309cfc63d980d93))
|
|
13
|
+
|
|
6
14
|
## [9.1.4](https://github.com/pie-framework/pie-elements/compare/@pie-element/inline-dropdown-configure@9.1.3...@pie-element/inline-dropdown-configure@9.1.4) (2026-06-17)
|
|
7
15
|
|
|
8
16
|
### Bug Fixes
|
package/configure/lib/index.js
CHANGED
|
@@ -111,9 +111,13 @@ class InlineDropdown extends HTMLElement {
|
|
|
111
111
|
}
|
|
112
112
|
this._root.render(element);
|
|
113
113
|
}
|
|
114
|
+
connectedCallback() {
|
|
115
|
+
this._render();
|
|
116
|
+
}
|
|
114
117
|
disconnectedCallback() {
|
|
115
118
|
if (this._root) {
|
|
116
119
|
this._root.unmount();
|
|
120
|
+
this._root = null;
|
|
117
121
|
}
|
|
118
122
|
}
|
|
119
123
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_pieConfigureEvents","require","_react","_interopRequireDefault","_client","_main","_debug","_lodashEs","_defaults","_markupUtils","log","debug","InlineDropdown","HTMLElement","constructor","_root","_model","prepareModel","_configuration","sensibleDefaults","configuration","onModelChanged","bind","onConfigurationChanged","model","s","_render","c","defaults","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","disableSidePanel","_disableSidePanel","dispatchModelUpdated","reset","resetValue","dispatchEvent","ModelUpdatedEvent","m","insertImage","handler","InsertImageEvent","onDeleteImage","src","done","DeleteImageEvent","insertSound","InsertSoundEvent","onDeleteSound","DeleteSoundEvent","element","React","createElement","Main","imageSupport","add","delete","uploadSoundSupport","createRoot","render","disconnectedCallback","unmount","exports","default","_defineProperty2","currModal","slateMarkup","createSlateMarkup","markup","choices","processMarkup"],"sources":["../src/index.js"],"sourcesContent":["import {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\n\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport Main from './main';\nimport debug from 'debug';\nimport { defaults } from 'lodash-es';\n\nimport sensibleDefaults from './defaults';\nimport { processMarkup, createSlateMarkup } from './markupUtils';\n\nconst log = debug('multiple-choice:configure');\n\nexport default class InlineDropdown extends HTMLElement {\n static prepareModel = (model = {}) => {\n const currModal = {\n ...sensibleDefaults.model,\n ...model,\n };\n const slateMarkup = model.slateMarkup || createSlateMarkup(currModal.markup, currModal.choices);\n const markup = processMarkup(slateMarkup);\n\n return {\n ...currModal,\n slateMarkup,\n markup,\n /*...processedMarkup,*/\n };\n };\n\n constructor() {\n super();\n this._root = null;\n this._model = InlineDropdown.prepareModel();\n this._configuration = sensibleDefaults.configuration;\n this.onModelChanged = this.onModelChanged.bind(this);\n this.onConfigurationChanged = this.onConfigurationChanged.bind(this);\n }\n\n set model(s) {\n this._model = InlineDropdown.prepareModel(s);\n this._render();\n }\n\n set configuration(c) {\n this._configuration = defaults(c, sensibleDefaults.configuration);\n\n // if language:enabled is true, then the corresponding default item model should include a language value;\n // if it is false, then the language field should be omitted from the item model.\n // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,\n // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).\n if (c.language?.enabled) {\n if (c.languageChoices?.options?.length) {\n this._model.language = c.languageChoices.options[0].value;\n }\n } else if (c.language.settings && this._model.language) {\n this._configuration.language.enabled = true;\n\n if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {\n this._configuration.languageChoices.options = [];\n }\n\n // check if the language is already included in the languageChoices.options array\n // and if not, then add it.\n if (!this._configuration.languageChoices.options.find(option => option.value === this._model.language)) {\n this._configuration.languageChoices.options.push({\n value: this._model.language,\n label: this._model.language,\n });\n }\n } else {\n delete this._model.language;\n }\n\n this._render();\n }\n\n set disableSidePanel(s) {\n this._disableSidePanel = s;\n this._render();\n }\n\n dispatchModelUpdated(reset) {\n const resetValue = !!reset;\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model, resetValue));\n }\n\n onModelChanged(m, reset) {\n this._model = InlineDropdown.prepareModel(m);\n this._render();\n this.dispatchModelUpdated(reset);\n }\n\n onConfigurationChanged(c) {\n this._configuration = c;\n this._render();\n }\n\n /** @param {done, progress, file} handler */\n insertImage(handler) {\n this.dispatchEvent(new InsertImageEvent(handler));\n }\n\n onDeleteImage(src, done) {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n }\n\n insertSound(handler) {\n this.dispatchEvent(new InsertSoundEvent(handler));\n }\n\n onDeleteSound(src, done) {\n this.dispatchEvent(new DeleteSoundEvent(src, done));\n }\n\n _render() {\n log('_render');\n let element = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n disableSidePanel: this._disableSidePanel,\n imageSupport: {\n add: this.insertImage.bind(this),\n delete: this.onDeleteImage.bind(this),\n },\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n });\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(element);\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_pieConfigureEvents","require","_react","_interopRequireDefault","_client","_main","_debug","_lodashEs","_defaults","_markupUtils","log","debug","InlineDropdown","HTMLElement","constructor","_root","_model","prepareModel","_configuration","sensibleDefaults","configuration","onModelChanged","bind","onConfigurationChanged","model","s","_render","c","defaults","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","disableSidePanel","_disableSidePanel","dispatchModelUpdated","reset","resetValue","dispatchEvent","ModelUpdatedEvent","m","insertImage","handler","InsertImageEvent","onDeleteImage","src","done","DeleteImageEvent","insertSound","InsertSoundEvent","onDeleteSound","DeleteSoundEvent","element","React","createElement","Main","imageSupport","add","delete","uploadSoundSupport","createRoot","render","connectedCallback","disconnectedCallback","unmount","exports","default","_defineProperty2","currModal","slateMarkup","createSlateMarkup","markup","choices","processMarkup"],"sources":["../src/index.js"],"sourcesContent":["import {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\n\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport Main from './main';\nimport debug from 'debug';\nimport { defaults } from 'lodash-es';\n\nimport sensibleDefaults from './defaults';\nimport { processMarkup, createSlateMarkup } from './markupUtils';\n\nconst log = debug('multiple-choice:configure');\n\nexport default class InlineDropdown extends HTMLElement {\n static prepareModel = (model = {}) => {\n const currModal = {\n ...sensibleDefaults.model,\n ...model,\n };\n const slateMarkup = model.slateMarkup || createSlateMarkup(currModal.markup, currModal.choices);\n const markup = processMarkup(slateMarkup);\n\n return {\n ...currModal,\n slateMarkup,\n markup,\n /*...processedMarkup,*/\n };\n };\n\n constructor() {\n super();\n this._root = null;\n this._model = InlineDropdown.prepareModel();\n this._configuration = sensibleDefaults.configuration;\n this.onModelChanged = this.onModelChanged.bind(this);\n this.onConfigurationChanged = this.onConfigurationChanged.bind(this);\n }\n\n set model(s) {\n this._model = InlineDropdown.prepareModel(s);\n this._render();\n }\n\n set configuration(c) {\n this._configuration = defaults(c, sensibleDefaults.configuration);\n\n // if language:enabled is true, then the corresponding default item model should include a language value;\n // if it is false, then the language field should be omitted from the item model.\n // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,\n // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).\n if (c.language?.enabled) {\n if (c.languageChoices?.options?.length) {\n this._model.language = c.languageChoices.options[0].value;\n }\n } else if (c.language.settings && this._model.language) {\n this._configuration.language.enabled = true;\n\n if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {\n this._configuration.languageChoices.options = [];\n }\n\n // check if the language is already included in the languageChoices.options array\n // and if not, then add it.\n if (!this._configuration.languageChoices.options.find(option => option.value === this._model.language)) {\n this._configuration.languageChoices.options.push({\n value: this._model.language,\n label: this._model.language,\n });\n }\n } else {\n delete this._model.language;\n }\n\n this._render();\n }\n\n set disableSidePanel(s) {\n this._disableSidePanel = s;\n this._render();\n }\n\n dispatchModelUpdated(reset) {\n const resetValue = !!reset;\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model, resetValue));\n }\n\n onModelChanged(m, reset) {\n this._model = InlineDropdown.prepareModel(m);\n this._render();\n this.dispatchModelUpdated(reset);\n }\n\n onConfigurationChanged(c) {\n this._configuration = c;\n this._render();\n }\n\n /** @param {done, progress, file} handler */\n insertImage(handler) {\n this.dispatchEvent(new InsertImageEvent(handler));\n }\n\n onDeleteImage(src, done) {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n }\n\n insertSound(handler) {\n this.dispatchEvent(new InsertSoundEvent(handler));\n }\n\n onDeleteSound(src, done) {\n this.dispatchEvent(new DeleteSoundEvent(src, done));\n }\n\n _render() {\n log('_render');\n let element = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n disableSidePanel: this._disableSidePanel,\n imageSupport: {\n add: this.insertImage.bind(this),\n delete: this.onDeleteImage.bind(this),\n },\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n });\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(element);\n }\n\n connectedCallback() {\n this._render();\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n this._root = null;\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -159,7 +159,7 @@ const RespArea = (0, _styles.styled)(_editableHtmlTipTap.default)(({
|
|
|
159
159
|
minHeight: 'initial !important'
|
|
160
160
|
}
|
|
161
161
|
}));
|
|
162
|
-
const
|
|
162
|
+
const ToolbarButton = (0, _styles.styled)(_IconButton.default)(({
|
|
163
163
|
theme
|
|
164
164
|
}) => ({
|
|
165
165
|
fontSize: theme.typography.fontSize + 2,
|
|
@@ -285,11 +285,14 @@ class RespAreaToolbar extends _react.default.Component {
|
|
|
285
285
|
editedChoiceIndex: index
|
|
286
286
|
});
|
|
287
287
|
});
|
|
288
|
+
(0, _defineProperty2.default)(this, "finishEditing", () => {
|
|
289
|
+
const html = this.editorRef.getHTML() || '';
|
|
290
|
+
this.onDone(html);
|
|
291
|
+
this.preventDone = true;
|
|
292
|
+
});
|
|
288
293
|
(0, _defineProperty2.default)(this, "onKeyDown", event => {
|
|
289
294
|
if (event.key === 'Enter') {
|
|
290
|
-
|
|
291
|
-
this.onDone(html);
|
|
292
|
-
this.preventDone = true;
|
|
295
|
+
this.finishEditing();
|
|
293
296
|
|
|
294
297
|
// Cancelling event
|
|
295
298
|
return true;
|
|
@@ -354,7 +357,8 @@ class RespAreaToolbar extends _react.default.Component {
|
|
|
354
357
|
} = this.props;
|
|
355
358
|
const {
|
|
356
359
|
respAreaMarkup,
|
|
357
|
-
toolbarStyle
|
|
360
|
+
toolbarStyle,
|
|
361
|
+
editedChoiceIndex
|
|
358
362
|
} = this.state;
|
|
359
363
|
if (!toolbarStyle) {
|
|
360
364
|
return null;
|
|
@@ -418,11 +422,13 @@ class RespAreaToolbar extends _react.default.Component {
|
|
|
418
422
|
spellCheck: spellCheck,
|
|
419
423
|
uploadSoundSupport: uploadSoundSupport,
|
|
420
424
|
mathMlOptions: mathMlOptions
|
|
421
|
-
}), /*#__PURE__*/_react.default.createElement(
|
|
422
|
-
onClick: () => this.onAddChoice(),
|
|
425
|
+
}), /*#__PURE__*/_react.default.createElement(ToolbarButton, {
|
|
426
|
+
onClick: () => editedChoiceIndex >= 0 ? this.finishEditing() : this.onAddChoice(),
|
|
423
427
|
size: "small",
|
|
424
428
|
"aria-label": "Add"
|
|
425
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
429
|
+
}, editedChoiceIndex >= 0 ? /*#__PURE__*/_react.default.createElement(_Check.default, {
|
|
430
|
+
fontSize: "inherit"
|
|
431
|
+
}) : /*#__PURE__*/_react.default.createElement(_Add.default, {
|
|
426
432
|
fontSize: "inherit"
|
|
427
433
|
}))), choices && /*#__PURE__*/_react.default.createElement(ChoicesHolder, null, choices.map(({
|
|
428
434
|
label,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inline-dropdown-toolbar.js","names":["_utils","require","_react","_interopRequireDefault","_reactDom","_propTypes","_editableHtmlTipTap","_mathRendering","_styles","_lodashEs","_renderUi","_Add","_Check","_Close","_Edit","_IconButton","MenuItemWrapper","styled","theme","display","alignItems","position","background","palette","common","white","borderBottom","grey","borderRadius","SelectedIcon","justifyContent","color","fontSize","typography","fontStyle","transform","backgroundColor","correct","top","spacing","left","zIndex","ValueHolder","flex","padding","paddingLeft","correctSecondary","margin","ActionButtons","StyledIconButton","IconButton","black","MenuItemComp","React","Component","constructor","args","_defineProperty2","default","e","onRemoveChoice","props","preventDefault","stopPropagation","onEditChoice","render","onClick","value","createElement","dangerouslySetInnerHTML","__html","onEditClick","size","onRemoveClick","PropTypes","bool","isRequired","func","string","MenuItem","findSlateNode","key","window","document","querySelector","createElementFromHTML","htmlString","div","innerHTML","trim","ResponseContainer","boxShadow","shadows","width","RespArea","EditableHtml","minHeight","AddButton","right","ChoicesHolder","flexDirection","border","ItemBuilder","RespAreaToolbar","respAreaMarkup","editedChoiceIndex","state","editorRef","getHTML","preventDone","onDone","setState","editor","tr","isDone","view","dispatch","val","choices","node","onAddChoice","onToolbarDone","onlyText","textContent","commands","updateAttributes","isEmpty","attrs","index","refreshResponseArea","newValue","onSelectChoice","isEqual","clickedInside","html","onRespAreaChange","event","commitPendingEdit","componentDidMount","domNode","nodeDOM","selection","from","nodeType","domNodeRect","getBoundingClientRect","editorNode","closest","editorRect","toolbarStyle","height","componentDidUpdate","ReactDOM","findDOMNode","renderMath","componentWillUnmount","spellCheck","uploadSoundSupport","mathMlOptions","baseInputConfiguration","responseAreaInputConfiguration","style","onMouseDown","onClickInside","ref","editorCallback","autoFocus","autoSave","toolbarOpts","alwaysVisible","showDone","doneOn","markup","onKeyDown","languageCharactersProps","language","onChange","onBlur","isInInsertCharacter","relatedTarget","isInDoneButton","placeholder","pluginProps","getPluginProps","inputConfiguration","map","label","object","pos","number","array","StyledRespAreaToolbar","_default","exports"],"sources":["../src/inline-dropdown-toolbar.jsx"],"sourcesContent":["import { getPluginProps } from './utils';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { styled } from '@mui/material/styles';\nimport { isEmpty, isEqual } from 'lodash-es';\nimport { color } from '@pie-lib/render-ui';\n\nimport AddIcon from '@mui/icons-material/Add';\nimport CheckIcon from '@mui/icons-material/Check';\nimport CloseIcon from '@mui/icons-material/Close';\nimport EditIcon from '@mui/icons-material/Edit';\nimport IconButton from '@mui/material/IconButton';\n\nconst MenuItemWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'flex-start',\n position: 'relative',\n background: theme.palette.common.white,\n borderBottom: `1px solid ${theme.palette.grey[400]}`,\n\n '&:last-child': {\n borderRadius: '0 0 4px 4px',\n },\n}));\n\nconst SelectedIcon = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'center',\n color: theme.palette.common.white,\n fontSize: theme.typography.fontSize,\n fontStyle: 'normal',\n position: 'absolute',\n transform: 'translate(0, -50%)',\n backgroundColor: color.correct(),\n borderRadius: '50%',\n top: theme.spacing(2),\n left: theme.spacing(1),\n zIndex: 3,\n}));\n\nconst ValueHolder = styled('div')(({ theme, correct }) => ({\n flex: 1,\n padding: theme.spacing(0.75),\n paddingLeft: theme.spacing(3.5),\n ...(correct && {\n background: color.correctSecondary(),\n }),\n '& p': {\n // browser adds extra margin for p tags by default\n margin: 0,\n },\n}));\n\nconst ActionButtons = styled('div')(({ theme }) => ({\n margin: theme.spacing(0.5),\n display: 'flex',\n}));\n\nconst StyledIconButton = styled(IconButton)(({ theme }) => ({\n fontSize: theme.typography.fontSize,\n padding: theme.spacing(0.5),\n color: theme.palette.common.black,\n}));\n\nclass MenuItemComp extends React.Component {\n static propTypes = {\n correct: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired,\n onRemoveChoice: PropTypes.func.isRequired,\n onEditChoice: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired,\n };\n\n onRemoveClick = (e) => {\n const { onRemoveChoice } = this.props;\n\n e.preventDefault();\n e.stopPropagation();\n\n onRemoveChoice();\n };\n\n onEditClick = (e) => {\n const { onEditChoice } = this.props;\n\n e.preventDefault();\n e.stopPropagation();\n\n onEditChoice();\n };\n\n render() {\n const { correct, onClick, value } = this.props;\n\n return (\n <MenuItemWrapper>\n {correct && (\n <SelectedIcon onClick={onClick}>\n <CheckIcon fontSize=\"inherit\" />\n </SelectedIcon>\n )}\n <ValueHolder\n correct={correct}\n onClick={onClick}\n dangerouslySetInnerHTML={{\n __html: value,\n }}\n />\n <ActionButtons>\n <StyledIconButton onClick={this.onEditClick} size=\"small\" aria-label=\"Edit\">\n <EditIcon fontSize=\"inherit\" />\n </StyledIconButton>\n <StyledIconButton onClick={this.onRemoveClick} size=\"small\" aria-label=\"Remove\">\n <CloseIcon fontSize=\"inherit\" />\n </StyledIconButton>\n </ActionButtons>\n </MenuItemWrapper>\n );\n }\n}\n\nconst MenuItem = MenuItemComp;\n\nconst findSlateNode = (key) => {\n return window.document.querySelector('[data-key=\"' + key + '\"]');\n};\n\nconst createElementFromHTML = (htmlString) => {\n const div = document.createElement('div');\n\n div.innerHTML = (htmlString || '').trim();\n\n return div;\n};\n\nconst ResponseContainer = styled('div')(({ theme }) => ({\n boxShadow: theme.shadows[2],\n borderRadius: '4px',\n width: '400px',\n}));\n\nconst RespArea = styled(EditableHtml)(({ theme }) => ({\n borderRadius: '4px',\n backgroundColor: theme.palette.common.white,\n '& [data-slate-editor=\"true\"]': {\n minHeight: 'initial !important',\n },\n}));\n\nconst AddButton = styled(IconButton)(({ theme }) => ({\n fontSize: theme.typography.fontSize + 2,\n padding: theme.spacing(0.5),\n color: theme.palette.common.black,\n position: 'absolute',\n top: '50%',\n right: theme.spacing(2),\n transform: 'translate(0, -50%)',\n}));\n\nconst ChoicesHolder = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n '& > div:last-child': {\n border: 'none',\n },\n});\n\nconst ItemBuilder = styled('div')(({ theme }) => ({\n padding: theme.spacing(0.5),\n position: 'relative',\n}));\n\nclass RespAreaToolbar extends React.Component {\n static propTypes = {\n node: PropTypes.object,\n pos: PropTypes.number,\n uploadSoundSupport: PropTypes.object,\n onDone: PropTypes.func,\n choices: PropTypes.array,\n onAddChoice: PropTypes.func.isRequired,\n editorCallback: PropTypes.func,\n onRemoveChoice: PropTypes.func.isRequired,\n onSelectChoice: PropTypes.func.isRequired,\n onToolbarDone: PropTypes.func.isRequired,\n editor: PropTypes.object,\n spellCheck: PropTypes.bool,\n };\n clickedInside = false;\n preventDone = false;\n\n state = {\n respAreaMarkup: '',\n editedChoiceIndex: -1,\n };\n\n componentDidMount() {\n const { editor } = this.props;\n\n const domNode = editor.view.nodeDOM(editor.state.selection.from);\n\n if (domNode?.nodeType === 1) {\n //eslint-disable-next-line\n const domNodeRect = domNode.getBoundingClientRect();\n const editorNode = domNode.closest('.tiptap');\n const editorRect = editorNode.getBoundingClientRect();\n const top = domNodeRect.top - editorRect.top;\n const left = domNodeRect.left - editorRect.left;\n\n this.setState({\n toolbarStyle: {\n position: 'absolute',\n top: `${top + domNodeRect.height + 25}px`,\n left: `${left}px`,\n },\n });\n }\n }\n\n componentDidUpdate() {\n //eslint-disable-next-line\n const domNode = ReactDOM.findDOMNode(this);\n\n renderMath(domNode);\n }\n\n componentWillUnmount() {\n this.commitPendingEdit();\n }\n\n commitPendingEdit = () => {\n const { editedChoiceIndex } = this.state;\n\n if (editedChoiceIndex < 0 || !this.editorRef?.getHTML) {\n return;\n }\n\n this.preventDone = false;\n this.onDone(this.editorRef.getHTML() || '');\n };\n\n onRespAreaChange = (respAreaMarkup) => {\n this.setState({ respAreaMarkup });\n };\n\n onAddChoice = () => {\n const { editor } = this.props;\n const { tr } = editor.state;\n\n tr.isDone = true;\n editor.view.dispatch(tr);\n };\n\n onDone = (val) => {\n const { choices, node, editor, onAddChoice, onToolbarDone } = this.props;\n\n const { editedChoiceIndex } = this.state;\n const onlyText = createElementFromHTML(val).textContent.trim();\n\n if (editedChoiceIndex >= 0 && choices?.[editedChoiceIndex]?.correct) {\n editor.commands.updateAttributes('inline_dropdown', { value: val });\n }\n\n if (!isEmpty(onlyText)) {\n onAddChoice(node.attrs.index, val, editedChoiceIndex);\n editor.commands.refreshResponseArea();\n }\n\n this.setState({ editedChoiceIndex: -1 });\n };\n\n onSelectChoice = (newValue, index) => {\n const { node, editor, onToolbarDone, onSelectChoice } = this.props;\n\n editor.commands.updateAttributes('inline_dropdown', { value: newValue });\n\n onSelectChoice(index);\n editor.commands.refreshResponseArea();\n };\n\n onRemoveChoice = (val, index) => {\n const { node, editor, onToolbarDone, onRemoveChoice } = this.props;\n\n if (isEqual(val, node.attrs.value)) {\n editor.commands.updateAttributes('inline_dropdown', { value: null });\n }\n\n onRemoveChoice(index);\n editor.commands.refreshResponseArea();\n };\n\n onEditChoice = (val, index) => {\n const { editedChoiceIndex } = this.state;\n\n this.clickedInside = true;\n this.preventDone = true;\n\n if (editedChoiceIndex >= 0) {\n const html = this.editorRef.getHTML() || '';\n\n this.onDone(html);\n }\n\n this.onRespAreaChange(val);\n this.setState({ editedChoiceIndex: index });\n };\n\n onKeyDown = (event) => {\n if (event.key === 'Enter') {\n const html = this.editorRef.getHTML() || '';\n\n this.onDone(html);\n this.preventDone = true;\n\n // Cancelling event\n return true;\n }\n\n return false;\n };\n\n onBlur = () => {\n if (this.clickedInside) {\n this.clickedInside = false;\n return;\n }\n\n const { editedChoiceIndex } = this.state;\n\n if (editedChoiceIndex >= 0) {\n this.commitPendingEdit();\n return;\n }\n\n this.onAddChoice();\n };\n\n onClickInside = () => {\n this.clickedInside = true;\n };\n\n render() {\n const {\n choices,\n spellCheck,\n uploadSoundSupport,\n mathMlOptions = {},\n baseInputConfiguration = {},\n responseAreaInputConfiguration = {},\n } = this.props;\n const { respAreaMarkup, toolbarStyle } = this.state;\n\n if (!toolbarStyle) {\n return null;\n }\n\n return (\n <ResponseContainer\n data-inline-dropdown-toolbar=\"\"\n style={{\n ...toolbarStyle,\n backgroundColor: '#E0E1E6',\n zIndex: 999,\n }}\n onMouseDown={this.onClickInside}\n >\n <ItemBuilder>\n <RespArea\n editorRef={(ref) => {\n if (ref) {\n this.editorRef = ref;\n this.props.editorCallback?.(ref);\n }\n }}\n autoFocus={true}\n autoSave\n toolbarOpts={{\n position: 'top',\n alwaysVisible: false,\n showDone: false,\n doneOn: 'blur',\n }}\n markup={respAreaMarkup}\n onKeyDown={this.onKeyDown}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n onChange={(respAreaMarkup) => {\n if (this.preventDone) {\n return;\n }\n\n this.onRespAreaChange(respAreaMarkup);\n }}\n onDone={(val) => {\n if (this.preventDone) {\n this.preventDone = false;\n return;\n }\n\n this.onDone(val);\n }}\n onBlur={(e) => {\n const isInInsertCharacter = !!(e.relatedTarget && e.relatedTarget.closest('.insert-character-dialog'));\n const isInDoneButton = !!(e.relatedTarget && e.relatedTarget.closest('[aria-label=\"Done\"]'));\n\n if (e.relatedTarget) {\n this.preventDone = isInInsertCharacter || isInDoneButton;\n\n if (isInInsertCharacter || isInDoneButton) {\n this.clickedInside = true;\n }\n }\n\n this.onBlur();\n }}\n placeholder=\"Add Choice\"\n pluginProps={getPluginProps(responseAreaInputConfiguration?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n />\n <AddButton\n onClick={() => this.onAddChoice()}\n size=\"small\"\n aria-label=\"Add\"\n >\n <AddIcon fontSize=\"inherit\" />\n </AddButton>\n </ItemBuilder>\n\n {choices && (\n <ChoicesHolder>\n {choices.map(({ label, correct }, index) => (\n <MenuItem\n key={index}\n onClick={() => this.onSelectChoice(label, index)}\n onRemoveChoice={() => this.onRemoveChoice(label, index)}\n onEditChoice={() => this.onEditChoice(label, index)}\n value={label}\n correct={correct}\n />\n ))}\n </ChoicesHolder>\n )}\n </ResponseContainer>\n );\n }\n}\n\nconst StyledRespAreaToolbar = RespAreaToolbar;\n\nexport default StyledRespAreaToolbar;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"inline-dropdown-toolbar.js","names":["_utils","require","_react","_interopRequireDefault","_reactDom","_propTypes","_editableHtmlTipTap","_mathRendering","_styles","_lodashEs","_renderUi","_Add","_Check","_Close","_Edit","_IconButton","MenuItemWrapper","styled","theme","display","alignItems","position","background","palette","common","white","borderBottom","grey","borderRadius","SelectedIcon","justifyContent","color","fontSize","typography","fontStyle","transform","backgroundColor","correct","top","spacing","left","zIndex","ValueHolder","flex","padding","paddingLeft","correctSecondary","margin","ActionButtons","StyledIconButton","IconButton","black","MenuItemComp","React","Component","constructor","args","_defineProperty2","default","e","onRemoveChoice","props","preventDefault","stopPropagation","onEditChoice","render","onClick","value","createElement","dangerouslySetInnerHTML","__html","onEditClick","size","onRemoveClick","PropTypes","bool","isRequired","func","string","MenuItem","findSlateNode","key","window","document","querySelector","createElementFromHTML","htmlString","div","innerHTML","trim","ResponseContainer","boxShadow","shadows","width","RespArea","EditableHtml","minHeight","ToolbarButton","right","ChoicesHolder","flexDirection","border","ItemBuilder","RespAreaToolbar","respAreaMarkup","editedChoiceIndex","state","editorRef","getHTML","preventDone","onDone","setState","editor","tr","isDone","view","dispatch","val","choices","node","onAddChoice","onToolbarDone","onlyText","textContent","commands","updateAttributes","isEmpty","attrs","index","refreshResponseArea","newValue","onSelectChoice","isEqual","clickedInside","html","onRespAreaChange","event","finishEditing","commitPendingEdit","componentDidMount","domNode","nodeDOM","selection","from","nodeType","domNodeRect","getBoundingClientRect","editorNode","closest","editorRect","toolbarStyle","height","componentDidUpdate","ReactDOM","findDOMNode","renderMath","componentWillUnmount","spellCheck","uploadSoundSupport","mathMlOptions","baseInputConfiguration","responseAreaInputConfiguration","style","onMouseDown","onClickInside","ref","editorCallback","autoFocus","autoSave","toolbarOpts","alwaysVisible","showDone","doneOn","markup","onKeyDown","languageCharactersProps","language","onChange","onBlur","isInInsertCharacter","relatedTarget","isInDoneButton","placeholder","pluginProps","getPluginProps","inputConfiguration","map","label","object","pos","number","array","StyledRespAreaToolbar","_default","exports"],"sources":["../src/inline-dropdown-toolbar.jsx"],"sourcesContent":["import { getPluginProps } from './utils';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { styled } from '@mui/material/styles';\nimport { isEmpty, isEqual } from 'lodash-es';\nimport { color } from '@pie-lib/render-ui';\n\nimport AddIcon from '@mui/icons-material/Add';\nimport CheckIcon from '@mui/icons-material/Check';\nimport CloseIcon from '@mui/icons-material/Close';\nimport EditIcon from '@mui/icons-material/Edit';\nimport IconButton from '@mui/material/IconButton';\n\nconst MenuItemWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'flex-start',\n position: 'relative',\n background: theme.palette.common.white,\n borderBottom: `1px solid ${theme.palette.grey[400]}`,\n\n '&:last-child': {\n borderRadius: '0 0 4px 4px',\n },\n}));\n\nconst SelectedIcon = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'center',\n color: theme.palette.common.white,\n fontSize: theme.typography.fontSize,\n fontStyle: 'normal',\n position: 'absolute',\n transform: 'translate(0, -50%)',\n backgroundColor: color.correct(),\n borderRadius: '50%',\n top: theme.spacing(2),\n left: theme.spacing(1),\n zIndex: 3,\n}));\n\nconst ValueHolder = styled('div')(({ theme, correct }) => ({\n flex: 1,\n padding: theme.spacing(0.75),\n paddingLeft: theme.spacing(3.5),\n ...(correct && {\n background: color.correctSecondary(),\n }),\n '& p': {\n // browser adds extra margin for p tags by default\n margin: 0,\n },\n}));\n\nconst ActionButtons = styled('div')(({ theme }) => ({\n margin: theme.spacing(0.5),\n display: 'flex',\n}));\n\nconst StyledIconButton = styled(IconButton)(({ theme }) => ({\n fontSize: theme.typography.fontSize,\n padding: theme.spacing(0.5),\n color: theme.palette.common.black,\n}));\n\nclass MenuItemComp extends React.Component {\n static propTypes = {\n correct: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired,\n onRemoveChoice: PropTypes.func.isRequired,\n onEditChoice: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired,\n };\n\n onRemoveClick = (e) => {\n const { onRemoveChoice } = this.props;\n\n e.preventDefault();\n e.stopPropagation();\n\n onRemoveChoice();\n };\n\n onEditClick = (e) => {\n const { onEditChoice } = this.props;\n\n e.preventDefault();\n e.stopPropagation();\n\n onEditChoice();\n };\n\n render() {\n const { correct, onClick, value } = this.props;\n\n return (\n <MenuItemWrapper>\n {correct && (\n <SelectedIcon onClick={onClick}>\n <CheckIcon fontSize=\"inherit\" />\n </SelectedIcon>\n )}\n <ValueHolder\n correct={correct}\n onClick={onClick}\n dangerouslySetInnerHTML={{\n __html: value,\n }}\n />\n <ActionButtons>\n <StyledIconButton onClick={this.onEditClick} size=\"small\" aria-label=\"Edit\">\n <EditIcon fontSize=\"inherit\" />\n </StyledIconButton>\n <StyledIconButton onClick={this.onRemoveClick} size=\"small\" aria-label=\"Remove\">\n <CloseIcon fontSize=\"inherit\" />\n </StyledIconButton>\n </ActionButtons>\n </MenuItemWrapper>\n );\n }\n}\n\nconst MenuItem = MenuItemComp;\n\nconst findSlateNode = (key) => {\n return window.document.querySelector('[data-key=\"' + key + '\"]');\n};\n\nconst createElementFromHTML = (htmlString) => {\n const div = document.createElement('div');\n\n div.innerHTML = (htmlString || '').trim();\n\n return div;\n};\n\nconst ResponseContainer = styled('div')(({ theme }) => ({\n boxShadow: theme.shadows[2],\n borderRadius: '4px',\n width: '400px',\n}));\n\nconst RespArea = styled(EditableHtml)(({ theme }) => ({\n borderRadius: '4px',\n backgroundColor: theme.palette.common.white,\n '& [data-slate-editor=\"true\"]': {\n minHeight: 'initial !important',\n },\n}));\n\nconst ToolbarButton = styled(IconButton)(({ theme }) => ({\n fontSize: theme.typography.fontSize + 2,\n padding: theme.spacing(0.5),\n color: theme.palette.common.black,\n position: 'absolute',\n top: '50%',\n right: theme.spacing(2),\n transform: 'translate(0, -50%)',\n}));\n\nconst ChoicesHolder = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n '& > div:last-child': {\n border: 'none',\n },\n});\n\nconst ItemBuilder = styled('div')(({ theme }) => ({\n padding: theme.spacing(0.5),\n position: 'relative',\n}));\n\nclass RespAreaToolbar extends React.Component {\n static propTypes = {\n node: PropTypes.object,\n pos: PropTypes.number,\n uploadSoundSupport: PropTypes.object,\n onDone: PropTypes.func,\n choices: PropTypes.array,\n onAddChoice: PropTypes.func.isRequired,\n editorCallback: PropTypes.func,\n onRemoveChoice: PropTypes.func.isRequired,\n onSelectChoice: PropTypes.func.isRequired,\n onToolbarDone: PropTypes.func.isRequired,\n editor: PropTypes.object,\n spellCheck: PropTypes.bool,\n };\n clickedInside = false;\n preventDone = false;\n\n state = {\n respAreaMarkup: '',\n editedChoiceIndex: -1,\n };\n\n componentDidMount() {\n const { editor } = this.props;\n\n const domNode = editor.view.nodeDOM(editor.state.selection.from);\n\n if (domNode?.nodeType === 1) {\n //eslint-disable-next-line\n const domNodeRect = domNode.getBoundingClientRect();\n const editorNode = domNode.closest('.tiptap');\n const editorRect = editorNode.getBoundingClientRect();\n const top = domNodeRect.top - editorRect.top;\n const left = domNodeRect.left - editorRect.left;\n\n this.setState({\n toolbarStyle: {\n position: 'absolute',\n top: `${top + domNodeRect.height + 25}px`,\n left: `${left}px`,\n },\n });\n }\n }\n\n componentDidUpdate() {\n //eslint-disable-next-line\n const domNode = ReactDOM.findDOMNode(this);\n\n renderMath(domNode);\n }\n\n componentWillUnmount() {\n this.commitPendingEdit();\n }\n\n commitPendingEdit = () => {\n const { editedChoiceIndex } = this.state;\n\n if (editedChoiceIndex < 0 || !this.editorRef?.getHTML) {\n return;\n }\n\n this.preventDone = false;\n this.onDone(this.editorRef.getHTML() || '');\n };\n\n onRespAreaChange = (respAreaMarkup) => {\n this.setState({ respAreaMarkup });\n };\n\n onAddChoice = () => {\n const { editor } = this.props;\n const { tr } = editor.state;\n\n tr.isDone = true;\n editor.view.dispatch(tr);\n };\n\n onDone = (val) => {\n const { choices, node, editor, onAddChoice, onToolbarDone } = this.props;\n\n const { editedChoiceIndex } = this.state;\n const onlyText = createElementFromHTML(val).textContent.trim();\n\n if (editedChoiceIndex >= 0 && choices?.[editedChoiceIndex]?.correct) {\n editor.commands.updateAttributes('inline_dropdown', { value: val });\n }\n\n if (!isEmpty(onlyText)) {\n onAddChoice(node.attrs.index, val, editedChoiceIndex);\n editor.commands.refreshResponseArea();\n }\n\n this.setState({ editedChoiceIndex: -1 });\n };\n\n onSelectChoice = (newValue, index) => {\n const { node, editor, onToolbarDone, onSelectChoice } = this.props;\n\n editor.commands.updateAttributes('inline_dropdown', { value: newValue });\n\n onSelectChoice(index);\n editor.commands.refreshResponseArea();\n };\n\n onRemoveChoice = (val, index) => {\n const { node, editor, onToolbarDone, onRemoveChoice } = this.props;\n\n if (isEqual(val, node.attrs.value)) {\n editor.commands.updateAttributes('inline_dropdown', { value: null });\n }\n\n onRemoveChoice(index);\n editor.commands.refreshResponseArea();\n };\n\n onEditChoice = (val, index) => {\n const { editedChoiceIndex } = this.state;\n\n this.clickedInside = true;\n this.preventDone = true;\n\n if (editedChoiceIndex >= 0) {\n const html = this.editorRef.getHTML() || '';\n\n this.onDone(html);\n }\n\n this.onRespAreaChange(val);\n this.setState({ editedChoiceIndex: index });\n };\n\n finishEditing = () => {\n const html = this.editorRef.getHTML() || '';\n\n this.onDone(html);\n this.preventDone = true;\n };\n\n onKeyDown = (event) => {\n if (event.key === 'Enter') {\n this.finishEditing();\n\n // Cancelling event\n return true;\n }\n\n return false;\n };\n\n onBlur = () => {\n if (this.clickedInside) {\n this.clickedInside = false;\n return;\n }\n\n const { editedChoiceIndex } = this.state;\n\n if (editedChoiceIndex >= 0) {\n this.commitPendingEdit();\n return;\n }\n\n this.onAddChoice();\n };\n\n onClickInside = () => {\n this.clickedInside = true;\n };\n\n render() {\n const {\n choices,\n spellCheck,\n uploadSoundSupport,\n mathMlOptions = {},\n baseInputConfiguration = {},\n responseAreaInputConfiguration = {},\n } = this.props;\n const { respAreaMarkup, toolbarStyle, editedChoiceIndex } = this.state;\n\n if (!toolbarStyle) {\n return null;\n }\n\n return (\n <ResponseContainer\n data-inline-dropdown-toolbar=\"\"\n style={{\n ...toolbarStyle,\n backgroundColor: '#E0E1E6',\n zIndex: 999,\n }}\n onMouseDown={this.onClickInside}\n >\n <ItemBuilder>\n <RespArea\n editorRef={(ref) => {\n if (ref) {\n this.editorRef = ref;\n this.props.editorCallback?.(ref);\n }\n }}\n autoFocus={true}\n autoSave\n toolbarOpts={{\n position: 'top',\n alwaysVisible: false,\n showDone: false,\n doneOn: 'blur',\n }}\n markup={respAreaMarkup}\n onKeyDown={this.onKeyDown}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n onChange={(respAreaMarkup) => {\n if (this.preventDone) {\n return;\n }\n\n this.onRespAreaChange(respAreaMarkup);\n }}\n onDone={(val) => {\n if (this.preventDone) {\n this.preventDone = false;\n return;\n }\n\n this.onDone(val);\n }}\n onBlur={(e) => {\n const isInInsertCharacter = !!(e.relatedTarget && e.relatedTarget.closest('.insert-character-dialog'));\n const isInDoneButton = !!(e.relatedTarget && e.relatedTarget.closest('[aria-label=\"Done\"]'));\n\n if (e.relatedTarget) {\n this.preventDone = isInInsertCharacter || isInDoneButton;\n\n if (isInInsertCharacter || isInDoneButton) {\n this.clickedInside = true;\n }\n }\n\n this.onBlur();\n }}\n placeholder=\"Add Choice\"\n pluginProps={getPluginProps(responseAreaInputConfiguration?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n />\n <ToolbarButton\n onClick={() => editedChoiceIndex >= 0 ? this.finishEditing() : this.onAddChoice()}\n size=\"small\"\n aria-label=\"Add\"\n >\n {editedChoiceIndex >= 0 ? <CheckIcon fontSize=\"inherit\" /> : <AddIcon fontSize=\"inherit\"/>}\n </ToolbarButton>\n </ItemBuilder>\n\n {choices && (\n <ChoicesHolder>\n {choices.map(({ label, correct }, index) => (\n <MenuItem\n key={index}\n onClick={() => this.onSelectChoice(label, index)}\n onRemoveChoice={() => this.onRemoveChoice(label, index)}\n onEditChoice={() => this.onEditChoice(label, index)}\n value={label}\n correct={correct}\n />\n ))}\n </ChoicesHolder>\n )}\n </ResponseContainer>\n );\n }\n}\n\nconst StyledRespAreaToolbar = RespAreaToolbar;\n\nexport default StyledRespAreaToolbar;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","names":["_react","_interopRequireDefault","require","_reactDom","_propTypes","_editableHtmlTipTap","_interopRequireWildcard","_configUi","_mathRendering","_renderUi","_lodashEs","_styles","_Tooltip","_Typography","_Accordion","_AccordionSummary","_AccordionDetails","_ExpandMore","_Info","_inlineDropdownToolbar","_utils","_responseArea","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","toggle","Panel","dropdown","settings","PromptHolder","styled","InputContainer","theme","width","paddingTop","spacing","marginBottom","ChoiceRationaleHolder","StyledTypography","Typography","fontSize","typography","marginRight","RationaleLabel","display","alignItems","whiteSpace","color","disabled","padding","lineHeight","RationaleChoices","StyledAccordionDetails","AccordionDetails","paddingBottom","FlexContainer","StyledTooltip","Tooltip","maxWidth","ErrorText","palette","error","main","createElementFromHTML","htmlString","div","document","createElement","innerHTML","trim","Main","React","Component","constructor","args","_defineProperty2","warning","open","newVal","props","onModelChanged","model","prompt","onModelChange","rationale","index","choice","indexOfChoice","choices","findIndex","elem","label","value","splice","teacherInstructions","slateMarkup","confirmCallback","cancelCallback","setState","text","onClose","onConfirm","node","pos","editor","closeToolbar","onCancel","respAreaChoices","state","attrs","currentChoices","shouldWarn","length","find","c","correct","_holdInlineDropdownToolbarIndex","onCheck","deleteInlineDropdownByIndex","markup","domMarkup","allRespAreas","querySelectorAll","allChoices","forEach","el","dataset","existingRespAreaChoices","reduce","obj","key","isUndefined","newRespAreaChoices","cloneDeep","choiceIndex","maxResponseAreaChoices","configuration","showWarning","message","undefined","idx","max","map","parseInt","filter","val","isNaN","push","respIndex","selectedIndex","componentDidMount","UNSAFE_componentWillReceiveProps","nProps","newState","isEqual","isEmpty","componentDidUpdate","domNode","ReactDOM","findDOMNode","renderMath","render","onConfigurationChanged","imageSupport","uploadSoundSupport","baseInputConfiguration","choiceRationale","contentDimensions","lockChoiceOrder","maxResponseAreas","maxImageWidth","maxImageHeight","partialScoring","settingsPanelDisabled","spellCheck","template","withRubric","mathMlOptions","language","languageChoices","responseAreaInputConfiguration","choiceRationaleEnabled","errors","extraCSSRules","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","promptError","rationaleError","responseAreasError","responseAreaChoicesError","teacherInstructionsError","defaultImageMaxWidth","defaultImageMaxHeight","renderChoiceRationale","keys","slotProps","transition","timeout","enter","exit","expandIcon","component","Fragment","dangerouslySetInnerHTML","__html","pluginProps","getPluginProps","inputConfiguration","onChange","onChoiceRationaleChanged","toolbarOpts","position","validationMessage","generateValidationMessage","panelSettings","enabled","options","panelProperties","rubricEnabled","layout","ConfigLayout","names","rules","dimensions","hideSettings","onChangeModel","onChangeConfiguration","groups","Settings","Properties","onTeacherInstructionsChanged","nonEmpty","languageCharactersProps","onPromptChanged","disableUnderline","disableFocusListener","disableTouchListener","placement","title","editableHtmlProps","activePlugins","ALL_PLUGINS","responseAreaProps","type","duplicates","onToolbarCloseRequest","validateResponseAreaClose","respAreaToolbar","nodeInfo","_extends2","onAddChoice","onRemoveChoice","onSelectChoice","onToolbarDone","disableImageAlignmentButtons","highlightShape","onRationaleChanged","AlertDialog","disableAutoFocus","disableEnforceFocus","disableRestoreFocus","exports","PropTypes","object","isRequired","disableSidePanel","bool","func","shape","add","delete","_default"],"sources":["../src/main.jsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport EditableHtml, { ALL_PLUGINS, deleteInlineDropdownByIndex } from '@pie-lib/editable-html-tip-tap';\nimport { AlertDialog, InputContainer, layout, settings } from '@pie-lib/config-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { color } from '@pie-lib/render-ui';\nimport { cloneDeep, isEmpty, isEqual, isUndefined, max, reduce } from 'lodash-es';\nimport { styled } from '@mui/material/styles';\nimport Tooltip from '@mui/material/Tooltip';\nimport Typography from '@mui/material/Typography';\nimport Accordion from '@mui/material/Accordion';\nimport AccordionSummary from '@mui/material/AccordionSummary';\nimport AccordionDetails from '@mui/material/AccordionDetails';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport Info from '@mui/icons-material/Info';\n\nimport InlineDropdownToolbar from './inline-dropdown-toolbar';\nimport { generateValidationMessage } from './utils';\nimport ResponseAreaComponent from './response-area';\n\nconst { toggle, Panel, dropdown } = settings;\n\nconst PromptHolder = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n}));\n\nconst ChoiceRationaleHolder = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(0.5),\n marginBottom: theme.spacing(2),\n}));\n\nconst StyledTypography = styled(Typography)(({ theme }) => ({\n fontSize: theme.typography.fontSize + 2,\n marginRight: theme.spacing(1),\n}));\n\nconst RationaleLabel = styled('span')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n whiteSpace: 'break-spaces',\n color: color.disabled(),\n padding: 0,\n fontSize: theme.typography.fontSize - 2,\n lineHeight: 1,\n}));\n\nconst RationaleChoices = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2.5),\n}));\n\nconst StyledAccordionDetails = styled(AccordionDetails)({\n display: 'block',\n paddingTop: 0,\n paddingBottom: 0,\n});\n\nconst FlexContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n marginBottom: theme.spacing(1),\n}));\n\nconst StyledTooltip = styled(Tooltip)(({ theme }) => ({\n '& .MuiTooltip-tooltip': {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(1),\n}));\n\nconst createElementFromHTML = (htmlString) => {\n const div = document.createElement('div');\n\n div.innerHTML = (htmlString || '').trim();\n\n return div;\n};\n\nexport class Main extends React.Component {\n static propTypes = {\n configuration: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n disableSidePanel: PropTypes.bool,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n state = {\n warning: { open: false },\n };\n\n componentDidMount() {\n const {\n model: { choices },\n } = this.props;\n\n this.setState({ respAreaChoices: cloneDeep(choices) });\n }\n\n UNSAFE_componentWillReceiveProps(nProps) {\n const newState = {};\n\n if (\n !isEqual(nProps.model.choices, this.props.model.choices) ||\n !isEqual(nProps.model.choices, this.state.respAreaChoices)\n ) {\n newState.respAreaChoices = cloneDeep(nProps.model.choices);\n }\n\n if (!isEmpty(newState)) {\n this.setState(newState);\n }\n }\n\n componentDidUpdate() {\n //eslint-disable-next-line\n const domNode = ReactDOM.findDOMNode(this);\n\n renderMath(domNode);\n }\n\n onModelChange = (newVal) => {\n this.props.onModelChanged({ ...this.props.model, ...newVal });\n };\n\n onPromptChanged = (prompt) => {\n this.onModelChange({ prompt });\n };\n\n onRationaleChanged = (rationale) => {\n this.onModelChange({ rationale });\n };\n\n onChoiceRationaleChanged = (index, choice) => {\n const { model } = this.props;\n const indexOfChoice =\n model.choices &&\n model.choices[index] &&\n model.choices[index].findIndex((elem) => elem.label === choice.label && elem.value === choice.value);\n\n model.choices[index] && model.choices[index].splice(indexOfChoice, 1, choice);\n\n this.onModelChange(model);\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n this.onModelChange({ teacherInstructions });\n };\n\n onMarkupChanged = (slateMarkup) => {\n this.onModelChange({ slateMarkup });\n };\n\n onCheck = (confirmCallback, cancelCallback) => {\n this.setState({\n warning: {\n open: true,\n text: 'Response areas with under 2 options or with no correct answers will be discarded.',\n onClose: () => {\n this.setState({ warning: { open: false } }, cancelCallback);\n },\n onConfirm: () => {\n this.setState({ warning: { open: false } }, confirmCallback);\n },\n },\n });\n };\n\n validateResponseAreaClose = (node, pos, editor, closeToolbar, onCancel) => {\n const { respAreaChoices } = this.state;\n const index = node.attrs.index;\n const currentChoices = respAreaChoices[index] || [];\n const shouldWarn = currentChoices.length < 2 || !currentChoices.find((c) => c.correct);\n\n if (!shouldWarn) {\n closeToolbar();\n return;\n }\n\n editor._holdInlineDropdownToolbarIndex = index;\n\n this.onCheck(\n () => {\n delete editor._holdInlineDropdownToolbarIndex;\n deleteInlineDropdownByIndex(editor, index, pos);\n closeToolbar();\n },\n onCancel,\n );\n };\n\n onChange = (markup) => {\n const { respAreaChoices } = this.state;\n const domMarkup = createElementFromHTML(markup);\n const allRespAreas = domMarkup.querySelectorAll('[data-type=\"inline_dropdown\"]');\n const allChoices = {};\n\n allRespAreas.forEach((el) => {\n allChoices[el.dataset.index] = el.dataset.value || '';\n });\n\n const existingRespAreaChoices = reduce(\n respAreaChoices,\n (obj, choices, key) => {\n if (!isUndefined(allChoices[key])) {\n obj[key] = respAreaChoices[key];\n }\n\n return obj;\n },\n {},\n );\n\n const newRespAreaChoices = {};\n\n allRespAreas.forEach((el, index) => {\n const choices = existingRespAreaChoices[el.dataset.index];\n\n if (choices) {\n newRespAreaChoices[index] = choices;\n }\n\n el.dataset.index = index;\n });\n\n this.onModelChange({\n choices: cloneDeep(newRespAreaChoices),\n slateMarkup: domMarkup.innerHTML,\n });\n };\n\n onAddChoice = (index, label, choiceIndex) => {\n const { respAreaChoices } = this.state;\n const { maxResponseAreaChoices } = this.props.configuration;\n\n const showWarning = (message) =>\n this.setState({\n warning: {\n open: true,\n text: message,\n onClose: undefined,\n onConfirm: () => {\n this.setState({ warning: { open: false } });\n },\n },\n });\n\n if (respAreaChoices[index] && respAreaChoices[index].length >= maxResponseAreaChoices) {\n showWarning(`There are only ${maxResponseAreaChoices} answers allowed per choice.`);\n return;\n }\n\n if (!respAreaChoices[index]) {\n respAreaChoices[index] = [];\n }\n\n\n\n // check for duplicate answer, but exclude the one that is currently edited\n if ((respAreaChoices[index] || []).find((r, idx) => r.label === label && idx !== choiceIndex)) {\n showWarning('Duplicate answers are not allowed.');\n return;\n }\n\n if (choiceIndex >= 0 && respAreaChoices[index]?.[choiceIndex]) {\n // we need to update the choice label with the new value\n respAreaChoices[index][choiceIndex].label = label;\n } else {\n // add a new choice\n const value =\n (respAreaChoices[index] &&\n max(respAreaChoices[index].map((c) => parseInt(c.value)).filter((val) => !isNaN(val)))) ||\n 0;\n\n respAreaChoices[index].push({\n label,\n value: `${value + 1}`,\n correct: false,\n });\n }\n\n this.onModelChange({ choices: cloneDeep(respAreaChoices) });\n };\n\n onRemoveChoice = (respIndex, index) => {\n const { respAreaChoices } = this.state;\n\n respAreaChoices[respIndex].splice(index, 1);\n\n this.onModelChange({ choices: cloneDeep(respAreaChoices) });\n };\n\n onSelectChoice = (respIndex, selectedIndex) => {\n const { respAreaChoices } = this.state;\n\n respAreaChoices[respIndex] = respAreaChoices[respIndex].map((choice, index) => ({\n ...choice,\n correct: index === selectedIndex,\n }));\n\n this.onModelChange({ choices: cloneDeep(respAreaChoices) });\n };\n\n render() {\n const { warning } = this.state;\n const { model, configuration, onConfigurationChanged, imageSupport, uploadSoundSupport } = this.props;\n const {\n baseInputConfiguration = {},\n choiceRationale = {},\n contentDimensions = {},\n lockChoiceOrder = {},\n maxResponseAreas,\n maxImageWidth = {},\n maxImageHeight = {},\n partialScoring = {},\n prompt = {},\n rationale = {},\n settingsPanelDisabled,\n spellCheck = {},\n teacherInstructions = {},\n template = {},\n withRubric = {},\n mathMlOptions = {},\n language = {},\n languageChoices = {},\n responseAreaInputConfiguration = {},\n } = configuration || {};\n\n const {\n choiceRationaleEnabled,\n choices,\n errors,\n extraCSSRules,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n const {\n prompt: promptError,\n rationale: rationaleError,\n responseAreasError,\n responseAreaChoicesError,\n teacherInstructions: teacherInstructionsError,\n } = errors || {};\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const renderChoiceRationale = () =>\n (Object.keys(choices) || []).map((key, index) => (\n <RationaleChoices key={key}>\n <Accordion slotProps={{ transition: { timeout: { enter: 225, exit: 195 } } }}>\n <AccordionSummary expandIcon={<ExpandMoreIcon />}>\n <StyledTypography component={'div'}>{`Rationale for response area #${index + 1}`}</StyledTypography>\n </AccordionSummary>\n\n <StyledAccordionDetails>\n {(choices[key] || []).map((choice) => (\n <React.Fragment key={choice.label}>\n <RationaleLabel\n dangerouslySetInnerHTML={{\n __html: `${rationale.label} for ${choice.label} (${choice.correct ? 'correct' : 'incorrect'})`,\n }}\n />\n <ChoiceRationaleHolder>\n <EditableHtml\n markup={choice.rationale || ''}\n spellCheck={spellCheckEnabled}\n pluginProps={getPluginProps(rationale?.inputConfiguration)}\n onChange={(c) => this.onChoiceRationaleChanged(key, { ...choice, rationale: c })}\n imageSupport={imageSupport}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n />\n </ChoiceRationaleHolder>\n </React.Fragment>\n ))}\n </StyledAccordionDetails>\n </Accordion>\n </RationaleChoices>\n ));\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const validationMessage = generateValidationMessage(configuration);\n\n const panelSettings = {\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n };\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n choiceRationaleEnabled: choiceRationale.settings && toggle(choiceRationale.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n const getPluginProps = (props = {}) => ({\n ...baseInputConfiguration,\n ...props,\n });\n\n return (\n <layout.ConfigLayout\n extraCSSRules={{\n names: ['red', 'blue'],\n rules: `\n .red {\n color: red !important;\n }\n\n .blue {\n color: blue !important;\n }\n `,\n }}\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={(model) => this.onModelChange(model)}\n onChangeConfiguration={(configuration) => onConfigurationChanged(configuration, true)}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <PromptHolder label={teacherInstructions.label}>\n <EditableHtml\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={teacherInstructionsError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration)}\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 />\n {teacherInstructionsError && <ErrorText>{teacherInstructionsError}</ErrorText>}\n </PromptHolder>\n )}\n\n {promptEnabled && (\n <PromptHolder label={prompt.label}>\n <EditableHtml\n markup={model.prompt}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n error={promptError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(prompt?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <ErrorText>{promptError}</ErrorText>}\n </PromptHolder>\n )}\n\n <FlexContainer>\n <StyledTypography component={'div'}>Define Template, Choices, and Correct Responses</StyledTypography>\n <StyledTooltip disableFocusListener disableTouchListener placement={'right'} title={validationMessage}>\n <Info fontSize={'small'} color={'primary'} />\n </StyledTooltip>\n </FlexContainer>\n\n <ResponseAreaComponent\n responseAreasError={responseAreasError}\n responseAreaChoicesError={responseAreaChoicesError}\n editableHtmlProps={{\n pluginProps: getPluginProps(template?.inputConfiguration),\n activePlugins: ALL_PLUGINS,\n toolbarOpts: { position: 'top' },\n extraCSSRules: {\n names: ['red', 'blue'],\n rules: `\n .red {\n color: red !important;\n }\n\n .blue {\n color: blue !important;\n }\n `,\n },\n responseAreaProps: {\n type: 'inline-dropdown',\n options: {\n duplicates: true,\n },\n maxResponseAreas: maxResponseAreas,\n onToolbarCloseRequest: ([node, pos], editor, closeToolbar, onCancel) => {\n this.validateResponseAreaClose(node, pos, editor, closeToolbar, onCancel);\n },\n respAreaToolbar: (nodeInfo, editor, closeToolbar) => {\n const [node, pos] = nodeInfo;\n const { respAreaChoices } = this.state;\n\n return (props) => (\n <InlineDropdownToolbar\n {...props}\n onAddChoice={this.onAddChoice}\n onRemoveChoice={(index) => this.onRemoveChoice(node.attrs.index, index)}\n onSelectChoice={(index) => this.onSelectChoice(node.attrs.index, index)}\n node={node}\n pos={pos}\n editor={editor}\n onToolbarDone={closeToolbar}\n choices={respAreaChoices[node.attrs.index]}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n baseInputConfiguration={baseInputConfiguration}\n responseAreaInputConfiguration={responseAreaInputConfiguration}\n />\n );\n },\n },\n spellCheck: spellCheckEnabled,\n markup: model.slateMarkup || '',\n onChange: this.onChange,\n imageSupport: imageSupport,\n disableImageAlignmentButtons: true,\n disabled: false,\n highlightShape: false,\n error: responseAreasError,\n uploadSoundSupport: uploadSoundSupport,\n languageCharactersProps: [{ language: 'spanish' }, { language: 'special' }],\n mathMlOptions: mathMlOptions,\n }}\n />\n\n {choiceRationaleEnabled && renderChoiceRationale()}\n\n {rationaleEnabled && (\n <PromptHolder label={rationale.label}>\n <EditableHtml\n markup={model.rationale || ''}\n onChange={this.onRationaleChanged}\n imageSupport={imageSupport}\n error={rationaleError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(rationale?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {rationaleError && <ErrorText>{rationaleError}</ErrorText>}\n </PromptHolder>\n )}\n\n <AlertDialog\n open={warning.open}\n title=\"Warning\"\n text={warning.text}\n onClose={warning.onClose}\n onConfirm={warning.onConfirm}\n disableAutoFocus={true}\n disableEnforceFocus={true}\n disableRestoreFocus={true}\n />\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default Main;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"main.js","names":["_react","_interopRequireDefault","require","_reactDom","_propTypes","_editableHtmlTipTap","_interopRequireWildcard","_configUi","_mathRendering","_renderUi","_lodashEs","_styles","_Tooltip","_Typography","_Accordion","_AccordionSummary","_AccordionDetails","_ExpandMore","_Info","_inlineDropdownToolbar","_utils","_responseArea","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","toggle","Panel","dropdown","settings","PromptHolder","styled","InputContainer","theme","width","paddingTop","spacing","marginBottom","ChoiceRationaleHolder","StyledTypography","Typography","fontSize","typography","marginRight","RationaleLabel","display","alignItems","whiteSpace","color","disabled","padding","lineHeight","RationaleChoices","StyledAccordionDetails","AccordionDetails","paddingBottom","FlexContainer","StyledTooltip","Tooltip","maxWidth","ErrorText","palette","error","main","createElementFromHTML","htmlString","div","document","createElement","innerHTML","trim","Main","React","Component","constructor","args","_defineProperty2","warning","open","newVal","props","onModelChanged","model","prompt","onModelChange","rationale","index","choice","indexOfChoice","choices","findIndex","elem","label","value","splice","teacherInstructions","slateMarkup","confirmCallback","cancelCallback","setState","text","onClose","onConfirm","node","pos","editor","closeToolbar","onCancel","respAreaChoices","state","attrs","currentChoices","shouldWarn","length","find","c","correct","_holdInlineDropdownToolbarIndex","onCheck","deleteInlineDropdownByIndex","markup","domMarkup","allRespAreas","querySelectorAll","allChoices","forEach","el","dataset","existingRespAreaChoices","reduce","obj","key","isUndefined","newRespAreaChoices","cloneDeep","choiceIndex","maxResponseAreaChoices","configuration","showWarning","message","undefined","idx","max","map","parseInt","filter","val","isNaN","push","respIndex","selectedIndex","componentDidMount","UNSAFE_componentWillReceiveProps","nProps","newState","isEqual","isEmpty","componentDidUpdate","domNode","ReactDOM","findDOMNode","renderMath","render","onConfigurationChanged","imageSupport","uploadSoundSupport","baseInputConfiguration","choiceRationale","contentDimensions","lockChoiceOrder","maxResponseAreas","maxImageWidth","maxImageHeight","partialScoring","settingsPanelDisabled","spellCheck","template","withRubric","mathMlOptions","language","languageChoices","responseAreaInputConfiguration","choiceRationaleEnabled","errors","extraCSSRules","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","promptError","rationaleError","responseAreasError","responseAreaChoicesError","teacherInstructionsError","defaultImageMaxWidth","defaultImageMaxHeight","renderChoiceRationale","keys","slotProps","transition","timeout","enter","exit","expandIcon","component","Fragment","dangerouslySetInnerHTML","__html","pluginProps","getPluginProps","inputConfiguration","onChange","onChoiceRationaleChanged","toolbarOpts","position","validationMessage","generateValidationMessage","panelSettings","enabled","options","panelProperties","rubricEnabled","layout","ConfigLayout","names","rules","dimensions","hideSettings","onChangeModel","onChangeConfiguration","groups","Settings","Properties","onTeacherInstructionsChanged","nonEmpty","languageCharactersProps","onPromptChanged","disableUnderline","disableFocusListener","disableTouchListener","placement","title","editableHtmlProps","activePlugins","ALL_PLUGINS","responseAreaProps","type","duplicates","onToolbarCloseRequest","validateResponseAreaClose","respAreaToolbar","nodeInfo","_extends2","onAddChoice","onRemoveChoice","onSelectChoice","onToolbarDone","disableImageAlignmentButtons","highlightShape","onRationaleChanged","AlertDialog","disableAutoFocus","disableEnforceFocus","disableRestoreFocus","exports","PropTypes","object","isRequired","disableSidePanel","bool","func","shape","add","delete","_default"],"sources":["../src/main.jsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport EditableHtml, { ALL_PLUGINS, deleteInlineDropdownByIndex } from '@pie-lib/editable-html-tip-tap';\nimport { AlertDialog, InputContainer, layout, settings } from '@pie-lib/config-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { color } from '@pie-lib/render-ui';\nimport { cloneDeep, isEmpty, isEqual, isUndefined, max, reduce } from 'lodash-es';\nimport { styled } from '@mui/material/styles';\nimport Tooltip from '@mui/material/Tooltip';\nimport Typography from '@mui/material/Typography';\nimport Accordion from '@mui/material/Accordion';\nimport AccordionSummary from '@mui/material/AccordionSummary';\nimport AccordionDetails from '@mui/material/AccordionDetails';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport Info from '@mui/icons-material/Info';\n\nimport InlineDropdownToolbar from './inline-dropdown-toolbar';\nimport { generateValidationMessage } from './utils';\nimport ResponseAreaComponent from './response-area';\n\nconst { toggle, Panel, dropdown } = settings;\n\nconst PromptHolder = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n}));\n\nconst ChoiceRationaleHolder = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(0.5),\n marginBottom: theme.spacing(2),\n}));\n\nconst StyledTypography = styled(Typography)(({ theme }) => ({\n fontSize: theme.typography.fontSize + 2,\n marginRight: theme.spacing(1),\n}));\n\nconst RationaleLabel = styled('span')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n whiteSpace: 'break-spaces',\n color: color.disabled(),\n padding: 0,\n fontSize: theme.typography.fontSize - 2,\n lineHeight: 1,\n}));\n\nconst RationaleChoices = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2.5),\n}));\n\nconst StyledAccordionDetails = styled(AccordionDetails)({\n display: 'block',\n paddingTop: 0,\n paddingBottom: 0,\n});\n\nconst FlexContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n marginBottom: theme.spacing(1),\n}));\n\nconst StyledTooltip = styled(Tooltip)(({ theme }) => ({\n '& .MuiTooltip-tooltip': {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(1),\n}));\n\nconst createElementFromHTML = (htmlString) => {\n const div = document.createElement('div');\n\n div.innerHTML = (htmlString || '').trim();\n\n return div;\n};\n\nexport class Main extends React.Component {\n static propTypes = {\n configuration: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n disableSidePanel: PropTypes.bool,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n state = {\n warning: { open: false },\n };\n\n componentDidMount() {\n const {\n model: { choices },\n } = this.props;\n\n this.setState({ respAreaChoices: cloneDeep(choices) });\n }\n\n UNSAFE_componentWillReceiveProps(nProps) {\n const newState = {};\n\n if (\n !isEqual(nProps.model.choices, this.props.model.choices) ||\n !isEqual(nProps.model.choices, this.state.respAreaChoices)\n ) {\n newState.respAreaChoices = cloneDeep(nProps.model.choices);\n }\n\n if (!isEmpty(newState)) {\n this.setState(newState);\n }\n }\n\n componentDidUpdate() {\n //eslint-disable-next-line\n const domNode = ReactDOM.findDOMNode(this);\n\n renderMath(domNode);\n }\n\n onModelChange = (newVal) => {\n this.props.onModelChanged({ ...this.props.model, ...newVal });\n };\n\n onPromptChanged = (prompt) => {\n this.onModelChange({ prompt });\n };\n\n onRationaleChanged = (rationale) => {\n this.onModelChange({ rationale });\n };\n\n onChoiceRationaleChanged = (index, choice) => {\n const { model } = this.props;\n const indexOfChoice =\n model.choices &&\n model.choices[index] &&\n model.choices[index].findIndex((elem) => elem.label === choice.label && elem.value === choice.value);\n\n model.choices[index] && model.choices[index].splice(indexOfChoice, 1, choice);\n\n this.onModelChange(model);\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n this.onModelChange({ teacherInstructions });\n };\n\n onMarkupChanged = (slateMarkup) => {\n this.onModelChange({ slateMarkup });\n };\n\n onCheck = (confirmCallback, cancelCallback) => {\n this.setState({\n warning: {\n open: true,\n text: 'Response areas with under 2 options or with no correct answers will be discarded.',\n onClose: () => {\n this.setState({ warning: { open: false } }, cancelCallback);\n },\n onConfirm: () => {\n this.setState({ warning: { open: false } }, confirmCallback);\n },\n },\n });\n };\n\n validateResponseAreaClose = (node, pos, editor, closeToolbar, onCancel) => {\n const { respAreaChoices } = this.state;\n const index = node.attrs.index;\n const currentChoices = respAreaChoices[index] || [];\n const shouldWarn = currentChoices.length < 2 || !currentChoices.find((c) => c.correct);\n\n if (!shouldWarn) {\n closeToolbar();\n return;\n }\n\n editor._holdInlineDropdownToolbarIndex = index;\n\n this.onCheck(\n () => {\n delete editor._holdInlineDropdownToolbarIndex;\n deleteInlineDropdownByIndex(editor, index, pos);\n closeToolbar();\n },\n onCancel,\n );\n };\n\n onChange = (markup) => {\n const { respAreaChoices } = this.state;\n const domMarkup = createElementFromHTML(markup);\n const allRespAreas = domMarkup.querySelectorAll('[data-type=\"inline_dropdown\"]');\n const allChoices = {};\n\n allRespAreas.forEach((el) => {\n allChoices[el.dataset.index] = el.dataset.value || '';\n });\n\n const existingRespAreaChoices = reduce(\n respAreaChoices,\n (obj, choices, key) => {\n if (!isUndefined(allChoices[key])) {\n obj[key] = respAreaChoices[key];\n }\n\n return obj;\n },\n {},\n );\n\n const newRespAreaChoices = {};\n\n allRespAreas.forEach((el, index) => {\n const choices = existingRespAreaChoices[el.dataset.index];\n\n if (choices) {\n newRespAreaChoices[index] = choices;\n }\n\n el.dataset.index = index;\n });\n\n this.onModelChange({\n choices: cloneDeep(newRespAreaChoices),\n slateMarkup: domMarkup.innerHTML,\n });\n };\n\n onAddChoice = (index, label, choiceIndex) => {\n const { respAreaChoices } = this.state;\n const { maxResponseAreaChoices } = this.props.configuration;\n\n const showWarning = (message) =>\n this.setState({\n warning: {\n open: true,\n text: message,\n onClose: undefined,\n onConfirm: () => {\n this.setState({ warning: { open: false } });\n },\n },\n });\n\n if (respAreaChoices[index] && respAreaChoices[index].length >= maxResponseAreaChoices) {\n showWarning(`There are only ${maxResponseAreaChoices} answers allowed per choice.`);\n return;\n }\n\n if (!respAreaChoices[index]) {\n respAreaChoices[index] = [];\n }\n\n // check for duplicate answer, but exclude the one that is currently edited\n if ((respAreaChoices[index] || []).find((r, idx) => r.label === label && idx !== choiceIndex)) {\n showWarning('Duplicate answers are not allowed.');\n return;\n }\n\n if (choiceIndex >= 0 && respAreaChoices[index]?.[choiceIndex]) {\n // we need to update the choice label with the new value\n respAreaChoices[index][choiceIndex].label = label;\n } else {\n // add a new choice\n const value =\n (respAreaChoices[index] &&\n max(respAreaChoices[index].map((c) => parseInt(c.value)).filter((val) => !isNaN(val)))) ||\n 0;\n\n respAreaChoices[index].push({\n label,\n value: `${value + 1}`,\n correct: false,\n });\n }\n\n this.onModelChange({ choices: cloneDeep(respAreaChoices) });\n };\n\n onRemoveChoice = (respIndex, index) => {\n const { respAreaChoices } = this.state;\n\n respAreaChoices[respIndex].splice(index, 1);\n\n this.onModelChange({ choices: cloneDeep(respAreaChoices) });\n };\n\n onSelectChoice = (respIndex, selectedIndex) => {\n const { respAreaChoices } = this.state;\n\n respAreaChoices[respIndex] = respAreaChoices[respIndex].map((choice, index) => ({\n ...choice,\n correct: index === selectedIndex,\n }));\n\n this.onModelChange({ choices: cloneDeep(respAreaChoices) });\n };\n\n render() {\n const { warning } = this.state;\n const { model, configuration, onConfigurationChanged, imageSupport, uploadSoundSupport } = this.props;\n const {\n baseInputConfiguration = {},\n choiceRationale = {},\n contentDimensions = {},\n lockChoiceOrder = {},\n maxResponseAreas,\n maxImageWidth = {},\n maxImageHeight = {},\n partialScoring = {},\n prompt = {},\n rationale = {},\n settingsPanelDisabled,\n spellCheck = {},\n teacherInstructions = {},\n template = {},\n withRubric = {},\n mathMlOptions = {},\n language = {},\n languageChoices = {},\n responseAreaInputConfiguration = {},\n } = configuration || {};\n\n const {\n choiceRationaleEnabled,\n choices,\n errors,\n extraCSSRules,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n const {\n prompt: promptError,\n rationale: rationaleError,\n responseAreasError,\n responseAreaChoicesError,\n teacherInstructions: teacherInstructionsError,\n } = errors || {};\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const renderChoiceRationale = () =>\n (Object.keys(choices) || []).map((key, index) => (\n <RationaleChoices key={key}>\n <Accordion slotProps={{ transition: { timeout: { enter: 225, exit: 195 } } }}>\n <AccordionSummary expandIcon={<ExpandMoreIcon />}>\n <StyledTypography component={'div'}>{`Rationale for response area #${index + 1}`}</StyledTypography>\n </AccordionSummary>\n\n <StyledAccordionDetails>\n {(choices[key] || []).map((choice) => (\n <React.Fragment key={choice.label}>\n <RationaleLabel\n dangerouslySetInnerHTML={{\n __html: `${rationale.label} for ${choice.label} (${choice.correct ? 'correct' : 'incorrect'})`,\n }}\n />\n <ChoiceRationaleHolder>\n <EditableHtml\n markup={choice.rationale || ''}\n spellCheck={spellCheckEnabled}\n pluginProps={getPluginProps(rationale?.inputConfiguration)}\n onChange={(c) => this.onChoiceRationaleChanged(key, { ...choice, rationale: c })}\n imageSupport={imageSupport}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n />\n </ChoiceRationaleHolder>\n </React.Fragment>\n ))}\n </StyledAccordionDetails>\n </Accordion>\n </RationaleChoices>\n ));\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const validationMessage = generateValidationMessage(configuration);\n\n const panelSettings = {\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n };\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n choiceRationaleEnabled: choiceRationale.settings && toggle(choiceRationale.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n const getPluginProps = (props = {}) => ({\n ...baseInputConfiguration,\n ...props,\n });\n\n return (\n <layout.ConfigLayout\n extraCSSRules={{\n names: ['red', 'blue'],\n rules: `\n .red {\n color: red !important;\n }\n\n .blue {\n color: blue !important;\n }\n `,\n }}\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={(model) => this.onModelChange(model)}\n onChangeConfiguration={(configuration) => onConfigurationChanged(configuration, true)}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <PromptHolder label={teacherInstructions.label}>\n <EditableHtml\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={teacherInstructionsError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration)}\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 />\n {teacherInstructionsError && <ErrorText>{teacherInstructionsError}</ErrorText>}\n </PromptHolder>\n )}\n\n {promptEnabled && (\n <PromptHolder label={prompt.label}>\n <EditableHtml\n markup={model.prompt}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n error={promptError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(prompt?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <ErrorText>{promptError}</ErrorText>}\n </PromptHolder>\n )}\n\n <FlexContainer>\n <StyledTypography component={'div'}>Define Template, Choices, and Correct Responses</StyledTypography>\n <StyledTooltip disableFocusListener disableTouchListener placement={'right'} title={validationMessage}>\n <Info fontSize={'small'} color={'primary'} />\n </StyledTooltip>\n </FlexContainer>\n\n <ResponseAreaComponent\n responseAreasError={responseAreasError}\n responseAreaChoicesError={responseAreaChoicesError}\n editableHtmlProps={{\n pluginProps: getPluginProps(template?.inputConfiguration),\n activePlugins: ALL_PLUGINS,\n toolbarOpts: { position: 'top' },\n extraCSSRules: {\n names: ['red', 'blue'],\n rules: `\n .red {\n color: red !important;\n }\n\n .blue {\n color: blue !important;\n }\n `,\n },\n responseAreaProps: {\n type: 'inline-dropdown',\n options: {\n duplicates: true,\n },\n maxResponseAreas: maxResponseAreas,\n onToolbarCloseRequest: ([node, pos], editor, closeToolbar, onCancel) => {\n this.validateResponseAreaClose(node, pos, editor, closeToolbar, onCancel);\n },\n respAreaToolbar: (nodeInfo, editor, closeToolbar) => {\n const [node, pos] = nodeInfo;\n const { respAreaChoices } = this.state;\n\n return (props) => (\n <InlineDropdownToolbar\n {...props}\n onAddChoice={this.onAddChoice}\n onRemoveChoice={(index) => this.onRemoveChoice(node.attrs.index, index)}\n onSelectChoice={(index) => this.onSelectChoice(node.attrs.index, index)}\n node={node}\n pos={pos}\n editor={editor}\n onToolbarDone={closeToolbar}\n choices={respAreaChoices[node.attrs.index]}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n baseInputConfiguration={baseInputConfiguration}\n responseAreaInputConfiguration={responseAreaInputConfiguration}\n />\n );\n },\n },\n spellCheck: spellCheckEnabled,\n markup: model.slateMarkup || '',\n onChange: this.onChange,\n imageSupport: imageSupport,\n disableImageAlignmentButtons: true,\n disabled: false,\n highlightShape: false,\n error: responseAreasError,\n uploadSoundSupport: uploadSoundSupport,\n languageCharactersProps: [{ language: 'spanish' }, { language: 'special' }],\n mathMlOptions: mathMlOptions,\n }}\n />\n\n {choiceRationaleEnabled && renderChoiceRationale()}\n\n {rationaleEnabled && (\n <PromptHolder label={rationale.label}>\n <EditableHtml\n markup={model.rationale || ''}\n onChange={this.onRationaleChanged}\n imageSupport={imageSupport}\n error={rationaleError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(rationale?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {rationaleError && <ErrorText>{rationaleError}</ErrorText>}\n </PromptHolder>\n )}\n\n <AlertDialog\n open={warning.open}\n title=\"Warning\"\n text={warning.text}\n onClose={warning.onClose}\n onConfirm={warning.onConfirm}\n disableAutoFocus={true}\n disableEnforceFocus={true}\n disableRestoreFocus={true}\n />\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default Main;\n"],"mappings":"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","ignoreList":[]}
|
package/configure/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/inline-dropdown-configure",
|
|
3
|
-
"version": "9.1.
|
|
3
|
+
"version": "9.1.5",
|
|
4
4
|
"private": true,
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "src/index.js",
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
"@mui/icons-material": "^7.3.4",
|
|
11
11
|
"@mui/material": "^7.3.4",
|
|
12
12
|
"@pie-framework/pie-configure-events": "^1.3.0",
|
|
13
|
-
"@pie-lib/config-ui": "13.0.
|
|
14
|
-
"@pie-lib/editable-html-tip-tap": "2.1.
|
|
13
|
+
"@pie-lib/config-ui": "13.0.9",
|
|
14
|
+
"@pie-lib/editable-html-tip-tap": "2.1.7",
|
|
15
15
|
"@pie-lib/math-rendering": "5.0.2",
|
|
16
16
|
"@pie-lib/render-ui": "6.1.2",
|
|
17
17
|
"classnames": "^2.2.6",
|
package/lib/index.js
CHANGED
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_piePlayerEvents","_mathRendering","_inlineDropdown","RootInlineDropdown","HTMLElement","constructor","_defineProperty2","default","_model","_session","elem","React","createElement","InlineDropdown","model","prompt","rationale","teacherInstructions","disabled","displayType","markup","mode","choices","value","feedback","language","onChange","changeSession","setLangAttribute","_root","createRoot","render","queueMicrotask","renderMath","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","session","dispatchChangedEvent","_render","m","ModelSetEvent","s","lang","slice","setAttribute","connectedCallback","disconnectedCallback","unmount","exports"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { ModelSetEvent, SessionChangedEvent } from '@pie-framework/pie-player-events';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport InlineDropdown from './inline-dropdown';\n\nexport default class RootInlineDropdown extends HTMLElement {\n constructor() {\n super();\n this._model = null;\n this._session = null;\n this._root = null;\n }\n set model(m) {\n this._model = m;\n this.dispatchEvent(\n new ModelSetEvent(this.tagName.toLowerCase(), this.session && !!this.session.value, !!this._model),\n );\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 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 _render = () => {\n if (this._model && this._session) {\n let elem = React.createElement(InlineDropdown, {\n model: this._model,\n prompt: this._model.prompt,\n rationale: this._model.rationale,\n teacherInstructions: this._model.teacherInstructions,\n disabled: this._model.disabled,\n displayType: this._model.displayType,\n markup: this._model.markup,\n mode: this._model.mode,\n choices: this._model.choices,\n value: this._session.value,\n feedback: this._model.feedback,\n language: this._model.language,\n onChange: this.changeSession,\n });\n\n this.setLangAttribute();\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(elem);\n queueMicrotask(() => {\n renderMath(this);\n });\n }\n };\n\n dispatchChangedEvent = () => {\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), this.session && !!this.session.value));\n };\n\n changeSession = (value) => {\n this.session.value = value;\n this.dispatchChangedEvent();\n this._render();\n };\n\n connectedCallback() {\n this.setAttribute('aria-label', 'Inline Dropdown Question');\n this.setAttribute('role', 'region');\n\n this._render();\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_piePlayerEvents","_mathRendering","_inlineDropdown","RootInlineDropdown","HTMLElement","constructor","_defineProperty2","default","_model","_session","elem","React","createElement","InlineDropdown","model","prompt","rationale","teacherInstructions","disabled","displayType","markup","mode","choices","value","feedback","language","onChange","changeSession","setLangAttribute","_root","createRoot","render","queueMicrotask","renderMath","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","session","dispatchChangedEvent","_render","m","ModelSetEvent","s","lang","slice","setAttribute","connectedCallback","disconnectedCallback","unmount","exports"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { ModelSetEvent, SessionChangedEvent } from '@pie-framework/pie-player-events';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport InlineDropdown from './inline-dropdown';\n\nexport default class RootInlineDropdown extends HTMLElement {\n constructor() {\n super();\n this._model = null;\n this._session = null;\n this._root = null;\n }\n set model(m) {\n this._model = m;\n this.dispatchEvent(\n new ModelSetEvent(this.tagName.toLowerCase(), this.session && !!this.session.value, !!this._model),\n );\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 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 _render = () => {\n if (this._model && this._session) {\n let elem = React.createElement(InlineDropdown, {\n model: this._model,\n prompt: this._model.prompt,\n rationale: this._model.rationale,\n teacherInstructions: this._model.teacherInstructions,\n disabled: this._model.disabled,\n displayType: this._model.displayType,\n markup: this._model.markup,\n mode: this._model.mode,\n choices: this._model.choices,\n value: this._session.value,\n feedback: this._model.feedback,\n language: this._model.language,\n onChange: this.changeSession,\n });\n\n this.setLangAttribute();\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(elem);\n queueMicrotask(() => {\n renderMath(this);\n });\n }\n };\n\n dispatchChangedEvent = () => {\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), this.session && !!this.session.value));\n };\n\n changeSession = (value) => {\n this.session.value = value;\n this.dispatchChangedEvent();\n this._render();\n };\n\n connectedCallback() {\n this.setAttribute('aria-label', 'Inline Dropdown Question');\n this.setAttribute('role', 'region');\n\n this._render();\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n this._root = null;\n }\n }\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAL,sBAAA,CAAAC,OAAA;AAEe,MAAMK,kBAAkB,SAASC,WAAW,CAAC;EAC1DC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,CAAC;IAAC,IAAAC,gBAAA,CAAAC,OAAA,mBA6BA,MAAM;MACd,IAAI,IAAI,CAACC,MAAM,IAAI,IAAI,CAACC,QAAQ,EAAE;QAChC,IAAIC,IAAI,gBAAGC,cAAK,CAACC,aAAa,CAACC,uBAAc,EAAE;UAC7CC,KAAK,EAAE,IAAI,CAACN,MAAM;UAClBO,MAAM,EAAE,IAAI,CAACP,MAAM,CAACO,MAAM;UAC1BC,SAAS,EAAE,IAAI,CAACR,MAAM,CAACQ,SAAS;UAChCC,mBAAmB,EAAE,IAAI,CAACT,MAAM,CAACS,mBAAmB;UACpDC,QAAQ,EAAE,IAAI,CAACV,MAAM,CAACU,QAAQ;UAC9BC,WAAW,EAAE,IAAI,CAACX,MAAM,CAACW,WAAW;UACpCC,MAAM,EAAE,IAAI,CAACZ,MAAM,CAACY,MAAM;UAC1BC,IAAI,EAAE,IAAI,CAACb,MAAM,CAACa,IAAI;UACtBC,OAAO,EAAE,IAAI,CAACd,MAAM,CAACc,OAAO;UAC5BC,KAAK,EAAE,IAAI,CAACd,QAAQ,CAACc,KAAK;UAC1BC,QAAQ,EAAE,IAAI,CAAChB,MAAM,CAACgB,QAAQ;UAC9BC,QAAQ,EAAE,IAAI,CAACjB,MAAM,CAACiB,QAAQ;UAC9BC,QAAQ,EAAE,IAAI,CAACC;QACjB,CAAC,CAAC;QAEF,IAAI,CAACC,gBAAgB,CAAC,CAAC;QAEvB,IAAI,CAAC,IAAI,CAACC,KAAK,EAAE;UACf,IAAI,CAACA,KAAK,GAAG,IAAAC,kBAAU,EAAC,IAAI,CAAC;QAC/B;QACA,IAAI,CAACD,KAAK,CAACE,MAAM,CAACrB,IAAI,CAAC;QACvBsB,cAAc,CAAC,MAAM;UACnB,IAAAC,yBAAU,EAAC,IAAI,CAAC;QAClB,CAAC,CAAC;MACJ;IACF,CAAC;IAAA,IAAA3B,gBAAA,CAAAC,OAAA,gCAEsB,MAAM;MAC3B,IAAI,CAAC2B,aAAa,CAAC,IAAIC,oCAAmB,CAAC,IAAI,CAACC,OAAO,CAACC,WAAW,CAAC,CAAC,EAAE,IAAI,CAACC,OAAO,IAAI,CAAC,CAAC,IAAI,CAACA,OAAO,CAACf,KAAK,CAAC,CAAC;IAC/G,CAAC;IAAA,IAAAjB,gBAAA,CAAAC,OAAA,yBAEgBgB,KAAK,IAAK;MACzB,IAAI,CAACe,OAAO,CAACf,KAAK,GAAGA,KAAK;MAC1B,IAAI,CAACgB,oBAAoB,CAAC,CAAC;MAC3B,IAAI,CAACC,OAAO,CAAC,CAAC;IAChB,CAAC;IAlEC,IAAI,CAAChC,MAAM,GAAG,IAAI;IAClB,IAAI,CAACC,QAAQ,GAAG,IAAI;IACpB,IAAI,CAACoB,KAAK,GAAG,IAAI;EACnB;EACA,IAAIf,KAAKA,CAAC2B,CAAC,EAAE;IACX,IAAI,CAACjC,MAAM,GAAGiC,CAAC;IACf,IAAI,CAACP,aAAa,CAChB,IAAIQ,8BAAa,CAAC,IAAI,CAACN,OAAO,CAACC,WAAW,CAAC,CAAC,EAAE,IAAI,CAACC,OAAO,IAAI,CAAC,CAAC,IAAI,CAACA,OAAO,CAACf,KAAK,EAAE,CAAC,CAAC,IAAI,CAACf,MAAM,CACnG,CAAC;IAED,IAAI,CAACgC,OAAO,CAAC,CAAC;EAChB;EAEA,IAAIF,OAAOA,CAACK,CAAC,EAAE;IACb,IAAI,CAAClC,QAAQ,GAAGkC,CAAC;IACjB,IAAI,CAACH,OAAO,CAAC,CAAC;EAChB;EAEA,IAAIF,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAAC7B,QAAQ;EACtB;EAEAmB,gBAAgBA,CAAA,EAAG;IACjB,MAAMH,QAAQ,GAAG,IAAI,CAACjB,MAAM,IAAI,OAAO,IAAI,CAACA,MAAM,CAACiB,QAAQ,GAAG,IAAI,CAACjB,MAAM,CAACiB,QAAQ,GAAG,EAAE;IACvF,MAAMmB,IAAI,GAAGnB,QAAQ,GAAGA,QAAQ,CAACoB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;IACnD,IAAI,CAACC,YAAY,CAAC,MAAM,EAAEF,IAAI,CAAC;EACjC;EA0CAG,iBAAiBA,CAAA,EAAG;IAClB,IAAI,CAACD,YAAY,CAAC,YAAY,EAAE,0BAA0B,CAAC;IAC3D,IAAI,CAACA,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC;IAEnC,IAAI,CAACN,OAAO,CAAC,CAAC;EAChB;EAEAQ,oBAAoBA,CAAA,EAAG;IACrB,IAAI,IAAI,CAACnB,KAAK,EAAE;MACd,IAAI,CAACA,KAAK,CAACoB,OAAO,CAAC,CAAC;MACpB,IAAI,CAACpB,KAAK,GAAG,IAAI;IACnB;EACF;AACF;AAACqB,OAAA,CAAA3C,OAAA,GAAAJ,kBAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
7
|
-
"version": "10.1.
|
|
7
|
+
"version": "10.1.5",
|
|
8
8
|
"description": "",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"postpublish": "../../scripts/postpublish"
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"@mui/material": "^7.3.4",
|
|
17
17
|
"@pie-framework/pie-player-events": "^0.1.0",
|
|
18
18
|
"@pie-lib/correct-answer-toggle": "4.0.4",
|
|
19
|
-
"@pie-lib/mask-markup": "3.0.
|
|
19
|
+
"@pie-lib/mask-markup": "3.0.9",
|
|
20
20
|
"@pie-lib/math-rendering": "5.0.2",
|
|
21
21
|
"@pie-lib/render-ui": "6.1.2",
|
|
22
22
|
"lodash-es": "^4.17.23",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
},
|
|
27
27
|
"author": "",
|
|
28
28
|
"license": "ISC",
|
|
29
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "f898c2bf045f66d34e66e8bb201950bfd00b2f0f",
|
|
30
30
|
"main": "lib/index.js",
|
|
31
31
|
"module": "src/index.js"
|
|
32
32
|
}
|