@pie-element/drawing-response 8.6.8-next.23 → 8.6.8-next.33
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/configure/lib/root.js +4 -4
- package/configure/lib/root.js.map +1 -1
- package/configure/package.json +2 -1
- package/configure/src/__tests__/__snapshots__/root.test.jsx.snap +0 -2
- package/configure/src/__tests__/image-container.test.jsx +1 -1
- package/configure/src/__tests__/index.test.js +1 -1
- package/configure/src/__tests__/root.test.jsx +1 -1
- package/configure/src/root.jsx +2 -2
- package/lib/drawing-response/container.js +1 -1
- package/lib/drawing-response/container.js.map +1 -1
- package/lib/drawing-response/drawable-main.js +1 -1
- package/lib/drawing-response/drawable-main.js.map +1 -1
- package/lib/drawing-response/drawable-palette.js +2 -2
- package/lib/drawing-response/drawable-palette.js.map +1 -1
- package/lib/drawing-response/drawable-text.js +1 -1
- package/lib/drawing-response/drawable-text.js.map +1 -1
- package/lib/drawing-response/index.js +1 -1
- package/lib/drawing-response/index.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/package.json +5 -3
- package/src/drawing-response/container.jsx +1 -1
- package/src/drawing-response/drawable-main.jsx +13 -5
- package/src/drawing-response/drawable-palette.jsx +6 -3
- package/src/drawing-response/drawable-text.jsx +1 -1
- package/src/drawing-response/index.jsx +2 -2
- package/src/index.js +1 -1
package/configure/lib/root.js
CHANGED
|
@@ -23,11 +23,11 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
23
23
|
|
|
24
24
|
var _react = _interopRequireDefault(require("react"));
|
|
25
25
|
|
|
26
|
-
var _configUi = require("@pie-lib/
|
|
26
|
+
var _configUi = require("@pie-lib/config-ui");
|
|
27
27
|
|
|
28
28
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
29
29
|
|
|
30
|
-
var _editableHtml = require("@pie-lib/
|
|
30
|
+
var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
|
|
31
31
|
|
|
32
32
|
var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
|
|
33
33
|
|
|
@@ -190,7 +190,7 @@ var Root = /*#__PURE__*/function (_React$Component) {
|
|
|
190
190
|
}, teacherInstructionsEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
191
191
|
label: teacherInstructions.label,
|
|
192
192
|
className: classes.promptHolder
|
|
193
|
-
}, /*#__PURE__*/_react["default"].createElement(_editableHtml
|
|
193
|
+
}, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
194
194
|
markup: model.teacherInstructions || '',
|
|
195
195
|
onChange: this.onTeacherInstructionsChanged,
|
|
196
196
|
imageSupport: imageSupport,
|
|
@@ -213,7 +213,7 @@ var Root = /*#__PURE__*/function (_React$Component) {
|
|
|
213
213
|
}, teacherInstructionsError)), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
214
214
|
label: "Item Stem",
|
|
215
215
|
className: classes.promptHolder
|
|
216
|
-
}, /*#__PURE__*/_react["default"].createElement(_editableHtml
|
|
216
|
+
}, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
217
217
|
markup: model.prompt,
|
|
218
218
|
onChange: this.onPromptChanged,
|
|
219
219
|
error: promptError,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/root.jsx"],"names":["Panel","settings","toggle","dropdown","Root","prompt","props","model","onModelChanged","update","teacherInstructions","dimensions","imageDimensions","imageUrl","classes","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","Settings","Properties","promptHolder","onTeacherInstructionsChanged","inputConfiguration","errorText","onPromptChanged","onUpdateImageDimension","onImageUpload","add","React","Component","styles","theme","paddingTop","spacing","unit","marginBottom","width","fontSize","typography","color","palette","error","main","propTypes","PropTypes","object","isRequired","shape","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { settings, layout, InputContainer } from '@pie-lib/pie-toolbox/config-ui';\nimport PropTypes from 'prop-types';\nimport { EditableHtml } from '@pie-lib/pie-toolbox/editable-html';\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport ImageContainer from './image-container';\nimport cloneDeep from 'lodash/cloneDeep';\n\nconst { Panel, toggle, dropdown } = settings;\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 { classes, 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 <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\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 && <div className={classes.errorText}>{teacherInstructionsError}</div>}\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label=\"Item Stem\" className={classes.promptHolder}>\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 && <div className={classes.errorText}>{promptError}</div>}\n </InputContainer>\n )}\n\n {backgroundImageEnabled && (\n <React.Fragment>\n <Typography variant=\"subheading\">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\nconst styles = (theme) => ({\n promptHolder: {\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n width: '100%',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n});\n\nRoot.propTypes = {\n classes: PropTypes.object.isRequired,\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 withStyles(styles)(Root);\n"],"file":"root.js"}
|
|
1
|
+
{"version":3,"sources":["../src/root.jsx"],"names":["Panel","settings","toggle","dropdown","Root","prompt","props","model","onModelChanged","update","teacherInstructions","dimensions","imageDimensions","imageUrl","classes","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","Settings","Properties","promptHolder","onTeacherInstructionsChanged","inputConfiguration","errorText","onPromptChanged","onUpdateImageDimension","onImageUpload","add","React","Component","styles","theme","paddingTop","spacing","unit","marginBottom","width","fontSize","typography","color","palette","error","main","propTypes","PropTypes","object","isRequired","shape","func"],"mappings":"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","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';\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport ImageContainer from './image-container';\nimport cloneDeep from 'lodash/cloneDeep';\n\nconst { Panel, toggle, dropdown } = settings;\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 { classes, 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 <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\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 && <div className={classes.errorText}>{teacherInstructionsError}</div>}\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label=\"Item Stem\" className={classes.promptHolder}>\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 && <div className={classes.errorText}>{promptError}</div>}\n </InputContainer>\n )}\n\n {backgroundImageEnabled && (\n <React.Fragment>\n <Typography variant=\"subheading\">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\nconst styles = (theme) => ({\n promptHolder: {\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n width: '100%',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n});\n\nRoot.propTypes = {\n classes: PropTypes.object.isRequired,\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 withStyles(styles)(Root);\n"],"file":"root.js"}
|
package/configure/package.json
CHANGED
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"@material-ui/core": "^3.9.2",
|
|
11
11
|
"@pie-framework/pie-configure-events": "^1.3.0",
|
|
12
|
-
"@pie-lib/
|
|
12
|
+
"@pie-lib/config-ui": "^11.18.0",
|
|
13
|
+
"@pie-lib/editable-html": "^11.10.0",
|
|
13
14
|
"classnames": "^2.2.6",
|
|
14
15
|
"debug": "^3.1.0",
|
|
15
16
|
"lodash": "^4.17.15",
|
|
@@ -132,7 +132,6 @@ exports[`Root snapshot renders 1`] = `
|
|
|
132
132
|
label="Item Stem"
|
|
133
133
|
>
|
|
134
134
|
<EditableHtml
|
|
135
|
-
allowValidation={false}
|
|
136
135
|
languageCharactersProps={
|
|
137
136
|
Array [
|
|
138
137
|
Object {
|
|
@@ -153,7 +152,6 @@ exports[`Root snapshot renders 1`] = `
|
|
|
153
152
|
maxImageHeight={300}
|
|
154
153
|
maxImageWidth={300}
|
|
155
154
|
onChange={[Function]}
|
|
156
|
-
onDone={[Function]}
|
|
157
155
|
pluginProps={
|
|
158
156
|
Object {
|
|
159
157
|
"audio": Object {
|
|
@@ -4,7 +4,7 @@ import React from 'react';
|
|
|
4
4
|
import { Root } from '../root';
|
|
5
5
|
import defaults from '../defaults';
|
|
6
6
|
|
|
7
|
-
jest.mock('@pie-lib/
|
|
7
|
+
jest.mock('@pie-lib/config-ui', () => ({
|
|
8
8
|
settings: {
|
|
9
9
|
Panel: (props) => <div {...props} />,
|
|
10
10
|
toggle: jest.fn(),
|
package/configure/src/root.jsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { settings, layout, InputContainer } from '@pie-lib/
|
|
2
|
+
import { settings, layout, InputContainer } from '@pie-lib/config-ui';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
|
-
import
|
|
4
|
+
import EditableHtml from '@pie-lib/editable-html';
|
|
5
5
|
import Typography from '@material-ui/core/Typography';
|
|
6
6
|
import { withStyles } from '@material-ui/core/styles';
|
|
7
7
|
|
|
@@ -31,7 +31,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
31
31
|
|
|
32
32
|
var _styles = require("@material-ui/core/styles");
|
|
33
33
|
|
|
34
|
-
var _translator = _interopRequireDefault(require("@pie-lib/
|
|
34
|
+
var _translator = _interopRequireDefault(require("@pie-lib/translator"));
|
|
35
35
|
|
|
36
36
|
var _constants = _interopRequireDefault(require("./constants"));
|
|
37
37
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/drawing-response/container.jsx"],"names":["TOOLS","constants","tools","translator","Translator","ROGVAIV","map","c","value","label","Container","props","type","disabled","toolActive","state","TextEntry","DrawableText","scale","drawableDimensions","height","width","fillColor","fillColorList","outlineColor","outlineColorList","paintColor","paintColorList","language","translatedROGVAIV","t","lng","setState","setTranslatedState","checkExist","setInterval","drawable","getBoundingClientRect","effectiveWidth","session","e","console","warn","clearInterval","setDimensions","observer","MutationObserver","mutations","forEach","target","document","getElementById","style","cssText","zoom","substring","indexOf","lastIndexOf","zoomParsed","replace","newScale","parseFloat","resizeObserver","ResizeObserver","observe","attributes","attributeFilter","removeEventListeners","disconnect","tool","addNewTextEntry","updatedAt","Date","color","cType","classes","imageUrl","imageDimensions","onSessionChange","backgroundImageEnabled","heightToUse","base","handleColorChange","box","toolbar","icon","checkIfToolIsDisabled","handleMakeToolActive","drawableHeight","maxHeight","overflow","Component","PropTypes","object","isRequired","bool","func","string","styles","theme","marginTop","spacing","unit","border","borderRadius","backgroundColor","minHeight","borderBottom","borderTopLeftRadius","borderTopRightRadius","padding","boxSizing","maxWidth","marginBottom"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Translator from '@pie-lib/pie-toolbox/translator';\n\nimport constants from './constants';\nimport Button from './button';\nimport DrawablePalette from './drawable-palette';\nimport DrawableMain from './drawable-main';\nimport DrawableText from './drawable-text';\nimport Icon from './icon';\n\nconst { tools: TOOLS } = constants;\nconst { translator } = Translator;\n\nconst ROGVAIV = ['red', 'orange', 'yellow', 'violet', 'blue', 'green', 'white', 'black'].map((c) => ({\n value: c,\n label: c,\n}));\n\nexport class Container extends Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n disabled: PropTypes.bool,\n session: PropTypes.object.isRequired,\n onSessionChange: PropTypes.func.isRequired,\n imageDimensions: PropTypes.object.isRequired,\n imageUrl: PropTypes.string.isRequired,\n backgroundImageEnabled: PropTypes.bool.isRequired,\n language: PropTypes.string,\n };\n\n constructor(props) {\n super(props);\n const TextEntry = new DrawableText();\n\n this.state = {\n scale: 1,\n drawableDimensions: {\n height: 0,\n width: 0,\n },\n toolActive: TOOLS[0],\n fillColor: 'white',\n fillColorList: [\n { value: 'transparent', label: 'no fill' },\n { value: 'lightblue', label: 'light blue' },\n { value: 'lightyellow', label: 'light yellow' },\n ...ROGVAIV,\n ],\n outlineColor: 'black',\n outlineColorList: ROGVAIV,\n paintColor: 'red',\n paintColorList: ROGVAIV,\n TextEntry,\n };\n }\n\n setTranslatedState(language) {\n const translatedROGVAIV = ROGVAIV.map((c) => ({\n value: c.value,\n label: translator.t(`drawingResponse.${c.label}`, { lng: language }),\n }));\n\n this.setState({\n fillColorList: [\n { value: 'transparent', label: translator.t('drawingResponse.noFill', { lng: language }) },\n { value: 'lightblue', label: translator.t('drawingResponse.lightblue', { lng: language }) },\n { value: 'lightyellow', label: translator.t('drawingResponse.lightyellow', { lng: language }) },\n ...translatedROGVAIV,\n ],\n paintColor: translator.t('drawingResponse.red', { lng: language }),\n outlineColorList: translatedROGVAIV,\n paintColorList: translatedROGVAIV,\n });\n }\n\n UNSAFE_componentWillReceiveProps(props) {\n const { language } = props;\n this.setTranslatedState(language);\n }\n\n setDimensions() {\n const checkExist = setInterval(() => {\n try {\n const { height, width } = this.drawable.getBoundingClientRect();\n const effectiveWidth = this.props.session.width || width;\n\n if (height !== 0 && width !== 0) {\n this.setState({\n drawableDimensions: {\n height,\n width: effectiveWidth,\n },\n });\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn('setDimensions Error: ', e);\n } finally {\n clearInterval(checkExist);\n }\n }, 100);\n }\n\n componentDidMount() {\n const { language } = this.props;\n this.setTranslatedState(language);\n\n this.setDimensions();\n\n this.observer = new MutationObserver((mutations) => {\n mutations.forEach(() => {\n const target = document.getElementById('question-container')?.style?.cssText;\n const zoom = target?.substring(target.indexOf('--pie-zoom') + 11, target.lastIndexOf('%'));\n const zoomParsed = zoom?.replace(/\\s/g, '');\n\n if (zoomParsed) {\n const newScale = parseFloat(zoomParsed) / 100;\n if (newScale !== this.state.scale) {\n this.setState({\n scale: parseFloat(zoomParsed) / 100,\n });\n }\n } else if (!zoomParsed && this.state.scale !== 1) {\n this.setState({\n scale: 1,\n });\n }\n });\n });\n\n // Use ResizeObserver to detect when the drawable container becomes visible\n // (e.g., after switching from build to item preview in New Item Bank) and trigger dimension calculation.\n // This helps ensure the canvas is properly sized even when componentDidMount is not re-triggered.\n this.resizeObserver = new ResizeObserver(() => {\n this.setDimensions();\n });\n\n if (this.drawable) {\n this.resizeObserver.observe(this.drawable);\n }\n\n const target = document.getElementById('question-container');\n if (target) {\n this.observer.observe(target, { attributes: true, attributeFilter: ['style'] });\n }\n }\n\n componentWillUnmount() {\n const { TextEntry } = this.state;\n\n TextEntry.removeEventListeners();\n this.observer?.disconnect();\n this.resizeObserver?.disconnect();\n }\n\n handleMakeToolActive(tool) {\n const { TextEntry } = this.state;\n const { type } = tool;\n const { language } = this.props;\n\n if (type !== 'Text') {\n this.setState({\n toolActive: tool,\n });\n } else {\n TextEntry.addNewTextEntry(language);\n // Force update\n this.setState({\n updatedAt: new Date(),\n });\n }\n }\n\n checkIfToolIsDisabled = (type) => {\n if (this.props.disabled) return true;\n\n const { toolActive } = this.state;\n // Text will never be disabled since on each \"Text Entry\" click a new text is added\n if (type === 'Text') {\n return false;\n }\n return type === toolActive.type;\n };\n\n handleColorChange(type, color) {\n const cType = `${type}Color`;\n this.setState({\n [cType]: color,\n });\n }\n\n render() {\n const { classes, disabled, imageUrl, imageDimensions, onSessionChange, session, backgroundImageEnabled, language } =\n this.props;\n const {\n drawableDimensions,\n toolActive,\n fillColor,\n fillColorList,\n outlineColor,\n outlineColorList,\n paintColor,\n paintColorList,\n TextEntry,\n } = this.state;\n\n const heightToUse = drawableDimensions.height * this.state.scale;\n\n return (\n <div className={classes.base}>\n {!disabled && (\n <DrawablePalette\n fillColor={fillColor}\n fillList={fillColorList}\n outlineColor={outlineColor}\n outlineList={outlineColorList}\n paintColor={paintColor}\n paintList={paintColorList}\n onFillColorChange={(color) => this.handleColorChange('fill', color)}\n onOutlineColorChange={(color) => this.handleColorChange('outline', color)}\n onPaintColorChange={(color) => this.handleColorChange('paint', color)}\n language={language}\n />\n )}\n\n <div className={classes.box}>\n <div className={classes.toolbar}>\n {TOOLS.map((tool) => {\n const { type, label, icon } = tool;\n\n return (\n <Button\n title={label}\n key={type}\n disabled={this.checkIfToolIsDisabled(type)}\n onClick={() => this.handleMakeToolActive(tool)}\n label={<Icon path={icon} />}\n />\n );\n })}\n </div>\n\n <div\n ref={(drawable) => {\n this.drawable = drawable;\n }}\n className={classes.drawableHeight}\n style={{ height: heightToUse, maxHeight: heightToUse, overflow: 'scroll' }}\n >\n <DrawableMain\n scale={this.state.scale}\n session={session}\n disabled={disabled}\n onSessionChange={onSessionChange}\n fillColor={fillColor}\n outlineColor={outlineColor}\n paintColor={paintColor}\n imageUrl={imageUrl}\n drawableDimensions={drawableDimensions}\n imageDimensions={imageDimensions}\n toolActive={toolActive}\n TextEntry={TextEntry}\n backgroundImageEnabled={backgroundImageEnabled}\n language={language}\n />\n </div>\n </div>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n base: {\n marginTop: theme.spacing.unit * 2,\n },\n box: {\n border: '1px solid #E0E1E6',\n borderRadius: '5px',\n marginTop: theme.spacing.unit * 2,\n backgroundColor: '#ECEDF1',\n },\n drawableHeight: {\n minHeight: 350,\n backgroundColor: '#fff',\n },\n toolbar: {\n borderBottom: '1px solid #E0E1E6',\n borderTopLeftRadius: '5px',\n borderTopRightRadius: '5px',\n padding: '12px 8px 4px',\n boxSizing: 'border-box',\n maxWidth: 'calc(100% - 163px)', // 163px is the width set on undoControls\n '& button': {\n marginBottom: theme.spacing.unit,\n },\n },\n});\n\nexport default withStyles(styles)(Container);\n"],"file":"container.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/drawing-response/container.jsx"],"names":["TOOLS","constants","tools","translator","Translator","ROGVAIV","map","c","value","label","Container","props","type","disabled","toolActive","state","TextEntry","DrawableText","scale","drawableDimensions","height","width","fillColor","fillColorList","outlineColor","outlineColorList","paintColor","paintColorList","language","translatedROGVAIV","t","lng","setState","setTranslatedState","checkExist","setInterval","drawable","getBoundingClientRect","effectiveWidth","session","e","console","warn","clearInterval","setDimensions","observer","MutationObserver","mutations","forEach","target","document","getElementById","style","cssText","zoom","substring","indexOf","lastIndexOf","zoomParsed","replace","newScale","parseFloat","resizeObserver","ResizeObserver","observe","attributes","attributeFilter","removeEventListeners","disconnect","tool","addNewTextEntry","updatedAt","Date","color","cType","classes","imageUrl","imageDimensions","onSessionChange","backgroundImageEnabled","heightToUse","base","handleColorChange","box","toolbar","icon","checkIfToolIsDisabled","handleMakeToolActive","drawableHeight","maxHeight","overflow","Component","PropTypes","object","isRequired","bool","func","string","styles","theme","marginTop","spacing","unit","border","borderRadius","backgroundColor","minHeight","borderBottom","borderTopLeftRadius","borderTopRightRadius","padding","boxSizing","maxWidth","marginBottom"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Translator from '@pie-lib/translator';\n\nimport constants from './constants';\nimport Button from './button';\nimport DrawablePalette from './drawable-palette';\nimport DrawableMain from './drawable-main';\nimport DrawableText from './drawable-text';\nimport Icon from './icon';\n\nconst { tools: TOOLS } = constants;\nconst { translator } = Translator;\n\nconst ROGVAIV = ['red', 'orange', 'yellow', 'violet', 'blue', 'green', 'white', 'black'].map((c) => ({\n value: c,\n label: c,\n}));\n\nexport class Container extends Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n disabled: PropTypes.bool,\n session: PropTypes.object.isRequired,\n onSessionChange: PropTypes.func.isRequired,\n imageDimensions: PropTypes.object.isRequired,\n imageUrl: PropTypes.string.isRequired,\n backgroundImageEnabled: PropTypes.bool.isRequired,\n language: PropTypes.string,\n };\n\n constructor(props) {\n super(props);\n const TextEntry = new DrawableText();\n\n this.state = {\n scale: 1,\n drawableDimensions: {\n height: 0,\n width: 0,\n },\n toolActive: TOOLS[0],\n fillColor: 'white',\n fillColorList: [\n { value: 'transparent', label: 'no fill' },\n { value: 'lightblue', label: 'light blue' },\n { value: 'lightyellow', label: 'light yellow' },\n ...ROGVAIV,\n ],\n outlineColor: 'black',\n outlineColorList: ROGVAIV,\n paintColor: 'red',\n paintColorList: ROGVAIV,\n TextEntry,\n };\n }\n\n setTranslatedState(language) {\n const translatedROGVAIV = ROGVAIV.map((c) => ({\n value: c.value,\n label: translator.t(`drawingResponse.${c.label}`, { lng: language }),\n }));\n\n this.setState({\n fillColorList: [\n { value: 'transparent', label: translator.t('drawingResponse.noFill', { lng: language }) },\n { value: 'lightblue', label: translator.t('drawingResponse.lightblue', { lng: language }) },\n { value: 'lightyellow', label: translator.t('drawingResponse.lightyellow', { lng: language }) },\n ...translatedROGVAIV,\n ],\n paintColor: translator.t('drawingResponse.red', { lng: language }),\n outlineColorList: translatedROGVAIV,\n paintColorList: translatedROGVAIV,\n });\n }\n\n UNSAFE_componentWillReceiveProps(props) {\n const { language } = props;\n this.setTranslatedState(language);\n }\n\n setDimensions() {\n const checkExist = setInterval(() => {\n try {\n const { height, width } = this.drawable.getBoundingClientRect();\n const effectiveWidth = this.props.session.width || width;\n\n if (height !== 0 && width !== 0) {\n this.setState({\n drawableDimensions: {\n height,\n width: effectiveWidth,\n },\n });\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn('setDimensions Error: ', e);\n } finally {\n clearInterval(checkExist);\n }\n }, 100);\n }\n\n componentDidMount() {\n const { language } = this.props;\n this.setTranslatedState(language);\n\n this.setDimensions();\n\n this.observer = new MutationObserver((mutations) => {\n mutations.forEach(() => {\n const target = document.getElementById('question-container')?.style?.cssText;\n const zoom = target?.substring(target.indexOf('--pie-zoom') + 11, target.lastIndexOf('%'));\n const zoomParsed = zoom?.replace(/\\s/g, '');\n\n if (zoomParsed) {\n const newScale = parseFloat(zoomParsed) / 100;\n if (newScale !== this.state.scale) {\n this.setState({\n scale: parseFloat(zoomParsed) / 100,\n });\n }\n } else if (!zoomParsed && this.state.scale !== 1) {\n this.setState({\n scale: 1,\n });\n }\n });\n });\n\n // Use ResizeObserver to detect when the drawable container becomes visible\n // (e.g., after switching from build to item preview in New Item Bank) and trigger dimension calculation.\n // This helps ensure the canvas is properly sized even when componentDidMount is not re-triggered.\n this.resizeObserver = new ResizeObserver(() => {\n this.setDimensions();\n });\n\n if (this.drawable) {\n this.resizeObserver.observe(this.drawable);\n }\n\n const target = document.getElementById('question-container');\n if (target) {\n this.observer.observe(target, { attributes: true, attributeFilter: ['style'] });\n }\n }\n\n componentWillUnmount() {\n const { TextEntry } = this.state;\n\n TextEntry.removeEventListeners();\n this.observer?.disconnect();\n this.resizeObserver?.disconnect();\n }\n\n handleMakeToolActive(tool) {\n const { TextEntry } = this.state;\n const { type } = tool;\n const { language } = this.props;\n\n if (type !== 'Text') {\n this.setState({\n toolActive: tool,\n });\n } else {\n TextEntry.addNewTextEntry(language);\n // Force update\n this.setState({\n updatedAt: new Date(),\n });\n }\n }\n\n checkIfToolIsDisabled = (type) => {\n if (this.props.disabled) return true;\n\n const { toolActive } = this.state;\n // Text will never be disabled since on each \"Text Entry\" click a new text is added\n if (type === 'Text') {\n return false;\n }\n return type === toolActive.type;\n };\n\n handleColorChange(type, color) {\n const cType = `${type}Color`;\n this.setState({\n [cType]: color,\n });\n }\n\n render() {\n const { classes, disabled, imageUrl, imageDimensions, onSessionChange, session, backgroundImageEnabled, language } =\n this.props;\n const {\n drawableDimensions,\n toolActive,\n fillColor,\n fillColorList,\n outlineColor,\n outlineColorList,\n paintColor,\n paintColorList,\n TextEntry,\n } = this.state;\n\n const heightToUse = drawableDimensions.height * this.state.scale;\n\n return (\n <div className={classes.base}>\n {!disabled && (\n <DrawablePalette\n fillColor={fillColor}\n fillList={fillColorList}\n outlineColor={outlineColor}\n outlineList={outlineColorList}\n paintColor={paintColor}\n paintList={paintColorList}\n onFillColorChange={(color) => this.handleColorChange('fill', color)}\n onOutlineColorChange={(color) => this.handleColorChange('outline', color)}\n onPaintColorChange={(color) => this.handleColorChange('paint', color)}\n language={language}\n />\n )}\n\n <div className={classes.box}>\n <div className={classes.toolbar}>\n {TOOLS.map((tool) => {\n const { type, label, icon } = tool;\n\n return (\n <Button\n title={label}\n key={type}\n disabled={this.checkIfToolIsDisabled(type)}\n onClick={() => this.handleMakeToolActive(tool)}\n label={<Icon path={icon} />}\n />\n );\n })}\n </div>\n\n <div\n ref={(drawable) => {\n this.drawable = drawable;\n }}\n className={classes.drawableHeight}\n style={{ height: heightToUse, maxHeight: heightToUse, overflow: 'scroll' }}\n >\n <DrawableMain\n scale={this.state.scale}\n session={session}\n disabled={disabled}\n onSessionChange={onSessionChange}\n fillColor={fillColor}\n outlineColor={outlineColor}\n paintColor={paintColor}\n imageUrl={imageUrl}\n drawableDimensions={drawableDimensions}\n imageDimensions={imageDimensions}\n toolActive={toolActive}\n TextEntry={TextEntry}\n backgroundImageEnabled={backgroundImageEnabled}\n language={language}\n />\n </div>\n </div>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n base: {\n marginTop: theme.spacing.unit * 2,\n },\n box: {\n border: '1px solid #E0E1E6',\n borderRadius: '5px',\n marginTop: theme.spacing.unit * 2,\n backgroundColor: '#ECEDF1',\n },\n drawableHeight: {\n minHeight: 350,\n backgroundColor: '#fff',\n },\n toolbar: {\n borderBottom: '1px solid #E0E1E6',\n borderTopLeftRadius: '5px',\n borderTopRightRadius: '5px',\n padding: '12px 8px 4px',\n boxSizing: 'border-box',\n maxWidth: 'calc(100% - 163px)', // 163px is the width set on undoControls\n '& button': {\n marginBottom: theme.spacing.unit,\n },\n },\n});\n\nexport default withStyles(styles)(Container);\n"],"file":"container.js"}
|
|
@@ -41,7 +41,7 @@ var _reactKonva = require("react-konva");
|
|
|
41
41
|
|
|
42
42
|
var _styles = require("@material-ui/core/styles");
|
|
43
43
|
|
|
44
|
-
var _translator = _interopRequireDefault(require("@pie-lib/
|
|
44
|
+
var _translator = _interopRequireDefault(require("@pie-lib/translator"));
|
|
45
45
|
|
|
46
46
|
var _drawableImage = _interopRequireDefault(require("./drawable-image"));
|
|
47
47
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/drawing-response/drawable-main.jsx"],"names":["translator","Translator","DrawableMain","props","onSessionChange","session","TextEntry","drawableDimensions","drawables","state","newSession","width","map","d","toJson","texts","all","text","id","attrs","value","setState","isOver","e","document","body","style","overflow","newDrawable","textIsSelected","toolActive","fillColor","outlineColor","scale","length","target","getStage","getPointerPosition","x","y","type","startx","starty","createdAt","Date","drawableToAdd","registerMovement","push","handleSessionChange","bind","updatedNewDrawable","newDrawables","allData","sort","a","b","lastElement","pop","updatedAt","nextProps","currentDrawables","drawablesString","JSON","stringify","sessionDrawableString","drawable","drawableArray","currentTexts","setAll","classes","disabled","imageDimensions","imageUrl","paintColor","backgroundImageEnabled","language","draggable","paint","drawableProps","forceUpdate","toggleTextSelected","stage","onMouseOverElement","onMouseOutElement","listeners","onMouseUp","handleMouseUp","onTouchEnd","onMouseMove","handleMouseMove","onTouchMove","onMouseDown","handleMouseDown","onTouchStart","imageHeight","height","imageWidth","wrapper","undoControls","handleUndo","t","lng","handleClearAll","base","renderTextareas","ref","active","layer","key","render","React","Component","styles","display","flexWrap","justifyContent","position","left","touchAction","top","cursor","marginTop","marginRight","propTypes","PropTypes","object","isRequired","bool","string","func","number"],"mappings":"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","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 classnames from 'classnames';\nimport { Layer, Stage } from 'react-konva';\nimport { withStyles } from '@material-ui/core/styles';\nimport Translator from '@pie-lib/pie-toolbox/translator';\n\nconst { translator } = Translator;\nimport ImageBackground from './drawable-image';\nimport Button from './button';\nimport factory from './factory';\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 }\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 { x, y } = e.target.getStage().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 { x, y } = e.target.getStage().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 { x, y } = e.target.getStage().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 classes,\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 <div className={classes.wrapper}>\n <div className={classes.undoControls}>\n <Button disabled={disabled} onClick={this.handleUndo} label={translator.t('common:undo', { lng: language })} />\n <Button disabled={disabled} onClick={this.handleClearAll} label={translator.t('common:clearAll', { lng: language })} />\n </div>\n <div className={classes.base}>\n {backgroundImageEnabled && imageUrl && (\n <ImageBackground dimensions={{ height: imageHeight, width: imageWidth }} url={imageUrl} />\n )}\n\n {TextEntry.renderTextareas()}\n\n <Stage\n scaleX={scale}\n scaleY={scale}\n ref={(ref) => {\n this.stage = ref;\n }}\n className={classnames(classes.stage, {\n [classes.active]: draggable && (isOver || (newDrawable && newDrawable.length === 1)),\n })}\n height={drawableDimensions.height}\n width={drawableDimensions.width}\n {...listeners}\n >\n <Layer\n ref={(ref) => {\n this.layer = ref;\n }}\n >\n {drawables.map((drawable, key) => drawable.render({ ...drawableProps, key }))}\n {/* Text Entry is a special case */}\n {TextEntry.render(drawableProps)}\n </Layer>\n </Stage>\n </div>\n </div>\n );\n }\n}\n\nconst styles = () => ({\n wrapper: {\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'flex-end',\n },\n base: {\n position: 'relative',\n width: '100%',\n },\n stage: {\n left: 0,\n position: 'absolute',\n touchAction: 'none',\n top: 0,\n },\n active: {\n cursor: 'pointer',\n },\n undoControls: {\n marginTop: -43,\n marginRight: 10,\n position: 'absolute',\n },\n});\n\nDrawableMain.propTypes = {\n classes: PropTypes.object.isRequired,\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 withStyles(styles)(DrawableMain);\n"],"file":"drawable-main.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/drawing-response/drawable-main.jsx"],"names":["translator","Translator","DrawableMain","props","onSessionChange","session","TextEntry","drawableDimensions","drawables","state","newSession","width","map","d","toJson","texts","all","text","id","attrs","value","setState","isOver","e","document","body","style","overflow","newDrawable","textIsSelected","toolActive","fillColor","outlineColor","scale","length","target","getStage","getPointerPosition","x","y","type","startx","starty","createdAt","Date","drawableToAdd","registerMovement","push","handleSessionChange","bind","updatedNewDrawable","newDrawables","allData","sort","a","b","lastElement","pop","updatedAt","nextProps","currentDrawables","drawablesString","JSON","stringify","sessionDrawableString","drawable","drawableArray","currentTexts","setAll","classes","disabled","imageDimensions","imageUrl","paintColor","backgroundImageEnabled","language","draggable","paint","drawableProps","forceUpdate","toggleTextSelected","stage","onMouseOverElement","onMouseOutElement","listeners","onMouseUp","handleMouseUp","onTouchEnd","onMouseMove","handleMouseMove","onTouchMove","onMouseDown","handleMouseDown","onTouchStart","imageHeight","height","imageWidth","wrapper","undoControls","handleUndo","t","lng","handleClearAll","base","renderTextareas","ref","active","layer","key","render","React","Component","styles","display","flexWrap","justifyContent","position","left","touchAction","top","cursor","marginTop","marginRight","propTypes","PropTypes","object","isRequired","bool","string","func","number"],"mappings":"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","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 classnames from 'classnames';\nimport { Layer, Stage } from 'react-konva';\nimport { withStyles } from '@material-ui/core/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\nexport class DrawableMain extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n drawables: [],\n newDrawable: [],\n textIsSelected: false,\n };\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 { x, y } = e.target.getStage().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 { x, y } = e.target.getStage().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 { x, y } = e.target.getStage().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 classes,\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 <div className={classes.wrapper}>\n <div className={classes.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 </div>\n <div className={classes.base}>\n {backgroundImageEnabled && imageUrl && (\n <ImageBackground dimensions={{ height: imageHeight, width: imageWidth }} url={imageUrl} />\n )}\n\n {TextEntry.renderTextareas()}\n\n <Stage\n scaleX={scale}\n scaleY={scale}\n ref={(ref) => {\n this.stage = ref;\n }}\n className={classnames(classes.stage, {\n [classes.active]: draggable && (isOver || (newDrawable && newDrawable.length === 1)),\n })}\n height={drawableDimensions.height}\n width={drawableDimensions.width}\n {...listeners}\n >\n <Layer\n ref={(ref) => {\n this.layer = ref;\n }}\n >\n {drawables.map((drawable, key) => drawable.render({ ...drawableProps, key }))}\n {/* Text Entry is a special case */}\n {TextEntry.render(drawableProps)}\n </Layer>\n </Stage>\n </div>\n </div>\n );\n }\n}\n\nconst styles = () => ({\n wrapper: {\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'flex-end',\n },\n base: {\n position: 'relative',\n width: '100%',\n },\n stage: {\n left: 0,\n position: 'absolute',\n touchAction: 'none',\n top: 0,\n },\n active: {\n cursor: 'pointer',\n },\n undoControls: {\n marginTop: -43,\n marginRight: 10,\n position: 'absolute',\n },\n});\n\nDrawableMain.propTypes = {\n classes: PropTypes.object.isRequired,\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 withStyles(styles)(DrawableMain);\n"],"file":"drawable-main.js"}
|
|
@@ -25,7 +25,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
25
25
|
|
|
26
26
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
27
27
|
|
|
28
|
-
var _renderUi = require("@pie-lib/
|
|
28
|
+
var _renderUi = require("@pie-lib/render-ui");
|
|
29
29
|
|
|
30
30
|
var _Select = _interopRequireDefault(require("@material-ui/core/Select"));
|
|
31
31
|
|
|
@@ -35,7 +35,7 @@ var _styles = require("@material-ui/core/styles");
|
|
|
35
35
|
|
|
36
36
|
var _classnames2 = _interopRequireDefault(require("classnames"));
|
|
37
37
|
|
|
38
|
-
var _translator = _interopRequireDefault(require("@pie-lib/
|
|
38
|
+
var _translator = _interopRequireDefault(require("@pie-lib/translator"));
|
|
39
39
|
|
|
40
40
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
41
41
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/drawing-response/drawable-palette.jsx"],"names":["translator","Translator","Palette","name","event","value","target","props","onFillColorChange","onOutlineColorChange","onPaintColorChange","classes","fillColor","outlineColor","fillList","outlineList","language","base","t","lng","input","select","onChange","map","label","item","blackColorItem","backgroundColor","border","React","Component","styles","theme","marginTop","spacing","unit","display","flex","fontSize","width","borderRadius","height","marginLeft","marginRight","color","palette","background","paper","transform","propTypes","PropTypes","object","isRequired","string","array","func"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAQA,UAAR,GAAuBC,sBAAvB,CAAQD,UAAR,C,CAEA;;IACME,O;;;;;;;;;;;;;;;iGACO,UAACC,IAAD;AAAA,aAAU,UAACC,KAAD,EAAW;AAC9B,YAAQC,KAAR,GAAkBD,KAAK,CAACE,MAAxB,CAAQD,KAAR;AACA,0BAAwE,MAAKE,KAA7E;AAAA,YAAQC,iBAAR,eAAQA,iBAAR;AAAA,YAA2BC,oBAA3B,eAA2BA,oBAA3B;AAAA,YAAiDC,kBAAjD,eAAiDA,kBAAjD;;AAEA,YAAIP,IAAI,KAAK,MAAb,EAAqB;AACnBK,UAAAA,iBAAiB,CAACH,KAAD,CAAjB;AACD,SAFD,MAEO,IAAIF,IAAI,KAAK,SAAb,EAAwB;AAC7BM,UAAAA,oBAAoB,CAACJ,KAAD,CAApB;AACD,SAFM,MAEA;AACLK,UAAAA,kBAAkB,CAACL,KAAD,CAAlB;AACD;AACF,OAXU;AAAA,K;;;;;;WAaX,kBAAS;AACP,yBAA8E,KAAKE,KAAnF;AAAA,UAAQI,OAAR,gBAAQA,OAAR;AAAA,UAAiBC,SAAjB,gBAAiBA,SAAjB;AAAA,UAA4BC,YAA5B,gBAA4BA,YAA5B;AAAA,UAA0CC,QAA1C,gBAA0CA,QAA1C;AAAA,UAAoDC,WAApD,gBAAoDA,WAApD;AAAA,UAAiEC,QAAjE,gBAAiEA,QAAjE;AAEA,0BACE;AAAK,QAAA,SAAS,EAAEL,OAAO,CAACM;AAAxB,sBACE,gCAAC,wBAAD;AAAgB,QAAA,KAAK,EAAEjB,UAAU,CAACkB,CAAX,CAAa,2BAAb,EAA0C;AAAEC,UAAAA,GAAG,EAAEH;AAAP,SAA1C,CAAvB;AAAqF,QAAA,SAAS,EAAEL,OAAO,CAACS;AAAxG,sBACE,gCAAC,kBAAD;AAAQ,QAAA,SAAS,EAAET,OAAO,CAACU,MAA3B;AAAmC,QAAA,QAAQ,EAAE,KAAKC,QAAL,CAAc,MAAd,CAA7C;AAAoE,QAAA,KAAK,EAAEV;AAA3E,SACGE,QAAQ,CAACS,GAAT,CAAa;AAAA,YAAGlB,KAAH,QAAGA,KAAH;AAAA,YAAUmB,KAAV,QAAUA,KAAV;AAAA,4BACZ,gCAAC,oBAAD;AACE,UAAA,GAAG,EAAEnB,KADP;AAEE,UAAA,KAAK,EAAEA,KAFT;AAGE,UAAA,SAAS,EAAE,6BAAWM,OAAO,CAACc,IAAnB,uCACRd,OAAO,CAACe,cADA,EACiBrB,KAAK,KAAK,OAD3B,EAHb;AAME,UAAA,KAAK,EAAE;AAAEsB,YAAAA,eAAe,EAAEtB;AAAnB;AANT,WAQGmB,KARH,CADY;AAAA,OAAb,CADH,CADF,CADF,eAkBE,gCAAC,wBAAD;
|
|
1
|
+
{"version":3,"sources":["../../src/drawing-response/drawable-palette.jsx"],"names":["translator","Translator","Palette","name","event","value","target","props","onFillColorChange","onOutlineColorChange","onPaintColorChange","classes","fillColor","outlineColor","fillList","outlineList","language","base","t","lng","input","select","onChange","map","label","item","blackColorItem","backgroundColor","border","React","Component","styles","theme","marginTop","spacing","unit","display","flex","fontSize","width","borderRadius","height","marginLeft","marginRight","color","palette","background","paper","transform","propTypes","PropTypes","object","isRequired","string","array","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { InputContainer } from '@pie-lib/render-ui';\nimport Select from '@material-ui/core/Select';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport { withStyles } from '@material-ui/core/styles';\nimport classnames from 'classnames';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\n\n// TODO: Change Palette so will render inputs and colors dynamically\nclass Palette extends React.Component {\n onChange = (name) => (event) => {\n const { value } = event.target;\n const { onFillColorChange, onOutlineColorChange, onPaintColorChange } = this.props;\n\n if (name === 'fill') {\n onFillColorChange(value);\n } else if (name === 'outline') {\n onOutlineColorChange(value);\n } else {\n onPaintColorChange(value);\n }\n };\n\n render() {\n const { classes, fillColor, outlineColor, fillList, outlineList, language } = this.props;\n\n return (\n <div className={classes.base}>\n <InputContainer label={translator.t('drawingResponse.fillColor', { lng: language })} className={classes.input}>\n <Select className={classes.select} onChange={this.onChange('fill')} value={fillColor}>\n {fillList.map(({ value, label }) => (\n <MenuItem\n key={value}\n value={value}\n className={classnames(classes.item, {\n [classes.blackColorItem]: value === 'black',\n })}\n style={{ backgroundColor: value }}\n >\n {label}\n </MenuItem>\n ))}\n </Select>\n </InputContainer>\n\n <InputContainer\n label={translator.t('drawingResponse.outlineColor', { lng: language })}\n className={classes.input}\n >\n <Select className={classes.select} onChange={this.onChange('outline')} value={outlineColor}>\n {outlineList.map(({ value, label }) => (\n <MenuItem key={value} value={value} className={classes.item} style={{ border: `2px solid ${value}` }}>\n {label}\n </MenuItem>\n ))}\n </Select>\n </InputContainer>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n base: {\n marginTop: theme.spacing.unit * 2,\n display: 'flex',\n },\n input: {\n flex: 1,\n fontSize: 'inherit',\n width: '90%',\n },\n item: {\n borderRadius: '2px',\n fontSize: 'inherit',\n height: '22px',\n marginLeft: theme.spacing.unit * 2,\n marginRight: theme.spacing.unit * 2,\n marginTop: theme.spacing.unit * 2,\n },\n blackColorItem: {\n color: theme.palette.background.paper,\n },\n select: {\n fontSize: 'inherit',\n transform: 'translate(0%, 40%)',\n },\n});\n\nPalette.propTypes = {\n classes: PropTypes.object.isRequired,\n fillColor: PropTypes.string.isRequired,\n fillList: PropTypes.array.isRequired,\n onFillColorChange: PropTypes.func.isRequired,\n onOutlineColorChange: PropTypes.func.isRequired,\n onPaintColorChange: PropTypes.func.isRequired,\n outlineColor: PropTypes.string.isRequired,\n outlineList: PropTypes.array.isRequired,\n language: PropTypes.string,\n};\n\nexport default withStyles(styles)(Palette);\n"],"file":"drawable-palette.js"}
|
|
@@ -19,7 +19,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
19
19
|
|
|
20
20
|
var _reactKonva = require("react-konva");
|
|
21
21
|
|
|
22
|
-
var _translator = _interopRequireDefault(require("@pie-lib/
|
|
22
|
+
var _translator = _interopRequireDefault(require("@pie-lib/translator"));
|
|
23
23
|
|
|
24
24
|
var _drawableTransformer = _interopRequireDefault(require("./drawable-transformer"));
|
|
25
25
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/drawing-response/drawable-text.jsx"],"names":["translator","Translator","generateId","Math","random","toString","substring","Date","getTime","TextDrawable","props","eventListenersDetachArray","forEach","fn","all","forceUpdate","language","id","push","isDefault","label","t","lng","width","x","length","y","textVisible","transformerVisible","textareaVisible","createdAt","type","handleSessionChange","toggleTextSelected","e","current","filter","item","text","toggleTextarea","textNode","getTextNode","textareaNode","getTextareaNode","areaPosition","_lastPos","value","style","position","top","left","padding","height","fontSize","border","margin","overflow","background","outline","resize","lineHeight","fontFamily","transformOrigin","textAlign","align","color","fill","rotation","transform","px","isFirefox","navigator","userAgent","toLowerCase","indexOf","round","scrollHeight","focus","keyDownHandler","keyCode","shiftKey","saveValue","addEventListener","removeEventListener","blurHandler","showOnlyTextNodes","initializeDefault","setAttrs","scaleX","scale","map","textarea","display","setInitialProps","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"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Text } from 'react-konva';\nimport Translator from '@pie-lib/pie-toolbox/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 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, textNode, textareaNode) {\n if (textareaNode.value) {\n textNode.text(textareaNode.value);\n } else {\n this.all = this.all.filter((text) => text.id !== id);\n this.props.forceUpdate();\n }\n\n this.props.handleSessionChange();\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 const areaPosition = textNode._lastPos;\n\n textareaNode.value = isDefault ? '' : textNode.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\n let rotation = textNode.rotation();\n let transform = '';\n if (rotation) {\n transform += 'rotateZ(' + rotation + 'deg)';\n }\n\n let px = 0;\n const isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n\n if (isFirefox) {\n px += 2 + Math.round(textNode.fontSize() / 20);\n }\n\n transform += 'translateY(-' + px + 'px)';\n\n textareaNode.style.transform = transform;\n textareaNode.style.height = 'auto';\n textareaNode.style.height = textareaNode.scrollHeight + 3 + 'px';\n\n textareaNode.focus();\n\n const keyDownHandler = (e) => {\n // hide on enter but don't hide on shift + enter\n if (e.keyCode === 13 && !e.shiftKey) {\n this.toggleTextarea(id, false);\n this.saveValue(id, textNode, textareaNode);\n }\n\n // on esc do not set value back to node\n if (e.keyCode === 27) {\n this.toggleTextarea(id, false);\n }\n };\n\n textareaNode.addEventListener('keydown', keyDownHandler);\n\n this.eventListenersDetachArray.push(() => textareaNode.removeEventListener('keydown', keyDownHandler));\n\n const blurHandler = () => {\n this.showOnlyTextNodes();\n this.saveValue(id, textNode, textareaNode);\n };\n\n textareaNode.addEventListener('blur', blurHandler);\n\n this.eventListenersDetachArray.push(() => textareaNode.removeEventListener('blur', blurHandler));\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"],"file":"drawable-text.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/drawing-response/drawable-text.jsx"],"names":["translator","Translator","generateId","Math","random","toString","substring","Date","getTime","TextDrawable","props","eventListenersDetachArray","forEach","fn","all","forceUpdate","language","id","push","isDefault","label","t","lng","width","x","length","y","textVisible","transformerVisible","textareaVisible","createdAt","type","handleSessionChange","toggleTextSelected","e","current","filter","item","text","toggleTextarea","textNode","getTextNode","textareaNode","getTextareaNode","areaPosition","_lastPos","value","style","position","top","left","padding","height","fontSize","border","margin","overflow","background","outline","resize","lineHeight","fontFamily","transformOrigin","textAlign","align","color","fill","rotation","transform","px","isFirefox","navigator","userAgent","toLowerCase","indexOf","round","scrollHeight","focus","keyDownHandler","keyCode","shiftKey","saveValue","addEventListener","removeEventListener","blurHandler","showOnlyTextNodes","initializeDefault","setAttrs","scaleX","scale","map","textarea","display","setInitialProps","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"],"mappings":"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","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 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, textNode, textareaNode) {\n if (textareaNode.value) {\n textNode.text(textareaNode.value);\n } else {\n this.all = this.all.filter((text) => text.id !== id);\n this.props.forceUpdate();\n }\n\n this.props.handleSessionChange();\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 const areaPosition = textNode._lastPos;\n\n textareaNode.value = isDefault ? '' : textNode.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\n let rotation = textNode.rotation();\n let transform = '';\n if (rotation) {\n transform += 'rotateZ(' + rotation + 'deg)';\n }\n\n let px = 0;\n const isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n\n if (isFirefox) {\n px += 2 + Math.round(textNode.fontSize() / 20);\n }\n\n transform += 'translateY(-' + px + 'px)';\n\n textareaNode.style.transform = transform;\n textareaNode.style.height = 'auto';\n textareaNode.style.height = textareaNode.scrollHeight + 3 + 'px';\n\n textareaNode.focus();\n\n const keyDownHandler = (e) => {\n // hide on enter but don't hide on shift + enter\n if (e.keyCode === 13 && !e.shiftKey) {\n this.toggleTextarea(id, false);\n this.saveValue(id, textNode, textareaNode);\n }\n\n // on esc do not set value back to node\n if (e.keyCode === 27) {\n this.toggleTextarea(id, false);\n }\n };\n\n textareaNode.addEventListener('keydown', keyDownHandler);\n\n this.eventListenersDetachArray.push(() => textareaNode.removeEventListener('keydown', keyDownHandler));\n\n const blurHandler = () => {\n this.showOnlyTextNodes();\n this.saveValue(id, textNode, textareaNode);\n };\n\n textareaNode.addEventListener('blur', blurHandler);\n\n this.eventListenersDetachArray.push(() => textareaNode.removeEventListener('blur', blurHandler));\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"],"file":"drawable-text.js"}
|
|
@@ -21,7 +21,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
21
21
|
|
|
22
22
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
23
23
|
|
|
24
|
-
var _renderUi = require("@pie-lib/
|
|
24
|
+
var _renderUi = require("@pie-lib/render-ui");
|
|
25
25
|
|
|
26
26
|
var _styles = require("@material-ui/core/styles");
|
|
27
27
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/drawing-response/index.jsx"],"names":["DrawingResponseComponent","props","state","showCorrect","hasError","model","extraCSSRules","disabled","imageDimensions","imageUrl","prompt","mode","teacherInstructions","backgroundImageEnabled","language","session","onSessionChange","classes","errorMessage","isEvaluateMode","main","collapsible","hidden","visible","error","message","React","Component","propTypes","PropTypes","object","isRequired","func","styles","theme","color","text","backgroundColor","background","marginBottom","spacing","unit"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { color, Collapsible, PreviewPrompt, UiLayout } from '@pie-lib/
|
|
1
|
+
{"version":3,"sources":["../../src/drawing-response/index.jsx"],"names":["DrawingResponseComponent","props","state","showCorrect","hasError","model","extraCSSRules","disabled","imageDimensions","imageUrl","prompt","mode","teacherInstructions","backgroundImageEnabled","language","session","onSessionChange","classes","errorMessage","isEvaluateMode","main","collapsible","hidden","visible","error","message","React","Component","propTypes","PropTypes","object","isRequired","func","styles","theme","color","text","backgroundColor","background","marginBottom","spacing","unit"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { color, Collapsible, PreviewPrompt, UiLayout } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport Container from './container';\n\nclass DrawingResponseComponent extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n showCorrect: false,\n hasError: false,\n };\n }\n\n static getDerivedStateFromError(error) {\n return { hasError: true, errorMessage: error.message };\n }\n\n render() {\n const {\n model: {\n extraCSSRules,\n disabled,\n imageDimensions,\n imageUrl,\n prompt,\n mode,\n teacherInstructions,\n backgroundImageEnabled,\n language,\n },\n session,\n onSessionChange,\n classes,\n } = this.props;\n const { hasError, errorMessage } = this.state;\n const isEvaluateMode = mode === 'evaluate';\n\n return hasError ? (\n <div className={classes.main}>An error occured: {errorMessage}</div>\n ) : (\n <UiLayout extraCSSRules={extraCSSRules} className={classes.main}>\n {teacherInstructions && (\n <Collapsible\n className={classes.collapsible}\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </Collapsible>\n )}\n\n {prompt && <PreviewPrompt tagName=\"span\" prompt={prompt} />}\n\n <Container\n session={session}\n onSessionChange={onSessionChange}\n isEvaluateMode={isEvaluateMode}\n imageDimensions={imageDimensions}\n imageUrl={imageUrl}\n backgroundImageEnabled={backgroundImageEnabled}\n disabled={disabled}\n language={language}\n />\n </UiLayout>\n );\n }\n}\n\nDrawingResponseComponent.propTypes = {\n classes: PropTypes.object,\n model: PropTypes.object.isRequired,\n onSessionChange: PropTypes.func.isRequired,\n session: PropTypes.object.isRequired,\n};\n\nconst styles = (theme) => ({\n main: {\n color: color.text(),\n backgroundColor: color.background(),\n },\n collapsible: {\n marginBottom: theme.spacing.unit * 2,\n },\n});\n\nexport default withStyles(styles)(DrawingResponseComponent);\n"],"file":"index.js"}
|
package/lib/index.js
CHANGED
|
@@ -29,7 +29,7 @@ var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
|
29
29
|
|
|
30
30
|
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
31
31
|
|
|
32
|
-
var _mathRendering = require("@pie-lib/
|
|
32
|
+
var _mathRendering = require("@pie-lib/math-rendering");
|
|
33
33
|
|
|
34
34
|
var _piePlayerEvents = require("@pie-framework/pie-player-events");
|
|
35
35
|
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["DrawingResponse","update","_session","drawables","texts","width","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","isComplete","_render","m","_model","ModelSetEvent","s","el","React","createElement","DrawingResponseComponent","model","session","onSessionChange","sessionChanged","ReactDOM","render","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA;;;;;;IAEqBA,e;;;;;;;;;;;;;;;uGAYF,UAACC,MAAD,EAAY;AAC3B,YAAKC,QAAL,CAAcC,SAAd,GAA0BF,MAAM,CAACE,SAAjC;AACA,YAAKD,QAAL,CAAcE,KAAd,GAAsBH,MAAM,CAACG,KAA7B;AACA,YAAKF,QAAL,CAAcG,KAAd,GAAsBJ,MAAM,CAACI,KAA7B;;AAEA,YAAKC,aAAL,CAAmB,IAAIC,oCAAJ,CAAwB,MAAKC,OAAL,CAAaC,WAAb,EAAxB,EAAoD,MAAKC,UAAL,EAApD,CAAnB;;AAEA,YAAKC,OAAL;AACD,K;;;;;;SAnBD,aAAUC,CAAV,EAAa;AACX,WAAKC,MAAL,GAAcD,CAAd;AAEA,WAAKN,aAAL,CAAmB,IAAIQ,8BAAJ,CAAkB,KAAKN,OAAL,CAAaC,WAAb,EAAlB,EAA8C,KAAKC,UAAL,EAA9C,EAAiE,CAAC,CAAC,KAAKG,MAAxE,CAAnB;;AACA,WAAKF,OAAL;AACD;;;WAED,sBAAa;AACX,aAAO,KAAKT,QAAL,KAAkB,CAAC,yBAAQ,KAAKA,QAAL,CAAcC,SAAtB,CAAD,IAAqC,CAAC,yBAAQ,KAAKD,QAAL,CAAcE,KAAtB,CAAxD,CAAP;AACD;;;SAiBD,eAAc;AACZ,aAAO,KAAKF,QAAZ;AACD,K;SAPD,aAAYa,CAAZ,EAAe;AACb,WAAKb,QAAL,GAAgBa,CAAhB;;AACA,WAAKJ,OAAL;AACD;;;WAMD,6BAAoB;AAClB,WAAKA,OAAL;AACD;;;WAED,mBAAU;AAAA;;AACR,UAAI,KAAKE,MAAL,IAAe,KAAKX,QAAxB,EAAkC;AAChC,YAAMc,EAAE,gBAAGC,kBAAMC,aAAN,CAAoBC,2BAApB,EAA8C;AACvDC,UAAAA,KAAK,EAAE,KAAKP,MAD2C;AAEvDQ,UAAAA,OAAO,EAAE,KAAKnB,QAFyC;AAGvDoB,UAAAA,eAAe,EAAE,KAAKC;AAHiC,SAA9C,CAAX;;AAMAC,6BAASC,MAAT,CAAgBT,EAAhB,EAAoB,IAApB,EAA0B,YAAM;AAC9B,yCAAW,MAAX;AACD,SAFD;AAGD;AACF;;;kDA/C0CU,W","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport isEmpty from 'lodash/isEmpty';\nimport { renderMath } from '@pie-lib/
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["DrawingResponse","update","_session","drawables","texts","width","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","isComplete","_render","m","_model","ModelSetEvent","s","el","React","createElement","DrawingResponseComponent","model","session","onSessionChange","sessionChanged","ReactDOM","render","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA;;;;;;IAEqBA,e;;;;;;;;;;;;;;;uGAYF,UAACC,MAAD,EAAY;AAC3B,YAAKC,QAAL,CAAcC,SAAd,GAA0BF,MAAM,CAACE,SAAjC;AACA,YAAKD,QAAL,CAAcE,KAAd,GAAsBH,MAAM,CAACG,KAA7B;AACA,YAAKF,QAAL,CAAcG,KAAd,GAAsBJ,MAAM,CAACI,KAA7B;;AAEA,YAAKC,aAAL,CAAmB,IAAIC,oCAAJ,CAAwB,MAAKC,OAAL,CAAaC,WAAb,EAAxB,EAAoD,MAAKC,UAAL,EAApD,CAAnB;;AAEA,YAAKC,OAAL;AACD,K;;;;;;SAnBD,aAAUC,CAAV,EAAa;AACX,WAAKC,MAAL,GAAcD,CAAd;AAEA,WAAKN,aAAL,CAAmB,IAAIQ,8BAAJ,CAAkB,KAAKN,OAAL,CAAaC,WAAb,EAAlB,EAA8C,KAAKC,UAAL,EAA9C,EAAiE,CAAC,CAAC,KAAKG,MAAxE,CAAnB;;AACA,WAAKF,OAAL;AACD;;;WAED,sBAAa;AACX,aAAO,KAAKT,QAAL,KAAkB,CAAC,yBAAQ,KAAKA,QAAL,CAAcC,SAAtB,CAAD,IAAqC,CAAC,yBAAQ,KAAKD,QAAL,CAAcE,KAAtB,CAAxD,CAAP;AACD;;;SAiBD,eAAc;AACZ,aAAO,KAAKF,QAAZ;AACD,K;SAPD,aAAYa,CAAZ,EAAe;AACb,WAAKb,QAAL,GAAgBa,CAAhB;;AACA,WAAKJ,OAAL;AACD;;;WAMD,6BAAoB;AAClB,WAAKA,OAAL;AACD;;;WAED,mBAAU;AAAA;;AACR,UAAI,KAAKE,MAAL,IAAe,KAAKX,QAAxB,EAAkC;AAChC,YAAMc,EAAE,gBAAGC,kBAAMC,aAAN,CAAoBC,2BAApB,EAA8C;AACvDC,UAAAA,KAAK,EAAE,KAAKP,MAD2C;AAEvDQ,UAAAA,OAAO,EAAE,KAAKnB,QAFyC;AAGvDoB,UAAAA,eAAe,EAAE,KAAKC;AAHiC,SAA9C,CAAX;;AAMAC,6BAASC,MAAT,CAAgBT,EAAhB,EAAoB,IAApB,EAA0B,YAAM;AAC9B,yCAAW,MAAX;AACD,SAFD;AAGD;AACF;;;kDA/C0CU,W","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\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 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 ReactDOM.render(el, this, () => {\n renderMath(this);\n });\n }\n }\n}\n"],"file":"index.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/drawing-response",
|
|
3
|
-
"version": "8.6.8-next.
|
|
3
|
+
"version": "8.6.8-next.33+895f3d268",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": "pie-framework/pie-elements",
|
|
6
6
|
"publishConfig": {
|
|
@@ -11,7 +11,9 @@
|
|
|
11
11
|
"@mdi/js": "^3.6.95",
|
|
12
12
|
"@mdi/react": "^1.1.1",
|
|
13
13
|
"@pie-framework/pie-player-events": "^0.1.0",
|
|
14
|
-
"@pie-lib/
|
|
14
|
+
"@pie-lib/math-rendering": "^3.11.0",
|
|
15
|
+
"@pie-lib/render-ui": "^4.24.0",
|
|
16
|
+
"@pie-lib/translator": "^2.12.0",
|
|
15
17
|
"classnames": "^2.2.6",
|
|
16
18
|
"enzyme-to-json": "^3.3.5",
|
|
17
19
|
"konva": "^3.4.1",
|
|
@@ -23,7 +25,7 @@
|
|
|
23
25
|
},
|
|
24
26
|
"author": "pie framework developers",
|
|
25
27
|
"license": "ISC",
|
|
26
|
-
"gitHead": "
|
|
28
|
+
"gitHead": "895f3d2686e02d1e7e3ae72b3b9eaef32c7cce6c",
|
|
27
29
|
"scripts": {
|
|
28
30
|
"postpublish": "../../scripts/postpublish"
|
|
29
31
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { Component } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { withStyles } from '@material-ui/core/styles';
|
|
4
|
-
import Translator from '@pie-lib/
|
|
4
|
+
import Translator from '@pie-lib/translator';
|
|
5
5
|
|
|
6
6
|
import constants from './constants';
|
|
7
7
|
import Button from './button';
|
|
@@ -6,7 +6,7 @@ import isEqual from 'lodash/isEqual';
|
|
|
6
6
|
import classnames from 'classnames';
|
|
7
7
|
import { Layer, Stage } from 'react-konva';
|
|
8
8
|
import { withStyles } from '@material-ui/core/styles';
|
|
9
|
-
import Translator from '@pie-lib/
|
|
9
|
+
import Translator from '@pie-lib/translator';
|
|
10
10
|
|
|
11
11
|
const { translator } = Translator;
|
|
12
12
|
import ImageBackground from './drawable-image';
|
|
@@ -188,7 +188,7 @@ export class DrawableMain extends React.Component {
|
|
|
188
188
|
backgroundImageEnabled = true,
|
|
189
189
|
toolActive: { type },
|
|
190
190
|
scale,
|
|
191
|
-
language
|
|
191
|
+
language,
|
|
192
192
|
} = this.props;
|
|
193
193
|
const { isOver, newDrawable } = this.state;
|
|
194
194
|
|
|
@@ -209,7 +209,7 @@ export class DrawableMain extends React.Component {
|
|
|
209
209
|
stage: this.stage,
|
|
210
210
|
onMouseOverElement: this.onMouseOverElement,
|
|
211
211
|
onMouseOutElement: this.onMouseOutElement,
|
|
212
|
-
scale
|
|
212
|
+
scale,
|
|
213
213
|
};
|
|
214
214
|
|
|
215
215
|
let listeners = {};
|
|
@@ -234,8 +234,16 @@ export class DrawableMain extends React.Component {
|
|
|
234
234
|
return (
|
|
235
235
|
<div className={classes.wrapper}>
|
|
236
236
|
<div className={classes.undoControls}>
|
|
237
|
-
<Button
|
|
238
|
-
|
|
237
|
+
<Button
|
|
238
|
+
disabled={disabled}
|
|
239
|
+
onClick={this.handleUndo}
|
|
240
|
+
label={translator.t('common:undo', { lng: language })}
|
|
241
|
+
/>
|
|
242
|
+
<Button
|
|
243
|
+
disabled={disabled}
|
|
244
|
+
onClick={this.handleClearAll}
|
|
245
|
+
label={translator.t('common:clearAll', { lng: language })}
|
|
246
|
+
/>
|
|
239
247
|
</div>
|
|
240
248
|
<div className={classes.base}>
|
|
241
249
|
{backgroundImageEnabled && imageUrl && (
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { InputContainer } from '@pie-lib/
|
|
3
|
+
import { InputContainer } from '@pie-lib/render-ui';
|
|
4
4
|
import Select from '@material-ui/core/Select';
|
|
5
5
|
import MenuItem from '@material-ui/core/MenuItem';
|
|
6
6
|
import { withStyles } from '@material-ui/core/styles';
|
|
7
7
|
import classnames from 'classnames';
|
|
8
|
-
import Translator from '@pie-lib/
|
|
8
|
+
import Translator from '@pie-lib/translator';
|
|
9
9
|
|
|
10
10
|
const { translator } = Translator;
|
|
11
11
|
|
|
@@ -46,7 +46,10 @@ class Palette extends React.Component {
|
|
|
46
46
|
</Select>
|
|
47
47
|
</InputContainer>
|
|
48
48
|
|
|
49
|
-
<InputContainer
|
|
49
|
+
<InputContainer
|
|
50
|
+
label={translator.t('drawingResponse.outlineColor', { lng: language })}
|
|
51
|
+
className={classes.input}
|
|
52
|
+
>
|
|
50
53
|
<Select className={classes.select} onChange={this.onChange('outline')} value={outlineColor}>
|
|
51
54
|
{outlineList.map(({ value, label }) => (
|
|
52
55
|
<MenuItem key={value} value={value} className={classes.item} style={{ border: `2px solid ${value}` }}>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { color, Collapsible, PreviewPrompt, UiLayout } from '@pie-lib/
|
|
3
|
+
import { color, Collapsible, PreviewPrompt, UiLayout } from '@pie-lib/render-ui';
|
|
4
4
|
import { withStyles } from '@material-ui/core/styles';
|
|
5
5
|
|
|
6
6
|
import Container from './container';
|
|
@@ -29,7 +29,7 @@ class DrawingResponseComponent extends React.Component {
|
|
|
29
29
|
mode,
|
|
30
30
|
teacherInstructions,
|
|
31
31
|
backgroundImageEnabled,
|
|
32
|
-
language
|
|
32
|
+
language,
|
|
33
33
|
},
|
|
34
34
|
session,
|
|
35
35
|
onSessionChange,
|
package/src/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import ReactDOM from 'react-dom';
|
|
3
3
|
import isEmpty from 'lodash/isEmpty';
|
|
4
|
-
import { renderMath } from '@pie-lib/
|
|
4
|
+
import { renderMath } from '@pie-lib/math-rendering';
|
|
5
5
|
import { ModelSetEvent, SessionChangedEvent } from '@pie-framework/pie-player-events';
|
|
6
6
|
|
|
7
7
|
import DrawingResponseComponent from './drawing-response';
|