@pie-lib/editable-html 9.2.6-next.2 → 9.2.7

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 (90) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/lib/editor.js.map +1 -1
  3. package/lib/index.js.map +1 -1
  4. package/lib/parse-html.js.map +1 -1
  5. package/lib/plugins/characters/custom-popper.js.map +1 -1
  6. package/lib/plugins/characters/index.js.map +1 -1
  7. package/lib/plugins/characters/utils.js.map +1 -1
  8. package/lib/plugins/image/alt-dialog.js.map +1 -1
  9. package/lib/plugins/image/component.js.map +1 -1
  10. package/lib/plugins/image/image-toolbar.js.map +1 -1
  11. package/lib/plugins/image/index.js.map +1 -1
  12. package/lib/plugins/index.js.map +1 -1
  13. package/lib/plugins/list/index.js.map +1 -1
  14. package/lib/plugins/math/index.js +1 -1
  15. package/lib/plugins/math/index.js.map +1 -1
  16. package/lib/plugins/media/index.js.map +1 -1
  17. package/lib/plugins/media/media-dialog.js.map +1 -1
  18. package/lib/plugins/media/media-toolbar.js.map +1 -1
  19. package/lib/plugins/media/media-wrapper.js.map +1 -1
  20. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
  21. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
  22. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
  23. package/lib/plugins/respArea/icons/index.js.map +1 -1
  24. package/lib/plugins/respArea/index.js.map +1 -1
  25. package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
  26. package/lib/plugins/respArea/utils.js.map +1 -1
  27. package/lib/plugins/table/icons/index.js.map +1 -1
  28. package/lib/plugins/table/index.js.map +1 -1
  29. package/lib/plugins/table/table-toolbar.js.map +1 -1
  30. package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
  31. package/lib/plugins/toolbar/done-button.js.map +1 -1
  32. package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
  33. package/lib/plugins/toolbar/index.js.map +1 -1
  34. package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
  35. package/lib/plugins/toolbar/toolbar.js.map +1 -1
  36. package/lib/plugins/utils.js.map +1 -1
  37. package/lib/serialization.js.map +1 -1
  38. package/package.json +6 -6
  39. package/playground/image/data.js +20 -20
  40. package/playground/image/index.html +20 -22
  41. package/playground/image/index.jsx +7 -12
  42. package/playground/index.html +23 -25
  43. package/playground/mathquill/index.html +20 -23
  44. package/playground/mathquill/index.jsx +7 -18
  45. package/playground/prod-test/index.html +20 -24
  46. package/playground/prod-test/index.jsx +2 -5
  47. package/playground/schema-override/data.js +10 -10
  48. package/playground/schema-override/image-plugin.jsx +3 -3
  49. package/playground/schema-override/index.html +19 -21
  50. package/playground/schema-override/index.jsx +12 -12
  51. package/playground/serialization/data.js +10 -10
  52. package/playground/serialization/image-plugin.jsx +3 -3
  53. package/playground/serialization/index.html +20 -22
  54. package/playground/table-examples.html +8 -5
  55. package/playground/webpack.config.js +10 -10
  56. package/src/editor.jsx +77 -101
  57. package/src/index.jsx +11 -18
  58. package/src/parse-html.js +1 -1
  59. package/src/plugins/characters/custom-popper.js +7 -7
  60. package/src/plugins/characters/index.jsx +19 -25
  61. package/src/plugins/characters/utils.js +81 -81
  62. package/src/plugins/image/alt-dialog.jsx +3 -3
  63. package/src/plugins/image/component.jsx +42 -46
  64. package/src/plugins/image/image-toolbar.jsx +14 -26
  65. package/src/plugins/image/index.jsx +21 -23
  66. package/src/plugins/index.jsx +10 -12
  67. package/src/plugins/list/index.jsx +10 -10
  68. package/src/plugins/math/index.jsx +28 -31
  69. package/src/plugins/media/index.jsx +21 -21
  70. package/src/plugins/media/media-dialog.js +60 -86
  71. package/src/plugins/media/media-toolbar.jsx +6 -6
  72. package/src/plugins/media/media-wrapper.jsx +6 -6
  73. package/src/plugins/respArea/drag-in-the-blank/choice.jsx +19 -21
  74. package/src/plugins/respArea/drag-in-the-blank/index.jsx +10 -12
  75. package/src/plugins/respArea/explicit-constructed-response/index.jsx +5 -5
  76. package/src/plugins/respArea/icons/index.jsx +8 -8
  77. package/src/plugins/respArea/index.jsx +21 -31
  78. package/src/plugins/respArea/inline-dropdown/index.jsx +6 -6
  79. package/src/plugins/respArea/utils.jsx +12 -12
  80. package/src/plugins/table/icons/index.jsx +11 -17
  81. package/src/plugins/table/index.jsx +43 -49
  82. package/src/plugins/table/table-toolbar.jsx +8 -13
  83. package/src/plugins/toolbar/default-toolbar.jsx +11 -19
  84. package/src/plugins/toolbar/done-button.jsx +4 -4
  85. package/src/plugins/toolbar/editor-and-toolbar.jsx +39 -47
  86. package/src/plugins/toolbar/index.jsx +2 -2
  87. package/src/plugins/toolbar/toolbar-buttons.jsx +11 -11
  88. package/src/plugins/toolbar/toolbar.jsx +34 -47
  89. package/src/plugins/utils.js +4 -5
  90. package/src/serialization.jsx +32 -32
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/media/media-dialog.js"],"names":["log","matchYoutubeUrl","url","p","match","matchVimeoUrl","test","matchSoundCloudUrl","regexp","makeApiRequest","Promise","resolve","fetch","then","response","json","d","document","createElement","innerHTML","html","iframe","querySelector","src","err","typeMap","video","audio","MediaDialog","props","state","urlToUse","starts","ends","isYoutube","isVimeo","formattedUrl","params","paramName","paramStart","push","length","join","callback","setState","updating","newState","formatUrl","e","target","value","type","handleStateChange","invalid","regExp","id","replace","val","handleClose","tabValue","fileUpload","isInsertURL","handleRemoveFile","height","width","tag","preventDefault","error","loading","fileChosen","files","reader","FileReader","onload","dataURL","result","readAsDataURL","uploadSoundSupport","add","done","console","urlChange","classes","open","disablePortal","edit","isUploadMedia","submitIsDisabled","undefined","paper","handleDone","row","event","root","properties","changeHandler","uploadInput","deleteIcon","input","handleUploadFile","React","Component","PropTypes","object","isRequired","bool","func","shape","string","number","styles","minWidth","padding","display","flexDirection","rowItem","marginRight","cursor","active","color","primary","borderBottom","marginTop","marginLeft"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport { color } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport MuiTabs from '@material-ui/core/Tabs';\nimport MuiTab from '@material-ui/core/Tab';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport TextField from '@material-ui/core/TextField';\nimport Typography from '@material-ui/core/Typography';\nimport IconButton from '@material-ui/core/IconButton';\nimport ActionDelete from '@material-ui/icons/Delete';\n\nconst log = debug('@pie-lib:editable-html:plugins:media:dialog');\n\nconst matchYoutubeUrl = url => {\n if (!url) {\n return false;\n }\n\n const p = /^(?:https?:\\/\\/)?(?:m\\.|www\\.)?(?:youtu\\.be\\/|youtube\\.com\\/(?:embed\\/|v\\/|watch\\?v=|watch\\?.+&v=))((\\w|-){11})(?:\\S+)?$/;\n if (url.match(p)) {\n return url.match(p)[1];\n }\n return false;\n};\n\nconst matchVimeoUrl = url =>\n url &&\n /(http|https)?:\\/\\/(www\\.)?(player\\.)?vimeo.com\\/(?:channels\\/(?:\\w+\\/)?|groups\\/([^/]*)\\/videos\\/|)(video\\/)?(\\d+)(?:|\\/\\?)/.test(\n url\n );\n\nconst matchSoundCloudUrl = url => {\n if (!url) {\n return false;\n }\n\n const regexp = /^https?:\\/\\/(soundcloud\\.com|snd\\.sc)\\/(.*)$/;\n return url.match(regexp) && url.match(regexp)[2];\n};\n\nconst makeApiRequest = url => {\n return new Promise(resolve => {\n try {\n fetch(`https://soundcloud.com/oembed?format=json&url=${url}`)\n .then(response => response.json())\n .then(json => {\n const d = document.createElement('div');\n\n d.innerHTML = json.html;\n\n const iframe = d.querySelector('iframe');\n\n resolve(iframe.src);\n })\n .catch(err => {\n resolve('');\n log(err);\n });\n } catch (err) {\n resolve('');\n }\n });\n};\n\nconst typeMap = {\n video: 'Video',\n audio: 'Audio'\n};\n\nexport class MediaDialog extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n open: PropTypes.bool,\n edit: PropTypes.bool,\n disablePortal: PropTypes.bool,\n handleClose: PropTypes.func,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func,\n delete: PropTypes.func\n }),\n type: PropTypes.string,\n src: PropTypes.string,\n url: PropTypes.string,\n urlToUse: PropTypes.string,\n starts: PropTypes.number,\n ends: PropTypes.number,\n height: PropTypes.number,\n width: PropTypes.number\n };\n\n constructor(props) {\n super(props);\n\n const { src, starts, ends, height, url, urlToUse, width } = props;\n\n this.state = {\n ends: ends || 0,\n url: url,\n urlToUse: urlToUse,\n formattedUrl: src,\n height: height || 315,\n invalid: false,\n starts: starts || 0,\n width: width || 560,\n tabValue: 0,\n fileUpload: {\n loading: false,\n url: '',\n error: null\n }\n };\n }\n\n componentDidMount() {\n if (this.props.url) {\n this.urlChange({\n target: {\n value: this.props.url\n }\n });\n }\n }\n\n formatUrl = () => {\n const { url, urlToUse, starts, ends } = this.state;\n const isYoutube = matchYoutubeUrl(url);\n const isVimeo = matchVimeoUrl(url);\n let formattedUrl = urlToUse;\n\n if ((isYoutube || isVimeo) && urlToUse) {\n const params = [];\n\n let paramName;\n let paramStart;\n\n switch (true) {\n case isVimeo:\n paramName = 't';\n paramStart = '#';\n break;\n case isYoutube:\n paramName = 'start';\n paramStart = '?';\n break;\n default:\n paramName = 'start';\n paramStart = '?';\n }\n\n if (starts) {\n params.push(`${paramName}=${starts}`);\n }\n\n if (ends) {\n params.push(`end=${ends}`);\n }\n\n formattedUrl = `${urlToUse}${params.length ? paramStart : ''}${params.join('&')}`;\n }\n\n const callback = () => this.setState({ formattedUrl, updating: false });\n\n this.setState({ formattedUrl: null, updating: true }, callback);\n };\n\n handleStateChange = newState => this.setState(newState, this.formatUrl);\n\n urlChange = e => {\n const { value } = e.target || {};\n const { type } = this.props;\n\n if (type && type === 'audio') {\n if (matchSoundCloudUrl(value)) {\n makeApiRequest(value)\n .then(urlToUse => {\n this.handleStateChange({\n urlToUse,\n invalid: !urlToUse,\n url: value\n });\n })\n .catch(log);\n\n return;\n }\n } else if (type && type === 'video') {\n if (matchYoutubeUrl(value)) {\n const regExp = /^.*(youtu\\.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|&v=)([^#&?]*).*/;\n const match = value.match(regExp);\n const id = match[2];\n const urlToUse = `https://youtube.com/embed/${id}`;\n\n log('is youtube');\n\n this.handleStateChange({\n urlToUse,\n url: value,\n invalid: false\n });\n\n return;\n }\n\n if (matchVimeoUrl(value)) {\n const id = value.replace(/.*vimeo.com\\/(.*)/g, '$1');\n const urlToUse = `https://player.vimeo.com/video/${id}`;\n\n log('is vimeo');\n\n this.handleStateChange({\n urlToUse,\n url: value,\n ends: null,\n invalid: false\n });\n\n return;\n }\n }\n\n this.handleStateChange({\n urlToUse: null,\n url: null,\n invalid: true\n });\n };\n\n changeHandler = type => e => this.handleStateChange({ [type]: e.target.value });\n\n handleDone = val => {\n const { handleClose } = this.props;\n const { tabValue, fileUpload } = this.state;\n const isInsertURL = tabValue === 0;\n\n if (!val) {\n if (fileUpload.url) {\n this.handleRemoveFile();\n }\n\n handleClose(val);\n } else if (isInsertURL) {\n const { ends, height, url, urlToUse, formattedUrl, starts, width } = this.state;\n\n handleClose(val, {\n tag: 'iframe',\n ends,\n height,\n starts,\n width,\n url,\n urlToUse,\n src: formattedUrl\n });\n } else {\n handleClose(val, {\n tag: 'audio',\n src: fileUpload.url\n });\n }\n };\n\n handleUploadFile = async e => {\n e.preventDefault();\n\n this.setState({\n fileUpload: {\n ...this.state.fileUpload,\n error: null,\n loading: true\n }\n });\n\n const fileChosen = e.target.files[0];\n\n const reader = new FileReader();\n\n reader.onload = () => {\n const dataURL = reader.result;\n\n this.setState({\n fileUpload: {\n ...this.state.fileUpload,\n url: dataURL\n }\n });\n };\n reader.readAsDataURL(fileChosen);\n\n this.props.uploadSoundSupport.add({\n fileChosen,\n done: (err, src) => {\n log('done: err:', err);\n if (err) {\n //eslint-disable-next-line\n console.log(err);\n this.setState({\n fileUpload: {\n ...this.state.fileUpload,\n loading: false,\n error: err\n }\n });\n } else {\n this.setState({\n fileUpload: {\n ...this.state.fileUpload,\n loading: false,\n url: src\n }\n });\n }\n }\n });\n };\n\n handleRemoveFile = async () => {\n this.props.uploadSoundSupport.delete(this.state.fileUpload.url, err => {\n if (err) {\n //eslint-disable-next-line\n console.log(err);\n this.setState({\n fileUpload: {\n ...this.state.fileUpload,\n error: err\n }\n });\n }\n });\n\n // we should put it inside uploadSoundSupport.delete but we can leave it here for testing purposes\n this.setState({\n fileUpload: {\n ...this.state.fileUpload,\n loading: false,\n url: ''\n }\n });\n };\n\n render() {\n const { classes, open, disablePortal, type, edit, uploadSoundSupport } = this.props;\n const {\n ends,\n height,\n invalid,\n starts,\n width,\n url,\n formattedUrl,\n updating,\n tabValue,\n fileUpload\n } = this.state;\n const isYoutube = matchYoutubeUrl(url);\n const isInsertURL = tabValue === 0;\n const isUploadMedia = tabValue === 1;\n const submitIsDisabled = isInsertURL\n ? invalid || url === null || url === undefined\n : !fileUpload.url;\n\n return (\n <Dialog\n classes={{\n paper: classes.paper\n }}\n disablePortal={disablePortal}\n open={open}\n onClose={() => this.handleDone(false)}\n aria-labelledby=\"form-dialog-title\"\n >\n <DialogTitle id=\"form-dialog-title\">Insert {typeMap[type]}</DialogTitle>\n <DialogContent>\n <div>\n <div className={classes.row}>\n <MuiTabs\n indicatorColor=\"primary\"\n value={tabValue}\n onChange={(event, value) => {\n this.setState({ tabValue: value });\n }}\n >\n <MuiTab\n label={type === 'video' ? 'Insert YouTube or Vimeo URL' : 'Insert SoundCloud URL'}\n />\n {uploadSoundSupport?.add && uploadSoundSupport?.delete && type !== 'video' ? (\n <MuiTab label=\"Upload file\" />\n ) : null}\n </MuiTabs>\n </div>\n {isInsertURL && (\n <div>\n <TextField\n autoFocus\n error={invalid}\n helperText={invalid ? 'Invalid URL' : ''}\n margin=\"dense\"\n id=\"name\"\n label=\"URL\"\n placeholder={`Paste URL of ${type}...`}\n type=\"text\"\n onChange={this.urlChange}\n value={url}\n fullWidth\n />\n {type === 'video' && (\n <DialogContent\n classes={{\n root: classes.properties\n }}\n >\n <DialogContentText>Video Properties</DialogContentText>\n <TextField\n autoFocus\n margin=\"dense\"\n id=\"width\"\n label=\"Width\"\n type=\"number\"\n placeholder=\"Width\"\n value={width}\n onChange={this.changeHandler('width')}\n />\n <TextField\n autoFocus\n margin=\"dense\"\n id=\"height\"\n label=\"Height\"\n type=\"number\"\n placeholder=\"Height\"\n value={height}\n onChange={this.changeHandler('height')}\n />\n </DialogContent>\n )}\n {formattedUrl && (\n <iframe\n width={width}\n height={height}\n src={formattedUrl}\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n />\n )}\n {type === 'video' && (formattedUrl || updating) && !invalid && (\n <React.Fragment>\n <DialogContent\n classes={{\n root: classes.properties\n }}\n >\n <TextField\n autoFocus\n margin=\"dense\"\n id=\"starts\"\n label=\"Starts\"\n type=\"number\"\n placeholder=\"Starts\"\n value={starts}\n onChange={this.changeHandler('starts')}\n />\n {isYoutube && (\n <TextField\n autoFocus\n margin=\"dense\"\n id=\"ends\"\n label=\"Ends\"\n type=\"number\"\n placeholder=\"Ends\"\n value={ends}\n onChange={this.changeHandler('ends')}\n />\n )}\n </DialogContent>\n </React.Fragment>\n )}\n </div>\n )}\n {isUploadMedia && (\n <div className={classes.uploadInput}>\n <div>\n {fileUpload.url ? (\n <>\n <div className={classes.row}>\n <audio controls=\"controls\">\n <source type=\"audio/mp3\" src={fileUpload.url} />\n </audio>\n <IconButton\n aria-label=\"delete\"\n className={classes.deleteIcon}\n onClick={this.handleRemoveFile}\n >\n <ActionDelete />\n </IconButton>\n </div>\n {fileUpload.loading ? (\n <Typography variant=\"subheading\">Loading...</Typography>\n ) : null}\n </>\n ) : !fileUpload.loading ? (\n <input\n accept=\"audio/*\"\n className={classes.input}\n onChange={this.handleUploadFile}\n type=\"file\"\n />\n ) : null}\n {!!fileUpload.error && (\n <Typography className={classes.error} variant=\"caption\">\n {fileUpload.error}\n </Typography>\n )}\n </div>\n </div>\n )}\n </div>\n </DialogContent>\n <DialogActions>\n <Button onClick={() => this.handleDone(false)} color=\"primary\">\n Cancel\n </Button>\n <Button disabled={submitIsDisabled} onClick={() => this.handleDone(true)} color=\"primary\">\n {edit ? 'Update' : 'Insert'}\n </Button>\n </DialogActions>\n </Dialog>\n );\n }\n}\n\nconst styles = () => ({\n paper: {\n minWidth: '500px'\n },\n properties: {\n padding: 0\n },\n row: {\n display: 'flex',\n flexDirection: 'space-between'\n },\n rowItem: {\n marginRight: '12px',\n cursor: 'pointer'\n },\n active: {\n color: color.primary(),\n borderBottom: `2px solid ${color.primary()}`\n },\n uploadInput: {\n marginTop: '12px'\n },\n error: {\n marginTop: '12px',\n color: 'red'\n },\n deleteIcon: {\n marginLeft: '12px'\n }\n});\n\nexport default withStyles(styles)(MediaDialog);\n"],"file":"media-dialog.js"}
1
+ {"version":3,"sources":["../../../src/plugins/media/media-dialog.js"],"names":["log","matchYoutubeUrl","url","p","match","matchVimeoUrl","test","matchSoundCloudUrl","regexp","makeApiRequest","Promise","resolve","fetch","then","response","json","d","document","createElement","innerHTML","html","iframe","querySelector","src","err","typeMap","video","audio","MediaDialog","props","state","urlToUse","starts","ends","isYoutube","isVimeo","formattedUrl","params","paramName","paramStart","push","length","join","callback","setState","updating","newState","formatUrl","e","target","value","type","handleStateChange","invalid","regExp","id","replace","val","handleClose","tabValue","fileUpload","isInsertURL","handleRemoveFile","height","width","tag","preventDefault","error","loading","fileChosen","files","reader","FileReader","onload","dataURL","result","readAsDataURL","uploadSoundSupport","add","done","console","urlChange","classes","open","disablePortal","edit","isUploadMedia","submitIsDisabled","undefined","paper","handleDone","row","event","root","properties","changeHandler","uploadInput","deleteIcon","input","handleUploadFile","React","Component","PropTypes","object","isRequired","bool","func","shape","string","number","styles","minWidth","padding","display","flexDirection","rowItem","marginRight","cursor","active","color","primary","borderBottom","marginTop","marginLeft"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport { color } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport MuiTabs from '@material-ui/core/Tabs';\nimport MuiTab from '@material-ui/core/Tab';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport TextField from '@material-ui/core/TextField';\nimport Typography from '@material-ui/core/Typography';\nimport IconButton from '@material-ui/core/IconButton';\nimport ActionDelete from '@material-ui/icons/Delete';\n\nconst log = debug('@pie-lib:editable-html:plugins:media:dialog');\n\nconst matchYoutubeUrl = (url) => {\n if (!url) {\n return false;\n }\n\n const p = /^(?:https?:\\/\\/)?(?:m\\.|www\\.)?(?:youtu\\.be\\/|youtube\\.com\\/(?:embed\\/|v\\/|watch\\?v=|watch\\?.+&v=))((\\w|-){11})(?:\\S+)?$/;\n if (url.match(p)) {\n return url.match(p)[1];\n }\n return false;\n};\n\nconst matchVimeoUrl = (url) =>\n url &&\n /(http|https)?:\\/\\/(www\\.)?(player\\.)?vimeo.com\\/(?:channels\\/(?:\\w+\\/)?|groups\\/([^/]*)\\/videos\\/|)(video\\/)?(\\d+)(?:|\\/\\?)/.test(\n url,\n );\n\nconst matchSoundCloudUrl = (url) => {\n if (!url) {\n return false;\n }\n\n const regexp = /^https?:\\/\\/(soundcloud\\.com|snd\\.sc)\\/(.*)$/;\n return url.match(regexp) && url.match(regexp)[2];\n};\n\nconst makeApiRequest = (url) => {\n return new Promise((resolve) => {\n try {\n fetch(`https://soundcloud.com/oembed?format=json&url=${url}`)\n .then((response) => response.json())\n .then((json) => {\n const d = document.createElement('div');\n\n d.innerHTML = json.html;\n\n const iframe = d.querySelector('iframe');\n\n resolve(iframe.src);\n })\n .catch((err) => {\n resolve('');\n log(err);\n });\n } catch (err) {\n resolve('');\n }\n });\n};\n\nconst typeMap = {\n video: 'Video',\n audio: 'Audio',\n};\n\nexport class MediaDialog extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n open: PropTypes.bool,\n edit: PropTypes.bool,\n disablePortal: PropTypes.bool,\n handleClose: PropTypes.func,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func,\n delete: PropTypes.func,\n }),\n type: PropTypes.string,\n src: PropTypes.string,\n url: PropTypes.string,\n urlToUse: PropTypes.string,\n starts: PropTypes.number,\n ends: PropTypes.number,\n height: PropTypes.number,\n width: PropTypes.number,\n };\n\n constructor(props) {\n super(props);\n\n const { src, starts, ends, height, url, urlToUse, width } = props;\n\n this.state = {\n ends: ends || 0,\n url: url,\n urlToUse: urlToUse,\n formattedUrl: src,\n height: height || 315,\n invalid: false,\n starts: starts || 0,\n width: width || 560,\n tabValue: 0,\n fileUpload: {\n loading: false,\n url: '',\n error: null,\n },\n };\n }\n\n componentDidMount() {\n if (this.props.url) {\n this.urlChange({\n target: {\n value: this.props.url,\n },\n });\n }\n }\n\n formatUrl = () => {\n const { url, urlToUse, starts, ends } = this.state;\n const isYoutube = matchYoutubeUrl(url);\n const isVimeo = matchVimeoUrl(url);\n let formattedUrl = urlToUse;\n\n if ((isYoutube || isVimeo) && urlToUse) {\n const params = [];\n\n let paramName;\n let paramStart;\n\n switch (true) {\n case isVimeo:\n paramName = 't';\n paramStart = '#';\n break;\n case isYoutube:\n paramName = 'start';\n paramStart = '?';\n break;\n default:\n paramName = 'start';\n paramStart = '?';\n }\n\n if (starts) {\n params.push(`${paramName}=${starts}`);\n }\n\n if (ends) {\n params.push(`end=${ends}`);\n }\n\n formattedUrl = `${urlToUse}${params.length ? paramStart : ''}${params.join('&')}`;\n }\n\n const callback = () => this.setState({ formattedUrl, updating: false });\n\n this.setState({ formattedUrl: null, updating: true }, callback);\n };\n\n handleStateChange = (newState) => this.setState(newState, this.formatUrl);\n\n urlChange = (e) => {\n const { value } = e.target || {};\n const { type } = this.props;\n\n if (type && type === 'audio') {\n if (matchSoundCloudUrl(value)) {\n makeApiRequest(value)\n .then((urlToUse) => {\n this.handleStateChange({\n urlToUse,\n invalid: !urlToUse,\n url: value,\n });\n })\n .catch(log);\n\n return;\n }\n } else if (type && type === 'video') {\n if (matchYoutubeUrl(value)) {\n const regExp = /^.*(youtu\\.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|&v=)([^#&?]*).*/;\n const match = value.match(regExp);\n const id = match[2];\n const urlToUse = `https://youtube.com/embed/${id}`;\n\n log('is youtube');\n\n this.handleStateChange({\n urlToUse,\n url: value,\n invalid: false,\n });\n\n return;\n }\n\n if (matchVimeoUrl(value)) {\n const id = value.replace(/.*vimeo.com\\/(.*)/g, '$1');\n const urlToUse = `https://player.vimeo.com/video/${id}`;\n\n log('is vimeo');\n\n this.handleStateChange({\n urlToUse,\n url: value,\n ends: null,\n invalid: false,\n });\n\n return;\n }\n }\n\n this.handleStateChange({\n urlToUse: null,\n url: null,\n invalid: true,\n });\n };\n\n changeHandler = (type) => (e) => this.handleStateChange({ [type]: e.target.value });\n\n handleDone = (val) => {\n const { handleClose } = this.props;\n const { tabValue, fileUpload } = this.state;\n const isInsertURL = tabValue === 0;\n\n if (!val) {\n if (fileUpload.url) {\n this.handleRemoveFile();\n }\n\n handleClose(val);\n } else if (isInsertURL) {\n const { ends, height, url, urlToUse, formattedUrl, starts, width } = this.state;\n\n handleClose(val, {\n tag: 'iframe',\n ends,\n height,\n starts,\n width,\n url,\n urlToUse,\n src: formattedUrl,\n });\n } else {\n handleClose(val, {\n tag: 'audio',\n src: fileUpload.url,\n });\n }\n };\n\n handleUploadFile = async (e) => {\n e.preventDefault();\n\n this.setState({\n fileUpload: {\n ...this.state.fileUpload,\n error: null,\n loading: true,\n },\n });\n\n const fileChosen = e.target.files[0];\n\n const reader = new FileReader();\n\n reader.onload = () => {\n const dataURL = reader.result;\n\n this.setState({\n fileUpload: {\n ...this.state.fileUpload,\n url: dataURL,\n },\n });\n };\n reader.readAsDataURL(fileChosen);\n\n this.props.uploadSoundSupport.add({\n fileChosen,\n done: (err, src) => {\n log('done: err:', err);\n if (err) {\n //eslint-disable-next-line\n console.log(err);\n this.setState({\n fileUpload: {\n ...this.state.fileUpload,\n loading: false,\n error: err,\n },\n });\n } else {\n this.setState({\n fileUpload: {\n ...this.state.fileUpload,\n loading: false,\n url: src,\n },\n });\n }\n },\n });\n };\n\n handleRemoveFile = async () => {\n this.props.uploadSoundSupport.delete(this.state.fileUpload.url, (err) => {\n if (err) {\n //eslint-disable-next-line\n console.log(err);\n this.setState({\n fileUpload: {\n ...this.state.fileUpload,\n error: err,\n },\n });\n }\n });\n\n // we should put it inside uploadSoundSupport.delete but we can leave it here for testing purposes\n this.setState({\n fileUpload: {\n ...this.state.fileUpload,\n loading: false,\n url: '',\n },\n });\n };\n\n render() {\n const { classes, open, disablePortal, type, edit, uploadSoundSupport } = this.props;\n const { ends, height, invalid, starts, width, url, formattedUrl, updating, tabValue, fileUpload } = this.state;\n const isYoutube = matchYoutubeUrl(url);\n const isInsertURL = tabValue === 0;\n const isUploadMedia = tabValue === 1;\n const submitIsDisabled = isInsertURL ? invalid || url === null || url === undefined : !fileUpload.url;\n\n return (\n <Dialog\n classes={{\n paper: classes.paper,\n }}\n disablePortal={disablePortal}\n open={open}\n onClose={() => this.handleDone(false)}\n aria-labelledby=\"form-dialog-title\"\n >\n <DialogTitle id=\"form-dialog-title\">Insert {typeMap[type]}</DialogTitle>\n <DialogContent>\n <div>\n <div className={classes.row}>\n <MuiTabs\n indicatorColor=\"primary\"\n value={tabValue}\n onChange={(event, value) => {\n this.setState({ tabValue: value });\n }}\n >\n <MuiTab label={type === 'video' ? 'Insert YouTube or Vimeo URL' : 'Insert SoundCloud URL'} />\n {uploadSoundSupport?.add && uploadSoundSupport?.delete && type !== 'video' ? (\n <MuiTab label=\"Upload file\" />\n ) : null}\n </MuiTabs>\n </div>\n {isInsertURL && (\n <div>\n <TextField\n autoFocus\n error={invalid}\n helperText={invalid ? 'Invalid URL' : ''}\n margin=\"dense\"\n id=\"name\"\n label=\"URL\"\n placeholder={`Paste URL of ${type}...`}\n type=\"text\"\n onChange={this.urlChange}\n value={url}\n fullWidth\n />\n {type === 'video' && (\n <DialogContent\n classes={{\n root: classes.properties,\n }}\n >\n <DialogContentText>Video Properties</DialogContentText>\n <TextField\n autoFocus\n margin=\"dense\"\n id=\"width\"\n label=\"Width\"\n type=\"number\"\n placeholder=\"Width\"\n value={width}\n onChange={this.changeHandler('width')}\n />\n <TextField\n autoFocus\n margin=\"dense\"\n id=\"height\"\n label=\"Height\"\n type=\"number\"\n placeholder=\"Height\"\n value={height}\n onChange={this.changeHandler('height')}\n />\n </DialogContent>\n )}\n {formattedUrl && (\n <iframe\n width={width}\n height={height}\n src={formattedUrl}\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n />\n )}\n {type === 'video' && (formattedUrl || updating) && !invalid && (\n <React.Fragment>\n <DialogContent\n classes={{\n root: classes.properties,\n }}\n >\n <TextField\n autoFocus\n margin=\"dense\"\n id=\"starts\"\n label=\"Starts\"\n type=\"number\"\n placeholder=\"Starts\"\n value={starts}\n onChange={this.changeHandler('starts')}\n />\n {isYoutube && (\n <TextField\n autoFocus\n margin=\"dense\"\n id=\"ends\"\n label=\"Ends\"\n type=\"number\"\n placeholder=\"Ends\"\n value={ends}\n onChange={this.changeHandler('ends')}\n />\n )}\n </DialogContent>\n </React.Fragment>\n )}\n </div>\n )}\n {isUploadMedia && (\n <div className={classes.uploadInput}>\n <div>\n {fileUpload.url ? (\n <>\n <div className={classes.row}>\n <audio controls=\"controls\">\n <source type=\"audio/mp3\" src={fileUpload.url} />\n </audio>\n <IconButton aria-label=\"delete\" className={classes.deleteIcon} onClick={this.handleRemoveFile}>\n <ActionDelete />\n </IconButton>\n </div>\n {fileUpload.loading ? <Typography variant=\"subheading\">Loading...</Typography> : null}\n </>\n ) : !fileUpload.loading ? (\n <input accept=\"audio/*\" className={classes.input} onChange={this.handleUploadFile} type=\"file\" />\n ) : null}\n {!!fileUpload.error && (\n <Typography className={classes.error} variant=\"caption\">\n {fileUpload.error}\n </Typography>\n )}\n </div>\n </div>\n )}\n </div>\n </DialogContent>\n <DialogActions>\n <Button onClick={() => this.handleDone(false)} color=\"primary\">\n Cancel\n </Button>\n <Button disabled={submitIsDisabled} onClick={() => this.handleDone(true)} color=\"primary\">\n {edit ? 'Update' : 'Insert'}\n </Button>\n </DialogActions>\n </Dialog>\n );\n }\n}\n\nconst styles = () => ({\n paper: {\n minWidth: '500px',\n },\n properties: {\n padding: 0,\n },\n row: {\n display: 'flex',\n flexDirection: 'space-between',\n },\n rowItem: {\n marginRight: '12px',\n cursor: 'pointer',\n },\n active: {\n color: color.primary(),\n borderBottom: `2px solid ${color.primary()}`,\n },\n uploadInput: {\n marginTop: '12px',\n },\n error: {\n marginTop: '12px',\n color: 'red',\n },\n deleteIcon: {\n marginLeft: '12px',\n },\n});\n\nexport default withStyles(styles)(MediaDialog);\n"],"file":"media-dialog.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/media/media-toolbar.jsx"],"names":["useStyles","theme","root","position","bottom","left","width","background","display","padding","boxShadow","editContainer","cursor","flex","border","textAlign","borderWidth","marginRight","paddingRight","removeContainer","MediaToolbar","props","classes","hideEdit","onEdit","onRemove","React","Component","PropTypes","object","func","bool"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAEA,IAAMA,SAAS,GAAG,wBAAW,UAAAC,KAAK;AAAA,SAAK;AACrCC,IAAAA,IAAI,EAAE;AACJC,MAAAA,QAAQ,EAAE,UADN;AAEJC,MAAAA,MAAM,EAAE,KAFJ;AAGJC,MAAAA,IAAI,EAAE,CAHF;AAIJC,MAAAA,KAAK,EAAE,MAJH;AAKJC,MAAAA,UAAU,EAAE,OALR;AAMJC,MAAAA,OAAO,EAAE,aANL;AAOJC,MAAAA,OAAO,EAAE,KAPL;AAQJC,MAAAA,SAAS,EAAE;AARP,KAD+B;AAWrCC,IAAAA,aAAa,EAAE;AACbC,MAAAA,MAAM,EAAE,SADK;AAEbC,MAAAA,IAAI,EAAE,CAFO;AAGbC,MAAAA,MAAM,EAAE,aAHK;AAIbC,MAAAA,SAAS,EAAE,OAJE;AAKbC,MAAAA,WAAW,EAAE,WALA;AAMbC,MAAAA,WAAW,EAAE,KANA;AAObC,MAAAA,YAAY,EAAE;AAPD,KAXsB;AAoBrCC,IAAAA,eAAe,EAAE;AACfP,MAAAA,MAAM,EAAE;AADO;AApBoB,GAAL;AAAA,CAAhB,CAAlB;;IAyBMQ,Y;;;;;;;;;;;;WAQJ,kBAAS;AACP,wBAAgD,KAAKC,KAArD;AAAA,UAAQC,OAAR,eAAQA,OAAR;AAAA,UAAiBC,QAAjB,eAAiBA,QAAjB;AAAA,UAA2BC,MAA3B,eAA2BA,MAA3B;AAAA,UAAmCC,QAAnC,eAAmCA,QAAnC;AAEA,0BACE;AAAM,QAAA,SAAS,EAAEH,OAAO,CAACpB;AAAzB,SACGqB,QAAQ,GAAG,IAAH,gBACP;AAAM,QAAA,SAAS,EAAED,OAAO,CAACX,aAAzB;AAAwC,QAAA,OAAO,EAAEa;AAAjD,yBAFJ,eAME;AAAM,QAAA,SAAS,EAAEF,OAAO,CAACH,eAAzB;AAA0C,QAAA,OAAO,EAAEM;AAAnD,kBANF,CADF;AAYD;;;EAvBwBC,kBAAMC,S;;iCAA3BP,Y,eACe;AACjBE,EAAAA,OAAO,EAAEM,sBAAUC,MADF;AAEjBL,EAAAA,MAAM,EAAEI,sBAAUE,IAFD;AAGjBP,EAAAA,QAAQ,EAAEK,sBAAUG,IAHH;AAIjBN,EAAAA,QAAQ,EAAEG,sBAAUE;AAJH,C;;eAyBN9B,SAAS,CAACoB,YAAD,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst useStyles = withStyles(theme => ({\n root: {\n position: 'relative',\n bottom: '5px',\n left: 0,\n width: '100%',\n background: 'white',\n display: 'inline-flex',\n padding: '5px',\n boxShadow: '0px 4px 4px rgba(0, 0, 0, 0.25)'\n },\n editContainer: {\n cursor: 'pointer',\n flex: 3,\n border: 'solid black',\n textAlign: 'right',\n borderWidth: '0 2px 0 0',\n marginRight: '5px',\n paddingRight: '5px'\n },\n removeContainer: {\n cursor: 'pointer'\n }\n}));\n\nclass MediaToolbar extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n onEdit: PropTypes.func,\n hideEdit: PropTypes.bool,\n onRemove: PropTypes.func\n };\n\n render() {\n const { classes, hideEdit, onEdit, onRemove } = this.props;\n\n return (\n <span className={classes.root}>\n {hideEdit ? null : (\n <span className={classes.editContainer} onClick={onEdit}>\n Edit Settings\n </span>\n )}\n <span className={classes.removeContainer} onClick={onRemove}>\n Remove\n </span>\n </span>\n );\n }\n}\n\nexport default useStyles(MediaToolbar);\n"],"file":"media-toolbar.js"}
1
+ {"version":3,"sources":["../../../src/plugins/media/media-toolbar.jsx"],"names":["useStyles","theme","root","position","bottom","left","width","background","display","padding","boxShadow","editContainer","cursor","flex","border","textAlign","borderWidth","marginRight","paddingRight","removeContainer","MediaToolbar","props","classes","hideEdit","onEdit","onRemove","React","Component","PropTypes","object","func","bool"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAEA,IAAMA,SAAS,GAAG,wBAAW,UAACC,KAAD;AAAA,SAAY;AACvCC,IAAAA,IAAI,EAAE;AACJC,MAAAA,QAAQ,EAAE,UADN;AAEJC,MAAAA,MAAM,EAAE,KAFJ;AAGJC,MAAAA,IAAI,EAAE,CAHF;AAIJC,MAAAA,KAAK,EAAE,MAJH;AAKJC,MAAAA,UAAU,EAAE,OALR;AAMJC,MAAAA,OAAO,EAAE,aANL;AAOJC,MAAAA,OAAO,EAAE,KAPL;AAQJC,MAAAA,SAAS,EAAE;AARP,KADiC;AAWvCC,IAAAA,aAAa,EAAE;AACbC,MAAAA,MAAM,EAAE,SADK;AAEbC,MAAAA,IAAI,EAAE,CAFO;AAGbC,MAAAA,MAAM,EAAE,aAHK;AAIbC,MAAAA,SAAS,EAAE,OAJE;AAKbC,MAAAA,WAAW,EAAE,WALA;AAMbC,MAAAA,WAAW,EAAE,KANA;AAObC,MAAAA,YAAY,EAAE;AAPD,KAXwB;AAoBvCC,IAAAA,eAAe,EAAE;AACfP,MAAAA,MAAM,EAAE;AADO;AApBsB,GAAZ;AAAA,CAAX,CAAlB;;IAyBMQ,Y;;;;;;;;;;;;WAQJ,kBAAS;AACP,wBAAgD,KAAKC,KAArD;AAAA,UAAQC,OAAR,eAAQA,OAAR;AAAA,UAAiBC,QAAjB,eAAiBA,QAAjB;AAAA,UAA2BC,MAA3B,eAA2BA,MAA3B;AAAA,UAAmCC,QAAnC,eAAmCA,QAAnC;AAEA,0BACE;AAAM,QAAA,SAAS,EAAEH,OAAO,CAACpB;AAAzB,SACGqB,QAAQ,GAAG,IAAH,gBACP;AAAM,QAAA,SAAS,EAAED,OAAO,CAACX,aAAzB;AAAwC,QAAA,OAAO,EAAEa;AAAjD,yBAFJ,eAME;AAAM,QAAA,SAAS,EAAEF,OAAO,CAACH,eAAzB;AAA0C,QAAA,OAAO,EAAEM;AAAnD,kBANF,CADF;AAYD;;;EAvBwBC,kBAAMC,S;;iCAA3BP,Y,eACe;AACjBE,EAAAA,OAAO,EAAEM,sBAAUC,MADF;AAEjBL,EAAAA,MAAM,EAAEI,sBAAUE,IAFD;AAGjBP,EAAAA,QAAQ,EAAEK,sBAAUG,IAHH;AAIjBN,EAAAA,QAAQ,EAAEG,sBAAUE;AAJH,C;;eAyBN9B,SAAS,CAACoB,YAAD,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst useStyles = withStyles((theme) => ({\n root: {\n position: 'relative',\n bottom: '5px',\n left: 0,\n width: '100%',\n background: 'white',\n display: 'inline-flex',\n padding: '5px',\n boxShadow: '0px 4px 4px rgba(0, 0, 0, 0.25)',\n },\n editContainer: {\n cursor: 'pointer',\n flex: 3,\n border: 'solid black',\n textAlign: 'right',\n borderWidth: '0 2px 0 0',\n marginRight: '5px',\n paddingRight: '5px',\n },\n removeContainer: {\n cursor: 'pointer',\n },\n}));\n\nclass MediaToolbar extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n onEdit: PropTypes.func,\n hideEdit: PropTypes.bool,\n onRemove: PropTypes.func,\n };\n\n render() {\n const { classes, hideEdit, onEdit, onRemove } = this.props;\n\n return (\n <span className={classes.root}>\n {hideEdit ? null : (\n <span className={classes.editContainer} onClick={onEdit}>\n Edit Settings\n </span>\n )}\n <span className={classes.removeContainer} onClick={onRemove}>\n Remove\n </span>\n </span>\n );\n }\n}\n\nexport default useStyles(MediaToolbar);\n"],"file":"media-toolbar.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/media/media-wrapper.jsx"],"names":["useStyles","root","position","editor","display","overflow","MediaWrapper","props","classes","children","width","rest","React","Component","PropTypes","object","array","bool","oneOfType","number","string"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,SAAS,GAAG,wBAAW;AAAA,SAAO;AAClCC,IAAAA,IAAI,EAAE;AACJC,MAAAA,QAAQ,EAAE;AADN,KAD4B;AAIlCC,IAAAA,MAAM,EAAE;AACNC,MAAAA,OAAO,EAAE,cADH;AAENC,MAAAA,QAAQ,EAAE;AAFJ;AAJ0B,GAAP;AAAA,CAAX,CAAlB;;IAUMC,Y;;;;;;;;;;;;WAQJ,kBAAS;AACP,wBAAsD,KAAKC,KAA3D;AAAA,UAAQJ,MAAR,eAAQA,MAAR;AAAA,UAAgBK,OAAhB,eAAgBA,OAAhB;AAAA,UAAyBC,QAAzB,eAAyBA,QAAzB;AAAA,UAAmCC,KAAnC,eAAmCA,KAAnC;AAAA,UAA6CC,IAA7C;AAEA,0BACE;AACE,QAAA,SAAS,EAAE,4BAAWH,OAAO,CAACP,IAAnB,uCACRO,OAAO,CAACL,MADA,EACSA,MADT;AADb,SAIMQ,IAJN;AAKE,QAAA,KAAK,EAAE;AACLD,UAAAA,KAAK,EAAEA,KAAK,IAAI;AADX;AALT,UASGD,QATH,CADF;AAaD;;;EAxBwBG,kBAAMC,S;;iCAA3BP,Y,eACe;AACjBE,EAAAA,OAAO,EAAEM,sBAAUC,MADF;AAEjBN,EAAAA,QAAQ,EAAEK,sBAAUE,KAFH;AAGjBb,EAAAA,MAAM,EAAEW,sBAAUG,IAHD;AAIjBP,EAAAA,KAAK,EAAEI,sBAAUI,SAAV,CAAoB,CAACJ,sBAAUK,MAAX,EAAmBL,sBAAUM,MAA7B,CAApB;AAJU,C;;eA0BNpB,SAAS,CAACM,YAAD,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst useStyles = withStyles(() => ({\n root: {\n position: 'relative'\n },\n editor: {\n display: 'inline-block',\n overflow: 'hidden'\n }\n}));\n\nclass MediaWrapper extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n children: PropTypes.array,\n editor: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n };\n\n render() {\n const { editor, classes, children, width, ...rest } = this.props;\n\n return (\n <span\n className={classNames(classes.root, {\n [classes.editor]: editor\n })}\n {...rest}\n style={{\n width: width || 300\n }}\n >\n {children}\n </span>\n );\n }\n}\n\nexport default useStyles(MediaWrapper);\n"],"file":"media-wrapper.js"}
1
+ {"version":3,"sources":["../../../src/plugins/media/media-wrapper.jsx"],"names":["useStyles","root","position","editor","display","overflow","MediaWrapper","props","classes","children","width","rest","React","Component","PropTypes","object","array","bool","oneOfType","number","string"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,SAAS,GAAG,wBAAW;AAAA,SAAO;AAClCC,IAAAA,IAAI,EAAE;AACJC,MAAAA,QAAQ,EAAE;AADN,KAD4B;AAIlCC,IAAAA,MAAM,EAAE;AACNC,MAAAA,OAAO,EAAE,cADH;AAENC,MAAAA,QAAQ,EAAE;AAFJ;AAJ0B,GAAP;AAAA,CAAX,CAAlB;;IAUMC,Y;;;;;;;;;;;;WAQJ,kBAAS;AACP,wBAAsD,KAAKC,KAA3D;AAAA,UAAQJ,MAAR,eAAQA,MAAR;AAAA,UAAgBK,OAAhB,eAAgBA,OAAhB;AAAA,UAAyBC,QAAzB,eAAyBA,QAAzB;AAAA,UAAmCC,KAAnC,eAAmCA,KAAnC;AAAA,UAA6CC,IAA7C;AAEA,0BACE;AACE,QAAA,SAAS,EAAE,4BAAWH,OAAO,CAACP,IAAnB,uCACRO,OAAO,CAACL,MADA,EACSA,MADT;AADb,SAIMQ,IAJN;AAKE,QAAA,KAAK,EAAE;AACLD,UAAAA,KAAK,EAAEA,KAAK,IAAI;AADX;AALT,UASGD,QATH,CADF;AAaD;;;EAxBwBG,kBAAMC,S;;iCAA3BP,Y,eACe;AACjBE,EAAAA,OAAO,EAAEM,sBAAUC,MADF;AAEjBN,EAAAA,QAAQ,EAAEK,sBAAUE,KAFH;AAGjBb,EAAAA,MAAM,EAAEW,sBAAUG,IAHD;AAIjBP,EAAAA,KAAK,EAAEI,sBAAUI,SAAV,CAAoB,CAACJ,sBAAUK,MAAX,EAAmBL,sBAAUM,MAA7B,CAApB;AAJU,C;;eA0BNpB,SAAS,CAACM,YAAD,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst useStyles = withStyles(() => ({\n root: {\n position: 'relative',\n },\n editor: {\n display: 'inline-block',\n overflow: 'hidden',\n },\n}));\n\nclass MediaWrapper extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n children: PropTypes.array,\n editor: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n };\n\n render() {\n const { editor, classes, children, width, ...rest } = this.props;\n\n return (\n <span\n className={classNames(classes.root, {\n [classes.editor]: editor,\n })}\n {...rest}\n style={{\n width: width || 300,\n }}\n >\n {children}\n </span>\n );\n }\n}\n\nexport default useStyles(MediaWrapper);\n"],"file":"media-wrapper.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/plugins/respArea/drag-in-the-blank/choice.jsx"],"names":["useStyles","theme","content","border","palette","primary","main","chip","minWidth","correct","incorrect","selected","color","primaryDark","BlankContent","props","handleClick","bind","document","addEventListener","removeEventListener","event","classes","elementRef","className","contains","target","n","children","isDragging","dragItem","isOver","value","label","finalLabel","hasGrip","ref","display","minHeight","background","boxSizing","borderRadius","overflow","position","padding","key","top","left","__html","React","Component","PropTypes","object","func","bool","StyledBlankContent","connectedBlankContent","connectDropTarget","connectDragSource","dragContent","dragEl","over","tileTarget","drop","monitor","draggedItem","getItem","shouldDrop","index","onChange","dropped","canDrop","instanceId","DropTile","connect","dropTarget","tileSource","canDrag","disabled","beginDrag","id","targetId","fromChoice","endDrag","dropResult","getDropResult","duplicates","removeResponse","dragSource"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport isUndefined from 'lodash/isUndefined';\nimport { DragSource, DropTarget } from '@pie-lib/drag';\nimport { color } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { withStyles } from '@material-ui/core/styles';\nimport classnames from 'classnames';\n\nimport { GripIcon } from '../icons';\n\nconst useStyles = withStyles(theme => ({\n content: {\n border: `solid 0px ${theme.palette.primary.main}`\n },\n chip: {\n minWidth: '90px'\n },\n correct: {\n border: 'solid 1px green'\n },\n incorrect: {\n border: 'solid 1px red'\n },\n selected: {\n border: `2px solid ${color.primaryDark()} !important`\n }\n}));\n\nexport class BlankContent extends React.Component {\n static propTypes = {\n n: PropTypes.object,\n children: PropTypes.func,\n isDragging: PropTypes.bool,\n isOver: PropTypes.bool,\n dragItem: PropTypes.object,\n value: PropTypes.object,\n classes: PropTypes.object\n };\n\n constructor(props) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n componentDidMount() {\n document.addEventListener('click', this.handleClick);\n }\n\n componentWillUnmount() {\n document.removeEventListener('click', this.handleClick);\n }\n\n handleClick(event) {\n const { classes } = this.props;\n\n if (this.elementRef) {\n this.elementRef.className = this.elementRef.contains(event.target) ? classes.selected : '';\n }\n }\n\n componentDidUpdate() {\n if (this.elementRef) {\n renderMath(this.elementRef);\n }\n }\n\n render() {\n const { n, children, isDragging, dragItem, isOver, value } = this.props;\n\n const label = dragItem && isOver ? dragItem.value.value : value.value || '\\u00A0';\n const finalLabel = isDragging ? '\\u00A0' : label;\n const hasGrip = finalLabel !== '\\u00A0';\n\n return (\n <div\n ref={ref => (this.elementRef = ref)}\n style={{\n display: 'inline-flex',\n minWidth: '178px',\n minHeight: '36px',\n background: '#FFF',\n border: '1px solid #C0C3CF',\n boxSizing: 'border-box',\n borderRadius: '3px',\n overflow: 'hidden',\n position: 'relative',\n padding: '8px 8px 8px 35px'\n }}\n data-key={n.key}\n contentEditable={false}\n >\n {hasGrip && (\n <GripIcon\n style={{\n position: 'absolute',\n top: '6px',\n left: '15px',\n color: '#9B9B9B'\n }}\n contentEditable={false}\n />\n )}\n <span\n dangerouslySetInnerHTML={{\n __html: finalLabel\n }}\n />\n {children}\n </div>\n );\n }\n}\n\nconst StyledBlankContent = useStyles(BlankContent);\n\nconst connectedBlankContent = useStyles(({ connectDropTarget, connectDragSource, ...props }) => {\n const { classes, isOver, value } = props;\n const dragContent = <StyledBlankContent {...props} />;\n const dragEl = !value ? dragContent : connectDragSource(<span>{dragContent}</span>);\n const content = (\n <span className={classnames(classes.content, isOver && classes.over)}>{dragEl}</span>\n );\n\n return connectDropTarget ? connectDropTarget(content) : content;\n});\n\nexport const tileTarget = {\n drop(props, monitor) {\n const draggedItem = monitor.getItem();\n const shouldDrop =\n isUndefined(draggedItem.value.index) ||\n isUndefined(props.value.index) ||\n draggedItem.value.index !== props.value.index;\n\n if (shouldDrop) {\n props.onChange(draggedItem.value);\n }\n\n return {\n dropped: shouldDrop\n };\n },\n canDrop(props, monitor) {\n const draggedItem = monitor.getItem();\n\n return draggedItem.instanceId === props.instanceId;\n }\n};\n\nconst DropTile = DropTarget('drag-in-the-blank-choice', tileTarget, (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n dragItem: monitor.getItem()\n}))(connectedBlankContent);\n\nexport const tileSource = {\n canDrag(props) {\n return !props.disabled && !!props.value;\n },\n beginDrag(props) {\n return {\n id: props.targetId,\n value: props.value,\n instanceId: props.instanceId,\n fromChoice: true\n };\n },\n endDrag(props, monitor) {\n // this will be null if it did not drop\n const dropResult = monitor.getDropResult();\n\n if (!dropResult || (dropResult.dropped && !props.duplicates)) {\n const draggedItem = monitor.getItem();\n\n if (draggedItem.fromChoice) {\n props.removeResponse(draggedItem.value);\n }\n }\n }\n};\n\nexport default DragSource('drag-in-the-blank-choice', tileSource, (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n isDragging: monitor.isDragging()\n}))(DropTile);\n"],"file":"choice.js"}
1
+ {"version":3,"sources":["../../../../src/plugins/respArea/drag-in-the-blank/choice.jsx"],"names":["useStyles","theme","content","border","palette","primary","main","chip","minWidth","correct","incorrect","selected","color","primaryDark","BlankContent","props","handleClick","bind","document","addEventListener","removeEventListener","event","classes","elementRef","className","contains","target","n","children","isDragging","dragItem","isOver","value","label","finalLabel","hasGrip","ref","display","minHeight","background","boxSizing","borderRadius","overflow","position","padding","key","top","left","__html","React","Component","PropTypes","object","func","bool","StyledBlankContent","connectedBlankContent","connectDropTarget","connectDragSource","dragContent","dragEl","over","tileTarget","drop","monitor","draggedItem","getItem","shouldDrop","index","onChange","dropped","canDrop","instanceId","DropTile","connect","dropTarget","tileSource","canDrag","disabled","beginDrag","id","targetId","fromChoice","endDrag","dropResult","getDropResult","duplicates","removeResponse","dragSource"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport isUndefined from 'lodash/isUndefined';\nimport { DragSource, DropTarget } from '@pie-lib/drag';\nimport { color } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { withStyles } from '@material-ui/core/styles';\nimport classnames from 'classnames';\n\nimport { GripIcon } from '../icons';\n\nconst useStyles = withStyles((theme) => ({\n content: {\n border: `solid 0px ${theme.palette.primary.main}`,\n },\n chip: {\n minWidth: '90px',\n },\n correct: {\n border: 'solid 1px green',\n },\n incorrect: {\n border: 'solid 1px red',\n },\n selected: {\n border: `2px solid ${color.primaryDark()} !important`,\n },\n}));\n\nexport class BlankContent extends React.Component {\n static propTypes = {\n n: PropTypes.object,\n children: PropTypes.func,\n isDragging: PropTypes.bool,\n isOver: PropTypes.bool,\n dragItem: PropTypes.object,\n value: PropTypes.object,\n classes: PropTypes.object,\n };\n\n constructor(props) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n componentDidMount() {\n document.addEventListener('click', this.handleClick);\n }\n\n componentWillUnmount() {\n document.removeEventListener('click', this.handleClick);\n }\n\n handleClick(event) {\n const { classes } = this.props;\n\n if (this.elementRef) {\n this.elementRef.className = this.elementRef.contains(event.target) ? classes.selected : '';\n }\n }\n\n componentDidUpdate() {\n if (this.elementRef) {\n renderMath(this.elementRef);\n }\n }\n\n render() {\n const { n, children, isDragging, dragItem, isOver, value } = this.props;\n\n const label = dragItem && isOver ? dragItem.value.value : value.value || '\\u00A0';\n const finalLabel = isDragging ? '\\u00A0' : label;\n const hasGrip = finalLabel !== '\\u00A0';\n\n return (\n <div\n ref={(ref) => (this.elementRef = ref)}\n style={{\n display: 'inline-flex',\n minWidth: '178px',\n minHeight: '36px',\n background: '#FFF',\n border: '1px solid #C0C3CF',\n boxSizing: 'border-box',\n borderRadius: '3px',\n overflow: 'hidden',\n position: 'relative',\n padding: '8px 8px 8px 35px',\n }}\n data-key={n.key}\n contentEditable={false}\n >\n {hasGrip && (\n <GripIcon\n style={{\n position: 'absolute',\n top: '6px',\n left: '15px',\n color: '#9B9B9B',\n }}\n contentEditable={false}\n />\n )}\n <span\n dangerouslySetInnerHTML={{\n __html: finalLabel,\n }}\n />\n {children}\n </div>\n );\n }\n}\n\nconst StyledBlankContent = useStyles(BlankContent);\n\nconst connectedBlankContent = useStyles(({ connectDropTarget, connectDragSource, ...props }) => {\n const { classes, isOver, value } = props;\n const dragContent = <StyledBlankContent {...props} />;\n const dragEl = !value ? dragContent : connectDragSource(<span>{dragContent}</span>);\n const content = <span className={classnames(classes.content, isOver && classes.over)}>{dragEl}</span>;\n\n return connectDropTarget ? connectDropTarget(content) : content;\n});\n\nexport const tileTarget = {\n drop(props, monitor) {\n const draggedItem = monitor.getItem();\n const shouldDrop =\n isUndefined(draggedItem.value.index) ||\n isUndefined(props.value.index) ||\n draggedItem.value.index !== props.value.index;\n\n if (shouldDrop) {\n props.onChange(draggedItem.value);\n }\n\n return {\n dropped: shouldDrop,\n };\n },\n canDrop(props, monitor) {\n const draggedItem = monitor.getItem();\n\n return draggedItem.instanceId === props.instanceId;\n },\n};\n\nconst DropTile = DropTarget('drag-in-the-blank-choice', tileTarget, (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n dragItem: monitor.getItem(),\n}))(connectedBlankContent);\n\nexport const tileSource = {\n canDrag(props) {\n return !props.disabled && !!props.value;\n },\n beginDrag(props) {\n return {\n id: props.targetId,\n value: props.value,\n instanceId: props.instanceId,\n fromChoice: true,\n };\n },\n endDrag(props, monitor) {\n // this will be null if it did not drop\n const dropResult = monitor.getDropResult();\n\n if (!dropResult || (dropResult.dropped && !props.duplicates)) {\n const draggedItem = monitor.getItem();\n\n if (draggedItem.fromChoice) {\n props.removeResponse(draggedItem.value);\n }\n }\n },\n};\n\nexport default DragSource('drag-in-the-blank-choice', tileSource, (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n isDragging: monitor.isDragging(),\n}))(DropTile);\n"],"file":"choice.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/plugins/respArea/drag-in-the-blank/index.jsx"],"names":["onValueChange","nodeProps","n","value","val","editor","change","setNodeByKey","key","data","index","get","props","onChange","onEditingDone","onRemoveResponse","dragInTheBlank","document","findDescendant","DragDrop","attributes","opts","inTable","display","minHeight","minWidth","position","margin","cursor","options","duplicates","children","propTypes","PropTypes","object"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport DragDropTile from './choice';\n\nexport const onValueChange = (nodeProps, n, value) => {\n const val = nodeProps.editor.value;\n const change = val.change();\n\n change.setNodeByKey(n.key, {\n data: {\n ...value,\n index: n.data.get('index')\n }\n });\n\n nodeProps.editor.props.onChange(change, () => {\n nodeProps.editor.props.onEditingDone();\n });\n};\n\nexport const onRemoveResponse = (nodeProps, value) => {\n const val = nodeProps.editor.value;\n const change = val.change();\n const dragInTheBlank = val.document.findDescendant(\n n => n.data && n.data.get('index') === value.index\n );\n\n change.setNodeByKey(dragInTheBlank.key, {\n data: {\n index: dragInTheBlank.data.get('index')\n }\n });\n\n nodeProps.editor.props.onChange(change, () => {\n nodeProps.editor.props.onEditingDone();\n });\n};\n\nconst DragDrop = props => {\n const { attributes, data, n, nodeProps, opts } = props;\n const { inTable } = data;\n\n return (\n <span\n {...attributes}\n style={{\n display: 'inline-flex',\n minHeight: '50px',\n minWidth: '178px',\n position: 'relative',\n margin: inTable ? '10px' : '0 10px',\n cursor: 'pointer'\n }}\n >\n <DragDropTile\n n={n}\n dragKey={n.key}\n targetId=\"0\"\n value={data}\n duplicates={opts.options.duplicates}\n onChange={value => onValueChange(nodeProps, n, value)}\n removeResponse={value => onRemoveResponse(nodeProps, value)}\n >\n {nodeProps.children}\n </DragDropTile>\n </span>\n );\n};\n\nDragDrop.propTypes = {\n attributes: PropTypes.object,\n data: PropTypes.object,\n n: PropTypes.object,\n nodeProps: PropTypes.object,\n opts: PropTypes.object\n};\n\nexport default DragDrop;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/plugins/respArea/drag-in-the-blank/index.jsx"],"names":["onValueChange","nodeProps","n","value","val","editor","change","setNodeByKey","key","data","index","get","props","onChange","onEditingDone","onRemoveResponse","dragInTheBlank","document","findDescendant","DragDrop","attributes","opts","inTable","display","minHeight","minWidth","position","margin","cursor","options","duplicates","children","propTypes","PropTypes","object"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport DragDropTile from './choice';\n\nexport const onValueChange = (nodeProps, n, value) => {\n const val = nodeProps.editor.value;\n const change = val.change();\n\n change.setNodeByKey(n.key, {\n data: {\n ...value,\n index: n.data.get('index'),\n },\n });\n\n nodeProps.editor.props.onChange(change, () => {\n nodeProps.editor.props.onEditingDone();\n });\n};\n\nexport const onRemoveResponse = (nodeProps, value) => {\n const val = nodeProps.editor.value;\n const change = val.change();\n const dragInTheBlank = val.document.findDescendant((n) => n.data && n.data.get('index') === value.index);\n\n change.setNodeByKey(dragInTheBlank.key, {\n data: {\n index: dragInTheBlank.data.get('index'),\n },\n });\n\n nodeProps.editor.props.onChange(change, () => {\n nodeProps.editor.props.onEditingDone();\n });\n};\n\nconst DragDrop = (props) => {\n const { attributes, data, n, nodeProps, opts } = props;\n const { inTable } = data;\n\n return (\n <span\n {...attributes}\n style={{\n display: 'inline-flex',\n minHeight: '50px',\n minWidth: '178px',\n position: 'relative',\n margin: inTable ? '10px' : '0 10px',\n cursor: 'pointer',\n }}\n >\n <DragDropTile\n n={n}\n dragKey={n.key}\n targetId=\"0\"\n value={data}\n duplicates={opts.options.duplicates}\n onChange={(value) => onValueChange(nodeProps, n, value)}\n removeResponse={(value) => onRemoveResponse(nodeProps, value)}\n >\n {nodeProps.children}\n </DragDropTile>\n </span>\n );\n};\n\nDragDrop.propTypes = {\n attributes: PropTypes.object,\n data: PropTypes.object,\n n: PropTypes.object,\n nodeProps: PropTypes.object,\n opts: PropTypes.object,\n};\n\nexport default DragDrop;\n"],"file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/plugins/respArea/explicit-constructed-response/index.jsx"],"names":["ExplicitConstructedResponse","props","attributes","value","error","display","minHeight","minWidth","position","margin","cursor","height","background","border","boxSizing","borderRadius","overflow","padding","__html","propTypes","PropTypes","object","string"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,2BAA2B,GAAG,SAA9BA,2BAA8B,CAAAC,KAAK,EAAI;AAC3C,MAAQC,UAAR,GAAqCD,KAArC,CAAQC,UAAR;AAAA,MAAoBC,KAApB,GAAqCF,KAArC,CAAoBE,KAApB;AAAA,MAA2BC,KAA3B,GAAqCH,KAArC,CAA2BG,KAA3B;AAEA,sBACE,sEACMF,UADN;AAEE,IAAA,KAAK,EAAE;AACLG,MAAAA,OAAO,EAAE,aADJ;AAELC,MAAAA,SAAS,EAAE,MAFN;AAGLC,MAAAA,QAAQ,EAAE,OAHL;AAILC,MAAAA,QAAQ,EAAE,UAJL;AAKLC,MAAAA,MAAM,EAAE,OALH;AAMLC,MAAAA,MAAM,EAAE;AANH;AAFT,mBAWE;AACE,IAAA,KAAK,EAAE;AACLL,MAAAA,OAAO,EAAE,aADJ;AAELE,MAAAA,QAAQ,EAAE,OAFL;AAGLD,MAAAA,SAAS,EAAE,MAHN;AAILK,MAAAA,MAAM,EAAE,MAJH;AAKLC,MAAAA,UAAU,EAAE,MALP;AAMLC,MAAAA,MAAM,sBAAeT,KAAK,GAAG,KAAH,GAAW,SAA/B,CAND;AAOLU,MAAAA,SAAS,EAAE,YAPN;AAQLC,MAAAA,YAAY,EAAE,KART;AASLC,MAAAA,QAAQ,EAAE,QATL;AAULC,MAAAA,OAAO,EAAE;AAVJ,KADT;AAaE,IAAA,uBAAuB,EAAE;AACvBC,MAAAA,MAAM,EAAEf,KAAK,IAAI;AADM;AAb3B,IAXF,CADF;AA+BD,CAlCD;;AAoCAH,2BAA2B,CAACmB,SAA5B,GAAwC;AACtCjB,EAAAA,UAAU,EAAEkB,sBAAUC,MADgB;AAEtClB,EAAAA,KAAK,EAAEiB,sBAAUE;AAFqB,CAAxC;eAKetB,2B","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst ExplicitConstructedResponse = props => {\n const { attributes, value, error } = props;\n\n return (\n <span\n {...attributes}\n style={{\n display: 'inline-flex',\n minHeight: '50px',\n minWidth: '178px',\n position: 'relative',\n margin: '0 5px',\n cursor: 'pointer'\n }}\n >\n <div\n style={{\n display: 'inline-flex',\n minWidth: '178px',\n minHeight: '36px',\n height: '36px',\n background: '#FFF',\n border: `1px solid ${error ? 'red' : '#C0C3CF'}`,\n boxSizing: 'border-box',\n borderRadius: '3px',\n overflow: 'hidden',\n padding: '8px'\n }}\n dangerouslySetInnerHTML={{\n __html: value || '<div>&nbsp;</div>'\n }}\n />\n </span>\n );\n};\n\nExplicitConstructedResponse.propTypes = {\n attributes: PropTypes.object,\n value: PropTypes.string\n};\n\nexport default ExplicitConstructedResponse;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/plugins/respArea/explicit-constructed-response/index.jsx"],"names":["ExplicitConstructedResponse","props","attributes","value","error","display","minHeight","minWidth","position","margin","cursor","height","background","border","boxSizing","borderRadius","overflow","padding","__html","propTypes","PropTypes","object","string"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,2BAA2B,GAAG,SAA9BA,2BAA8B,CAACC,KAAD,EAAW;AAC7C,MAAQC,UAAR,GAAqCD,KAArC,CAAQC,UAAR;AAAA,MAAoBC,KAApB,GAAqCF,KAArC,CAAoBE,KAApB;AAAA,MAA2BC,KAA3B,GAAqCH,KAArC,CAA2BG,KAA3B;AAEA,sBACE,sEACMF,UADN;AAEE,IAAA,KAAK,EAAE;AACLG,MAAAA,OAAO,EAAE,aADJ;AAELC,MAAAA,SAAS,EAAE,MAFN;AAGLC,MAAAA,QAAQ,EAAE,OAHL;AAILC,MAAAA,QAAQ,EAAE,UAJL;AAKLC,MAAAA,MAAM,EAAE,OALH;AAMLC,MAAAA,MAAM,EAAE;AANH;AAFT,mBAWE;AACE,IAAA,KAAK,EAAE;AACLL,MAAAA,OAAO,EAAE,aADJ;AAELE,MAAAA,QAAQ,EAAE,OAFL;AAGLD,MAAAA,SAAS,EAAE,MAHN;AAILK,MAAAA,MAAM,EAAE,MAJH;AAKLC,MAAAA,UAAU,EAAE,MALP;AAMLC,MAAAA,MAAM,sBAAeT,KAAK,GAAG,KAAH,GAAW,SAA/B,CAND;AAOLU,MAAAA,SAAS,EAAE,YAPN;AAQLC,MAAAA,YAAY,EAAE,KART;AASLC,MAAAA,QAAQ,EAAE,QATL;AAULC,MAAAA,OAAO,EAAE;AAVJ,KADT;AAaE,IAAA,uBAAuB,EAAE;AACvBC,MAAAA,MAAM,EAAEf,KAAK,IAAI;AADM;AAb3B,IAXF,CADF;AA+BD,CAlCD;;AAoCAH,2BAA2B,CAACmB,SAA5B,GAAwC;AACtCjB,EAAAA,UAAU,EAAEkB,sBAAUC,MADgB;AAEtClB,EAAAA,KAAK,EAAEiB,sBAAUE;AAFqB,CAAxC;eAKetB,2B","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst ExplicitConstructedResponse = (props) => {\n const { attributes, value, error } = props;\n\n return (\n <span\n {...attributes}\n style={{\n display: 'inline-flex',\n minHeight: '50px',\n minWidth: '178px',\n position: 'relative',\n margin: '0 5px',\n cursor: 'pointer',\n }}\n >\n <div\n style={{\n display: 'inline-flex',\n minWidth: '178px',\n minHeight: '36px',\n height: '36px',\n background: '#FFF',\n border: `1px solid ${error ? 'red' : '#C0C3CF'}`,\n boxSizing: 'border-box',\n borderRadius: '3px',\n overflow: 'hidden',\n padding: '8px',\n }}\n dangerouslySetInnerHTML={{\n __html: value || '<div>&nbsp;</div>',\n }}\n />\n </span>\n );\n};\n\nExplicitConstructedResponse.propTypes = {\n attributes: PropTypes.object,\n value: PropTypes.string,\n};\n\nexport default ExplicitConstructedResponse;\n"],"file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/plugins/respArea/icons/index.jsx"],"names":["getRotate","direction","Chevron","props","style","rotate","transform","propTypes","PropTypes","string","object","GripIcon","margin","ToolbarIcon","icon","fontFamily","fontSize","fontWeight","lineHeight","position","top","width","height","whiteSpace","classes"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,SAAS,GAAG,SAAZA,SAAY,CAAAC,SAAS,EAAI;AAC7B,UAAQA,SAAR;AACE,SAAK,MAAL;AACE,aAAO,EAAP;;AACF,SAAK,IAAL;AACE,aAAO,CAAC,EAAR;;AACF,SAAK,MAAL;AACE,aAAO,GAAP;;AACF;AACE,aAAO,CAAP;AARJ;AAUD,CAXD;;AAaO,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAAAC,KAAK,EAAI;AAC9B,MAAQF,SAAR,GAA6BE,KAA7B,CAAQF,SAAR;AAAA,MAAmBG,KAAnB,GAA6BD,KAA7B,CAAmBC,KAAnB;AACA,MAAMC,MAAM,GAAGL,SAAS,CAACC,SAAD,CAAxB;AAEA,sBACE,gCAAC,wBAAD;AACE,IAAA,KAAK;AACHK,MAAAA,SAAS,mBAAYD,MAAZ;AADN,OAEAD,KAFA;AADP,IADF;AAQD,CAZM;;;AAcPF,OAAO,CAACK,SAAR,GAAoB;AAClBN,EAAAA,SAAS,EAAEO,sBAAUC,MADH;AAElBL,EAAAA,KAAK,EAAEI,sBAAUE;AAFC,CAApB;;AAKO,IAAMC,QAAQ,GAAG,SAAXA,QAAW,OAAe;AAAA,MAAZP,KAAY,QAAZA,KAAY;AACrC,sBACE;AAAM,IAAA,KAAK,EAAEA;AAAb,kBACE,gCAAC,oBAAD;AACE,IAAA,KAAK,EAAE;AACLQ,MAAAA,MAAM,EAAE;AADH;AADT,IADF,eAME,gCAAC,oBAAD,OANF,CADF;AAUD,CAXM;;;AAaPD,QAAQ,CAACJ,SAAT,GAAqB;AACnBH,EAAAA,KAAK,EAAEI,sBAAUE;AADE,CAArB;AAIO,IAAMG,WAAW,GAAG,wBAAW;AACpCC,EAAAA,IAAI,EAAE;AACJC,IAAAA,UAAU,EAAE,yBADR;AAEJC,IAAAA,QAAQ,EAAE,MAFN;AAGJC,IAAAA,UAAU,EAAE,MAHR;AAIJC,IAAAA,UAAU,EAAE,MAJR;AAKJC,IAAAA,QAAQ,EAAE,UALN;AAMJC,IAAAA,GAAG,EAAE,KAND;AAOJC,IAAAA,KAAK,EAAE,OAPH;AAQJC,IAAAA,MAAM,EAAE,MARJ;AASJC,IAAAA,UAAU,EAAE;AATR;AAD8B,CAAX,EAYxB;AAAA,MAAGC,OAAH,SAAGA,OAAH;AAAA,sBAAiB;AAAK,IAAA,SAAS,EAAEA,OAAO,CAACV;AAAxB,uBAAjB;AAAA,CAZwB,CAApB","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport ChevronRight from '@material-ui/icons/ChevronRight';\nimport MoreVert from '@material-ui/icons/MoreVert';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst getRotate = direction => {\n switch (direction) {\n case 'down':\n return 90;\n case 'up':\n return -90;\n case 'left':\n return 180;\n default:\n return 0;\n }\n};\n\nexport const Chevron = props => {\n const { direction, style } = props;\n const rotate = getRotate(direction);\n\n return (\n <ChevronRight\n style={{\n transform: `rotate(${rotate}deg)`,\n ...style\n }}\n />\n );\n};\n\nChevron.propTypes = {\n direction: PropTypes.string,\n style: PropTypes.object\n};\n\nexport const GripIcon = ({ style }) => {\n return (\n <span style={style}>\n <MoreVert\n style={{\n margin: '0 -16px'\n }}\n />\n <MoreVert />\n </span>\n );\n};\n\nGripIcon.propTypes = {\n style: PropTypes.object\n};\n\nexport const ToolbarIcon = withStyles({\n icon: {\n fontFamily: 'Cerebri Sans !important',\n fontSize: '14px',\n fontWeight: 'bold',\n lineHeight: '14px',\n position: 'relative',\n top: '7px',\n width: '110px',\n height: '28px',\n whiteSpace: 'nowrap'\n }\n})(({ classes }) => <div className={classes.icon}>+ Response Area</div>);\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/plugins/respArea/icons/index.jsx"],"names":["getRotate","direction","Chevron","props","style","rotate","transform","propTypes","PropTypes","string","object","GripIcon","margin","ToolbarIcon","icon","fontFamily","fontSize","fontWeight","lineHeight","position","top","width","height","whiteSpace","classes"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,SAAS,GAAG,SAAZA,SAAY,CAACC,SAAD,EAAe;AAC/B,UAAQA,SAAR;AACE,SAAK,MAAL;AACE,aAAO,EAAP;;AACF,SAAK,IAAL;AACE,aAAO,CAAC,EAAR;;AACF,SAAK,MAAL;AACE,aAAO,GAAP;;AACF;AACE,aAAO,CAAP;AARJ;AAUD,CAXD;;AAaO,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAACC,KAAD,EAAW;AAChC,MAAQF,SAAR,GAA6BE,KAA7B,CAAQF,SAAR;AAAA,MAAmBG,KAAnB,GAA6BD,KAA7B,CAAmBC,KAAnB;AACA,MAAMC,MAAM,GAAGL,SAAS,CAACC,SAAD,CAAxB;AAEA,sBACE,gCAAC,wBAAD;AACE,IAAA,KAAK;AACHK,MAAAA,SAAS,mBAAYD,MAAZ;AADN,OAEAD,KAFA;AADP,IADF;AAQD,CAZM;;;AAcPF,OAAO,CAACK,SAAR,GAAoB;AAClBN,EAAAA,SAAS,EAAEO,sBAAUC,MADH;AAElBL,EAAAA,KAAK,EAAEI,sBAAUE;AAFC,CAApB;;AAKO,IAAMC,QAAQ,GAAG,SAAXA,QAAW,OAAe;AAAA,MAAZP,KAAY,QAAZA,KAAY;AACrC,sBACE;AAAM,IAAA,KAAK,EAAEA;AAAb,kBACE,gCAAC,oBAAD;AACE,IAAA,KAAK,EAAE;AACLQ,MAAAA,MAAM,EAAE;AADH;AADT,IADF,eAME,gCAAC,oBAAD,OANF,CADF;AAUD,CAXM;;;AAaPD,QAAQ,CAACJ,SAAT,GAAqB;AACnBH,EAAAA,KAAK,EAAEI,sBAAUE;AADE,CAArB;AAIO,IAAMG,WAAW,GAAG,wBAAW;AACpCC,EAAAA,IAAI,EAAE;AACJC,IAAAA,UAAU,EAAE,yBADR;AAEJC,IAAAA,QAAQ,EAAE,MAFN;AAGJC,IAAAA,UAAU,EAAE,MAHR;AAIJC,IAAAA,UAAU,EAAE,MAJR;AAKJC,IAAAA,QAAQ,EAAE,UALN;AAMJC,IAAAA,GAAG,EAAE,KAND;AAOJC,IAAAA,KAAK,EAAE,OAPH;AAQJC,IAAAA,MAAM,EAAE,MARJ;AASJC,IAAAA,UAAU,EAAE;AATR;AAD8B,CAAX,EAYxB;AAAA,MAAGC,OAAH,SAAGA,OAAH;AAAA,sBAAiB;AAAK,IAAA,SAAS,EAAEA,OAAO,CAACV;AAAxB,uBAAjB;AAAA,CAZwB,CAApB","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport ChevronRight from '@material-ui/icons/ChevronRight';\nimport MoreVert from '@material-ui/icons/MoreVert';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst getRotate = (direction) => {\n switch (direction) {\n case 'down':\n return 90;\n case 'up':\n return -90;\n case 'left':\n return 180;\n default:\n return 0;\n }\n};\n\nexport const Chevron = (props) => {\n const { direction, style } = props;\n const rotate = getRotate(direction);\n\n return (\n <ChevronRight\n style={{\n transform: `rotate(${rotate}deg)`,\n ...style,\n }}\n />\n );\n};\n\nChevron.propTypes = {\n direction: PropTypes.string,\n style: PropTypes.object,\n};\n\nexport const GripIcon = ({ style }) => {\n return (\n <span style={style}>\n <MoreVert\n style={{\n margin: '0 -16px',\n }}\n />\n <MoreVert />\n </span>\n );\n};\n\nGripIcon.propTypes = {\n style: PropTypes.object,\n};\n\nexport const ToolbarIcon = withStyles({\n icon: {\n fontFamily: 'Cerebri Sans !important',\n fontSize: '14px',\n fontWeight: 'bold',\n lineHeight: '14px',\n position: 'relative',\n top: '7px',\n width: '110px',\n height: '28px',\n whiteSpace: 'nowrap',\n },\n})(({ classes }) => <div className={classes.icon}>+ Response Area</div>);\n"],"file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/respArea/index.jsx"],"names":["log","lastIndexMap","elTypesMap","elTypesArray","Object","values","ResponseAreaPlugin","opts","isOfCurrentType","d","type","toolbar","icon","buttonStyles","margin","onClick","value","onChange","change","currentRespAreaList","document","filterDescendants","size","maxResponseAreas","replace","prevIndex","newIndex","newInline","selection","startKey","endKey","insertInline","lastText","getLastText","parentNode","getParent","key","index","nodes","indexOf","isVoid","insertNodeByKey","nextText","getNextText","moveFocusTo","moveAnchorTo","customToolbar","respAreaToolbar","supports","node","object","showDone","name","filterPlugins","plugins","filter","p","deleteNode","e","preventDefault","removeNodeByKey","renderNode","props","attributes","n","data","toJSON","error","editor","forEachDescendant","parseInt","get","oldRespAreaList","disabled","arrayToFilter","arrayToUseForFilter","elementsWithChangedStatus","find","onHandleAreaChange","onDrop","event","closestEl","target","closest","inline","findDescendant","dataset","serialization","deserialize","el","id","inTable","serialize"],"mappings":"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","sourcesContent":["import React from 'react';\nimport debug from 'debug';\nimport isUndefined from 'lodash/isUndefined';\n\nimport InlineDropdown from './inline-dropdown';\nimport DragInTheBlank from './drag-in-the-blank';\nimport ExplicitConstructedResponse from './explicit-constructed-response';\nimport { getDefaultElement } from './utils';\nimport { ToolbarIcon } from './icons';\n\nconst log = debug('@pie-lib:editable-html:plugins:respArea');\n\nconst lastIndexMap = {};\nconst elTypesMap = {\n 'inline-dropdown': 'inline_dropdown',\n 'explicit-constructed-response': 'explicit_constructed_response',\n 'drag-in-the-blank': 'drag_in_the_blank'\n};\nconst elTypesArray = Object.values(elTypesMap);\n\nexport default function ResponseAreaPlugin(opts) {\n const isOfCurrentType = d => d.type === opts.type || d.type === elTypesMap[opts.type];\n\n const toolbar = {\n icon: <ToolbarIcon />,\n buttonStyles: {\n margin: '0 20px 0 auto'\n },\n onClick: (value, onChange) => {\n log('[toolbar] onClick');\n const change = value.change();\n const currentRespAreaList = change.value.document.filterDescendants(isOfCurrentType);\n\n if (currentRespAreaList.size >= opts.maxResponseAreas) {\n return;\n }\n\n const type = opts.type.replace(/-/g, '_');\n const prevIndex = lastIndexMap[type];\n const newIndex = prevIndex === 0 ? prevIndex : prevIndex + 1;\n const newInline = getDefaultElement(opts, newIndex);\n\n lastIndexMap[type] += 1;\n\n if (newInline) {\n if (change.value.selection.startKey || change.value.selection.endKey) {\n change.insertInline(newInline);\n } else {\n // If the markup is empty and there's no focus\n const lastText = value.document.getLastText();\n\n if (!lastText) {\n return;\n }\n const parentNode = value.document.getParent(lastText.key);\n\n if (parentNode) {\n const index = parentNode.nodes.indexOf(lastText.key);\n\n if (parentNode.isVoid) return;\n\n change.insertNodeByKey(parentNode.key, index + 1, newInline);\n }\n }\n\n if (newInline.type === 'drag_in_the_blank') {\n const nextText = change.value.document.getNextText(newInline.key);\n\n if (nextText) {\n change.moveFocusTo(nextText.key, 0).moveAnchorTo(nextText.key, 0);\n }\n }\n\n onChange(change);\n }\n },\n customToolbar: opts.respAreaToolbar,\n supports: node => node.object === 'inline' && elTypesArray.indexOf(node.type) >= 0,\n showDone: false\n };\n\n return {\n name: 'response_area',\n toolbar,\n filterPlugins: (node, plugins) => {\n if (node.type === 'explicit_constructed_response' || node.type === 'drag_in_the_blank') {\n return [];\n }\n\n return plugins.filter(p => p.name !== 'response_area');\n },\n deleteNode: (e, node, value, onChange) => {\n e.preventDefault();\n\n const change = value.change().removeNodeByKey(node.key);\n\n onChange(change);\n },\n renderNode(props) {\n const { attributes, node: n } = props;\n\n if (n.type === 'explicit_constructed_response') {\n const data = n.data.toJSON();\n let error;\n\n if (opts.error) {\n error = opts.error();\n }\n\n return (\n <ExplicitConstructedResponse\n attributes={attributes}\n value={data.value}\n error={error && error[data.index] && error[data.index][0]}\n />\n );\n }\n\n if (n.type === 'drag_in_the_blank') {\n const data = n.data.toJSON();\n\n return (\n <DragInTheBlank attributes={attributes} data={data} n={n} nodeProps={props} opts={opts} />\n );\n }\n\n if (n.type === 'inline_dropdown') {\n const data = n.data.toJSON();\n\n return <InlineDropdown attributes={attributes} selectedItem={data.value} />;\n }\n },\n onChange(change, editor) {\n const type = opts.type.replace(/-/g, '_');\n\n if (isUndefined(lastIndexMap[type])) {\n lastIndexMap[type] = 0;\n\n change.value.document.forEachDescendant(d => {\n if (d.type === type) {\n const newIndex = parseInt(d.data.get('index'), 10);\n\n if (newIndex > lastIndexMap[type]) {\n lastIndexMap[type] = newIndex;\n }\n }\n });\n }\n\n if (!editor.value) {\n return;\n }\n\n const currentRespAreaList = change.value.document.filterDescendants(isOfCurrentType);\n const oldRespAreaList = editor.value.document.filterDescendants(isOfCurrentType);\n\n if (currentRespAreaList.size >= opts.maxResponseAreas) {\n toolbar.disabled = true;\n } else {\n toolbar.disabled = false;\n }\n\n const arrayToFilter =\n oldRespAreaList.size > currentRespAreaList.size ? oldRespAreaList : currentRespAreaList;\n const arrayToUseForFilter =\n arrayToFilter === oldRespAreaList ? currentRespAreaList : oldRespAreaList;\n\n const elementsWithChangedStatus = arrayToFilter.filter(\n d => !arrayToUseForFilter.find(e => e.data.get('index') === d.data.get('index'))\n );\n\n if (elementsWithChangedStatus.size && oldRespAreaList.size > currentRespAreaList.size) {\n opts.onHandleAreaChange(elementsWithChangedStatus);\n }\n },\n onDrop(event, change, editor) {\n const closestEl = event.target.closest('[data-key]');\n const inline = editor.value.document.findDescendant(d => d.key === closestEl.dataset.key);\n\n if (inline.type === 'drag_in_the_blank') {\n return false;\n }\n }\n };\n}\n\nexport const serialization = {\n deserialize(el) {\n const type = el.dataset && el.dataset.type;\n\n switch (type) {\n case 'inline_dropdown':\n return {\n object: 'inline',\n type: 'inline_dropdown',\n isVoid: true,\n data: {\n index: el.dataset.index,\n value: el.dataset.value\n }\n };\n case 'explicit_constructed_response':\n return {\n object: 'inline',\n type: 'explicit_constructed_response',\n isVoid: true,\n data: {\n index: el.dataset.index,\n value: el.dataset.value\n }\n };\n case 'drag_in_the_blank':\n return {\n object: 'inline',\n type: 'drag_in_the_blank',\n isVoid: true,\n data: {\n index: el.dataset.index,\n id: el.dataset.id,\n value: el.dataset.value,\n inTable: el.dataset.inTable\n }\n };\n }\n },\n serialize(object) {\n if (object.object !== 'inline') {\n return;\n }\n\n switch (object.type) {\n case 'inline_dropdown': {\n const data = object.data.toJSON();\n\n return <span data-type=\"inline_dropdown\" data-index={data.index} data-value={data.value} />;\n }\n case 'explicit_constructed_response': {\n const data = object.data.toJSON();\n\n return (\n <span\n data-type=\"explicit_constructed_response\"\n data-index={data.index}\n data-value={data.value}\n />\n );\n }\n case 'drag_in_the_blank': {\n const data = object.data.toJSON();\n\n return (\n <span\n data-type=\"drag_in_the_blank\"\n data-index={data.index}\n data-id={data.id}\n data-value={data.value}\n data-in-table={data.inTable}\n />\n );\n }\n }\n }\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/plugins/respArea/index.jsx"],"names":["log","lastIndexMap","elTypesMap","elTypesArray","Object","values","ResponseAreaPlugin","opts","isOfCurrentType","d","type","toolbar","icon","buttonStyles","margin","onClick","value","onChange","change","currentRespAreaList","document","filterDescendants","size","maxResponseAreas","replace","prevIndex","newIndex","newInline","selection","startKey","endKey","insertInline","lastText","getLastText","parentNode","getParent","key","index","nodes","indexOf","isVoid","insertNodeByKey","nextText","getNextText","moveFocusTo","moveAnchorTo","customToolbar","respAreaToolbar","supports","node","object","showDone","name","filterPlugins","plugins","filter","p","deleteNode","e","preventDefault","removeNodeByKey","renderNode","props","attributes","n","data","toJSON","error","editor","forEachDescendant","parseInt","get","oldRespAreaList","disabled","arrayToFilter","arrayToUseForFilter","elementsWithChangedStatus","find","onHandleAreaChange","onDrop","event","closestEl","target","closest","inline","findDescendant","dataset","serialization","deserialize","el","id","inTable","serialize"],"mappings":"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","sourcesContent":["import React from 'react';\nimport debug from 'debug';\nimport isUndefined from 'lodash/isUndefined';\n\nimport InlineDropdown from './inline-dropdown';\nimport DragInTheBlank from './drag-in-the-blank';\nimport ExplicitConstructedResponse from './explicit-constructed-response';\nimport { getDefaultElement } from './utils';\nimport { ToolbarIcon } from './icons';\n\nconst log = debug('@pie-lib:editable-html:plugins:respArea');\n\nconst lastIndexMap = {};\nconst elTypesMap = {\n 'inline-dropdown': 'inline_dropdown',\n 'explicit-constructed-response': 'explicit_constructed_response',\n 'drag-in-the-blank': 'drag_in_the_blank',\n};\nconst elTypesArray = Object.values(elTypesMap);\n\nexport default function ResponseAreaPlugin(opts) {\n const isOfCurrentType = (d) => d.type === opts.type || d.type === elTypesMap[opts.type];\n\n const toolbar = {\n icon: <ToolbarIcon />,\n buttonStyles: {\n margin: '0 20px 0 auto',\n },\n onClick: (value, onChange) => {\n log('[toolbar] onClick');\n const change = value.change();\n const currentRespAreaList = change.value.document.filterDescendants(isOfCurrentType);\n\n if (currentRespAreaList.size >= opts.maxResponseAreas) {\n return;\n }\n\n const type = opts.type.replace(/-/g, '_');\n const prevIndex = lastIndexMap[type];\n const newIndex = prevIndex === 0 ? prevIndex : prevIndex + 1;\n const newInline = getDefaultElement(opts, newIndex);\n\n lastIndexMap[type] += 1;\n\n if (newInline) {\n if (change.value.selection.startKey || change.value.selection.endKey) {\n change.insertInline(newInline);\n } else {\n // If the markup is empty and there's no focus\n const lastText = value.document.getLastText();\n\n if (!lastText) {\n return;\n }\n const parentNode = value.document.getParent(lastText.key);\n\n if (parentNode) {\n const index = parentNode.nodes.indexOf(lastText.key);\n\n if (parentNode.isVoid) return;\n\n change.insertNodeByKey(parentNode.key, index + 1, newInline);\n }\n }\n\n if (newInline.type === 'drag_in_the_blank') {\n const nextText = change.value.document.getNextText(newInline.key);\n\n if (nextText) {\n change.moveFocusTo(nextText.key, 0).moveAnchorTo(nextText.key, 0);\n }\n }\n\n onChange(change);\n }\n },\n customToolbar: opts.respAreaToolbar,\n supports: (node) => node.object === 'inline' && elTypesArray.indexOf(node.type) >= 0,\n showDone: false,\n };\n\n return {\n name: 'response_area',\n toolbar,\n filterPlugins: (node, plugins) => {\n if (node.type === 'explicit_constructed_response' || node.type === 'drag_in_the_blank') {\n return [];\n }\n\n return plugins.filter((p) => p.name !== 'response_area');\n },\n deleteNode: (e, node, value, onChange) => {\n e.preventDefault();\n\n const change = value.change().removeNodeByKey(node.key);\n\n onChange(change);\n },\n renderNode(props) {\n const { attributes, node: n } = props;\n\n if (n.type === 'explicit_constructed_response') {\n const data = n.data.toJSON();\n let error;\n\n if (opts.error) {\n error = opts.error();\n }\n\n return (\n <ExplicitConstructedResponse\n attributes={attributes}\n value={data.value}\n error={error && error[data.index] && error[data.index][0]}\n />\n );\n }\n\n if (n.type === 'drag_in_the_blank') {\n const data = n.data.toJSON();\n\n return <DragInTheBlank attributes={attributes} data={data} n={n} nodeProps={props} opts={opts} />;\n }\n\n if (n.type === 'inline_dropdown') {\n const data = n.data.toJSON();\n\n return <InlineDropdown attributes={attributes} selectedItem={data.value} />;\n }\n },\n onChange(change, editor) {\n const type = opts.type.replace(/-/g, '_');\n\n if (isUndefined(lastIndexMap[type])) {\n lastIndexMap[type] = 0;\n\n change.value.document.forEachDescendant((d) => {\n if (d.type === type) {\n const newIndex = parseInt(d.data.get('index'), 10);\n\n if (newIndex > lastIndexMap[type]) {\n lastIndexMap[type] = newIndex;\n }\n }\n });\n }\n\n if (!editor.value) {\n return;\n }\n\n const currentRespAreaList = change.value.document.filterDescendants(isOfCurrentType);\n const oldRespAreaList = editor.value.document.filterDescendants(isOfCurrentType);\n\n if (currentRespAreaList.size >= opts.maxResponseAreas) {\n toolbar.disabled = true;\n } else {\n toolbar.disabled = false;\n }\n\n const arrayToFilter = oldRespAreaList.size > currentRespAreaList.size ? oldRespAreaList : currentRespAreaList;\n const arrayToUseForFilter = arrayToFilter === oldRespAreaList ? currentRespAreaList : oldRespAreaList;\n\n const elementsWithChangedStatus = arrayToFilter.filter(\n (d) => !arrayToUseForFilter.find((e) => e.data.get('index') === d.data.get('index')),\n );\n\n if (elementsWithChangedStatus.size && oldRespAreaList.size > currentRespAreaList.size) {\n opts.onHandleAreaChange(elementsWithChangedStatus);\n }\n },\n onDrop(event, change, editor) {\n const closestEl = event.target.closest('[data-key]');\n const inline = editor.value.document.findDescendant((d) => d.key === closestEl.dataset.key);\n\n if (inline.type === 'drag_in_the_blank') {\n return false;\n }\n },\n };\n}\n\nexport const serialization = {\n deserialize(el) {\n const type = el.dataset && el.dataset.type;\n\n switch (type) {\n case 'inline_dropdown':\n return {\n object: 'inline',\n type: 'inline_dropdown',\n isVoid: true,\n data: {\n index: el.dataset.index,\n value: el.dataset.value,\n },\n };\n case 'explicit_constructed_response':\n return {\n object: 'inline',\n type: 'explicit_constructed_response',\n isVoid: true,\n data: {\n index: el.dataset.index,\n value: el.dataset.value,\n },\n };\n case 'drag_in_the_blank':\n return {\n object: 'inline',\n type: 'drag_in_the_blank',\n isVoid: true,\n data: {\n index: el.dataset.index,\n id: el.dataset.id,\n value: el.dataset.value,\n inTable: el.dataset.inTable,\n },\n };\n }\n },\n serialize(object) {\n if (object.object !== 'inline') {\n return;\n }\n\n switch (object.type) {\n case 'inline_dropdown': {\n const data = object.data.toJSON();\n\n return <span data-type=\"inline_dropdown\" data-index={data.index} data-value={data.value} />;\n }\n case 'explicit_constructed_response': {\n const data = object.data.toJSON();\n\n return <span data-type=\"explicit_constructed_response\" data-index={data.index} data-value={data.value} />;\n }\n case 'drag_in_the_blank': {\n const data = object.data.toJSON();\n\n return (\n <span\n data-type=\"drag_in_the_blank\"\n data-index={data.index}\n data-id={data.id}\n data-value={data.value}\n data-in-table={data.inTable}\n />\n );\n }\n }\n },\n};\n"],"file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/plugins/respArea/inline-dropdown/index.jsx"],"names":["InlineDropdown","attributes","selectedItem","html","display","height","margin","cursor","minWidth","background","border","boxSizing","borderRadius","position","flex","overflow","padding","whiteSpace","textOverflow","lineHeight","__html","top","right","propTypes","PropTypes","object","oneOfType","string"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,OAAkC;AAAA,MAA/BC,UAA+B,QAA/BA,UAA+B;AAAA,MAAnBC,YAAmB,QAAnBA,YAAmB;AACvD;AACA;AACA,MAAMC,IAAI,GAAGD,YAAY,IAAI,kBAA7B;AAEA,sBACE,sEACMD,UADN;AAEE,IAAA,KAAK,EAAE;AACLG,MAAAA,OAAO,EAAE,aADJ;AAELC,MAAAA,MAAM,EAAE,MAFH;AAGLC,MAAAA,MAAM,EAAE,OAHH;AAILC,MAAAA,MAAM,EAAE;AAJH;AAFT,mBASE;AACE,IAAA,KAAK,EAAE;AACLH,MAAAA,OAAO,EAAE,aADJ;AAELI,MAAAA,QAAQ,EAAE,OAFL;AAGLH,MAAAA,MAAM,EAAE,MAHH;AAILI,MAAAA,UAAU,EAAE,MAJP;AAKLC,MAAAA,MAAM,EAAE,mBALH;AAMLC,MAAAA,SAAS,EAAE,YANN;AAOLC,MAAAA,YAAY,EAAE,KAPT;AAQLC,MAAAA,QAAQ,EAAE;AARL;AADT,kBAYE;AACE,IAAA,KAAK,EAAE;AACLC,MAAAA,IAAI,EAAE,CADD;AAELC,MAAAA,QAAQ,EAAE,QAFL;AAGLC,MAAAA,OAAO,EAAE,cAHJ;AAILC,MAAAA,UAAU,EAAE,QAJP;AAKLC,MAAAA,YAAY,EAAE,UALT;AAMLC,MAAAA,UAAU,EAAE;AANP,KADT;AASE,IAAA,uBAAuB,EAAE;AACvBC,MAAAA,MAAM,EAAEjB;AADe;AAT3B,IAZF,eAyBE,gCAAC,cAAD;AACE,IAAA,SAAS,EAAC,MADZ;AAEE,IAAA,KAAK,EAAE;AACLU,MAAAA,QAAQ,EAAE,UADL;AAELQ,MAAAA,GAAG,EAAE,KAFA;AAGLC,MAAAA,KAAK,EAAE;AAHF;AAFT,IAzBF,CATF,CADF;AA8CD,CAnDD;;AAqDAtB,cAAc,CAACuB,SAAf,GAA2B;AACzBtB,EAAAA,UAAU,EAAEuB,sBAAUC,MADG;AAEzBvB,EAAAA,YAAY,EAAEsB,sBAAUE,SAAV,CAAoB,CAACF,sBAAUG,MAAX,EAAmBH,sBAAUC,MAA7B,CAApB;AAFW,CAA3B;eAKezB,c","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Chevron } from '../icons';\n\nconst InlineDropdown = ({ attributes, selectedItem }) => {\n // TODO: Investigate\n // Needed because items with values inside have different positioning for some reason\n const html = selectedItem || '<div>&nbsp</div>';\n\n return (\n <span\n {...attributes}\n style={{\n display: 'inline-flex',\n height: '50px',\n margin: '0 5px',\n cursor: 'pointer'\n }}\n >\n <div\n style={{\n display: 'inline-flex',\n minWidth: '178px',\n height: '36px',\n background: '#FFF',\n border: '1px solid #C0C3CF',\n boxSizing: 'border-box',\n borderRadius: '3px',\n position: 'relative'\n }}\n >\n <div\n style={{\n flex: 1,\n overflow: 'hidden',\n padding: '0 25px 0 8px',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n lineHeight: '35px'\n }}\n dangerouslySetInnerHTML={{\n __html: html\n }}\n />\n <Chevron\n direction=\"down\"\n style={{\n position: 'absolute',\n top: '5px',\n right: '5px'\n }}\n />\n </div>\n </span>\n );\n};\n\nInlineDropdown.propTypes = {\n attributes: PropTypes.object,\n selectedItem: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n};\n\nexport default InlineDropdown;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/plugins/respArea/inline-dropdown/index.jsx"],"names":["InlineDropdown","attributes","selectedItem","html","display","height","margin","cursor","minWidth","background","border","boxSizing","borderRadius","position","flex","overflow","padding","whiteSpace","textOverflow","lineHeight","__html","top","right","propTypes","PropTypes","object","oneOfType","string"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,OAAkC;AAAA,MAA/BC,UAA+B,QAA/BA,UAA+B;AAAA,MAAnBC,YAAmB,QAAnBA,YAAmB;AACvD;AACA;AACA,MAAMC,IAAI,GAAGD,YAAY,IAAI,kBAA7B;AAEA,sBACE,sEACMD,UADN;AAEE,IAAA,KAAK,EAAE;AACLG,MAAAA,OAAO,EAAE,aADJ;AAELC,MAAAA,MAAM,EAAE,MAFH;AAGLC,MAAAA,MAAM,EAAE,OAHH;AAILC,MAAAA,MAAM,EAAE;AAJH;AAFT,mBASE;AACE,IAAA,KAAK,EAAE;AACLH,MAAAA,OAAO,EAAE,aADJ;AAELI,MAAAA,QAAQ,EAAE,OAFL;AAGLH,MAAAA,MAAM,EAAE,MAHH;AAILI,MAAAA,UAAU,EAAE,MAJP;AAKLC,MAAAA,MAAM,EAAE,mBALH;AAMLC,MAAAA,SAAS,EAAE,YANN;AAOLC,MAAAA,YAAY,EAAE,KAPT;AAQLC,MAAAA,QAAQ,EAAE;AARL;AADT,kBAYE;AACE,IAAA,KAAK,EAAE;AACLC,MAAAA,IAAI,EAAE,CADD;AAELC,MAAAA,QAAQ,EAAE,QAFL;AAGLC,MAAAA,OAAO,EAAE,cAHJ;AAILC,MAAAA,UAAU,EAAE,QAJP;AAKLC,MAAAA,YAAY,EAAE,UALT;AAMLC,MAAAA,UAAU,EAAE;AANP,KADT;AASE,IAAA,uBAAuB,EAAE;AACvBC,MAAAA,MAAM,EAAEjB;AADe;AAT3B,IAZF,eAyBE,gCAAC,cAAD;AACE,IAAA,SAAS,EAAC,MADZ;AAEE,IAAA,KAAK,EAAE;AACLU,MAAAA,QAAQ,EAAE,UADL;AAELQ,MAAAA,GAAG,EAAE,KAFA;AAGLC,MAAAA,KAAK,EAAE;AAHF;AAFT,IAzBF,CATF,CADF;AA8CD,CAnDD;;AAqDAtB,cAAc,CAACuB,SAAf,GAA2B;AACzBtB,EAAAA,UAAU,EAAEuB,sBAAUC,MADG;AAEzBvB,EAAAA,YAAY,EAAEsB,sBAAUE,SAAV,CAAoB,CAACF,sBAAUG,MAAX,EAAmBH,sBAAUC,MAA7B,CAApB;AAFW,CAA3B;eAKezB,c","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Chevron } from '../icons';\n\nconst InlineDropdown = ({ attributes, selectedItem }) => {\n // TODO: Investigate\n // Needed because items with values inside have different positioning for some reason\n const html = selectedItem || '<div>&nbsp</div>';\n\n return (\n <span\n {...attributes}\n style={{\n display: 'inline-flex',\n height: '50px',\n margin: '0 5px',\n cursor: 'pointer',\n }}\n >\n <div\n style={{\n display: 'inline-flex',\n minWidth: '178px',\n height: '36px',\n background: '#FFF',\n border: '1px solid #C0C3CF',\n boxSizing: 'border-box',\n borderRadius: '3px',\n position: 'relative',\n }}\n >\n <div\n style={{\n flex: 1,\n overflow: 'hidden',\n padding: '0 25px 0 8px',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n lineHeight: '35px',\n }}\n dangerouslySetInnerHTML={{\n __html: html,\n }}\n />\n <Chevron\n direction=\"down\"\n style={{\n position: 'absolute',\n top: '5px',\n right: '5px',\n }}\n />\n </div>\n </span>\n );\n};\n\nInlineDropdown.propTypes = {\n attributes: PropTypes.object,\n selectedItem: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n};\n\nexport default InlineDropdown;\n"],"file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/respArea/utils.jsx"],"names":["isNumber","val","isNaN","parseFloat","isFinite","insertSnackBar","message","prevSnacks","document","querySelectorAll","forEach","s","remove","newEl","createElement","className","el","vertical","horizontal","ReactDOM","render","body","appendChild","setTimeout","defaultECR","index","Inline","create","type","isVoid","data","defaultDIB","opts","duplicates","options","value","defaultIDD","object","getDefaultElement"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,CAAAC,GAAG;AAAA,SAAI,CAACC,KAAK,CAACC,UAAU,CAACF,GAAD,CAAX,CAAN,IAA2BG,QAAQ,CAACH,GAAD,CAAvC;AAAA,CAApB;;;;AAEA,IAAMI,cAAc,GAAG,SAAjBA,cAAiB,CAAAC,OAAO,EAAI;AACvC,MAAMC,UAAU,GAAGC,QAAQ,CAACC,gBAAT,CAA0B,sBAA1B,CAAnB;AAEAF,EAAAA,UAAU,CAACG,OAAX,CAAmB,UAAAC,CAAC;AAAA,WAAIA,CAAC,CAACC,MAAF,EAAJ;AAAA,GAApB;AAEA,MAAMC,KAAK,GAAGL,QAAQ,CAACM,aAAT,CAAuB,KAAvB,CAAd;AAEAD,EAAAA,KAAK,CAACE,SAAN,GAAkB,qBAAlB;;AAEA,MAAMC,EAAE,gBACN,gCAAC,oBAAD;AACE,IAAA,YAAY,EAAE;AAAEC,MAAAA,QAAQ,EAAE,KAAZ;AAAmBC,MAAAA,UAAU,EAAE;AAA/B,KADhB;AAEE,IAAA,IAAI,EAAE,IAFR;AAGE,IAAA,YAAY,EAAE;AACZ,0BAAoB;AADR,KAHhB;AAME,IAAA,OAAO,eAAE;AAAM,MAAA,EAAE,EAAC;AAAT,OAAuBZ,OAAvB;AANX,IADF;;AAWAa,uBAASC,MAAT,CAAgBJ,EAAhB,EAAoBH,KAApB;;AAEAL,EAAAA,QAAQ,CAACa,IAAT,CAAcC,WAAd,CAA0BT,KAA1B;AAEAU,EAAAA,UAAU,CAAC,YAAM;AACfV,IAAAA,KAAK,CAACD,MAAN;AACD,GAFS,EAEP,IAFO,CAAV;AAGD,CA3BM;;;;AA6BA,IAAMY,UAAU,GAAG,SAAbA,UAAa,CAAAC,KAAK;AAAA,SAC7BC,cAAOC,MAAP,CAAc;AACZC,IAAAA,IAAI,EAAE,+BADM;AAEZC,IAAAA,MAAM,EAAE,IAFI;AAGZC,IAAAA,IAAI,EAAE;AACJL,MAAAA,KAAK,EAALA;AADI;AAHM,GAAd,CAD6B;AAAA,CAAxB;;;;AASA,IAAMM,UAAU,GAAG,SAAbA,UAAa,CAACC,IAAD,EAAOP,KAAP;AAAA,SACxBC,cAAOC,MAAP,CAAc;AACZC,IAAAA,IAAI,EAAE,mBADM;AAEZC,IAAAA,MAAM,EAAE,IAFI;AAGZC,IAAAA,IAAI,EAAE;AACJL,MAAAA,KAAK,EAALA,KADI;AAEJQ,MAAAA,UAAU,EAAED,IAAI,CAACE,OAAL,CAAaD,UAFrB;AAGJE,MAAAA,KAAK,EAAE;AAHH;AAHM,GAAd,CADwB;AAAA,CAAnB;;;;AAWA,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAAAX,KAAK;AAAA,SAC7BC,cAAOC,MAAP,CAAc;AACZU,IAAAA,MAAM,EAAE,QADI;AAEZT,IAAAA,IAAI,EAAE,iBAFM;AAGZC,IAAAA,MAAM,EAAE,IAHI;AAIZC,IAAAA,IAAI,EAAE;AACJL,MAAAA,KAAK,EAALA;AADI;AAJM,GAAd,CAD6B;AAAA,CAAxB;;;;AAUA,IAAMa,iBAAiB,GAAG,SAApBA,iBAAoB,CAACN,IAAD,EAAOP,KAAP,EAAiB;AAChD,UAAQO,IAAI,CAACJ,IAAb;AACE,SAAK,+BAAL;AACE,aAAOJ,UAAU,CAACC,KAAD,CAAjB;;AACF,SAAK,mBAAL;AACE,aAAOM,UAAU,CAACC,IAAD,EAAOP,KAAP,CAAjB;;AACF;AACE;AACA,aAAOW,UAAU,CAACX,KAAD,CAAjB;AAPJ;AASD,CAVM","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Inline } from 'slate';\nimport Snackbar from '@material-ui/core/Snackbar';\n\nexport const isNumber = val => !isNaN(parseFloat(val)) && isFinite(val);\n\nexport const insertSnackBar = message => {\n const prevSnacks = document.querySelectorAll('.response-area-alert');\n\n prevSnacks.forEach(s => s.remove());\n\n const newEl = document.createElement('div');\n\n newEl.className = 'response-area-alert';\n\n const el = (\n <Snackbar\n anchorOrigin={{ vertical: 'top', horizontal: 'center' }}\n open={true}\n ContentProps={{\n 'aria-describedby': 'message-id'\n }}\n message={<span id=\"message-id\">{message}</span>}\n />\n );\n\n ReactDOM.render(el, newEl);\n\n document.body.appendChild(newEl);\n\n setTimeout(() => {\n newEl.remove();\n }, 2000);\n};\n\nexport const defaultECR = index =>\n Inline.create({\n type: 'explicit_constructed_response',\n isVoid: true,\n data: {\n index\n }\n });\n\nexport const defaultDIB = (opts, index) =>\n Inline.create({\n type: 'drag_in_the_blank',\n isVoid: true,\n data: {\n index,\n duplicates: opts.options.duplicates,\n value: null\n }\n });\n\nexport const defaultIDD = index =>\n Inline.create({\n object: 'inline',\n type: 'inline_dropdown',\n isVoid: true,\n data: {\n index\n }\n });\n\nexport const getDefaultElement = (opts, index) => {\n switch (opts.type) {\n case 'explicit-constructed-response':\n return defaultECR(index);\n case 'drag-in-the-blank':\n return defaultDIB(opts, index);\n default:\n // inline-dropdown\n return defaultIDD(index);\n }\n};\n"],"file":"utils.js"}
1
+ {"version":3,"sources":["../../../src/plugins/respArea/utils.jsx"],"names":["isNumber","val","isNaN","parseFloat","isFinite","insertSnackBar","message","prevSnacks","document","querySelectorAll","forEach","s","remove","newEl","createElement","className","el","vertical","horizontal","ReactDOM","render","body","appendChild","setTimeout","defaultECR","index","Inline","create","type","isVoid","data","defaultDIB","opts","duplicates","options","value","defaultIDD","object","getDefaultElement"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,CAACC,GAAD;AAAA,SAAS,CAACC,KAAK,CAACC,UAAU,CAACF,GAAD,CAAX,CAAN,IAA2BG,QAAQ,CAACH,GAAD,CAA5C;AAAA,CAAjB;;;;AAEA,IAAMI,cAAc,GAAG,SAAjBA,cAAiB,CAACC,OAAD,EAAa;AACzC,MAAMC,UAAU,GAAGC,QAAQ,CAACC,gBAAT,CAA0B,sBAA1B,CAAnB;AAEAF,EAAAA,UAAU,CAACG,OAAX,CAAmB,UAACC,CAAD;AAAA,WAAOA,CAAC,CAACC,MAAF,EAAP;AAAA,GAAnB;AAEA,MAAMC,KAAK,GAAGL,QAAQ,CAACM,aAAT,CAAuB,KAAvB,CAAd;AAEAD,EAAAA,KAAK,CAACE,SAAN,GAAkB,qBAAlB;;AAEA,MAAMC,EAAE,gBACN,gCAAC,oBAAD;AACE,IAAA,YAAY,EAAE;AAAEC,MAAAA,QAAQ,EAAE,KAAZ;AAAmBC,MAAAA,UAAU,EAAE;AAA/B,KADhB;AAEE,IAAA,IAAI,EAAE,IAFR;AAGE,IAAA,YAAY,EAAE;AACZ,0BAAoB;AADR,KAHhB;AAME,IAAA,OAAO,eAAE;AAAM,MAAA,EAAE,EAAC;AAAT,OAAuBZ,OAAvB;AANX,IADF;;AAWAa,uBAASC,MAAT,CAAgBJ,EAAhB,EAAoBH,KAApB;;AAEAL,EAAAA,QAAQ,CAACa,IAAT,CAAcC,WAAd,CAA0BT,KAA1B;AAEAU,EAAAA,UAAU,CAAC,YAAM;AACfV,IAAAA,KAAK,CAACD,MAAN;AACD,GAFS,EAEP,IAFO,CAAV;AAGD,CA3BM;;;;AA6BA,IAAMY,UAAU,GAAG,SAAbA,UAAa,CAACC,KAAD;AAAA,SACxBC,cAAOC,MAAP,CAAc;AACZC,IAAAA,IAAI,EAAE,+BADM;AAEZC,IAAAA,MAAM,EAAE,IAFI;AAGZC,IAAAA,IAAI,EAAE;AACJL,MAAAA,KAAK,EAALA;AADI;AAHM,GAAd,CADwB;AAAA,CAAnB;;;;AASA,IAAMM,UAAU,GAAG,SAAbA,UAAa,CAACC,IAAD,EAAOP,KAAP;AAAA,SACxBC,cAAOC,MAAP,CAAc;AACZC,IAAAA,IAAI,EAAE,mBADM;AAEZC,IAAAA,MAAM,EAAE,IAFI;AAGZC,IAAAA,IAAI,EAAE;AACJL,MAAAA,KAAK,EAALA,KADI;AAEJQ,MAAAA,UAAU,EAAED,IAAI,CAACE,OAAL,CAAaD,UAFrB;AAGJE,MAAAA,KAAK,EAAE;AAHH;AAHM,GAAd,CADwB;AAAA,CAAnB;;;;AAWA,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAACX,KAAD;AAAA,SACxBC,cAAOC,MAAP,CAAc;AACZU,IAAAA,MAAM,EAAE,QADI;AAEZT,IAAAA,IAAI,EAAE,iBAFM;AAGZC,IAAAA,MAAM,EAAE,IAHI;AAIZC,IAAAA,IAAI,EAAE;AACJL,MAAAA,KAAK,EAALA;AADI;AAJM,GAAd,CADwB;AAAA,CAAnB;;;;AAUA,IAAMa,iBAAiB,GAAG,SAApBA,iBAAoB,CAACN,IAAD,EAAOP,KAAP,EAAiB;AAChD,UAAQO,IAAI,CAACJ,IAAb;AACE,SAAK,+BAAL;AACE,aAAOJ,UAAU,CAACC,KAAD,CAAjB;;AACF,SAAK,mBAAL;AACE,aAAOM,UAAU,CAACC,IAAD,EAAOP,KAAP,CAAjB;;AACF;AACE;AACA,aAAOW,UAAU,CAACX,KAAD,CAAjB;AAPJ;AASD,CAVM","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Inline } from 'slate';\nimport Snackbar from '@material-ui/core/Snackbar';\n\nexport const isNumber = (val) => !isNaN(parseFloat(val)) && isFinite(val);\n\nexport const insertSnackBar = (message) => {\n const prevSnacks = document.querySelectorAll('.response-area-alert');\n\n prevSnacks.forEach((s) => s.remove());\n\n const newEl = document.createElement('div');\n\n newEl.className = 'response-area-alert';\n\n const el = (\n <Snackbar\n anchorOrigin={{ vertical: 'top', horizontal: 'center' }}\n open={true}\n ContentProps={{\n 'aria-describedby': 'message-id',\n }}\n message={<span id=\"message-id\">{message}</span>}\n />\n );\n\n ReactDOM.render(el, newEl);\n\n document.body.appendChild(newEl);\n\n setTimeout(() => {\n newEl.remove();\n }, 2000);\n};\n\nexport const defaultECR = (index) =>\n Inline.create({\n type: 'explicit_constructed_response',\n isVoid: true,\n data: {\n index,\n },\n });\n\nexport const defaultDIB = (opts, index) =>\n Inline.create({\n type: 'drag_in_the_blank',\n isVoid: true,\n data: {\n index,\n duplicates: opts.options.duplicates,\n value: null,\n },\n });\n\nexport const defaultIDD = (index) =>\n Inline.create({\n object: 'inline',\n type: 'inline_dropdown',\n isVoid: true,\n data: {\n index,\n },\n });\n\nexport const getDefaultElement = (opts, index) => {\n switch (opts.type) {\n case 'explicit-constructed-response':\n return defaultECR(index);\n case 'drag-in-the-blank':\n return defaultDIB(opts, index);\n default:\n // inline-dropdown\n return defaultIDD(index);\n }\n};\n"],"file":"utils.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/plugins/table/icons/index.jsx"],"names":["styles","icon","fill","SvgIcon","Component","props","classes","AddRow","RemoveRow","AddColumn","RemoveColumn","RemoveTable"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,MAAM,GAAG;AACbC,EAAAA,IAAI,EAAE;AACJC,IAAAA,IAAI,EAAE,MADF;AAEJ,eAAW;AACTA,MAAAA,IAAI,EAAE;AADG;AAFP;AADO,CAAf;;AASA,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAAAC,SAAS,EAAI;AAC3B,SAAO,wBAAWJ,MAAX,EAAmB,UAAAK,KAAK;AAAA,wBAC7B;AACE,MAAA,KAAK,EAAC,4BADR;AAEE,MAAA,OAAO,EAAC,KAFV;AAGE,MAAA,KAAK,EAAC,IAHR;AAIE,MAAA,MAAM,EAAC,IAJT;AAKE,MAAA,OAAO,EAAC;AALV,oBAOE,gCAAC,SAAD;AAAW,MAAA,SAAS,EAAEA,KAAK,CAACC,OAAN,CAAcL;AAApC,MAPF,CAD6B;AAAA,GAAxB,CAAP;AAWD,CAZD;;AAaO,IAAMM,MAAM,GAAGJ,OAAO,CAAC,UAAAE,KAAK;AAAA,sBACjC,sEACMA,KADN;AAEE,IAAA,CAAC,EAAC;AAFJ,KADiC;AAAA,CAAN,CAAtB;;AAOA,IAAMG,SAAS,GAAGL,OAAO,CAAC,UAAAE,KAAK;AAAA,sBACpC,sEACMA,KADN;AAEE,IAAA,CAAC,EAAC;AAFJ,KADoC;AAAA,CAAN,CAAzB;;AAOA,IAAMI,SAAS,GAAGN,OAAO,CAAC,UAAAE,KAAK;AAAA,sBACpC,sEACMA,KADN;AAEE,IAAA,CAAC,EAAC;AAFJ,KADoC;AAAA,CAAN,CAAzB;;AAOA,IAAMK,YAAY,GAAGP,OAAO,CAAC,UAAAE,KAAK;AAAA,sBACvC,sEACMA,KADN;AAEE,IAAA,CAAC,EAAC;AAFJ,KADuC;AAAA,CAAN,CAA5B;;AAOA,IAAMM,WAAW,GAAGR,OAAO,CAAC,UAAAE,KAAK;AAAA,sBACtC,sEACMA,KADN;AAEE,IAAA,CAAC,EAAC;AAFJ,KADsC;AAAA,CAAN,CAA3B","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst styles = {\n icon: {\n fill: 'grey',\n '&:hover': {\n fill: 'black'\n }\n }\n};\n\nconst SvgIcon = Component => {\n return withStyles(styles)(props => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n version=\"1.1\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n >\n <Component className={props.classes.icon} />\n </svg>\n ));\n};\nexport const AddRow = SvgIcon(props => (\n <path\n {...props}\n d=\"M22,10A2,2 0 0,1 20,12H4A2,2 0 0,1 2,10V3H4V5H8V3H10V5H14V3H16V5H20V3H22V10M4,10H8V7H4V10M10,10H14V7H10V10M20,10V7H16V10H20M11,14H13V17H16V19H13V22H11V19H8V17H11V14Z\"\n />\n));\n\nexport const RemoveRow = SvgIcon(props => (\n <path\n {...props}\n d=\"M9.41,13L12,15.59L14.59,13L16,14.41L13.41,17L16,19.59L14.59,21L12,18.41L9.41,21L8,19.59L10.59,17L8,14.41L9.41,13M22,9A2,2 0 0,1 20,11H4A2,2 0 0,1 2,9V6A2,2 0 0,1 4,4H20A2,2 0 0,1 22,6V9M4,9H8V6H4V9M10,9H14V6H10V9M16,9H20V6H16V9Z\"\n />\n));\n\nexport const AddColumn = SvgIcon(props => (\n <path\n {...props}\n d=\"M11,2A2,2 0 0,1 13,4V20A2,2 0 0,1 11,22H2V2H11M4,10V14H11V10H4M4,16V20H11V16H4M4,4V8H11V4H4M15,11H18V8H20V11H23V13H20V16H18V13H15V11Z\"\n />\n));\n\nexport const RemoveColumn = SvgIcon(props => (\n <path\n {...props}\n d=\"M4,2H11A2,2 0 0,1 13,4V20A2,2 0 0,1 11,22H4A2,2 0 0,1 2,20V4A2,2 0 0,1 4,2M4,10V14H11V10H4M4,16V20H11V16H4M4,4V8H11V4H4M17.59,12L15,9.41L16.41,8L19,10.59L21.59,8L23,9.41L20.41,12L23,14.59L21.59,16L19,13.41L16.41,16L15,14.59L17.59,12Z\"\n />\n));\n\nexport const RemoveTable = SvgIcon(props => (\n <path\n {...props}\n d=\"M15.46,15.88L16.88,14.46L19,16.59L21.12,14.46L22.54,15.88L20.41,18L22.54,20.12L21.12,21.54L19,19.41L16.88,21.54L15.46,20.12L17.59,18L15.46,15.88M4,3H18A2,2 0 0,1 20,5V12.08C18.45,11.82 16.92,12.18 15.68,13H12V17H13.08C12.97,17.68 12.97,18.35 13.08,19H4A2,2 0 0,1 2,17V5A2,2 0 0,1 4,3M4,7V11H10V7H4M12,7V11H18V7H12M4,13V17H10V13H4Z\"\n />\n));\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/plugins/table/icons/index.jsx"],"names":["styles","icon","fill","SvgIcon","Component","props","classes","AddRow","RemoveRow","AddColumn","RemoveColumn","RemoveTable"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,MAAM,GAAG;AACbC,EAAAA,IAAI,EAAE;AACJC,IAAAA,IAAI,EAAE,MADF;AAEJ,eAAW;AACTA,MAAAA,IAAI,EAAE;AADG;AAFP;AADO,CAAf;;AASA,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAACC,SAAD,EAAe;AAC7B,SAAO,wBAAWJ,MAAX,EAAmB,UAACK,KAAD;AAAA,wBACxB;AAAK,MAAA,KAAK,EAAC,4BAAX;AAAwC,MAAA,OAAO,EAAC,KAAhD;AAAsD,MAAA,KAAK,EAAC,IAA5D;AAAiE,MAAA,MAAM,EAAC,IAAxE;AAA6E,MAAA,OAAO,EAAC;AAArF,oBACE,gCAAC,SAAD;AAAW,MAAA,SAAS,EAAEA,KAAK,CAACC,OAAN,CAAcL;AAApC,MADF,CADwB;AAAA,GAAnB,CAAP;AAKD,CAND;;AAOO,IAAMM,MAAM,GAAGJ,OAAO,CAAC,UAACE,KAAD;AAAA,sBAC5B,sEACMA,KADN;AAEE,IAAA,CAAC,EAAC;AAFJ,KAD4B;AAAA,CAAD,CAAtB;;AAOA,IAAMG,SAAS,GAAGL,OAAO,CAAC,UAACE,KAAD;AAAA,sBAC/B,sEACMA,KADN;AAEE,IAAA,CAAC,EAAC;AAFJ,KAD+B;AAAA,CAAD,CAAzB;;AAOA,IAAMI,SAAS,GAAGN,OAAO,CAAC,UAACE,KAAD;AAAA,sBAC/B,sEACMA,KADN;AAEE,IAAA,CAAC,EAAC;AAFJ,KAD+B;AAAA,CAAD,CAAzB;;AAOA,IAAMK,YAAY,GAAGP,OAAO,CAAC,UAACE,KAAD;AAAA,sBAClC,sEACMA,KADN;AAEE,IAAA,CAAC,EAAC;AAFJ,KADkC;AAAA,CAAD,CAA5B;;AAOA,IAAMM,WAAW,GAAGR,OAAO,CAAC,UAACE,KAAD;AAAA,sBACjC,sEACMA,KADN;AAEE,IAAA,CAAC,EAAC;AAFJ,KADiC;AAAA,CAAD,CAA3B","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst styles = {\n icon: {\n fill: 'grey',\n '&:hover': {\n fill: 'black',\n },\n },\n};\n\nconst SvgIcon = (Component) => {\n return withStyles(styles)((props) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <Component className={props.classes.icon} />\n </svg>\n ));\n};\nexport const AddRow = SvgIcon((props) => (\n <path\n {...props}\n d=\"M22,10A2,2 0 0,1 20,12H4A2,2 0 0,1 2,10V3H4V5H8V3H10V5H14V3H16V5H20V3H22V10M4,10H8V7H4V10M10,10H14V7H10V10M20,10V7H16V10H20M11,14H13V17H16V19H13V22H11V19H8V17H11V14Z\"\n />\n));\n\nexport const RemoveRow = SvgIcon((props) => (\n <path\n {...props}\n d=\"M9.41,13L12,15.59L14.59,13L16,14.41L13.41,17L16,19.59L14.59,21L12,18.41L9.41,21L8,19.59L10.59,17L8,14.41L9.41,13M22,9A2,2 0 0,1 20,11H4A2,2 0 0,1 2,9V6A2,2 0 0,1 4,4H20A2,2 0 0,1 22,6V9M4,9H8V6H4V9M10,9H14V6H10V9M16,9H20V6H16V9Z\"\n />\n));\n\nexport const AddColumn = SvgIcon((props) => (\n <path\n {...props}\n d=\"M11,2A2,2 0 0,1 13,4V20A2,2 0 0,1 11,22H2V2H11M4,10V14H11V10H4M4,16V20H11V16H4M4,4V8H11V4H4M15,11H18V8H20V11H23V13H20V16H18V13H15V11Z\"\n />\n));\n\nexport const RemoveColumn = SvgIcon((props) => (\n <path\n {...props}\n d=\"M4,2H11A2,2 0 0,1 13,4V20A2,2 0 0,1 11,22H4A2,2 0 0,1 2,20V4A2,2 0 0,1 4,2M4,10V14H11V10H4M4,16V20H11V16H4M4,4V8H11V4H4M17.59,12L15,9.41L16.41,8L19,10.59L21.59,8L23,9.41L20.41,12L23,14.59L21.59,16L19,13.41L16.41,16L15,14.59L17.59,12Z\"\n />\n));\n\nexport const RemoveTable = SvgIcon((props) => (\n <path\n {...props}\n d=\"M15.46,15.88L16.88,14.46L19,16.59L21.12,14.46L22.54,15.88L20.41,18L22.54,20.12L21.12,21.54L19,19.41L16.88,21.54L15.46,20.12L17.59,18L15.46,15.88M4,3H18A2,2 0 0,1 20,5V12.08C18.45,11.82 16.92,12.18 15.68,13H12V17H13.08C12.97,17.68 12.97,18.35 13.08,19H4A2,2 0 0,1 2,17V5A2,2 0 0,1 4,3M4,7V11H10V7H4M12,7V11H18V7H12M4,13V17H10V13H4Z\"\n />\n));\n"],"file":"index.js"}