@pie-element/drawing-response 10.3.4-next.0 → 11.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/configure/lib/button.js +23 -47
  2. package/configure/lib/button.js.map +1 -1
  3. package/configure/lib/defaults.js +2 -3
  4. package/configure/lib/defaults.js.map +1 -1
  5. package/configure/lib/image-container.js +238 -327
  6. package/configure/lib/image-container.js.map +1 -1
  7. package/configure/lib/index.js +115 -182
  8. package/configure/lib/index.js.map +1 -1
  9. package/configure/lib/root.js +194 -260
  10. package/configure/lib/root.js.map +1 -1
  11. package/configure/package.json +9 -7
  12. package/configure/src/__tests__/image-container.test.jsx +101 -37
  13. package/configure/src/__tests__/index.test.js +27 -5
  14. package/configure/src/__tests__/root.test.jsx +37 -21
  15. package/configure/src/button.jsx +14 -24
  16. package/configure/src/image-container.jsx +73 -77
  17. package/configure/src/index.js +12 -2
  18. package/configure/src/root.jsx +24 -25
  19. package/controller/lib/defaults.js +2 -3
  20. package/controller/lib/defaults.js.map +1 -1
  21. package/controller/lib/index.js +39 -65
  22. package/controller/lib/index.js.map +1 -1
  23. package/controller/package.json +1 -1
  24. package/lib/drawing-response/button.js +35 -60
  25. package/lib/drawing-response/button.js.map +1 -1
  26. package/lib/drawing-response/constants.js +2 -3
  27. package/lib/drawing-response/constants.js.map +1 -1
  28. package/lib/drawing-response/container.js +270 -351
  29. package/lib/drawing-response/container.js.map +1 -1
  30. package/lib/drawing-response/drawable-circle.js +65 -104
  31. package/lib/drawing-response/drawable-circle.js.map +1 -1
  32. package/lib/drawing-response/drawable-eraser.js +50 -86
  33. package/lib/drawing-response/drawable-eraser.js.map +1 -1
  34. package/lib/drawing-response/drawable-free-path.js +56 -97
  35. package/lib/drawing-response/drawable-free-path.js.map +1 -1
  36. package/lib/drawing-response/drawable-helper.js +16 -28
  37. package/lib/drawing-response/drawable-helper.js.map +1 -1
  38. package/lib/drawing-response/drawable-image.js +30 -49
  39. package/lib/drawing-response/drawable-image.js.map +1 -1
  40. package/lib/drawing-response/drawable-line.js +60 -99
  41. package/lib/drawing-response/drawable-line.js.map +1 -1
  42. package/lib/drawing-response/drawable-main.js +273 -345
  43. package/lib/drawing-response/drawable-main.js.map +1 -1
  44. package/lib/drawing-response/drawable-palette.js +123 -166
  45. package/lib/drawing-response/drawable-palette.js.map +1 -1
  46. package/lib/drawing-response/drawable-rectangle.js +65 -104
  47. package/lib/drawing-response/drawable-rectangle.js.map +1 -1
  48. package/lib/drawing-response/drawable-text.js +201 -313
  49. package/lib/drawing-response/drawable-text.js.map +1 -1
  50. package/lib/drawing-response/drawable-transformer.js +36 -79
  51. package/lib/drawing-response/drawable-transformer.js.map +1 -1
  52. package/lib/drawing-response/factory.js +6 -19
  53. package/lib/drawing-response/factory.js.map +1 -1
  54. package/lib/drawing-response/icon.js +8 -24
  55. package/lib/drawing-response/icon.js.map +1 -1
  56. package/lib/drawing-response/index.js +74 -116
  57. package/lib/drawing-response/index.js.map +1 -1
  58. package/lib/index.js +51 -102
  59. package/lib/index.js.map +1 -1
  60. package/package.json +13 -12
  61. package/src/__tests__/drawing-index-test.jsx +90 -27
  62. package/src/drawing-response/__tests__/container.test.jsx +56 -36
  63. package/src/drawing-response/__tests__/drawing-main.test.jsx +158 -139
  64. package/src/drawing-response/button.jsx +23 -34
  65. package/src/drawing-response/container.jsx +39 -40
  66. package/src/drawing-response/drawable-image.jsx +17 -20
  67. package/src/drawing-response/drawable-main.jsx +67 -60
  68. package/src/drawing-response/drawable-palette.jsx +48 -54
  69. package/src/drawing-response/drawable-text.jsx +26 -38
  70. package/src/drawing-response/index.jsx +21 -20
  71. package/src/index.js +17 -2
  72. package/configure/src/__tests__/__snapshots__/image-container.test.jsx.snap +0 -45
  73. package/configure/src/__tests__/__snapshots__/root.test.jsx.snap +0 -185
  74. package/src/__tests__/__snapshots__/drawing-index-test.jsx.snap +0 -23
  75. package/src/drawing-response/__tests__/__snapshots__/container.test.jsx.snap +0 -396
  76. package/src/drawing-response/__tests__/__snapshots__/drawing-main.test.jsx.snap +0 -247
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/image-container.jsx"],"names":["isImage","file","imageType","type","match","ImageContainer","props","onImageUpload","insertImage","reader","FileReader","onloadend","result","readAsDataURL","fakeImageHandler","getChosenFile","isPasted","e","preventDefault","target","files","handleFileRead","setState","dropzoneActive","dataTransfer","items","kind","getAsFile","makeDropzoneInactive","state","makeDropzoneActive","dragEnabled","offsetHeight","offsetWidth","naturalHeight","naturalWidth","onUpdateImageDimension","imageDimensions","resizeHandle","resize","dimensions","height","width","imageAspectRatio","addEventListener","initialiseResize","window","startResizing","stopResizing","handleEnableDrag","removeEventListener","box","image","maxImageWidth","maxImageHeight","bounds","getBoundingClientRect","x","clientX","left","y","clientY","top","fitsContainer","hasMinimumWidth","style","handleDisableDrag","cancel","done","a","url","fileChosen","progress","imageSection","positionInfo","label","classes","handleInputClick","input","handleUploadImage","ref","imageUrl","base","boxActive","onDragExit","handleOnDragExit","onDragLeave","onDragOver","handleOnDragOver","onDrop","handleOnDrop","toolbar","renderUploadControl","drawableHeight","imageContainer","handleOnImageLoad","undefined","maxWidth","maxHeight","centered","Component","PropTypes","object","styles","theme","marginTop","spacing","unit","border","borderRadius","alignItems","display","flexDirection","justifyContent","minHeight","position","borderBottom","borderRight","bottom","cursor","right","backgroundColor","borderTopLeftRadius","borderTopRightRadius","padding","propTypes","isRequired","string","func"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport Button from './button';\n\nconst isImage = (file) => {\n const imageType = /image.*/;\n return file.type.match(imageType);\n};\n\nexport class ImageContainer extends Component {\n\n static propTypes = {\n imageDimensions: PropTypes.object,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n this.state = {\n maxImageWidth: '100%',\n maxImageHeight: 'auto',\n dragEnabled: true,\n dropzoneActive: false,\n };\n this.fakeImageHandler = {\n cancel: () => {},\n done: (a, url) => this.props.onImageUpload(url),\n fileChosen: () => {},\n progress: () => {},\n };\n }\n\n componentDidMount() {\n if (this.imageSection) {\n const positionInfo = this.imageSection.getBoundingClientRect();\n const { height, width } = positionInfo;\n this.setState({\n maxImageWidth: width,\n maxImageHeight: height,\n });\n }\n }\n\n handleFileRead = (file) => {\n const { onImageUpload, insertImage } = this.props;\n const reader = new FileReader();\n\n reader.onloadend = () => onImageUpload(reader.result);\n reader.readAsDataURL(file);\n\n if (insertImage) {\n insertImage({\n ...this.fakeImageHandler,\n getChosenFile: () => file,\n isPasted: true,\n });\n }\n };\n\n handleUploadImage = (e) => {\n e.preventDefault();\n const file = e.target.files[0];\n this.handleFileRead(file);\n };\n\n makeDropzoneActive = () => this.setState({ dropzoneActive: true });\n\n makeDropzoneInactive = () => this.setState({ dropzoneActive: false });\n\n handleOnDrop = (e) => {\n e.preventDefault();\n const { items, files } = e.dataTransfer;\n\n if (items && items[0].kind === 'file') {\n const file = items[0].getAsFile();\n if (isImage(file)) {\n this.handleFileRead(file);\n }\n } else if (isImage(files[0])) {\n this.handleFileRead(files[0]);\n }\n\n this.makeDropzoneInactive();\n };\n\n handleOnDragOver = (e) => {\n e.preventDefault();\n const { dropzoneActive } = this.state;\n\n if (!dropzoneActive) {\n this.makeDropzoneActive();\n }\n };\n\n handleOnDragExit = (e) => {\n e.preventDefault();\n this.makeDropzoneInactive();\n };\n\n handleEnableDrag = () => this.setState({ dragEnabled: true });\n handleDisableDrag = () => this.setState({ dragEnabled: false });\n handleInputClick = () => {\n const { insertImage } = this.props;\n\n if (insertImage) {\n insertImage(this.fakeImageHandler);\n }\n };\n\n handleOnImageLoad = ({ target: { offsetHeight, offsetWidth, naturalHeight, naturalWidth } }) => {\n const { onUpdateImageDimension, imageDimensions } = this.props;\n const resizeHandle = this.resize;\n\n const dimensions = {\n height: (imageDimensions && imageDimensions.height) || offsetHeight || naturalHeight,\n width: (imageDimensions && imageDimensions.width) || offsetWidth || naturalWidth,\n };\n\n // check if aspect ratio is not respected on replacing image\n const imageAspectRatio = naturalWidth / naturalHeight;\n\n if (dimensions.width !== dimensions.height * imageAspectRatio) {\n dimensions.width = dimensions.height * imageAspectRatio;\n }\n\n this.setState({ dimensions });\n onUpdateImageDimension(dimensions);\n\n resizeHandle.addEventListener('mousedown', this.initialiseResize, false);\n };\n\n initialiseResize = () => {\n window.addEventListener('mousemove', this.startResizing, false);\n window.addEventListener('mouseup', this.stopResizing, false);\n };\n\n stopResizing = () => {\n const { onUpdateImageDimension } = this.props;\n const { dimensions } = this.state;\n\n this.handleEnableDrag();\n onUpdateImageDimension(dimensions);\n\n window.removeEventListener('mousemove', this.startResizing, false);\n window.removeEventListener('mouseup', this.stopResizing, false);\n };\n\n startResizing = (e) => {\n const box = this.image;\n const { maxImageWidth, maxImageHeight, dimensions } = this.state;\n\n const bounds = e.target.getBoundingClientRect();\n const x = e.clientX - bounds.left;\n const y = e.clientY - bounds.top;\n\n const imageAspectRatio = dimensions.width / dimensions.height;\n const fitsContainer = x <= maxImageWidth + 5 && x / imageAspectRatio <= maxImageHeight + 5;\n const hasMinimumWidth = x > 150 && y > 150;\n\n if (fitsContainer && hasMinimumWidth && box) {\n box.style.width = `${x}px`;\n box.style.height = `${x / imageAspectRatio}px`;\n\n this.setState({\n dimensions: {\n width: x,\n height: x / imageAspectRatio,\n },\n });\n }\n\n this.handleDisableDrag();\n };\n\n renderUploadControl(label) {\n const { classes } = this.props;\n\n return (\n <div>\n <Button label={label} onClick={this.handleInputClick} />\n <input\n accept=\"image/*\"\n className={classes.input}\n onChange={this.handleUploadImage}\n ref={(ref) => {\n this.input = ref;\n }}\n type=\"file\"\n />\n </div>\n );\n }\n\n render() {\n const { classes, imageUrl, imageDimensions } = this.props;\n const { dropzoneActive, dragEnabled, maxImageHeight, maxImageWidth } = this.state;\n\n return (\n <div className={classes.base}>\n <div\n className={`${classes.box} ${dropzoneActive ? classes.boxActive : ''}`}\n {...(dragEnabled\n ? {\n onDragExit: this.handleOnDragExit,\n onDragLeave: this.handleOnDragExit,\n onDragOver: this.handleOnDragOver,\n onDrop: this.handleOnDrop,\n }\n : {})}\n >\n <div className={classes.toolbar}>{this.renderUploadControl(imageUrl ? 'Replace Image' : 'Upload Image')}</div>\n\n <div\n ref={(ref) => {\n this.imageSection = ref;\n }}\n className={classes.drawableHeight}\n >\n {imageUrl ? (\n <div className={classes.imageContainer}>\n <img\n className={classes.image}\n height=\"auto\"\n onLoad={this.handleOnImageLoad}\n ref={(ref) => {\n this.image = ref;\n }}\n src={imageUrl}\n style={{\n width: imageDimensions && imageDimensions.width ? imageDimensions.width : undefined,\n maxWidth: maxImageWidth,\n maxHeight: maxImageHeight,\n }}\n alt=\"\"\n />\n <div\n ref={(ref) => {\n this.resize = ref;\n }}\n className={classes.resize}\n />\n </div>\n ) : (\n <div className={`${classes.drawableHeight} ${classes.centered}`}>\n <label>Drag and drop or upload image from computer</label>\n <br />\n {this.renderUploadControl('Upload Image')}\n </div>\n )}\n </div>\n </div>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n base: {\n marginTop: theme.spacing.unit,\n },\n box: {\n border: '1px solid #E0E1E6',\n borderRadius: '5px',\n },\n boxActive: {\n border: '1px solid #0032C2',\n },\n centered: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n },\n drawableHeight: {\n minHeight: 350,\n },\n image: {\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center',\n },\n imageContainer: {\n position: 'relative',\n width: 'fit-content',\n },\n resize: {\n borderBottom: '1px solid #727272',\n borderRight: '1px solid #727272',\n bottom: '-10px',\n cursor: 'se-resize',\n height: '10px',\n position: 'absolute',\n right: '-10px',\n width: '10px',\n },\n input: {\n display: 'none',\n },\n toolbar: {\n backgroundColor: '#ECEDF1',\n borderBottom: '1px solid #E0E1E6',\n borderTopLeftRadius: '5px',\n borderTopRightRadius: '5px',\n display: 'flex',\n padding: '12px 8px',\n },\n});\n\nImageContainer.propTypes = {\n classes: PropTypes.object.isRequired,\n imageUrl: PropTypes.string.isRequired,\n onImageUpload: PropTypes.func.isRequired,\n onUpdateImageDimension: PropTypes.func.isRequired,\n insertImage: PropTypes.func,\n};\n\nexport default withStyles(styles)(ImageContainer);\n"],"file":"image-container.js"}
1
+ {"version":3,"file":"image-container.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_styles","_button","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","isImage","file","imageType","type","match","BaseContainer","styled","theme","marginTop","spacing","Box","active","border","borderRadius","CenteredDiv","alignItems","display","flexDirection","justifyContent","DrawableHeight","minHeight","Image","StyledImageContainer","position","width","ResizeHandle","borderBottom","borderRight","bottom","cursor","height","right","HiddenInput","Toolbar","backgroundColor","borderTopLeftRadius","borderTopRightRadius","padding","ImageContainer","Component","constructor","props","_defineProperty2","onImageUpload","insertImage","reader","FileReader","onloadend","result","readAsDataURL","fakeImageHandler","getChosenFile","isPasted","preventDefault","target","files","handleFileRead","setState","dropzoneActive","items","dataTransfer","kind","getAsFile","makeDropzoneInactive","state","makeDropzoneActive","dragEnabled","offsetHeight","offsetWidth","naturalHeight","naturalWidth","onUpdateImageDimension","imageDimensions","resizeHandle","resize","dimensions","imageAspectRatio","addEventListener","initialiseResize","window","startResizing","stopResizing","handleEnableDrag","removeEventListener","box","image","maxImageWidth","maxImageHeight","bounds","getBoundingClientRect","x","clientX","left","y","clientY","top","fitsContainer","hasMinimumWidth","style","handleDisableDrag","cancel","done","a","url","fileChosen","progress","componentDidMount","imageSection","positionInfo","renderUploadControl","label","createElement","onClick","handleInputClick","accept","onChange","handleUploadImage","ref","input","render","imageUrl","_extends2","onDragExit","handleOnDragExit","onDragLeave","onDragOver","handleOnDragOver","onDrop","handleOnDrop","onLoad","handleOnImageLoad","src","undefined","maxWidth","maxHeight","alt","as","exports","PropTypes","object","propTypes","string","isRequired","func","_default"],"sources":["../src/image-container.jsx"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\n\nimport Button from './button';\n\nconst isImage = (file) => {\n const imageType = /image.*/;\n return file.type.match(imageType);\n};\n\nconst BaseContainer = styled('div')(({ theme }) => ({\n marginTop: theme.spacing(1),\n}));\n\nconst Box = styled('div')(({ active }) => ({\n border: active ? '1px solid #0032C2' : '1px solid #E0E1E6',\n borderRadius: '5px',\n}));\n\nconst CenteredDiv = styled('div')({\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n});\n\nconst DrawableHeight = styled('div')({\n minHeight: 350,\n});\n\nconst Image = styled('img')({\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center',\n});\n\nconst StyledImageContainer = styled('div')({\n position: 'relative',\n width: 'fit-content',\n});\n\nconst ResizeHandle = styled('div')({\n borderBottom: '1px solid #727272',\n borderRight: '1px solid #727272',\n bottom: '-10px',\n cursor: 'se-resize',\n height: '10px',\n position: 'absolute',\n right: '-10px',\n width: '10px',\n});\n\nconst HiddenInput = styled('input')({\n display: 'none',\n});\n\nconst Toolbar = styled('div')({\n backgroundColor: '#ECEDF1',\n borderBottom: '1px solid #E0E1E6',\n borderTopLeftRadius: '5px',\n borderTopRightRadius: '5px',\n display: 'flex',\n padding: '12px 8px',\n});\n\nexport class ImageContainer extends Component {\n\n static propTypes = {\n imageDimensions: PropTypes.object,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n this.state = {\n maxImageWidth: '100%',\n maxImageHeight: 'auto',\n dragEnabled: true,\n dropzoneActive: false,\n };\n this.fakeImageHandler = {\n cancel: () => {},\n done: (a, url) => this.props.onImageUpload(url),\n fileChosen: () => {},\n progress: () => {},\n };\n }\n\n componentDidMount() {\n if (this.imageSection) {\n const positionInfo = this.imageSection.getBoundingClientRect();\n const { height, width } = positionInfo;\n this.setState({\n maxImageWidth: width,\n maxImageHeight: height,\n });\n }\n }\n\n handleFileRead = (file) => {\n const { onImageUpload, insertImage } = this.props;\n const reader = new FileReader();\n\n reader.onloadend = () => onImageUpload(reader.result);\n reader.readAsDataURL(file);\n\n if (insertImage) {\n insertImage({\n ...this.fakeImageHandler,\n getChosenFile: () => file,\n isPasted: true,\n });\n }\n };\n\n handleUploadImage = (e) => {\n e.preventDefault();\n const file = e.target.files[0];\n this.handleFileRead(file);\n };\n\n makeDropzoneActive = () => this.setState({ dropzoneActive: true });\n\n makeDropzoneInactive = () => this.setState({ dropzoneActive: false });\n\n handleOnDrop = (e) => {\n e.preventDefault();\n const { items, files } = e.dataTransfer;\n\n if (items && items[0].kind === 'file') {\n const file = items[0].getAsFile();\n if (isImage(file)) {\n this.handleFileRead(file);\n }\n } else if (isImage(files[0])) {\n this.handleFileRead(files[0]);\n }\n\n this.makeDropzoneInactive();\n };\n\n handleOnDragOver = (e) => {\n e.preventDefault();\n const { dropzoneActive } = this.state;\n\n if (!dropzoneActive) {\n this.makeDropzoneActive();\n }\n };\n\n handleOnDragExit = (e) => {\n e.preventDefault();\n this.makeDropzoneInactive();\n };\n\n handleEnableDrag = () => this.setState({ dragEnabled: true });\n handleDisableDrag = () => this.setState({ dragEnabled: false });\n handleInputClick = () => {\n const { insertImage } = this.props;\n\n if (insertImage) {\n insertImage(this.fakeImageHandler);\n }\n };\n\n handleOnImageLoad = ({ target: { offsetHeight, offsetWidth, naturalHeight, naturalWidth } }) => {\n const { onUpdateImageDimension, imageDimensions } = this.props;\n const resizeHandle = this.resize;\n\n const dimensions = {\n height: (imageDimensions && imageDimensions.height) || offsetHeight || naturalHeight,\n width: (imageDimensions && imageDimensions.width) || offsetWidth || naturalWidth,\n };\n\n // check if aspect ratio is not respected on replacing image\n const imageAspectRatio = naturalWidth / naturalHeight;\n\n if (dimensions.width !== dimensions.height * imageAspectRatio) {\n dimensions.width = dimensions.height * imageAspectRatio;\n }\n\n this.setState({ dimensions });\n onUpdateImageDimension(dimensions);\n\n resizeHandle.addEventListener('mousedown', this.initialiseResize, false);\n };\n\n initialiseResize = () => {\n window.addEventListener('mousemove', this.startResizing, false);\n window.addEventListener('mouseup', this.stopResizing, false);\n };\n\n stopResizing = () => {\n const { onUpdateImageDimension } = this.props;\n const { dimensions } = this.state;\n\n this.handleEnableDrag();\n onUpdateImageDimension(dimensions);\n\n window.removeEventListener('mousemove', this.startResizing, false);\n window.removeEventListener('mouseup', this.stopResizing, false);\n };\n\n startResizing = (e) => {\n const box = this.image;\n const { maxImageWidth, maxImageHeight, dimensions } = this.state;\n\n const bounds = e.target.getBoundingClientRect();\n const x = e.clientX - bounds.left;\n const y = e.clientY - bounds.top;\n\n const imageAspectRatio = dimensions.width / dimensions.height;\n const fitsContainer = x <= maxImageWidth + 5 && x / imageAspectRatio <= maxImageHeight + 5;\n const hasMinimumWidth = x > 150 && y > 150;\n\n if (fitsContainer && hasMinimumWidth && box) {\n box.style.width = `${x}px`;\n box.style.height = `${x / imageAspectRatio}px`;\n\n this.setState({\n dimensions: {\n width: x,\n height: x / imageAspectRatio,\n },\n });\n }\n\n this.handleDisableDrag();\n };\n\n renderUploadControl(label) {\n return (\n <div>\n <Button label={label} onClick={this.handleInputClick} />\n <HiddenInput\n accept=\"image/*\"\n onChange={this.handleUploadImage}\n ref={(ref) => {\n this.input = ref;\n }}\n type=\"file\"\n />\n </div>\n );\n }\n\n render() {\n const { imageUrl, imageDimensions } = this.props;\n const { dropzoneActive, dragEnabled, maxImageHeight, maxImageWidth } = this.state;\n\n return (\n <BaseContainer>\n <Box\n active={dropzoneActive}\n {...(dragEnabled\n ? {\n onDragExit: this.handleOnDragExit,\n onDragLeave: this.handleOnDragExit,\n onDragOver: this.handleOnDragOver,\n onDrop: this.handleOnDrop,\n }\n : {})}\n >\n <Toolbar>{this.renderUploadControl(imageUrl ? 'Replace Image' : 'Upload Image')}</Toolbar>\n\n <DrawableHeight\n ref={(ref) => {\n this.imageSection = ref;\n }}\n >\n {imageUrl ? (\n <StyledImageContainer>\n <Image\n height=\"auto\"\n onLoad={this.handleOnImageLoad}\n ref={(ref) => {\n this.image = ref;\n }}\n src={imageUrl}\n style={{\n width: imageDimensions && imageDimensions.width ? imageDimensions.width : undefined,\n maxWidth: maxImageWidth,\n maxHeight: maxImageHeight,\n }}\n alt=\"\"\n />\n <ResizeHandle\n ref={(ref) => {\n this.resize = ref;\n }}\n />\n </StyledImageContainer>\n ) : (\n <DrawableHeight as={CenteredDiv}>\n <label>Drag and drop or upload image from computer</label>\n <br />\n {this.renderUploadControl('Upload Image')}\n </DrawableHeight>\n )}\n </DrawableHeight>\n </Box>\n </BaseContainer>\n );\n }\n}\n\nImageContainer.propTypes = {\n imageUrl: PropTypes.string.isRequired,\n onImageUpload: PropTypes.func.isRequired,\n onUpdateImageDimension: PropTypes.func.isRequired,\n insertImage: PropTypes.func,\n};\n\nexport default ImageContainer;\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAEA,IAAAI,OAAA,GAAAF,sBAAA,CAAAF,OAAA;AAA8B,SAAAD,wBAAAM,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAR,uBAAA,YAAAA,CAAAM,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAE9B,MAAMkB,OAAO,GAAIC,IAAI,IAAK;EACxB,MAAMC,SAAS,GAAG,SAAS;EAC3B,OAAOD,IAAI,CAACE,IAAI,CAACC,KAAK,CAACF,SAAS,CAAC;AACnC,CAAC;AAED,MAAMG,aAAa,GAAG,IAAAC,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEC;AAAM,CAAC,MAAM;EAClDC,SAAS,EAAED,KAAK,CAACE,OAAO,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEH,MAAMC,GAAG,GAAG,IAAAJ,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEK;AAAO,CAAC,MAAM;EACzCC,MAAM,EAAED,MAAM,GAAG,mBAAmB,GAAG,mBAAmB;EAC1DE,YAAY,EAAE;AAChB,CAAC,CAAC,CAAC;AAEH,MAAMC,WAAW,GAAG,IAAAR,cAAM,EAAC,KAAK,CAAC,CAAC;EAChCS,UAAU,EAAE,QAAQ;EACpBC,OAAO,EAAE,MAAM;EACfC,aAAa,EAAE,QAAQ;EACvBC,cAAc,EAAE;AAClB,CAAC,CAAC;AAEF,MAAMC,cAAc,GAAG,IAAAb,cAAM,EAAC,KAAK,CAAC,CAAC;EACnCc,SAAS,EAAE;AACb,CAAC,CAAC;AAEF,MAAMC,KAAK,GAAG,IAAAf,cAAM,EAAC,KAAK,CAAC,CAAC;EAC1BS,UAAU,EAAE,QAAQ;EACpBC,OAAO,EAAE,MAAM;EACfE,cAAc,EAAE;AAClB,CAAC,CAAC;AAEF,MAAMI,oBAAoB,GAAG,IAAAhB,cAAM,EAAC,KAAK,CAAC,CAAC;EACzCiB,QAAQ,EAAE,UAAU;EACpBC,KAAK,EAAE;AACT,CAAC,CAAC;AAEF,MAAMC,YAAY,GAAG,IAAAnB,cAAM,EAAC,KAAK,CAAC,CAAC;EACjCoB,YAAY,EAAE,mBAAmB;EACjCC,WAAW,EAAE,mBAAmB;EAChCC,MAAM,EAAE,OAAO;EACfC,MAAM,EAAE,WAAW;EACnBC,MAAM,EAAE,MAAM;EACdP,QAAQ,EAAE,UAAU;EACpBQ,KAAK,EAAE,OAAO;EACdP,KAAK,EAAE;AACT,CAAC,CAAC;AAEF,MAAMQ,WAAW,GAAG,IAAA1B,cAAM,EAAC,OAAO,CAAC,CAAC;EAClCU,OAAO,EAAE;AACX,CAAC,CAAC;AAEF,MAAMiB,OAAO,GAAG,IAAA3B,cAAM,EAAC,KAAK,CAAC,CAAC;EAC5B4B,eAAe,EAAE,SAAS;EAC1BR,YAAY,EAAE,mBAAmB;EACjCS,mBAAmB,EAAE,KAAK;EAC1BC,oBAAoB,EAAE,KAAK;EAC3BpB,OAAO,EAAE,MAAM;EACfqB,OAAO,EAAE;AACX,CAAC,CAAC;AAEK,MAAMC,cAAc,SAASC,gBAAS,CAAC;EAQ5CC,WAAWA,CAACC,KAAK,EAAE;IACjB,KAAK,CAACA,KAAK,CAAC;IAAC,IAAAC,gBAAA,CAAAnD,OAAA,0BA0BGU,IAAI,IAAK;MACzB,MAAM;QAAE0C,aAAa;QAAEC;MAAY,CAAC,GAAG,IAAI,CAACH,KAAK;MACjD,MAAMI,MAAM,GAAG,IAAIC,UAAU,CAAC,CAAC;MAE/BD,MAAM,CAACE,SAAS,GAAG,MAAMJ,aAAa,CAACE,MAAM,CAACG,MAAM,CAAC;MACrDH,MAAM,CAACI,aAAa,CAAChD,IAAI,CAAC;MAE1B,IAAI2C,WAAW,EAAE;QACfA,WAAW,CAAC;UACV,GAAG,IAAI,CAACM,gBAAgB;UACxBC,aAAa,EAAEA,CAAA,KAAMlD,IAAI;UACzBmD,QAAQ,EAAE;QACZ,CAAC,CAAC;MACJ;IACF,CAAC;IAAA,IAAAV,gBAAA,CAAAnD,OAAA,6BAEoBV,CAAC,IAAK;MACzBA,CAAC,CAACwE,cAAc,CAAC,CAAC;MAClB,MAAMpD,IAAI,GAAGpB,CAAC,CAACyE,MAAM,CAACC,KAAK,CAAC,CAAC,CAAC;MAC9B,IAAI,CAACC,cAAc,CAACvD,IAAI,CAAC;IAC3B,CAAC;IAAA,IAAAyC,gBAAA,CAAAnD,OAAA,8BAEoB,MAAM,IAAI,CAACkE,QAAQ,CAAC;MAAEC,cAAc,EAAE;IAAK,CAAC,CAAC;IAAA,IAAAhB,gBAAA,CAAAnD,OAAA,gCAE3C,MAAM,IAAI,CAACkE,QAAQ,CAAC;MAAEC,cAAc,EAAE;IAAM,CAAC,CAAC;IAAA,IAAAhB,gBAAA,CAAAnD,OAAA,wBAErDV,CAAC,IAAK;MACpBA,CAAC,CAACwE,cAAc,CAAC,CAAC;MAClB,MAAM;QAAEM,KAAK;QAAEJ;MAAM,CAAC,GAAG1E,CAAC,CAAC+E,YAAY;MAEvC,IAAID,KAAK,IAAIA,KAAK,CAAC,CAAC,CAAC,CAACE,IAAI,KAAK,MAAM,EAAE;QACrC,MAAM5D,IAAI,GAAG0D,KAAK,CAAC,CAAC,CAAC,CAACG,SAAS,CAAC,CAAC;QACjC,IAAI9D,OAAO,CAACC,IAAI,CAAC,EAAE;UACjB,IAAI,CAACuD,cAAc,CAACvD,IAAI,CAAC;QAC3B;MACF,CAAC,MAAM,IAAID,OAAO,CAACuD,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;QAC5B,IAAI,CAACC,cAAc,CAACD,KAAK,CAAC,CAAC,CAAC,CAAC;MAC/B;MAEA,IAAI,CAACQ,oBAAoB,CAAC,CAAC;IAC7B,CAAC;IAAA,IAAArB,gBAAA,CAAAnD,OAAA,4BAEmBV,CAAC,IAAK;MACxBA,CAAC,CAACwE,cAAc,CAAC,CAAC;MAClB,MAAM;QAAEK;MAAe,CAAC,GAAG,IAAI,CAACM,KAAK;MAErC,IAAI,CAACN,cAAc,EAAE;QACnB,IAAI,CAACO,kBAAkB,CAAC,CAAC;MAC3B;IACF,CAAC;IAAA,IAAAvB,gBAAA,CAAAnD,OAAA,4BAEmBV,CAAC,IAAK;MACxBA,CAAC,CAACwE,cAAc,CAAC,CAAC;MAClB,IAAI,CAACU,oBAAoB,CAAC,CAAC;IAC7B,CAAC;IAAA,IAAArB,gBAAA,CAAAnD,OAAA,4BAEkB,MAAM,IAAI,CAACkE,QAAQ,CAAC;MAAES,WAAW,EAAE;IAAK,CAAC,CAAC;IAAA,IAAAxB,gBAAA,CAAAnD,OAAA,6BACzC,MAAM,IAAI,CAACkE,QAAQ,CAAC;MAAES,WAAW,EAAE;IAAM,CAAC,CAAC;IAAA,IAAAxB,gBAAA,CAAAnD,OAAA,4BAC5C,MAAM;MACvB,MAAM;QAAEqD;MAAY,CAAC,GAAG,IAAI,CAACH,KAAK;MAElC,IAAIG,WAAW,EAAE;QACfA,WAAW,CAAC,IAAI,CAACM,gBAAgB,CAAC;MACpC;IACF,CAAC;IAAA,IAAAR,gBAAA,CAAAnD,OAAA,6BAEmB,CAAC;MAAE+D,MAAM,EAAE;QAAEa,YAAY;QAAEC,WAAW;QAAEC,aAAa;QAAEC;MAAa;IAAE,CAAC,KAAK;MAC9F,MAAM;QAAEC,sBAAsB;QAAEC;MAAgB,CAAC,GAAG,IAAI,CAAC/B,KAAK;MAC9D,MAAMgC,YAAY,GAAG,IAAI,CAACC,MAAM;MAEhC,MAAMC,UAAU,GAAG;QACjB7C,MAAM,EAAG0C,eAAe,IAAIA,eAAe,CAAC1C,MAAM,IAAKqC,YAAY,IAAIE,aAAa;QACpF7C,KAAK,EAAGgD,eAAe,IAAIA,eAAe,CAAChD,KAAK,IAAK4C,WAAW,IAAIE;MACtE,CAAC;;MAED;MACA,MAAMM,gBAAgB,GAAGN,YAAY,GAAGD,aAAa;MAErD,IAAIM,UAAU,CAACnD,KAAK,KAAKmD,UAAU,CAAC7C,MAAM,GAAG8C,gBAAgB,EAAE;QAC7DD,UAAU,CAACnD,KAAK,GAAGmD,UAAU,CAAC7C,MAAM,GAAG8C,gBAAgB;MACzD;MAEA,IAAI,CAACnB,QAAQ,CAAC;QAAEkB;MAAW,CAAC,CAAC;MAC7BJ,sBAAsB,CAACI,UAAU,CAAC;MAElCF,YAAY,CAACI,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAACC,gBAAgB,EAAE,KAAK,CAAC;IAC1E,CAAC;IAAA,IAAApC,gBAAA,CAAAnD,OAAA,4BAEkB,MAAM;MACvBwF,MAAM,CAACF,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAACG,aAAa,EAAE,KAAK,CAAC;MAC/DD,MAAM,CAACF,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAACI,YAAY,EAAE,KAAK,CAAC;IAC9D,CAAC;IAAA,IAAAvC,gBAAA,CAAAnD,OAAA,wBAEc,MAAM;MACnB,MAAM;QAAEgF;MAAuB,CAAC,GAAG,IAAI,CAAC9B,KAAK;MAC7C,MAAM;QAAEkC;MAAW,CAAC,GAAG,IAAI,CAACX,KAAK;MAEjC,IAAI,CAACkB,gBAAgB,CAAC,CAAC;MACvBX,sBAAsB,CAACI,UAAU,CAAC;MAElCI,MAAM,CAACI,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAACH,aAAa,EAAE,KAAK,CAAC;MAClED,MAAM,CAACI,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAACF,YAAY,EAAE,KAAK,CAAC;IACjE,CAAC;IAAA,IAAAvC,gBAAA,CAAAnD,OAAA,yBAEgBV,CAAC,IAAK;MACrB,MAAMuG,GAAG,GAAG,IAAI,CAACC,KAAK;MACtB,MAAM;QAAEC,aAAa;QAAEC,cAAc;QAAEZ;MAAW,CAAC,GAAG,IAAI,CAACX,KAAK;MAEhE,MAAMwB,MAAM,GAAG3G,CAAC,CAACyE,MAAM,CAACmC,qBAAqB,CAAC,CAAC;MAC/C,MAAMC,CAAC,GAAG7G,CAAC,CAAC8G,OAAO,GAAGH,MAAM,CAACI,IAAI;MACjC,MAAMC,CAAC,GAAGhH,CAAC,CAACiH,OAAO,GAAGN,MAAM,CAACO,GAAG;MAEhC,MAAMnB,gBAAgB,GAAGD,UAAU,CAACnD,KAAK,GAAGmD,UAAU,CAAC7C,MAAM;MAC7D,MAAMkE,aAAa,GAAGN,CAAC,IAAIJ,aAAa,GAAG,CAAC,IAAII,CAAC,GAAGd,gBAAgB,IAAIW,cAAc,GAAG,CAAC;MAC1F,MAAMU,eAAe,GAAGP,CAAC,GAAG,GAAG,IAAIG,CAAC,GAAG,GAAG;MAE1C,IAAIG,aAAa,IAAIC,eAAe,IAAIb,GAAG,EAAE;QAC3CA,GAAG,CAACc,KAAK,CAAC1E,KAAK,GAAG,GAAGkE,CAAC,IAAI;QAC1BN,GAAG,CAACc,KAAK,CAACpE,MAAM,GAAG,GAAG4D,CAAC,GAAGd,gBAAgB,IAAI;QAE9C,IAAI,CAACnB,QAAQ,CAAC;UACZkB,UAAU,EAAE;YACVnD,KAAK,EAAEkE,CAAC;YACR5D,MAAM,EAAE4D,CAAC,GAAGd;UACd;QACF,CAAC,CAAC;MACJ;MAEA,IAAI,CAACuB,iBAAiB,CAAC,CAAC;IAC1B,CAAC;IA1JC,IAAI,CAACnC,KAAK,GAAG;MACXsB,aAAa,EAAE,MAAM;MACrBC,cAAc,EAAE,MAAM;MACtBrB,WAAW,EAAE,IAAI;MACjBR,cAAc,EAAE;IAClB,CAAC;IACD,IAAI,CAACR,gBAAgB,GAAG;MACtBkD,MAAM,EAAEA,CAAA,KAAM,CAAC,CAAC;MAChBC,IAAI,EAAEA,CAACC,CAAC,EAAEC,GAAG,KAAK,IAAI,CAAC9D,KAAK,CAACE,aAAa,CAAC4D,GAAG,CAAC;MAC/CC,UAAU,EAAEA,CAAA,KAAM,CAAC,CAAC;MACpBC,QAAQ,EAAEA,CAAA,KAAM,CAAC;IACnB,CAAC;EACH;EAEAC,iBAAiBA,CAAA,EAAG;IAClB,IAAI,IAAI,CAACC,YAAY,EAAE;MACrB,MAAMC,YAAY,GAAG,IAAI,CAACD,YAAY,CAAClB,qBAAqB,CAAC,CAAC;MAC9D,MAAM;QAAE3D,MAAM;QAAEN;MAAM,CAAC,GAAGoF,YAAY;MACtC,IAAI,CAACnD,QAAQ,CAAC;QACZ6B,aAAa,EAAE9D,KAAK;QACpB+D,cAAc,EAAEzD;MAClB,CAAC,CAAC;IACJ;EACF;EAqIA+E,mBAAmBA,CAACC,KAAK,EAAE;IACzB,oBACExI,MAAA,CAAAiB,OAAA,CAAAwH,aAAA,2BACEzI,MAAA,CAAAiB,OAAA,CAAAwH,aAAA,CAACnI,OAAA,CAAAW,OAAM;MAACuH,KAAK,EAAEA,KAAM;MAACE,OAAO,EAAE,IAAI,CAACC;IAAiB,CAAE,CAAC,eACxD3I,MAAA,CAAAiB,OAAA,CAAAwH,aAAA,CAAC/E,WAAW;MACVkF,MAAM,EAAC,SAAS;MAChBC,QAAQ,EAAE,IAAI,CAACC,iBAAkB;MACjCC,GAAG,EAAGA,GAAG,IAAK;QACZ,IAAI,CAACC,KAAK,GAAGD,GAAG;MAClB,CAAE;MACFlH,IAAI,EAAC;IAAM,CACZ,CACE,CAAC;EAEV;EAEAoH,MAAMA,CAAA,EAAG;IACP,MAAM;MAAEC,QAAQ;MAAEhD;IAAgB,CAAC,GAAG,IAAI,CAAC/B,KAAK;IAChD,MAAM;MAAEiB,cAAc;MAAEQ,WAAW;MAAEqB,cAAc;MAAED;IAAc,CAAC,GAAG,IAAI,CAACtB,KAAK;IAEjF,oBACE1F,MAAA,CAAAiB,OAAA,CAAAwH,aAAA,CAAC1G,aAAa,qBACZ/B,MAAA,CAAAiB,OAAA,CAAAwH,aAAA,CAACrG,GAAG,MAAA+G,SAAA,CAAAlI,OAAA;MACFoB,MAAM,EAAE+C;IAAe,GAClBQ,WAAW,GACZ;MACEwD,UAAU,EAAE,IAAI,CAACC,gBAAgB;MACjCC,WAAW,EAAE,IAAI,CAACD,gBAAgB;MAClCE,UAAU,EAAE,IAAI,CAACC,gBAAgB;MACjCC,MAAM,EAAE,IAAI,CAACC;IACf,CAAC,GACD,CAAC,CAAC,gBAEN1J,MAAA,CAAAiB,OAAA,CAAAwH,aAAA,CAAC9E,OAAO,QAAE,IAAI,CAAC4E,mBAAmB,CAACW,QAAQ,GAAG,eAAe,GAAG,cAAc,CAAW,CAAC,eAE1FlJ,MAAA,CAAAiB,OAAA,CAAAwH,aAAA,CAAC5F,cAAc;MACbkG,GAAG,EAAGA,GAAG,IAAK;QACZ,IAAI,CAACV,YAAY,GAAGU,GAAG;MACzB;IAAE,GAEDG,QAAQ,gBACPlJ,MAAA,CAAAiB,OAAA,CAAAwH,aAAA,CAACzF,oBAAoB,qBACnBhD,MAAA,CAAAiB,OAAA,CAAAwH,aAAA,CAAC1F,KAAK;MACJS,MAAM,EAAC,MAAM;MACbmG,MAAM,EAAE,IAAI,CAACC,iBAAkB;MAC/Bb,GAAG,EAAGA,GAAG,IAAK;QACZ,IAAI,CAAChC,KAAK,GAAGgC,GAAG;MAClB,CAAE;MACFc,GAAG,EAAEX,QAAS;MACdtB,KAAK,EAAE;QACL1E,KAAK,EAAEgD,eAAe,IAAIA,eAAe,CAAChD,KAAK,GAAGgD,eAAe,CAAChD,KAAK,GAAG4G,SAAS;QACnFC,QAAQ,EAAE/C,aAAa;QACvBgD,SAAS,EAAE/C;MACb,CAAE;MACFgD,GAAG,EAAC;IAAE,CACP,CAAC,eACFjK,MAAA,CAAAiB,OAAA,CAAAwH,aAAA,CAACtF,YAAY;MACX4F,GAAG,EAAGA,GAAG,IAAK;QACZ,IAAI,CAAC3C,MAAM,GAAG2C,GAAG;MACnB;IAAE,CACH,CACmB,CAAC,gBAEvB/I,MAAA,CAAAiB,OAAA,CAAAwH,aAAA,CAAC5F,cAAc;MAACqH,EAAE,EAAE1H;IAAY,gBAC9BxC,MAAA,CAAAiB,OAAA,CAAAwH,aAAA,gBAAO,6CAAkD,CAAC,eAC1DzI,MAAA,CAAAiB,OAAA,CAAAwH,aAAA,WAAK,CAAC,EACL,IAAI,CAACF,mBAAmB,CAAC,cAAc,CAC1B,CAEJ,CACb,CACQ,CAAC;EAEpB;AACF;AAAC4B,OAAA,CAAAnG,cAAA,GAAAA,cAAA;AAAA,IAAAI,gBAAA,CAAAnD,OAAA,EAhPY+C,cAAc,eAEN;EACjBkC,eAAe,EAAEkE,kBAAS,CAACC;AAC7B,CAAC;AAAA,IAAAjG,gBAAA,CAAAnD,OAAA,EAJU+C,cAAc,kBAMH,CAAC,CAAC;AA4O1BA,cAAc,CAACsG,SAAS,GAAG;EACzBpB,QAAQ,EAAEkB,kBAAS,CAACG,MAAM,CAACC,UAAU;EACrCnG,aAAa,EAAE+F,kBAAS,CAACK,IAAI,CAACD,UAAU;EACxCvE,sBAAsB,EAAEmE,kBAAS,CAACK,IAAI,CAACD,UAAU;EACjDlG,WAAW,EAAE8F,kBAAS,CAACK;AACzB,CAAC;AAAC,IAAAC,QAAA,GAAAP,OAAA,CAAAlJ,OAAA,GAEa+C,cAAc","ignoreList":[]}
@@ -1,214 +1,147 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports["default"] = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
- var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
23
-
7
+ exports.default = void 0;
24
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
-
26
9
  var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
27
-
28
10
  var _react = _interopRequireDefault(require("react"));
29
-
30
- var _reactDom = _interopRequireDefault(require("react-dom"));
31
-
11
+ var _client = require("react-dom/client");
32
12
  var _debug = _interopRequireDefault(require("debug"));
33
-
34
13
  var _root = _interopRequireDefault(require("./root"));
35
-
36
14
  var _defaults = _interopRequireDefault(require("./defaults"));
37
-
38
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
39
-
40
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
41
-
42
- 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); }; }
43
-
44
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
45
-
46
- var log = (0, _debug["default"])('hotspot:configure');
47
-
48
- var DrawableResponseConfigure = /*#__PURE__*/function (_HTMLElement) {
49
- (0, _inherits2["default"])(DrawableResponseConfigure, _HTMLElement);
50
-
51
- var _super = _createSuper(DrawableResponseConfigure);
52
-
53
- function DrawableResponseConfigure() {
54
- var _this$_configuration$;
55
-
56
- var _this;
57
-
58
- (0, _classCallCheck2["default"])(this, DrawableResponseConfigure);
59
- _this = _super.call(this);
60
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onModelChanged", function (m, reset) {
61
- _this._model = m;
62
-
63
- _this.dispatchModelUpdated(reset);
64
-
65
- _this._render();
15
+ const log = (0, _debug.default)('hotspot:configure');
16
+ class DrawableResponseConfigure extends HTMLElement {
17
+ constructor() {
18
+ super();
19
+ (0, _defineProperty2.default)(this, "onModelChanged", (m, reset) => {
20
+ this._model = m;
21
+ this.dispatchModelUpdated(reset);
22
+ this._render();
66
23
  });
67
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onConfigurationChanged", function (c) {
68
- _this._configuration = c;
69
-
70
- _this._render();
24
+ (0, _defineProperty2.default)(this, "onConfigurationChanged", c => {
25
+ this._configuration = c;
26
+ this._render();
71
27
  });
72
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "insertImage", function (handler) {
73
- _this.dispatchEvent(new _pieConfigureEvents.InsertImageEvent(handler));
28
+ (0, _defineProperty2.default)(this, "insertImage", handler => {
29
+ this.dispatchEvent(new _pieConfigureEvents.InsertImageEvent(handler));
74
30
  });
75
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onDeleteImage", function (src, done) {
76
- _this.dispatchEvent(new _pieConfigureEvents.DeleteImageEvent(src, done));
31
+ (0, _defineProperty2.default)(this, "onDeleteImage", (src, done) => {
32
+ this.dispatchEvent(new _pieConfigureEvents.DeleteImageEvent(src, done));
77
33
  });
78
- _this._configuration = _defaults["default"].configuration; // if configuration.withRubric.forceEnabled is true, then we
79
- // update the configuration (we do not want to display the toggle in the Settings Panel)
34
+ this._root = null;
35
+ this._configuration = _defaults.default.configuration;
80
36
 
81
- if ((_this$_configuration$ = _this._configuration.withRubric) !== null && _this$_configuration$ !== void 0 && _this$_configuration$.forceEnabled) {
82
- _this._configuration.withRubric.settings = false;
37
+ // if configuration.withRubric.forceEnabled is true, then we
38
+ // update the configuration (we do not want to display the toggle in the Settings Panel)
39
+ if (this._configuration.withRubric?.forceEnabled) {
40
+ this._configuration.withRubric.settings = false;
83
41
  }
84
-
85
- _this._model = DrawableResponseConfigure.createDefaultModel({}, _this._configuration);
86
- _this.onModelChanged = _this.onModelChanged.bind((0, _assertThisInitialized2["default"])(_this));
87
- return _this;
42
+ this._model = DrawableResponseConfigure.createDefaultModel({}, this._configuration);
43
+ this.onModelChanged = this.onModelChanged.bind(this);
88
44
  }
89
-
90
- (0, _createClass2["default"])(DrawableResponseConfigure, [{
91
- key: "model",
92
- set: function set(s) {
93
- this._model = DrawableResponseConfigure.createDefaultModel(s, this._configuration);
94
-
95
- this._render();
45
+ set model(s) {
46
+ this._model = DrawableResponseConfigure.createDefaultModel(s, this._configuration);
47
+ this._render();
48
+ }
49
+ set configuration(c) {
50
+ const newConfiguration = {
51
+ ..._defaults.default.configuration,
52
+ ...c
53
+ };
54
+ this._configuration = newConfiguration;
55
+ const {
56
+ withRubric = {}
57
+ } = c || {};
58
+
59
+ // if configuration.withRubric.forceEnabled is true, then we update the model
60
+ // without triggering the Model Updated event (for more details, check documentation)
61
+ // and also update the configuration (we do not want to display the toggle in the Settings Panel)
62
+ if (withRubric?.forceEnabled) {
63
+ this._configuration.withRubric.settings = false;
64
+ if (!this._model.rubricEnabled) {
65
+ this._model.rubricEnabled = true;
66
+ }
96
67
  }
97
- }, {
98
- key: "configuration",
99
- set: function set(c) {
100
- var _newConfiguration$lan,
101
- _this2 = this;
102
-
103
- var newConfiguration = _objectSpread(_objectSpread({}, _defaults["default"].configuration), c);
104
-
105
- this._configuration = newConfiguration;
106
-
107
- var _ref = c || {},
108
- _ref$withRubric = _ref.withRubric,
109
- withRubric = _ref$withRubric === void 0 ? {} : _ref$withRubric; // if configuration.withRubric.forceEnabled is true, then we update the model
110
- // without triggering the Model Updated event (for more details, check documentation)
111
- // and also update the configuration (we do not want to display the toggle in the Settings Panel)
112
-
113
-
114
- if (withRubric !== null && withRubric !== void 0 && withRubric.forceEnabled) {
115
- this._configuration.withRubric.settings = false;
116
-
117
- if (!this._model.rubricEnabled) {
118
- this._model.rubricEnabled = true;
119
- }
120
- } // if language:enabled is true, then the corresponding default item model should include a language value;
121
- // if it is false, then the language field should be omitted from the item model.
122
- // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,
123
- // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).
124
68
 
125
-
126
- if (newConfiguration !== null && newConfiguration !== void 0 && (_newConfiguration$lan = newConfiguration.language) !== null && _newConfiguration$lan !== void 0 && _newConfiguration$lan.enabled) {
127
- var _newConfiguration$lan2, _newConfiguration$lan3;
128
-
129
- if (newConfiguration !== null && newConfiguration !== void 0 && (_newConfiguration$lan2 = newConfiguration.languageChoices) !== null && _newConfiguration$lan2 !== void 0 && (_newConfiguration$lan3 = _newConfiguration$lan2.options) !== null && _newConfiguration$lan3 !== void 0 && _newConfiguration$lan3.length) {
130
- this._model.language = newConfiguration === null || newConfiguration === void 0 ? void 0 : newConfiguration.languageChoices.options[0].value;
131
- }
132
- } else if (newConfiguration.language.settings && this._model.language) {
133
- this._configuration.language.enabled = true;
134
-
135
- if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {
136
- this._configuration.languageChoices.options = [];
137
- } // check if the language is already included in the languageChoices.options array
138
- // and if not, then add it.
139
-
140
-
141
- if (!this._configuration.languageChoices.options.find(function (option) {
142
- return option.value === _this2._model.language;
143
- })) {
144
- this._configuration.languageChoices.options.push({
145
- value: this._model.language,
146
- label: this._model.language
147
- });
148
- }
149
- } else {
150
- delete this._model.language;
69
+ // if language:enabled is true, then the corresponding default item model should include a language value;
70
+ // if it is false, then the language field should be omitted from the item model.
71
+ // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,
72
+ // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).
73
+ if (newConfiguration?.language?.enabled) {
74
+ if (newConfiguration?.languageChoices?.options?.length) {
75
+ this._model.language = newConfiguration?.languageChoices.options[0].value;
76
+ }
77
+ } else if (newConfiguration.language.settings && this._model.language) {
78
+ this._configuration.language.enabled = true;
79
+ if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {
80
+ this._configuration.languageChoices.options = [];
151
81
  }
152
82
 
153
- this._render();
154
- }
155
- }, {
156
- key: "dispatchModelUpdated",
157
- value: function dispatchModelUpdated(reset) {
158
- var resetValue = !!reset;
159
- this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(this._model, resetValue));
160
- }
161
- }, {
162
- key: "insertSound",
163
- value: function insertSound(handler) {
164
- this.dispatchEvent(new _pieConfigureEvents.InsertSoundEvent(handler));
83
+ // check if the language is already included in the languageChoices.options array
84
+ // and if not, then add it.
85
+ if (!this._configuration.languageChoices.options.find(option => option.value === this._model.language)) {
86
+ this._configuration.languageChoices.options.push({
87
+ value: this._model.language,
88
+ label: this._model.language
89
+ });
90
+ }
91
+ } else {
92
+ delete this._model.language;
165
93
  }
166
- }, {
167
- key: "onDeleteSound",
168
- value: function onDeleteSound(src, done) {
169
- this.dispatchEvent(new _pieConfigureEvents.DeleteSoundEvent(src, done));
94
+ this._render();
95
+ }
96
+ dispatchModelUpdated(reset) {
97
+ const resetValue = !!reset;
98
+ this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(this._model, resetValue));
99
+ }
100
+ insertSound(handler) {
101
+ this.dispatchEvent(new _pieConfigureEvents.InsertSoundEvent(handler));
102
+ }
103
+ onDeleteSound(src, done) {
104
+ this.dispatchEvent(new _pieConfigureEvents.DeleteSoundEvent(src, done));
105
+ }
106
+ _render() {
107
+ log('_render');
108
+ let element = /*#__PURE__*/_react.default.createElement(_root.default, {
109
+ model: this._model,
110
+ configuration: this._configuration,
111
+ onModelChanged: this.onModelChanged,
112
+ onConfigurationChanged: this.onConfigurationChanged,
113
+ imageSupport: {
114
+ add: this.insertImage,
115
+ delete: this.onDeleteImage
116
+ },
117
+ uploadSoundSupport: {
118
+ add: this.insertSound.bind(this),
119
+ delete: this.onDeleteSound.bind(this)
120
+ }
121
+ });
122
+ if (!this._root) {
123
+ this._root = (0, _client.createRoot)(this);
170
124
  }
171
- }, {
172
- key: "_render",
173
- value: function _render() {
174
- log('_render');
175
-
176
- var element = /*#__PURE__*/_react["default"].createElement(_root["default"], {
177
- model: this._model,
178
- configuration: this._configuration,
179
- onModelChanged: this.onModelChanged,
180
- onConfigurationChanged: this.onConfigurationChanged,
181
- imageSupport: {
182
- add: this.insertImage,
183
- "delete": this.onDeleteImage
184
- },
185
- uploadSoundSupport: {
186
- add: this.insertSound.bind(this),
187
- "delete": this.onDeleteSound.bind(this)
188
- }
189
- });
190
-
191
- _reactDom["default"].render(element, this);
125
+ this._root.render(element);
126
+ }
127
+ disconnectedCallback() {
128
+ if (this._root) {
129
+ this._root.unmount();
192
130
  }
193
- }]);
194
- return DrawableResponseConfigure;
195
- }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
196
-
197
- exports["default"] = DrawableResponseConfigure;
198
- (0, _defineProperty2["default"])(DrawableResponseConfigure, "createDefaultModel", function () {
199
- var _config$withRubric;
200
-
201
- var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
202
- var config = arguments.length > 1 ? arguments[1] : undefined;
203
-
204
- var defaultModel = _objectSpread(_objectSpread({}, _defaults["default"].model), model); // if configuration.withRubric.forceEnabled is true, then we update the model
131
+ }
132
+ }
133
+ exports.default = DrawableResponseConfigure;
134
+ (0, _defineProperty2.default)(DrawableResponseConfigure, "createDefaultModel", (model = {}, config) => {
135
+ const defaultModel = {
136
+ ..._defaults.default.model,
137
+ ...model
138
+ };
139
+
140
+ // if configuration.withRubric.forceEnabled is true, then we update the model
205
141
  // without triggering the Model Updated event (for more details, check documentation)
206
-
207
-
208
- if (config !== null && config !== void 0 && (_config$withRubric = config.withRubric) !== null && _config$withRubric !== void 0 && _config$withRubric.forceEnabled && !defaultModel.rubricEnabled) {
142
+ if (config?.withRubric?.forceEnabled && !defaultModel.rubricEnabled) {
209
143
  defaultModel.rubricEnabled = true;
210
144
  }
211
-
212
145
  return defaultModel;
213
146
  });
214
147
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["log","DrawableResponseConfigure","m","reset","_model","dispatchModelUpdated","_render","c","_configuration","handler","dispatchEvent","InsertImageEvent","src","done","DeleteImageEvent","sensibleDefaults","configuration","withRubric","forceEnabled","settings","createDefaultModel","onModelChanged","bind","s","newConfiguration","rubricEnabled","language","enabled","languageChoices","options","length","value","find","option","push","label","resetValue","ModelUpdatedEvent","InsertSoundEvent","DeleteSoundEvent","element","React","createElement","Root","model","onConfigurationChanged","imageSupport","add","insertImage","onDeleteImage","uploadSoundSupport","insertSound","onDeleteSound","ReactDOM","render","HTMLElement","config","defaultModel"],"mappings":"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","sourcesContent":["import {\n DeleteImageEvent,\n DeleteSoundEvent,\n InsertImageEvent,\n InsertSoundEvent,\n ModelUpdatedEvent,\n} from '@pie-framework/pie-configure-events';\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport debug from 'debug';\n\nimport Root from './root';\nimport sensibleDefaults from './defaults';\n\nconst log = debug('hotspot:configure');\n\nexport default class DrawableResponseConfigure extends HTMLElement {\n static createDefaultModel = (model = {}, config) => {\n const defaultModel = {\n ...sensibleDefaults.model,\n ...model,\n };\n\n // if configuration.withRubric.forceEnabled is true, then we update the model\n // without triggering the Model Updated event (for more details, check documentation)\n if (config?.withRubric?.forceEnabled && !defaultModel.rubricEnabled) {\n defaultModel.rubricEnabled = true;\n }\n\n return defaultModel;\n };\n\n constructor() {\n super();\n this._configuration = sensibleDefaults.configuration;\n\n // if configuration.withRubric.forceEnabled is true, then we\n // update the configuration (we do not want to display the toggle in the Settings Panel)\n if (this._configuration.withRubric?.forceEnabled) {\n this._configuration.withRubric.settings = false;\n }\n\n this._model = DrawableResponseConfigure.createDefaultModel({}, this._configuration);\n this.onModelChanged = this.onModelChanged.bind(this);\n }\n\n set model(s) {\n this._model = DrawableResponseConfigure.createDefaultModel(s, this._configuration);\n this._render();\n }\n\n set configuration(c) {\n const newConfiguration = {\n ...sensibleDefaults.configuration,\n ...c,\n };\n\n this._configuration = newConfiguration;\n\n const { withRubric = {} } = c || {};\n\n // if configuration.withRubric.forceEnabled is true, then we update the model\n // without triggering the Model Updated event (for more details, check documentation)\n // and also update the configuration (we do not want to display the toggle in the Settings Panel)\n if (withRubric?.forceEnabled) {\n this._configuration.withRubric.settings = false;\n\n if (!this._model.rubricEnabled) {\n this._model.rubricEnabled = true;\n }\n }\n\n // if language:enabled is true, then the corresponding default item model should include a language value;\n // if it is false, then the language field should be omitted from the item model.\n // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,\n // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).\n if (newConfiguration?.language?.enabled) {\n if (newConfiguration?.languageChoices?.options?.length) {\n this._model.language = newConfiguration?.languageChoices.options[0].value;\n }\n } else if (newConfiguration.language.settings && this._model.language) {\n this._configuration.language.enabled = true;\n\n if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {\n this._configuration.languageChoices.options = [];\n }\n\n // check if the language is already included in the languageChoices.options array\n // and if not, then add it.\n if (!this._configuration.languageChoices.options.find(option => option.value === this._model.language)) {\n this._configuration.languageChoices.options.push({\n value: this._model.language,\n label: this._model.language,\n });\n }\n } else {\n delete this._model.language;\n }\n\n this._render();\n }\n\n dispatchModelUpdated(reset) {\n const resetValue = !!reset;\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model, resetValue));\n }\n\n onModelChanged = (m, reset) => {\n this._model = m;\n this.dispatchModelUpdated(reset);\n this._render();\n };\n\n onConfigurationChanged = (c) => {\n this._configuration = c;\n\n this._render();\n };\n\n insertImage = (handler) => {\n this.dispatchEvent(new InsertImageEvent(handler));\n };\n\n onDeleteImage = (src, done) => {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n };\n\n insertSound(handler) {\n this.dispatchEvent(new InsertSoundEvent(handler));\n }\n\n onDeleteSound(src, done) {\n this.dispatchEvent(new DeleteSoundEvent(src, done));\n }\n\n _render() {\n log('_render');\n\n let element = React.createElement(Root, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n imageSupport: {\n add: this.insertImage,\n delete: this.onDeleteImage,\n },\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n });\n ReactDOM.render(element, this);\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["_pieConfigureEvents","require","_react","_interopRequireDefault","_client","_debug","_root","_defaults","log","debug","DrawableResponseConfigure","HTMLElement","constructor","_defineProperty2","default","m","reset","_model","dispatchModelUpdated","_render","c","_configuration","handler","dispatchEvent","InsertImageEvent","src","done","DeleteImageEvent","sensibleDefaults","configuration","withRubric","forceEnabled","settings","createDefaultModel","onModelChanged","bind","model","s","newConfiguration","rubricEnabled","language","enabled","languageChoices","options","length","value","find","option","push","label","resetValue","ModelUpdatedEvent","insertSound","InsertSoundEvent","onDeleteSound","DeleteSoundEvent","element","React","createElement","Root","onConfigurationChanged","imageSupport","add","insertImage","delete","onDeleteImage","uploadSoundSupport","createRoot","render","disconnectedCallback","unmount","exports","config","defaultModel"],"sources":["../src/index.js"],"sourcesContent":["import {\n DeleteImageEvent,\n DeleteSoundEvent,\n InsertImageEvent,\n InsertSoundEvent,\n ModelUpdatedEvent,\n} from '@pie-framework/pie-configure-events';\n\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport debug from 'debug';\n\nimport Root from './root';\nimport sensibleDefaults from './defaults';\n\nconst log = debug('hotspot:configure');\n\nexport default class DrawableResponseConfigure extends HTMLElement {\n static createDefaultModel = (model = {}, config) => {\n const defaultModel = {\n ...sensibleDefaults.model,\n ...model,\n };\n\n // if configuration.withRubric.forceEnabled is true, then we update the model\n // without triggering the Model Updated event (for more details, check documentation)\n if (config?.withRubric?.forceEnabled && !defaultModel.rubricEnabled) {\n defaultModel.rubricEnabled = true;\n }\n\n return defaultModel;\n };\n\n constructor() {\n super();\n this._root = null;\n this._configuration = sensibleDefaults.configuration;\n\n // if configuration.withRubric.forceEnabled is true, then we\n // update the configuration (we do not want to display the toggle in the Settings Panel)\n if (this._configuration.withRubric?.forceEnabled) {\n this._configuration.withRubric.settings = false;\n }\n\n this._model = DrawableResponseConfigure.createDefaultModel({}, this._configuration);\n this.onModelChanged = this.onModelChanged.bind(this);\n }\n\n set model(s) {\n this._model = DrawableResponseConfigure.createDefaultModel(s, this._configuration);\n this._render();\n }\n\n set configuration(c) {\n const newConfiguration = {\n ...sensibleDefaults.configuration,\n ...c,\n };\n\n this._configuration = newConfiguration;\n\n const { withRubric = {} } = c || {};\n\n // if configuration.withRubric.forceEnabled is true, then we update the model\n // without triggering the Model Updated event (for more details, check documentation)\n // and also update the configuration (we do not want to display the toggle in the Settings Panel)\n if (withRubric?.forceEnabled) {\n this._configuration.withRubric.settings = false;\n\n if (!this._model.rubricEnabled) {\n this._model.rubricEnabled = true;\n }\n }\n\n // if language:enabled is true, then the corresponding default item model should include a language value;\n // if it is false, then the language field should be omitted from the item model.\n // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,\n // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).\n if (newConfiguration?.language?.enabled) {\n if (newConfiguration?.languageChoices?.options?.length) {\n this._model.language = newConfiguration?.languageChoices.options[0].value;\n }\n } else if (newConfiguration.language.settings && this._model.language) {\n this._configuration.language.enabled = true;\n\n if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {\n this._configuration.languageChoices.options = [];\n }\n\n // check if the language is already included in the languageChoices.options array\n // and if not, then add it.\n if (!this._configuration.languageChoices.options.find(option => option.value === this._model.language)) {\n this._configuration.languageChoices.options.push({\n value: this._model.language,\n label: this._model.language,\n });\n }\n } else {\n delete this._model.language;\n }\n\n this._render();\n }\n\n dispatchModelUpdated(reset) {\n const resetValue = !!reset;\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model, resetValue));\n }\n\n onModelChanged = (m, reset) => {\n this._model = m;\n this.dispatchModelUpdated(reset);\n this._render();\n };\n\n onConfigurationChanged = (c) => {\n this._configuration = c;\n\n this._render();\n };\n\n insertImage = (handler) => {\n this.dispatchEvent(new InsertImageEvent(handler));\n };\n\n onDeleteImage = (src, done) => {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n };\n\n insertSound(handler) {\n this.dispatchEvent(new InsertSoundEvent(handler));\n }\n\n onDeleteSound(src, done) {\n this.dispatchEvent(new DeleteSoundEvent(src, done));\n }\n\n _render() {\n log('_render');\n\n let element = React.createElement(Root, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n imageSupport: {\n add: this.insertImage,\n delete: this.onDeleteImage,\n },\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n });\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(element);\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}