@pie-lib/editable-html-tip-tap 1.2.0-next.9 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/CHANGELOG.md +172 -0
  2. package/lib/components/CharacterPicker.js +1 -0
  3. package/lib/components/CharacterPicker.js.map +1 -1
  4. package/lib/components/EditableHtml.js +84 -43
  5. package/lib/components/EditableHtml.js.map +1 -1
  6. package/lib/components/MenuBar.js +74 -43
  7. package/lib/components/MenuBar.js.map +1 -1
  8. package/lib/components/TiptapContainer.js +9 -8
  9. package/lib/components/TiptapContainer.js.map +1 -1
  10. package/lib/components/icons/TextAlign.js +2 -2
  11. package/lib/components/icons/TextAlign.js.map +1 -1
  12. package/lib/components/image/InsertImageHandler.js +10 -13
  13. package/lib/components/image/InsertImageHandler.js.map +1 -1
  14. package/lib/components/media/MediaDialog.js.map +1 -1
  15. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js +6 -1
  16. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js.map +1 -1
  17. package/lib/components/respArea/DragInTheBlank/choice.js +15 -7
  18. package/lib/components/respArea/DragInTheBlank/choice.js.map +1 -1
  19. package/lib/components/respArea/ExplicitConstructedResponse.js +29 -11
  20. package/lib/components/respArea/ExplicitConstructedResponse.js.map +1 -1
  21. package/lib/components/respArea/InlineDropdown.js +35 -6
  22. package/lib/components/respArea/InlineDropdown.js.map +1 -1
  23. package/lib/extensions/custom-toolbar-wrapper.js +3 -2
  24. package/lib/extensions/custom-toolbar-wrapper.js.map +1 -1
  25. package/lib/extensions/div-node.js +83 -0
  26. package/lib/extensions/div-node.js.map +1 -0
  27. package/lib/extensions/ensure-empty-root-div.js +48 -0
  28. package/lib/extensions/ensure-empty-root-div.js.map +1 -0
  29. package/lib/extensions/ensure-list-item-content-is-div.js +64 -0
  30. package/lib/extensions/ensure-list-item-content-is-div.js.map +1 -0
  31. package/lib/extensions/extended-list-item.js +15 -0
  32. package/lib/extensions/extended-list-item.js.map +1 -0
  33. package/lib/extensions/extended-table-cell.js +22 -0
  34. package/lib/extensions/extended-table-cell.js.map +1 -0
  35. package/lib/extensions/extended-table.js +50 -1
  36. package/lib/extensions/extended-table.js.map +1 -1
  37. package/lib/extensions/image-component.js +102 -51
  38. package/lib/extensions/image-component.js.map +1 -1
  39. package/lib/extensions/image.js +51 -2
  40. package/lib/extensions/image.js.map +1 -1
  41. package/lib/extensions/math.js +50 -9
  42. package/lib/extensions/math.js.map +1 -1
  43. package/lib/extensions/media.js +3 -1
  44. package/lib/extensions/media.js.map +1 -1
  45. package/lib/extensions/responseArea.js +12 -7
  46. package/lib/extensions/responseArea.js.map +1 -1
  47. package/lib/styles/editorContainerStyles.js +5 -4
  48. package/lib/styles/editorContainerStyles.js.map +1 -1
  49. package/lib/utils/helper.js +17 -0
  50. package/lib/utils/helper.js.map +1 -0
  51. package/package.json +8 -8
  52. package/src/__tests__/EditableHtml.test.jsx +90 -7
  53. package/src/__tests__/index.test.jsx +11 -3
  54. package/src/components/CharacterPicker.jsx +1 -0
  55. package/src/components/EditableHtml.jsx +91 -41
  56. package/src/components/MenuBar.jsx +57 -24
  57. package/src/components/TiptapContainer.jsx +10 -8
  58. package/src/components/__tests__/CharacterPicker.test.jsx +22 -0
  59. package/src/components/__tests__/ExplicitConstructedResponse.test.jsx +55 -12
  60. package/src/components/__tests__/InlineDropdown.test.jsx +203 -10
  61. package/src/components/__tests__/InsertImageHandler.test.js +28 -21
  62. package/src/components/__tests__/MenuBar.test.jsx +32 -0
  63. package/src/components/icons/TextAlign.jsx +1 -1
  64. package/src/components/image/InsertImageHandler.js +9 -13
  65. package/src/components/respArea/DragInTheBlank/DragInTheBlank.jsx +6 -1
  66. package/src/components/respArea/DragInTheBlank/choice.jsx +32 -4
  67. package/src/components/respArea/ExplicitConstructedResponse.jsx +33 -10
  68. package/src/components/respArea/InlineDropdown.jsx +45 -10
  69. package/src/extensions/__tests__/divNode.test.js +87 -0
  70. package/src/extensions/__tests__/ensure-empty-root-div.test.js +57 -0
  71. package/src/extensions/__tests__/ensure-list-item-content-is-div.test.js +44 -0
  72. package/src/extensions/__tests__/extended-list-item.test.js +13 -0
  73. package/src/extensions/__tests__/extended-table-cell.test.js +22 -0
  74. package/src/extensions/__tests__/extended-table.test.js +98 -1
  75. package/src/extensions/__tests__/image-component.test.jsx +105 -9
  76. package/src/extensions/__tests__/image.test.js +109 -8
  77. package/src/extensions/__tests__/math.test.js +348 -0
  78. package/src/extensions/__tests__/media-node-view.test.jsx +10 -8
  79. package/src/extensions/__tests__/responseArea.test.js +291 -0
  80. package/src/extensions/custom-toolbar-wrapper.jsx +2 -2
  81. package/src/extensions/div-node.js +86 -0
  82. package/src/extensions/ensure-empty-root-div.js +47 -0
  83. package/src/extensions/ensure-list-item-content-is-div.js +62 -0
  84. package/src/extensions/extended-list-item.js +10 -0
  85. package/src/extensions/extended-table-cell.js +19 -0
  86. package/src/extensions/extended-table.js +37 -1
  87. package/src/extensions/image-component.jsx +114 -69
  88. package/src/extensions/image.js +56 -1
  89. package/src/extensions/math.js +62 -10
  90. package/src/extensions/media.js +1 -1
  91. package/src/extensions/responseArea.js +13 -11
  92. package/src/styles/editorContainerStyles.js +5 -4
  93. package/src/utils/helper.js +17 -0
  94. /package/src/components/media/{MediaDialog.js → MediaDialog.jsx} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"MediaDialog.js","names":["_react","_interopRequireDefault","require","_propTypes","_debug","_styles","_Button","_Dialog","_Tabs","_Tab","_DialogTitle","_DialogContent","_DialogContentText","_DialogActions","_TextField","_Typography","_IconButton","_Delete","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","prototype","valueOf","call","log","debug","matchYoutubeUrl","url","p","match","matchVimeoUrl","test","matchDriveUrl","matchSoundCloudUrl","regexp","makeApiRequest","Promise","resolve","fetch","concat","then","response","json","d","document","createElement","innerHTML","html","iframe","querySelector","src","err","typeMap","video","audio","tabsTypeMap","uploadFile","insertUrl","StyledDialog","styled","Dialog","_ref","theme","minWidth","StyledDialogContent","DialogContent","_ref2","padding","StyledRow","_ref3","display","flexDirection","StyledUploadInput","_ref4","marginTop","spacing","StyledInput","_ref5","StyledError","Typography","_ref6","color","palette","error","main","StyledIconButton","IconButton","_ref7","marginLeft","MediaDialog","exports","_React$Component","props","_this","_classCallCheck2","_this$state","state","urlToUse","starts","ends","isYoutube","isVimeo","formattedUrl","params","paramName","paramStart","join","callback","setState","updating","newState","formatUrl","value","handleStateChange","invalid","regExp","id","replace","_ref8","target","type","checkAudio","checkVideo","val","handleClose","_this$state2","tabValue","fileUpload","isInsertURL","handleRemoveFile","_this$state3","height","width","tag","loading","scheduled","_ref9","_asyncToGenerator2","_regenerator","mark","_callee","fileChosen","reader","wrap","_context","prev","next","preventDefault","files","FileReader","onload","dataURL","result","mimeType","readAsDataURL","uploadSoundSupport","add","done","console","handleDone","bind","undefined","stop","_x","_callee2","_context2","showUploadFile","_inherits2","_createClass2","key","componentDidMount","urlChange","render","_this2","_this$props","open","disablePortal","edit","_this$state4","isUploadMedia","submitIsDisabled","onClose","indicatorColor","onChange","event","label","autoFocus","helperText","margin","placeholder","fullWidth","changeHandler","frameBorder","allow","allowFullScreen","Fragment","controls","controlsList","onClick","variant","accept","handleUploadFile","disabled","React","Component","PropTypes","bool","func","shape","string","number","_default"],"sources":["../../../src/components/media/MediaDialog.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport { styled } from '@mui/material/styles';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport MuiTabs from '@mui/material/Tabs';\nimport MuiTab from '@mui/material/Tab';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogActions from '@mui/material/DialogActions';\nimport TextField from '@mui/material/TextField';\nimport Typography from '@mui/material/Typography';\nimport IconButton from '@mui/material/IconButton';\nimport ActionDelete from '@mui/icons-material/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 =\n /^(?: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 matchDriveUrl = (url) =>\n url && /^https:\\/\\/drive\\.google\\.com\\/(?:file\\/d\\/|drive\\/(?:u\\/\\d+\\/)?folders\\/|uc\\?id=)([a-zA-Z0-9_-]+)/.test(url);\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\nconst tabsTypeMap = {\n uploadFile: 'upload-file',\n insertUrl: 'insert-url',\n};\n\nconst StyledDialog = styled(Dialog)(({ theme }) => ({\n '& .MuiDialog-paper': {\n minWidth: '500px',\n },\n}));\n\nconst StyledDialogContent = styled(DialogContent)(({ theme }) => ({\n padding: 0,\n}));\n\nconst StyledRow = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'space-between',\n}));\n\nconst StyledUploadInput = styled('div')(({ theme }) => ({\n marginTop: theme.spacing(1.5),\n}));\n\nconst StyledInput = styled('input')(({ theme }) => ({}));\n\nconst StyledError = styled(Typography)(({ theme }) => ({\n marginTop: theme.spacing(1.5),\n color: theme.palette.error.main,\n}));\n\nconst StyledIconButton = styled(IconButton)(({ theme }) => ({\n marginLeft: theme.spacing(1.5),\n}));\n\nexport class MediaDialog extends React.Component {\n static propTypes = {\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 { ends, height, src, starts, type, uploadSoundSupport, url, urlToUse, width } = props;\n const showUploadFile = uploadSoundSupport?.add && uploadSoundSupport?.delete && type !== 'video' && !src;\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 // default selected tab should be upload file if available\n tabValue: showUploadFile ? tabsTypeMap.uploadFile : tabsTypeMap.insertUrl,\n fileUpload: {\n error: null,\n loading: false,\n scheduled: false,\n url: '',\n mimeType: '',\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 checkAudio = (value) => {\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 };\n\n checkVideo = (value) => {\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\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\n if (matchDriveUrl(value)) {\n // https://drive.google.com/file/d/11QkK_gUO068amNvZBm9cxZpKX74WYb8q/view\n const id = value.replace(\n /^https:\\/\\/drive\\.google\\.com\\/(?:file\\/d\\/|drive\\/(?:u\\/\\d+\\/)?folders\\/|uc\\?id=)([a-zA-Z0-9_-]+)\\/.*/,\n '$1',\n );\n const urlToUse = `https://drive.google.com/file/d/${id}/preview`;\n\n log('is google drive');\n\n this.handleStateChange({\n urlToUse,\n url: value,\n ends: null,\n invalid: false,\n });\n }\n };\n\n urlChange = (e) => {\n const { value } = e.target || {};\n const { type } = this.props;\n\n if (type && type === 'audio') {\n this.checkAudio(value);\n return;\n } else if (type && type === 'video') {\n this.checkVideo(value);\n return;\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 === tabsTypeMap.insertUrl;\n\n if (!val) {\n if (fileUpload.url) {\n this.handleRemoveFile();\n }\n\n handleClose(val);\n return;\n }\n\n 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 return;\n }\n\n if (!fileUpload.loading) {\n handleClose(val, {\n tag: 'audio',\n src: fileUpload.url,\n });\n return;\n }\n\n this.setState({\n fileUpload: {\n ...fileUpload,\n scheduled: true,\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 mimeType: fileChosen.type,\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 scheduled: false,\n loading: false,\n error: err,\n },\n });\n return;\n }\n\n const { fileUpload } = this.state;\n const callback = fileUpload && fileUpload.scheduled ? this.handleDone.bind(this, true) : undefined;\n\n this.setState(\n {\n fileUpload: {\n ...fileUpload,\n scheduled: false,\n loading: false,\n url: src,\n },\n },\n callback,\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 mimeType: '',\n },\n });\n };\n\n render() {\n const { open, disablePortal, type, edit, uploadSoundSupport } = this.props;\n const { ends, height, invalid, starts, width, url, mimeType, formattedUrl, updating, tabValue, fileUpload } =\n this.state;\n const isYoutube = matchYoutubeUrl(url);\n const isInsertURL = tabValue === tabsTypeMap.insertUrl;\n const isUploadMedia = tabValue === tabsTypeMap.uploadFile;\n const submitIsDisabled = isInsertURL\n ? invalid || url === null || url === undefined\n : !fileUpload.url || fileUpload.scheduled;\n const showUploadFile = uploadSoundSupport?.add && uploadSoundSupport?.delete && type !== 'video';\n\n return (\n <StyledDialog\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 <StyledRow>\n <MuiTabs\n indicatorColor=\"primary\"\n value={tabValue}\n onChange={(event, value) => {\n this.setState({ tabValue: value });\n }}\n >\n {showUploadFile ? <MuiTab value={tabsTypeMap.uploadFile} label=\"Upload file\" /> : null}\n <MuiTab\n value={tabsTypeMap.insertUrl}\n label={type === 'video' ? 'Insert YouTube, Vimeo, or Google Drive URL' : 'Insert SoundCloud URL'}\n />\n </MuiTabs>\n </StyledRow>\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 <StyledDialogContent>\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 </StyledDialogContent>\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 <StyledDialogContent>\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 </StyledDialogContent>\n </React.Fragment>\n )}\n </div>\n )}\n {isUploadMedia && (\n <StyledUploadInput>\n <div>\n {fileUpload.url ? (\n <>\n <StyledRow>\n <audio controls=\"controls\" controlsList=\"nodownload\">\n <source type={mimeType} src={fileUpload.url} />\n </audio>\n <StyledIconButton aria-label=\"delete\" onClick={this.handleRemoveFile}>\n <ActionDelete />\n </StyledIconButton>\n </StyledRow>\n {!fileUpload.scheduled && fileUpload.loading ? (\n <Typography variant=\"subheading\">Loading...</Typography>\n ) : null}\n {fileUpload.scheduled ? (\n <Typography variant=\"subheading\">\n Waiting for Upload to finish, then inserting item...\n </Typography>\n ) : null}\n </>\n ) : !fileUpload.loading ? (\n <StyledInput accept=\"audio/*\" onChange={this.handleUploadFile} type=\"file\" />\n ) : null}\n {!!fileUpload.error && <StyledError variant=\"caption\">{fileUpload.error}</StyledError>}\n </div>\n </StyledUploadInput>\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 </StyledDialog>\n );\n }\n}\n\nexport default MediaDialog;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"MediaDialog.js","names":["_react","_interopRequireDefault","require","_propTypes","_debug","_styles","_Button","_Dialog","_Tabs","_Tab","_DialogTitle","_DialogContent","_DialogContentText","_DialogActions","_TextField","_Typography","_IconButton","_Delete","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","prototype","valueOf","call","log","debug","matchYoutubeUrl","url","p","match","matchVimeoUrl","test","matchDriveUrl","matchSoundCloudUrl","regexp","makeApiRequest","Promise","resolve","fetch","concat","then","response","json","d","document","createElement","innerHTML","html","iframe","querySelector","src","err","typeMap","video","audio","tabsTypeMap","uploadFile","insertUrl","StyledDialog","styled","Dialog","_ref","theme","minWidth","StyledDialogContent","DialogContent","_ref2","padding","StyledRow","_ref3","display","flexDirection","StyledUploadInput","_ref4","marginTop","spacing","StyledInput","_ref5","StyledError","Typography","_ref6","color","palette","error","main","StyledIconButton","IconButton","_ref7","marginLeft","MediaDialog","exports","_React$Component","props","_this","_classCallCheck2","_this$state","state","urlToUse","starts","ends","isYoutube","isVimeo","formattedUrl","params","paramName","paramStart","join","callback","setState","updating","newState","formatUrl","value","handleStateChange","invalid","regExp","id","replace","_ref8","target","type","checkAudio","checkVideo","val","handleClose","_this$state2","tabValue","fileUpload","isInsertURL","handleRemoveFile","_this$state3","height","width","tag","loading","scheduled","_ref9","_asyncToGenerator2","_regenerator","mark","_callee","fileChosen","reader","wrap","_context","prev","next","preventDefault","files","FileReader","onload","dataURL","result","mimeType","readAsDataURL","uploadSoundSupport","add","done","console","handleDone","bind","undefined","stop","_x","_callee2","_context2","showUploadFile","_inherits2","_createClass2","key","componentDidMount","urlChange","render","_this2","_this$props","open","disablePortal","edit","_this$state4","isUploadMedia","submitIsDisabled","onClose","indicatorColor","onChange","event","label","autoFocus","helperText","margin","placeholder","fullWidth","changeHandler","frameBorder","allow","allowFullScreen","Fragment","controls","controlsList","onClick","variant","accept","handleUploadFile","disabled","React","Component","PropTypes","bool","func","shape","string","number","_default"],"sources":["../../../src/components/media/MediaDialog.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport { styled } from '@mui/material/styles';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport MuiTabs from '@mui/material/Tabs';\nimport MuiTab from '@mui/material/Tab';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogActions from '@mui/material/DialogActions';\nimport TextField from '@mui/material/TextField';\nimport Typography from '@mui/material/Typography';\nimport IconButton from '@mui/material/IconButton';\nimport ActionDelete from '@mui/icons-material/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 =\n /^(?: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 matchDriveUrl = (url) =>\n url && /^https:\\/\\/drive\\.google\\.com\\/(?:file\\/d\\/|drive\\/(?:u\\/\\d+\\/)?folders\\/|uc\\?id=)([a-zA-Z0-9_-]+)/.test(url);\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\nconst tabsTypeMap = {\n uploadFile: 'upload-file',\n insertUrl: 'insert-url',\n};\n\nconst StyledDialog = styled(Dialog)(({ theme }) => ({\n '& .MuiDialog-paper': {\n minWidth: '500px',\n },\n}));\n\nconst StyledDialogContent = styled(DialogContent)(({ theme }) => ({\n padding: 0,\n}));\n\nconst StyledRow = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'space-between',\n}));\n\nconst StyledUploadInput = styled('div')(({ theme }) => ({\n marginTop: theme.spacing(1.5),\n}));\n\nconst StyledInput = styled('input')(({ theme }) => ({}));\n\nconst StyledError = styled(Typography)(({ theme }) => ({\n marginTop: theme.spacing(1.5),\n color: theme.palette.error.main,\n}));\n\nconst StyledIconButton = styled(IconButton)(({ theme }) => ({\n marginLeft: theme.spacing(1.5),\n}));\n\nexport class MediaDialog extends React.Component {\n static propTypes = {\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 { ends, height, src, starts, type, uploadSoundSupport, url, urlToUse, width } = props;\n const showUploadFile = uploadSoundSupport?.add && uploadSoundSupport?.delete && type !== 'video' && !src;\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 // default selected tab should be upload file if available\n tabValue: showUploadFile ? tabsTypeMap.uploadFile : tabsTypeMap.insertUrl,\n fileUpload: {\n error: null,\n loading: false,\n scheduled: false,\n url: '',\n mimeType: '',\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 checkAudio = (value) => {\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 };\n\n checkVideo = (value) => {\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\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\n if (matchDriveUrl(value)) {\n // https://drive.google.com/file/d/11QkK_gUO068amNvZBm9cxZpKX74WYb8q/view\n const id = value.replace(\n /^https:\\/\\/drive\\.google\\.com\\/(?:file\\/d\\/|drive\\/(?:u\\/\\d+\\/)?folders\\/|uc\\?id=)([a-zA-Z0-9_-]+)\\/.*/,\n '$1',\n );\n const urlToUse = `https://drive.google.com/file/d/${id}/preview`;\n\n log('is google drive');\n\n this.handleStateChange({\n urlToUse,\n url: value,\n ends: null,\n invalid: false,\n });\n }\n };\n\n urlChange = (e) => {\n const { value } = e.target || {};\n const { type } = this.props;\n\n if (type && type === 'audio') {\n this.checkAudio(value);\n return;\n } else if (type && type === 'video') {\n this.checkVideo(value);\n return;\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 === tabsTypeMap.insertUrl;\n\n if (!val) {\n if (fileUpload.url) {\n this.handleRemoveFile();\n }\n\n handleClose(val);\n return;\n }\n\n 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 return;\n }\n\n if (!fileUpload.loading) {\n handleClose(val, {\n tag: 'audio',\n src: fileUpload.url,\n });\n return;\n }\n\n this.setState({\n fileUpload: {\n ...fileUpload,\n scheduled: true,\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 mimeType: fileChosen.type,\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 scheduled: false,\n loading: false,\n error: err,\n },\n });\n return;\n }\n\n const { fileUpload } = this.state;\n const callback = fileUpload && fileUpload.scheduled ? this.handleDone.bind(this, true) : undefined;\n\n this.setState(\n {\n fileUpload: {\n ...fileUpload,\n scheduled: false,\n loading: false,\n url: src,\n },\n },\n callback,\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 mimeType: '',\n },\n });\n };\n\n render() {\n const { open, disablePortal, type, edit, uploadSoundSupport } = this.props;\n const { ends, height, invalid, starts, width, url, mimeType, formattedUrl, updating, tabValue, fileUpload } =\n this.state;\n const isYoutube = matchYoutubeUrl(url);\n const isInsertURL = tabValue === tabsTypeMap.insertUrl;\n const isUploadMedia = tabValue === tabsTypeMap.uploadFile;\n const submitIsDisabled = isInsertURL\n ? invalid || url === null || url === undefined\n : !fileUpload.url || fileUpload.scheduled;\n const showUploadFile = uploadSoundSupport?.add && uploadSoundSupport?.delete && type !== 'video';\n\n return (\n <StyledDialog\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 <StyledRow>\n <MuiTabs\n indicatorColor=\"primary\"\n value={tabValue}\n onChange={(event, value) => {\n this.setState({ tabValue: value });\n }}\n >\n {showUploadFile ? <MuiTab value={tabsTypeMap.uploadFile} label=\"Upload file\" /> : null}\n <MuiTab\n value={tabsTypeMap.insertUrl}\n label={type === 'video' ? 'Insert YouTube, Vimeo, or Google Drive URL' : 'Insert SoundCloud URL'}\n />\n </MuiTabs>\n </StyledRow>\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 <StyledDialogContent>\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 </StyledDialogContent>\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 <StyledDialogContent>\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 </StyledDialogContent>\n </React.Fragment>\n )}\n </div>\n )}\n {isUploadMedia && (\n <StyledUploadInput>\n <div>\n {fileUpload.url ? (\n <>\n <StyledRow>\n <audio controls=\"controls\" controlsList=\"nodownload\">\n <source type={mimeType} src={fileUpload.url} />\n </audio>\n <StyledIconButton aria-label=\"delete\" onClick={this.handleRemoveFile}>\n <ActionDelete />\n </StyledIconButton>\n </StyledRow>\n {!fileUpload.scheduled && fileUpload.loading ? (\n <Typography variant=\"subheading\">Loading...</Typography>\n ) : null}\n {fileUpload.scheduled ? (\n <Typography variant=\"subheading\">\n Waiting for Upload to finish, then inserting item...\n </Typography>\n ) : null}\n </>\n ) : !fileUpload.loading ? (\n <StyledInput accept=\"audio/*\" onChange={this.handleUploadFile} type=\"file\" />\n ) : null}\n {!!fileUpload.error && <StyledError variant=\"caption\">{fileUpload.error}</StyledError>}\n </div>\n </StyledUploadInput>\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 </StyledDialog>\n );\n }\n}\n\nexport default MediaDialog;\n"],"mappings":"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","ignoreList":[]}
@@ -43,7 +43,11 @@ var DragDrop = function DragDrop(props) {
43
43
  // console.log({nodeProps.children})
44
44
  return /*#__PURE__*/_react["default"].createElement(_react2.NodeViewWrapper, {
45
45
  className: "drag-in-the-blank",
46
- "data-selected": selected
46
+ "data-selected": selected,
47
+ style: {
48
+ display: 'inline',
49
+ whiteSpace: 'normal'
50
+ }
47
51
  }, /*#__PURE__*/_react["default"].createElement("span", (0, _extends2["default"])({}, attributes, {
48
52
  style: {
49
53
  display: 'inline-flex',
@@ -60,6 +64,7 @@ var DragDrop = function DragDrop(props) {
60
64
  pos: pos,
61
65
  value: attributes,
62
66
  duplicates: options.duplicates,
67
+ selected: selected,
63
68
  onChange: function onChange(choice) {
64
69
  return onValueChange(editor, node, pos, choice);
65
70
  },
@@ -1 +1 @@
1
- {"version":3,"file":"DragInTheBlank.js","names":["_react","_interopRequireDefault","require","_propTypes","_react2","_choice","_omit","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","onValueChange","exports","editor","node","pos","choice","tr","state","setNodeMarkup","undefined","attrs","value","isDone","view","dispatch","onRemoveResponse","omit","DragDrop","props","getPos","options","selected","attributes","inTable","createElement","NodeViewWrapper","className","_extends2","style","display","minHeight","minWidth","position","margin","cursor","n","dragKey","id","targetId","duplicates","onChange","removeResponse","propTypes","PropTypes","object","data","nodeProps","opts","_default"],"sources":["../../../../src/components/respArea/DragInTheBlank/DragInTheBlank.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { NodeViewWrapper } from '@tiptap/react';\nimport DragDropTile from './choice';\nimport omit from 'lodash-es/omit';\n\nexport const onValueChange = (editor, node, pos, choice) => {\n const { tr } = editor.state;\n\n // Merge old and new attributes\n tr.setNodeMarkup(pos, undefined, {\n ...node.attrs,\n ...choice.value,\n });\n tr.isDone = true;\n editor.view.dispatch(tr);\n};\n\nexport const onRemoveResponse = (editor, node, choice) => {\n const { tr } = editor.state;\n\n // Merge old and new attributes\n tr.setNodeMarkup(choice.pos, undefined, omit(node.attrs, ['value', 'id']));\n tr.isDone = true;\n editor.view.dispatch(tr);\n};\n\nconst DragDrop = (props) => {\n const { editor, node, getPos, options, selected } = props;\n const { attrs: attributes } = node;\n const { inTable } = attributes;\n const pos = getPos();\n\n // console.log({nodeProps.children})\n return (\n <NodeViewWrapper className=\"drag-in-the-blank\" data-selected={selected}>\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={attributes}\n dragKey={attributes.id}\n targetId=\"0\"\n pos={pos}\n value={attributes}\n duplicates={options.duplicates}\n onChange={(choice) => onValueChange(editor, node, pos, choice)}\n removeResponse={(choice) => onRemoveResponse(editor, node, choice)}\n ></DragDropTile>\n </span>\n </NodeViewWrapper>\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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DragInTheBlank.js","names":["_react","_interopRequireDefault","require","_propTypes","_react2","_choice","_omit","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","onValueChange","exports","editor","node","pos","choice","tr","state","setNodeMarkup","undefined","attrs","value","isDone","view","dispatch","onRemoveResponse","omit","DragDrop","props","getPos","options","selected","attributes","inTable","createElement","NodeViewWrapper","className","style","display","whiteSpace","_extends2","minHeight","minWidth","position","margin","cursor","n","dragKey","id","targetId","duplicates","onChange","removeResponse","propTypes","PropTypes","object","data","nodeProps","opts","_default"],"sources":["../../../../src/components/respArea/DragInTheBlank/DragInTheBlank.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { NodeViewWrapper } from '@tiptap/react';\nimport DragDropTile from './choice';\nimport omit from 'lodash-es/omit';\n\nexport const onValueChange = (editor, node, pos, choice) => {\n const { tr } = editor.state;\n\n // Merge old and new attributes\n tr.setNodeMarkup(pos, undefined, {\n ...node.attrs,\n ...choice.value,\n });\n tr.isDone = true;\n editor.view.dispatch(tr);\n};\n\nexport const onRemoveResponse = (editor, node, choice) => {\n const { tr } = editor.state;\n\n // Merge old and new attributes\n tr.setNodeMarkup(choice.pos, undefined, omit(node.attrs, ['value', 'id']));\n tr.isDone = true;\n editor.view.dispatch(tr);\n};\n\nconst DragDrop = (props) => {\n const { editor, node, getPos, options, selected } = props;\n const { attrs: attributes } = node;\n const { inTable } = attributes;\n const pos = getPos();\n\n // console.log({nodeProps.children})\n return (\n <NodeViewWrapper\n className=\"drag-in-the-blank\"\n data-selected={selected}\n style={{ display: 'inline', whiteSpace: 'normal' }}\n >\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={attributes}\n dragKey={attributes.id}\n targetId=\"0\"\n pos={pos}\n value={attributes}\n duplicates={options.duplicates}\n selected={selected}\n onChange={(choice) => onValueChange(editor, node, pos, choice)}\n removeResponse={(choice) => onRemoveResponse(editor, node, choice)}\n ></DragDropTile>\n </span>\n </NodeViewWrapper>\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"],"mappings":"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","ignoreList":[]}
@@ -34,7 +34,8 @@ function BlankContent(_ref2) {
34
34
  isDragging = _ref2.isDragging,
35
35
  isOver = _ref2.isOver,
36
36
  dragItem = _ref2.dragItem,
37
- value = _ref2.value;
37
+ value = _ref2.value,
38
+ selected = _ref2.selected;
38
39
  var _useState = (0, _react.useState)(null),
39
40
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
40
41
  hoveredElementSize = _useState2[0],
@@ -74,21 +75,24 @@ function BlankContent(_ref2) {
74
75
  var finalLabel = isDragging ? "\xA0" : label;
75
76
  var hasGrip = finalLabel !== "\xA0";
76
77
  var isPreview = dragItem && isOver;
78
+ var borderStyle = selected ? "2px solid ".concat(_renderUi.color.primaryDark()) : isPreview ? "1px solid ".concat(_renderUi.color.defaults.BORDER_DARK) : "1px solid ".concat(_renderUi.color.defaults.BORDER_LIGHT);
77
79
  return /*#__PURE__*/_react["default"].createElement("div", {
78
80
  ref: elementRef,
81
+ className: selected ? 'selected' : undefined,
79
82
  style: {
80
83
  display: 'inline-flex',
81
84
  minWidth: '178px',
82
85
  minHeight: '36px',
83
86
  background: isPreview ? "".concat(_renderUi.color.defaults.BORDER_LIGHT) : "".concat(_renderUi.color.defaults.WHITE),
84
- border: isPreview ? "1px solid ".concat(_renderUi.color.defaults.BORDER_DARK) : "1px solid ".concat(_renderUi.color.defaults.BORDER_LIGHT),
87
+ border: borderStyle,
85
88
  boxSizing: 'border-box',
86
89
  borderRadius: '3px',
87
90
  overflow: 'hidden',
88
91
  position: 'relative',
89
92
  padding: '8px 8px 8px 35px',
90
93
  width: hoveredElementSize ? hoveredElementSize.width : undefined,
91
- height: hoveredElementSize ? hoveredElementSize.height : undefined
94
+ height: hoveredElementSize ? hoveredElementSize.height : undefined,
95
+ touchAction: 'none'
92
96
  },
93
97
  "data-key": n.index,
94
98
  contentEditable: false
@@ -112,7 +116,8 @@ BlankContent.propTypes = {
112
116
  isDragging: _propTypes["default"].bool,
113
117
  isOver: _propTypes["default"].bool,
114
118
  dragItem: _propTypes["default"].object,
115
- value: _propTypes["default"].object
119
+ value: _propTypes["default"].object,
120
+ selected: _propTypes["default"].bool
116
121
  };
117
122
  function DragDropChoice(_ref3) {
118
123
  var _dragItem$data;
@@ -124,7 +129,8 @@ function DragDropChoice(_ref3) {
124
129
  onChange = _ref3.onChange,
125
130
  removeResponse = _ref3.removeResponse,
126
131
  duplicates = _ref3.duplicates,
127
- pos = _ref3.pos;
132
+ pos = _ref3.pos,
133
+ selected = _ref3.selected;
128
134
  var _useDraggable = (0, _core.useDraggable)({
129
135
  id: "drag-".concat(n.index),
130
136
  disabled: disabled || !(value !== null && value !== void 0 && value.value),
@@ -216,7 +222,8 @@ function DragDropChoice(_ref3) {
216
222
  isDragging: isDragging,
217
223
  isOver: isOver,
218
224
  dragItem: dragItem === null || dragItem === void 0 || (_dragItem$data = dragItem.data) === null || _dragItem$data === void 0 ? void 0 : _dragItem$data.current,
219
- value: value
225
+ value: value,
226
+ selected: selected
220
227
  }, children);
221
228
  var dragEl = !value ? /*#__PURE__*/_react["default"].createElement("span", {
222
229
  ref: setDropNodeRef
@@ -236,7 +243,8 @@ DragDropChoice.propTypes = {
236
243
  n: _propTypes["default"].object.isRequired,
237
244
  onChange: _propTypes["default"].func.isRequired,
238
245
  removeResponse: _propTypes["default"].func.isRequired,
239
- duplicates: _propTypes["default"].bool
246
+ duplicates: _propTypes["default"].bool,
247
+ selected: _propTypes["default"].bool
240
248
  };
241
249
  var _default = exports["default"] = DragDropChoice;
242
250
  //# sourceMappingURL=choice.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"choice.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_core","_renderUi","_mathRendering","_styles","_classnames","_RespArea","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","StyledContent","styled","_ref","theme","border","concat","palette","primary","main","fontSize","BlankContent","_ref2","_dragItem$value","children","isDragging","isOver","dragItem","value","_useState","useState","_useState2","_slicedToArray2","hoveredElementSize","setHoveredElementSize","elementRef","useRef","handleClick","event","current","contains","target","classList","add","remove","useEffect","document","addEventListener","removeEventListener","renderMath","node","width","offsetWidth","height","offsetHeight","label","finalLabel","hasGrip","isPreview","createElement","ref","style","display","minWidth","minHeight","background","color","defaults","BORDER_LIGHT","WHITE","BORDER_DARK","boxSizing","borderRadius","overflow","position","padding","undefined","index","contentEditable","GripIcon","top","left","dangerouslySetInnerHTML","__html","propTypes","PropTypes","object","bool","DragDropChoice","_ref3","_dragItem$data","disabled","instanceId","onChange","removeResponse","duplicates","pos","_useDraggable","useDraggable","id","data","opts","type","fromChoice","onRemove","draggedData","onDrop","dropData","isValidBlank","dragAttributes","attributes","dragListeners","listeners","setDragNodeRef","setNodeRef","_useDroppable","useDroppable","accepts","setTimeout","setDropNodeRef","active","dragContent","dragEl","_extends2","content","className","classnames","string","isRequired","func","_default","exports"],"sources":["../../../../src/components/respArea/DragInTheBlank/choice.jsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDraggable, useDroppable } from '@dnd-kit/core';\nimport { color } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { styled } from '@mui/material/styles';\nimport classnames from 'classnames';\n\nimport { GripIcon } from '../../icons/RespArea';\n\nconst StyledContent = styled('span')(({ theme }) => ({\n border: `solid 0px ${theme.palette.primary.main}`,\n '& mjx-frac': {\n fontSize: '120% !important',\n },\n}));\n\nexport function BlankContent({ n, children, isDragging, isOver, dragItem, value }) {\n const [hoveredElementSize, setHoveredElementSize] = useState(null);\n const elementRef = useRef(null);\n\n const handleClick = (event) => {\n if (!elementRef.current) return;\n\n if (elementRef.current.contains(event.target)) {\n elementRef.current.classList.add('selected');\n } else {\n elementRef.current.classList.remove('selected');\n }\n };\n\n useEffect(() => {\n document.addEventListener('click', handleClick);\n return () => {\n document.removeEventListener('click', handleClick);\n };\n }, []);\n\n useEffect(() => {\n if (elementRef.current && typeof renderMath === 'function') {\n renderMath(elementRef.current);\n }\n }, [value?.value, isOver, dragItem?.value?.value]);\n\n useEffect(() => {\n if (isOver && elementRef.current && !hoveredElementSize) {\n const node = elementRef.current;\n setHoveredElementSize({ width: node.offsetWidth, height: node.offsetHeight });\n } else if (!isOver && hoveredElementSize) {\n setHoveredElementSize(null);\n }\n }, [isOver, hoveredElementSize]);\n\n const label = dragItem && isOver ? dragItem.value.value : value.value || '\\u00A0';\n const finalLabel = isDragging ? '\\u00A0' : label;\n const hasGrip = finalLabel !== '\\u00A0';\n const isPreview = dragItem && isOver;\n\n return (\n <div\n ref={elementRef}\n style={{\n display: 'inline-flex',\n minWidth: '178px',\n minHeight: '36px',\n background: isPreview ? `${color.defaults.BORDER_LIGHT}` : `${color.defaults.WHITE}`,\n border: isPreview ? `1px solid ${color.defaults.BORDER_DARK}` : `1px solid ${color.defaults.BORDER_LIGHT}`,\n boxSizing: 'border-box',\n borderRadius: '3px',\n overflow: 'hidden',\n position: 'relative',\n padding: '8px 8px 8px 35px',\n width: hoveredElementSize ? hoveredElementSize.width : undefined,\n height: hoveredElementSize ? hoveredElementSize.height : undefined,\n }}\n data-key={n.index}\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\nBlankContent.propTypes = {\n n: PropTypes.object,\n children: PropTypes.node,\n isDragging: PropTypes.bool,\n isOver: PropTypes.bool,\n dragItem: PropTypes.object,\n value: PropTypes.object,\n};\n\nfunction DragDropChoice({ value, disabled, instanceId, children, n, onChange, removeResponse, duplicates, pos }) {\n const {\n attributes: dragAttributes,\n listeners: dragListeners,\n setNodeRef: setDragNodeRef,\n isDragging,\n } = useDraggable({\n id: `drag-${n.index}`,\n disabled: disabled || !value?.value,\n data: {\n id: `drag-${n.index}`,\n value,\n instanceId,\n n,\n pos,\n opts: { duplicates },\n type: 'drag-in-the-blank-placed-choice',\n fromChoice: !value,\n onRemove: (draggedData) => removeResponse(draggedData),\n onDrop: (draggedData, dropData) => {\n // check if we're dropping into a blank\n const isValidBlank = dropData?.type === 'drag-in-the-blank-drop-choice';\n\n if (!isValidBlank) return;\n\n // place into blank\n onChange(draggedData);\n\n if (!duplicates && draggedData.fromChoice) {\n removeResponse(draggedData);\n }\n },\n },\n });\n\n const {\n setNodeRef: setDropNodeRef,\n isOver,\n active: dragItem,\n } = useDroppable({\n id: `drop-${n.index}`,\n data: {\n type: 'drag-in-the-blank-drop-choice',\n accepts: ['drag-in-the-blank-choice', 'drag-in-the-blank-placed-choice'],\n instanceId: instanceId,\n value: value,\n id: `drop-${n.index}`,\n pos,\n n,\n opts: { duplicates },\n onDrop: (draggedData, dropData) => {\n // check if we're dropping into a blank\n const isValidBlank = dropData?.type === 'drag-in-the-blank-drop-choice';\n\n if (!isValidBlank) return;\n\n // if the dragged and dropped data are the same, do nothing\n if (draggedData.value.id === dropData.value.id) return;\n\n if (draggedData.type === 'drag-in-the-blank-choice') {\n // place into blank\n onChange(draggedData);\n\n if (!duplicates && draggedData.fromChoice) {\n removeResponse(draggedData);\n }\n return;\n }\n\n // moving placed choice between blanks\n if (draggedData.type === 'drag-in-the-blank-placed-choice') {\n // clear target blank\n removeResponse(dropData);\n\n // set new blank value\n onChange(draggedData);\n\n // clear original blank - slight delay to ensure state updates correctly\n setTimeout(() => removeResponse(draggedData), 10);\n }\n },\n },\n });\n\n const setNodeRef = (node) => {\n setDragNodeRef(node);\n setDropNodeRef(node);\n };\n\n const dragContent = (\n <BlankContent n={n} isDragging={isDragging} isOver={isOver} dragItem={dragItem?.data?.current} value={value}>\n {children}\n </BlankContent>\n );\n\n const dragEl = !value ? (\n <span ref={setDropNodeRef}>{dragContent}</span>\n ) : (\n <span ref={setNodeRef} {...dragAttributes} {...dragListeners}>\n {dragContent}\n </span>\n );\n\n const content = <StyledContent className={classnames(isOver && 'over')}>{dragEl}</StyledContent>;\n\n return content;\n}\n\nDragDropChoice.propTypes = {\n value: PropTypes.object,\n disabled: PropTypes.bool,\n instanceId: PropTypes.string,\n children: PropTypes.node,\n n: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n removeResponse: PropTypes.func.isRequired,\n duplicates: PropTypes.bool,\n};\n\nexport default DragDropChoice;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"choice.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_core","_renderUi","_mathRendering","_styles","_classnames","_RespArea","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","StyledContent","styled","_ref","theme","border","concat","palette","primary","main","fontSize","BlankContent","_ref2","_dragItem$value","children","isDragging","isOver","dragItem","value","selected","_useState","useState","_useState2","_slicedToArray2","hoveredElementSize","setHoveredElementSize","elementRef","useRef","handleClick","event","current","contains","target","classList","add","remove","useEffect","document","addEventListener","removeEventListener","renderMath","node","width","offsetWidth","height","offsetHeight","label","finalLabel","hasGrip","isPreview","borderStyle","color","primaryDark","defaults","BORDER_DARK","BORDER_LIGHT","createElement","ref","className","undefined","style","display","minWidth","minHeight","background","WHITE","boxSizing","borderRadius","overflow","position","padding","touchAction","index","contentEditable","GripIcon","top","left","dangerouslySetInnerHTML","__html","propTypes","PropTypes","object","bool","DragDropChoice","_ref3","_dragItem$data","disabled","instanceId","onChange","removeResponse","duplicates","pos","_useDraggable","useDraggable","id","data","opts","type","fromChoice","onRemove","draggedData","onDrop","dropData","isValidBlank","dragAttributes","attributes","dragListeners","listeners","setDragNodeRef","setNodeRef","_useDroppable","useDroppable","accepts","setTimeout","setDropNodeRef","active","dragContent","dragEl","_extends2","content","classnames","string","isRequired","func","_default","exports"],"sources":["../../../../src/components/respArea/DragInTheBlank/choice.jsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDraggable, useDroppable } from '@dnd-kit/core';\nimport { color } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { styled } from '@mui/material/styles';\nimport classnames from 'classnames';\n\nimport { GripIcon } from '../../icons/RespArea';\n\nconst StyledContent = styled('span')(({ theme }) => ({\n border: `solid 0px ${theme.palette.primary.main}`,\n '& mjx-frac': {\n fontSize: '120% !important',\n },\n}));\n\nexport function BlankContent({ n, children, isDragging, isOver, dragItem, value, selected }) {\n const [hoveredElementSize, setHoveredElementSize] = useState(null);\n const elementRef = useRef(null);\n\n const handleClick = (event) => {\n if (!elementRef.current) return;\n\n if (elementRef.current.contains(event.target)) {\n elementRef.current.classList.add('selected');\n } else {\n elementRef.current.classList.remove('selected');\n }\n };\n\n useEffect(() => {\n document.addEventListener('click', handleClick);\n return () => {\n document.removeEventListener('click', handleClick);\n };\n }, []);\n\n useEffect(() => {\n if (elementRef.current && typeof renderMath === 'function') {\n renderMath(elementRef.current);\n }\n }, [value?.value, isOver, dragItem?.value?.value]);\n\n useEffect(() => {\n if (isOver && elementRef.current && !hoveredElementSize) {\n const node = elementRef.current;\n setHoveredElementSize({ width: node.offsetWidth, height: node.offsetHeight });\n } else if (!isOver && hoveredElementSize) {\n setHoveredElementSize(null);\n }\n }, [isOver, hoveredElementSize]);\n\n const label = dragItem && isOver ? dragItem.value.value : value.value || '\\u00A0';\n const finalLabel = isDragging ? '\\u00A0' : label;\n const hasGrip = finalLabel !== '\\u00A0';\n const isPreview = dragItem && isOver;\n\n const borderStyle = selected\n ? `2px solid ${color.primaryDark()}`\n : isPreview\n ? `1px solid ${color.defaults.BORDER_DARK}`\n : `1px solid ${color.defaults.BORDER_LIGHT}`;\n\n return (\n <div\n ref={elementRef}\n className={selected ? 'selected' : undefined}\n style={{\n display: 'inline-flex',\n minWidth: '178px',\n minHeight: '36px',\n background: isPreview ? `${color.defaults.BORDER_LIGHT}` : `${color.defaults.WHITE}`,\n border: borderStyle,\n boxSizing: 'border-box',\n borderRadius: '3px',\n overflow: 'hidden',\n position: 'relative',\n padding: '8px 8px 8px 35px',\n width: hoveredElementSize ? hoveredElementSize.width : undefined,\n height: hoveredElementSize ? hoveredElementSize.height : undefined,\n touchAction: 'none',\n }}\n data-key={n.index}\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\nBlankContent.propTypes = {\n n: PropTypes.object,\n children: PropTypes.node,\n isDragging: PropTypes.bool,\n isOver: PropTypes.bool,\n dragItem: PropTypes.object,\n value: PropTypes.object,\n selected: PropTypes.bool,\n};\n\nfunction DragDropChoice({\n value,\n disabled,\n instanceId,\n children,\n n,\n onChange,\n removeResponse,\n duplicates,\n pos,\n selected,\n}) {\n const {\n attributes: dragAttributes,\n listeners: dragListeners,\n setNodeRef: setDragNodeRef,\n isDragging,\n } = useDraggable({\n id: `drag-${n.index}`,\n disabled: disabled || !value?.value,\n data: {\n id: `drag-${n.index}`,\n value,\n instanceId,\n n,\n pos,\n opts: { duplicates },\n type: 'drag-in-the-blank-placed-choice',\n fromChoice: !value,\n onRemove: (draggedData) => removeResponse(draggedData),\n onDrop: (draggedData, dropData) => {\n // check if we're dropping into a blank\n const isValidBlank = dropData?.type === 'drag-in-the-blank-drop-choice';\n\n if (!isValidBlank) return;\n\n // place into blank\n onChange(draggedData);\n\n if (!duplicates && draggedData.fromChoice) {\n removeResponse(draggedData);\n }\n },\n },\n });\n\n const {\n setNodeRef: setDropNodeRef,\n isOver,\n active: dragItem,\n } = useDroppable({\n id: `drop-${n.index}`,\n data: {\n type: 'drag-in-the-blank-drop-choice',\n accepts: ['drag-in-the-blank-choice', 'drag-in-the-blank-placed-choice'],\n instanceId: instanceId,\n value: value,\n id: `drop-${n.index}`,\n pos,\n n,\n opts: { duplicates },\n onDrop: (draggedData, dropData) => {\n // check if we're dropping into a blank\n const isValidBlank = dropData?.type === 'drag-in-the-blank-drop-choice';\n\n if (!isValidBlank) return;\n\n // if the dragged and dropped data are the same, do nothing\n if (draggedData.value.id === dropData.value.id) return;\n\n if (draggedData.type === 'drag-in-the-blank-choice') {\n // place into blank\n onChange(draggedData);\n\n if (!duplicates && draggedData.fromChoice) {\n removeResponse(draggedData);\n }\n return;\n }\n\n // moving placed choice between blanks\n if (draggedData.type === 'drag-in-the-blank-placed-choice') {\n // clear target blank\n removeResponse(dropData);\n\n // set new blank value\n onChange(draggedData);\n\n // clear original blank - slight delay to ensure state updates correctly\n setTimeout(() => removeResponse(draggedData), 10);\n }\n },\n },\n });\n\n const setNodeRef = (node) => {\n setDragNodeRef(node);\n setDropNodeRef(node);\n };\n\n const dragContent = (\n <BlankContent\n n={n}\n isDragging={isDragging}\n isOver={isOver}\n dragItem={dragItem?.data?.current}\n value={value}\n selected={selected}\n >\n {children}\n </BlankContent>\n );\n\n const dragEl = !value ? (\n <span ref={setDropNodeRef}>{dragContent}</span>\n ) : (\n <span ref={setNodeRef} {...dragAttributes} {...dragListeners}>\n {dragContent}\n </span>\n );\n\n const content = <StyledContent className={classnames(isOver && 'over')}>{dragEl}</StyledContent>;\n\n return content;\n}\n\nDragDropChoice.propTypes = {\n value: PropTypes.object,\n disabled: PropTypes.bool,\n instanceId: PropTypes.string,\n children: PropTypes.node,\n n: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n removeResponse: PropTypes.func.isRequired,\n duplicates: PropTypes.bool,\n selected: PropTypes.bool,\n};\n\nexport default DragDropChoice;\n"],"mappings":"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","ignoreList":[]}
@@ -10,7 +10,9 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _react2 = require("@tiptap/react");
13
+ var _reactDom = _interopRequireDefault(require("react-dom"));
13
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
+ var _customToolbarWrapper = _interopRequireDefault(require("../../extensions/custom-toolbar-wrapper"));
14
16
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
15
17
  var ExplicitConstructedResponse = function ExplicitConstructedResponse(props) {
16
18
  var editor = props.editor,
@@ -27,7 +29,7 @@ var ExplicitConstructedResponse = function ExplicitConstructedResponse(props) {
27
29
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
28
30
  showToolbar = _useState2[0],
29
31
  setShowToolbar = _useState2[1];
30
- var EcrToolbar = respAreaToolbar(node, editor, function () {});
32
+ var EcrToolbar = respAreaToolbar([node, pos], editor, function () {});
31
33
  var toolbarRef = (0, _react.useRef)(null);
32
34
  var error;
33
35
  if (errorFn) {
@@ -36,13 +38,6 @@ var ExplicitConstructedResponse = function ExplicitConstructedResponse(props) {
36
38
  var respIndex = parseInt(attributes.index, 10);
37
39
  error = !!(errorValue !== null && errorValue !== void 0 && (_errorValue$respIndex = errorValue[respIndex]) !== null && _errorValue$respIndex !== void 0 && _errorValue$respIndex[0]);
38
40
  }
39
- var handleDone = function handleDone(newLatex) {
40
- updateAttributes({
41
- latex: newLatex
42
- });
43
- setShowToolbar(false);
44
- editor.commands.focus();
45
- };
46
41
  (0, _react.useEffect)(function () {
47
42
  var selection = editor.state.selection;
48
43
  var onlyThisNodeSelected = selection.from + node.nodeSize === selection.to;
@@ -56,7 +51,8 @@ var ExplicitConstructedResponse = function ExplicitConstructedResponse(props) {
56
51
  }, [editor, node, selected]);
57
52
  (0, _react.useEffect)(function () {
58
53
  var handleClickOutside = function handleClickOutside(event) {
59
- if (toolbarRef.current && !toolbarRef.current.contains(event.target) && !event.target.closest('[data-inline-node]')) {
54
+ var insideCharacterPicker = event.target.closest('.insert-character-dialog') || event.target.closest('[data-toolbar-for]');
55
+ if (!insideCharacterPicker && toolbarRef.current && !toolbarRef.current.contains(event.target) && !event.target.closest('[data-inline-node]')) {
60
56
  setShowToolbar(false);
61
57
  }
62
58
  };
@@ -100,13 +96,35 @@ var ExplicitConstructedResponse = function ExplicitConstructedResponse(props) {
100
96
  dangerouslySetInnerHTML: {
101
97
  __html: value || '<div>&nbsp;</div>'
102
98
  }
103
- })), showToolbar && /*#__PURE__*/_react["default"].createElement("div", {
99
+ })), showToolbar && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
104
100
  ref: toolbarRef,
105
101
  className: "absolute z-50 bg-white shadow-lg rounded p-2",
106
102
  style: {
107
103
  zIndex: 1
108
104
  }
109
- }, /*#__PURE__*/_react["default"].createElement(EcrToolbar, null)));
105
+ }, /*#__PURE__*/_react["default"].createElement(EcrToolbar, null)), editor._tiptapContainerEl && /*#__PURE__*/_reactDom["default"].createPortal(/*#__PURE__*/_react["default"].createElement(_customToolbarWrapper["default"], {
106
+ deletable: true,
107
+ toolbarOpts: {
108
+ minWidth: 'auto'
109
+ },
110
+ autoWidth: true,
111
+ style: {
112
+ top: -40,
113
+ left: 0,
114
+ right: 0
115
+ },
116
+ onDelete: function onDelete() {
117
+ var tr = editor.state.tr;
118
+ tr["delete"](pos, pos + node.nodeSize);
119
+ // Prevent the debounced onBlur/onDone from firing into the
120
+ // now-deleted node's stale position
121
+ editor._toolbarOpened = false;
122
+ editor.view.dispatch(tr);
123
+ setShowToolbar(false);
124
+ editor.commands.focus();
125
+ },
126
+ showDone: false
127
+ }), editor._tiptapContainerEl)));
110
128
  };
111
129
  ExplicitConstructedResponse.propTypes = {
112
130
  attributes: _propTypes["default"].object,
@@ -1 +1 @@
1
- {"version":3,"file":"ExplicitConstructedResponse.js","names":["_react","_interopRequireWildcard","require","_react2","_propTypes","_interopRequireDefault","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ExplicitConstructedResponse","props","editor","node","getPos","options","selected","attributes","attrs","value","respAreaToolbar","errorFn","error","pos","_useState","useState","_useState2","_slicedToArray2","showToolbar","setShowToolbar","EcrToolbar","toolbarRef","useRef","_errorValue$respIndex","errorValue","respIndex","parseInt","index","handleDone","newLatex","updateAttributes","latex","commands","focus","useEffect","selection","state","onlyThisNodeSelected","from","nodeSize","to","handleClickOutside","event","current","contains","target","closest","document","addEventListener","removeEventListener","createElement","NodeViewWrapper","className","style","display","minHeight","position","cursor","_extends2","width","height","backgroundColor","border","concat","boxSizing","borderRadius","overflow","padding","margin","minWidth","visibility","onClick","dangerouslySetInnerHTML","__html","ref","zIndex","propTypes","PropTypes","object","any","string","isFocused","bool","_default","exports"],"sources":["../../../src/components/respArea/ExplicitConstructedResponse.jsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { NodeViewWrapper } from '@tiptap/react';\nimport PropTypes from 'prop-types';\n\nconst ExplicitConstructedResponse = (props) => {\n const { editor, node, getPos, options, selected } = props;\n const { attrs: attributes } = node;\n const { value } = attributes;\n const { respAreaToolbar, error: errorFn } = options;\n const pos = getPos();\n const [showToolbar, setShowToolbar] = useState(false);\n const EcrToolbar = respAreaToolbar(node, editor, () => {});\n const toolbarRef = useRef(null);\n\n let error;\n\n if (errorFn) {\n const errorValue = errorFn();\n const respIndex = parseInt(attributes.index, 10);\n\n error = !!errorValue?.[respIndex]?.[0];\n }\n\n const handleDone = (newLatex) => {\n updateAttributes({ latex: newLatex });\n setShowToolbar(false);\n editor.commands.focus();\n };\n\n useEffect(() => {\n const { selection } = editor.state;\n const onlyThisNodeSelected = selection.from + node.nodeSize === selection.to;\n\n if (selected) {\n if (onlyThisNodeSelected) {\n setShowToolbar(selected);\n }\n } else {\n setShowToolbar(selected);\n }\n }, [editor, node, selected]);\n\n useEffect(() => {\n const handleClickOutside = (event) => {\n if (\n toolbarRef.current &&\n !toolbarRef.current.contains(event.target) &&\n !event.target.closest('[data-inline-node]')\n ) {\n setShowToolbar(false);\n }\n };\n\n if (showToolbar) {\n document.addEventListener('mousedown', handleClickOutside);\n } else {\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, [showToolbar]);\n\n return (\n <NodeViewWrapper\n className=\"drag-in-the-blank\"\n data-selected={selected}\n style={{\n display: 'inline-flex',\n minHeight: '55px',\n position: 'relative',\n cursor: 'pointer',\n }}\n >\n <div\n {...attributes}\n style={{\n display: 'inline-flex',\n width: '100%',\n minHeight: '46px',\n height: '46px',\n backgroundColor: '#FFF',\n border: `1px solid ${error ? 'red' : '#C0C3CF'}`,\n boxSizing: 'border-box',\n borderRadius: '4px',\n overflow: 'hidden',\n padding: '12px 21px',\n margin: '0 4px',\n minWidth: '178px',\n visibility: showToolbar ? 'hidden' : 'visible',\n }}\n onClick={() => setShowToolbar(true)}\n dangerouslySetInnerHTML={{\n __html: value || '<div>&nbsp;</div>',\n }}\n />\n {showToolbar && (\n <div ref={toolbarRef} className=\"absolute z-50 bg-white shadow-lg rounded p-2\" style={{ zIndex: 1 }}>\n <EcrToolbar />\n </div>\n )}\n </NodeViewWrapper>\n );\n};\n\nExplicitConstructedResponse.propTypes = {\n attributes: PropTypes.object,\n error: PropTypes.any,\n value: PropTypes.string,\n isFocused: PropTypes.bool,\n};\n\nexport default ExplicitConstructedResponse;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ExplicitConstructedResponse.js","names":["_react","_interopRequireWildcard","require","_react2","_reactDom","_interopRequireDefault","_propTypes","_customToolbarWrapper","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ExplicitConstructedResponse","props","editor","node","getPos","options","selected","attributes","attrs","value","respAreaToolbar","errorFn","error","pos","_useState","useState","_useState2","_slicedToArray2","showToolbar","setShowToolbar","EcrToolbar","toolbarRef","useRef","_errorValue$respIndex","errorValue","respIndex","parseInt","index","useEffect","selection","state","onlyThisNodeSelected","from","nodeSize","to","handleClickOutside","event","insideCharacterPicker","target","closest","current","contains","document","addEventListener","removeEventListener","createElement","NodeViewWrapper","className","style","display","minHeight","position","cursor","_extends2","width","height","backgroundColor","border","concat","boxSizing","borderRadius","overflow","padding","margin","minWidth","visibility","onClick","dangerouslySetInnerHTML","__html","Fragment","ref","zIndex","_tiptapContainerEl","ReactDOM","createPortal","deletable","toolbarOpts","autoWidth","top","left","right","onDelete","tr","_toolbarOpened","view","dispatch","commands","focus","showDone","propTypes","PropTypes","object","any","string","isFocused","bool","_default","exports"],"sources":["../../../src/components/respArea/ExplicitConstructedResponse.jsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { NodeViewWrapper } from '@tiptap/react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport CustomToolbarWrapper from '../../extensions/custom-toolbar-wrapper';\n\nconst ExplicitConstructedResponse = (props) => {\n const { editor, node, getPos, options, selected } = props;\n const { attrs: attributes } = node;\n const { value } = attributes;\n const { respAreaToolbar, error: errorFn } = options;\n const pos = getPos();\n const [showToolbar, setShowToolbar] = useState(false);\n const EcrToolbar = respAreaToolbar([node, pos], editor, () => {});\n const toolbarRef = useRef(null);\n\n let error;\n\n if (errorFn) {\n const errorValue = errorFn();\n const respIndex = parseInt(attributes.index, 10);\n\n error = !!errorValue?.[respIndex]?.[0];\n }\n\n useEffect(() => {\n const { selection } = editor.state;\n const onlyThisNodeSelected = selection.from + node.nodeSize === selection.to;\n\n if (selected) {\n if (onlyThisNodeSelected) {\n setShowToolbar(selected);\n }\n } else {\n setShowToolbar(selected);\n }\n }, [editor, node, selected]);\n\n useEffect(() => {\n const handleClickOutside = (event) => {\n const insideCharacterPicker =\n event.target.closest('.insert-character-dialog') || event.target.closest('[data-toolbar-for]');\n\n if (\n !insideCharacterPicker &&\n toolbarRef.current &&\n !toolbarRef.current.contains(event.target) &&\n !event.target.closest('[data-inline-node]')\n ) {\n setShowToolbar(false);\n }\n };\n\n if (showToolbar) {\n document.addEventListener('mousedown', handleClickOutside);\n } else {\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, [showToolbar]);\n\n return (\n <NodeViewWrapper\n className=\"drag-in-the-blank\"\n data-selected={selected}\n style={{\n display: 'inline-flex',\n minHeight: '55px',\n position: 'relative',\n cursor: 'pointer',\n }}\n >\n <div\n {...attributes}\n style={{\n display: 'inline-flex',\n width: '100%',\n minHeight: '46px',\n height: '46px',\n backgroundColor: '#FFF',\n border: `1px solid ${error ? 'red' : '#C0C3CF'}`,\n boxSizing: 'border-box',\n borderRadius: '4px',\n overflow: 'hidden',\n padding: '12px 21px',\n margin: '0 4px',\n minWidth: '178px',\n visibility: showToolbar ? 'hidden' : 'visible',\n }}\n onClick={() => setShowToolbar(true)}\n dangerouslySetInnerHTML={{\n __html: value || '<div>&nbsp;</div>',\n }}\n />\n {showToolbar && (\n <React.Fragment>\n <div ref={toolbarRef} className=\"absolute z-50 bg-white shadow-lg rounded p-2\" style={{ zIndex: 1 }}>\n <EcrToolbar />\n </div>\n {editor._tiptapContainerEl &&\n ReactDOM.createPortal(\n <CustomToolbarWrapper\n deletable\n toolbarOpts={{ minWidth: 'auto' }}\n autoWidth\n style={{ top: -40, left: 0, right: 0 }}\n onDelete={() => {\n const { tr } = editor.state;\n tr.delete(pos, pos + node.nodeSize);\n // Prevent the debounced onBlur/onDone from firing into the\n // now-deleted node's stale position\n editor._toolbarOpened = false;\n editor.view.dispatch(tr);\n setShowToolbar(false);\n editor.commands.focus();\n }}\n showDone={false}\n />,\n editor._tiptapContainerEl,\n )}\n </React.Fragment>\n )}\n </NodeViewWrapper>\n );\n};\n\nExplicitConstructedResponse.propTypes = {\n attributes: PropTypes.object,\n error: PropTypes.any,\n value: PropTypes.string,\n isFocused: PropTypes.bool,\n};\n\nexport default ExplicitConstructedResponse;\n"],"mappings":"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","ignoreList":[]}