@pie-element/placement-ordering 12.3.4-next.0 → 13.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/design.jsx"],"names":["log","Panel","settings","toggle","radio","dropdown","getSingularAndPlural","label","pluralize","isPlural","singularLabel","pluralLabel","singular","Design","props","applyUpdate","modelFn","model","onModelChanged","update","changeHandler","modelPath","valuePath","value","v","onPromptChange","onTeacherInstructionsChange","onRationaleChange","onChoiceAreaLabelChange","onAnswerAreaLabelChange","onFeedbackChange","onChoiceEditorChange","choices","correctResponse","feedback","feedbackEnabled","classes","imageSupport","uploadSoundSupport","configuration","onConfigurationChanged","baseInputConfiguration","choiceLabel","contentDimensions","prompt","placementArea","maxImageWidth","maxImageHeight","numberedGuides","orientation","partialScoring","rationale","removeTilesAfterPlacing","settingsPanelDisabled","studentInstructions","spellCheck","scoringType","targetLabel","teacherInstructions","withRubric","mathMlOptions","language","languageChoices","choiceLabelEnabled","errors","extraCSSRules","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","promptError","rationaleError","teacherInstructionsError","validationMessage","defaultImageMaxWidth","defaultImageMaxHeight","maxChoicesImageWidth","choicesWithPlacementArea","choicesWithoutPlacementArea","maxChoicesImageHeight","toolbarOpts","position","panelSettings","enabled","options","panelProperties","studentInstructionsEnabled","rubricEnabled","getPluginProps","Settings","Properties","promptHolder","inputConfiguration","errorText","choicesWrapper","display","inlineFlexContainer","tooltip","marginLeft","row","autoWidthToolbar","React","Component","PropTypes","object","defaultProps","propTypes","isRequired","func","theme","width","paddingTop","spacing","unit","marginBottom","gridAutoFlow","gridAutoColumns","gridGap","marginTop","fontSize","typography","whiteSpace","maxWidth","color","palette","error","main"],"mappings":"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","sourcesContent":["import { FeedbackConfig, FormSection, InputContainer, settings, layout } from '@pie-lib/config-ui';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { withStyles } from '@material-ui/core/styles';\nimport { withDragContext } from '@pie-lib/drag';\nimport Info from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport debug from 'debug';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { get, set } from 'nested-property';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport pluralize from 'pluralize';\n\nimport ChoiceEditor from './choice-editor';\nimport { generateValidationMessage } from './utils';\n\nconst log = debug('@pie-element:placement-ordering:design');\nconst { Panel, toggle, radio, dropdown } = settings;\n\nconst getSingularAndPlural = (label) =>\n !pluralize.isPlural(label)\n ? {\n singularLabel: label,\n pluralLabel: pluralize(label),\n }\n : {\n singularLabel: pluralize.singular(label),\n pluralLabel: label,\n };\n\nexport class Design extends React.Component {\n static propTypes = {\n uploadSoundSupport: PropTypes.object,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n\n this.applyUpdate = (modelFn) => {\n const { model, onModelChanged } = this.props;\n const update = modelFn(cloneDeep(model));\n\n onModelChanged(update);\n };\n\n this.changeHandler = (modelPath, valuePath) => {\n return (value) => {\n log('[changeHandler] value: ', value);\n\n const v = valuePath ? get(value, valuePath) : value;\n\n this.applyUpdate((model) => {\n set(model, modelPath, v);\n\n return model;\n });\n };\n };\n\n this.onPromptChange = this.changeHandler('prompt');\n\n this.onTeacherInstructionsChange = this.changeHandler('teacherInstructions');\n\n this.onRationaleChange = this.changeHandler('rationale');\n\n this.onChoiceAreaLabelChange = this.changeHandler('choiceLabel', 'target.value');\n\n this.onAnswerAreaLabelChange = this.changeHandler('targetLabel', 'target.value');\n\n this.onFeedbackChange = this.changeHandler('feedback');\n\n this.onChoiceEditorChange = (choices, correctResponse) => {\n const { model, onModelChanged } = this.props;\n const update = cloneDeep(model);\n\n update.choices = choices;\n update.correctResponse = correctResponse;\n onModelChanged(update);\n };\n }\n\n componentDidMount() {\n const { model, onModelChanged } = this.props || {};\n const { feedback } = model || {};\n const update = cloneDeep(model);\n\n // requirement made in PD-2182\n if (!feedback) {\n update.feedbackEnabled = false;\n onModelChanged(update);\n }\n }\n\n render() {\n const { model, classes, imageSupport, uploadSoundSupport, onModelChanged, configuration, onConfigurationChanged } =\n this.props;\n const {\n baseInputConfiguration = {},\n choiceLabel = {},\n choices = {},\n contentDimensions = {},\n feedback = {},\n prompt = {},\n placementArea = {},\n maxImageWidth = {},\n maxImageHeight = {},\n numberedGuides = {},\n orientation = {},\n partialScoring = {},\n rationale = {},\n removeTilesAfterPlacing = {},\n settingsPanelDisabled,\n studentInstructions = {},\n spellCheck = {},\n scoringType = {},\n targetLabel = {},\n teacherInstructions = {},\n withRubric = {},\n mathMlOptions = {},\n language = {},\n languageChoices = {},\n } = configuration || {};\n const {\n choiceLabelEnabled,\n errors,\n extraCSSRules,\n feedbackEnabled,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n const {\n prompt: promptError,\n rationale: rationaleError,\n teacherInstructions: teacherInstructionsError,\n } = errors || {};\n\n const validationMessage = generateValidationMessage();\n\n const { singularLabel = '', pluralLabel = '' } = (choices?.label && getSingularAndPlural(choices.label)) || {};\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n const maxChoicesImageWidth =\n maxImageWidth && model.placementArea\n ? maxImageWidth.choicesWithPlacementArea\n : maxImageWidth.choicesWithoutPlacementArea || defaultImageMaxWidth;\n const maxChoicesImageHeight = (maxImageHeight && maxImageHeight.choices) || defaultImageMaxHeight;\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const panelSettings = {\n choiceLabelEnabled: choiceLabel.settings && toggle(choiceLabel.label),\n placementArea: placementArea.settings && toggle(placementArea.label),\n numberedGuides: numberedGuides.settings && model.placementArea && toggle(numberedGuides.label),\n orientation: orientation.settings && radio(orientation.label, ['vertical', 'horizontal']),\n removeTilesAfterPlacing: removeTilesAfterPlacing.settings && toggle(removeTilesAfterPlacing.label),\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n const getPluginProps = (props = {}) => ({\n ...baseInputConfiguration,\n ...props,\n });\n\n return (\n <layout.ConfigLayout\n extraCSSRules={extraCSSRules}\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={(model) => onModelChanged(model)}\n onChangeConfiguration={(configuration) => onConfigurationChanged(configuration, true)}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChange}\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 && <div className={classes.errorText}>{teacherInstructionsError}</div>}\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt && prompt.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChange}\n imageSupport={imageSupport}\n error={promptError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(prompt?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.prompt}\n maxImageHeight={maxImageHeight && maxImageHeight.prompt}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <div className={classes.errorText}>{promptError}</div>}\n </InputContainer>\n )}\n\n <FormSection\n className={classes.choicesWrapper}\n label={`Define ${pluralLabel}`}\n labelExtraStyle={{ display: 'inline-flex' }}\n >\n <div className={classes.inlineFlexContainer}>\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '8px' }} />\n </Tooltip>\n </div>\n\n <div className={classes.row}>\n {choiceLabelEnabled && (\n <InputContainer\n label={choiceLabel && choiceLabel.label && `${singularLabel} label`}\n className={classes.promptHolder}\n >\n <EditableHtml\n {...(model.placementArea && { autoWidthToolbar: true })}\n className={classes.prompt}\n markup={model.choiceLabel}\n onChange={this.onChoiceAreaLabelChange}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(choiceLabel?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxChoicesImageWidth}\n maxImageHeight={maxChoicesImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n {targetLabel.settings && model.placementArea && (\n <InputContainer\n label={targetLabel && targetLabel.label && targetLabel.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n autoWidthToolbar\n className={classes.prompt}\n markup={model.targetLabel}\n onChange={this.onAnswerAreaLabelChange}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.choicesWithPlacementArea) || defaultImageMaxWidth}\n maxImageHeight={maxChoicesImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n </div>\n\n {choices.settings && (\n <ChoiceEditor\n correctResponse={model.correctResponse}\n choices={model.choices}\n onChange={this.onChoiceEditorChange}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(choices?.inputConfiguration)}\n choicesLabel={choices.label}\n placementArea={model.placementArea}\n singularChoiceLabel={singularLabel}\n pluralChoiceLabel={pluralLabel}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxChoicesImageWidth}\n maxImageHeight={maxChoicesImageHeight}\n errors={errors || {}}\n mathMlOptions={mathMlOptions}\n />\n )}\n </FormSection>\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChange}\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 && <div className={classes.errorText}>{rationaleError}</div>}\n </InputContainer>\n )}\n\n {feedbackEnabled && (\n <FeedbackConfig\n feedback={model.feedback}\n onChange={this.onFeedbackChange}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n />\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nDesign.defaultProps = {\n onModelChanged: () => {},\n onConfigurationChanged: () => {},\n};\n\nDesign.propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n onModelChanged: PropTypes.func,\n onConfigurationChanged: PropTypes.func,\n classes: PropTypes.object.isRequired,\n imageSupport: PropTypes.object,\n};\n\nexport default withDragContext(\n withStyles((theme) => ({\n promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n row: {\n display: 'grid',\n gridAutoFlow: 'column',\n gridAutoColumns: '1fr',\n gridGap: '8px',\n },\n choicesWrapper: {\n marginTop: 0,\n marginBottom: theme.spacing.unit * 2.5,\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n inlineFlexContainer: {\n display: 'inline-flex',\n position: 'absolute',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n }))(Design),\n);\n"],"file":"design.js"}
1
+ {"version":3,"file":"design.js","names":["_react","_interopRequireDefault","require","_propTypes","_debug","_cloneDeep","_nestedProperty","_pluralize","_isEmpty","_styles","_Info","_Tooltip","_configUi","_editableHtml","_drag","_choiceEditor","_utils","log","debug","Panel","toggle","radio","dropdown","settings","getSingularAndPlural","label","pluralize","isPlural","singularLabel","pluralLabel","singular","StyledInputContainer","styled","InputContainer","theme","width","paddingTop","spacing","marginBottom","StyledRow","display","gridAutoFlow","gridAutoColumns","gridGap","StyledChoicesWrapper","FormSection","marginTop","InlineFlexContainer","position","ErrorText","fontSize","typography","color","palette","error","main","Design","React","Component","constructor","props","_defineProperty2","default","event","ordering","active","over","target","data","current","source","rawFrom","tiles","find","t","id","type","rawTo","from","index","normalizeIndex","to","response","choices","updatedChoices","updateResponseOrChoices","onChoiceEditorChange","applyUpdate","modelFn","model","onModelChanged","update","cloneDeep","changeHandler","modelPath","valuePath","value","v","get","set","onPromptChange","onTeacherInstructionsChange","onRationaleChange","onChoiceAreaLabelChange","onAnswerAreaLabelChange","onFeedbackChange","correctResponse","componentDidMount","feedback","feedbackEnabled","render","imageSupport","uploadSoundSupport","configuration","onConfigurationChanged","baseInputConfiguration","choiceLabel","contentDimensions","prompt","placementArea","maxImageWidth","maxImageHeight","numberedGuides","orientation","partialScoring","rationale","removeTilesAfterPlacing","settingsPanelDisabled","studentInstructions","spellCheck","scoringType","targetLabel","teacherInstructions","withRubric","mathMlOptions","language","languageChoices","choiceLabelEnabled","errors","extraCSSRules","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","promptError","rationaleError","teacherInstructionsError","isEmpty","Array","length","buildTiles","validationMessage","generateValidationMessage","defaultImageMaxWidth","defaultImageMaxHeight","maxChoicesImageWidth","choicesWithPlacementArea","choicesWithoutPlacementArea","maxChoicesImageHeight","toolbarOpts","panelSettings","enabled","options","panelProperties","studentInstructionsEnabled","rubricEnabled","getPluginProps","createElement","DragProvider","onDragEnd","layout","ConfigLayout","dimensions","hideSettings","onChangeModel","onChangeConfiguration","groups","Settings","Properties","className","markup","onChange","nonEmpty","pluginProps","inputConfiguration","languageCharactersProps","labelExtraStyle","slotProps","tooltip","sx","whiteSpace","maxWidth","disableFocusListener","disableTouchListener","placement","title","style","marginLeft","_extends2","autoWidthToolbar","choicesLabel","singularChoiceLabel","pluralChoiceLabel","FeedbackConfig","exports","PropTypes","object","defaultProps","propTypes","isRequired","func","_default"],"sources":["../src/design.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { get, set } from 'nested-property';\nimport pluralize from 'pluralize';\nimport isEmpty from 'lodash/isEmpty';\nimport { styled } from '@mui/material/styles';\nimport Info from '@mui/icons-material/Info';\nimport Tooltip from '@mui/material/Tooltip';\n\nimport { FeedbackConfig, FormSection, InputContainer, settings, layout } from '@pie-lib/config-ui';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { DragProvider } from '@pie-lib/drag';\n\nimport ChoiceEditor from './choice-editor';\nimport { generateValidationMessage, buildTiles, updateResponseOrChoices, normalizeIndex } from './utils';\n\nconst log = debug('@pie-element:placement-ordering:design');\nconst { Panel, toggle, radio, dropdown } = settings;\n\nconst getSingularAndPlural = (label) =>\n !pluralize.isPlural(label)\n ? {\n singularLabel: label,\n pluralLabel: pluralize(label),\n }\n : {\n singularLabel: pluralize.singular(label),\n pluralLabel: label,\n };\n\nconst StyledInputContainer = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n}));\n\nconst StyledRow = styled('div')({\n display: 'grid',\n gridAutoFlow: 'column',\n gridAutoColumns: '1fr',\n gridGap: '8px',\n});\n\nconst StyledChoicesWrapper = styled(FormSection)(({ theme }) => ({\n marginTop: 0,\n marginBottom: theme.spacing(2.5),\n}));\n\nconst InlineFlexContainer = styled('div')({\n display: 'inline-flex',\n position: 'absolute',\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\nexport class Design extends React.Component {\n static propTypes = {\n uploadSoundSupport: PropTypes.object,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n\n this.applyUpdate = (modelFn) => {\n const { model, onModelChanged } = this.props;\n const update = modelFn(cloneDeep(model));\n\n onModelChanged(update);\n };\n\n this.changeHandler = (modelPath, valuePath) => {\n return (value) => {\n log('[changeHandler] value: ', value);\n\n const v = valuePath ? get(value, valuePath) : value;\n\n this.applyUpdate((model) => {\n set(model, modelPath, v);\n\n return model;\n });\n };\n };\n\n this.onPromptChange = this.changeHandler('prompt');\n\n this.onTeacherInstructionsChange = this.changeHandler('teacherInstructions');\n\n this.onRationaleChange = this.changeHandler('rationale');\n\n this.onChoiceAreaLabelChange = this.changeHandler('choiceLabel', 'target.value');\n\n this.onAnswerAreaLabelChange = this.changeHandler('targetLabel', 'target.value');\n\n this.onFeedbackChange = this.changeHandler('feedback');\n\n this.onChoiceEditorChange = (choices, correctResponse) => {\n const { model, onModelChanged } = this.props;\n const update = cloneDeep(model);\n\n update.choices = choices;\n update.correctResponse = correctResponse;\n onModelChanged(update);\n };\n }\n\n componentDidMount() {\n const { model, onModelChanged } = this.props || {};\n const { feedback } = model || {};\n const update = cloneDeep(model);\n\n // requirement made in PD-2182\n if (!feedback) {\n update.feedbackEnabled = false;\n onModelChanged(update);\n }\n }\n\n onDragEnd = (event, ordering) => {\n const { active, over } = event;\n\n if (!over || !active) {\n return;\n }\n\n const target = over.data.current;\n const source = active.data.current;\n const rawFrom = ordering.tiles.find(t => t.id === source.id && t.type === source.type);\n const rawTo = target;\n\n const from = {\n ...rawFrom,\n index: normalizeIndex(rawFrom, ordering)\n };\n const to = {\n ...rawTo,\n index: normalizeIndex(rawTo, ordering)\n };\n\n const { response, choices: updatedChoices } = updateResponseOrChoices(\n ordering.response,\n ordering.choices,\n from,\n to\n );\n\n this.onChoiceEditorChange(updatedChoices, response);\n };\n\n render() {\n const { model, imageSupport, uploadSoundSupport, onModelChanged, configuration, onConfigurationChanged } =\n this.props;\n const {\n baseInputConfiguration = {},\n choiceLabel = {},\n choices = {},\n contentDimensions = {},\n feedback = {},\n prompt = {},\n placementArea = {},\n maxImageWidth = {},\n maxImageHeight = {},\n numberedGuides = {},\n orientation = {},\n partialScoring = {},\n rationale = {},\n removeTilesAfterPlacing = {},\n settingsPanelDisabled,\n studentInstructions = {},\n spellCheck = {},\n scoringType = {},\n targetLabel = {},\n teacherInstructions = {},\n withRubric = {},\n mathMlOptions = {},\n language = {},\n languageChoices = {},\n } = configuration || {};\n const {\n choiceLabelEnabled,\n errors,\n extraCSSRules,\n feedbackEnabled,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n correctResponse,\n } = model || {};\n const {\n prompt: promptError,\n rationale: rationaleError,\n teacherInstructions: teacherInstructionsError,\n } = errors || {};\n\n const ordering = {\n choices: model.choices,\n response: !correctResponse || isEmpty(correctResponse) ? new Array(model.choices.length) : correctResponse,\n tiles: buildTiles(model.choices, correctResponse),\n };\n\n const validationMessage = generateValidationMessage();\n\n const { singularLabel = '', pluralLabel = '' } = (choices?.label && getSingularAndPlural(choices.label)) || {};\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n const maxChoicesImageWidth =\n maxImageWidth && model.placementArea\n ? maxImageWidth.choicesWithPlacementArea\n : maxImageWidth.choicesWithoutPlacementArea || defaultImageMaxWidth;\n const maxChoicesImageHeight = (maxImageHeight && maxImageHeight.choices) || defaultImageMaxHeight;\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const panelSettings = {\n choiceLabelEnabled: choiceLabel.settings && toggle(choiceLabel.label),\n placementArea: placementArea.settings && toggle(placementArea.label),\n numberedGuides: numberedGuides.settings && model.placementArea && toggle(numberedGuides.label),\n orientation: orientation.settings && radio(orientation.label, ['vertical', 'horizontal']),\n removeTilesAfterPlacing: removeTilesAfterPlacing.settings && toggle(removeTilesAfterPlacing.label),\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n const getPluginProps = (props = {}) => ({\n ...baseInputConfiguration,\n ...props,\n });\n\n return (\n <DragProvider onDragEnd={(event) => this.onDragEnd(event, ordering)}>\n <layout.ConfigLayout\n extraCSSRules={extraCSSRules}\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={(model) => onModelChanged(model)}\n onChangeConfiguration={(configuration) => onConfigurationChanged(configuration, true)}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <StyledInputContainer label={teacherInstructions.label}>\n <EditableHtml\n className=\"prompt\"\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChange}\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 && <div className=\"errorText\">{teacherInstructionsError}</div>}\n </StyledInputContainer>\n )}\n\n {promptEnabled && (\n <StyledInputContainer label={prompt && prompt.label}>\n <EditableHtml\n className=\"prompt\"\n markup={model.prompt}\n onChange={this.onPromptChange}\n imageSupport={imageSupport}\n error={promptError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(prompt?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.prompt}\n maxImageHeight={maxImageHeight && maxImageHeight.prompt}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <div className=\"errorText\">{promptError}</div>}\n </StyledInputContainer>\n )}\n\n <StyledChoicesWrapper\n label={`Define ${pluralLabel}`}\n labelExtraStyle={{ display: 'inline-flex' }}\n >\n <InlineFlexContainer>\n <Tooltip\n slotProps={\n {\n tooltip: {\n sx: {\n fontSize: 14,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n },\n }\n }\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '8px' }} />\n </Tooltip>\n </InlineFlexContainer>\n\n <StyledRow>\n {choiceLabelEnabled && (\n <StyledInputContainer\n label={choiceLabel && choiceLabel.label && `${singularLabel} label`}\n >\n <EditableHtml\n {...(model.placementArea && { autoWidthToolbar: true })}\n className=\"prompt\"\n markup={model.choiceLabel}\n onChange={this.onChoiceAreaLabelChange}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(choiceLabel?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxChoicesImageWidth}\n maxImageHeight={maxChoicesImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </StyledInputContainer>\n )}\n\n {targetLabel.settings && model.placementArea && (\n <StyledInputContainer\n label={targetLabel && targetLabel.label && targetLabel.label}\n >\n <EditableHtml\n autoWidthToolbar\n className=\"prompt\"\n markup={model.targetLabel}\n onChange={this.onAnswerAreaLabelChange}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.choicesWithPlacementArea) || defaultImageMaxWidth}\n maxImageHeight={maxChoicesImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </StyledInputContainer>\n )}\n </StyledRow>\n\n {choices.settings && (\n <ChoiceEditor\n correctResponse={correctResponse}\n choices={model.choices}\n onChange={this.onChoiceEditorChange}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(choices?.inputConfiguration)}\n choicesLabel={choices.label}\n placementArea={model.placementArea}\n singularChoiceLabel={singularLabel}\n pluralChoiceLabel={pluralLabel}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxChoicesImageWidth}\n maxImageHeight={maxChoicesImageHeight}\n errors={errors || {}}\n mathMlOptions={mathMlOptions}\n ordering={ordering}\n />\n )}\n </StyledChoicesWrapper>\n\n {rationaleEnabled && (\n <StyledInputContainer label={rationale.label}>\n <EditableHtml\n className=\"prompt\"\n markup={model.rationale || ''}\n onChange={this.onRationaleChange}\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 </StyledInputContainer>\n )}\n\n {feedbackEnabled && (\n <FeedbackConfig\n feedback={model.feedback}\n onChange={this.onFeedbackChange}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n />\n )}\n </layout.ConfigLayout>\n </DragProvider>\n );\n }\n}\n\nDesign.defaultProps = {\n onModelChanged: () => { },\n onConfigurationChanged: () => { },\n};\n\nDesign.propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n onModelChanged: PropTypes.func,\n onConfigurationChanged: PropTypes.func,\n imageSupport: PropTypes.object,\n};\n\nexport default Design;\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,UAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,eAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,QAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AACA,IAAAQ,KAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,QAAA,GAAAV,sBAAA,CAAAC,OAAA;AAEA,IAAAU,SAAA,GAAAV,OAAA;AACA,IAAAW,aAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,KAAA,GAAAZ,OAAA;AAEA,IAAAa,aAAA,GAAAd,sBAAA,CAAAC,OAAA;AACA,IAAAc,MAAA,GAAAd,OAAA;AAEA,MAAMe,GAAG,GAAG,IAAAC,cAAK,EAAC,wCAAwC,CAAC;AAC3D,MAAM;EAAEC,KAAK;EAAEC,MAAM;EAAEC,KAAK;EAAEC;AAAS,CAAC,GAAGC,kBAAQ;AAEnD,MAAMC,oBAAoB,GAAIC,KAAK,IACjC,CAACC,kBAAS,CAACC,QAAQ,CAACF,KAAK,CAAC,GACtB;EACAG,aAAa,EAAEH,KAAK;EACpBI,WAAW,EAAE,IAAAH,kBAAS,EAACD,KAAK;AAC9B,CAAC,GACC;EACAG,aAAa,EAAEF,kBAAS,CAACI,QAAQ,CAACL,KAAK,CAAC;EACxCI,WAAW,EAAEJ;AACf,CAAC;AAEL,MAAMM,oBAAoB,GAAG,IAAAC,cAAM,EAACC,wBAAc,CAAC,CAAC,CAAC;EAAEC;AAAM,CAAC,MAAM;EAClEC,KAAK,EAAE,MAAM;EACbC,UAAU,EAAEF,KAAK,CAACG,OAAO,CAAC,CAAC,CAAC;EAC5BC,YAAY,EAAEJ,KAAK,CAACG,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEH,MAAME,SAAS,GAAG,IAAAP,cAAM,EAAC,KAAK,CAAC,CAAC;EAC9BQ,OAAO,EAAE,MAAM;EACfC,YAAY,EAAE,QAAQ;EACtBC,eAAe,EAAE,KAAK;EACtBC,OAAO,EAAE;AACX,CAAC,CAAC;AAEF,MAAMC,oBAAoB,GAAG,IAAAZ,cAAM,EAACa,qBAAW,CAAC,CAAC,CAAC;EAAEX;AAAM,CAAC,MAAM;EAC/DY,SAAS,EAAE,CAAC;EACZR,YAAY,EAAEJ,KAAK,CAACG,OAAO,CAAC,GAAG;AACjC,CAAC,CAAC,CAAC;AAEH,MAAMU,mBAAmB,GAAG,IAAAf,cAAM,EAAC,KAAK,CAAC,CAAC;EACxCQ,OAAO,EAAE,aAAa;EACtBQ,QAAQ,EAAE;AACZ,CAAC,CAAC;AAEF,MAAMC,SAAS,GAAG,IAAAjB,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEE;AAAM,CAAC,MAAM;EAC9CgB,QAAQ,EAAEhB,KAAK,CAACiB,UAAU,CAACD,QAAQ,GAAG,CAAC;EACvCE,KAAK,EAAElB,KAAK,CAACmB,OAAO,CAACC,KAAK,CAACC,IAAI;EAC/BnB,UAAU,EAAEF,KAAK,CAACG,OAAO,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEI,MAAMmB,MAAM,SAASC,cAAK,CAACC,SAAS,CAAC;EAO1CC,WAAWA,CAACC,KAAK,EAAE;IACjB,KAAK,CAACA,KAAK,CAAC;IAAC,IAAAC,gBAAA,CAAAC,OAAA,qBAyDH,CAACC,KAAK,EAAEC,QAAQ,KAAK;MAC/B,MAAM;QAAEC,MAAM;QAAEC;MAAK,CAAC,GAAGH,KAAK;MAE9B,IAAI,CAACG,IAAI,IAAI,CAACD,MAAM,EAAE;QACpB;MACF;MAEA,MAAME,MAAM,GAAGD,IAAI,CAACE,IAAI,CAACC,OAAO;MAChC,MAAMC,MAAM,GAAGL,MAAM,CAACG,IAAI,CAACC,OAAO;MAClC,MAAME,OAAO,GAAGP,QAAQ,CAACQ,KAAK,CAACC,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,EAAE,KAAKL,MAAM,CAACK,EAAE,IAAID,CAAC,CAACE,IAAI,KAAKN,MAAM,CAACM,IAAI,CAAC;MACtF,MAAMC,KAAK,GAAGV,MAAM;MAEpB,MAAMW,IAAI,GAAG;QACZ,GAAGP,OAAO;QACTQ,KAAK,EAAE,IAAAC,qBAAc,EAACT,OAAO,EAAEP,QAAQ;MACzC,CAAC;MACD,MAAMiB,EAAE,GAAG;QACT,GAAGJ,KAAK;QACRE,KAAK,EAAE,IAAAC,qBAAc,EAACH,KAAK,EAAEb,QAAQ;MACvC,CAAC;MAED,MAAM;QAAEkB,QAAQ;QAAEC,OAAO,EAAEC;MAAe,CAAC,GAAG,IAAAC,8BAAuB,EACnErB,QAAQ,CAACkB,QAAQ,EACjBlB,QAAQ,CAACmB,OAAO,EAChBL,IAAI,EACJG,EACF,CAAC;MAED,IAAI,CAACK,oBAAoB,CAACF,cAAc,EAAEF,QAAQ,CAAC;IACrD,CAAC;IApFC,IAAI,CAACK,WAAW,GAAIC,OAAO,IAAK;MAC9B,MAAM;QAAEC,KAAK;QAAEC;MAAe,CAAC,GAAG,IAAI,CAAC9B,KAAK;MAC5C,MAAM+B,MAAM,GAAGH,OAAO,CAAC,IAAAI,kBAAS,EAACH,KAAK,CAAC,CAAC;MAExCC,cAAc,CAACC,MAAM,CAAC;IACxB,CAAC;IAED,IAAI,CAACE,aAAa,GAAG,CAACC,SAAS,EAAEC,SAAS,KAAK;MAC7C,OAAQC,KAAK,IAAK;QAChB/E,GAAG,CAAC,yBAAyB,EAAE+E,KAAK,CAAC;QAErC,MAAMC,CAAC,GAAGF,SAAS,GAAG,IAAAG,mBAAG,EAACF,KAAK,EAAED,SAAS,CAAC,GAAGC,KAAK;QAEnD,IAAI,CAACT,WAAW,CAAEE,KAAK,IAAK;UAC1B,IAAAU,mBAAG,EAACV,KAAK,EAAEK,SAAS,EAAEG,CAAC,CAAC;UAExB,OAAOR,KAAK;QACd,CAAC,CAAC;MACJ,CAAC;IACH,CAAC;IAED,IAAI,CAACW,cAAc,GAAG,IAAI,CAACP,aAAa,CAAC,QAAQ,CAAC;IAElD,IAAI,CAACQ,2BAA2B,GAAG,IAAI,CAACR,aAAa,CAAC,qBAAqB,CAAC;IAE5E,IAAI,CAACS,iBAAiB,GAAG,IAAI,CAACT,aAAa,CAAC,WAAW,CAAC;IAExD,IAAI,CAACU,uBAAuB,GAAG,IAAI,CAACV,aAAa,CAAC,aAAa,EAAE,cAAc,CAAC;IAEhF,IAAI,CAACW,uBAAuB,GAAG,IAAI,CAACX,aAAa,CAAC,aAAa,EAAE,cAAc,CAAC;IAEhF,IAAI,CAACY,gBAAgB,GAAG,IAAI,CAACZ,aAAa,CAAC,UAAU,CAAC;IAEtD,IAAI,CAACP,oBAAoB,GAAG,CAACH,OAAO,EAAEuB,eAAe,KAAK;MACxD,MAAM;QAAEjB,KAAK;QAAEC;MAAe,CAAC,GAAG,IAAI,CAAC9B,KAAK;MAC5C,MAAM+B,MAAM,GAAG,IAAAC,kBAAS,EAACH,KAAK,CAAC;MAE/BE,MAAM,CAACR,OAAO,GAAGA,OAAO;MACxBQ,MAAM,CAACe,eAAe,GAAGA,eAAe;MACxChB,cAAc,CAACC,MAAM,CAAC;IACxB,CAAC;EACH;EAEAgB,iBAAiBA,CAAA,EAAG;IAClB,MAAM;MAAElB,KAAK;MAAEC;IAAe,CAAC,GAAG,IAAI,CAAC9B,KAAK,IAAI,CAAC,CAAC;IAClD,MAAM;MAAEgD;IAAS,CAAC,GAAGnB,KAAK,IAAI,CAAC,CAAC;IAChC,MAAME,MAAM,GAAG,IAAAC,kBAAS,EAACH,KAAK,CAAC;;IAE/B;IACA,IAAI,CAACmB,QAAQ,EAAE;MACbjB,MAAM,CAACkB,eAAe,GAAG,KAAK;MAC9BnB,cAAc,CAACC,MAAM,CAAC;IACxB;EACF;EAiCAmB,MAAMA,CAAA,EAAG;IACP,MAAM;MAAErB,KAAK;MAAEsB,YAAY;MAAEC,kBAAkB;MAAEtB,cAAc;MAAEuB,aAAa;MAAEC;IAAuB,CAAC,GACtG,IAAI,CAACtD,KAAK;IACZ,MAAM;MACJuD,sBAAsB,GAAG,CAAC,CAAC;MAC3BC,WAAW,GAAG,CAAC,CAAC;MAChBjC,OAAO,GAAG,CAAC,CAAC;MACZkC,iBAAiB,GAAG,CAAC,CAAC;MACtBT,QAAQ,GAAG,CAAC,CAAC;MACbU,MAAM,GAAG,CAAC,CAAC;MACXC,aAAa,GAAG,CAAC,CAAC;MAClBC,aAAa,GAAG,CAAC,CAAC;MAClBC,cAAc,GAAG,CAAC,CAAC;MACnBC,cAAc,GAAG,CAAC,CAAC;MACnBC,WAAW,GAAG,CAAC,CAAC;MAChBC,cAAc,GAAG,CAAC,CAAC;MACnBC,SAAS,GAAG,CAAC,CAAC;MACdC,uBAAuB,GAAG,CAAC,CAAC;MAC5BC,qBAAqB;MACrBC,mBAAmB,GAAG,CAAC,CAAC;MACxBC,UAAU,GAAG,CAAC,CAAC;MACfC,WAAW,GAAG,CAAC,CAAC;MAChBC,WAAW,GAAG,CAAC,CAAC;MAChBC,mBAAmB,GAAG,CAAC,CAAC;MACxBC,UAAU,GAAG,CAAC,CAAC;MACfC,aAAa,GAAG,CAAC,CAAC;MAClBC,QAAQ,GAAG,CAAC,CAAC;MACbC,eAAe,GAAG,CAAC;IACrB,CAAC,GAAGvB,aAAa,IAAI,CAAC,CAAC;IACvB,MAAM;MACJwB,kBAAkB;MAClBC,MAAM;MACNC,aAAa;MACb9B,eAAe;MACf+B,aAAa;MACbC,gBAAgB;MAChBC,iBAAiB;MACjBC,0BAA0B;MAC1BC,qBAAqB;MACrBtC;IACF,CAAC,GAAGjB,KAAK,IAAI,CAAC,CAAC;IACf,MAAM;MACJ6B,MAAM,EAAE2B,WAAW;MACnBpB,SAAS,EAAEqB,cAAc;MACzBd,mBAAmB,EAAEe;IACvB,CAAC,GAAGT,MAAM,IAAI,CAAC,CAAC;IAEf,MAAM1E,QAAQ,GAAG;MAChBmB,OAAO,EAAEM,KAAK,CAACN,OAAO;MACtBD,QAAQ,EAAE,CAACwB,eAAe,IAAI,IAAA0C,gBAAO,EAAC1C,eAAe,CAAC,GAAG,IAAI2C,KAAK,CAAC5D,KAAK,CAACN,OAAO,CAACmE,MAAM,CAAC,GAAG5C,eAAe;MAC1GlC,KAAK,EAAE,IAAA+E,iBAAU,EAAC9D,KAAK,CAACN,OAAO,EAAEuB,eAAe;IAClD,CAAC;IAED,MAAM8C,iBAAiB,GAAG,IAAAC,gCAAyB,EAAC,CAAC;IAErD,MAAM;MAAE7H,aAAa,GAAG,EAAE;MAAEC,WAAW,GAAG;IAAG,CAAC,GAAIsD,OAAO,EAAE1D,KAAK,IAAID,oBAAoB,CAAC2D,OAAO,CAAC1D,KAAK,CAAC,IAAK,CAAC,CAAC;IAE9G,MAAMiI,oBAAoB,GAAGlC,aAAa,IAAIA,aAAa,CAACF,MAAM;IAClE,MAAMqC,qBAAqB,GAAGlC,cAAc,IAAIA,cAAc,CAACH,MAAM;IACrE,MAAMsC,oBAAoB,GACxBpC,aAAa,IAAI/B,KAAK,CAAC8B,aAAa,GAChCC,aAAa,CAACqC,wBAAwB,GACtCrC,aAAa,CAACsC,2BAA2B,IAAIJ,oBAAoB;IACvE,MAAMK,qBAAqB,GAAItC,cAAc,IAAIA,cAAc,CAACtC,OAAO,IAAKwE,qBAAqB;IAEjG,MAAMK,WAAW,GAAG;MAClBhH,QAAQ,EAAEgG,qBAAqB,KAAK,KAAK,GAAG,KAAK,GAAG;IACtD,CAAC;IAED,MAAMiB,aAAa,GAAG;MACpBxB,kBAAkB,EAAErB,WAAW,CAAC7F,QAAQ,IAAIH,MAAM,CAACgG,WAAW,CAAC3F,KAAK,CAAC;MACrE8F,aAAa,EAAEA,aAAa,CAAChG,QAAQ,IAAIH,MAAM,CAACmG,aAAa,CAAC9F,KAAK,CAAC;MACpEiG,cAAc,EAAEA,cAAc,CAACnG,QAAQ,IAAIkE,KAAK,CAAC8B,aAAa,IAAInG,MAAM,CAACsG,cAAc,CAACjG,KAAK,CAAC;MAC9FkG,WAAW,EAAEA,WAAW,CAACpG,QAAQ,IAAIF,KAAK,CAACsG,WAAW,CAAClG,KAAK,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;MACzFqG,uBAAuB,EAAEA,uBAAuB,CAACvG,QAAQ,IAAIH,MAAM,CAAC0G,uBAAuB,CAACrG,KAAK,CAAC;MAClGmG,cAAc,EAAEA,cAAc,CAACrG,QAAQ,IAAIH,MAAM,CAACwG,cAAc,CAACnG,KAAK,CAAC;MACvEoF,eAAe,EAAED,QAAQ,CAACrF,QAAQ,IAAIH,MAAM,CAACwF,QAAQ,CAACnF,KAAK,CAAC;MAC5D,kBAAkB,EAAE8G,QAAQ,CAAChH,QAAQ,IAAIH,MAAM,CAACmH,QAAQ,CAAC9G,KAAK,EAAE,IAAI,CAAC;MACrE8G,QAAQ,EAAEA,QAAQ,CAAChH,QAAQ,IAAIgH,QAAQ,CAAC2B,OAAO,IAAI5I,QAAQ,CAACkH,eAAe,CAAC/G,KAAK,EAAE+G,eAAe,CAAC2B,OAAO;IAC5G,CAAC;IAED,MAAMC,eAAe,GAAG;MACtBrB,0BAA0B,EAAEX,mBAAmB,CAAC7G,QAAQ,IAAIH,MAAM,CAACgH,mBAAmB,CAAC3G,KAAK,CAAC;MAC7F4I,0BAA0B,EAAErC,mBAAmB,CAACzG,QAAQ,IAAIH,MAAM,CAAC4G,mBAAmB,CAACvG,KAAK,CAAC;MAC7FoH,gBAAgB,EAAEhB,SAAS,CAACtG,QAAQ,IAAIH,MAAM,CAACyG,SAAS,CAACpG,KAAK,CAAC;MAC/DmH,aAAa,EAAEtB,MAAM,CAAC/F,QAAQ,IAAIH,MAAM,CAACkG,MAAM,CAAC7F,KAAK,CAAC;MACtDqH,iBAAiB,EAAEb,UAAU,CAAC1G,QAAQ,IAAIH,MAAM,CAAC6G,UAAU,CAACxG,KAAK,CAAC;MAClEyG,WAAW,EAAEA,WAAW,CAAC3G,QAAQ,IAAIF,KAAK,CAAC6G,WAAW,CAACzG,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;MACjF6I,aAAa,EAAEjC,UAAU,EAAE9G,QAAQ,IAAIH,MAAM,CAACiH,UAAU,EAAE5G,KAAK;IACjE,CAAC;IAED,MAAM8I,cAAc,GAAGA,CAAC3G,KAAK,GAAG,CAAC,CAAC,MAAM;MACtC,GAAGuD,sBAAsB;MACzB,GAAGvD;IACL,CAAC,CAAC;IAEF,oBACE5D,MAAA,CAAA8D,OAAA,CAAA0G,aAAA,CAAC1J,KAAA,CAAA2J,YAAY;MAACC,SAAS,EAAG3G,KAAK,IAAK,IAAI,CAAC2G,SAAS,CAAC3G,KAAK,EAAEC,QAAQ;IAAE,gBAClEhE,MAAA,CAAA8D,OAAA,CAAA0G,aAAA,CAAC5J,SAAA,CAAA+J,MAAM,CAACC,YAAY;MAClBjC,aAAa,EAAEA,aAAc;MAC7BkC,UAAU,EAAExD,iBAAkB;MAC9ByD,YAAY,EAAE/C,qBAAsB;MACpCxG,QAAQ,eACNvB,MAAA,CAAA8D,OAAA,CAAA0G,aAAA,CAACrJ,KAAK;QACJsE,KAAK,EAAEA,KAAM;QACbwB,aAAa,EAAEA,aAAc;QAC7B8D,aAAa,EAAGtF,KAAK,IAAKC,cAAc,CAACD,KAAK,CAAE;QAChDuF,qBAAqB,EAAG/D,aAAa,IAAKC,sBAAsB,CAACD,aAAa,EAAE,IAAI,CAAE;QACtFgE,MAAM,EAAE;UACNC,QAAQ,EAAEjB,aAAa;UACvBkB,UAAU,EAAEf;QACd;MAAE,CACH;IACF,GAEArB,0BAA0B,iBACzB/I,MAAA,CAAA8D,OAAA,CAAA0G,aAAA,CAACzI,oBAAoB;MAACN,KAAK,EAAE2G,mBAAmB,CAAC3G;IAAM,gBACrDzB,MAAA,CAAA8D,OAAA,CAAA0G,aAAA,CAAC3J,aAAA,CAAAiD,OAAY;MACXsH,SAAS,EAAC,QAAQ;MAClBC,MAAM,EAAE5F,KAAK,CAAC2C,mBAAmB,IAAI,EAAG;MACxCkD,QAAQ,EAAE,IAAI,CAACjF,2BAA4B;MAC3CU,YAAY,EAAEA,YAAa;MAC3BwE,QAAQ,EAAE,KAAM;MAChBjI,KAAK,EAAE6F,wBAAyB;MAChCa,WAAW,EAAEA,WAAY;MACzBwB,WAAW,EAAEjB,cAAc,CAACnC,mBAAmB,EAAEqD,kBAAkB,CAAE;MACrExD,UAAU,EAAEa,iBAAkB;MAC9BtB,aAAa,EAAGA,aAAa,IAAIA,aAAa,CAACY,mBAAmB,IAAKsB,oBAAqB;MAC5FjC,cAAc,EAAGA,cAAc,IAAIA,cAAc,CAACW,mBAAmB,IAAKuB,qBAAsB;MAChG3C,kBAAkB,EAAEA,kBAAmB;MACvC0E,uBAAuB,EAAE,CAAC;QAAEnD,QAAQ,EAAE;MAAU,CAAC,EAAE;QAAEA,QAAQ,EAAE;MAAU,CAAC,CAAE;MAC5ED,aAAa,EAAEA;IAAc,CAC9B,CAAC,EACDa,wBAAwB,iBAAInJ,MAAA,CAAA8D,OAAA,CAAA0G,aAAA;MAAKY,SAAS,EAAC;IAAW,GAAEjC,wBAA8B,CACnE,CACvB,EAEAP,aAAa,iBACZ5I,MAAA,CAAA8D,OAAA,CAAA0G,aAAA,CAACzI,oBAAoB;MAACN,KAAK,EAAE6F,MAAM,IAAIA,MAAM,CAAC7F;IAAM,gBAClDzB,MAAA,CAAA8D,OAAA,CAAA0G,aAAA,CAAC3J,aAAA,CAAAiD,OAAY;MACXsH,SAAS,EAAC,QAAQ;MAClBC,MAAM,EAAE5F,KAAK,CAAC6B,MAAO;MACrBgE,QAAQ,EAAE,IAAI,CAAClF,cAAe;MAC9BW,YAAY,EAAEA,YAAa;MAC3BzD,KAAK,EAAE2F,WAAY;MACnBe,WAAW,EAAEA,WAAY;MACzBwB,WAAW,EAAEjB,cAAc,CAACjD,MAAM,EAAEmE,kBAAkB,CAAE;MACxDxD,UAAU,EAAEa,iBAAkB;MAC9BtB,aAAa,EAAEA,aAAa,IAAIA,aAAa,CAACF,MAAO;MACrDG,cAAc,EAAEA,cAAc,IAAIA,cAAc,CAACH,MAAO;MACxDN,kBAAkB,EAAEA,kBAAmB;MACvC0E,uBAAuB,EAAE,CAAC;QAAEnD,QAAQ,EAAE;MAAU,CAAC,EAAE;QAAEA,QAAQ,EAAE;MAAU,CAAC,CAAE;MAC5ED,aAAa,EAAEA;IAAc,CAC9B,CAAC,EACDW,WAAW,iBAAIjJ,MAAA,CAAA8D,OAAA,CAAA0G,aAAA;MAAKY,SAAS,EAAC;IAAW,GAAEnC,WAAiB,CACzC,CACvB,eAEDjJ,MAAA,CAAA8D,OAAA,CAAA0G,aAAA,CAAC5H,oBAAoB;MACnBnB,KAAK,EAAE,UAAUI,WAAW,EAAG;MAC/B8J,eAAe,EAAE;QAAEnJ,OAAO,EAAE;MAAc;IAAE,gBAE5CxC,MAAA,CAAA8D,OAAA,CAAA0G,aAAA,CAACzH,mBAAmB,qBAClB/C,MAAA,CAAA8D,OAAA,CAAA0G,aAAA,CAAC7J,QAAA,CAAAmD,OAAO;MACN8H,SAAS,EACP;QACEC,OAAO,EAAE;UACPC,EAAE,EAAE;YACF5I,QAAQ,EAAE,EAAE;YACZ6I,UAAU,EAAE,KAAK;YACjBC,QAAQ,EAAE;UACZ;QACF;MACF,CACD;MACDC,oBAAoB;MACpBC,oBAAoB;MACpBC,SAAS,EAAE,OAAQ;MACnBC,KAAK,EAAE5C;IAAkB,gBAEzBxJ,MAAA,CAAA8D,OAAA,CAAA0G,aAAA,CAAC9J,KAAA,CAAAoD,OAAI;MAACZ,QAAQ,EAAE,OAAQ;MAACE,KAAK,EAAE,SAAU;MAACiJ,KAAK,EAAE;QAAEC,UAAU,EAAE;MAAM;IAAE,CAAE,CACnE,CACU,CAAC,eAEtBtM,MAAA,CAAA8D,OAAA,CAAA0G,aAAA,CAACjI,SAAS,QACPkG,kBAAkB,iBACjBzI,MAAA,CAAA8D,OAAA,CAAA0G,aAAA,CAACzI,oBAAoB;MACnBN,KAAK,EAAE2F,WAAW,IAAIA,WAAW,CAAC3F,KAAK,IAAI,GAAGG,aAAa;IAAS,gBAEpE5B,MAAA,CAAA8D,OAAA,CAAA0G,aAAA,CAAC3J,aAAA,CAAAiD,OAAY,MAAAyI,SAAA,CAAAzI,OAAA,MACN2B,KAAK,CAAC8B,aAAa,IAAI;MAAEiF,gBAAgB,EAAE;IAAK,CAAC;MACtDpB,SAAS,EAAC,QAAQ;MAClBC,MAAM,EAAE5F,KAAK,CAAC2B,WAAY;MAC1BkE,QAAQ,EAAE,IAAI,CAAC/E,uBAAwB;MACvCyD,WAAW,EAAEA,WAAY;MACzBwB,WAAW,EAAEjB,cAAc,CAACnD,WAAW,EAAEqE,kBAAkB,CAAE;MAC7DxD,UAAU,EAAEa,iBAAkB;MAC9BtB,aAAa,EAAEoC,oBAAqB;MACpCnC,cAAc,EAAEsC,qBAAsB;MACtC/C,kBAAkB,EAAEA,kBAAmB;MACvC0E,uBAAuB,EAAE,CAAC;QAAEnD,QAAQ,EAAE;MAAU,CAAC,EAAE;QAAEA,QAAQ,EAAE;MAAU,CAAC,CAAE;MAC5ED,aAAa,EAAEA;IAAc,EAC9B,CACmB,CACvB,EAEAH,WAAW,CAAC5G,QAAQ,IAAIkE,KAAK,CAAC8B,aAAa,iBAC1CvH,MAAA,CAAA8D,OAAA,CAAA0G,aAAA,CAACzI,oBAAoB;MACnBN,KAAK,EAAE0G,WAAW,IAAIA,WAAW,CAAC1G,KAAK,IAAI0G,WAAW,CAAC1G;IAAM,gBAE7DzB,MAAA,CAAA8D,OAAA,CAAA0G,aAAA,CAAC3J,aAAA,CAAAiD,OAAY;MACX0I,gBAAgB;MAChBpB,SAAS,EAAC,QAAQ;MAClBC,MAAM,EAAE5F,KAAK,CAAC0C,WAAY;MAC1BmD,QAAQ,EAAE,IAAI,CAAC9E,uBAAwB;MACvCwD,WAAW,EAAEA,WAAY;MACzB/B,UAAU,EAAEa,iBAAkB;MAC9BtB,aAAa,EAAGA,aAAa,IAAIA,aAAa,CAACqC,wBAAwB,IAAKH,oBAAqB;MACjGjC,cAAc,EAAEsC,qBAAsB;MACtC/C,kBAAkB,EAAEA,kBAAmB;MACvC0E,uBAAuB,EAAE,CAAC;QAAEnD,QAAQ,EAAE;MAAU,CAAC,EAAE;QAAEA,QAAQ,EAAE;MAAU,CAAC,CAAE;MAC5ED,aAAa,EAAEA;IAAc,CAC9B,CACmB,CAEf,CAAC,EAEXnD,OAAO,CAAC5D,QAAQ,iBACfvB,MAAA,CAAA8D,OAAA,CAAA0G,aAAA,CAACzJ,aAAA,CAAA+C,OAAY;MACX4C,eAAe,EAAEA,eAAgB;MACjCvB,OAAO,EAAEM,KAAK,CAACN,OAAQ;MACvBmG,QAAQ,EAAE,IAAI,CAAChG,oBAAqB;MACpCyB,YAAY,EAAEA,YAAa;MAC3BiD,WAAW,EAAEA,WAAY;MACzBwB,WAAW,EAAEjB,cAAc,CAACpF,OAAO,EAAEsG,kBAAkB,CAAE;MACzDgB,YAAY,EAAEtH,OAAO,CAAC1D,KAAM;MAC5B8F,aAAa,EAAE9B,KAAK,CAAC8B,aAAc;MACnCmF,mBAAmB,EAAE9K,aAAc;MACnC+K,iBAAiB,EAAE9K,WAAY;MAC/BoG,UAAU,EAAEa,iBAAkB;MAC9BtB,aAAa,EAAEoC,oBAAqB;MACpCnC,cAAc,EAAEsC,qBAAsB;MACtCrB,MAAM,EAAEA,MAAM,IAAI,CAAC,CAAE;MACrBJ,aAAa,EAAEA,aAAc;MAC7BtE,QAAQ,EAAEA;IAAS,CACpB,CAEiB,CAAC,EAEtB6E,gBAAgB,iBACf7I,MAAA,CAAA8D,OAAA,CAAA0G,aAAA,CAACzI,oBAAoB;MAACN,KAAK,EAAEoG,SAAS,CAACpG;IAAM,gBAC3CzB,MAAA,CAAA8D,OAAA,CAAA0G,aAAA,CAAC3J,aAAA,CAAAiD,OAAY;MACXsH,SAAS,EAAC,QAAQ;MAClBC,MAAM,EAAE5F,KAAK,CAACoC,SAAS,IAAI,EAAG;MAC9ByD,QAAQ,EAAE,IAAI,CAAChF,iBAAkB;MACjCS,YAAY,EAAEA,YAAa;MAC3BzD,KAAK,EAAE4F,cAAe;MACtBc,WAAW,EAAEA,WAAY;MACzBwB,WAAW,EAAEjB,cAAc,CAAC1C,SAAS,EAAE4D,kBAAkB,CAAE;MAC3DxD,UAAU,EAAEa,iBAAkB;MAC9BtB,aAAa,EAAGA,aAAa,IAAIA,aAAa,CAACK,SAAS,IAAK6B,oBAAqB;MAClFjC,cAAc,EAAGA,cAAc,IAAIA,cAAc,CAACI,SAAS,IAAK8B,qBAAsB;MACtF3C,kBAAkB,EAAEA,kBAAmB;MACvC0E,uBAAuB,EAAE,CAAC;QAAEnD,QAAQ,EAAE;MAAU,CAAC,EAAE;QAAEA,QAAQ,EAAE;MAAU,CAAC,CAAE;MAC5ED,aAAa,EAAEA;IAAc,CAC9B,CAAC,EACDY,cAAc,iBAAIlJ,MAAA,CAAA8D,OAAA,CAAA0G,aAAA,CAACvH,SAAS,QAAEiG,cAA0B,CACrC,CACvB,EAEArC,eAAe,iBACd7G,MAAA,CAAA8D,OAAA,CAAA0G,aAAA,CAAC5J,SAAA,CAAAgM,cAAc;MACbhG,QAAQ,EAAEnB,KAAK,CAACmB,QAAS;MACzB0E,QAAQ,EAAE,IAAI,CAAC7E,gBAAiB;MAChCM,YAAY,EAAEA,YAAa;MAC3BiD,WAAW,EAAEA;IAAY,CAC1B,CAEgB,CACT,CAAC;EAEnB;AACF;AAAC6C,OAAA,CAAArJ,MAAA,GAAAA,MAAA;AAAA,IAAAK,gBAAA,CAAAC,OAAA,EA1XYN,MAAM,eACE;EACjBwD,kBAAkB,EAAE8F,kBAAS,CAACC;AAChC,CAAC;AAAA,IAAAlJ,gBAAA,CAAAC,OAAA,EAHUN,MAAM,kBAKK,CAAC,CAAC;AAuX1BA,MAAM,CAACwJ,YAAY,GAAG;EACpBtH,cAAc,EAAEA,CAAA,KAAM,CAAE,CAAC;EACzBwB,sBAAsB,EAAEA,CAAA,KAAM,CAAE;AAClC,CAAC;AAED1D,MAAM,CAACyJ,SAAS,GAAG;EACjBxH,KAAK,EAAEqH,kBAAS,CAACC,MAAM,CAACG,UAAU;EAClCjG,aAAa,EAAE6F,kBAAS,CAACC,MAAM,CAACG,UAAU;EAC1CxH,cAAc,EAAEoH,kBAAS,CAACK,IAAI;EAC9BjG,sBAAsB,EAAE4F,kBAAS,CAACK,IAAI;EACtCpG,YAAY,EAAE+F,kBAAS,CAACC;AAC1B,CAAC;AAAC,IAAAK,QAAA,GAAAP,OAAA,CAAA/I,OAAA,GAEaN,MAAM","ignoreList":[]}
@@ -1,22 +1,14 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports["default"] = void 0;
9
-
7
+ exports.default = void 0;
10
8
  var _configUi = require("@pie-lib/config-ui");
11
-
12
9
  var _react = _interopRequireDefault(require("react"));
13
-
14
- var Comp = function Comp() {
15
- return /*#__PURE__*/_react["default"].createElement(_configUi.Help, {
16
- title: 'Help'
17
- }, "In Ordering, a student is asked to sequence events or inputs in a specific order.", /*#__PURE__*/_react["default"].createElement("br", null), "After setting up the choices, drag and drop them into the correct order. Students will see a shuffled version of the choices.");
18
- };
19
-
20
- var _default = Comp;
21
- exports["default"] = _default;
10
+ const Comp = () => /*#__PURE__*/_react.default.createElement(_configUi.Help, {
11
+ title: 'Help'
12
+ }, "In Ordering, a student is asked to sequence events or inputs in a specific order.", /*#__PURE__*/_react.default.createElement("br", null), "After setting up the choices, drag and drop them into the correct order. Students will see a shuffled version of the choices.");
13
+ var _default = exports.default = Comp;
22
14
  //# sourceMappingURL=help.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/help.jsx"],"names":["Comp"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,IAAI,GAAG,SAAPA,IAAO;AAAA,sBACX,gCAAC,cAAD;AAAM,IAAA,KAAK,EAAE;AAAb,uGAEE,2CAFF,kIADW;AAAA,CAAb;;eAQeA,I","sourcesContent":["import { Help } from '@pie-lib/config-ui';\nimport React from 'react';\n\nconst Comp = () => (\n <Help title={'Help'}>\n In Ordering, a student is asked to sequence events or inputs in a specific order.\n <br />\n After setting up the choices, drag and drop them into the correct order. Students will see a shuffled version of the\n choices.\n </Help>\n);\nexport default Comp;\n"],"file":"help.js"}
1
+ {"version":3,"file":"help.js","names":["_configUi","require","_react","_interopRequireDefault","Comp","default","createElement","Help","title","_default","exports"],"sources":["../src/help.jsx"],"sourcesContent":["import { Help } from '@pie-lib/config-ui';\nimport React from 'react';\n\nconst Comp = () => (\n <Help title={'Help'}>\n In Ordering, a student is asked to sequence events or inputs in a specific order.\n <br />\n After setting up the choices, drag and drop them into the correct order. Students will see a shuffled version of the\n choices.\n </Help>\n);\nexport default Comp;\n"],"mappings":";;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,MAAMG,IAAI,GAAGA,CAAA,kBACXF,MAAA,CAAAG,OAAA,CAAAC,aAAA,CAACN,SAAA,CAAAO,IAAI;EAACC,KAAK,EAAE;AAAO,GAAC,mFAEnB,eAAAN,MAAA,CAAAG,OAAA,CAAAC,aAAA,WAAK,CAAC,iIAGF,CACP;AAAC,IAAAG,QAAA,GAAAC,OAAA,CAAAL,OAAA,GACaD,IAAI","ignoreList":[]}
@@ -1,230 +1,155 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports["default"] = exports.addWeightToCorrectResponse = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
-
16
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
-
18
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
-
20
- var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
21
-
7
+ exports.default = exports.addWeightToCorrectResponse = void 0;
22
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
9
  var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
25
-
26
10
  var _design = _interopRequireDefault(require("./design"));
27
-
28
11
  var _react = _interopRequireDefault(require("react"));
29
-
30
- var _reactDom = _interopRequireDefault(require("react-dom"));
31
-
12
+ var _client = require("react-dom/client");
32
13
  var _defaults = _interopRequireDefault(require("./defaults"));
33
-
34
14
  var _defaults2 = _interopRequireDefault(require("lodash/defaults"));
35
-
36
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
37
-
38
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
39
-
40
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
41
-
42
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
43
-
44
- var prepareCustomizationObject = function prepareCustomizationObject(config, model) {
45
- var configuration = (0, _defaults2["default"])(config, _defaults["default"].configuration);
15
+ const prepareCustomizationObject = (config, model) => {
16
+ const configuration = (0, _defaults2.default)(config, _defaults.default.configuration);
46
17
  return {
47
- configuration: configuration,
48
- model: model
18
+ configuration,
19
+ model
49
20
  };
50
21
  };
51
-
52
- var addWeightToCorrectResponse = function addWeightToCorrectResponse(correctResponse) {
53
- return correctResponse && correctResponse.map(function (correct) {
54
- // if weight is set
55
- if (correct.weight !== undefined) {
56
- return {
57
- id: correct.id,
58
- weight: correct.weight
59
- };
60
- } else {
61
- return {
62
- id: correct.id || correct,
63
- weight: 0
64
- };
65
- }
66
- });
67
- };
22
+ const addWeightToCorrectResponse = correctResponse => correctResponse && correctResponse.map(correct => {
23
+ // if weight is set
24
+ if (correct.weight !== undefined) {
25
+ return {
26
+ id: correct.id,
27
+ weight: correct.weight
28
+ };
29
+ } else {
30
+ return {
31
+ id: correct.id || correct,
32
+ weight: 0
33
+ };
34
+ }
35
+ });
68
36
  /**
69
37
  * assuming that the correct response will be set via ui, not via config,
70
38
  * correctResponse (if not set) will be initialized with choices default order
71
39
  */
72
-
73
-
74
40
  exports.addWeightToCorrectResponse = addWeightToCorrectResponse;
75
-
76
- var PlacementOrdering = /*#__PURE__*/function (_HTMLElement) {
77
- (0, _inherits2["default"])(PlacementOrdering, _HTMLElement);
78
-
79
- var _super = _createSuper(PlacementOrdering);
80
-
81
- function PlacementOrdering() {
82
- var _this;
83
-
84
- (0, _classCallCheck2["default"])(this, PlacementOrdering);
85
- _this = _super.call(this);
86
- _this._model = PlacementOrdering.createDefaultModel();
87
- _this._configuration = _defaults["default"].configuration;
88
-
89
- _this.onModelChanged = function (model, resetSession) {
90
- _this._model = model;
91
-
92
- _this._rerender();
93
-
94
- _this.dispatchUpdate(resetSession);
41
+ class PlacementOrdering extends HTMLElement {
42
+ constructor() {
43
+ super();
44
+ this._root = null;
45
+ this._model = PlacementOrdering.createDefaultModel();
46
+ this._configuration = _defaults.default.configuration;
47
+ this.onModelChanged = (model, resetSession) => {
48
+ this._model = model;
49
+ this._rerender();
50
+ this.dispatchUpdate(resetSession);
95
51
  };
96
-
97
- _this.onConfigurationChanged = function (configuration) {
98
- _this._configuration = prepareCustomizationObject(configuration).configuration;
99
-
100
- _this.onModelChanged(_this._model);
101
-
102
- _this._rerender();
52
+ this.onConfigurationChanged = configuration => {
53
+ this._configuration = prepareCustomizationObject(configuration).configuration;
54
+ this.onModelChanged(this._model);
55
+ this._rerender();
103
56
  };
104
-
105
- _this.insertImage = function (handler) {
106
- _this.dispatchEvent(new _pieConfigureEvents.InsertImageEvent(handler));
57
+ this.insertImage = handler => {
58
+ this.dispatchEvent(new _pieConfigureEvents.InsertImageEvent(handler));
107
59
  };
108
-
109
- _this.deleteImage = function (src, done) {
110
- _this.dispatchEvent(new _pieConfigureEvents.DeleteImageEvent(src, done));
60
+ this.deleteImage = (src, done) => {
61
+ this.dispatchEvent(new _pieConfigureEvents.DeleteImageEvent(src, done));
111
62
  };
112
-
113
- return _this;
114
63
  }
115
-
116
- (0, _createClass2["default"])(PlacementOrdering, [{
117
- key: "dispatchUpdate",
118
- value: function dispatchUpdate(reset) {
119
- this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(this._model, reset));
120
- }
121
- }, {
122
- key: "model",
123
- set: function set(s) {
124
- this._model = PlacementOrdering.createDefaultModel(s);
125
-
126
- this._rerender();
127
- }
128
- }, {
129
- key: "configuration",
130
- set: function set(c) {
131
- var _newConfiguration$lan,
132
- _this2 = this;
133
-
134
- var info = prepareCustomizationObject(c, this._model);
135
- this.onModelChanged(info.model);
136
-
137
- var newConfiguration = _objectSpread(_objectSpread({}, _defaults["default"].configuration), info.configuration);
138
-
139
- this._configuration = newConfiguration; // if language:enabled is true, then the corresponding default item model should include a language value;
140
- // if it is false, then the language field should be omitted from the item model.
141
- // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,
142
- // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).
143
-
144
- if (newConfiguration !== null && newConfiguration !== void 0 && (_newConfiguration$lan = newConfiguration.language) !== null && _newConfiguration$lan !== void 0 && _newConfiguration$lan.enabled) {
145
- var _newConfiguration$lan2, _newConfiguration$lan3;
146
-
147
- if (newConfiguration !== null && newConfiguration !== void 0 && (_newConfiguration$lan2 = newConfiguration.languageChoices) !== null && _newConfiguration$lan2 !== void 0 && (_newConfiguration$lan3 = _newConfiguration$lan2.options) !== null && _newConfiguration$lan3 !== void 0 && _newConfiguration$lan3.length) {
148
- this._model.language = newConfiguration === null || newConfiguration === void 0 ? void 0 : newConfiguration.languageChoices.options[0].value;
149
- }
150
- } else if (newConfiguration.language.settings && this._model.language) {
151
- this._configuration.language.enabled = true;
152
-
153
- if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {
154
- this._configuration.languageChoices.options = [];
155
- } // check if the language is already included in the languageChoices.options array
156
- // and if not, then add it.
157
-
158
-
159
- if (!this._configuration.languageChoices.options.find(function (option) {
160
- return option.value === _this2._model.language;
161
- })) {
162
- this._configuration.languageChoices.options.push({
163
- value: this._model.language,
164
- label: this._model.language
165
- });
166
- }
167
- } else {
168
- delete this._model.language;
64
+ dispatchUpdate(reset) {
65
+ this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(this._model, reset));
66
+ }
67
+ set model(s) {
68
+ this._model = PlacementOrdering.createDefaultModel(s);
69
+ this._rerender();
70
+ }
71
+ set configuration(c) {
72
+ const info = prepareCustomizationObject(c, this._model);
73
+ this.onModelChanged(info.model);
74
+ const newConfiguration = {
75
+ ..._defaults.default.configuration,
76
+ ...info.configuration
77
+ };
78
+ this._configuration = newConfiguration;
79
+
80
+ // if language:enabled is true, then the corresponding default item model should include a language value;
81
+ // if it is false, then the language field should be omitted from the item model.
82
+ // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,
83
+ // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).
84
+ if (newConfiguration?.language?.enabled) {
85
+ if (newConfiguration?.languageChoices?.options?.length) {
86
+ this._model.language = newConfiguration?.languageChoices.options[0].value;
87
+ }
88
+ } else if (newConfiguration.language.settings && this._model.language) {
89
+ this._configuration.language.enabled = true;
90
+ if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {
91
+ this._configuration.languageChoices.options = [];
169
92
  }
170
93
 
171
- this._rerender();
172
- }
173
- }, {
174
- key: "insertSound",
175
- value: function insertSound(handler) {
176
- this.dispatchEvent(new _pieConfigureEvents.InsertSoundEvent(handler));
94
+ // check if the language is already included in the languageChoices.options array
95
+ // and if not, then add it.
96
+ if (!this._configuration.languageChoices.options.find(option => option.value === this._model.language)) {
97
+ this._configuration.languageChoices.options.push({
98
+ value: this._model.language,
99
+ label: this._model.language
100
+ });
101
+ }
102
+ } else {
103
+ delete this._model.language;
177
104
  }
178
- }, {
179
- key: "onDeleteSound",
180
- value: function onDeleteSound(src, done) {
181
- this.dispatchEvent(new _pieConfigureEvents.DeleteSoundEvent(src, done));
105
+ this._rerender();
106
+ }
107
+ insertSound(handler) {
108
+ this.dispatchEvent(new _pieConfigureEvents.InsertSoundEvent(handler));
109
+ }
110
+ onDeleteSound(src, done) {
111
+ this.dispatchEvent(new _pieConfigureEvents.DeleteSoundEvent(src, done));
112
+ }
113
+ _rerender() {
114
+ let element = /*#__PURE__*/_react.default.createElement(_design.default, {
115
+ model: this._model,
116
+ configuration: this._configuration,
117
+ onModelChanged: this.onModelChanged,
118
+ onConfigurationChanged: this.onConfigurationChanged,
119
+ imageSupport: {
120
+ add: this.insertImage,
121
+ delete: this.deleteImage
122
+ },
123
+ uploadSoundSupport: {
124
+ add: this.insertSound.bind(this),
125
+ delete: this.onDeleteSound.bind(this)
126
+ }
127
+ });
128
+ if (!this._root) {
129
+ this._root = (0, _client.createRoot)(this);
182
130
  }
183
- }, {
184
- key: "_rerender",
185
- value: function _rerender() {
186
- var element = /*#__PURE__*/_react["default"].createElement(_design["default"], {
187
- model: this._model,
188
- configuration: this._configuration,
189
- onModelChanged: this.onModelChanged,
190
- onConfigurationChanged: this.onConfigurationChanged,
191
- imageSupport: {
192
- add: this.insertImage,
193
- "delete": this.deleteImage
194
- },
195
- uploadSoundSupport: {
196
- add: this.insertSound.bind(this),
197
- "delete": this.onDeleteSound.bind(this)
198
- }
199
- });
200
-
201
- _reactDom["default"].render(element, this);
131
+ this._root.render(element);
132
+ }
133
+ disconnectedCallback() {
134
+ if (this._root) {
135
+ this._root.unmount();
202
136
  }
203
- }]);
204
- return PlacementOrdering;
205
- }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
206
-
207
- exports["default"] = PlacementOrdering;
208
- (0, _defineProperty2["default"])(PlacementOrdering, "createDefaultModel", function () {
209
- var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
210
-
211
- var mapChoicesToReturnCorrectResponse = function mapChoicesToReturnCorrectResponse(choices) {
212
- return choices && choices.map(function (ch) {
213
- return {
214
- id: ch.id,
215
- weight: 0
216
- };
217
- });
137
+ }
138
+ }
139
+ exports.default = PlacementOrdering;
140
+ (0, _defineProperty2.default)(PlacementOrdering, "createDefaultModel", (model = {}) => {
141
+ const mapChoicesToReturnCorrectResponse = choices => choices && choices.map(ch => ({
142
+ id: ch.id,
143
+ weight: 0
144
+ }));
145
+ let correctResponse = addWeightToCorrectResponse(model.correctResponse) || mapChoicesToReturnCorrectResponse(model.choices);
146
+ const defaultModel = {
147
+ ..._defaults.default.model,
148
+ ...model
218
149
  };
219
-
220
- var correctResponse = addWeightToCorrectResponse(model.correctResponse) || mapChoicesToReturnCorrectResponse(model.choices);
221
-
222
- var defaultModel = _objectSpread(_objectSpread({}, _defaults["default"].model), model);
223
-
224
150
  if (correctResponse) {
225
151
  defaultModel.correctResponse = correctResponse;
226
152
  }
227
-
228
153
  return defaultModel;
229
154
  });
230
155
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["prepareCustomizationObject","config","model","configuration","defaultValues","addWeightToCorrectResponse","correctResponse","map","correct","weight","undefined","id","PlacementOrdering","_model","createDefaultModel","_configuration","onModelChanged","resetSession","_rerender","dispatchUpdate","onConfigurationChanged","insertImage","handler","dispatchEvent","InsertImageEvent","deleteImage","src","done","DeleteImageEvent","reset","ModelUpdatedEvent","s","c","info","newConfiguration","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","InsertSoundEvent","DeleteSoundEvent","element","React","createElement","Main","imageSupport","add","uploadSoundSupport","insertSound","bind","onDeleteSound","ReactDOM","render","HTMLElement","mapChoicesToReturnCorrectResponse","choices","ch","defaultModel"],"mappings":"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","sourcesContent":["import {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\n\nimport Main from './design';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport defaultValues from './defaults';\nimport defaults from 'lodash/defaults';\n\nconst prepareCustomizationObject = (config, model) => {\n const configuration = defaults(config, defaultValues.configuration);\n\n return { configuration, model };\n};\n\nexport const addWeightToCorrectResponse = (correctResponse) =>\n correctResponse &&\n correctResponse.map((correct) => {\n // if weight is set\n if (correct.weight !== undefined) {\n return { id: correct.id, weight: correct.weight };\n } else {\n return { id: correct.id || correct, weight: 0 };\n }\n });\n/**\n * assuming that the correct response will be set via ui, not via config,\n * correctResponse (if not set) will be initialized with choices default order\n */\nexport default class PlacementOrdering extends HTMLElement {\n static createDefaultModel = (model = {}) => {\n const mapChoicesToReturnCorrectResponse = (choices) => choices && choices.map((ch) => ({ id: ch.id, weight: 0 }));\n\n let correctResponse =\n addWeightToCorrectResponse(model.correctResponse) || mapChoicesToReturnCorrectResponse(model.choices);\n\n const defaultModel = {\n ...defaultValues.model,\n ...model,\n };\n\n if (correctResponse) {\n defaultModel.correctResponse = correctResponse;\n }\n\n return defaultModel;\n };\n\n constructor() {\n super();\n\n this._model = PlacementOrdering.createDefaultModel();\n this._configuration = defaultValues.configuration;\n\n this.onModelChanged = (model, resetSession) => {\n this._model = model;\n this._rerender();\n this.dispatchUpdate(resetSession);\n };\n\n this.onConfigurationChanged = (configuration) => {\n this._configuration = prepareCustomizationObject(configuration).configuration;\n\n this.onModelChanged(this._model);\n this._rerender();\n };\n\n this.insertImage = (handler) => {\n this.dispatchEvent(new InsertImageEvent(handler));\n };\n\n this.deleteImage = (src, done) => {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n };\n }\n\n dispatchUpdate(reset) {\n this.dispatchEvent(new ModelUpdatedEvent(this._model, reset));\n }\n\n set model(s) {\n this._model = PlacementOrdering.createDefaultModel(s);\n this._rerender();\n }\n\n set configuration(c) {\n const info = prepareCustomizationObject(c, this._model);\n\n this.onModelChanged(info.model);\n\n const newConfiguration = {\n ...defaultValues.configuration,\n ...info.configuration,\n };\n\n this._configuration = newConfiguration;\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 (newConfiguration?.language?.enabled) {\n if (newConfiguration?.languageChoices?.options?.length) {\n this._model.language = newConfiguration?.languageChoices.options[0].value;\n }\n } else if (newConfiguration.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._rerender();\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 _rerender() {\n let element = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n imageSupport: {\n add: this.insertImage,\n delete: this.deleteImage,\n },\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n });\n\n ReactDOM.render(element, this);\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["_pieConfigureEvents","require","_design","_interopRequireDefault","_react","_client","_defaults","_defaults2","prepareCustomizationObject","config","model","configuration","defaults","defaultValues","addWeightToCorrectResponse","correctResponse","map","correct","weight","undefined","id","exports","PlacementOrdering","HTMLElement","constructor","_root","_model","createDefaultModel","_configuration","onModelChanged","resetSession","_rerender","dispatchUpdate","onConfigurationChanged","insertImage","handler","dispatchEvent","InsertImageEvent","deleteImage","src","done","DeleteImageEvent","reset","ModelUpdatedEvent","s","c","info","newConfiguration","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","insertSound","InsertSoundEvent","onDeleteSound","DeleteSoundEvent","element","React","createElement","Main","imageSupport","add","delete","uploadSoundSupport","bind","createRoot","render","disconnectedCallback","unmount","default","_defineProperty2","mapChoicesToReturnCorrectResponse","choices","ch","defaultModel"],"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 Main from './design';\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport defaultValues from './defaults';\nimport defaults from 'lodash/defaults';\n\nconst prepareCustomizationObject = (config, model) => {\n const configuration = defaults(config, defaultValues.configuration);\n\n return { configuration, model };\n};\n\nexport const addWeightToCorrectResponse = (correctResponse) =>\n correctResponse &&\n correctResponse.map((correct) => {\n // if weight is set\n if (correct.weight !== undefined) {\n return { id: correct.id, weight: correct.weight };\n } else {\n return { id: correct.id || correct, weight: 0 };\n }\n });\n/**\n * assuming that the correct response will be set via ui, not via config,\n * correctResponse (if not set) will be initialized with choices default order\n */\nexport default class PlacementOrdering extends HTMLElement {\n static createDefaultModel = (model = {}) => {\n const mapChoicesToReturnCorrectResponse = (choices) => choices && choices.map((ch) => ({ id: ch.id, weight: 0 }));\n\n let correctResponse =\n addWeightToCorrectResponse(model.correctResponse) || mapChoicesToReturnCorrectResponse(model.choices);\n\n const defaultModel = {\n ...defaultValues.model,\n ...model,\n };\n\n if (correctResponse) {\n defaultModel.correctResponse = correctResponse;\n }\n\n return defaultModel;\n };\n\n constructor() {\n super();\n this._root = null;\n\n this._model = PlacementOrdering.createDefaultModel();\n this._configuration = defaultValues.configuration;\n\n this.onModelChanged = (model, resetSession) => {\n this._model = model;\n this._rerender();\n this.dispatchUpdate(resetSession);\n };\n\n this.onConfigurationChanged = (configuration) => {\n this._configuration = prepareCustomizationObject(configuration).configuration;\n\n this.onModelChanged(this._model);\n this._rerender();\n };\n\n this.insertImage = (handler) => {\n this.dispatchEvent(new InsertImageEvent(handler));\n };\n\n this.deleteImage = (src, done) => {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n };\n }\n\n dispatchUpdate(reset) {\n this.dispatchEvent(new ModelUpdatedEvent(this._model, reset));\n }\n\n set model(s) {\n this._model = PlacementOrdering.createDefaultModel(s);\n this._rerender();\n }\n\n set configuration(c) {\n const info = prepareCustomizationObject(c, this._model);\n\n this.onModelChanged(info.model);\n\n const newConfiguration = {\n ...defaultValues.configuration,\n ...info.configuration,\n };\n\n this._configuration = newConfiguration;\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 (newConfiguration?.language?.enabled) {\n if (newConfiguration?.languageChoices?.options?.length) {\n this._model.language = newConfiguration?.languageChoices.options[0].value;\n }\n } else if (newConfiguration.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._rerender();\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 _rerender() {\n let element = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n imageSupport: {\n add: this.insertImage,\n delete: this.deleteImage,\n },\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\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":[]}