@pie-element/drawing-response 11.0.0-next.43 → 11.1.2-next.1

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.
@@ -22,6 +22,9 @@ var _default = exports.default = {
22
22
  },
23
23
  configuration: {
24
24
  baseInputConfiguration: {
25
+ h3: {
26
+ disabled: true
27
+ },
25
28
  audio: {
26
29
  disabled: false
27
30
  },
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","names":["model","backgroundImageEnabled","imageDimensions","height","width","imageUrl","prompt","promptEnabled","spellCheckEnabled","studentInstructionsEnabled","teacherInstructions","teacherInstructionsEnabled","toolbarEditorPosition","configuration","baseInputConfiguration","audio","disabled","video","image","textAlign","showParagraphs","separateParagraphs","spellCheck","label","settings","enabled","backgroundImage","inputConfiguration","required","settingsPanelDisabled","maxImageWidth","maxImageHeight","withRubric","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options"],"sources":["../src/defaults.js"],"sourcesContent":["export default {\n model: {\n backgroundImageEnabled: true,\n imageDimensions: { height: 0, width: 0 },\n imageUrl: '',\n prompt: '',\n promptEnabled: true,\n spellCheckEnabled: true,\n studentInstructionsEnabled: true,\n teacherInstructions: '',\n teacherInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n },\n configuration: {\n baseInputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n textAlign: { disabled: true },\n showParagraphs: { disabled: false },\n separateParagraphs: { disabled: true },\n },\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n backgroundImage: {\n settings: true,\n label: 'Background Image',\n },\n prompt: {\n settings: true,\n label: 'Prompt',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n settingsPanelDisabled: false,\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric',\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n },\n};\n"],"mappings":";;;;;;iCAAe;EACbA,KAAK,EAAE;IACLC,sBAAsB,EAAE,IAAI;IAC5BC,eAAe,EAAE;MAAEC,MAAM,EAAE,CAAC;MAAEC,KAAK,EAAE;IAAE,CAAC;IACxCC,QAAQ,EAAE,EAAE;IACZC,MAAM,EAAE,EAAE;IACVC,aAAa,EAAE,IAAI;IACnBC,iBAAiB,EAAE,IAAI;IACvBC,0BAA0B,EAAE,IAAI;IAChCC,mBAAmB,EAAE,EAAE;IACvBC,0BAA0B,EAAE,IAAI;IAChCC,qBAAqB,EAAE;EACzB,CAAC;EACDC,aAAa,EAAE;IACbC,sBAAsB,EAAE;MACtBC,KAAK,EAAE;QAAEC,QAAQ,EAAE;MAAM,CAAC;MAC1BC,KAAK,EAAE;QAAED,QAAQ,EAAE;MAAM,CAAC;MAC1BE,KAAK,EAAE;QAAEF,QAAQ,EAAE;MAAM,CAAC;MAC1BG,SAAS,EAAE;QAAEH,QAAQ,EAAE;MAAK,CAAC;MAC7BI,cAAc,EAAE;QAAEJ,QAAQ,EAAE;MAAM,CAAC;MACnCK,kBAAkB,EAAE;QAAEL,QAAQ,EAAE;MAAK;IACvC,CAAC;IACDM,UAAU,EAAE;MACVC,KAAK,EAAE,YAAY;MACnBC,QAAQ,EAAE,KAAK;MACfC,OAAO,EAAE;IACX,CAAC;IACDC,eAAe,EAAE;MACfF,QAAQ,EAAE,IAAI;MACdD,KAAK,EAAE;IACT,CAAC;IACDjB,MAAM,EAAE;MACNkB,QAAQ,EAAE,IAAI;MACdD,KAAK,EAAE,QAAQ;MACfI,kBAAkB,EAAE;QAClBZ,KAAK,EAAE;UAAEC,QAAQ,EAAE;QAAM,CAAC;QAC1BC,KAAK,EAAE;UAAED,QAAQ,EAAE;QAAM,CAAC;QAC1BE,KAAK,EAAE;UAAEF,QAAQ,EAAE;QAAM;MAC3B,CAAC;MACDY,QAAQ,EAAE;IACZ,CAAC;IACDC,qBAAqB,EAAE,KAAK;IAC5BnB,mBAAmB,EAAE;MACnBc,QAAQ,EAAE,IAAI;MACdD,KAAK,EAAE,sBAAsB;MAC7BI,kBAAkB,EAAE;QAClBZ,KAAK,EAAE;UAAEC,QAAQ,EAAE;QAAM,CAAC;QAC1BC,KAAK,EAAE;UAAED,QAAQ,EAAE;QAAM,CAAC;QAC1BE,KAAK,EAAE;UAAEF,QAAQ,EAAE;QAAM;MAC3B,CAAC;MACDY,QAAQ,EAAE;IACZ,CAAC;IACDE,aAAa,EAAE;MACbpB,mBAAmB,EAAE,GAAG;MACxBJ,MAAM,EAAE;IACV,CAAC;IACDyB,cAAc,EAAE;MACdrB,mBAAmB,EAAE,GAAG;MACxBJ,MAAM,EAAE;IACV,CAAC;IACD0B,UAAU,EAAE;MACVR,QAAQ,EAAE,KAAK;MACfD,KAAK,EAAE;IACT,CAAC;IACDU,aAAa,EAAE;MACbC,SAAS,EAAE,KAAK;MAChBC,UAAU,EAAE;IACd,CAAC;IACDC,QAAQ,EAAE;MACRZ,QAAQ,EAAE,KAAK;MACfD,KAAK,EAAE,kBAAkB;MACzBE,OAAO,EAAE;IACX,CAAC;IACDY,eAAe,EAAE;MACfd,KAAK,EAAE,kBAAkB;MACzBe,OAAO,EAAE;IACX;EACF;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"defaults.js","names":["model","backgroundImageEnabled","imageDimensions","height","width","imageUrl","prompt","promptEnabled","spellCheckEnabled","studentInstructionsEnabled","teacherInstructions","teacherInstructionsEnabled","toolbarEditorPosition","configuration","baseInputConfiguration","h3","disabled","audio","video","image","textAlign","showParagraphs","separateParagraphs","spellCheck","label","settings","enabled","backgroundImage","inputConfiguration","required","settingsPanelDisabled","maxImageWidth","maxImageHeight","withRubric","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options"],"sources":["../src/defaults.js"],"sourcesContent":["export default {\n model: {\n backgroundImageEnabled: true,\n imageDimensions: { height: 0, width: 0 },\n imageUrl: '',\n prompt: '',\n promptEnabled: true,\n spellCheckEnabled: true,\n studentInstructionsEnabled: true,\n teacherInstructions: '',\n teacherInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n },\n configuration: {\n baseInputConfiguration: {\n h3: { disabled: true },\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n textAlign: { disabled: true },\n showParagraphs: { disabled: false },\n separateParagraphs: { disabled: true },\n },\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n backgroundImage: {\n settings: true,\n label: 'Background Image',\n },\n prompt: {\n settings: true,\n label: 'Prompt',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n settingsPanelDisabled: false,\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric',\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n },\n};\n"],"mappings":";;;;;;iCAAe;EACbA,KAAK,EAAE;IACLC,sBAAsB,EAAE,IAAI;IAC5BC,eAAe,EAAE;MAAEC,MAAM,EAAE,CAAC;MAAEC,KAAK,EAAE;IAAE,CAAC;IACxCC,QAAQ,EAAE,EAAE;IACZC,MAAM,EAAE,EAAE;IACVC,aAAa,EAAE,IAAI;IACnBC,iBAAiB,EAAE,IAAI;IACvBC,0BAA0B,EAAE,IAAI;IAChCC,mBAAmB,EAAE,EAAE;IACvBC,0BAA0B,EAAE,IAAI;IAChCC,qBAAqB,EAAE;EACzB,CAAC;EACDC,aAAa,EAAE;IACbC,sBAAsB,EAAE;MACtBC,EAAE,EAAE;QAAEC,QAAQ,EAAE;MAAK,CAAC;MACtBC,KAAK,EAAE;QAAED,QAAQ,EAAE;MAAM,CAAC;MAC1BE,KAAK,EAAE;QAAEF,QAAQ,EAAE;MAAM,CAAC;MAC1BG,KAAK,EAAE;QAAEH,QAAQ,EAAE;MAAM,CAAC;MAC1BI,SAAS,EAAE;QAAEJ,QAAQ,EAAE;MAAK,CAAC;MAC7BK,cAAc,EAAE;QAAEL,QAAQ,EAAE;MAAM,CAAC;MACnCM,kBAAkB,EAAE;QAAEN,QAAQ,EAAE;MAAK;IACvC,CAAC;IACDO,UAAU,EAAE;MACVC,KAAK,EAAE,YAAY;MACnBC,QAAQ,EAAE,KAAK;MACfC,OAAO,EAAE;IACX,CAAC;IACDC,eAAe,EAAE;MACfF,QAAQ,EAAE,IAAI;MACdD,KAAK,EAAE;IACT,CAAC;IACDlB,MAAM,EAAE;MACNmB,QAAQ,EAAE,IAAI;MACdD,KAAK,EAAE,QAAQ;MACfI,kBAAkB,EAAE;QAClBX,KAAK,EAAE;UAAED,QAAQ,EAAE;QAAM,CAAC;QAC1BE,KAAK,EAAE;UAAEF,QAAQ,EAAE;QAAM,CAAC;QAC1BG,KAAK,EAAE;UAAEH,QAAQ,EAAE;QAAM;MAC3B,CAAC;MACDa,QAAQ,EAAE;IACZ,CAAC;IACDC,qBAAqB,EAAE,KAAK;IAC5BpB,mBAAmB,EAAE;MACnBe,QAAQ,EAAE,IAAI;MACdD,KAAK,EAAE,sBAAsB;MAC7BI,kBAAkB,EAAE;QAClBX,KAAK,EAAE;UAAED,QAAQ,EAAE;QAAM,CAAC;QAC1BE,KAAK,EAAE;UAAEF,QAAQ,EAAE;QAAM,CAAC;QAC1BG,KAAK,EAAE;UAAEH,QAAQ,EAAE;QAAM;MAC3B,CAAC;MACDa,QAAQ,EAAE;IACZ,CAAC;IACDE,aAAa,EAAE;MACbrB,mBAAmB,EAAE,GAAG;MACxBJ,MAAM,EAAE;IACV,CAAC;IACD0B,cAAc,EAAE;MACdtB,mBAAmB,EAAE,GAAG;MACxBJ,MAAM,EAAE;IACV,CAAC;IACD2B,UAAU,EAAE;MACVR,QAAQ,EAAE,KAAK;MACfD,KAAK,EAAE;IACT,CAAC;IACDU,aAAa,EAAE;MACbC,SAAS,EAAE,KAAK;MAChBC,UAAU,EAAE;IACd,CAAC;IACDC,QAAQ,EAAE;MACRZ,QAAQ,EAAE,KAAK;MACfD,KAAK,EAAE,kBAAkB;MACzBE,OAAO,EAAE;IACX,CAAC;IACDY,eAAe,EAAE;MACfd,KAAK,EAAE,kBAAkB;MACzBe,OAAO,EAAE;IACX;EACF;AACF,CAAC","ignoreList":[]}
@@ -13,7 +13,7 @@ var _editableHtmlTipTap = _interopRequireDefault(require("@pie-lib/editable-html
13
13
  var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
14
14
  var _styles = require("@mui/material/styles");
15
15
  var _imageContainer = _interopRequireDefault(require("./image-container"));
16
- var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
16
+ var _lodashEs = require("lodash-es");
17
17
  const {
18
18
  Panel,
19
19
  toggle,
@@ -42,7 +42,7 @@ class Root extends _react.default.Component {
42
42
  model,
43
43
  onModelChanged
44
44
  } = this.props;
45
- const update = (0, _cloneDeep.default)(model);
45
+ const update = (0, _lodashEs.cloneDeep)(model);
46
46
  onModelChanged({
47
47
  ...update,
48
48
  prompt
@@ -1 +1 @@
1
- {"version":3,"file":"root.js","names":["_react","_interopRequireDefault","require","_configUi","_propTypes","_editableHtmlTipTap","_Typography","_styles","_imageContainer","_cloneDeep","Panel","toggle","dropdown","settings","PromptHolder","styled","InputContainer","theme","paddingTop","spacing","marginTop","marginBottom","width","ErrorText","fontSize","typography","color","palette","error","main","Root","React","Component","constructor","args","_defineProperty2","default","prompt","model","onModelChanged","props","update","cloneDeep","teacherInstructions","dimensions","imageDimensions","imageUrl","render","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","baseInputConfiguration","backgroundImage","contentDimensions","maxImageWidth","maxImageHeight","settingsPanelDisabled","spellCheck","withRubric","language","languageChoices","mathMlOptions","backgroundImageEnabled","errors","extraCSSRules","promptEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","promptError","teacherInstructionsError","defaultImageMaxWidth","defaultImageMaxHeight","toolbarOpts","position","panelSettings","label","enabled","options","panelProperties","rubricEnabled","getPluginProps","createElement","layout","ConfigLayout","hideSettings","onChangeModel","onChangeConfiguration","groups","Settings","Properties","markup","onChange","onTeacherInstructionsChanged","nonEmpty","pluginProps","inputConfiguration","languageCharactersProps","onPromptChanged","Fragment","variant","onUpdateImageDimension","onImageUpload","insertImage","add","exports","propTypes","PropTypes","object","isRequired","shape","func","delete","_default"],"sources":["../src/root.jsx"],"sourcesContent":["import React from 'react';\nimport { settings, layout, InputContainer } from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport Typography from '@mui/material/Typography';\nimport { styled } from '@mui/material/styles';\n\nimport ImageContainer from './image-container';\nimport cloneDeep from 'lodash/cloneDeep';\n\nconst { Panel, toggle, dropdown } = settings;\n\nconst PromptHolder = styled(InputContainer)(({ theme }) => ({\n paddingTop: theme.spacing(1),\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(1),\n width: '100%',\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 Root extends React.Component {\n onPromptChanged = (prompt) => {\n const { model, onModelChanged } = this.props;\n const update = cloneDeep(model);\n\n onModelChanged({ ...update, prompt });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({ ...model, teacherInstructions });\n };\n\n onUpdateImageDimension = (dimensions) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({ ...model, imageDimensions: dimensions });\n };\n\n onImageUpload = (imageUrl) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({ ...model, imageUrl });\n };\n\n render() {\n const { configuration, imageSupport, model, onConfigurationChanged, onModelChanged, uploadSoundSupport } =\n this.props;\n const {\n baseInputConfiguration = {},\n backgroundImage = {},\n contentDimensions = {},\n maxImageWidth = {},\n maxImageHeight = {},\n prompt = {},\n settingsPanelDisabled,\n spellCheck = {},\n teacherInstructions = {},\n withRubric = {},\n language = {},\n languageChoices = {},\n mathMlOptions = {},\n } = configuration || {};\n const {\n backgroundImageEnabled,\n errors = {},\n extraCSSRules,\n promptEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n const { prompt: promptError, teacherInstructions: teacherInstructionsError } = errors;\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const panelSettings = {\n backgroundImageEnabled: backgroundImage.settings && toggle(backgroundImage.label),\n promptEnabled: prompt.settings && toggle(prompt.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 spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\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 onChangeModel={onModelChanged}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <PromptHolder label={teacherInstructions.label}>\n <EditableHtml\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={teacherInstructionsError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {teacherInstructionsError && <ErrorText>{teacherInstructionsError}</ErrorText>}\n </PromptHolder>\n )}\n\n {promptEnabled && (\n <PromptHolder label=\"Item Stem\">\n <EditableHtml\n markup={model.prompt}\n onChange={this.onPromptChanged}\n error={promptError}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n pluginProps={getPluginProps(prompt?.inputConfiguration)}\n imageSupport={imageSupport}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <ErrorText>{promptError}</ErrorText>}\n </PromptHolder>\n )}\n\n {backgroundImageEnabled && (\n <React.Fragment>\n <Typography variant=\"h6\">Define Background Image</Typography>\n\n <ImageContainer\n imageUrl={model.imageUrl}\n onUpdateImageDimension={this.onUpdateImageDimension}\n onImageUpload={this.onImageUpload}\n imageDimensions={model.imageDimensions}\n insertImage={imageSupport && imageSupport.add}\n />\n </React.Fragment>\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nRoot.propTypes = {\n configuration: PropTypes.object,\n model: PropTypes.object.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func,\n delete: PropTypes.func,\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func,\n delete: PropTypes.func,\n }),\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n};\n\nexport default Root;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"root.js","names":["_react","_interopRequireDefault","require","_configUi","_propTypes","_editableHtmlTipTap","_Typography","_styles","_imageContainer","_lodashEs","Panel","toggle","dropdown","settings","PromptHolder","styled","InputContainer","theme","paddingTop","spacing","marginTop","marginBottom","width","ErrorText","fontSize","typography","color","palette","error","main","Root","React","Component","constructor","args","_defineProperty2","default","prompt","model","onModelChanged","props","update","cloneDeep","teacherInstructions","dimensions","imageDimensions","imageUrl","render","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","baseInputConfiguration","backgroundImage","contentDimensions","maxImageWidth","maxImageHeight","settingsPanelDisabled","spellCheck","withRubric","language","languageChoices","mathMlOptions","backgroundImageEnabled","errors","extraCSSRules","promptEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","promptError","teacherInstructionsError","defaultImageMaxWidth","defaultImageMaxHeight","toolbarOpts","position","panelSettings","label","enabled","options","panelProperties","rubricEnabled","getPluginProps","createElement","layout","ConfigLayout","hideSettings","onChangeModel","onChangeConfiguration","groups","Settings","Properties","markup","onChange","onTeacherInstructionsChanged","nonEmpty","pluginProps","inputConfiguration","languageCharactersProps","onPromptChanged","Fragment","variant","onUpdateImageDimension","onImageUpload","insertImage","add","exports","propTypes","PropTypes","object","isRequired","shape","func","delete","_default"],"sources":["../src/root.jsx"],"sourcesContent":["import React from 'react';\nimport { settings, layout, InputContainer } from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport Typography from '@mui/material/Typography';\nimport { styled } from '@mui/material/styles';\n\nimport ImageContainer from './image-container';\nimport { cloneDeep } from 'lodash-es';\n\nconst { Panel, toggle, dropdown } = settings;\n\nconst PromptHolder = styled(InputContainer)(({ theme }) => ({\n paddingTop: theme.spacing(1),\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(1),\n width: '100%',\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 Root extends React.Component {\n onPromptChanged = (prompt) => {\n const { model, onModelChanged } = this.props;\n const update = cloneDeep(model);\n\n onModelChanged({ ...update, prompt });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({ ...model, teacherInstructions });\n };\n\n onUpdateImageDimension = (dimensions) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({ ...model, imageDimensions: dimensions });\n };\n\n onImageUpload = (imageUrl) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({ ...model, imageUrl });\n };\n\n render() {\n const { configuration, imageSupport, model, onConfigurationChanged, onModelChanged, uploadSoundSupport } =\n this.props;\n const {\n baseInputConfiguration = {},\n backgroundImage = {},\n contentDimensions = {},\n maxImageWidth = {},\n maxImageHeight = {},\n prompt = {},\n settingsPanelDisabled,\n spellCheck = {},\n teacherInstructions = {},\n withRubric = {},\n language = {},\n languageChoices = {},\n mathMlOptions = {},\n } = configuration || {};\n const {\n backgroundImageEnabled,\n errors = {},\n extraCSSRules,\n promptEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n const { prompt: promptError, teacherInstructions: teacherInstructionsError } = errors;\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const panelSettings = {\n backgroundImageEnabled: backgroundImage.settings && toggle(backgroundImage.label),\n promptEnabled: prompt.settings && toggle(prompt.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 spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\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 onChangeModel={onModelChanged}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <PromptHolder label={teacherInstructions.label}>\n <EditableHtml\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={teacherInstructionsError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {teacherInstructionsError && <ErrorText>{teacherInstructionsError}</ErrorText>}\n </PromptHolder>\n )}\n\n {promptEnabled && (\n <PromptHolder label=\"Item Stem\">\n <EditableHtml\n markup={model.prompt}\n onChange={this.onPromptChanged}\n error={promptError}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n pluginProps={getPluginProps(prompt?.inputConfiguration)}\n imageSupport={imageSupport}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <ErrorText>{promptError}</ErrorText>}\n </PromptHolder>\n )}\n\n {backgroundImageEnabled && (\n <React.Fragment>\n <Typography variant=\"h6\">Define Background Image</Typography>\n\n <ImageContainer\n imageUrl={model.imageUrl}\n onUpdateImageDimension={this.onUpdateImageDimension}\n onImageUpload={this.onImageUpload}\n imageDimensions={model.imageDimensions}\n insertImage={imageSupport && imageSupport.add}\n />\n </React.Fragment>\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nRoot.propTypes = {\n configuration: PropTypes.object,\n model: PropTypes.object.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func,\n delete: PropTypes.func,\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func,\n delete: PropTypes.func,\n }),\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n};\n\nexport default Root;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,mBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,WAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AAEA,IAAAM,eAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,SAAA,GAAAP,OAAA;AAEA,MAAM;EAAEQ,KAAK;EAAEC,MAAM;EAAEC;AAAS,CAAC,GAAGC,kBAAQ;AAE5C,MAAMC,YAAY,GAAG,IAAAC,cAAM,EAACC,wBAAc,CAAC,CAAC,CAAC;EAAEC;AAAM,CAAC,MAAM;EAC1DC,UAAU,EAAED,KAAK,CAACE,OAAO,CAAC,CAAC,CAAC;EAC5BC,SAAS,EAAEH,KAAK,CAACE,OAAO,CAAC,CAAC,CAAC;EAC3BE,YAAY,EAAEJ,KAAK,CAACE,OAAO,CAAC,CAAC,CAAC;EAC9BG,KAAK,EAAE;AACT,CAAC,CAAC,CAAC;AAEH,MAAMC,SAAS,GAAG,IAAAR,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEE;AAAM,CAAC,MAAM;EAC9CO,QAAQ,EAAEP,KAAK,CAACQ,UAAU,CAACD,QAAQ,GAAG,CAAC;EACvCE,KAAK,EAAET,KAAK,CAACU,OAAO,CAACC,KAAK,CAACC,IAAI;EAC/BX,UAAU,EAAED,KAAK,CAACE,OAAO,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEI,MAAMW,IAAI,SAASC,cAAK,CAACC,SAAS,CAAC;EAAAC,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,2BACrBC,MAAM,IAAK;MAC5B,MAAM;QAAEC,KAAK;QAAEC;MAAe,CAAC,GAAG,IAAI,CAACC,KAAK;MAC5C,MAAMC,MAAM,GAAG,IAAAC,mBAAS,EAACJ,KAAK,CAAC;MAE/BC,cAAc,CAAC;QAAE,GAAGE,MAAM;QAAEJ;MAAO,CAAC,CAAC;IACvC,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,wCAE+BO,mBAAmB,IAAK;MACtD,MAAM;QAAEL,KAAK;QAAEC;MAAe,CAAC,GAAG,IAAI,CAACC,KAAK;MAE5CD,cAAc,CAAC;QAAE,GAAGD,KAAK;QAAEK;MAAoB,CAAC,CAAC;IACnD,CAAC;IAAA,IAAAR,gBAAA,CAAAC,OAAA,kCAEyBQ,UAAU,IAAK;MACvC,MAAM;QAAEN,KAAK;QAAEC;MAAe,CAAC,GAAG,IAAI,CAACC,KAAK;MAE5CD,cAAc,CAAC;QAAE,GAAGD,KAAK;QAAEO,eAAe,EAAED;MAAW,CAAC,CAAC;IAC3D,CAAC;IAAA,IAAAT,gBAAA,CAAAC,OAAA,yBAEgBU,QAAQ,IAAK;MAC5B,MAAM;QAAER,KAAK;QAAEC;MAAe,CAAC,GAAG,IAAI,CAACC,KAAK;MAE5CD,cAAc,CAAC;QAAE,GAAGD,KAAK;QAAEQ;MAAS,CAAC,CAAC;IACxC,CAAC;EAAA;EAEDC,MAAMA,CAAA,EAAG;IACP,MAAM;MAAEC,aAAa;MAAEC,YAAY;MAAEX,KAAK;MAAEY,sBAAsB;MAAEX,cAAc;MAAEY;IAAmB,CAAC,GACtG,IAAI,CAACX,KAAK;IACZ,MAAM;MACJY,sBAAsB,GAAG,CAAC,CAAC;MAC3BC,eAAe,GAAG,CAAC,CAAC;MACpBC,iBAAiB,GAAG,CAAC,CAAC;MACtBC,aAAa,GAAG,CAAC,CAAC;MAClBC,cAAc,GAAG,CAAC,CAAC;MACnBnB,MAAM,GAAG,CAAC,CAAC;MACXoB,qBAAqB;MACrBC,UAAU,GAAG,CAAC,CAAC;MACff,mBAAmB,GAAG,CAAC,CAAC;MACxBgB,UAAU,GAAG,CAAC,CAAC;MACfC,QAAQ,GAAG,CAAC,CAAC;MACbC,eAAe,GAAG,CAAC,CAAC;MACpBC,aAAa,GAAG,CAAC;IACnB,CAAC,GAAGd,aAAa,IAAI,CAAC,CAAC;IACvB,MAAM;MACJe,sBAAsB;MACtBC,MAAM,GAAG,CAAC,CAAC;MACXC,aAAa;MACbC,aAAa;MACbC,iBAAiB;MACjBC,0BAA0B;MAC1BC;IACF,CAAC,GAAG/B,KAAK,IAAI,CAAC,CAAC;IACf,MAAM;MAAED,MAAM,EAAEiC,WAAW;MAAE3B,mBAAmB,EAAE4B;IAAyB,CAAC,GAAGP,MAAM;IAErF,MAAMQ,oBAAoB,GAAGjB,aAAa,IAAIA,aAAa,CAAClB,MAAM;IAClE,MAAMoC,qBAAqB,GAAGjB,cAAc,IAAIA,cAAc,CAACnB,MAAM;IAErE,MAAMqC,WAAW,GAAG;MAClBC,QAAQ,EAAEN,qBAAqB,KAAK,KAAK,GAAG,KAAK,GAAG;IACtD,CAAC;IAED,MAAMO,aAAa,GAAG;MACpBb,sBAAsB,EAAEV,eAAe,CAACxC,QAAQ,IAAIF,MAAM,CAAC0C,eAAe,CAACwB,KAAK,CAAC;MACjFX,aAAa,EAAE7B,MAAM,CAACxB,QAAQ,IAAIF,MAAM,CAAC0B,MAAM,CAACwC,KAAK,CAAC;MACtD,kBAAkB,EAAEjB,QAAQ,CAAC/C,QAAQ,IAAIF,MAAM,CAACiD,QAAQ,CAACiB,KAAK,EAAE,IAAI,CAAC;MACrEjB,QAAQ,EAAEA,QAAQ,CAAC/C,QAAQ,IAAI+C,QAAQ,CAACkB,OAAO,IAAIlE,QAAQ,CAACiD,eAAe,CAACgB,KAAK,EAAEhB,eAAe,CAACkB,OAAO;IAC5G,CAAC;IAED,MAAMC,eAAe,GAAG;MACtBZ,0BAA0B,EAAEzB,mBAAmB,CAAC9B,QAAQ,IAAIF,MAAM,CAACgC,mBAAmB,CAACkC,KAAK,CAAC;MAC7FV,iBAAiB,EAAET,UAAU,CAAC7C,QAAQ,IAAIF,MAAM,CAAC+C,UAAU,CAACmB,KAAK,CAAC;MAClEI,aAAa,EAAEtB,UAAU,EAAE9C,QAAQ,IAAIF,MAAM,CAACgD,UAAU,EAAEkB,KAAK;IACjE,CAAC;IAED,MAAMK,cAAc,GAAGA,CAAC1C,KAAK,GAAG,CAAC,CAAC,MAAM;MACtC,GAAGY,sBAAsB;MACzB,GAAGZ;IACL,CAAC,CAAC;IAEF,oBACExC,MAAA,CAAAoC,OAAA,CAAA+C,aAAA,CAAChF,SAAA,CAAAiF,MAAM,CAACC,YAAY;MAClBpB,aAAa,EAAEA,aAAc;MAC7BrB,UAAU,EAAEU,iBAAkB;MAC9BgC,YAAY,EAAE7B,qBAAsB;MACpC5C,QAAQ,eACNb,MAAA,CAAAoC,OAAA,CAAA+C,aAAA,CAACzE,KAAK;QACJ4B,KAAK,EAAEA,KAAM;QACbiD,aAAa,EAAEhD,cAAe;QAC9BS,aAAa,EAAEA,aAAc;QAC7BwC,qBAAqB,EAAEtC,sBAAuB;QAC9CuC,MAAM,EAAE;UACNC,QAAQ,EAAEd,aAAa;UACvBe,UAAU,EAAEX;QACd;MAAE,CACH;IACF,GAEAZ,0BAA0B,iBACzBpE,MAAA,CAAAoC,OAAA,CAAA+C,aAAA,CAACrE,YAAY;MAAC+D,KAAK,EAAElC,mBAAmB,CAACkC;IAAM,gBAC7C7E,MAAA,CAAAoC,OAAA,CAAA+C,aAAA,CAAC9E,mBAAA,CAAA+B,OAAY;MACXwD,MAAM,EAAEtD,KAAK,CAACK,mBAAmB,IAAI,EAAG;MACxCkD,QAAQ,EAAE,IAAI,CAACC,4BAA6B;MAC5C7C,YAAY,EAAEA,YAAa;MAC3B8C,QAAQ,EAAE,KAAM;MAChBnE,KAAK,EAAE2C,wBAAyB;MAChCG,WAAW,EAAEA,WAAY;MACzBsB,WAAW,EAAEd,cAAc,CAACvC,mBAAmB,EAAEsD,kBAAkB,CAAE;MACrEvC,UAAU,EAAES,iBAAkB;MAC9BZ,aAAa,EAAGA,aAAa,IAAIA,aAAa,CAACZ,mBAAmB,IAAK6B,oBAAqB;MAC5FhB,cAAc,EAAGA,cAAc,IAAIA,cAAc,CAACb,mBAAmB,IAAK8B,qBAAsB;MAChGtB,kBAAkB,EAAEA,kBAAmB;MACvC+C,uBAAuB,EAAE,CAAC;QAAEtC,QAAQ,EAAE;MAAU,CAAC,EAAE;QAAEA,QAAQ,EAAE;MAAU,CAAC,CAAE;MAC5EE,aAAa,EAAEA;IAAc,CAC9B,CAAC,EACDS,wBAAwB,iBAAIvE,MAAA,CAAAoC,OAAA,CAAA+C,aAAA,CAAC5D,SAAS,QAAEgD,wBAAoC,CACjE,CACf,EAEAL,aAAa,iBACZlE,MAAA,CAAAoC,OAAA,CAAA+C,aAAA,CAACrE,YAAY;MAAC+D,KAAK,EAAC;IAAW,gBAC7B7E,MAAA,CAAAoC,OAAA,CAAA+C,aAAA,CAAC9E,mBAAA,CAAA+B,OAAY;MACXwD,MAAM,EAAEtD,KAAK,CAACD,MAAO;MACrBwD,QAAQ,EAAE,IAAI,CAACM,eAAgB;MAC/BvE,KAAK,EAAE0C,WAAY;MACnBI,WAAW,EAAEA,WAAY;MACzBhB,UAAU,EAAES,iBAAkB;MAC9B6B,WAAW,EAAEd,cAAc,CAAC7C,MAAM,EAAE4D,kBAAkB,CAAE;MACxDhD,YAAY,EAAEA,YAAa;MAC3BM,aAAa,EAAEiB,oBAAqB;MACpChB,cAAc,EAAEiB,qBAAsB;MACtCtB,kBAAkB,EAAEA,kBAAmB;MACvC+C,uBAAuB,EAAE,CAAC;QAAEtC,QAAQ,EAAE;MAAU,CAAC,EAAE;QAAEA,QAAQ,EAAE;MAAU,CAAC,CAAE;MAC5EE,aAAa,EAAEA;IAAc,CAC9B,CAAC,EACDQ,WAAW,iBAAItE,MAAA,CAAAoC,OAAA,CAAA+C,aAAA,CAAC5D,SAAS,QAAE+C,WAAuB,CACvC,CACf,EAEAP,sBAAsB,iBACrB/D,MAAA,CAAAoC,OAAA,CAAA+C,aAAA,CAACnF,MAAA,CAAAoC,OAAK,CAACgE,QAAQ,qBACbpG,MAAA,CAAAoC,OAAA,CAAA+C,aAAA,CAAC7E,WAAA,CAAA8B,OAAU;MAACiE,OAAO,EAAC;IAAI,GAAC,yBAAmC,CAAC,eAE7DrG,MAAA,CAAAoC,OAAA,CAAA+C,aAAA,CAAC3E,eAAA,CAAA4B,OAAc;MACbU,QAAQ,EAAER,KAAK,CAACQ,QAAS;MACzBwD,sBAAsB,EAAE,IAAI,CAACA,sBAAuB;MACpDC,aAAa,EAAE,IAAI,CAACA,aAAc;MAClC1D,eAAe,EAAEP,KAAK,CAACO,eAAgB;MACvC2D,WAAW,EAAEvD,YAAY,IAAIA,YAAY,CAACwD;IAAI,CAC/C,CACa,CAEC,CAAC;EAE1B;AACF;AAACC,OAAA,CAAA5E,IAAA,GAAAA,IAAA;AAEDA,IAAI,CAAC6E,SAAS,GAAG;EACf3D,aAAa,EAAE4D,kBAAS,CAACC,MAAM;EAC/BvE,KAAK,EAAEsE,kBAAS,CAACC,MAAM,CAACC,UAAU;EAClC7D,YAAY,EAAE2D,kBAAS,CAACG,KAAK,CAAC;IAC5BN,GAAG,EAAEG,kBAAS,CAACI,IAAI;IACnBC,MAAM,EAAEL,kBAAS,CAACI;EACpB,CAAC,CAAC;EACF7D,kBAAkB,EAAEyD,kBAAS,CAACG,KAAK,CAAC;IAClCN,GAAG,EAAEG,kBAAS,CAACI,IAAI;IACnBC,MAAM,EAAEL,kBAAS,CAACI;EACpB,CAAC,CAAC;EACFzE,cAAc,EAAEqE,kBAAS,CAACI,IAAI,CAACF,UAAU;EACzC5D,sBAAsB,EAAE0D,kBAAS,CAACI,IAAI,CAACF;AACzC,CAAC;AAAC,IAAAI,QAAA,GAAAR,OAAA,CAAAtE,OAAA,GAEaN,IAAI","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/drawing-response-configure",
3
3
  "private": true,
4
- "version": "10.0.0-beta.1",
4
+ "version": "10.1.1-next.1",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
@@ -12,13 +12,13 @@
12
12
  "@mui/icons-material": "^7.3.4",
13
13
  "@mui/material": "^7.3.4",
14
14
  "@pie-framework/pie-configure-events": "^1.3.0",
15
- "@pie-lib/config-ui": "12.1.1-next.0",
16
- "@pie-lib/editable-html-tip-tap": "1.1.1-next.0",
15
+ "@pie-lib/config-ui": "12.2.0-next.11",
16
+ "@pie-lib/editable-html-tip-tap": "1.2.0-next.11",
17
17
  "debug": "^4.1.1",
18
- "lodash": "^4.17.15",
18
+ "lodash-es": "^4.17.23",
19
19
  "prop-types": "^15.7.2",
20
- "react": "18.2.0",
21
- "react-dom": "18.2.0"
20
+ "react": "18.3.1",
21
+ "react-dom": "18.3.1"
22
22
  },
23
23
  "license": "ISC"
24
24
  }
@@ -13,6 +13,7 @@ export default {
13
13
  },
14
14
  configuration: {
15
15
  baseInputConfiguration: {
16
+ h3: { disabled: true },
16
17
  audio: { disabled: false },
17
18
  video: { disabled: false },
18
19
  image: { disabled: false },
@@ -6,7 +6,7 @@ import Typography from '@mui/material/Typography';
6
6
  import { styled } from '@mui/material/styles';
7
7
 
8
8
  import ImageContainer from './image-container';
9
- import cloneDeep from 'lodash/cloneDeep';
9
+ import { cloneDeep } from 'lodash-es';
10
10
 
11
11
  const { Panel, toggle, dropdown } = settings;
12
12
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/drawing-response-controller",
3
3
  "private": true,
4
- "version": "5.0.0-beta.0",
4
+ "version": "5.1.0-next.1",
5
5
  "description": "",
6
6
  "scripts": {
7
7
  "test": "echo \"Error: no test specified\" && exit 1"
@@ -9,9 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
- var _omit = _interopRequireDefault(require("lodash/omit"));
13
- var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
14
- var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
12
+ var _lodashEs = require("lodash-es");
15
13
  var _reactKonva = require("react-konva");
16
14
  var _styles = require("@mui/material/styles");
17
15
  var _translator = _interopRequireDefault(require("@pie-lib/translator"));
@@ -57,7 +55,7 @@ class DrawableMain extends _react.default.Component {
57
55
  value: TextEntry[`textarea_${text.id}`] && TextEntry[`textarea_${text.id}`].value
58
56
  }))
59
57
  };
60
- if (!(0, _isEqual.default)(newSession, session)) {
58
+ if (!(0, _lodashEs.isEqual)(newSession, session)) {
61
59
  onSessionChange({
62
60
  ...session,
63
61
  ...newSession
@@ -207,9 +205,9 @@ class DrawableMain extends _react.default.Component {
207
205
  drawables: currentDrawables
208
206
  } = this.state;
209
207
  if (nextProps.session.drawables) {
210
- const newDrawables = (0, _cloneDeep.default)(nextProps.session.drawables);
208
+ const newDrawables = (0, _lodashEs.cloneDeep)(nextProps.session.drawables);
211
209
  const drawablesString = JSON.stringify(currentDrawables);
212
- const sessionDrawableString = JSON.stringify((newDrawables || []).map(drawable => (0, _omit.default)(drawable, 'type')));
210
+ const sessionDrawableString = JSON.stringify((newDrawables || []).map(drawable => (0, _lodashEs.omit)(drawable, 'type')));
213
211
  if (drawablesString !== sessionDrawableString) {
214
212
  const drawableArray = nextProps.session.drawables;
215
213
  this.setState({
@@ -221,7 +219,7 @@ class DrawableMain extends _react.default.Component {
221
219
  ...(TextEntry[`text_${text.id}`] && TextEntry[`text_${text.id}`].attrs),
222
220
  value: TextEntry[`textarea_${text.id}`] && TextEntry[`textarea_${text.id}`].value
223
221
  }));
224
- if (!(0, _isEqual.default)(currentTexts, nextProps.session.texts)) {
222
+ if (!(0, _lodashEs.isEqual)(currentTexts, nextProps.session.texts)) {
225
223
  TextEntry.setAll(nextProps.session.texts || []);
226
224
  }
227
225
  }
@@ -1 +1 @@
1
- {"version":3,"file":"drawable-main.js","names":["_react","_interopRequireDefault","require","_propTypes","_omit","_cloneDeep","_isEqual","_reactKonva","_styles","_translator","_drawableImage","_button","_factory","translator","Translator","Wrapper","styled","display","flexWrap","justifyContent","Base","position","width","UndoControls","marginTop","marginRight","DrawableMain","React","Component","constructor","props","_defineProperty2","default","onSessionChange","session","TextEntry","drawableDimensions","drawables","state","newSession","map","d","toJson","texts","all","text","id","attrs","value","isEqual","setState","isOver","e","document","body","style","overflow","newDrawable","textIsSelected","toolActive","fillColor","outlineColor","scale","length","stage","target","getStage","x","y","getPointerPosition","factory","type","startx","starty","createdAt","Date","drawableToAdd","registerMovement","push","handleSessionChange","bind","updatedNewDrawable","newDrawables","allData","sort","a","b","lastElement","pop","updatedAt","layer","componentWillUnmount","UNSAFE_componentWillReceiveProps","nextProps","currentDrawables","cloneDeep","drawablesString","JSON","stringify","sessionDrawableString","drawable","omit","drawableArray","currentTexts","setAll","render","disabled","imageDimensions","imageUrl","paintColor","backgroundImageEnabled","language","draggable","paint","drawableProps","forceUpdate","toggleTextSelected","onMouseOverElement","onMouseOutElement","listeners","onMouseUp","handleMouseUp","onTouchEnd","onMouseMove","handleMouseMove","onTouchMove","onMouseDown","handleMouseDown","onTouchStart","imageHeight","height","imageWidth","createElement","onClick","handleUndo","label","t","lng","handleClearAll","dimensions","url","renderTextareas","left","top","touchAction","cursor","Stage","_extends2","key","scaleX","scaleY","ref","Layer","exports","propTypes","PropTypes","bool","object","isRequired","string","func","number","_default"],"sources":["../../src/drawing-response/drawable-main.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport omit from 'lodash/omit';\nimport cloneDeep from 'lodash/cloneDeep';\nimport isEqual from 'lodash/isEqual';\nimport { Layer, Stage } from 'react-konva';\nimport { styled } from '@mui/material/styles';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\nimport ImageBackground from './drawable-image';\nimport Button from './button';\nimport factory from './factory';\n\nconst Wrapper = styled('div')({\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'flex-end',\n});\n\nconst Base = styled('div')({\n position: 'relative',\n width: '100%',\n});\n\nconst UndoControls = styled('div')({\n marginTop: -43,\n marginRight: 10,\n position: 'absolute',\n});\n\nexport class DrawableMain extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n drawables: [],\n newDrawable: [],\n textIsSelected: false,\n };\n this.stage = null;\n this.layer = null;\n }\n\n componentWillUnmount() {\n // Clean up refs to prevent React Konva errors\n this.stage = null;\n this.layer = null;\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps.session) {\n const { TextEntry } = nextProps;\n const { drawables: currentDrawables } = this.state;\n\n if (nextProps.session.drawables) {\n const newDrawables = cloneDeep(nextProps.session.drawables);\n const drawablesString = JSON.stringify(currentDrawables);\n const sessionDrawableString = JSON.stringify((newDrawables || []).map((drawable) => omit(drawable, 'type')));\n\n if (drawablesString !== sessionDrawableString) {\n const drawableArray = nextProps.session.drawables;\n\n this.setState({\n drawables: drawableArray.map((drawable) => factory(drawable.type, drawable)),\n });\n }\n\n const currentTexts = TextEntry.all.map((text) => ({\n ...text,\n ...(TextEntry[`text_${text.id}`] && TextEntry[`text_${text.id}`].attrs),\n value: TextEntry[`textarea_${text.id}`] && TextEntry[`textarea_${text.id}`].value,\n }));\n\n if (!isEqual(currentTexts, nextProps.session.texts)) {\n TextEntry.setAll(nextProps.session.texts || []);\n }\n }\n } else {\n this.handleSessionChange();\n }\n }\n\n handleSessionChange = () => {\n const { onSessionChange, session, TextEntry, drawableDimensions } = this.props;\n const { drawables } = this.state;\n\n const newSession = {\n width: drawableDimensions.width,\n drawables: drawables.map((d) => d.toJson()),\n texts: TextEntry.all.map((text) => ({\n ...text,\n ...(TextEntry[`text_${text.id}`] && TextEntry[`text_${text.id}`].attrs),\n value: TextEntry[`textarea_${text.id}`] && TextEntry[`textarea_${text.id}`].value,\n })),\n };\n\n if (!isEqual(newSession, session)) {\n onSessionChange({\n ...session,\n ...newSession,\n });\n }\n };\n\n onMouseOverElement = () => this.setState({ isOver: true });\n\n onMouseOutElement = () => this.setState({ isOver: false });\n\n handleMouseDown = (e) => {\n // ONLY IF MOBILE?\n document.body.style.overflow = 'hidden';\n\n const { newDrawable, textIsSelected } = this.state;\n const { toolActive, fillColor, outlineColor, scale } = this.props;\n\n if (newDrawable.length === 0 && !textIsSelected) {\n const stage = e.target.getStage();\n if (!stage) return;\n\n const { x, y } = stage.getPointerPosition();\n\n const newDrawable = factory(toolActive.type, {\n startx: x / scale,\n starty: y / scale,\n fillColor,\n outlineColor,\n createdAt: new Date(),\n });\n\n this.setState({\n newDrawable: [newDrawable],\n });\n }\n };\n\n handleMouseUp = (e) => {\n // ONLY IF MOBILE?\n document.body.style.overflow = 'initial';\n\n const { newDrawable, drawables } = this.state;\n const { scale } = this.props;\n\n if (newDrawable.length === 1) {\n const stage = e.target.getStage();\n if (!stage) return;\n\n const { x, y } = stage.getPointerPosition();\n const drawableToAdd = newDrawable[0];\n\n drawableToAdd.registerMovement(x / scale, y / scale);\n drawables.push(drawableToAdd);\n\n this.setState(\n {\n newDrawable: [],\n drawables,\n },\n this.handleSessionChange.bind(this, drawableToAdd),\n );\n }\n };\n\n handleMouseMove = (e) => {\n const { newDrawable } = this.state;\n const { scale } = this.props;\n\n if (newDrawable.length === 1) {\n const stage = e.target.getStage();\n if (!stage) return;\n\n const { x, y } = stage.getPointerPosition();\n const updatedNewDrawable = newDrawable[0];\n\n updatedNewDrawable.registerMovement(x / scale, y / scale);\n\n this.setState({\n newDrawable: [updatedNewDrawable],\n });\n }\n };\n\n handleUndo = () => {\n const { drawables } = this.state;\n const { TextEntry } = this.props;\n\n const newDrawables = [...drawables];\n const allData = [...drawables, ...TextEntry.all];\n\n allData.sort((a, b) => new Date(a.createdAt) - new Date(b.createdAt));\n const lastElement = allData[allData.length - 1];\n\n if (lastElement && lastElement.type === 'text-entry') {\n TextEntry.all.pop();\n this.setState({ updatedAt: new Date() }, this.handleSessionChange);\n } else {\n newDrawables.pop();\n this.setState({ drawables: newDrawables }, this.handleSessionChange);\n }\n };\n\n handleClearAll = () => {\n const { TextEntry } = this.props;\n\n TextEntry.all = [];\n this.setState({ drawables: [], updatedAt: new Date() }, this.handleSessionChange);\n };\n\n toggleTextSelected = (textIsSelected) => this.setState({ textIsSelected });\n\n render() {\n const {\n disabled,\n drawableDimensions,\n fillColor,\n imageDimensions,\n imageUrl,\n paintColor,\n outlineColor,\n TextEntry,\n backgroundImageEnabled = true,\n toolActive: { type },\n scale,\n language,\n } = this.props;\n const { isOver, newDrawable } = this.state;\n\n const draggable = type === 'Select';\n const paint = type === 'PaintBucket';\n const drawables = [...this.state.drawables, ...this.state.newDrawable];\n\n const drawableProps = {\n draggable: draggable && !disabled,\n disabled,\n paint,\n fillColor,\n forceUpdate: () => this.setState({ updatedAt: new Date() }),\n paintColor,\n outlineColor,\n toggleTextSelected: this.toggleTextSelected,\n handleSessionChange: this.handleSessionChange,\n stage: this.stage,\n onMouseOverElement: this.onMouseOverElement,\n onMouseOutElement: this.onMouseOutElement,\n scale,\n };\n\n let listeners = {};\n\n if (!disabled) {\n listeners = {\n onMouseUp: this.handleMouseUp,\n onTouchEnd: this.handleMouseUp,\n onMouseMove: this.handleMouseMove,\n onTouchMove: this.handleMouseMove,\n };\n\n if (!draggable) {\n listeners.onMouseDown = this.handleMouseDown;\n listeners.onTouchStart = this.handleMouseDown;\n }\n }\n\n const imageHeight = imageDimensions?.height * scale;\n const imageWidth = imageDimensions?.width * scale;\n\n return (\n <Wrapper>\n <UndoControls>\n <Button\n disabled={disabled}\n onClick={this.handleUndo}\n label={translator.t('common:undo', { lng: language })}\n />\n <Button\n disabled={disabled}\n onClick={this.handleClearAll}\n label={translator.t('common:clearAll', { lng: language })}\n />\n </UndoControls>\n <Base>\n {backgroundImageEnabled && imageUrl && (\n <ImageBackground dimensions={{ height: imageHeight, width: imageWidth }} url={imageUrl} />\n )}\n\n {TextEntry.renderTextareas()}\n\n {/* Wrap Stage in a styled div instead of styling Stage directly */}\n <div\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n touchAction: 'none',\n cursor: draggable && (isOver || newDrawable.length === 1) ? 'pointer' : 'default',\n }}\n >\n <Stage\n key=\"drawing-stage\"\n scaleX={scale}\n scaleY={scale}\n ref={(ref) => (this.stage = ref)}\n height={drawableDimensions.height}\n width={drawableDimensions.width}\n {...listeners}\n >\n <Layer ref={(ref) => (this.layer = ref)}>\n {drawables.map((drawable, key) => drawable.render({ ...drawableProps, key }))}\n {TextEntry.render(drawableProps)}\n </Layer>\n </Stage>\n </div>\n </Base>\n </Wrapper>\n );\n }\n}\n\nDrawableMain.propTypes = {\n disabled: PropTypes.bool,\n drawableDimensions: PropTypes.object.isRequired,\n imageDimensions: PropTypes.object.isRequired,\n fillColor: PropTypes.string.isRequired,\n onSessionChange: PropTypes.func.isRequired,\n paintColor: PropTypes.string.isRequired,\n outlineColor: PropTypes.string.isRequired,\n imageUrl: PropTypes.string.isRequired,\n TextEntry: PropTypes.object.isRequired,\n toolActive: PropTypes.object.isRequired,\n session: PropTypes.object.isRequired,\n backgroundImageEnabled: PropTypes.bool.isRequired,\n scale: PropTypes.number.isRequired,\n language: PropTypes.string,\n};\n\nexport default DrawableMain;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"drawable-main.js","names":["_react","_interopRequireDefault","require","_propTypes","_lodashEs","_reactKonva","_styles","_translator","_drawableImage","_button","_factory","translator","Translator","Wrapper","styled","display","flexWrap","justifyContent","Base","position","width","UndoControls","marginTop","marginRight","DrawableMain","React","Component","constructor","props","_defineProperty2","default","onSessionChange","session","TextEntry","drawableDimensions","drawables","state","newSession","map","d","toJson","texts","all","text","id","attrs","value","isEqual","setState","isOver","e","document","body","style","overflow","newDrawable","textIsSelected","toolActive","fillColor","outlineColor","scale","length","stage","target","getStage","x","y","getPointerPosition","factory","type","startx","starty","createdAt","Date","drawableToAdd","registerMovement","push","handleSessionChange","bind","updatedNewDrawable","newDrawables","allData","sort","a","b","lastElement","pop","updatedAt","layer","componentWillUnmount","UNSAFE_componentWillReceiveProps","nextProps","currentDrawables","cloneDeep","drawablesString","JSON","stringify","sessionDrawableString","drawable","omit","drawableArray","currentTexts","setAll","render","disabled","imageDimensions","imageUrl","paintColor","backgroundImageEnabled","language","draggable","paint","drawableProps","forceUpdate","toggleTextSelected","onMouseOverElement","onMouseOutElement","listeners","onMouseUp","handleMouseUp","onTouchEnd","onMouseMove","handleMouseMove","onTouchMove","onMouseDown","handleMouseDown","onTouchStart","imageHeight","height","imageWidth","createElement","onClick","handleUndo","label","t","lng","handleClearAll","dimensions","url","renderTextareas","left","top","touchAction","cursor","Stage","_extends2","key","scaleX","scaleY","ref","Layer","exports","propTypes","PropTypes","bool","object","isRequired","string","func","number","_default"],"sources":["../../src/drawing-response/drawable-main.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { cloneDeep, isEqual, omit } from 'lodash-es';\nimport { Layer, Stage } from 'react-konva';\nimport { styled } from '@mui/material/styles';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\nimport ImageBackground from './drawable-image';\nimport Button from './button';\nimport factory from './factory';\n\nconst Wrapper = styled('div')({\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'flex-end',\n});\n\nconst Base = styled('div')({\n position: 'relative',\n width: '100%',\n});\n\nconst UndoControls = styled('div')({\n marginTop: -43,\n marginRight: 10,\n position: 'absolute',\n});\n\nexport class DrawableMain extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n drawables: [],\n newDrawable: [],\n textIsSelected: false,\n };\n this.stage = null;\n this.layer = null;\n }\n\n componentWillUnmount() {\n // Clean up refs to prevent React Konva errors\n this.stage = null;\n this.layer = null;\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps.session) {\n const { TextEntry } = nextProps;\n const { drawables: currentDrawables } = this.state;\n\n if (nextProps.session.drawables) {\n const newDrawables = cloneDeep(nextProps.session.drawables);\n const drawablesString = JSON.stringify(currentDrawables);\n const sessionDrawableString = JSON.stringify((newDrawables || []).map((drawable) => omit(drawable, 'type')));\n\n if (drawablesString !== sessionDrawableString) {\n const drawableArray = nextProps.session.drawables;\n\n this.setState({\n drawables: drawableArray.map((drawable) => factory(drawable.type, drawable)),\n });\n }\n\n const currentTexts = TextEntry.all.map((text) => ({\n ...text,\n ...(TextEntry[`text_${text.id}`] && TextEntry[`text_${text.id}`].attrs),\n value: TextEntry[`textarea_${text.id}`] && TextEntry[`textarea_${text.id}`].value,\n }));\n\n if (!isEqual(currentTexts, nextProps.session.texts)) {\n TextEntry.setAll(nextProps.session.texts || []);\n }\n }\n } else {\n this.handleSessionChange();\n }\n }\n\n handleSessionChange = () => {\n const { onSessionChange, session, TextEntry, drawableDimensions } = this.props;\n const { drawables } = this.state;\n\n const newSession = {\n width: drawableDimensions.width,\n drawables: drawables.map((d) => d.toJson()),\n texts: TextEntry.all.map((text) => ({\n ...text,\n ...(TextEntry[`text_${text.id}`] && TextEntry[`text_${text.id}`].attrs),\n value: TextEntry[`textarea_${text.id}`] && TextEntry[`textarea_${text.id}`].value,\n })),\n };\n\n if (!isEqual(newSession, session)) {\n onSessionChange({\n ...session,\n ...newSession,\n });\n }\n };\n\n onMouseOverElement = () => this.setState({ isOver: true });\n\n onMouseOutElement = () => this.setState({ isOver: false });\n\n handleMouseDown = (e) => {\n // ONLY IF MOBILE?\n document.body.style.overflow = 'hidden';\n\n const { newDrawable, textIsSelected } = this.state;\n const { toolActive, fillColor, outlineColor, scale } = this.props;\n\n if (newDrawable.length === 0 && !textIsSelected) {\n const stage = e.target.getStage();\n if (!stage) return;\n\n const { x, y } = stage.getPointerPosition();\n\n const newDrawable = factory(toolActive.type, {\n startx: x / scale,\n starty: y / scale,\n fillColor,\n outlineColor,\n createdAt: new Date(),\n });\n\n this.setState({\n newDrawable: [newDrawable],\n });\n }\n };\n\n handleMouseUp = (e) => {\n // ONLY IF MOBILE?\n document.body.style.overflow = 'initial';\n\n const { newDrawable, drawables } = this.state;\n const { scale } = this.props;\n\n if (newDrawable.length === 1) {\n const stage = e.target.getStage();\n if (!stage) return;\n\n const { x, y } = stage.getPointerPosition();\n const drawableToAdd = newDrawable[0];\n\n drawableToAdd.registerMovement(x / scale, y / scale);\n drawables.push(drawableToAdd);\n\n this.setState(\n {\n newDrawable: [],\n drawables,\n },\n this.handleSessionChange.bind(this, drawableToAdd),\n );\n }\n };\n\n handleMouseMove = (e) => {\n const { newDrawable } = this.state;\n const { scale } = this.props;\n\n if (newDrawable.length === 1) {\n const stage = e.target.getStage();\n if (!stage) return;\n\n const { x, y } = stage.getPointerPosition();\n const updatedNewDrawable = newDrawable[0];\n\n updatedNewDrawable.registerMovement(x / scale, y / scale);\n\n this.setState({\n newDrawable: [updatedNewDrawable],\n });\n }\n };\n\n handleUndo = () => {\n const { drawables } = this.state;\n const { TextEntry } = this.props;\n\n const newDrawables = [...drawables];\n const allData = [...drawables, ...TextEntry.all];\n\n allData.sort((a, b) => new Date(a.createdAt) - new Date(b.createdAt));\n const lastElement = allData[allData.length - 1];\n\n if (lastElement && lastElement.type === 'text-entry') {\n TextEntry.all.pop();\n this.setState({ updatedAt: new Date() }, this.handleSessionChange);\n } else {\n newDrawables.pop();\n this.setState({ drawables: newDrawables }, this.handleSessionChange);\n }\n };\n\n handleClearAll = () => {\n const { TextEntry } = this.props;\n\n TextEntry.all = [];\n this.setState({ drawables: [], updatedAt: new Date() }, this.handleSessionChange);\n };\n\n toggleTextSelected = (textIsSelected) => this.setState({ textIsSelected });\n\n render() {\n const {\n disabled,\n drawableDimensions,\n fillColor,\n imageDimensions,\n imageUrl,\n paintColor,\n outlineColor,\n TextEntry,\n backgroundImageEnabled = true,\n toolActive: { type },\n scale,\n language,\n } = this.props;\n const { isOver, newDrawable } = this.state;\n\n const draggable = type === 'Select';\n const paint = type === 'PaintBucket';\n const drawables = [...this.state.drawables, ...this.state.newDrawable];\n\n const drawableProps = {\n draggable: draggable && !disabled,\n disabled,\n paint,\n fillColor,\n forceUpdate: () => this.setState({ updatedAt: new Date() }),\n paintColor,\n outlineColor,\n toggleTextSelected: this.toggleTextSelected,\n handleSessionChange: this.handleSessionChange,\n stage: this.stage,\n onMouseOverElement: this.onMouseOverElement,\n onMouseOutElement: this.onMouseOutElement,\n scale,\n };\n\n let listeners = {};\n\n if (!disabled) {\n listeners = {\n onMouseUp: this.handleMouseUp,\n onTouchEnd: this.handleMouseUp,\n onMouseMove: this.handleMouseMove,\n onTouchMove: this.handleMouseMove,\n };\n\n if (!draggable) {\n listeners.onMouseDown = this.handleMouseDown;\n listeners.onTouchStart = this.handleMouseDown;\n }\n }\n\n const imageHeight = imageDimensions?.height * scale;\n const imageWidth = imageDimensions?.width * scale;\n\n return (\n <Wrapper>\n <UndoControls>\n <Button\n disabled={disabled}\n onClick={this.handleUndo}\n label={translator.t('common:undo', { lng: language })}\n />\n <Button\n disabled={disabled}\n onClick={this.handleClearAll}\n label={translator.t('common:clearAll', { lng: language })}\n />\n </UndoControls>\n <Base>\n {backgroundImageEnabled && imageUrl && (\n <ImageBackground dimensions={{ height: imageHeight, width: imageWidth }} url={imageUrl} />\n )}\n\n {TextEntry.renderTextareas()}\n\n {/* Wrap Stage in a styled div instead of styling Stage directly */}\n <div\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n touchAction: 'none',\n cursor: draggable && (isOver || newDrawable.length === 1) ? 'pointer' : 'default',\n }}\n >\n <Stage\n key=\"drawing-stage\"\n scaleX={scale}\n scaleY={scale}\n ref={(ref) => (this.stage = ref)}\n height={drawableDimensions.height}\n width={drawableDimensions.width}\n {...listeners}\n >\n <Layer ref={(ref) => (this.layer = ref)}>\n {drawables.map((drawable, key) => drawable.render({ ...drawableProps, key }))}\n {TextEntry.render(drawableProps)}\n </Layer>\n </Stage>\n </div>\n </Base>\n </Wrapper>\n );\n }\n}\n\nDrawableMain.propTypes = {\n disabled: PropTypes.bool,\n drawableDimensions: PropTypes.object.isRequired,\n imageDimensions: PropTypes.object.isRequired,\n fillColor: PropTypes.string.isRequired,\n onSessionChange: PropTypes.func.isRequired,\n paintColor: PropTypes.string.isRequired,\n outlineColor: PropTypes.string.isRequired,\n imageUrl: PropTypes.string.isRequired,\n TextEntry: PropTypes.object.isRequired,\n toolActive: PropTypes.object.isRequired,\n session: PropTypes.object.isRequired,\n backgroundImageEnabled: PropTypes.bool.isRequired,\n scale: PropTypes.number.isRequired,\n language: PropTypes.string,\n};\n\nexport default DrawableMain;\n"],"mappings":"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","ignoreList":[]}
@@ -227,11 +227,34 @@ class TextDrawable {
227
227
  onDblTap: e => this.handleDblClick(e, text),
228
228
  onTransform: e => this.handleTransform(e, textNode),
229
229
  onTransformEnd: this.props.handleSessionChange,
230
- onMouseDown: this.handleMouseDown,
231
- onTouchStart: this.handleMouseDown,
232
- onMouseUp: this.handleMouseUp,
233
- onTouchEnd: this.handleMouseUp,
234
- onDragEnd: this.props.handleSessionChange,
230
+ onMouseDown: e => {
231
+ e.cancelBubble = true;
232
+ this.props.toggleTextSelected(true);
233
+ },
234
+ onTouchStart: e => {
235
+ e.cancelBubble = true;
236
+ this.props.toggleTextSelected(true);
237
+ },
238
+ onDragStart: e => {
239
+ e.cancelBubble = true;
240
+ this.props.toggleTextSelected(true);
241
+ },
242
+ onDragMove: e => {
243
+ e.cancelBubble = true;
244
+ },
245
+ onDragEnd: e => {
246
+ e.cancelBubble = true;
247
+ this.props.toggleTextSelected(false);
248
+ this.props.handleSessionChange();
249
+ },
250
+ onMouseUp: e => {
251
+ e.cancelBubble = true;
252
+ this.props.toggleTextSelected(false);
253
+ },
254
+ onTouchEnd: e => {
255
+ e.cancelBubble = true;
256
+ this.props.toggleTextSelected(false);
257
+ },
235
258
  onMouseEnter: this.props.onMouseOverElement,
236
259
  onMouseLeave: this.props.onMouseOutElement
237
260
  };
@@ -1 +1 @@
1
- {"version":3,"file":"drawable-text.js","names":["_react","_interopRequireDefault","require","_reactKonva","_translator","_drawableTransformer","translator","Translator","generateId","Math","random","toString","substring","Date","getTime","exports","TextDrawable","getTextareaNode","id","getTextNode","getTransformerNode","constructor","props","_defineProperty2","default","eventListenersDetachArray","forEach","fn","all","forceUpdate","language","push","text","isDefault","label","t","lng","width","x","length","y","textVisible","transformerVisible","textareaVisible","createdAt","type","handleSessionChange","toggleTextSelected","e","current","filter","item","toggleTextarea","textNode","textareaNode","areaPosition","getAbsolutePosition","value","style","position","top","left","padding","height","fontSize","border","margin","overflow","background","outline","resize","lineHeight","fontFamily","transformOrigin","textAlign","align","color","fill","display","rotation","transform","focus","keyDownHandler","key","shiftKey","saveValue","blurHandler","showOnlyTextNodes","addEventListener","removeEventListener","initializeDefault","setAttrs","scaleX","scale","map","renderTextareas","createElement","ref","textarea","setInitialProps","render","stage","newStage","stageClickHandler","target","on","off","transformerNode","extraProps","disabled","onClick","handleClick","onTap","onDblClick","handleDblClick","onDblTap","onTransform","handleTransform","onTransformEnd","onMouseDown","handleMouseDown","onTouchStart","onMouseUp","handleMouseUp","onTouchEnd","onDragEnd","onMouseEnter","onMouseOverElement","onMouseLeave","onMouseOutElement","Text","_extends2","bubbles","name","draggable","visible","selectedShapeName"],"sources":["../../src/drawing-response/drawable-text.jsx"],"sourcesContent":["import React from 'react';\nimport { Text } from 'react-konva';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\nimport Transformer from './drawable-transformer';\n\nexport const generateId = () => Math.random().toString(36).substring(2) + new Date().getTime().toString(36);\n\nexport default class TextDrawable {\n static getTextareaNode(id) {\n return `textarea_${id}`;\n }\n\n static getTextNode(id) {\n return `text_${id}`;\n }\n\n static getTransformerNode(id) {\n return `transformer_${id}`;\n }\n\n constructor(props) {\n this.all = (props && props.all) || [];\n this.eventListenersDetachArray = [];\n }\n\n removeEventListeners = () => this.eventListenersDetachArray.forEach((fn) => fn());\n\n setAll = (all) => {\n this.all = all;\n this.props.forceUpdate();\n };\n\n addNewTextEntry = (language) => {\n const all = this.all;\n const id = generateId();\n\n all.push({\n id: id,\n text: '',\n isDefault: true,\n label: translator.t('drawingResponse.onDoubleClick', { lng: language }),\n width: 200,\n x: (all.length + 1) * 5 + 50,\n y: (all.length + 1) * 5 + 50,\n textVisible: true,\n transformerVisible: true,\n textareaVisible: false,\n createdAt: new Date(),\n type: 'text-entry',\n });\n\n this.props.handleSessionChange();\n };\n\n showOnlyTextNodes() {\n this.all.map((item) => {\n item.textVisible = true;\n item.transformerVisible = false;\n item.textareaVisible = false;\n });\n }\n\n toggleTextarea(id, value) {\n this.all = this.all.map((item) => {\n if (item.id === id) {\n return {\n ...item,\n textVisible: !value,\n transformerVisible: !value,\n textareaVisible: value,\n };\n }\n return item;\n });\n this.props.forceUpdate();\n }\n\n initializeDefault(id, isDefault) {\n if (isDefault) {\n const current = this.all.filter((item) => item.id === id)[0];\n current.isDefault = false;\n }\n }\n\n saveValue(id, textareaNode) {\n const value = textareaNode.value;\n this.all = this.all.map((t) =>\n t.id === id ? { ...t, text: value } : t\n );\n\n if (!value) {\n this.all = this.all.filter((t) => t.id !== id);\n }\n\n this.toggleTextarea(id, false);\n this.props.handleSessionChange();\n this.props.forceUpdate();\n }\n\n handleMouseDown = () => this.props.toggleTextSelected(true);\n handleMouseUp = () => this.props.toggleTextSelected(false);\n\n handleClick = (e, id) => {\n const current = this.all.filter((item) => item.id === id)[0];\n current.transformerVisible = true;\n this.props.forceUpdate();\n };\n\n handleDblClick = (e, text) => {\n const { id, isDefault } = text;\n this.toggleTextarea(id, true);\n\n const textNode = this[TextDrawable.getTextNode(id)];\n const textareaNode = this[TextDrawable.getTextareaNode(id)];\n\n if (!textNode || !textareaNode) return;\n\n const areaPosition = textNode.getAbsolutePosition();\n\n textareaNode.value = text.text || '';\n textareaNode.style.position = 'absolute';\n textareaNode.style.top = areaPosition.y + 'px';\n textareaNode.style.left = areaPosition.x + 'px';\n textareaNode.style.width = textNode.width() - textNode.padding() * 2 + 'px';\n textareaNode.style.height = textNode.height() - textNode.padding() * 2 + 5 + 'px';\n textareaNode.style.fontSize = textNode.fontSize() + 'px';\n textareaNode.style.border = 'none';\n textareaNode.style.padding = '0px';\n textareaNode.style.margin = '0px';\n textareaNode.style.overflow = 'hidden';\n textareaNode.style.background = 'none';\n textareaNode.style.outline = 'none';\n textareaNode.style.resize = 'none';\n textareaNode.style.lineHeight = textNode.lineHeight();\n textareaNode.style.fontFamily = textNode.fontFamily();\n textareaNode.style.transformOrigin = 'left top';\n textareaNode.style.textAlign = textNode.align();\n textareaNode.style.color = textNode.fill();\n textareaNode.style.display = 'block';\n\n let rotation = textNode.rotation();\n textareaNode.style.transform = rotation ? `rotateZ(${rotation}deg)` : '';\n\n textareaNode.focus();\n\n const keyDownHandler = (e) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n this.saveValue(id, textareaNode);\n }\n if (e.key === 'Escape') {\n this.toggleTextarea(id, false);\n }\n };\n\n const blurHandler = () => {\n this.showOnlyTextNodes();\n this.saveValue(id, textareaNode);\n };\n\n textareaNode.addEventListener('keydown', keyDownHandler);\n textareaNode.addEventListener('blur', blurHandler);\n\n this.eventListenersDetachArray.push(() => {\n textareaNode.removeEventListener('keydown', keyDownHandler);\n textareaNode.removeEventListener('blur', blurHandler);\n });\n\n this.initializeDefault(id, isDefault);\n this.props.forceUpdate();\n };\n\n handleTransform = (e, textNode) => {\n this[textNode].setAttrs({\n width: this[textNode].width() * this[textNode].scaleX(),\n scaleX: this.props.scale,\n });\n };\n\n renderTextareas() {\n return this.all.map((text) => {\n const { id, textareaVisible } = text;\n const textareaNode = `textarea_${id}`;\n\n return (\n <textarea\n key={textareaNode}\n ref={(textarea) => {\n this[textareaNode] = textarea;\n }}\n style={{ display: `${textareaVisible ? 'block' : 'none'}` }}\n />\n );\n });\n }\n\n setInitialProps(props) {\n if (!this.props) {\n this.props = props;\n }\n }\n\n render(props) {\n this.setInitialProps(props);\n\n if (props.stage) {\n const newStage = props.stage;\n\n // setting the handler only once\n if (newStage !== this.stage) {\n const stageClickHandler = (e) => {\n if (e.target !== this.stage) {\n return;\n }\n\n this.showOnlyTextNodes();\n this.props.forceUpdate();\n };\n\n newStage.on('click', stageClickHandler);\n\n this.eventListenersDetachArray.push(() => newStage.off('click', stageClickHandler));\n }\n\n this.stage = newStage;\n }\n\n return this.all.map((text) => {\n const { id, label, x, y, width, textVisible, rotation, transformerVisible } = text;\n\n const textNode = `text_${id}`;\n const transformerNode = `transformer_${id}`;\n let extraProps = {};\n\n if (!props.disabled) {\n extraProps = {\n onClick: (e) => this.handleClick(e, id),\n onTap: (e) => this.handleClick(e, id),\n onDblClick: (e) => this.handleDblClick(e, text),\n onDblTap: (e) => this.handleDblClick(e, text),\n onTransform: (e) => this.handleTransform(e, textNode),\n onTransformEnd: this.props.handleSessionChange,\n onMouseDown: this.handleMouseDown,\n onTouchStart: this.handleMouseDown,\n onMouseUp: this.handleMouseUp,\n onTouchEnd: this.handleMouseUp,\n onDragEnd: this.props.handleSessionChange,\n onMouseEnter: this.props.onMouseOverElement,\n onMouseLeave: this.props.onMouseOutElement,\n };\n }\n\n if (rotation) {\n extraProps.rotation = rotation;\n }\n\n return [\n <Text\n key={id}\n bubbles={true}\n id={id}\n ref={(text) => {\n this[textNode] = text;\n }}\n text={text.text || label}\n name={textNode}\n x={x}\n y={y}\n width={width}\n draggable={!props.disabled}\n visible={textVisible}\n fontSize={16}\n {...extraProps}\n />,\n transformerVisible && (\n <Transformer\n key={`transformer_${id}`}\n ref={(text) => {\n this[transformerNode] = text;\n }}\n selectedShapeName={textNode}\n onMouseDown={this.handleMouseDown}\n onTouchStart={this.handleMouseDown}\n onMouseUp={this.handleMouseUp}\n onTouchEnd={this.handleMouseUp}\n />\n ),\n ];\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"drawable-text.js","names":["_react","_interopRequireDefault","require","_reactKonva","_translator","_drawableTransformer","translator","Translator","generateId","Math","random","toString","substring","Date","getTime","exports","TextDrawable","getTextareaNode","id","getTextNode","getTransformerNode","constructor","props","_defineProperty2","default","eventListenersDetachArray","forEach","fn","all","forceUpdate","language","push","text","isDefault","label","t","lng","width","x","length","y","textVisible","transformerVisible","textareaVisible","createdAt","type","handleSessionChange","toggleTextSelected","e","current","filter","item","toggleTextarea","textNode","textareaNode","areaPosition","getAbsolutePosition","value","style","position","top","left","padding","height","fontSize","border","margin","overflow","background","outline","resize","lineHeight","fontFamily","transformOrigin","textAlign","align","color","fill","display","rotation","transform","focus","keyDownHandler","key","shiftKey","saveValue","blurHandler","showOnlyTextNodes","addEventListener","removeEventListener","initializeDefault","setAttrs","scaleX","scale","map","renderTextareas","createElement","ref","textarea","setInitialProps","render","stage","newStage","stageClickHandler","target","on","off","transformerNode","extraProps","disabled","onClick","handleClick","onTap","onDblClick","handleDblClick","onDblTap","onTransform","handleTransform","onTransformEnd","onMouseDown","cancelBubble","onTouchStart","onDragStart","onDragMove","onDragEnd","onMouseUp","onTouchEnd","onMouseEnter","onMouseOverElement","onMouseLeave","onMouseOutElement","Text","_extends2","bubbles","name","draggable","visible","selectedShapeName","handleMouseDown","handleMouseUp"],"sources":["../../src/drawing-response/drawable-text.jsx"],"sourcesContent":["import React from 'react';\nimport { Text } from 'react-konva';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\nimport Transformer from './drawable-transformer';\n\nexport const generateId = () => Math.random().toString(36).substring(2) + new Date().getTime().toString(36);\n\nexport default class TextDrawable {\n static getTextareaNode(id) {\n return `textarea_${id}`;\n }\n\n static getTextNode(id) {\n return `text_${id}`;\n }\n\n static getTransformerNode(id) {\n return `transformer_${id}`;\n }\n\n constructor(props) {\n this.all = (props && props.all) || [];\n this.eventListenersDetachArray = [];\n }\n\n removeEventListeners = () => this.eventListenersDetachArray.forEach((fn) => fn());\n\n setAll = (all) => {\n this.all = all;\n this.props.forceUpdate();\n };\n\n addNewTextEntry = (language) => {\n const all = this.all;\n const id = generateId();\n\n all.push({\n id: id,\n text: '',\n isDefault: true,\n label: translator.t('drawingResponse.onDoubleClick', { lng: language }),\n width: 200,\n x: (all.length + 1) * 5 + 50,\n y: (all.length + 1) * 5 + 50,\n textVisible: true,\n transformerVisible: true,\n textareaVisible: false,\n createdAt: new Date(),\n type: 'text-entry',\n });\n\n this.props.handleSessionChange();\n };\n\n showOnlyTextNodes() {\n this.all.map((item) => {\n item.textVisible = true;\n item.transformerVisible = false;\n item.textareaVisible = false;\n });\n }\n\n toggleTextarea(id, value) {\n this.all = this.all.map((item) => {\n if (item.id === id) {\n return {\n ...item,\n textVisible: !value,\n transformerVisible: !value,\n textareaVisible: value,\n };\n }\n return item;\n });\n this.props.forceUpdate();\n }\n\n initializeDefault(id, isDefault) {\n if (isDefault) {\n const current = this.all.filter((item) => item.id === id)[0];\n current.isDefault = false;\n }\n }\n\n saveValue(id, textareaNode) {\n const value = textareaNode.value;\n this.all = this.all.map((t) =>\n t.id === id ? { ...t, text: value } : t\n );\n\n if (!value) {\n this.all = this.all.filter((t) => t.id !== id);\n }\n\n this.toggleTextarea(id, false);\n this.props.handleSessionChange();\n this.props.forceUpdate();\n }\n\n handleMouseDown = () => this.props.toggleTextSelected(true);\n handleMouseUp = () => this.props.toggleTextSelected(false);\n\n handleClick = (e, id) => {\n const current = this.all.filter((item) => item.id === id)[0];\n current.transformerVisible = true;\n this.props.forceUpdate();\n };\n\n handleDblClick = (e, text) => {\n const { id, isDefault } = text;\n this.toggleTextarea(id, true);\n\n const textNode = this[TextDrawable.getTextNode(id)];\n const textareaNode = this[TextDrawable.getTextareaNode(id)];\n\n if (!textNode || !textareaNode) return;\n\n const areaPosition = textNode.getAbsolutePosition();\n\n textareaNode.value = text.text || '';\n textareaNode.style.position = 'absolute';\n textareaNode.style.top = areaPosition.y + 'px';\n textareaNode.style.left = areaPosition.x + 'px';\n textareaNode.style.width = textNode.width() - textNode.padding() * 2 + 'px';\n textareaNode.style.height = textNode.height() - textNode.padding() * 2 + 5 + 'px';\n textareaNode.style.fontSize = textNode.fontSize() + 'px';\n textareaNode.style.border = 'none';\n textareaNode.style.padding = '0px';\n textareaNode.style.margin = '0px';\n textareaNode.style.overflow = 'hidden';\n textareaNode.style.background = 'none';\n textareaNode.style.outline = 'none';\n textareaNode.style.resize = 'none';\n textareaNode.style.lineHeight = textNode.lineHeight();\n textareaNode.style.fontFamily = textNode.fontFamily();\n textareaNode.style.transformOrigin = 'left top';\n textareaNode.style.textAlign = textNode.align();\n textareaNode.style.color = textNode.fill();\n textareaNode.style.display = 'block';\n\n let rotation = textNode.rotation();\n textareaNode.style.transform = rotation ? `rotateZ(${rotation}deg)` : '';\n\n textareaNode.focus();\n\n const keyDownHandler = (e) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n this.saveValue(id, textareaNode);\n }\n if (e.key === 'Escape') {\n this.toggleTextarea(id, false);\n }\n };\n\n const blurHandler = () => {\n this.showOnlyTextNodes();\n this.saveValue(id, textareaNode);\n };\n\n textareaNode.addEventListener('keydown', keyDownHandler);\n textareaNode.addEventListener('blur', blurHandler);\n\n this.eventListenersDetachArray.push(() => {\n textareaNode.removeEventListener('keydown', keyDownHandler);\n textareaNode.removeEventListener('blur', blurHandler);\n });\n\n this.initializeDefault(id, isDefault);\n this.props.forceUpdate();\n };\n\n handleTransform = (e, textNode) => {\n this[textNode].setAttrs({\n width: this[textNode].width() * this[textNode].scaleX(),\n scaleX: this.props.scale,\n });\n };\n\n renderTextareas() {\n return this.all.map((text) => {\n const { id, textareaVisible } = text;\n const textareaNode = `textarea_${id}`;\n\n return (\n <textarea\n key={textareaNode}\n ref={(textarea) => {\n this[textareaNode] = textarea;\n }}\n style={{ display: `${textareaVisible ? 'block' : 'none'}` }}\n />\n );\n });\n }\n\n setInitialProps(props) {\n if (!this.props) {\n this.props = props;\n }\n }\n\n render(props) {\n this.setInitialProps(props);\n\n if (props.stage) {\n const newStage = props.stage;\n\n // setting the handler only once\n if (newStage !== this.stage) {\n const stageClickHandler = (e) => {\n if (e.target !== this.stage) {\n return;\n }\n\n this.showOnlyTextNodes();\n this.props.forceUpdate();\n };\n\n newStage.on('click', stageClickHandler);\n this.eventListenersDetachArray.push(() => newStage.off('click', stageClickHandler));\n }\n\n this.stage = newStage;\n }\n\n return this.all.map((text) => {\n const { id, label, x, y, width, textVisible, rotation, transformerVisible } = text;\n\n const textNode = `text_${id}`;\n const transformerNode = `transformer_${id}`;\n let extraProps = {};\n\n if (!props.disabled) {\n extraProps = {\n onClick: (e) => this.handleClick(e, id),\n onTap: (e) => this.handleClick(e, id),\n onDblClick: (e) => this.handleDblClick(e, text),\n onDblTap: (e) => this.handleDblClick(e, text),\n onTransform: (e) => this.handleTransform(e, textNode),\n onTransformEnd: this.props.handleSessionChange,\n\n onMouseDown: (e) => {\n e.cancelBubble = true;\n this.props.toggleTextSelected(true);\n },\n onTouchStart: (e) => {\n e.cancelBubble = true;\n this.props.toggleTextSelected(true);\n },\n\n onDragStart: (e) => {\n e.cancelBubble = true;\n this.props.toggleTextSelected(true);\n },\n onDragMove: (e) => {\n e.cancelBubble = true;\n },\n onDragEnd: (e) => {\n e.cancelBubble = true;\n this.props.toggleTextSelected(false);\n this.props.handleSessionChange();\n },\n\n onMouseUp: (e) => {\n e.cancelBubble = true;\n this.props.toggleTextSelected(false);\n },\n onTouchEnd: (e) => {\n e.cancelBubble = true;\n this.props.toggleTextSelected(false);\n },\n\n onMouseEnter: this.props.onMouseOverElement,\n onMouseLeave: this.props.onMouseOutElement,\n };\n }\n\n if (rotation) {\n extraProps.rotation = rotation;\n }\n\n return [\n <Text\n key={id}\n bubbles={true}\n id={id}\n ref={(text) => {\n this[textNode] = text;\n }}\n text={text.text || label}\n name={textNode}\n x={x}\n y={y}\n width={width}\n draggable={!props.disabled}\n visible={textVisible}\n fontSize={16}\n {...extraProps}\n />,\n transformerVisible && (\n <Transformer\n key={`transformer_${id}`}\n ref={(text) => {\n this[transformerNode] = text;\n }}\n selectedShapeName={textNode}\n onMouseDown={this.handleMouseDown}\n onTouchStart={this.handleMouseDown}\n onMouseUp={this.handleMouseUp}\n onTouchEnd={this.handleMouseUp}\n />\n ),\n ];\n });\n }\n}"],"mappings":"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","ignoreList":[]}
package/lib/index.js CHANGED
@@ -8,7 +8,7 @@ exports.default = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _react = _interopRequireDefault(require("react"));
10
10
  var _client = require("react-dom/client");
11
- var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
11
+ var _lodashEs = require("lodash-es");
12
12
  var _mathRendering = require("@pie-lib/math-rendering");
13
13
  var _piePlayerEvents = require("@pie-framework/pie-player-events");
14
14
  var _drawingResponse = _interopRequireDefault(require("./drawing-response"));
@@ -30,7 +30,7 @@ class DrawingResponse extends HTMLElement {
30
30
  this._render();
31
31
  }
32
32
  isComplete() {
33
- return this._session && (!(0, _isEmpty.default)(this._session.drawables) || !(0, _isEmpty.default)(this._session.texts));
33
+ return this._session && (!(0, _lodashEs.isEmpty)(this._session.drawables) || !(0, _lodashEs.isEmpty)(this._session.texts));
34
34
  }
35
35
  set session(s) {
36
36
  this._session = s;
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_isEmpty","_mathRendering","_piePlayerEvents","_drawingResponse","DrawingResponse","HTMLElement","constructor","_defineProperty2","default","update","_session","drawables","texts","width","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","isComplete","_render","_root","model","m","_model","ModelSetEvent","isEmpty","session","s","connectedCallback","el","React","createElement","DrawingResponseComponent","onSessionChange","sessionChanged","createRoot","render","queueMicrotask","renderMath","disconnectedCallback","unmount","exports"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport isEmpty from 'lodash/isEmpty';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { ModelSetEvent, SessionChangedEvent } from '@pie-framework/pie-player-events';\n\nimport DrawingResponseComponent from './drawing-response';\n\nexport default class DrawingResponse extends HTMLElement {\n constructor() {\n super();\n this._root = null;\n }\n\n set model(m) {\n this._model = m;\n\n this.dispatchEvent(new ModelSetEvent(this.tagName.toLowerCase(), this.isComplete(), !!this._model));\n this._render();\n }\n\n isComplete() {\n return this._session && (!isEmpty(this._session.drawables) || !isEmpty(this._session.texts));\n }\n\n sessionChanged = (update) => {\n this._session.drawables = update.drawables;\n this._session.texts = update.texts;\n this._session.width = update.width;\n\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), this.isComplete()));\n\n this._render();\n };\n\n set session(s) {\n this._session = s;\n this._render();\n }\n\n get session() {\n return this._session;\n }\n\n connectedCallback() {\n this._render();\n }\n\n _render() {\n if (this._model && this._session) {\n const el = React.createElement(DrawingResponseComponent, {\n model: this._model,\n session: this._session,\n onSessionChange: this.sessionChanged,\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(el);\n queueMicrotask(() => {\n renderMath(this);\n });\n }\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA;AAEA,IAAAK,gBAAA,GAAAN,sBAAA,CAAAC,OAAA;AAEe,MAAMM,eAAe,SAASC,WAAW,CAAC;EACvDC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,CAAC;IAAC,IAAAC,gBAAA,CAAAC,OAAA,0BAeQC,MAAM,IAAK;MAC3B,IAAI,CAACC,QAAQ,CAACC,SAAS,GAAGF,MAAM,CAACE,SAAS;MAC1C,IAAI,CAACD,QAAQ,CAACE,KAAK,GAAGH,MAAM,CAACG,KAAK;MAClC,IAAI,CAACF,QAAQ,CAACG,KAAK,GAAGJ,MAAM,CAACI,KAAK;MAElC,IAAI,CAACC,aAAa,CAAC,IAAIC,oCAAmB,CAAC,IAAI,CAACC,OAAO,CAACC,WAAW,CAAC,CAAC,EAAE,IAAI,CAACC,UAAU,CAAC,CAAC,CAAC,CAAC;MAE1F,IAAI,CAACC,OAAO,CAAC,CAAC;IAChB,CAAC;IAtBC,IAAI,CAACC,KAAK,GAAG,IAAI;EACnB;EAEA,IAAIC,KAAKA,CAACC,CAAC,EAAE;IACX,IAAI,CAACC,MAAM,GAAGD,CAAC;IAEf,IAAI,CAACR,aAAa,CAAC,IAAIU,8BAAa,CAAC,IAAI,CAACR,OAAO,CAACC,WAAW,CAAC,CAAC,EAAE,IAAI,CAACC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAACK,MAAM,CAAC,CAAC;IACnG,IAAI,CAACJ,OAAO,CAAC,CAAC;EAChB;EAEAD,UAAUA,CAAA,EAAG;IACX,OAAO,IAAI,CAACR,QAAQ,KAAK,CAAC,IAAAe,gBAAO,EAAC,IAAI,CAACf,QAAQ,CAACC,SAAS,CAAC,IAAI,CAAC,IAAAc,gBAAO,EAAC,IAAI,CAACf,QAAQ,CAACE,KAAK,CAAC,CAAC;EAC9F;EAYA,IAAIc,OAAOA,CAACC,CAAC,EAAE;IACb,IAAI,CAACjB,QAAQ,GAAGiB,CAAC;IACjB,IAAI,CAACR,OAAO,CAAC,CAAC;EAChB;EAEA,IAAIO,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAAChB,QAAQ;EACtB;EAEAkB,iBAAiBA,CAAA,EAAG;IAClB,IAAI,CAACT,OAAO,CAAC,CAAC;EAChB;EAEAA,OAAOA,CAAA,EAAG;IACR,IAAI,IAAI,CAACI,MAAM,IAAI,IAAI,CAACb,QAAQ,EAAE;MAChC,MAAMmB,EAAE,gBAAGC,cAAK,CAACC,aAAa,CAACC,wBAAwB,EAAE;QACvDX,KAAK,EAAE,IAAI,CAACE,MAAM;QAClBG,OAAO,EAAE,IAAI,CAAChB,QAAQ;QACtBuB,eAAe,EAAE,IAAI,CAACC;MACxB,CAAC,CAAC;MAEF,IAAI,CAAC,IAAI,CAACd,KAAK,EAAE;QACf,IAAI,CAACA,KAAK,GAAG,IAAAe,kBAAU,EAAC,IAAI,CAAC;MAC/B;MACA,IAAI,CAACf,KAAK,CAACgB,MAAM,CAACP,EAAE,CAAC;MACrBQ,cAAc,CAAC,MAAM;QACnB,IAAAC,yBAAU,EAAC,IAAI,CAAC;MAClB,CAAC,CAAC;IACJ;EACF;EAEAC,oBAAoBA,CAAA,EAAG;IACrB,IAAI,IAAI,CAACnB,KAAK,EAAE;MACd,IAAI,CAACA,KAAK,CAACoB,OAAO,CAAC,CAAC;IACtB;EACF;AACF;AAACC,OAAA,CAAAjC,OAAA,GAAAJ,eAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_lodashEs","_mathRendering","_piePlayerEvents","_drawingResponse","DrawingResponse","HTMLElement","constructor","_defineProperty2","default","update","_session","drawables","texts","width","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","isComplete","_render","_root","model","m","_model","ModelSetEvent","isEmpty","session","s","connectedCallback","el","React","createElement","DrawingResponseComponent","onSessionChange","sessionChanged","createRoot","render","queueMicrotask","renderMath","disconnectedCallback","unmount","exports"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { isEmpty } from 'lodash-es';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { ModelSetEvent, SessionChangedEvent } from '@pie-framework/pie-player-events';\n\nimport DrawingResponseComponent from './drawing-response';\n\nexport default class DrawingResponse extends HTMLElement {\n constructor() {\n super();\n this._root = null;\n }\n\n set model(m) {\n this._model = m;\n\n this.dispatchEvent(new ModelSetEvent(this.tagName.toLowerCase(), this.isComplete(), !!this._model));\n this._render();\n }\n\n isComplete() {\n return this._session && (!isEmpty(this._session.drawables) || !isEmpty(this._session.texts));\n }\n\n sessionChanged = (update) => {\n this._session.drawables = update.drawables;\n this._session.texts = update.texts;\n this._session.width = update.width;\n\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), this.isComplete()));\n\n this._render();\n };\n\n set session(s) {\n this._session = s;\n this._render();\n }\n\n get session() {\n return this._session;\n }\n\n connectedCallback() {\n this._render();\n }\n\n _render() {\n if (this._model && this._session) {\n const el = React.createElement(DrawingResponseComponent, {\n model: this._model,\n session: this._session,\n onSessionChange: this.sessionChanged,\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(el);\n queueMicrotask(() => {\n renderMath(this);\n });\n }\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA;AAEA,IAAAK,gBAAA,GAAAN,sBAAA,CAAAC,OAAA;AAEe,MAAMM,eAAe,SAASC,WAAW,CAAC;EACvDC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,CAAC;IAAC,IAAAC,gBAAA,CAAAC,OAAA,0BAeQC,MAAM,IAAK;MAC3B,IAAI,CAACC,QAAQ,CAACC,SAAS,GAAGF,MAAM,CAACE,SAAS;MAC1C,IAAI,CAACD,QAAQ,CAACE,KAAK,GAAGH,MAAM,CAACG,KAAK;MAClC,IAAI,CAACF,QAAQ,CAACG,KAAK,GAAGJ,MAAM,CAACI,KAAK;MAElC,IAAI,CAACC,aAAa,CAAC,IAAIC,oCAAmB,CAAC,IAAI,CAACC,OAAO,CAACC,WAAW,CAAC,CAAC,EAAE,IAAI,CAACC,UAAU,CAAC,CAAC,CAAC,CAAC;MAE1F,IAAI,CAACC,OAAO,CAAC,CAAC;IAChB,CAAC;IAtBC,IAAI,CAACC,KAAK,GAAG,IAAI;EACnB;EAEA,IAAIC,KAAKA,CAACC,CAAC,EAAE;IACX,IAAI,CAACC,MAAM,GAAGD,CAAC;IAEf,IAAI,CAACR,aAAa,CAAC,IAAIU,8BAAa,CAAC,IAAI,CAACR,OAAO,CAACC,WAAW,CAAC,CAAC,EAAE,IAAI,CAACC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAACK,MAAM,CAAC,CAAC;IACnG,IAAI,CAACJ,OAAO,CAAC,CAAC;EAChB;EAEAD,UAAUA,CAAA,EAAG;IACX,OAAO,IAAI,CAACR,QAAQ,KAAK,CAAC,IAAAe,iBAAO,EAAC,IAAI,CAACf,QAAQ,CAACC,SAAS,CAAC,IAAI,CAAC,IAAAc,iBAAO,EAAC,IAAI,CAACf,QAAQ,CAACE,KAAK,CAAC,CAAC;EAC9F;EAYA,IAAIc,OAAOA,CAACC,CAAC,EAAE;IACb,IAAI,CAACjB,QAAQ,GAAGiB,CAAC;IACjB,IAAI,CAACR,OAAO,CAAC,CAAC;EAChB;EAEA,IAAIO,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAAChB,QAAQ;EACtB;EAEAkB,iBAAiBA,CAAA,EAAG;IAClB,IAAI,CAACT,OAAO,CAAC,CAAC;EAChB;EAEAA,OAAOA,CAAA,EAAG;IACR,IAAI,IAAI,CAACI,MAAM,IAAI,IAAI,CAACb,QAAQ,EAAE;MAChC,MAAMmB,EAAE,gBAAGC,cAAK,CAACC,aAAa,CAACC,wBAAwB,EAAE;QACvDX,KAAK,EAAE,IAAI,CAACE,MAAM;QAClBG,OAAO,EAAE,IAAI,CAAChB,QAAQ;QACtBuB,eAAe,EAAE,IAAI,CAACC;MACxB,CAAC,CAAC;MAEF,IAAI,CAAC,IAAI,CAACd,KAAK,EAAE;QACf,IAAI,CAACA,KAAK,GAAG,IAAAe,kBAAU,EAAC,IAAI,CAAC;MAC/B;MACA,IAAI,CAACf,KAAK,CAACgB,MAAM,CAACP,EAAE,CAAC;MACrBQ,cAAc,CAAC,MAAM;QACnB,IAAAC,yBAAU,EAAC,IAAI,CAAC;MAClB,CAAC,CAAC;IACJ;EACF;EAEAC,oBAAoBA,CAAA,EAAG;IACrB,IAAI,IAAI,CAACnB,KAAK,EAAE;MACd,IAAI,CAACA,KAAK,CAACoB,OAAO,CAAC,CAAC;IACtB;EACF;AACF;AAACC,OAAA,CAAAjC,OAAA,GAAAJ,eAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@pie-element/drawing-response",
3
- "version": "11.0.0-next.43+4249fa78f",
4
- "description": "",
5
3
  "repository": "pie-framework/pie-elements",
4
+ "version": "11.1.2-next.1",
5
+ "description": "",
6
6
  "publishConfig": {
7
7
  "access": "public"
8
8
  },
@@ -14,11 +14,11 @@
14
14
  "@mui/icons-material": "^7.3.4",
15
15
  "@mui/material": "^7.3.4",
16
16
  "@pie-framework/pie-player-events": "^0.1.0",
17
- "@pie-lib/math-rendering": "4.1.1-next.0",
18
- "@pie-lib/render-ui": "5.1.1-next.0",
19
- "@pie-lib/translator": "3.1.1-next.0",
17
+ "@pie-lib/math-rendering": "4.2.0-next.3",
18
+ "@pie-lib/render-ui": "5.2.0-next.4",
19
+ "@pie-lib/translator": "3.2.0-next.3",
20
20
  "konva": "8.3.0",
21
- "lodash": "^4.17.11",
21
+ "lodash-es": "^4.17.23",
22
22
  "prop-types": "^15.6.1",
23
23
  "react": "18.3.1",
24
24
  "react-dom": "18.3.1",
@@ -26,7 +26,7 @@
26
26
  },
27
27
  "author": "pie framework developers",
28
28
  "license": "ISC",
29
- "gitHead": "4249fa78fc423ef0a8c89002b8f937c42b3478ea",
29
+ "gitHead": "9cc4a1cd183a260a03c7d817e0085517112a1a56",
30
30
  "scripts": {
31
31
  "postpublish": "../../scripts/postpublish"
32
32
  },
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { render } from '@testing-library/react';
3
3
  import { ThemeProvider, createTheme } from '@mui/material/styles';
4
- import cloneDeep from 'lodash/cloneDeep';
4
+ import { cloneDeep } from 'lodash-es';
5
5
  import FreePathDrawable from '../drawable-free-path';
6
6
  import LineDrawable from '../drawable-line';
7
7
  import RectangleDrawable from '../drawable-rectangle';
@@ -1,8 +1,6 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import omit from 'lodash/omit';
4
- import cloneDeep from 'lodash/cloneDeep';
5
- import isEqual from 'lodash/isEqual';
3
+ import { cloneDeep, isEqual, omit } from 'lodash-es';
6
4
  import { Layer, Stage } from 'react-konva';
7
5
  import { styled } from '@mui/material/styles';
8
6
  import Translator from '@pie-lib/translator';