@pie-element/drawing-response 4.3.4-next.5 → 4.3.4-next.54
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/button.js.map +1 -1
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/image-container.js +2 -2
- package/configure/lib/image-container.js.map +1 -1
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/root.js.map +1 -1
- package/configure/package.json +2 -2
- package/configure/src/__tests__/image-container.test.jsx +42 -35
- package/configure/src/__tests__/index.test.js +7 -7
- package/configure/src/__tests__/root.test.jsx +18 -18
- package/configure/src/button.jsx +4 -4
- package/configure/src/defaults.js +11 -11
- package/configure/src/image-container.jsx +7 -18
- package/configure/src/index.js +5 -5
- package/configure/src/root.jsx +10 -28
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js.map +1 -1
- package/controller/src/__tests__/index.test.js +20 -19
- package/controller/src/defaults.js +2 -2
- package/controller/src/index.js +12 -16
- package/docs/config-schema.json.md +1 -1
- package/docs/demo/config.js +2 -2
- package/docs/demo/generate.js +2 -2
- package/docs/demo/session.js +4 -4
- package/docs/pie-schema.json.md +1 -1
- package/lib/drawing-response/button.js.map +1 -1
- package/lib/drawing-response/constants.js.map +1 -1
- package/lib/drawing-response/container.js.map +1 -1
- package/lib/drawing-response/drawable-image.js.map +1 -1
- package/lib/drawing-response/drawable-main.js +1 -0
- package/lib/drawing-response/drawable-main.js.map +1 -1
- package/lib/drawing-response/drawable-palette.js.map +1 -1
- package/lib/drawing-response/drawable-text.js.map +1 -1
- package/lib/drawing-response/drawable-transformer.js.map +1 -1
- package/lib/drawing-response/factory.js.map +1 -1
- package/lib/drawing-response/icon.js.map +1 -1
- package/lib/drawing-response/index.js.map +1 -1
- package/lib/index.js.map +1 -1
- package/package.json +4 -4
- package/src/__tests__/drawing-index-test.jsx +4 -4
- package/src/drawing-response/__tests__/container.test.jsx +2 -2
- package/src/drawing-response/__tests__/drawable-helper.test.jsx +1 -1
- package/src/drawing-response/__tests__/drawing-main.test.jsx +73 -86
- package/src/drawing-response/button.jsx +5 -8
- package/src/drawing-response/constants.js +42 -34
- package/src/drawing-response/container.jsx +36 -55
- package/src/drawing-response/drawable-image.jsx +4 -4
- package/src/drawing-response/drawable-main.jsx +1 -0
- package/src/drawing-response/drawable-palette.jsx +13 -37
- package/src/drawing-response/drawable-text.jsx +29 -49
- package/src/drawing-response/drawable-transformer.jsx +3 -1
- package/src/drawing-response/factory.js +3 -11
- package/src/drawing-response/icon.jsx +19 -20
- package/src/drawing-response/index.jsx +8 -16
- package/src/index.js +3 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/drawing-response/drawable-main.jsx"],"names":["DrawableMain","props","onSessionChange","session","TextEntry","drawables","state","newSession","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","drawableDimensions","imageDimensions","imageUrl","paintColor","backgroundImageEnabled","draggable","paint","drawableProps","forceUpdate","toggleTextSelected","stage","onMouseOverElement","onMouseOutElement","listeners","onMouseUp","handleMouseUp","onTouchEnd","onMouseMove","handleMouseMove","onTouchMove","onMouseDown","handleMouseDown","onTouchStart","imageHeight","height","imageWidth","width","wrapper","undoControls","handleUndo","handleClearAll","base","renderTextareas","ref","active","layer","key","render","React","Component","styles","display","flexWrap","justifyContent","position","left","top","cursor","marginTop","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';\n\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(\n (newDrawables || []).map(drawable => omit(drawable, 'type'))\n );\n\n if (drawablesString !== sessionDrawableString) {\n const drawableArray = nextProps.session.drawables;\n\n this.setState({\n drawables: drawableArray.map(drawable =>\n factory(drawable.type, drawable)\n )\n });\n }\n\n const currentTexts = TextEntry.all.map(text => ({\n ...text,\n ...(TextEntry[`text_${text.id}`] &&\n TextEntry[`text_${text.id}`].attrs),\n value:\n TextEntry[`textarea_${text.id}`] &&\n 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 } = this.props;\n const { drawables } = this.state;\n\n const newSession = {\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:\n TextEntry[`textarea_${text.id}`] &&\n 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(\n { drawables: [], updatedAt: new Date() },\n this.handleSessionChange\n );\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 } = 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=\"Undo\"/>\n <Button disabled={disabled} onClick={this.handleClearAll} label=\"Clear all\"/>\n </div>\n <div className={classes.base}>\n {backgroundImageEnabled && imageUrl && (\n <ImageBackground\n dimensions={{ height: imageHeight, width: imageWidth }}\n 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]:\n draggable &&\n (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) =>\n drawable.render({ ...drawableProps, key })\n )}\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 top: 0\n },\n active: {\n cursor: 'pointer'\n },\n undoControls: {\n marginTop: -43,\n width: 163\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};\n\nexport default withStyles(styles)(DrawableMain);\n"],"file":"drawable-main.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/drawing-response/drawable-main.jsx"],"names":["DrawableMain","props","onSessionChange","session","TextEntry","drawables","state","newSession","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","drawableDimensions","imageDimensions","imageUrl","paintColor","backgroundImageEnabled","draggable","paint","drawableProps","forceUpdate","toggleTextSelected","stage","onMouseOverElement","onMouseOutElement","listeners","onMouseUp","handleMouseUp","onTouchEnd","onMouseMove","handleMouseMove","onTouchMove","onMouseDown","handleMouseDown","onTouchStart","imageHeight","height","imageWidth","width","wrapper","undoControls","handleUndo","handleClearAll","base","renderTextareas","ref","active","layer","key","render","React","Component","styles","display","flexWrap","justifyContent","position","left","touchAction","top","cursor","marginTop","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';\n\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(\n (newDrawables || []).map(drawable => omit(drawable, 'type'))\n );\n\n if (drawablesString !== sessionDrawableString) {\n const drawableArray = nextProps.session.drawables;\n\n this.setState({\n drawables: drawableArray.map(drawable =>\n factory(drawable.type, drawable)\n )\n });\n }\n\n const currentTexts = TextEntry.all.map(text => ({\n ...text,\n ...(TextEntry[`text_${text.id}`] &&\n TextEntry[`text_${text.id}`].attrs),\n value:\n TextEntry[`textarea_${text.id}`] &&\n 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 } = this.props;\n const { drawables } = this.state;\n\n const newSession = {\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:\n TextEntry[`textarea_${text.id}`] &&\n 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(\n { drawables: [], updatedAt: new Date() },\n this.handleSessionChange\n );\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 } = 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=\"Undo\"/>\n <Button disabled={disabled} onClick={this.handleClearAll} label=\"Clear all\"/>\n </div>\n <div className={classes.base}>\n {backgroundImageEnabled && imageUrl && (\n <ImageBackground\n dimensions={{ height: imageHeight, width: imageWidth }}\n 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]:\n draggable &&\n (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) =>\n drawable.render({ ...drawableProps, key })\n )}\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 width: 163\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};\n\nexport default withStyles(styles)(DrawableMain);\n"],"file":"drawable-main.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/drawing-response/drawable-palette.jsx"],"names":["Palette","name","event","value","target","props","onFillColorChange","onOutlineColorChange","onPaintColorChange","classes","fillColor","outlineColor","fillList","outlineList","base","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;;;;;;AAEA;IACMA,O;;;;;;;;;;;;;;;iGACO,
|
|
1
|
+
{"version":3,"sources":["../../src/drawing-response/drawable-palette.jsx"],"names":["Palette","name","event","value","target","props","onFillColorChange","onOutlineColorChange","onPaintColorChange","classes","fillColor","outlineColor","fillList","outlineList","base","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';\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 } = this.props;\n\n return (\n <div className={classes.base}>\n <InputContainer label=\"Fill Color\" 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 label=\"Outline Color\" className={classes.input}>\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};\n\nexport default withStyles(styles)(Palette);\n"],"file":"drawable-palette.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/drawing-response/drawable-text.jsx"],"names":["generateId","Math","random","toString","substring","Date","getTime","TextDrawable","props","eventListenersDetachArray","forEach","fn","all","forceUpdate","id","push","isDefault","label","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';\n\nimport Transformer from './drawable-transformer';\n\nexport const generateId = () =>\n Math.random()\n .toString(36)\n .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 = () =>\n this.eventListenersDetachArray.forEach(fn => fn());\n\n setAll = all => {\n this.all = all;\n this.props.forceUpdate();\n };\n\n addNewTextEntry = () => {\n const all = this.all;\n const id = generateId();\n\n all.push({\n id: id,\n isDefault: true,\n label: 'Double click to edit this text. Press Enter to submit.',\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 =\n 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(() =>\n textareaNode.removeEventListener('keydown', keyDownHandler)\n );\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(() =>\n textareaNode.removeEventListener('blur', blurHandler)\n );\n\n this.initializeDefault(id, isDefault);\n this.props.forceUpdate();\n };\n\n handleTransform = (e, textNode) => {\n this[textNode].setAttrs({\n width: this[textNode].width() * this[textNode].scaleX(),\n scaleX: this.props.scale,\n });\n };\n\n renderTextareas() {\n return this.all.map(text => {\n const { id, textareaVisible } = text;\n const textareaNode = `textarea_${id}`;\n\n return (\n <textarea\n key={textareaNode}\n ref={textarea => {\n this[textareaNode] = textarea;\n }}\n style={{ display: `${textareaVisible ? 'block' : 'none'}` }}\n />\n );\n });\n }\n\n setInitialProps(props) {\n if (!this.props) {\n this.props = props;\n }\n }\n\n render(props) {\n this.setInitialProps(props);\n\n if (props.stage) {\n const newStage = props.stage;\n\n // setting the handler only once\n if (newStage !== this.stage) {\n const stageClickHandler = e => {\n if (e.target !== this.stage) {\n return;\n }\n\n this.showOnlyTextNodes();\n this.props.forceUpdate();\n };\n\n newStage.on('click', stageClickHandler);\n\n this.eventListenersDetachArray.push(() =>\n newStage.off('click', stageClickHandler)\n );\n }\n\n this.stage = newStage;\n }\n\n return this.all.map(text => {\n const {\n id,\n label,\n x,\n y,\n width,\n textVisible,\n rotation,\n transformerVisible\n } = 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":["generateId","Math","random","toString","substring","Date","getTime","TextDrawable","props","eventListenersDetachArray","forEach","fn","all","forceUpdate","id","push","isDefault","label","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';\n\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 = () => {\n const all = this.all;\n const id = generateId();\n\n all.push({\n id: id,\n isDefault: true,\n label: 'Double click to edit this text. Press Enter to submit.',\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 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/drawing-response/drawable-transformer.jsx"],"names":["TransformerComponent","checkNode","stage","transformer","getStage","selectedShapeName","props","selectedNode","findOne","node","attachTo","detach","getLayer","batchDraw","React","Component","propTypes","PropTypes","string","isRequired"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;IAEMA,oB;;;;;;;;;;;;WACJ,6BAAoB;AAClB,WAAKC,SAAL;AACD;;;WAED,8BAAqB;AACnB,WAAKA,SAAL;AACD;;;WAED,qBAAY;AACV;AACA,UAAMC,KAAK,GAAG,KAAKC,WAAL,CAAiBC,QAAjB,EAAd;AACA,UAAQC,iBAAR,GAA8B,KAAKC,KAAnC,CAAQD,iBAAR;AAEA,UAAME,YAAY,GAAGL,KAAK,CAACM,OAAN,YAAkBH,iBAAlB,EAArB,CALU,CAMV;;AACA,UAAIE,YAAY,KAAK,KAAKJ,WAAL,CAAiBM,IAAjB,EAArB,EAA8C;AAC5C;AACD;;AAED,UAAIF,YAAJ,EAAkB;AAChB;AACA,aAAKJ,WAAL,CAAiBO,QAAjB,CAA0BH,YAA1B;AACD,OAHD,MAGO;AACL;AACA,aAAKJ,WAAL,CAAiBQ,MAAjB;AACD;;AACD,WAAKR,WAAL,CAAiBS,QAAjB,GAA4BC,SAA5B;AACD;;;WAED,kBAAS;AAAA;;AACP,0BACE,gCAAC,uBAAD;AACE,QAAA,GAAG,EAAE,
|
|
1
|
+
{"version":3,"sources":["../../src/drawing-response/drawable-transformer.jsx"],"names":["TransformerComponent","checkNode","stage","transformer","getStage","selectedShapeName","props","selectedNode","findOne","node","attachTo","detach","getLayer","batchDraw","React","Component","propTypes","PropTypes","string","isRequired"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;IAEMA,oB;;;;;;;;;;;;WACJ,6BAAoB;AAClB,WAAKC,SAAL;AACD;;;WAED,8BAAqB;AACnB,WAAKA,SAAL;AACD;;;WAED,qBAAY;AACV;AACA,UAAMC,KAAK,GAAG,KAAKC,WAAL,CAAiBC,QAAjB,EAAd;AACA,UAAQC,iBAAR,GAA8B,KAAKC,KAAnC,CAAQD,iBAAR;AAEA,UAAME,YAAY,GAAGL,KAAK,CAACM,OAAN,YAAkBH,iBAAlB,EAArB,CALU,CAMV;;AACA,UAAIE,YAAY,KAAK,KAAKJ,WAAL,CAAiBM,IAAjB,EAArB,EAA8C;AAC5C;AACD;;AAED,UAAIF,YAAJ,EAAkB;AAChB;AACA,aAAKJ,WAAL,CAAiBO,QAAjB,CAA0BH,YAA1B;AACD,OAHD,MAGO;AACL;AACA,aAAKJ,WAAL,CAAiBQ,MAAjB;AACD;;AACD,WAAKR,WAAL,CAAiBS,QAAjB,GAA4BC,SAA5B;AACD;;;WAED,kBAAS;AAAA;;AACP,0BACE,gCAAC,uBAAD;AACE,QAAA,GAAG,EAAE,aAACJ,IAAD,EAAU;AACb,UAAA,KAAI,CAACN,WAAL,GAAmBM,IAAnB;AACD,SAHH;AAIE,QAAA,cAAc,EAAE,CAAC,aAAD,EAAgB,cAAhB;AAJlB,SAKM,KAAKH,KALX,EADF;AASD;;;EAxCgCQ,kBAAMC,S;;AA2CzCf,oBAAoB,CAACgB,SAArB,GAAiC;AAC/BX,EAAAA,iBAAiB,EAAEY,sBAAUC,MAAV,CAAiBC;AADL,CAAjC;eAIenB,oB","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Transformer } from 'react-konva';\n\nclass TransformerComponent extends React.Component {\n componentDidMount() {\n this.checkNode();\n }\n\n componentDidUpdate() {\n this.checkNode();\n }\n\n checkNode() {\n // here we need to manually attach or detach Transformer node\n const stage = this.transformer.getStage();\n const { selectedShapeName } = this.props;\n\n const selectedNode = stage.findOne(`.${selectedShapeName}`);\n // do nothing if selected node is already attached\n if (selectedNode === this.transformer.node()) {\n return;\n }\n\n if (selectedNode) {\n // attach to another node\n this.transformer.attachTo(selectedNode);\n } else {\n // remove transformer\n this.transformer.detach();\n }\n this.transformer.getLayer().batchDraw();\n }\n\n render() {\n return (\n <Transformer\n ref={(node) => {\n this.transformer = node;\n }}\n enabledAnchors={['middle-left', 'middle-right']}\n {...this.props}\n />\n );\n }\n}\n\nTransformerComponent.propTypes = {\n selectedShapeName: PropTypes.string.isRequired,\n};\n\nexport default TransformerComponent;\n"],"file":"drawable-transformer.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/drawing-response/factory.js"],"names":["DRAWABLES","FreePathDrawable","LineDrawable","RectangleDrawable","CircleDrawable","EraserDrawable","type","props","T","find","D","TYPE","Error","JSON","stringify"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,SAAS,GAAG,
|
|
1
|
+
{"version":3,"sources":["../../src/drawing-response/factory.js"],"names":["DRAWABLES","FreePathDrawable","LineDrawable","RectangleDrawable","CircleDrawable","EraserDrawable","type","props","T","find","D","TYPE","Error","JSON","stringify"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,SAAS,GAAG,CAACC,4BAAD,EAAmBC,wBAAnB,EAAiCC,6BAAjC,EAAoDC,0BAApD,EAAoEC,0BAApE,CAAlB;;eAEe,kBAACC,IAAD,EAAOC,KAAP,EAAiB;AAC9B,MAAMC,CAAC,GAAGR,SAAS,CAACS,IAAV,CAAe,UAACC,CAAD;AAAA,WAAOA,CAAC,CAACC,IAAF,KAAWL,IAAlB;AAAA,GAAf,CAAV;;AAEA,MAAIE,CAAJ,EAAO;AACL,WAAO,IAAIA,CAAJ,CAAMD,KAAN,CAAP;AACD;;AAED,QAAM,IAAIK,KAAJ,yCAA2CN,IAA3C,yBAA8DO,IAAI,CAACC,SAAL,CAAeP,KAAf,CAA9D,EAAN;AACD,C","sourcesContent":["import FreePathDrawable from './drawable-free-path';\nimport LineDrawable from './drawable-line';\nimport RectangleDrawable from './drawable-rectangle';\nimport CircleDrawable from './drawable-circle';\nimport EraserDrawable from './drawable-eraser';\n\nconst DRAWABLES = [FreePathDrawable, LineDrawable, RectangleDrawable, CircleDrawable, EraserDrawable];\n\nexport default (type, props) => {\n const T = DRAWABLES.find((D) => D.TYPE === type);\n\n if (T) {\n return new T(props);\n }\n\n throw new Error(`Can't find drawable for type: ${type} and props: ${JSON.stringify(props)}`);\n};\n"],"file":"factory.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/drawing-response/icon.jsx"],"names":["IconWrapper","path","iconPath","mdiPencil","mdiMinus","mdiCircle","mdiRectangle","mdiFormatColorText","mdiFormatColorFill","mdiEraser","mdiCursorDefault","propTypes","PropTypes","string","isRequired"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAWA,IAAMA,WAAW,GAAG,SAAdA,WAAc,OAAc;AAAA,MAAXC,IAAW,QAAXA,IAAW;AAChC,MAAIC,QAAJ;;AAEA,UAAQD,IAAR;AACE,SAAK,WAAL;AACEC,MAAAA,QAAQ,GAAGC,aAAX;
|
|
1
|
+
{"version":3,"sources":["../../src/drawing-response/icon.jsx"],"names":["IconWrapper","path","iconPath","mdiPencil","mdiMinus","mdiCircle","mdiRectangle","mdiFormatColorText","mdiFormatColorFill","mdiEraser","mdiCursorDefault","propTypes","PropTypes","string","isRequired"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAWA,IAAMA,WAAW,GAAG,SAAdA,WAAc,OAAc;AAAA,MAAXC,IAAW,QAAXA,IAAW;AAChC,MAAIC,QAAJ;;AAEA,UAAQD,IAAR;AACE,SAAK,WAAL;AACEC,MAAAA,QAAQ,GAAGC,aAAX;AACA;;AACF,SAAK,UAAL;AACED,MAAAA,QAAQ,GAAGE,YAAX;AACA;;AACF,SAAK,WAAL;AACEF,MAAAA,QAAQ,GAAGG,aAAX;AACA;;AACF,SAAK,cAAL;AACEH,MAAAA,QAAQ,GAAGI,gBAAX;AACA;;AACF,SAAK,oBAAL;AACEJ,MAAAA,QAAQ,GAAGK,sBAAX;AACA;;AACF,SAAK,oBAAL;AACEL,MAAAA,QAAQ,GAAGM,sBAAX;AACA;;AACF,SAAK,WAAL;AACEN,MAAAA,QAAQ,GAAGO,aAAX;AACA;;AACF;AACEP,MAAAA,QAAQ,GAAGQ,oBAAX;AACA;AAxBJ;;AA2BA,sBAAO,gCAAC,kBAAD;AAAM,IAAA,IAAI,EAAER,QAAZ;AAAsB,IAAA,IAAI,EAAE,GAA5B;AAAiC,IAAA,MAAM,EAAE,GAAzC;AAA8C,IAAA,UAAU,MAAxD;AAAyD,IAAA,QAAQ,MAAjE;AAAkE,IAAA,KAAK,EAAC;AAAxE,IAAP;AACD,CA/BD;;AAiCAF,WAAW,CAACW,SAAZ,GAAwB;AACtBV,EAAAA,IAAI,EAAEW,sBAAUC,MAAV,CAAiBC;AADD,CAAxB;eAIed,W","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '@mdi/react';\nimport {\n mdiCursorDefault,\n mdiPencil,\n mdiMinus,\n mdiRectangle,\n mdiCircle,\n mdiFormatColorText,\n mdiFormatColorFill,\n mdiEraser,\n} from '@mdi/js';\n\nconst IconWrapper = ({ path }) => {\n let iconPath;\n\n switch (path) {\n case 'mdiPencil':\n iconPath = mdiPencil;\n break;\n case 'mdiMinus':\n iconPath = mdiMinus;\n break;\n case 'mdiCircle':\n iconPath = mdiCircle;\n break;\n case 'mdiRectangle':\n iconPath = mdiRectangle;\n break;\n case 'mdiFormatColorText':\n iconPath = mdiFormatColorText;\n break;\n case 'mdiFormatColorFill':\n iconPath = mdiFormatColorFill;\n break;\n case 'mdiEraser':\n iconPath = mdiEraser;\n break;\n default:\n iconPath = mdiCursorDefault;\n break;\n }\n\n return <Icon path={iconPath} size={0.8} rotate={180} horizontal vertical color=\"#2B3963\" />;\n};\n\nIconWrapper.propTypes = {\n path: PropTypes.string.isRequired,\n};\n\nexport default IconWrapper;\n"],"file":"icon.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/drawing-response/index.jsx"],"names":["DrawingResponseComponent","props","state","showCorrect","hasError","model","disabled","imageDimensions","imageUrl","prompt","mode","teacherInstructions","backgroundImageEnabled","session","onSessionChange","classes","errorMessage","isEvaluateMode","hidden","visible","error","message","React","Component","propTypes","PropTypes","object","isRequired","func","styles","fontSize"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA;;;;;;IAEMA,wB;;;;;AACJ,oCAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AACA,UAAKC,KAAL,GAAa;AACXC,MAAAA,WAAW,EAAE,KADF;AAEXC,MAAAA,QAAQ,EAAE;AAFC,KAAb;AAFiB;AAMlB;;;;WAMD,kBAAS;AACP,
|
|
1
|
+
{"version":3,"sources":["../../src/drawing-response/index.jsx"],"names":["DrawingResponseComponent","props","state","showCorrect","hasError","model","disabled","imageDimensions","imageUrl","prompt","mode","teacherInstructions","backgroundImageEnabled","session","onSessionChange","classes","errorMessage","isEvaluateMode","hidden","visible","error","message","React","Component","propTypes","PropTypes","object","isRequired","func","styles","fontSize"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA;;;;;;IAEMA,wB;;;;;AACJ,oCAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AACA,UAAKC,KAAL,GAAa;AACXC,MAAAA,WAAW,EAAE,KADF;AAEXC,MAAAA,QAAQ,EAAE;AAFC,KAAb;AAFiB;AAMlB;;;;WAMD,kBAAS;AACP,wBAKI,KAAKH,KALT;AAAA,0CACEI,KADF;AAAA,UACWC,QADX,qBACWA,QADX;AAAA,UACqBC,eADrB,qBACqBA,eADrB;AAAA,UACsCC,QADtC,qBACsCA,QADtC;AAAA,UACgDC,MADhD,qBACgDA,MADhD;AAAA,UACwDC,IADxD,qBACwDA,IADxD;AAAA,UAC8DC,mBAD9D,qBAC8DA,mBAD9D;AAAA,oDACmFC,sBADnF;AAAA,UACmFA,sBADnF,sCAC4G,IAD5G;AAAA,UAEEC,OAFF,eAEEA,OAFF;AAAA,UAGEC,eAHF,eAGEA,eAHF;AAAA,UAIEC,OAJF,eAIEA,OAJF;AAMA,wBAAmC,KAAKb,KAAxC;AAAA,UAAQE,QAAR,eAAQA,QAAR;AAAA,UAAkBY,YAAlB,eAAkBA,YAAlB;AACA,UAAMC,cAAc,GAAGP,IAAI,KAAK,UAAhC;AAEA,aAAON,QAAQ,gBACb,mEAAwBY,YAAxB,CADa,gBAGb,6CACGL,mBAAmB,iBAClB,gCAAC,iBAAD,CAAO,QAAP,qBACE,gCAAC,qBAAD;AACE,QAAA,MAAM,EAAE;AACNO,UAAAA,MAAM,EAAE,2BADF;AAENC,UAAAA,OAAO,EAAE;AAFH;AADV,sBAME,gCAAC,uBAAD;AAAe,QAAA,MAAM,EAAER;AAAvB,QANF,CADF,eASE,2CATF,CAFJ,eAeE,gCAAC,sBAAD;AAAY,QAAA,SAAS,EAAEI,OAAO,CAACN;AAA/B,sBACE,gCAAC,uBAAD;AAAe,QAAA,OAAO,EAAC,MAAvB;AAA8B,QAAA,MAAM,EAAEA;AAAtC,QADF,CAfF,eAmBE,gCAAC,qBAAD;AACE,QAAA,OAAO,EAAEI,OADX;AAEE,QAAA,eAAe,EAAEC,eAFnB;AAGE,QAAA,cAAc,EAAEG,cAHlB;AAIE,QAAA,eAAe,EAAEV,eAJnB;AAKE,QAAA,QAAQ,EAAEC,QALZ;AAME,QAAA,sBAAsB,EAAEI,sBAN1B;AAOE,QAAA,QAAQ,EAAEN;AAPZ,QAnBF,CAHF;AAiCD;;;WA/CD,kCAAgCc,KAAhC,EAAuC;AACrC,aAAO;AAAEhB,QAAAA,QAAQ,EAAE,IAAZ;AAAkBY,QAAAA,YAAY,EAAEI,KAAK,CAACC;AAAtC,OAAP;AACD;;;EAXoCC,kBAAMC,S;;AA2D7CvB,wBAAwB,CAACwB,SAAzB,GAAqC;AACnCT,EAAAA,OAAO,EAAEU,sBAAUC,MADgB;AAEnCrB,EAAAA,KAAK,EAAEoB,sBAAUC,MAAV,CAAiBC,UAFW;AAGnCb,EAAAA,eAAe,EAAEW,sBAAUG,IAAV,CAAeD,UAHG;AAInCd,EAAAA,OAAO,EAAEY,sBAAUC,MAAV,CAAiBC;AAJS,CAArC;;AAOA,IAAME,MAAM,GAAG,SAATA,MAAS;AAAA,SAAO;AACpBpB,IAAAA,MAAM,EAAE;AACNqB,MAAAA,QAAQ,EAAE;AADJ;AADY,GAAP;AAAA,CAAf;;eAMe,wBAAWD,MAAX,EAAmB7B,wBAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Typography from '@material-ui/core/Typography';\nimport { Collapsible, PreviewPrompt } 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: { disabled, imageDimensions, imageUrl, prompt, mode, teacherInstructions, backgroundImageEnabled = true },\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>An error occured: {errorMessage}</div>\n ) : (\n <div>\n {teacherInstructions && (\n <React.Fragment>\n <Collapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </Collapsible>\n <br />\n </React.Fragment>\n )}\n\n <Typography className={classes.prompt}>\n <PreviewPrompt tagName=\"span\" prompt={prompt} />\n </Typography>\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 />\n </div>\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 = () => ({\n prompt: {\n fontSize: 'inherit',\n },\n});\n\nexport default withStyles(styles)(DrawingResponseComponent);\n"],"file":"index.js"}
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["DrawingResponse","update","_session","drawables","texts","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;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["DrawingResponse","update","_session","drawables","texts","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;;AAEA,YAAKC,aAAL,CAAmB,IAAIC,oCAAJ,CAAwB,MAAKC,OAAL,CAAaC,WAAb,EAAxB,EAAoD,MAAKC,UAAL,EAApD,CAAnB;;AAEA,YAAKC,OAAL;AACD,K;;;;;;SAlBD,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,KAAKR,QAAL,KAAkB,CAAC,yBAAQ,KAAKA,QAAL,CAAcC,SAAtB,CAAD,IAAqC,CAAC,yBAAQ,KAAKD,QAAL,CAAcE,KAAtB,CAAxD,CAAP;AACD;;;SAgBD,eAAc;AACZ,aAAO,KAAKF,QAAZ;AACD,K;SAPD,aAAYY,CAAZ,EAAe;AACb,WAAKZ,QAAL,GAAgBY,CAAhB;;AACA,WAAKJ,OAAL;AACD;;;WAMD,6BAAoB;AAClB,WAAKA,OAAL;AACD;;;WAED,mBAAU;AAAA;;AACR,UAAI,KAAKE,MAAL,IAAe,KAAKV,QAAxB,EAAkC;AAChC,YAAMa,EAAE,gBAAGC,kBAAMC,aAAN,CAAoBC,2BAApB,EAA8C;AACvDC,UAAAA,KAAK,EAAE,KAAKP,MAD2C;AAEvDQ,UAAAA,OAAO,EAAE,KAAKlB,QAFyC;AAGvDmB,UAAAA,eAAe,EAAE,KAAKC;AAHiC,SAA9C,CAAX;;AAMAC,6BAASC,MAAT,CAAgBT,EAAhB,EAAoB,IAApB,EAA0B,YAAM;AAC9B,yCAAW,MAAX;AACD,SAFD;AAGD;AACF;;;kDA9C0CU,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\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": "4.3.4-next.
|
|
3
|
+
"version": "4.3.4-next.54+689166a2c",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": "pie-framework/pie-elements",
|
|
6
6
|
"publishConfig": {
|
|
@@ -11,8 +11,8 @@
|
|
|
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/math-rendering": "^2.5.
|
|
15
|
-
"@pie-lib/render-ui": "^4.13.
|
|
14
|
+
"@pie-lib/math-rendering": "^2.5.1",
|
|
15
|
+
"@pie-lib/render-ui": "^4.13.7",
|
|
16
16
|
"classnames": "^2.2.6",
|
|
17
17
|
"enzyme-to-json": "^3.3.5",
|
|
18
18
|
"konva": "^3.4.1",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
},
|
|
25
25
|
"author": "pie framework developers",
|
|
26
26
|
"license": "ISC",
|
|
27
|
-
"gitHead": "
|
|
27
|
+
"gitHead": "689166a2c90339a7dbb1f82076236f15b3c15515",
|
|
28
28
|
"scripts": {
|
|
29
29
|
"postpublish": "../../scripts/postpublish"
|
|
30
30
|
},
|
|
@@ -14,14 +14,14 @@ describe('DrawingResponse', () => {
|
|
|
14
14
|
disabled: false,
|
|
15
15
|
imageDimensions: {
|
|
16
16
|
height: 0,
|
|
17
|
-
width: 0
|
|
17
|
+
width: 0,
|
|
18
18
|
},
|
|
19
19
|
imageUrl: '',
|
|
20
20
|
mode: 'gather',
|
|
21
|
-
prompt: 'This is the question prompt'
|
|
22
|
-
}
|
|
21
|
+
prompt: 'This is the question prompt',
|
|
22
|
+
},
|
|
23
23
|
},
|
|
24
|
-
opts
|
|
24
|
+
opts,
|
|
25
25
|
);
|
|
26
26
|
|
|
27
27
|
return shallow(<DrawingResponse {...opts} />);
|
|
@@ -22,12 +22,12 @@ describe('Container', () => {
|
|
|
22
22
|
onSessionChange,
|
|
23
23
|
imageDimensions: {},
|
|
24
24
|
imageUrl: 'url',
|
|
25
|
-
session: {}
|
|
25
|
+
session: {},
|
|
26
26
|
};
|
|
27
27
|
const props = { ...defaults, ...extras };
|
|
28
28
|
return shallow(<Container {...props} />, {
|
|
29
29
|
disableLifecycleMethods: false,
|
|
30
|
-
...renderOpts
|
|
30
|
+
...renderOpts,
|
|
31
31
|
});
|
|
32
32
|
};
|
|
33
33
|
|