@pie-lib/editable-html 9.3.1-next.53 → 9.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/lib/editor.js +244 -114
- package/lib/editor.js.map +1 -1
- package/lib/index.js +51 -5
- package/lib/index.js.map +1 -1
- package/lib/parse-html.js +5 -6
- package/lib/parse-html.js.map +1 -1
- package/lib/plugins/characters/custom-popper.js +12 -2
- package/lib/plugins/characters/custom-popper.js.map +1 -1
- package/lib/plugins/characters/index.js +50 -3
- package/lib/plugins/characters/index.js.map +1 -1
- package/lib/plugins/characters/utils.js.map +1 -1
- package/lib/plugins/image/alt-dialog.js +26 -0
- package/lib/plugins/image/alt-dialog.js.map +1 -1
- package/lib/plugins/image/component.js +82 -29
- package/lib/plugins/image/component.js.map +1 -1
- package/lib/plugins/image/image-toolbar.js +45 -7
- package/lib/plugins/image/image-toolbar.js.map +1 -1
- package/lib/plugins/image/index.js +41 -2
- package/lib/plugins/image/index.js.map +1 -1
- package/lib/plugins/image/insert-image-handler.js +22 -2
- package/lib/plugins/image/insert-image-handler.js.map +1 -1
- package/lib/plugins/index.js +34 -13
- package/lib/plugins/index.js.map +1 -1
- package/lib/plugins/list/index.js +42 -13
- package/lib/plugins/list/index.js.map +1 -1
- package/lib/plugins/math/index.js +75 -30
- package/lib/plugins/math/index.js.map +1 -1
- package/lib/plugins/media/index.js +75 -18
- package/lib/plugins/media/index.js.map +1 -1
- package/lib/plugins/media/media-dialog.js +188 -100
- package/lib/plugins/media/media-dialog.js.map +1 -1
- package/lib/plugins/media/media-toolbar.js +24 -4
- package/lib/plugins/media/media-toolbar.js.map +1 -1
- package/lib/plugins/media/media-wrapper.js +29 -5
- package/lib/plugins/media/media-wrapper.js.map +1 -1
- package/lib/plugins/respArea/drag-in-the-blank/choice.js +50 -10
- package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
- package/lib/plugins/respArea/drag-in-the-blank/index.js +18 -4
- package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
- package/lib/plugins/respArea/explicit-constructed-response/index.js +8 -2
- package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
- package/lib/plugins/respArea/icons/index.js +18 -1
- package/lib/plugins/respArea/icons/index.js.map +1 -1
- package/lib/plugins/respArea/index.js +47 -1
- package/lib/plugins/respArea/index.js.map +1 -1
- package/lib/plugins/respArea/inline-dropdown/index.js +8 -1
- package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
- package/lib/plugins/respArea/utils.js +22 -0
- package/lib/plugins/respArea/utils.js.map +1 -1
- package/lib/plugins/table/icons/index.js +7 -0
- package/lib/plugins/table/icons/index.js.map +1 -1
- package/lib/plugins/table/index.js +94 -15
- package/lib/plugins/table/index.js.map +1 -1
- package/lib/plugins/table/table-toolbar.js +43 -11
- package/lib/plugins/table/table-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/default-toolbar.js +30 -8
- package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/done-button.js +9 -1
- package/lib/plugins/toolbar/done-button.js.map +1 -1
- package/lib/plugins/toolbar/editor-and-toolbar.js +48 -18
- package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/index.js +5 -0
- package/lib/plugins/toolbar/index.js.map +1 -1
- package/lib/plugins/toolbar/toolbar-buttons.js +39 -8
- package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
- package/lib/plugins/toolbar/toolbar.js +67 -19
- package/lib/plugins/toolbar/toolbar.js.map +1 -1
- package/lib/plugins/utils.js +15 -0
- package/lib/plugins/utils.js.map +1 -1
- package/lib/serialization.js +69 -8
- package/lib/serialization.js.map +1 -1
- package/lib/theme.js.map +1 -1
- package/package.json +4 -4
- package/src/plugins/media/index.jsx +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media-dialog.js","names":["log","debug","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","withStyles"],"sources":["../../../src/plugins/media/media-dialog.js"],"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"],"mappings":"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"}
|
|
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,21 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports["default"] = void 0;
|
|
9
|
+
|
|
8
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
9
12
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
10
14
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
+
|
|
11
16
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
|
+
|
|
12
18
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
19
|
+
|
|
13
20
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
|
+
|
|
14
22
|
var _react = _interopRequireDefault(require("react"));
|
|
23
|
+
|
|
15
24
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
25
|
+
|
|
16
26
|
var _styles = require("@material-ui/core/styles");
|
|
27
|
+
|
|
17
28
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
29
|
+
|
|
18
30
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
31
|
+
|
|
19
32
|
var useStyles = (0, _styles.withStyles)(function (theme) {
|
|
20
33
|
return {
|
|
21
34
|
root: {
|
|
@@ -42,21 +55,25 @@ var useStyles = (0, _styles.withStyles)(function (theme) {
|
|
|
42
55
|
}
|
|
43
56
|
};
|
|
44
57
|
});
|
|
58
|
+
|
|
45
59
|
var MediaToolbar = /*#__PURE__*/function (_React$Component) {
|
|
46
60
|
(0, _inherits2["default"])(MediaToolbar, _React$Component);
|
|
61
|
+
|
|
47
62
|
var _super = _createSuper(MediaToolbar);
|
|
63
|
+
|
|
48
64
|
function MediaToolbar() {
|
|
49
65
|
(0, _classCallCheck2["default"])(this, MediaToolbar);
|
|
50
66
|
return _super.apply(this, arguments);
|
|
51
67
|
}
|
|
68
|
+
|
|
52
69
|
(0, _createClass2["default"])(MediaToolbar, [{
|
|
53
70
|
key: "render",
|
|
54
71
|
value: function render() {
|
|
55
72
|
var _this$props = this.props,
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
73
|
+
classes = _this$props.classes,
|
|
74
|
+
hideEdit = _this$props.hideEdit,
|
|
75
|
+
onEdit = _this$props.onEdit,
|
|
76
|
+
onRemove = _this$props.onRemove;
|
|
60
77
|
return /*#__PURE__*/_react["default"].createElement("span", {
|
|
61
78
|
className: classes.root
|
|
62
79
|
}, hideEdit ? null : /*#__PURE__*/_react["default"].createElement("span", {
|
|
@@ -70,12 +87,15 @@ var MediaToolbar = /*#__PURE__*/function (_React$Component) {
|
|
|
70
87
|
}]);
|
|
71
88
|
return MediaToolbar;
|
|
72
89
|
}(_react["default"].Component);
|
|
90
|
+
|
|
73
91
|
(0, _defineProperty2["default"])(MediaToolbar, "propTypes", {
|
|
74
92
|
classes: _propTypes["default"].object,
|
|
75
93
|
onEdit: _propTypes["default"].func,
|
|
76
94
|
hideEdit: _propTypes["default"].bool,
|
|
77
95
|
onRemove: _propTypes["default"].func
|
|
78
96
|
});
|
|
97
|
+
|
|
79
98
|
var _default = useStyles(MediaToolbar);
|
|
99
|
+
|
|
80
100
|
exports["default"] = _default;
|
|
81
101
|
//# sourceMappingURL=media-toolbar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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,25 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports["default"] = void 0;
|
|
9
|
+
|
|
8
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
9
12
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
13
|
+
|
|
10
14
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
+
|
|
11
16
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
+
|
|
12
18
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
19
|
+
|
|
13
20
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
21
|
+
|
|
14
22
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
23
|
+
|
|
15
24
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
|
+
|
|
16
26
|
var _react = _interopRequireDefault(require("react"));
|
|
27
|
+
|
|
17
28
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
29
|
+
|
|
18
30
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
31
|
+
|
|
19
32
|
var _styles = require("@material-ui/core/styles");
|
|
33
|
+
|
|
20
34
|
var _excluded = ["editor", "classes", "children", "width"];
|
|
35
|
+
|
|
21
36
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
37
|
+
|
|
22
38
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
39
|
+
|
|
23
40
|
var useStyles = (0, _styles.withStyles)(function () {
|
|
24
41
|
return {
|
|
25
42
|
root: {
|
|
@@ -31,22 +48,26 @@ var useStyles = (0, _styles.withStyles)(function () {
|
|
|
31
48
|
}
|
|
32
49
|
};
|
|
33
50
|
});
|
|
51
|
+
|
|
34
52
|
var MediaWrapper = /*#__PURE__*/function (_React$Component) {
|
|
35
53
|
(0, _inherits2["default"])(MediaWrapper, _React$Component);
|
|
54
|
+
|
|
36
55
|
var _super = _createSuper(MediaWrapper);
|
|
56
|
+
|
|
37
57
|
function MediaWrapper() {
|
|
38
58
|
(0, _classCallCheck2["default"])(this, MediaWrapper);
|
|
39
59
|
return _super.apply(this, arguments);
|
|
40
60
|
}
|
|
61
|
+
|
|
41
62
|
(0, _createClass2["default"])(MediaWrapper, [{
|
|
42
63
|
key: "render",
|
|
43
64
|
value: function render() {
|
|
44
65
|
var _this$props = this.props,
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
66
|
+
editor = _this$props.editor,
|
|
67
|
+
classes = _this$props.classes,
|
|
68
|
+
children = _this$props.children,
|
|
69
|
+
width = _this$props.width,
|
|
70
|
+
rest = (0, _objectWithoutProperties2["default"])(_this$props, _excluded);
|
|
50
71
|
return /*#__PURE__*/_react["default"].createElement("span", (0, _extends2["default"])({
|
|
51
72
|
className: (0, _classnames["default"])(classes.root, (0, _defineProperty2["default"])({}, classes.editor, editor))
|
|
52
73
|
}, rest, {
|
|
@@ -58,12 +79,15 @@ var MediaWrapper = /*#__PURE__*/function (_React$Component) {
|
|
|
58
79
|
}]);
|
|
59
80
|
return MediaWrapper;
|
|
60
81
|
}(_react["default"].Component);
|
|
82
|
+
|
|
61
83
|
(0, _defineProperty2["default"])(MediaWrapper, "propTypes", {
|
|
62
84
|
classes: _propTypes["default"].object,
|
|
63
85
|
children: _propTypes["default"].array,
|
|
64
86
|
editor: _propTypes["default"].bool,
|
|
65
87
|
width: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string])
|
|
66
88
|
});
|
|
89
|
+
|
|
67
90
|
var _default = useStyles(MediaWrapper);
|
|
91
|
+
|
|
68
92
|
exports["default"] = _default;
|
|
69
93
|
//# sourceMappingURL=media-wrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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,30 +1,52 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.tileTarget = exports.tileSource = exports["default"] = exports.BlankContent = void 0;
|
|
9
|
+
|
|
8
10
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
+
|
|
9
12
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
|
|
10
14
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
+
|
|
11
16
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
17
|
+
|
|
12
18
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
19
|
+
|
|
13
20
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
21
|
+
|
|
14
22
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
23
|
+
|
|
15
24
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
|
+
|
|
16
26
|
var _react = _interopRequireDefault(require("react"));
|
|
27
|
+
|
|
17
28
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
29
|
+
|
|
18
30
|
var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
|
|
31
|
+
|
|
19
32
|
var _drag = require("@pie-lib/drag");
|
|
33
|
+
|
|
20
34
|
var _renderUi = require("@pie-lib/render-ui");
|
|
35
|
+
|
|
21
36
|
var _mathRendering = require("@pie-lib/math-rendering");
|
|
37
|
+
|
|
22
38
|
var _styles = require("@material-ui/core/styles");
|
|
39
|
+
|
|
23
40
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
41
|
+
|
|
24
42
|
var _icons = require("../icons");
|
|
43
|
+
|
|
25
44
|
var _excluded = ["connectDropTarget", "connectDragSource"];
|
|
45
|
+
|
|
26
46
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
47
|
+
|
|
27
48
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
49
|
+
|
|
28
50
|
var useStyles = (0, _styles.withStyles)(function (theme) {
|
|
29
51
|
return {
|
|
30
52
|
content: {
|
|
@@ -44,16 +66,21 @@ var useStyles = (0, _styles.withStyles)(function (theme) {
|
|
|
44
66
|
}
|
|
45
67
|
};
|
|
46
68
|
});
|
|
69
|
+
|
|
47
70
|
var BlankContent = /*#__PURE__*/function (_React$Component) {
|
|
48
71
|
(0, _inherits2["default"])(BlankContent, _React$Component);
|
|
72
|
+
|
|
49
73
|
var _super = _createSuper(BlankContent);
|
|
74
|
+
|
|
50
75
|
function BlankContent(props) {
|
|
51
76
|
var _this;
|
|
77
|
+
|
|
52
78
|
(0, _classCallCheck2["default"])(this, BlankContent);
|
|
53
79
|
_this = _super.call(this, props);
|
|
54
80
|
_this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2["default"])(_this));
|
|
55
81
|
return _this;
|
|
56
82
|
}
|
|
83
|
+
|
|
57
84
|
(0, _createClass2["default"])(BlankContent, [{
|
|
58
85
|
key: "componentDidMount",
|
|
59
86
|
value: function componentDidMount() {
|
|
@@ -68,6 +95,7 @@ var BlankContent = /*#__PURE__*/function (_React$Component) {
|
|
|
68
95
|
key: "handleClick",
|
|
69
96
|
value: function handleClick(event) {
|
|
70
97
|
var classes = this.props.classes;
|
|
98
|
+
|
|
71
99
|
if (this.elementRef) {
|
|
72
100
|
this.elementRef.className = this.elementRef.contains(event.target) ? classes.selected : '';
|
|
73
101
|
}
|
|
@@ -83,13 +111,14 @@ var BlankContent = /*#__PURE__*/function (_React$Component) {
|
|
|
83
111
|
key: "render",
|
|
84
112
|
value: function render() {
|
|
85
113
|
var _this2 = this;
|
|
114
|
+
|
|
86
115
|
var _this$props = this.props,
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
116
|
+
n = _this$props.n,
|
|
117
|
+
children = _this$props.children,
|
|
118
|
+
isDragging = _this$props.isDragging,
|
|
119
|
+
dragItem = _this$props.dragItem,
|
|
120
|
+
isOver = _this$props.isOver,
|
|
121
|
+
value = _this$props.value;
|
|
93
122
|
var label = dragItem && isOver ? dragItem.value.value : value.value || "\xA0";
|
|
94
123
|
var finalLabel = isDragging ? "\xA0" : label;
|
|
95
124
|
var hasGrip = finalLabel !== "\xA0";
|
|
@@ -128,6 +157,7 @@ var BlankContent = /*#__PURE__*/function (_React$Component) {
|
|
|
128
157
|
}]);
|
|
129
158
|
return BlankContent;
|
|
130
159
|
}(_react["default"].Component);
|
|
160
|
+
|
|
131
161
|
exports.BlankContent = BlankContent;
|
|
132
162
|
(0, _defineProperty2["default"])(BlankContent, "propTypes", {
|
|
133
163
|
n: _propTypes["default"].object,
|
|
@@ -141,25 +171,31 @@ exports.BlankContent = BlankContent;
|
|
|
141
171
|
var StyledBlankContent = useStyles(BlankContent);
|
|
142
172
|
var connectedBlankContent = useStyles(function (_ref2) {
|
|
143
173
|
var connectDropTarget = _ref2.connectDropTarget,
|
|
144
|
-
|
|
145
|
-
|
|
174
|
+
connectDragSource = _ref2.connectDragSource,
|
|
175
|
+
props = (0, _objectWithoutProperties2["default"])(_ref2, _excluded);
|
|
146
176
|
var classes = props.classes,
|
|
147
|
-
|
|
148
|
-
|
|
177
|
+
isOver = props.isOver,
|
|
178
|
+
value = props.value;
|
|
179
|
+
|
|
149
180
|
var dragContent = /*#__PURE__*/_react["default"].createElement(StyledBlankContent, props);
|
|
181
|
+
|
|
150
182
|
var dragEl = !value ? dragContent : connectDragSource( /*#__PURE__*/_react["default"].createElement("span", null, dragContent));
|
|
183
|
+
|
|
151
184
|
var content = /*#__PURE__*/_react["default"].createElement("span", {
|
|
152
185
|
className: (0, _classnames["default"])(classes.content, isOver && classes.over)
|
|
153
186
|
}, dragEl);
|
|
187
|
+
|
|
154
188
|
return connectDropTarget ? connectDropTarget(content) : content;
|
|
155
189
|
});
|
|
156
190
|
var tileTarget = {
|
|
157
191
|
drop: function drop(props, monitor) {
|
|
158
192
|
var draggedItem = monitor.getItem();
|
|
159
193
|
var shouldDrop = (0, _isUndefined["default"])(draggedItem.value.index) || (0, _isUndefined["default"])(props.value.index) || draggedItem.value.index !== props.value.index;
|
|
194
|
+
|
|
160
195
|
if (shouldDrop) {
|
|
161
196
|
props.onChange(draggedItem.value);
|
|
162
197
|
}
|
|
198
|
+
|
|
163
199
|
return {
|
|
164
200
|
dropped: shouldDrop
|
|
165
201
|
};
|
|
@@ -192,8 +228,10 @@ var tileSource = {
|
|
|
192
228
|
endDrag: function endDrag(props, monitor) {
|
|
193
229
|
// this will be null if it did not drop
|
|
194
230
|
var dropResult = monitor.getDropResult();
|
|
231
|
+
|
|
195
232
|
if (!dropResult || dropResult.dropped && !props.duplicates) {
|
|
196
233
|
var draggedItem = monitor.getItem();
|
|
234
|
+
|
|
197
235
|
if (draggedItem.fromChoice) {
|
|
198
236
|
props.removeResponse(draggedItem.value);
|
|
199
237
|
}
|
|
@@ -201,11 +239,13 @@ var tileSource = {
|
|
|
201
239
|
}
|
|
202
240
|
};
|
|
203
241
|
exports.tileSource = tileSource;
|
|
242
|
+
|
|
204
243
|
var _default = (0, _drag.DragSource)('drag-in-the-blank-choice', tileSource, function (connect, monitor) {
|
|
205
244
|
return {
|
|
206
245
|
connectDragSource: connect.dragSource(),
|
|
207
246
|
isDragging: monitor.isDragging()
|
|
208
247
|
};
|
|
209
248
|
})(DropTile);
|
|
249
|
+
|
|
210
250
|
exports["default"] = _default;
|
|
211
251
|
//# sourceMappingURL=choice.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"choice.js","names":["useStyles","withStyles","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","renderMath","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","classnames","over","tileTarget","drop","monitor","draggedItem","getItem","shouldDrop","isUndefined","index","onChange","dropped","canDrop","instanceId","DropTile","DropTarget","connect","dropTarget","tileSource","canDrag","disabled","beginDrag","id","targetId","fromChoice","endDrag","dropResult","getDropResult","duplicates","removeResponse","DragSource","dragSource"],"sources":["../../../../src/plugins/respArea/drag-in-the-blank/choice.jsx"],"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"],"mappings":"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"}
|
|
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"}
|