@pie-element/placement-ordering 14.1.2-next.5 → 14.1.3
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.json +1312 -0
- package/CHANGELOG.md +2444 -0
- package/LICENSE.md +5 -0
- package/README.md +57 -0
- package/configure/CHANGELOG.json +952 -0
- package/configure/CHANGELOG.md +2139 -0
- package/configure/lib/choice-editor.js +252 -0
- package/configure/lib/choice-editor.js.map +1 -0
- package/configure/lib/choice-tile.js +205 -0
- package/configure/lib/choice-tile.js.map +1 -0
- package/configure/lib/defaults.js +211 -0
- package/configure/lib/defaults.js.map +1 -0
- package/configure/lib/design.js +427 -0
- package/configure/lib/design.js.map +1 -0
- package/configure/lib/help.js +14 -0
- package/configure/lib/help.js.map +1 -0
- package/configure/lib/index.js +155 -0
- package/configure/lib/index.js.map +1 -0
- package/configure/lib/utils.js +108 -0
- package/configure/lib/utils.js.map +1 -0
- package/configure/package.json +26 -0
- package/controller/CHANGELOG.json +517 -0
- package/controller/CHANGELOG.md +1518 -0
- package/controller/lib/defaults.js +29 -0
- package/controller/lib/defaults.js.map +1 -0
- package/controller/lib/index.js +285 -0
- package/controller/lib/index.js.map +1 -0
- package/controller/lib/scoring.js +109 -0
- package/controller/lib/scoring.js.map +1 -0
- package/controller/package.json +15 -0
- package/docs/config-schema.json +2964 -0
- package/docs/config-schema.json.md +2190 -0
- package/docs/demo/config.js +8 -0
- package/docs/demo/generate.js +50 -0
- package/docs/demo/index.html +1 -0
- package/docs/demo/session.js +7 -0
- package/docs/pie-schema.json +1613 -0
- package/docs/pie-schema.json.md +973 -0
- package/icon.png +0 -0
- package/lib/index.js +122 -0
- package/lib/index.js.map +1 -0
- package/lib/main.js +32 -0
- package/lib/main.js.map +1 -0
- package/lib/ordering.js +165 -0
- package/lib/ordering.js.map +1 -0
- package/lib/placement-ordering.js +419 -0
- package/lib/placement-ordering.js.map +1 -0
- package/lib/tile.js +259 -0
- package/lib/tile.js.map +1 -0
- package/lib/tiler.js +165 -0
- package/lib/tiler.js.map +1 -0
- package/lib/utils.js +18 -0
- package/lib/utils.js.map +1 -0
- package/package.json +21 -88
- package/configure.js +0 -2
- package/controller.js +0 -1
- package/dist/author/choice-editor.d.ts +0 -39
- package/dist/author/choice-editor.js +0 -156
- package/dist/author/choice-tile.d.ts +0 -40
- package/dist/author/choice-tile.js +0 -132
- package/dist/author/defaults.d.ts +0 -213
- package/dist/author/defaults.js +0 -159
- package/dist/author/design.d.ts +0 -21
- package/dist/author/design.js +0 -273
- package/dist/author/help.d.ts +0 -11
- package/dist/author/index.d.ts +0 -45
- package/dist/author/index.js +0 -85
- package/dist/author/utils.d.ts +0 -15
- package/dist/author/utils.js +0 -62
- package/dist/browser/author/index.js +0 -46600
- package/dist/browser/author/index.js.map +0 -1
- package/dist/browser/browser-DHPggtaA.js +0 -376
- package/dist/browser/browser-DHPggtaA.js.map +0 -1
- package/dist/browser/controller/index.js +0 -242
- package/dist/browser/controller/index.js.map +0 -1
- package/dist/browser/delivery/index.js +0 -1035
- package/dist/browser/delivery/index.js.map +0 -1
- package/dist/browser/dist-D9ARZhQk.js +0 -1426
- package/dist/browser/dist-D9ARZhQk.js.map +0 -1
- package/dist/browser/drag-provider-C1slTlsc.js +0 -10555
- package/dist/browser/drag-provider-C1slTlsc.js.map +0 -1
- package/dist/browser/placement-ordering.css +0 -2
- package/dist/controller/defaults.d.ts +0 -31
- package/dist/controller/defaults.js +0 -25
- package/dist/controller/index.d.ts +0 -29
- package/dist/controller/index.js +0 -123
- package/dist/controller/scoring.d.ts +0 -27
- package/dist/controller/scoring.js +0 -30
- package/dist/delivery/index.d.ts +0 -26
- package/dist/delivery/index.js +0 -70
- package/dist/delivery/main.d.ts +0 -19
- package/dist/delivery/main.js +0 -22
- package/dist/delivery/ordering.d.ts +0 -18
- package/dist/delivery/ordering.js +0 -93
- package/dist/delivery/placement-ordering.d.ts +0 -28
- package/dist/delivery/placement-ordering.js +0 -213
- package/dist/delivery/tile.d.ts +0 -28
- package/dist/delivery/tile.js +0 -165
- package/dist/delivery/tiler.d.ts +0 -42
- package/dist/delivery/tiler.js +0 -89
- package/dist/delivery/utils.d.ts +0 -9
- package/dist/delivery/utils.js +0 -8
- package/dist/index.d.ts +0 -1
- package/dist/index.iife.d.ts +0 -8
- package/dist/index.iife.js +0 -152
- package/dist/index.js +0 -2
- package/dist/runtime-support.d.ts +0 -12
- package/dist/runtime-support.js +0 -12
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design.js","names":["_react","_interopRequireDefault","require","_propTypes","_debug","_lodashEs","_nestedProperty","_pluralize","_styles","_Info","_Tooltip","_configUi","_editableHtmlTipTap","_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, isEmpty } from 'lodash-es';\nimport { get, set } from 'nested-property';\nimport pluralize from 'pluralize';\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-tip-tap';\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 label={`Define ${pluralLabel}`} labelExtraStyle={{ display: 'inline-flex' }}>\n <InlineFlexContainer>\n <Tooltip\n slotProps={{\n tooltip: {\n sx: {\n fontSize: 14,\n whiteSpace: 'pre',\n maxWidth: '500px',\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 label={choiceLabel && choiceLabel.label && `${singularLabel} label`}>\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 label={targetLabel && targetLabel.label && targetLabel.label}>\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":"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","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _configUi = require("@pie-lib/config-ui");
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
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;
|
|
14
|
+
//# sourceMappingURL=help.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = exports.addWeightToCorrectResponse = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
|
|
10
|
+
var _design = _interopRequireDefault(require("./design"));
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
var _client = require("react-dom/client");
|
|
13
|
+
var _defaults = _interopRequireDefault(require("./defaults"));
|
|
14
|
+
var _lodashEs = require("lodash-es");
|
|
15
|
+
const prepareCustomizationObject = (config, model) => {
|
|
16
|
+
const configuration = (0, _lodashEs.defaults)(config, _defaults.default.configuration);
|
|
17
|
+
return {
|
|
18
|
+
configuration,
|
|
19
|
+
model
|
|
20
|
+
};
|
|
21
|
+
};
|
|
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
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* assuming that the correct response will be set via ui, not via config,
|
|
38
|
+
* correctResponse (if not set) will be initialized with choices default order
|
|
39
|
+
*/
|
|
40
|
+
exports.addWeightToCorrectResponse = addWeightToCorrectResponse;
|
|
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);
|
|
51
|
+
};
|
|
52
|
+
this.onConfigurationChanged = configuration => {
|
|
53
|
+
this._configuration = prepareCustomizationObject(configuration).configuration;
|
|
54
|
+
this.onModelChanged(this._model);
|
|
55
|
+
this._rerender();
|
|
56
|
+
};
|
|
57
|
+
this.insertImage = handler => {
|
|
58
|
+
this.dispatchEvent(new _pieConfigureEvents.InsertImageEvent(handler));
|
|
59
|
+
};
|
|
60
|
+
this.deleteImage = (src, done) => {
|
|
61
|
+
this.dispatchEvent(new _pieConfigureEvents.DeleteImageEvent(src, done));
|
|
62
|
+
};
|
|
63
|
+
}
|
|
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 = [];
|
|
92
|
+
}
|
|
93
|
+
|
|
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;
|
|
104
|
+
}
|
|
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);
|
|
130
|
+
}
|
|
131
|
+
this._root.render(element);
|
|
132
|
+
}
|
|
133
|
+
disconnectedCallback() {
|
|
134
|
+
if (this._root) {
|
|
135
|
+
this._root.unmount();
|
|
136
|
+
}
|
|
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
|
|
149
|
+
};
|
|
150
|
+
if (correctResponse) {
|
|
151
|
+
defaultModel.correctResponse = correctResponse;
|
|
152
|
+
}
|
|
153
|
+
return defaultModel;
|
|
154
|
+
});
|
|
155
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_pieConfigureEvents","require","_design","_interopRequireDefault","_react","_client","_defaults","_lodashEs","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-es';\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":[]}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.buildTiles = buildTiles;
|
|
7
|
+
exports.generateValidationMessage = void 0;
|
|
8
|
+
exports.normalizeIndex = normalizeIndex;
|
|
9
|
+
exports.updateResponseOrChoices = updateResponseOrChoices;
|
|
10
|
+
var _lodashEs = require("lodash-es");
|
|
11
|
+
const generateValidationMessage = () => {
|
|
12
|
+
const answersMessage = '\nThere should be at least 3 tokens.' + '\nThe tokens should not be empty and should be unique.' + '\nThe correct ordering should not be identical to the initial ordering.';
|
|
13
|
+
return 'Validation requirements:' + answersMessage;
|
|
14
|
+
};
|
|
15
|
+
exports.generateValidationMessage = generateValidationMessage;
|
|
16
|
+
function normalizeIndex(tile, ordering) {
|
|
17
|
+
if (tile.type === 'target') {
|
|
18
|
+
return ordering.response.findIndex(r => r.id === tile.id);
|
|
19
|
+
}
|
|
20
|
+
if (tile.type === 'choice') {
|
|
21
|
+
return ordering.choices.findIndex(c => c.id === tile.id);
|
|
22
|
+
}
|
|
23
|
+
return -1;
|
|
24
|
+
}
|
|
25
|
+
function updateResponseOrChoices(response, choices, from, to) {
|
|
26
|
+
const {
|
|
27
|
+
type: fromType,
|
|
28
|
+
index: fromIndex
|
|
29
|
+
} = from;
|
|
30
|
+
const {
|
|
31
|
+
type: toType,
|
|
32
|
+
index: placeAtIndex
|
|
33
|
+
} = to;
|
|
34
|
+
if (fromType === 'target' && toType === 'target') {
|
|
35
|
+
const updatedResponse = (0, _lodashEs.cloneDeep)(response) || [];
|
|
36
|
+
const {
|
|
37
|
+
movedItem,
|
|
38
|
+
remainingItems
|
|
39
|
+
} = updatedResponse.reduce((acc, item, index) => {
|
|
40
|
+
if (index === fromIndex) {
|
|
41
|
+
acc.movedItem = item;
|
|
42
|
+
} else {
|
|
43
|
+
acc.remainingItems.push(item);
|
|
44
|
+
}
|
|
45
|
+
return acc;
|
|
46
|
+
}, {
|
|
47
|
+
movedItem: null,
|
|
48
|
+
remainingItems: []
|
|
49
|
+
});
|
|
50
|
+
return {
|
|
51
|
+
response: [...remainingItems.slice(0, placeAtIndex), movedItem, ...remainingItems.slice(placeAtIndex)],
|
|
52
|
+
choices
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
if (fromType === 'choice' && toType === 'choice') {
|
|
56
|
+
const updatedChoices = (0, _lodashEs.cloneDeep)(choices) || [];
|
|
57
|
+
const {
|
|
58
|
+
movedItem,
|
|
59
|
+
remainingItems,
|
|
60
|
+
toIndex
|
|
61
|
+
} = updatedChoices.reduce((acc, item, index) => {
|
|
62
|
+
if (item.id === from.id) {
|
|
63
|
+
acc.movedItem = item;
|
|
64
|
+
} else {
|
|
65
|
+
acc.remainingItems.push(item);
|
|
66
|
+
}
|
|
67
|
+
if (item.id === to.id) {
|
|
68
|
+
acc.toIndex = index;
|
|
69
|
+
}
|
|
70
|
+
return acc;
|
|
71
|
+
}, {
|
|
72
|
+
movedItem: null,
|
|
73
|
+
remainingItems: [],
|
|
74
|
+
toIndex: null
|
|
75
|
+
});
|
|
76
|
+
return {
|
|
77
|
+
response,
|
|
78
|
+
choices: [...remainingItems.slice(0, toIndex), movedItem, ...remainingItems.slice(toIndex)]
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
response,
|
|
83
|
+
choices
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
function buildTiles(choices, response) {
|
|
87
|
+
const targets = response.map((r, index) => {
|
|
88
|
+
const respId = r && r.id;
|
|
89
|
+
const choice = choices.find(c => respId !== undefined && respId !== null && c.id === respId);
|
|
90
|
+
return {
|
|
91
|
+
type: 'target',
|
|
92
|
+
...choice,
|
|
93
|
+
draggable: true,
|
|
94
|
+
index,
|
|
95
|
+
editable: false
|
|
96
|
+
};
|
|
97
|
+
});
|
|
98
|
+
const processedChoices = choices.map(m => {
|
|
99
|
+
return Object.assign({}, m, {
|
|
100
|
+
type: 'choice',
|
|
101
|
+
droppable: false,
|
|
102
|
+
draggable: true,
|
|
103
|
+
editable: true
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
return processedChoices.concat(targets);
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","names":["_lodashEs","require","generateValidationMessage","answersMessage","exports","normalizeIndex","tile","ordering","type","response","findIndex","r","id","choices","c","updateResponseOrChoices","from","to","fromType","index","fromIndex","toType","placeAtIndex","updatedResponse","cloneDeep","movedItem","remainingItems","reduce","acc","item","push","slice","updatedChoices","toIndex","buildTiles","targets","map","respId","choice","find","undefined","draggable","editable","processedChoices","m","Object","assign","droppable","concat"],"sources":["../src/utils.js"],"sourcesContent":["import { cloneDeep } from 'lodash-es';\n\nexport const generateValidationMessage = () => {\n const answersMessage =\n '\\nThere should be at least 3 tokens.' +\n '\\nThe tokens should not be empty and should be unique.' +\n '\\nThe correct ordering should not be identical to the initial ordering.';\n\n return 'Validation requirements:' + answersMessage;\n};\n\nexport function normalizeIndex(tile, ordering) {\n if (tile.type === 'target') {\n return ordering.response.findIndex(r => r.id === tile.id);\n }\n\n if (tile.type === 'choice') {\n return ordering.choices.findIndex(c => c.id === tile.id);\n }\n\n return -1;\n}\n\nexport function updateResponseOrChoices(response, choices, from, to) {\n const { type: fromType, index: fromIndex } = from;\n const { type: toType, index: placeAtIndex } = to;\n\n if (fromType === 'target' && toType === 'target') {\n const updatedResponse = cloneDeep(response) || [];\n\n const { movedItem, remainingItems } = updatedResponse.reduce(\n (acc, item, index) => {\n if (index === fromIndex) {\n acc.movedItem = item;\n } else {\n acc.remainingItems.push(item);\n }\n\n return acc;\n },\n { movedItem: null, remainingItems: [] },\n );\n\n return {\n response: [...remainingItems.slice(0, placeAtIndex), movedItem, ...remainingItems.slice(placeAtIndex)],\n choices,\n };\n }\n\n if (fromType === 'choice' && toType === 'choice') {\n const updatedChoices = cloneDeep(choices) || [];\n\n const { movedItem, remainingItems, toIndex } = updatedChoices.reduce(\n (acc, item, index) => {\n if (item.id === from.id) {\n acc.movedItem = item;\n } else {\n acc.remainingItems.push(item);\n }\n\n if (item.id === to.id) {\n acc.toIndex = index;\n }\n\n return acc;\n },\n { movedItem: null, remainingItems: [], toIndex: null },\n );\n\n return {\n response,\n choices: [...remainingItems.slice(0, toIndex), movedItem, ...remainingItems.slice(toIndex)],\n };\n }\n\n return { response, choices };\n}\n\nexport function buildTiles(choices, response) {\n const targets = response.map((r, index) => {\n const respId = r && r.id;\n const choice = choices.find((c) => respId !== undefined && respId !== null && c.id === respId);\n\n return {\n type: 'target',\n ...choice,\n draggable: true,\n index,\n editable: false,\n };\n });\n\n const processedChoices = choices.map((m) => {\n return Object.assign({}, m, {\n type: 'choice',\n droppable: false,\n draggable: true,\n editable: true,\n });\n });\n\n return processedChoices.concat(targets);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@pie-element/placement-ordering-configure",
|
|
3
|
+
"version": "11.1.3",
|
|
4
|
+
"private": true,
|
|
5
|
+
"main": "lib/index.js",
|
|
6
|
+
"module": "src/index.js",
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"@dnd-kit/core": "6.3.1",
|
|
9
|
+
"@emotion/react": "^11.14.0",
|
|
10
|
+
"@emotion/style": "^0.8.0",
|
|
11
|
+
"@mui/icons-material": "^7.3.4",
|
|
12
|
+
"@mui/material": "^7.3.4",
|
|
13
|
+
"@pie-framework/pie-configure-events": "^1.3.0",
|
|
14
|
+
"@pie-lib/config-ui": "13.0.7",
|
|
15
|
+
"@pie-lib/drag": "4.0.4",
|
|
16
|
+
"@pie-lib/editable-html-tip-tap": "2.1.5",
|
|
17
|
+
"@pie-lib/render-ui": "6.1.2",
|
|
18
|
+
"debug": "^4.1.1",
|
|
19
|
+
"lodash-es": "^4.17.23",
|
|
20
|
+
"nested-property": "^0.0.7",
|
|
21
|
+
"pluralize": "^8.0.0",
|
|
22
|
+
"prop-types": "^15.8.1",
|
|
23
|
+
"react": "18.3.1",
|
|
24
|
+
"react-dom": "18.3.1"
|
|
25
|
+
}
|
|
26
|
+
}
|