@pie-lib/editable-html 9.2.2 → 9.2.3-next.22

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 (38) hide show
  1. package/lib/editor.js.map +1 -1
  2. package/lib/index.js.map +1 -1
  3. package/lib/parse-html.js.map +1 -1
  4. package/lib/plugins/characters/custom-popper.js.map +1 -1
  5. package/lib/plugins/characters/index.js.map +1 -1
  6. package/lib/plugins/characters/utils.js.map +1 -1
  7. package/lib/plugins/image/alt-dialog.js.map +1 -1
  8. package/lib/plugins/image/component.js.map +1 -1
  9. package/lib/plugins/image/image-toolbar.js.map +1 -1
  10. package/lib/plugins/image/index.js.map +1 -1
  11. package/lib/plugins/image/insert-image-handler.js.map +1 -1
  12. package/lib/plugins/index.js.map +1 -1
  13. package/lib/plugins/list/index.js.map +1 -1
  14. package/lib/plugins/math/index.js.map +1 -1
  15. package/lib/plugins/media/index.js.map +1 -1
  16. package/lib/plugins/media/media-dialog.js.map +1 -1
  17. package/lib/plugins/media/media-toolbar.js.map +1 -1
  18. package/lib/plugins/media/media-wrapper.js.map +1 -1
  19. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
  20. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
  21. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
  22. package/lib/plugins/respArea/icons/index.js.map +1 -1
  23. package/lib/plugins/respArea/index.js.map +1 -1
  24. package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
  25. package/lib/plugins/respArea/utils.js.map +1 -1
  26. package/lib/plugins/table/icons/index.js.map +1 -1
  27. package/lib/plugins/table/index.js.map +1 -1
  28. package/lib/plugins/table/table-toolbar.js.map +1 -1
  29. package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
  30. package/lib/plugins/toolbar/done-button.js.map +1 -1
  31. package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
  32. package/lib/plugins/toolbar/index.js.map +1 -1
  33. package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
  34. package/lib/plugins/toolbar/toolbar.js.map +1 -1
  35. package/lib/plugins/utils.js.map +1 -1
  36. package/lib/serialization.js.map +1 -1
  37. package/lib/theme.js.map +1 -1
  38. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/image/component.jsx"],"names":["log","size","s","Component","percent","multiplier","img","naturalWidth","naturalHeight","width","floored","parseInt","toFixed","props","node","editor","update","data","w","get","set","getPercentFromWidth","equals","change","c","setNodeByKey","key","window","addEventListener","startResizing","stopResizing","maxImageWidth","maxImageHeight","box","style","dimensions","height","updateImageDimensions","setState","e","bounds","target","getBoundingClientRect","clientX","left","clientY","top","hasMinimumWidth","hasDimensionsConstraints","removeEventListener","initialDim","nextDim","keepAspectRatio","resizeType","imageAspectRatio","applySizeData","resizeHandle","resize","initialiseResize","objectFit","classes","attributes","onFocus","active","value","isFocused","selection","hasEdgeIn","src","loaded","deleteStatus","alignment","alt","margin","justifyContent","getSize","className","root","loading","pendingDelete","progressClasses","progress","hideProgress","imageContainer","image","ref","loadImage","React","SlatePropTypes","isRequired","PropTypes","shape","func","object","onBlur","number","styles","theme","portal","position","opacity","transition","floatingButtonRow","backgroundColor","borderRadius","display","padding","border","boxShadow","right","alignItems","palette","primary","main","cursor","marginLeft","marginRight","drawableHeight","minHeight"],"mappings":"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","sourcesContent":["import LinearProgress from '@material-ui/core/LinearProgress';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport debug from 'debug';\nimport { withStyles } from '@material-ui/core/styles';\nimport SlatePropTypes from 'slate-prop-types';\n\nconst log = debug('@pie-lib:editable-html:plugins:image:component');\n\nconst size = s => (s ? `${s}px` : 'auto');\n\nexport class Component extends React.Component {\n static propTypes = {\n node: SlatePropTypes.node.isRequired,\n editor: PropTypes.shape({\n change: PropTypes.func.isRequired,\n value: PropTypes.object\n }).isRequired,\n classes: PropTypes.object.isRequired,\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n maxImageWidth: PropTypes.number,\n maxImageHeight: PropTypes.number\n };\n\n getWidth = percent => {\n const multiplier = percent / 100;\n return this.img.naturalWidth * multiplier;\n };\n\n getHeight = percent => {\n const multiplier = percent / 100;\n return this.img.naturalHeight * multiplier;\n };\n\n getPercentFromWidth = width => {\n var floored = (width / this.img.naturalWidth) * 4;\n return parseInt(floored.toFixed(0) * 25, 10);\n };\n\n applySizeData = () => {\n const { node, editor } = this.props;\n\n let update = node.data;\n\n const w = update.get('width');\n if (w) {\n update = update.set('resizePercent', this.getPercentFromWidth(w));\n }\n\n log('[applySizeData] update: ', update);\n\n if (!update.equals(node.data)) {\n editor.change(c => c.setNodeByKey(node.key, { data: update }));\n }\n };\n\n initialiseResize = () => {\n window.addEventListener('mousemove', this.startResizing, false);\n window.addEventListener('mouseup', this.stopResizing, false);\n };\n\n componentDidMount() {\n this.applySizeData();\n\n const resizeHandle = this.resize;\n\n if (resizeHandle) {\n resizeHandle.addEventListener('mousedown', this.initialiseResize, false);\n }\n }\n\n componentDidUpdate() {\n this.applySizeData();\n }\n\n getSize(data) {\n return {\n width: size(data.get('width')),\n height: size(data.get('height')),\n objectFit: 'contain'\n };\n }\n\n loadImage = () => {\n let { maxImageWidth, maxImageHeight } = this.props || {};\n maxImageWidth = maxImageWidth || 700;\n maxImageHeight = maxImageHeight || 900;\n\n const box = this.img;\n\n //on first load\n if (!box.style.width || box.style.width === 'auto') {\n const dimensions = {\n width: (box && box.naturalWidth) || 100,\n height: (box && box.naturalHeight) || 100\n };\n\n const { width, height } = this.updateImageDimensions(\n dimensions,\n {\n width: dimensions.width < maxImageWidth ? dimensions.width : maxImageWidth,\n height: dimensions.height < maxImageHeight ? dimensions.height : maxImageHeight\n },\n true\n );\n\n box.style.width = `${width}px`;\n box.style.height = `${height}px`;\n\n this.setState({\n dimensions: { height: height, width: width }\n });\n\n const { node, editor } = this.props;\n\n let update = node.data;\n\n update = update.set('width', width);\n update = update.set('height', height);\n\n if (!update.equals(node.data)) {\n editor.change(c => c.setNodeByKey(node.key, { data: update }));\n }\n }\n };\n\n startResizing = e => {\n const bounds = e.target.getBoundingClientRect();\n const box = this.img;\n const dimensions = {\n width: (box && box.naturalWidth) || 100,\n height: (box && box.naturalHeight) || 100\n };\n\n const { width, height } = this.updateImageDimensions(\n dimensions,\n {\n width: e.clientX - bounds.left,\n height: e.clientY - bounds.top\n },\n true\n );\n\n const hasMinimumWidth = width > 50 && height > 50;\n const hasDimensionsConstraints = width <= 700 && height <= 900;\n\n if (hasMinimumWidth && hasDimensionsConstraints && box) {\n box.style.width = `${width}px`;\n box.style.height = `${height}px`;\n\n this.setState({\n dimensions: { height: height, width: width }\n });\n\n const { node, editor } = this.props;\n\n let update = node.data;\n\n update = update.set('width', width);\n update = update.set('height', height);\n\n if (!update.equals(node.data)) {\n editor.change(c => c.setNodeByKey(node.key, { data: update }));\n }\n }\n };\n\n stopResizing = () => {\n window.removeEventListener('mousemove', this.startResizing, false);\n window.removeEventListener('mouseup', this.stopResizing, false);\n };\n\n updateImageDimensions = (initialDim, nextDim, keepAspectRatio, resizeType) => {\n // if we want to keep image aspect ratio\n if (keepAspectRatio) {\n const imageAspectRatio = initialDim.width / initialDim.height;\n\n if (resizeType === 'height') {\n // if we want to change image height => we update the width accordingly\n return {\n width: nextDim.height * imageAspectRatio,\n height: nextDim.height\n };\n }\n\n // if we want to change image width => we update the height accordingly\n return {\n width: nextDim.width,\n height: nextDim.width / imageAspectRatio\n };\n }\n\n // if we don't want to keep aspect ratio, we just update both values\n return {\n width: nextDim.width,\n height: nextDim.height\n };\n };\n\n render() {\n const { node, editor, classes, attributes, onFocus } = this.props;\n const active = editor.value.isFocused && editor.value.selection.hasEdgeIn(node);\n const src = node.data.get('src');\n const loaded = node.data.get('loaded') !== false;\n const deleteStatus = node.data.get('deleteStatus');\n const alignment = node.data.get('alignment');\n const percent = node.data.get('percent');\n const alt = node.data.get('alt');\n let margin;\n let justifyContent;\n\n switch (alignment) {\n case 'left':\n justifyContent = 'flex-start';\n margin = '0';\n break;\n case 'center':\n justifyContent = 'center';\n margin = '0 auto';\n break;\n case 'right':\n justifyContent = 'flex-end';\n margin = 'auto 0 0 auto ';\n break;\n default:\n justifyContent = 'flex-start';\n margin = '0';\n break;\n }\n log('[render] node.data:', node.data);\n\n const size = this.getSize(node.data);\n\n log('[render] style:', size);\n\n const className = classNames(\n classes.root,\n !loaded && classes.loading,\n deleteStatus === 'pending' && classes.pendingDelete\n );\n\n const progressClasses = classNames(classes.progress, loaded && classes.hideProgress);\n\n return [\n <span key={'sp1'}>&nbsp;</span>,\n <div key={'comp'} onFocus={onFocus} className={className} style={{ justifyContent }}>\n <LinearProgress\n mode=\"determinate\"\n value={percent > 0 ? percent : 0}\n className={progressClasses}\n />\n <div className={classes.imageContainer}>\n <img\n {...attributes}\n className={classNames(classes.image, active && classes.active)}\n ref={ref => {\n this.img = ref;\n }}\n src={src}\n style={size}\n onLoad={this.loadImage}\n alt={alt}\n />\n <div\n ref={ref => {\n this.resize = ref;\n }}\n className={classNames(classes.resize, 'resize')}\n />\n </div>\n </div>,\n <span key={'sp2'}>&nbsp;</span>\n ];\n }\n}\n\nconst styles = theme => ({\n portal: {\n position: 'absolute',\n opacity: 0,\n transition: 'opacity 200ms linear'\n },\n floatingButtonRow: {\n backgroundColor: 'white',\n borderRadius: '1px',\n display: 'flex',\n padding: '10px',\n border: 'solid 1px #eeeeee',\n boxShadow:\n '0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)'\n },\n progress: {\n position: 'absolute',\n left: '0',\n width: 'fit-content',\n top: '0%',\n transition: 'opacity 200ms linear'\n },\n hideProgress: {\n opacity: 0\n },\n loading: {\n opacity: 0.3\n },\n pendingDelete: {\n opacity: 0.3\n },\n root: {\n position: 'relative',\n border: 'solid 1px white',\n display: 'flex',\n transition: 'opacity 200ms linear'\n },\n delete: {\n position: 'absolute',\n right: 0\n },\n imageContainer: {\n position: 'relative',\n width: 'fit-content',\n display: 'flex',\n alignItems: 'center',\n\n '&&:hover > .resize': {\n display: 'block'\n }\n },\n active: {\n border: `solid 1px ${theme.palette.primary.main}`\n },\n resize: {\n backgroundColor: theme.palette.primary.main,\n cursor: 'col-resize',\n height: '35px',\n width: '5px',\n borderRadius: 8,\n marginLeft: '5px',\n marginRight: '10px',\n display: 'none'\n },\n drawableHeight: {\n minHeight: 350\n }\n});\n\nexport default withStyles(styles)(Component);\n"],"file":"component.js"}
1
+ {"version":3,"file":"component.js","names":["log","debug","size","s","Component","percent","multiplier","img","naturalWidth","naturalHeight","width","floored","parseInt","toFixed","props","node","editor","update","data","w","get","set","getPercentFromWidth","equals","change","c","setNodeByKey","key","window","addEventListener","startResizing","stopResizing","maxImageWidth","maxImageHeight","box","style","dimensions","height","updateImageDimensions","setState","e","bounds","target","getBoundingClientRect","clientX","left","clientY","top","hasMinimumWidth","hasDimensionsConstraints","removeEventListener","initialDim","nextDim","keepAspectRatio","resizeType","imageAspectRatio","applySizeData","resizeHandle","resize","initialiseResize","objectFit","classes","attributes","onFocus","active","value","isFocused","selection","hasEdgeIn","src","loaded","deleteStatus","alignment","alt","margin","justifyContent","getSize","className","classNames","root","loading","pendingDelete","progressClasses","progress","hideProgress","imageContainer","image","ref","loadImage","React","SlatePropTypes","isRequired","PropTypes","shape","func","object","onBlur","number","styles","theme","portal","position","opacity","transition","floatingButtonRow","backgroundColor","borderRadius","display","padding","border","boxShadow","right","alignItems","palette","primary","main","cursor","marginLeft","marginRight","drawableHeight","minHeight","withStyles"],"sources":["../../../src/plugins/image/component.jsx"],"sourcesContent":["import LinearProgress from '@material-ui/core/LinearProgress';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport debug from 'debug';\nimport { withStyles } from '@material-ui/core/styles';\nimport SlatePropTypes from 'slate-prop-types';\n\nconst log = debug('@pie-lib:editable-html:plugins:image:component');\n\nconst size = s => (s ? `${s}px` : 'auto');\n\nexport class Component extends React.Component {\n static propTypes = {\n node: SlatePropTypes.node.isRequired,\n editor: PropTypes.shape({\n change: PropTypes.func.isRequired,\n value: PropTypes.object\n }).isRequired,\n classes: PropTypes.object.isRequired,\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n maxImageWidth: PropTypes.number,\n maxImageHeight: PropTypes.number\n };\n\n getWidth = percent => {\n const multiplier = percent / 100;\n return this.img.naturalWidth * multiplier;\n };\n\n getHeight = percent => {\n const multiplier = percent / 100;\n return this.img.naturalHeight * multiplier;\n };\n\n getPercentFromWidth = width => {\n var floored = (width / this.img.naturalWidth) * 4;\n return parseInt(floored.toFixed(0) * 25, 10);\n };\n\n applySizeData = () => {\n const { node, editor } = this.props;\n\n let update = node.data;\n\n const w = update.get('width');\n if (w) {\n update = update.set('resizePercent', this.getPercentFromWidth(w));\n }\n\n log('[applySizeData] update: ', update);\n\n if (!update.equals(node.data)) {\n editor.change(c => c.setNodeByKey(node.key, { data: update }));\n }\n };\n\n initialiseResize = () => {\n window.addEventListener('mousemove', this.startResizing, false);\n window.addEventListener('mouseup', this.stopResizing, false);\n };\n\n componentDidMount() {\n this.applySizeData();\n\n const resizeHandle = this.resize;\n\n if (resizeHandle) {\n resizeHandle.addEventListener('mousedown', this.initialiseResize, false);\n }\n }\n\n componentDidUpdate() {\n this.applySizeData();\n }\n\n getSize(data) {\n return {\n width: size(data.get('width')),\n height: size(data.get('height')),\n objectFit: 'contain'\n };\n }\n\n loadImage = () => {\n let { maxImageWidth, maxImageHeight } = this.props || {};\n maxImageWidth = maxImageWidth || 700;\n maxImageHeight = maxImageHeight || 900;\n\n const box = this.img;\n\n //on first load\n if (!box.style.width || box.style.width === 'auto') {\n const dimensions = {\n width: (box && box.naturalWidth) || 100,\n height: (box && box.naturalHeight) || 100\n };\n\n const { width, height } = this.updateImageDimensions(\n dimensions,\n {\n width: dimensions.width < maxImageWidth ? dimensions.width : maxImageWidth,\n height: dimensions.height < maxImageHeight ? dimensions.height : maxImageHeight\n },\n true\n );\n\n box.style.width = `${width}px`;\n box.style.height = `${height}px`;\n\n this.setState({\n dimensions: { height: height, width: width }\n });\n\n const { node, editor } = this.props;\n\n let update = node.data;\n\n update = update.set('width', width);\n update = update.set('height', height);\n\n if (!update.equals(node.data)) {\n editor.change(c => c.setNodeByKey(node.key, { data: update }));\n }\n }\n };\n\n startResizing = e => {\n const bounds = e.target.getBoundingClientRect();\n const box = this.img;\n const dimensions = {\n width: (box && box.naturalWidth) || 100,\n height: (box && box.naturalHeight) || 100\n };\n\n const { width, height } = this.updateImageDimensions(\n dimensions,\n {\n width: e.clientX - bounds.left,\n height: e.clientY - bounds.top\n },\n true\n );\n\n const hasMinimumWidth = width > 50 && height > 50;\n const hasDimensionsConstraints = width <= 700 && height <= 900;\n\n if (hasMinimumWidth && hasDimensionsConstraints && box) {\n box.style.width = `${width}px`;\n box.style.height = `${height}px`;\n\n this.setState({\n dimensions: { height: height, width: width }\n });\n\n const { node, editor } = this.props;\n\n let update = node.data;\n\n update = update.set('width', width);\n update = update.set('height', height);\n\n if (!update.equals(node.data)) {\n editor.change(c => c.setNodeByKey(node.key, { data: update }));\n }\n }\n };\n\n stopResizing = () => {\n window.removeEventListener('mousemove', this.startResizing, false);\n window.removeEventListener('mouseup', this.stopResizing, false);\n };\n\n updateImageDimensions = (initialDim, nextDim, keepAspectRatio, resizeType) => {\n // if we want to keep image aspect ratio\n if (keepAspectRatio) {\n const imageAspectRatio = initialDim.width / initialDim.height;\n\n if (resizeType === 'height') {\n // if we want to change image height => we update the width accordingly\n return {\n width: nextDim.height * imageAspectRatio,\n height: nextDim.height\n };\n }\n\n // if we want to change image width => we update the height accordingly\n return {\n width: nextDim.width,\n height: nextDim.width / imageAspectRatio\n };\n }\n\n // if we don't want to keep aspect ratio, we just update both values\n return {\n width: nextDim.width,\n height: nextDim.height\n };\n };\n\n render() {\n const { node, editor, classes, attributes, onFocus } = this.props;\n const active = editor.value.isFocused && editor.value.selection.hasEdgeIn(node);\n const src = node.data.get('src');\n const loaded = node.data.get('loaded') !== false;\n const deleteStatus = node.data.get('deleteStatus');\n const alignment = node.data.get('alignment');\n const percent = node.data.get('percent');\n const alt = node.data.get('alt');\n let margin;\n let justifyContent;\n\n switch (alignment) {\n case 'left':\n justifyContent = 'flex-start';\n margin = '0';\n break;\n case 'center':\n justifyContent = 'center';\n margin = '0 auto';\n break;\n case 'right':\n justifyContent = 'flex-end';\n margin = 'auto 0 0 auto ';\n break;\n default:\n justifyContent = 'flex-start';\n margin = '0';\n break;\n }\n log('[render] node.data:', node.data);\n\n const size = this.getSize(node.data);\n\n log('[render] style:', size);\n\n const className = classNames(\n classes.root,\n !loaded && classes.loading,\n deleteStatus === 'pending' && classes.pendingDelete\n );\n\n const progressClasses = classNames(classes.progress, loaded && classes.hideProgress);\n\n return [\n <span key={'sp1'}>&nbsp;</span>,\n <div key={'comp'} onFocus={onFocus} className={className} style={{ justifyContent }}>\n <LinearProgress\n mode=\"determinate\"\n value={percent > 0 ? percent : 0}\n className={progressClasses}\n />\n <div className={classes.imageContainer}>\n <img\n {...attributes}\n className={classNames(classes.image, active && classes.active)}\n ref={ref => {\n this.img = ref;\n }}\n src={src}\n style={size}\n onLoad={this.loadImage}\n alt={alt}\n />\n <div\n ref={ref => {\n this.resize = ref;\n }}\n className={classNames(classes.resize, 'resize')}\n />\n </div>\n </div>,\n <span key={'sp2'}>&nbsp;</span>\n ];\n }\n}\n\nconst styles = theme => ({\n portal: {\n position: 'absolute',\n opacity: 0,\n transition: 'opacity 200ms linear'\n },\n floatingButtonRow: {\n backgroundColor: 'white',\n borderRadius: '1px',\n display: 'flex',\n padding: '10px',\n border: 'solid 1px #eeeeee',\n boxShadow:\n '0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)'\n },\n progress: {\n position: 'absolute',\n left: '0',\n width: 'fit-content',\n top: '0%',\n transition: 'opacity 200ms linear'\n },\n hideProgress: {\n opacity: 0\n },\n loading: {\n opacity: 0.3\n },\n pendingDelete: {\n opacity: 0.3\n },\n root: {\n position: 'relative',\n border: 'solid 1px white',\n display: 'flex',\n transition: 'opacity 200ms linear'\n },\n delete: {\n position: 'absolute',\n right: 0\n },\n imageContainer: {\n position: 'relative',\n width: 'fit-content',\n display: 'flex',\n alignItems: 'center',\n\n '&&:hover > .resize': {\n display: 'block'\n }\n },\n active: {\n border: `solid 1px ${theme.palette.primary.main}`\n },\n resize: {\n backgroundColor: theme.palette.primary.main,\n cursor: 'col-resize',\n height: '35px',\n width: '5px',\n borderRadius: 8,\n marginLeft: '5px',\n marginRight: '10px',\n display: 'none'\n },\n drawableHeight: {\n minHeight: 350\n }\n});\n\nexport default withStyles(styles)(Component);\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/image/image-toolbar.jsx"],"names":["log","AlignmentButton","alignment","active","onClick","propTypes","PropTypes","string","isRequired","bool","func","ImageToolbar","newAlt","props","onChange","alt","popoverEl","document","createElement","el","onAltTextDone","ReactDOM","render","body","appendChild","classes","imageLoaded","holder","onAlignmentClick","disabled","altButton","event","renderDialog","React","Component","object","styles","theme","paddingLeft","spacing","unit","display","alignItems","opacity","borderLeft","marginLeft"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport debug from 'debug';\nimport ReactDOM from 'react-dom';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nimport { MarkButton } from '../toolbar/toolbar-buttons';\nimport AltDialog from './alt-dialog';\n\nconst log = debug('@pie-lib:editable-html:plugins:image:image-toolbar');\n\nconst AlignmentButton = ({ alignment, active, onClick }) => {\n return (\n <MarkButton active={active} onToggle={() => onClick(alignment)} label={alignment}>\n {alignment}\n </MarkButton>\n );\n};\n\nAlignmentButton.propTypes = {\n alignment: PropTypes.string.isRequired,\n active: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired\n};\n\nexport class ImageToolbar extends React.Component {\n static propTypes = {\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n alignment: PropTypes.string,\n alt: PropTypes.string,\n imageLoaded: PropTypes.bool\n };\n\n onAltTextDone = newAlt => {\n log('[onAltTextDone]: alt:', newAlt);\n\n this.props.onChange({ alt: newAlt });\n };\n\n onAlignmentClick = alignment => {\n log('[onAlignmentClick]: alignment:', alignment);\n this.props.onChange({ alignment });\n };\n\n renderDialog = () => {\n const { alt } = this.props;\n const popoverEl = document.createElement('div');\n\n const el = <AltDialog alt={alt} onDone={this.onAltTextDone} />;\n\n ReactDOM.render(el, popoverEl);\n\n document.body.appendChild(popoverEl);\n };\n\n render() {\n const { classes, alignment, imageLoaded } = this.props;\n\n return (\n <div className={classes.holder}>\n <AlignmentButton\n alignment={'left'}\n active={alignment === 'left'}\n onClick={this.onAlignmentClick}\n />\n <AlignmentButton\n alignment={'center'}\n active={alignment === 'center'}\n onClick={this.onAlignmentClick}\n />\n <AlignmentButton\n alignment={'right'}\n active={alignment === 'right'}\n onClick={this.onAlignmentClick}\n />\n <span\n className={classNames({\n [classes.disabled]: !imageLoaded,\n [classes.altButton]: true\n })}\n onMouseDown={event => imageLoaded && this.renderDialog(event)}\n >\n Alt text\n </span>\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n holder: {\n paddingLeft: theme.spacing.unit,\n display: 'flex',\n alignItems: 'center'\n },\n disabled: {\n opacity: 0.5\n },\n altButton: {\n borderLeft: '1px solid grey',\n paddingLeft: 8,\n marginLeft: 4,\n },\n});\n\nexport default withStyles(styles)(ImageToolbar);\n"],"file":"image-toolbar.js"}
1
+ {"version":3,"file":"image-toolbar.js","names":["log","debug","AlignmentButton","alignment","active","onClick","propTypes","PropTypes","string","isRequired","bool","func","ImageToolbar","newAlt","props","onChange","alt","popoverEl","document","createElement","el","onAltTextDone","ReactDOM","render","body","appendChild","classes","imageLoaded","holder","onAlignmentClick","classNames","disabled","altButton","event","renderDialog","React","Component","object","styles","theme","paddingLeft","spacing","unit","display","alignItems","opacity","borderLeft","marginLeft","withStyles"],"sources":["../../../src/plugins/image/image-toolbar.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport debug from 'debug';\nimport ReactDOM from 'react-dom';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nimport { MarkButton } from '../toolbar/toolbar-buttons';\nimport AltDialog from './alt-dialog';\n\nconst log = debug('@pie-lib:editable-html:plugins:image:image-toolbar');\n\nconst AlignmentButton = ({ alignment, active, onClick }) => {\n return (\n <MarkButton active={active} onToggle={() => onClick(alignment)} label={alignment}>\n {alignment}\n </MarkButton>\n );\n};\n\nAlignmentButton.propTypes = {\n alignment: PropTypes.string.isRequired,\n active: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired\n};\n\nexport class ImageToolbar extends React.Component {\n static propTypes = {\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n alignment: PropTypes.string,\n alt: PropTypes.string,\n imageLoaded: PropTypes.bool\n };\n\n onAltTextDone = newAlt => {\n log('[onAltTextDone]: alt:', newAlt);\n\n this.props.onChange({ alt: newAlt });\n };\n\n onAlignmentClick = alignment => {\n log('[onAlignmentClick]: alignment:', alignment);\n this.props.onChange({ alignment });\n };\n\n renderDialog = () => {\n const { alt } = this.props;\n const popoverEl = document.createElement('div');\n\n const el = <AltDialog alt={alt} onDone={this.onAltTextDone} />;\n\n ReactDOM.render(el, popoverEl);\n\n document.body.appendChild(popoverEl);\n };\n\n render() {\n const { classes, alignment, imageLoaded } = this.props;\n\n return (\n <div className={classes.holder}>\n <AlignmentButton\n alignment={'left'}\n active={alignment === 'left'}\n onClick={this.onAlignmentClick}\n />\n <AlignmentButton\n alignment={'center'}\n active={alignment === 'center'}\n onClick={this.onAlignmentClick}\n />\n <AlignmentButton\n alignment={'right'}\n active={alignment === 'right'}\n onClick={this.onAlignmentClick}\n />\n <span\n className={classNames({\n [classes.disabled]: !imageLoaded,\n [classes.altButton]: true\n })}\n onMouseDown={event => imageLoaded && this.renderDialog(event)}\n >\n Alt text\n </span>\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n holder: {\n paddingLeft: theme.spacing.unit,\n display: 'flex',\n alignItems: 'center'\n },\n disabled: {\n opacity: 0.5\n },\n altButton: {\n borderLeft: '1px solid grey',\n paddingLeft: 8,\n marginLeft: 4,\n },\n});\n\nexport default withStyles(styles)(ImageToolbar);\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/image/index.jsx"],"names":["log","ImagePlugin","opts","toolbar","insertImageRequested","icon","onClick","value","onChange","inline","Inline","create","type","isVoid","data","loaded","src","undefined","change","insertInline","getValue","InsertImageHandler","supports","node","object","customToolbar","onToolbarDone","alignment","get","alt","imageLoaded","newValues","update","toObject","setNodeByKey","key","Tb","showDone","name","deleteNode","e","preventDefault","onDelete","merge","Data","deleteStatus","err","v","removeNodeByKey","stopReset","imgPendingInsertion","document","findDescendant","n","renderNode","props","all","Object","assign","onFocus","onBlur","maxImageWidth","maxImageHeight","normalizeNode","textNodeMap","updateNodesArray","index","d","text","push","length","withoutNormalization","forEach","insertTextByKey","serialization","deserialize","el","tagName","toLowerCase","style","width","height","margin","justifyContent","parseInt","replace","out","getAttribute","serialize","objectFit"],"mappings":"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","sourcesContent":["import { Data, Inline } from 'slate';\n\nimport Image from '@material-ui/icons/Image';\nimport ImageComponent from './component';\nimport ImageToolbar from './image-toolbar';\nimport InsertImageHandler from './insert-image-handler';\nimport React from 'react';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:plugins:image');\n\nexport default function ImagePlugin(opts) {\n const toolbar = opts.insertImageRequested && {\n icon: <Image />,\n onClick: (value, onChange) => {\n log('[toolbar] onClick');\n const inline = Inline.create({\n type: 'image',\n isVoid: true,\n data: {\n loaded: false,\n src: undefined\n }\n });\n\n const change = value.change().insertInline(inline);\n onChange(change);\n opts.insertImageRequested(getValue => new InsertImageHandler(inline, getValue, onChange));\n },\n supports: node => node.object === 'inline' && node.type === 'image',\n customToolbar: (node, value, onToolbarDone) => {\n const alignment = node.data.get('alignment');\n const alt = node.data.get('alt');\n const imageLoaded = node.data.get('loaded') !== false;\n const onChange = newValues => {\n const update = {\n ...node.data.toObject(),\n ...newValues\n };\n\n const change = value.change().setNodeByKey(node.key, { data: update });\n onToolbarDone(change, false);\n };\n\n const Tb = () => (\n <ImageToolbar alt={alt} imageLoaded={imageLoaded} alignment={alignment || 'left'} onChange={onChange} />\n );\n return Tb;\n },\n showDone: true\n };\n\n return {\n name: 'image',\n toolbar,\n deleteNode: (e, node, value, onChange) => {\n e.preventDefault();\n if (opts.onDelete) {\n const update = node.data.merge(Data.create({ deleteStatus: 'pending' }));\n\n let change = value.change().setNodeByKey(node.key, { data: update });\n\n onChange(change);\n opts.onDelete(node.data.get('src'), (err, v) => {\n if (!err) {\n change = v.change().removeNodeByKey(node.key);\n } else {\n log('[error]: ', err);\n change = v\n .change()\n .setNodeByKey(node.key, node.data.merge(Data.create({ deleteStatus: 'failed' })));\n }\n onChange(change);\n });\n } else {\n let change = value.change().removeNodeByKey(node.key);\n onChange(change);\n }\n },\n stopReset: value => {\n const imgPendingInsertion = value.document.findDescendant(n => {\n if (n.type !== 'image') {\n return;\n }\n return n.data.get('loaded') === false;\n });\n /** don't reset if there is an image pending insertion */\n return imgPendingInsertion !== undefined && imgPendingInsertion !== null;\n },\n renderNode(props) {\n if (props.node.type === 'image') {\n const all = Object.assign(\n {\n onDelete: opts.onDelete,\n onFocus: opts.onFocus,\n onBlur: opts.onBlur,\n maxImageWidth: opts.maxImageWidth,\n maxImageHeight: opts.maxImageHeight\n },\n props\n );\n return <ImageComponent {...all} />;\n }\n },\n normalizeNode: node => {\n const textNodeMap = {};\n const updateNodesArray = [];\n let index = 0;\n\n if (node.object !== 'document') return;\n\n node.findDescendant(d => {\n if (d.object === 'text') {\n textNodeMap[index] = d;\n }\n\n if (d.type === 'image') {\n if (index > 0 && textNodeMap[index - 1] && textNodeMap[index - 1].text === '') {\n updateNodesArray.push(textNodeMap[index - 1]);\n }\n }\n\n index++;\n });\n\n if (!updateNodesArray.length) return;\n\n return change => {\n change.withoutNormalization(() => {\n updateNodesArray.forEach(n => change.insertTextByKey(n.key, 0, ' '));\n });\n };\n }\n };\n}\n\nexport const serialization = {\n deserialize(el /*, next*/) {\n const name = el.tagName.toLowerCase();\n if (name !== 'img') return;\n\n log('deserialize: ', name);\n const style = el.style || { width: '', height: '', margin: '', justifyContent: '' };\n const width = parseInt(style.width.replace('px', ''), 10) || null;\n const height = parseInt(style.height.replace('px', ''), 10) || null;\n\n const out = {\n object: 'inline',\n type: 'image',\n isVoid: true,\n data: {\n src: el.getAttribute('src'),\n width,\n height,\n margin: el.style.margin,\n justifyContent: el.style.justifyContent,\n alignment: el.getAttribute('alignment'),\n alt: el.getAttribute('alt')\n }\n };\n log('return object: ', out);\n return out;\n },\n serialize(object /*, children*/) {\n if (object.type !== 'image') return;\n\n const { data } = object;\n const src = data.get('src');\n const width = data.get('width');\n const height = data.get('height');\n const alignment = data.get('alignment');\n const margin = data.get('margin');\n const justifyContent = data.get('margin');\n const alt = data.get('alt');\n const style = {};\n if (width) {\n style.width = `${width}px`;\n }\n\n if (height) {\n style.height = `${height}px`;\n }\n\n style.margin = margin;\n style.justifyContent = justifyContent;\n\n if (alignment) {\n switch (alignment) {\n case 'left':\n style.justifyContent = 'flex-start';\n style.margin = '0';\n break;\n case 'center':\n style.justifyContent = 'center';\n style.margin = '0 auto';\n break;\n case 'right':\n style.justifyContent = 'flex-end';\n style.margin = 'auto 0 0 auto';\n break;\n default:\n style.justifyContent = 'flex-start';\n break;\n }\n }\n\n style.objectFit = 'contain';\n\n const props = {\n src,\n style,\n alignment,\n alt\n };\n\n return <img {...props} />;\n }\n};\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["log","debug","ImagePlugin","opts","toolbar","insertImageRequested","icon","onClick","value","onChange","inline","Inline","create","type","isVoid","data","loaded","src","undefined","change","insertInline","getValue","InsertImageHandler","supports","node","object","customToolbar","onToolbarDone","alignment","get","alt","imageLoaded","newValues","update","toObject","setNodeByKey","key","Tb","showDone","name","deleteNode","e","preventDefault","onDelete","merge","Data","deleteStatus","err","v","removeNodeByKey","stopReset","imgPendingInsertion","document","findDescendant","n","renderNode","props","all","Object","assign","onFocus","onBlur","maxImageWidth","maxImageHeight","normalizeNode","textNodeMap","updateNodesArray","index","d","text","push","length","withoutNormalization","forEach","insertTextByKey","serialization","deserialize","el","tagName","toLowerCase","style","width","height","margin","justifyContent","parseInt","replace","out","getAttribute","serialize","objectFit"],"sources":["../../../src/plugins/image/index.jsx"],"sourcesContent":["import { Data, Inline } from 'slate';\n\nimport Image from '@material-ui/icons/Image';\nimport ImageComponent from './component';\nimport ImageToolbar from './image-toolbar';\nimport InsertImageHandler from './insert-image-handler';\nimport React from 'react';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:plugins:image');\n\nexport default function ImagePlugin(opts) {\n const toolbar = opts.insertImageRequested && {\n icon: <Image />,\n onClick: (value, onChange) => {\n log('[toolbar] onClick');\n const inline = Inline.create({\n type: 'image',\n isVoid: true,\n data: {\n loaded: false,\n src: undefined\n }\n });\n\n const change = value.change().insertInline(inline);\n onChange(change);\n opts.insertImageRequested(getValue => new InsertImageHandler(inline, getValue, onChange));\n },\n supports: node => node.object === 'inline' && node.type === 'image',\n customToolbar: (node, value, onToolbarDone) => {\n const alignment = node.data.get('alignment');\n const alt = node.data.get('alt');\n const imageLoaded = node.data.get('loaded') !== false;\n const onChange = newValues => {\n const update = {\n ...node.data.toObject(),\n ...newValues\n };\n\n const change = value.change().setNodeByKey(node.key, { data: update });\n onToolbarDone(change, false);\n };\n\n const Tb = () => (\n <ImageToolbar alt={alt} imageLoaded={imageLoaded} alignment={alignment || 'left'} onChange={onChange} />\n );\n return Tb;\n },\n showDone: true\n };\n\n return {\n name: 'image',\n toolbar,\n deleteNode: (e, node, value, onChange) => {\n e.preventDefault();\n if (opts.onDelete) {\n const update = node.data.merge(Data.create({ deleteStatus: 'pending' }));\n\n let change = value.change().setNodeByKey(node.key, { data: update });\n\n onChange(change);\n opts.onDelete(node.data.get('src'), (err, v) => {\n if (!err) {\n change = v.change().removeNodeByKey(node.key);\n } else {\n log('[error]: ', err);\n change = v\n .change()\n .setNodeByKey(node.key, node.data.merge(Data.create({ deleteStatus: 'failed' })));\n }\n onChange(change);\n });\n } else {\n let change = value.change().removeNodeByKey(node.key);\n onChange(change);\n }\n },\n stopReset: value => {\n const imgPendingInsertion = value.document.findDescendant(n => {\n if (n.type !== 'image') {\n return;\n }\n return n.data.get('loaded') === false;\n });\n /** don't reset if there is an image pending insertion */\n return imgPendingInsertion !== undefined && imgPendingInsertion !== null;\n },\n renderNode(props) {\n if (props.node.type === 'image') {\n const all = Object.assign(\n {\n onDelete: opts.onDelete,\n onFocus: opts.onFocus,\n onBlur: opts.onBlur,\n maxImageWidth: opts.maxImageWidth,\n maxImageHeight: opts.maxImageHeight\n },\n props\n );\n return <ImageComponent {...all} />;\n }\n },\n normalizeNode: node => {\n const textNodeMap = {};\n const updateNodesArray = [];\n let index = 0;\n\n if (node.object !== 'document') return;\n\n node.findDescendant(d => {\n if (d.object === 'text') {\n textNodeMap[index] = d;\n }\n\n if (d.type === 'image') {\n if (index > 0 && textNodeMap[index - 1] && textNodeMap[index - 1].text === '') {\n updateNodesArray.push(textNodeMap[index - 1]);\n }\n }\n\n index++;\n });\n\n if (!updateNodesArray.length) return;\n\n return change => {\n change.withoutNormalization(() => {\n updateNodesArray.forEach(n => change.insertTextByKey(n.key, 0, ' '));\n });\n };\n }\n };\n}\n\nexport const serialization = {\n deserialize(el /*, next*/) {\n const name = el.tagName.toLowerCase();\n if (name !== 'img') return;\n\n log('deserialize: ', name);\n const style = el.style || { width: '', height: '', margin: '', justifyContent: '' };\n const width = parseInt(style.width.replace('px', ''), 10) || null;\n const height = parseInt(style.height.replace('px', ''), 10) || null;\n\n const out = {\n object: 'inline',\n type: 'image',\n isVoid: true,\n data: {\n src: el.getAttribute('src'),\n width,\n height,\n margin: el.style.margin,\n justifyContent: el.style.justifyContent,\n alignment: el.getAttribute('alignment'),\n alt: el.getAttribute('alt')\n }\n };\n log('return object: ', out);\n return out;\n },\n serialize(object /*, children*/) {\n if (object.type !== 'image') return;\n\n const { data } = object;\n const src = data.get('src');\n const width = data.get('width');\n const height = data.get('height');\n const alignment = data.get('alignment');\n const margin = data.get('margin');\n const justifyContent = data.get('margin');\n const alt = data.get('alt');\n const style = {};\n if (width) {\n style.width = `${width}px`;\n }\n\n if (height) {\n style.height = `${height}px`;\n }\n\n style.margin = margin;\n style.justifyContent = justifyContent;\n\n if (alignment) {\n switch (alignment) {\n case 'left':\n style.justifyContent = 'flex-start';\n style.margin = '0';\n break;\n case 'center':\n style.justifyContent = 'center';\n style.margin = '0 auto';\n break;\n case 'right':\n style.justifyContent = 'flex-end';\n style.margin = 'auto 0 0 auto';\n break;\n default:\n style.justifyContent = 'flex-start';\n break;\n }\n }\n\n style.objectFit = 'contain';\n\n const props = {\n src,\n style,\n alignment,\n alt\n };\n\n return <img {...props} />;\n }\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/image/insert-image-handler.js"],"names":["log","InsertImageHandler","placeholderBlock","getValue","onChange","isPasted","value","document","directChild","getChild","key","child","getDescendant","Error","c","change","removeNodeByKey","err","src","console","getPlaceholderInDocument","data","merge","Data","create","loaded","percent","setNodeByKey","file","reader","FileReader","onload","dataURL","result","set","readAsDataURL","bytes","total"],"mappings":"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","sourcesContent":["import { Data } from 'slate';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:image:insert-image-handler');\n\n/**\n * Handles user selection, insertion (or cancellation) of an image into the editor.\n * @param {Block} placeholderBlock - a block that has been added to the editor as a place holder for the image\n * @param {Function} getValue - a function to return the value of the editor\n * @param {Function} onChange - callback to notify changes applied by the handler\n * @param {Boolean} isPasted - a boolean that keeps track if the file is pasted\n */\nclass InsertImageHandler {\n constructor(placeholderBlock, getValue, onChange, isPasted = false) {\n this.placeholderBlock = placeholderBlock;\n this.getValue = getValue;\n this.onChange = onChange;\n this.isPasted = isPasted;\n }\n\n getPlaceholderInDocument(value) {\n const { document } = value;\n const directChild = document.getChild(this.placeholderBlock.key);\n\n if (directChild) {\n return directChild;\n }\n\n const child = document.getDescendant(this.placeholderBlock.key);\n\n if (child) {\n return child;\n } else {\n //eslint-disable-next-line\n throw new Error(\"insert-image: Can't find placeholder!\");\n }\n }\n\n cancel() {\n log('insert cancelled');\n const c = this.getValue()\n .change()\n .removeNodeByKey(this.placeholderBlock.key);\n this.onChange(c);\n }\n\n done(err, src) {\n log('done: err:', err);\n if (err) {\n //eslint-disable-next-line\n console.log(err);\n } else {\n const value = this.getValue();\n const child = this.getPlaceholderInDocument(value);\n const data = child.data.merge(Data.create({ loaded: true, src, percent: 100 }));\n\n const change = value.change().setNodeByKey(this.placeholderBlock.key, { data });\n this.onChange(change);\n }\n }\n\n /**\n * Notify handler that the user chose a file - will create a change with a preview in the editor.\n *\n * @param {File} file - the file that the user chose using a file input.\n */\n fileChosen(file) {\n if (!file) {\n return;\n }\n\n log('[fileChosen] file: ', file);\n const reader = new FileReader();\n reader.onload = () => {\n const value = this.getValue();\n const dataURL = reader.result;\n const child = this.getPlaceholderInDocument(value);\n const data = child.data.set('src', dataURL);\n const change = value.change().setNodeByKey(this.placeholderBlock.key, { data });\n this.onChange(change);\n };\n reader.readAsDataURL(file);\n }\n\n progress(percent, bytes, total) {\n log('progress: ', percent, bytes, total);\n const value = this.getValue();\n const child = this.getPlaceholderInDocument(value);\n const data = child.data.set('percent', percent);\n const change = value.change().setNodeByKey(this.placeholderBlock.key, { data });\n this.onChange(change);\n }\n}\n\nexport default InsertImageHandler;\n"],"file":"insert-image-handler.js"}
1
+ {"version":3,"file":"insert-image-handler.js","names":["log","debug","InsertImageHandler","placeholderBlock","getValue","onChange","isPasted","value","document","directChild","getChild","key","child","getDescendant","Error","c","change","removeNodeByKey","err","src","console","getPlaceholderInDocument","data","merge","Data","create","loaded","percent","setNodeByKey","file","reader","FileReader","onload","dataURL","result","set","readAsDataURL","bytes","total"],"sources":["../../../src/plugins/image/insert-image-handler.js"],"sourcesContent":["import { Data } from 'slate';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:image:insert-image-handler');\n\n/**\n * Handles user selection, insertion (or cancellation) of an image into the editor.\n * @param {Block} placeholderBlock - a block that has been added to the editor as a place holder for the image\n * @param {Function} getValue - a function to return the value of the editor\n * @param {Function} onChange - callback to notify changes applied by the handler\n * @param {Boolean} isPasted - a boolean that keeps track if the file is pasted\n */\nclass InsertImageHandler {\n constructor(placeholderBlock, getValue, onChange, isPasted = false) {\n this.placeholderBlock = placeholderBlock;\n this.getValue = getValue;\n this.onChange = onChange;\n this.isPasted = isPasted;\n }\n\n getPlaceholderInDocument(value) {\n const { document } = value;\n const directChild = document.getChild(this.placeholderBlock.key);\n\n if (directChild) {\n return directChild;\n }\n\n const child = document.getDescendant(this.placeholderBlock.key);\n\n if (child) {\n return child;\n } else {\n //eslint-disable-next-line\n throw new Error(\"insert-image: Can't find placeholder!\");\n }\n }\n\n cancel() {\n log('insert cancelled');\n const c = this.getValue()\n .change()\n .removeNodeByKey(this.placeholderBlock.key);\n this.onChange(c);\n }\n\n done(err, src) {\n log('done: err:', err);\n if (err) {\n //eslint-disable-next-line\n console.log(err);\n } else {\n const value = this.getValue();\n const child = this.getPlaceholderInDocument(value);\n const data = child.data.merge(Data.create({ loaded: true, src, percent: 100 }));\n\n const change = value.change().setNodeByKey(this.placeholderBlock.key, { data });\n this.onChange(change);\n }\n }\n\n /**\n * Notify handler that the user chose a file - will create a change with a preview in the editor.\n *\n * @param {File} file - the file that the user chose using a file input.\n */\n fileChosen(file) {\n if (!file) {\n return;\n }\n\n log('[fileChosen] file: ', file);\n const reader = new FileReader();\n reader.onload = () => {\n const value = this.getValue();\n const dataURL = reader.result;\n const child = this.getPlaceholderInDocument(value);\n const data = child.data.set('src', dataURL);\n const change = value.change().setNodeByKey(this.placeholderBlock.key, { data });\n this.onChange(change);\n };\n reader.readAsDataURL(file);\n }\n\n progress(percent, bytes, total) {\n log('progress: ', percent, bytes, total);\n const value = this.getValue();\n const child = this.getPlaceholderInDocument(value);\n const data = child.data.set('percent', percent);\n const change = value.change().setNodeByKey(this.placeholderBlock.key, { data });\n this.onChange(change);\n }\n}\n\nexport default InsertImageHandler;\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,GAAG,GAAG,IAAAC,iBAAA,EAAM,mDAAN,CAAZ;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;IACMC,kB;EACJ,4BAAYC,gBAAZ,EAA8BC,QAA9B,EAAwCC,QAAxC,EAAoE;IAAA,IAAlBC,QAAkB,uEAAP,KAAO;IAAA;IAClE,KAAKH,gBAAL,GAAwBA,gBAAxB;IACA,KAAKC,QAAL,GAAgBA,QAAhB;IACA,KAAKC,QAAL,GAAgBA,QAAhB;IACA,KAAKC,QAAL,GAAgBA,QAAhB;EACD;;;;WAED,kCAAyBC,KAAzB,EAAgC;MAC9B,IAAQC,QAAR,GAAqBD,KAArB,CAAQC,QAAR;MACA,IAAMC,WAAW,GAAGD,QAAQ,CAACE,QAAT,CAAkB,KAAKP,gBAAL,CAAsBQ,GAAxC,CAApB;;MAEA,IAAIF,WAAJ,EAAiB;QACf,OAAOA,WAAP;MACD;;MAED,IAAMG,KAAK,GAAGJ,QAAQ,CAACK,aAAT,CAAuB,KAAKV,gBAAL,CAAsBQ,GAA7C,CAAd;;MAEA,IAAIC,KAAJ,EAAW;QACT,OAAOA,KAAP;MACD,CAFD,MAEO;QACL;QACA,MAAM,IAAIE,KAAJ,CAAU,uCAAV,CAAN;MACD;IACF;;;WAED,kBAAS;MACPd,GAAG,CAAC,kBAAD,CAAH;MACA,IAAMe,CAAC,GAAG,KAAKX,QAAL,GACPY,MADO,GAEPC,eAFO,CAES,KAAKd,gBAAL,CAAsBQ,GAF/B,CAAV;MAGA,KAAKN,QAAL,CAAcU,CAAd;IACD;;;WAED,cAAKG,GAAL,EAAUC,GAAV,EAAe;MACbnB,GAAG,CAAC,YAAD,EAAekB,GAAf,CAAH;;MACA,IAAIA,GAAJ,EAAS;QACP;QACAE,OAAO,CAACpB,GAAR,CAAYkB,GAAZ;MACD,CAHD,MAGO;QACL,IAAMX,KAAK,GAAG,KAAKH,QAAL,EAAd;QACA,IAAMQ,KAAK,GAAG,KAAKS,wBAAL,CAA8Bd,KAA9B,CAAd;QACA,IAAMe,IAAI,GAAGV,KAAK,CAACU,IAAN,CAAWC,KAAX,CAAiBC,WAAA,CAAKC,MAAL,CAAY;UAAEC,MAAM,EAAE,IAAV;UAAgBP,GAAG,EAAHA,GAAhB;UAAqBQ,OAAO,EAAE;QAA9B,CAAZ,CAAjB,CAAb;QAEA,IAAMX,MAAM,GAAGT,KAAK,CAACS,MAAN,GAAeY,YAAf,CAA4B,KAAKzB,gBAAL,CAAsBQ,GAAlD,EAAuD;UAAEW,IAAI,EAAJA;QAAF,CAAvD,CAAf;QACA,KAAKjB,QAAL,CAAcW,MAAd;MACD;IACF;IAED;AACF;AACA;AACA;AACA;;;;WACE,oBAAWa,IAAX,EAAiB;MAAA;;MACf,IAAI,CAACA,IAAL,EAAW;QACT;MACD;;MAED7B,GAAG,CAAC,qBAAD,EAAwB6B,IAAxB,CAAH;MACA,IAAMC,MAAM,GAAG,IAAIC,UAAJ,EAAf;;MACAD,MAAM,CAACE,MAAP,GAAgB,YAAM;QACpB,IAAMzB,KAAK,GAAG,KAAI,CAACH,QAAL,EAAd;;QACA,IAAM6B,OAAO,GAAGH,MAAM,CAACI,MAAvB;;QACA,IAAMtB,KAAK,GAAG,KAAI,CAACS,wBAAL,CAA8Bd,KAA9B,CAAd;;QACA,IAAMe,IAAI,GAAGV,KAAK,CAACU,IAAN,CAAWa,GAAX,CAAe,KAAf,EAAsBF,OAAtB,CAAb;QACA,IAAMjB,MAAM,GAAGT,KAAK,CAACS,MAAN,GAAeY,YAAf,CAA4B,KAAI,CAACzB,gBAAL,CAAsBQ,GAAlD,EAAuD;UAAEW,IAAI,EAAJA;QAAF,CAAvD,CAAf;;QACA,KAAI,CAACjB,QAAL,CAAcW,MAAd;MACD,CAPD;;MAQAc,MAAM,CAACM,aAAP,CAAqBP,IAArB;IACD;;;WAED,kBAASF,OAAT,EAAkBU,KAAlB,EAAyBC,KAAzB,EAAgC;MAC9BtC,GAAG,CAAC,YAAD,EAAe2B,OAAf,EAAwBU,KAAxB,EAA+BC,KAA/B,CAAH;MACA,IAAM/B,KAAK,GAAG,KAAKH,QAAL,EAAd;MACA,IAAMQ,KAAK,GAAG,KAAKS,wBAAL,CAA8Bd,KAA9B,CAAd;MACA,IAAMe,IAAI,GAAGV,KAAK,CAACU,IAAN,CAAWa,GAAX,CAAe,SAAf,EAA0BR,OAA1B,CAAb;MACA,IAAMX,MAAM,GAAGT,KAAK,CAACS,MAAN,GAAeY,YAAf,CAA4B,KAAKzB,gBAAL,CAAsBQ,GAAlD,EAAuD;QAAEW,IAAI,EAAJA;MAAF,CAAvD,CAAf;MACA,KAAKjB,QAAL,CAAcW,MAAd;IACD;;;;;eAGYd,kB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/index.jsx"],"names":["log","MarkHotkey","options","type","key","icon","tag","toolbar","isMark","onToggle","change","toggleMark","renderMark","props","mark","K","children","onKeyDown","event","metaKey","preventDefault","ALL_PLUGINS","DEFAULT_PLUGINS","filter","plug","buildPlugins","activePlugins","opts","addIf","p","includes","imagePlugin","image","onDelete","mathPlugin","math","respAreaPlugin","responseArea","table","media","languageCharacters","map","config","shift"],"mappings":"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","sourcesContent":["import Bold from '@material-ui/icons/FormatBold';\n// import Code from '@material-ui/icons/Code';\nimport BulletedListIcon from '@material-ui/icons/FormatListBulleted';\nimport NumberedListIcon from '@material-ui/icons/FormatListNumbered';\nimport ImagePlugin from './image';\nimport MediaPlugin from './media';\nimport CharactersPlugin from './characters';\nimport Italic from '@material-ui/icons/FormatItalic';\nimport MathPlugin from './math';\nimport React from 'react';\nimport Strikethrough from '@material-ui/icons/FormatStrikethrough';\nimport ToolbarPlugin from './toolbar';\nimport Underline from '@material-ui/icons/FormatUnderlined';\nimport compact from 'lodash/compact';\nimport SoftBreakPlugin from 'slate-soft-break';\nimport debug from 'debug';\nimport List from './list';\nimport TablePlugin from './table';\nimport RespAreaPlugin from './respArea';\n\nconst log = debug('@pie-lib:editable-html:plugins');\n\nfunction MarkHotkey(options) {\n const { type, key, icon, tag } = options;\n\n // Return our \"plugin\" object, containing the `onKeyDown` handler.\n return {\n toolbar: {\n isMark: true,\n type,\n icon,\n onToggle: change => {\n log('[onToggleMark] type: ', type);\n return change.toggleMark(type);\n }\n },\n renderMark(props) {\n if (props.mark.type === type) {\n const K = tag || type;\n return <K>{props.children}</K>;\n }\n },\n onKeyDown(event, change) {\n // Check that the key pressed matches our `key` option.\n if (!event.metaKey || event.key != key) return;\n\n // Prevent the default characters from being inserted.\n event.preventDefault();\n\n // Toggle the mark `type`.\n change.toggleMark(type);\n return true;\n }\n };\n}\n\nexport const ALL_PLUGINS = [\n 'bold',\n // 'code',\n 'italic',\n 'underline',\n 'strikethrough',\n 'bulleted-list',\n 'numbered-list',\n 'image',\n 'math',\n 'languageCharacters',\n 'table',\n 'video',\n 'audio',\n 'responseArea'\n];\n\nexport const DEFAULT_PLUGINS = ALL_PLUGINS.filter(plug => plug !== 'responseArea');\n\nexport const buildPlugins = (activePlugins, opts) => {\n log('[buildPlugins] opts: ', opts);\n\n activePlugins = activePlugins || DEFAULT_PLUGINS;\n\n const addIf = (key, p) => activePlugins.includes(key) && p;\n const imagePlugin = opts.image && opts.image.onDelete && ImagePlugin(opts.image);\n const mathPlugin = MathPlugin(opts.math);\n const respAreaPlugin =\n opts.responseArea &&\n opts.responseArea.type &&\n RespAreaPlugin(opts.responseArea, compact([mathPlugin]));\n\n return compact([\n addIf('table', TablePlugin(opts.table, compact([imagePlugin, mathPlugin, respAreaPlugin]))),\n addIf('bold', MarkHotkey({ key: 'b', type: 'bold', icon: <Bold />, tag: 'strong' })),\n // addIf('code', MarkHotkey({ key: '`', type: 'code', icon: <Code /> })),\n addIf('italic', MarkHotkey({ key: 'i', type: 'italic', icon: <Italic />, tag: 'em' })),\n addIf(\n 'strikethrough',\n MarkHotkey({\n key: '~',\n type: 'strikethrough',\n icon: <Strikethrough />,\n tag: 'del'\n })\n ),\n addIf('underline', MarkHotkey({ key: 'u', type: 'underline', icon: <Underline />, tag: 'u' })),\n addIf('image', imagePlugin),\n addIf('video', MediaPlugin('video', opts.media)),\n addIf('audio', MediaPlugin('audio', opts.media)),\n addIf('math', mathPlugin),\n ...opts.languageCharacters.map(config => addIf('languageCharacters', CharactersPlugin(config))),\n addIf('bulleted-list', List({ key: 'l', type: 'ul_list', icon: <BulletedListIcon /> })),\n addIf('numbered-list', List({ key: 'n', type: 'ol_list', icon: <NumberedListIcon /> })),\n ToolbarPlugin(opts.toolbar),\n SoftBreakPlugin({ shift: true }),\n addIf('responseArea', respAreaPlugin)\n ]);\n};\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["log","debug","MarkHotkey","options","type","key","icon","tag","toolbar","isMark","onToggle","change","toggleMark","renderMark","props","mark","K","children","onKeyDown","event","metaKey","preventDefault","ALL_PLUGINS","DEFAULT_PLUGINS","filter","plug","buildPlugins","activePlugins","opts","addIf","p","includes","imagePlugin","image","onDelete","ImagePlugin","mathPlugin","MathPlugin","math","respAreaPlugin","responseArea","RespAreaPlugin","compact","TablePlugin","table","MediaPlugin","media","languageCharacters","map","config","CharactersPlugin","List","ToolbarPlugin","SoftBreakPlugin","shift"],"sources":["../../src/plugins/index.jsx"],"sourcesContent":["import Bold from '@material-ui/icons/FormatBold';\n// import Code from '@material-ui/icons/Code';\nimport BulletedListIcon from '@material-ui/icons/FormatListBulleted';\nimport NumberedListIcon from '@material-ui/icons/FormatListNumbered';\nimport ImagePlugin from './image';\nimport MediaPlugin from './media';\nimport CharactersPlugin from './characters';\nimport Italic from '@material-ui/icons/FormatItalic';\nimport MathPlugin from './math';\nimport React from 'react';\nimport Strikethrough from '@material-ui/icons/FormatStrikethrough';\nimport ToolbarPlugin from './toolbar';\nimport Underline from '@material-ui/icons/FormatUnderlined';\nimport compact from 'lodash/compact';\nimport SoftBreakPlugin from 'slate-soft-break';\nimport debug from 'debug';\nimport List from './list';\nimport TablePlugin from './table';\nimport RespAreaPlugin from './respArea';\n\nconst log = debug('@pie-lib:editable-html:plugins');\n\nfunction MarkHotkey(options) {\n const { type, key, icon, tag } = options;\n\n // Return our \"plugin\" object, containing the `onKeyDown` handler.\n return {\n toolbar: {\n isMark: true,\n type,\n icon,\n onToggle: change => {\n log('[onToggleMark] type: ', type);\n return change.toggleMark(type);\n }\n },\n renderMark(props) {\n if (props.mark.type === type) {\n const K = tag || type;\n return <K>{props.children}</K>;\n }\n },\n onKeyDown(event, change) {\n // Check that the key pressed matches our `key` option.\n if (!event.metaKey || event.key != key) return;\n\n // Prevent the default characters from being inserted.\n event.preventDefault();\n\n // Toggle the mark `type`.\n change.toggleMark(type);\n return true;\n }\n };\n}\n\nexport const ALL_PLUGINS = [\n 'bold',\n // 'code',\n 'italic',\n 'underline',\n 'strikethrough',\n 'bulleted-list',\n 'numbered-list',\n 'image',\n 'math',\n 'languageCharacters',\n 'table',\n 'video',\n 'audio',\n 'responseArea'\n];\n\nexport const DEFAULT_PLUGINS = ALL_PLUGINS.filter(plug => plug !== 'responseArea');\n\nexport const buildPlugins = (activePlugins, opts) => {\n log('[buildPlugins] opts: ', opts);\n\n activePlugins = activePlugins || DEFAULT_PLUGINS;\n\n const addIf = (key, p) => activePlugins.includes(key) && p;\n const imagePlugin = opts.image && opts.image.onDelete && ImagePlugin(opts.image);\n const mathPlugin = MathPlugin(opts.math);\n const respAreaPlugin =\n opts.responseArea &&\n opts.responseArea.type &&\n RespAreaPlugin(opts.responseArea, compact([mathPlugin]));\n\n return compact([\n addIf('table', TablePlugin(opts.table, compact([imagePlugin, mathPlugin, respAreaPlugin]))),\n addIf('bold', MarkHotkey({ key: 'b', type: 'bold', icon: <Bold />, tag: 'strong' })),\n // addIf('code', MarkHotkey({ key: '`', type: 'code', icon: <Code /> })),\n addIf('italic', MarkHotkey({ key: 'i', type: 'italic', icon: <Italic />, tag: 'em' })),\n addIf(\n 'strikethrough',\n MarkHotkey({\n key: '~',\n type: 'strikethrough',\n icon: <Strikethrough />,\n tag: 'del'\n })\n ),\n addIf('underline', MarkHotkey({ key: 'u', type: 'underline', icon: <Underline />, tag: 'u' })),\n addIf('image', imagePlugin),\n addIf('video', MediaPlugin('video', opts.media)),\n addIf('audio', MediaPlugin('audio', opts.media)),\n addIf('math', mathPlugin),\n ...opts.languageCharacters.map(config => addIf('languageCharacters', CharactersPlugin(config))),\n addIf('bulleted-list', List({ key: 'l', type: 'ul_list', icon: <BulletedListIcon /> })),\n addIf('numbered-list', List({ key: 'n', type: 'ol_list', icon: <NumberedListIcon /> })),\n ToolbarPlugin(opts.toolbar),\n SoftBreakPlugin({ shift: true }),\n addIf('responseArea', respAreaPlugin)\n ]);\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/list/index.jsx"],"names":["log","b","type","next","childNodes","object","nodes","serialization","deserialize","el","name","tagName","toLowerCase","children","length","Array","from","serialize","createEditList","core","typeDefault","schema","blocks","Object","keys","forEach","key","block","parent","types","getHighestSelectedBlocks","value","range","selection","document","startBlock","getClosestBlock","startKey","endBlock","endKey","Immutable","List","ancestor","getCommonAncestor","startPath","getPath","endPath","slice","get","changes","wrapInList","change","data","selectedBlocks","wrapBlock","Data","create","normalize","node","utils","isList","_ref","unwrapNodeByKey","wrapBlockByKey","options","icon","renderNode","props","attributes","toolbar","isMark","isActive","isSelectionInList","current","getCurrentList","onClick","onChange","inList","call","unwrapList","propTypes","PropTypes","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Data } from 'slate';\nimport Immutable from 'immutable';\nimport PropTypes from 'prop-types';\nimport EditList from 'slate-edit-list';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:plugins:list');\n\nconst b = (type, next, childNodes) => ({\n object: 'block',\n type,\n nodes: next(childNodes)\n});\n\nexport const serialization = {\n deserialize(el, next) {\n const name = el.tagName.toLowerCase();\n\n if (name === 'li') {\n return b('list_item', next, el.childNodes);\n }\n\n if (name === 'ul') {\n return b('ul_list', next, el.children.length ? Array.from(el.children) : el.childNodes);\n }\n\n if (name === 'ol') {\n return b('ol_list', next, el.children.length ? Array.from(el.children) : el.childNodes);\n }\n },\n serialize(object, children) {\n if (object.object !== 'block') return;\n\n if (object.type === 'list_item') {\n return <li>{children}</li>;\n }\n\n if (object.type === 'ul_list') {\n return <ul>{children}</ul>;\n }\n\n if (object.type === 'ol_list') {\n return <ol>{children}</ol>;\n }\n }\n};\n\nconst createEditList = () => {\n const core = EditList({\n typeDefault: 'span'\n });\n\n // fix outdated schema\n if (core.schema && core.schema.blocks) {\n Object.keys(core.schema.blocks).forEach(key => {\n const block = core.schema.blocks[key];\n\n if (block.parent) {\n return;\n }\n\n block.nodes[0] = { type: block.nodes[0].types[0] };\n });\n }\n\n /**\n * This override of the core.changes.wrapInList is needed because the version\n * of immutable that we have does not support getting the element at a specific\n * index with a square bracket (list[0]). We have to use the list.get function instead\n */\n\n /**\n * Returns the highest list of blocks that cover the current selection\n */\n const getHighestSelectedBlocks = value => {\n const range = value.selection;\n const document = value.document;\n\n const startBlock = document.getClosestBlock(range.startKey);\n const endBlock = document.getClosestBlock(range.endKey);\n\n if (startBlock === endBlock) {\n return Immutable.List([startBlock]);\n }\n\n const ancestor = document.getCommonAncestor(startBlock.key, endBlock.key);\n const startPath = ancestor.getPath(startBlock.key);\n const endPath = ancestor.getPath(endBlock.key);\n\n return ancestor.nodes.slice(startPath.get(0), endPath.get(0) + 1);\n };\n\n /**\n * Wrap the blocks in the current selection in a new list. Selected\n * lists are merged together.\n */\n core.changes.wrapInList = function(change, type, data) {\n const selectedBlocks = getHighestSelectedBlocks(change.value);\n\n // Wrap in container\n change.wrapBlock({ type: type, data: Data.create(data) }, { normalize: false });\n\n // Wrap in list items\n selectedBlocks.forEach(function(node) {\n if (core.utils.isList(node)) {\n // Merge its items with the created list\n node.nodes.forEach(function(_ref) {\n const key = _ref.key;\n return change.unwrapNodeByKey(key, { normalize: false });\n });\n } else if (node.type !== 'list_item') {\n change.wrapBlockByKey(node.key, 'list_item', {\n normalize: false\n });\n }\n });\n\n return change.normalize();\n };\n\n return core;\n};\n\nexport default options => {\n const { type, icon } = options;\n\n const core = createEditList();\n\n // eslint-disable-next-line react/display-name\n core.renderNode = props => {\n const { node, attributes, children } = props;\n\n switch (node.type) {\n case 'ul_list':\n return <ul {...attributes}>{children}</ul>;\n case 'ol_list':\n return <ol {...attributes}>{children}</ol>;\n case 'list_item':\n return <li {...attributes}>{children}</li>;\n }\n };\n\n core.toolbar = {\n isMark: false,\n type,\n icon,\n isActive: (value, type) => {\n if (!core.utils.isSelectionInList(value)) {\n return false;\n }\n const current = core.utils.getCurrentList(value);\n return current ? current.type === type : false;\n },\n onClick: (value, onChange) => {\n log('[onClick]', value);\n const inList = core.utils.isSelectionInList(value);\n if (inList) {\n const change = value.change().call(core.changes.unwrapList);\n onChange(change);\n } else {\n const change = value.change().call(core.changes.wrapInList, type);\n onChange(change);\n }\n }\n };\n\n core.renderNode.propTypes = {\n node: PropTypes.object,\n attributes: PropTypes.object,\n children: PropTypes.func\n };\n\n return core;\n};\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["log","debug","b","type","next","childNodes","object","nodes","serialization","deserialize","el","name","tagName","toLowerCase","children","length","Array","from","serialize","createEditList","core","EditList","typeDefault","schema","blocks","Object","keys","forEach","key","block","parent","types","getHighestSelectedBlocks","value","range","selection","document","startBlock","getClosestBlock","startKey","endBlock","endKey","Immutable","List","ancestor","getCommonAncestor","startPath","getPath","endPath","slice","get","changes","wrapInList","change","data","selectedBlocks","wrapBlock","Data","create","normalize","node","utils","isList","_ref","unwrapNodeByKey","wrapBlockByKey","options","icon","renderNode","props","attributes","toolbar","isMark","isActive","isSelectionInList","current","getCurrentList","onClick","onChange","inList","call","unwrapList","propTypes","PropTypes","func"],"sources":["../../../src/plugins/list/index.jsx"],"sourcesContent":["import React from 'react';\nimport { Data } from 'slate';\nimport Immutable from 'immutable';\nimport PropTypes from 'prop-types';\nimport EditList from 'slate-edit-list';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:plugins:list');\n\nconst b = (type, next, childNodes) => ({\n object: 'block',\n type,\n nodes: next(childNodes)\n});\n\nexport const serialization = {\n deserialize(el, next) {\n const name = el.tagName.toLowerCase();\n\n if (name === 'li') {\n return b('list_item', next, el.childNodes);\n }\n\n if (name === 'ul') {\n return b('ul_list', next, el.children.length ? Array.from(el.children) : el.childNodes);\n }\n\n if (name === 'ol') {\n return b('ol_list', next, el.children.length ? Array.from(el.children) : el.childNodes);\n }\n },\n serialize(object, children) {\n if (object.object !== 'block') return;\n\n if (object.type === 'list_item') {\n return <li>{children}</li>;\n }\n\n if (object.type === 'ul_list') {\n return <ul>{children}</ul>;\n }\n\n if (object.type === 'ol_list') {\n return <ol>{children}</ol>;\n }\n }\n};\n\nconst createEditList = () => {\n const core = EditList({\n typeDefault: 'span'\n });\n\n // fix outdated schema\n if (core.schema && core.schema.blocks) {\n Object.keys(core.schema.blocks).forEach(key => {\n const block = core.schema.blocks[key];\n\n if (block.parent) {\n return;\n }\n\n block.nodes[0] = { type: block.nodes[0].types[0] };\n });\n }\n\n /**\n * This override of the core.changes.wrapInList is needed because the version\n * of immutable that we have does not support getting the element at a specific\n * index with a square bracket (list[0]). We have to use the list.get function instead\n */\n\n /**\n * Returns the highest list of blocks that cover the current selection\n */\n const getHighestSelectedBlocks = value => {\n const range = value.selection;\n const document = value.document;\n\n const startBlock = document.getClosestBlock(range.startKey);\n const endBlock = document.getClosestBlock(range.endKey);\n\n if (startBlock === endBlock) {\n return Immutable.List([startBlock]);\n }\n\n const ancestor = document.getCommonAncestor(startBlock.key, endBlock.key);\n const startPath = ancestor.getPath(startBlock.key);\n const endPath = ancestor.getPath(endBlock.key);\n\n return ancestor.nodes.slice(startPath.get(0), endPath.get(0) + 1);\n };\n\n /**\n * Wrap the blocks in the current selection in a new list. Selected\n * lists are merged together.\n */\n core.changes.wrapInList = function(change, type, data) {\n const selectedBlocks = getHighestSelectedBlocks(change.value);\n\n // Wrap in container\n change.wrapBlock({ type: type, data: Data.create(data) }, { normalize: false });\n\n // Wrap in list items\n selectedBlocks.forEach(function(node) {\n if (core.utils.isList(node)) {\n // Merge its items with the created list\n node.nodes.forEach(function(_ref) {\n const key = _ref.key;\n return change.unwrapNodeByKey(key, { normalize: false });\n });\n } else if (node.type !== 'list_item') {\n change.wrapBlockByKey(node.key, 'list_item', {\n normalize: false\n });\n }\n });\n\n return change.normalize();\n };\n\n return core;\n};\n\nexport default options => {\n const { type, icon } = options;\n\n const core = createEditList();\n\n // eslint-disable-next-line react/display-name\n core.renderNode = props => {\n const { node, attributes, children } = props;\n\n switch (node.type) {\n case 'ul_list':\n return <ul {...attributes}>{children}</ul>;\n case 'ol_list':\n return <ol {...attributes}>{children}</ol>;\n case 'list_item':\n return <li {...attributes}>{children}</li>;\n }\n };\n\n core.toolbar = {\n isMark: false,\n type,\n icon,\n isActive: (value, type) => {\n if (!core.utils.isSelectionInList(value)) {\n return false;\n }\n const current = core.utils.getCurrentList(value);\n return current ? current.type === type : false;\n },\n onClick: (value, onChange) => {\n log('[onClick]', value);\n const inList = core.utils.isSelectionInList(value);\n if (inList) {\n const change = value.change().call(core.changes.unwrapList);\n onChange(change);\n } else {\n const change = value.change().call(core.changes.wrapInList, type);\n onChange(change);\n }\n }\n };\n\n core.renderNode.propTypes = {\n node: PropTypes.object,\n attributes: PropTypes.object,\n children: PropTypes.func\n };\n\n return core;\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/math/index.jsx"],"names":["log","TEXT_NODE","generateAdditionalKeys","keyData","map","key","name","latex","write","label","CustomToolbarComp","React","memo","props","node","value","onFocus","onBlur","onClick","pluginProps","math","keypadMode","customKeys","controlledKeypadMode","onDone","update","data","toObject","change","setNodeByKey","nextText","document","getNextText","moveFocusTo","moveAnchorTo","onToolbarDone","onChange","onDataChange","get","prev","next","nodeNext","keypadModeNext","controlledKeypadModeNext","keypadModeChanged","controlledKeypadModeChanged","equal","equals","propTypes","SlatePropTypes","isRequired","PropTypes","func","MathPlugin","toolbar","icon","inlineMath","insertInline","supports","object","type","schema","match","pluginStyles","parentNode","p","position","top","renderNode","html","attributes","__html","ROUND_BRACKETS","SQUARE_BRACKETS","DOLLAR","DOUBLE_DOLLAR","Inline","create","isVoid","htmlDecode","input","doc","DOMParser","parseFromString","documentElement","textContent","getTagName","el","tagName","toLowerCase","lessThanHandling","arrowSplit","split","length","reduce","st","part","serialization","deserialize","hasMathChild","BLOCK_TAGS","childNodes","firstChild","dataset","newHtml","innerHTML","outerHTML","nodeType","hasLatex","hasAttribute","unwrapped","wrapType","nodes","wrapper","serialize","l","decoded"],"mappings":"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","sourcesContent":["import Functions from '@material-ui/icons/Functions';\nimport { Inline } from 'slate';\nimport { MathPreview, MathToolbar } from '@pie-lib/math-toolbar';\nimport { wrapMath, unWrapMath } from '@pie-lib/math-rendering';\nimport React from 'react';\nimport debug from 'debug';\nimport SlatePropTypes from 'slate-prop-types';\nimport PropTypes from 'prop-types';\n\nimport { BLOCK_TAGS } from '../../serialization';\nconst log = debug('@pie-lib:editable-html:plugins:math');\n\nconst TEXT_NODE = 3;\n\nfunction generateAdditionalKeys(keyData = []) {\n return keyData.map(key => ({\n name: key,\n latex: key,\n write: key,\n label: key\n }));\n}\n\nexport const CustomToolbarComp = React.memo(\n props => {\n const { node, value, onFocus, onBlur, onClick } = props;\n const { pluginProps } = props || {};\n const { math } = pluginProps || {};\n const { keypadMode, customKeys, controlledKeypadMode = true } = math || {};\n\n const onDone = latex => {\n const update = {\n ...node.data.toObject(),\n latex\n };\n const change = value.change().setNodeByKey(node.key, { data: update });\n\n const nextText = value.document.getNextText(node.key);\n\n change.moveFocusTo(nextText.key, 0).moveAnchorTo(nextText.key, 0);\n\n props.onToolbarDone(change, false);\n };\n\n const onChange = latex => {\n const update = {\n ...node.data.toObject(),\n latex\n };\n const change = value.change().setNodeByKey(node.key, { data: update });\n log('call onToolbarChange:', change);\n props.onDataChange(node.key, update);\n };\n\n const latex = node.data.get('latex');\n\n return (\n <MathToolbar\n autoFocus\n additionalKeys={generateAdditionalKeys(customKeys)}\n latex={latex}\n onChange={onChange}\n onDone={onDone}\n onBlur={onBlur}\n onFocus={onFocus}\n onClick={onClick}\n keypadMode={keypadMode}\n controlledKeypadMode={controlledKeypadMode}\n />\n );\n },\n (prev, next) => {\n const { node, pluginProps: { math: { keypadMode, controlledKeypadMode } = {} } = {} } = prev;\n const {\n node: nodeNext,\n pluginProps: {\n math: { keypadMode: keypadModeNext, controlledKeypadMode: controlledKeypadModeNext } = {}\n } = {}\n } = next;\n const keypadModeChanged = keypadMode !== keypadModeNext;\n const controlledKeypadModeChanged = controlledKeypadMode !== controlledKeypadModeNext;\n\n const equal = node.equals(nodeNext);\n return equal && !keypadModeChanged && !controlledKeypadModeChanged;\n }\n);\n\nCustomToolbarComp.propTypes = {\n node: SlatePropTypes.node.isRequired,\n value: SlatePropTypes.value,\n onToolbarDone: PropTypes.func,\n onDataChange: PropTypes.func,\n onFocus: PropTypes.func,\n onClick: PropTypes.func,\n onBlur: PropTypes.func\n};\n\nexport default function MathPlugin() {\n return {\n name: 'math',\n toolbar: {\n icon: <Functions />,\n onClick: (value, onChange) => {\n log('[insertMath]');\n const math = inlineMath();\n const change = value.change().insertInline(math);\n onChange(change);\n },\n supports: node => node && node.object === 'inline' && node.type === 'math',\n /**\n * Return a react component function\n * @param node {Slate.Node}\n * @param value {Slate.Value}\n * @param onDone {(change?: Slate.Change, finishEditing :boolea) => void} - a function to call once the toolbar\n * has made any changes, call with the node.key and a data object.\n */\n CustomToolbarComp\n },\n schema: {\n document: { match: [{ type: 'math' }] }\n },\n\n pluginStyles: (node, parentNode, p) => {\n if (p) {\n return {\n position: 'absolute',\n top: 'initial'\n };\n }\n },\n\n renderNode: props => {\n if (props.node.type === 'math') {\n log('[renderNode]: data:', props.node.data);\n return <MathPreview {...props} />;\n }\n\n /**\n * Here for rendering mathml content\n */\n if (props.node.type === 'mathml') {\n const html = props.node.data.get('html');\n\n return <span {...props.attributes} dangerouslySetInnerHTML={{ __html: html }} />;\n }\n }\n };\n}\n\nMathPlugin.ROUND_BRACKETS = 'round_brackets';\nMathPlugin.SQUARE_BRACKETS = 'square_brackets';\nMathPlugin.DOLLAR = 'dollar';\nMathPlugin.DOUBLE_DOLLAR = 'double_dollar';\n\nexport const inlineMath = () =>\n Inline.create({\n object: 'inline',\n type: 'math',\n isVoid: true,\n data: {\n latex: ''\n }\n });\n\nconst htmlDecode = input => {\n const doc = new DOMParser().parseFromString(input, 'text/html');\n\n return doc.documentElement.textContent;\n};\n\nconst getTagName = el => {\n return ((el && el.tagName) || '').toLowerCase();\n};\n\n/**\n * Makes sure that strings that contain stuff like:\n * x<y are not transformed into x by the DOMParser because it thinks\n * that <y is the start of a dom element tag\n * @param input\n * @returns {*}\n */\nconst lessThanHandling = input => {\n const arrowSplit = input.split('<');\n\n // if we don't have at least 2 characters there's no point in checking\n if (input.length > 2) {\n return arrowSplit.reduce((st, part) => {\n /*\n We check if this element resulted is:\n div - continuation of a beginning of a HTML element\n /div - closing of a HTML tag\n br/> - beginning and closing of a html TAG\n */\n if (part.match(/<[a-zA-Z/][\\s\\S]*>/ig)) {\n return `${st}${st ? '<' : ''}${part}`;\n }\n\n return `${st}${st ? '&lt;' : ''}${part}`;\n }, '');\n }\n\n return input;\n};\n\nexport const serialization = {\n deserialize(el) {\n const tagName = getTagName(el);\n /**\n * This is used for when there's a wrapper over the mathml element.\n * Because of this slate rule: \"Only allow block nodes or inline and text nodes in blocks.\"\n * The element that contains only the mathml is removed (along with the math) because it has\n * an inline child and the block is of type block\n * This is for legacy content only since our math rendering is valid for the core slate rules\n */\n const hasMathChild =\n BLOCK_TAGS[tagName] && el.childNodes.length === 1 && getTagName(el.firstChild) === 'math';\n log('[deserialize] name: ', tagName);\n\n /**\n * This is here in order to be able to render mathml content\n */\n if (tagName === 'math' || (el.dataset && el.dataset.type === 'mathml') || hasMathChild) {\n const newHtml = hasMathChild ? el.innerHTML : el.outerHTML;\n\n return {\n object: 'inline',\n isVoid: true,\n type: 'mathml',\n data: {\n html: newHtml\n }\n };\n }\n\n if (el.nodeType === TEXT_NODE) {\n return;\n }\n\n if (tagName !== 'span') {\n return;\n }\n\n const hasLatex = el.hasAttribute('data-latex') || el.hasAttribute('latex');\n\n if (hasLatex) {\n const latex = htmlDecode(el.innerHTML);\n const { unwrapped, wrapType } = unWrapMath(latex);\n log('[deserialize]: noBrackets: ', unwrapped, wrapType);\n return {\n object: 'inline',\n type: 'math',\n isVoid: true,\n nodes: [],\n data: {\n latex: unwrapped,\n wrapper: wrapType\n }\n };\n }\n },\n serialize(object) {\n if (object.type === 'math') {\n const l = object.data.get('latex');\n const wrapper = object.data.get('wrapper');\n log('[serialize] latex: ', l);\n const decoded = htmlDecode(lessThanHandling(l));\n return (\n <span data-latex=\"\" data-raw={decoded}>\n {wrapMath(decoded, wrapper)}\n </span>\n );\n }\n\n /**\n * Here for rendering mathml content\n */\n if (object.type === 'mathml') {\n const html = object.data.get('html');\n\n return <span data-type=\"mathml\" dangerouslySetInnerHTML={{ __html: html }} />;\n }\n }\n};\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["log","debug","TEXT_NODE","generateAdditionalKeys","keyData","map","key","name","latex","write","label","CustomToolbarComp","React","memo","props","node","value","onFocus","onBlur","onClick","pluginProps","math","keypadMode","customKeys","controlledKeypadMode","onDone","update","data","toObject","change","setNodeByKey","nextText","document","getNextText","moveFocusTo","moveAnchorTo","onToolbarDone","onChange","onDataChange","get","prev","next","nodeNext","keypadModeNext","controlledKeypadModeNext","keypadModeChanged","controlledKeypadModeChanged","equal","equals","propTypes","SlatePropTypes","isRequired","PropTypes","func","MathPlugin","toolbar","icon","inlineMath","insertInline","supports","object","type","schema","match","pluginStyles","parentNode","p","position","top","renderNode","html","attributes","__html","ROUND_BRACKETS","SQUARE_BRACKETS","DOLLAR","DOUBLE_DOLLAR","Inline","create","isVoid","htmlDecode","input","doc","DOMParser","parseFromString","documentElement","textContent","getTagName","el","tagName","toLowerCase","lessThanHandling","arrowSplit","split","length","reduce","st","part","serialization","deserialize","hasMathChild","BLOCK_TAGS","childNodes","firstChild","dataset","newHtml","innerHTML","outerHTML","nodeType","hasLatex","hasAttribute","unWrapMath","unwrapped","wrapType","nodes","wrapper","serialize","l","decoded","wrapMath"],"sources":["../../../src/plugins/math/index.jsx"],"sourcesContent":["import Functions from '@material-ui/icons/Functions';\nimport { Inline } from 'slate';\nimport { MathPreview, MathToolbar } from '@pie-lib/math-toolbar';\nimport { wrapMath, unWrapMath } from '@pie-lib/math-rendering';\nimport React from 'react';\nimport debug from 'debug';\nimport SlatePropTypes from 'slate-prop-types';\nimport PropTypes from 'prop-types';\n\nimport { BLOCK_TAGS } from '../../serialization';\nconst log = debug('@pie-lib:editable-html:plugins:math');\n\nconst TEXT_NODE = 3;\n\nfunction generateAdditionalKeys(keyData = []) {\n return keyData.map(key => ({\n name: key,\n latex: key,\n write: key,\n label: key\n }));\n}\n\nexport const CustomToolbarComp = React.memo(\n props => {\n const { node, value, onFocus, onBlur, onClick } = props;\n const { pluginProps } = props || {};\n const { math } = pluginProps || {};\n const { keypadMode, customKeys, controlledKeypadMode = true } = math || {};\n\n const onDone = latex => {\n const update = {\n ...node.data.toObject(),\n latex\n };\n const change = value.change().setNodeByKey(node.key, { data: update });\n\n const nextText = value.document.getNextText(node.key);\n\n change.moveFocusTo(nextText.key, 0).moveAnchorTo(nextText.key, 0);\n\n props.onToolbarDone(change, false);\n };\n\n const onChange = latex => {\n const update = {\n ...node.data.toObject(),\n latex\n };\n const change = value.change().setNodeByKey(node.key, { data: update });\n log('call onToolbarChange:', change);\n props.onDataChange(node.key, update);\n };\n\n const latex = node.data.get('latex');\n\n return (\n <MathToolbar\n autoFocus\n additionalKeys={generateAdditionalKeys(customKeys)}\n latex={latex}\n onChange={onChange}\n onDone={onDone}\n onBlur={onBlur}\n onFocus={onFocus}\n onClick={onClick}\n keypadMode={keypadMode}\n controlledKeypadMode={controlledKeypadMode}\n />\n );\n },\n (prev, next) => {\n const { node, pluginProps: { math: { keypadMode, controlledKeypadMode } = {} } = {} } = prev;\n const {\n node: nodeNext,\n pluginProps: {\n math: { keypadMode: keypadModeNext, controlledKeypadMode: controlledKeypadModeNext } = {}\n } = {}\n } = next;\n const keypadModeChanged = keypadMode !== keypadModeNext;\n const controlledKeypadModeChanged = controlledKeypadMode !== controlledKeypadModeNext;\n\n const equal = node.equals(nodeNext);\n return equal && !keypadModeChanged && !controlledKeypadModeChanged;\n }\n);\n\nCustomToolbarComp.propTypes = {\n node: SlatePropTypes.node.isRequired,\n value: SlatePropTypes.value,\n onToolbarDone: PropTypes.func,\n onDataChange: PropTypes.func,\n onFocus: PropTypes.func,\n onClick: PropTypes.func,\n onBlur: PropTypes.func\n};\n\nexport default function MathPlugin() {\n return {\n name: 'math',\n toolbar: {\n icon: <Functions />,\n onClick: (value, onChange) => {\n log('[insertMath]');\n const math = inlineMath();\n const change = value.change().insertInline(math);\n onChange(change);\n },\n supports: node => node && node.object === 'inline' && node.type === 'math',\n /**\n * Return a react component function\n * @param node {Slate.Node}\n * @param value {Slate.Value}\n * @param onDone {(change?: Slate.Change, finishEditing :boolea) => void} - a function to call once the toolbar\n * has made any changes, call with the node.key and a data object.\n */\n CustomToolbarComp\n },\n schema: {\n document: { match: [{ type: 'math' }] }\n },\n\n pluginStyles: (node, parentNode, p) => {\n if (p) {\n return {\n position: 'absolute',\n top: 'initial'\n };\n }\n },\n\n renderNode: props => {\n if (props.node.type === 'math') {\n log('[renderNode]: data:', props.node.data);\n return <MathPreview {...props} />;\n }\n\n /**\n * Here for rendering mathml content\n */\n if (props.node.type === 'mathml') {\n const html = props.node.data.get('html');\n\n return <span {...props.attributes} dangerouslySetInnerHTML={{ __html: html }} />;\n }\n }\n };\n}\n\nMathPlugin.ROUND_BRACKETS = 'round_brackets';\nMathPlugin.SQUARE_BRACKETS = 'square_brackets';\nMathPlugin.DOLLAR = 'dollar';\nMathPlugin.DOUBLE_DOLLAR = 'double_dollar';\n\nexport const inlineMath = () =>\n Inline.create({\n object: 'inline',\n type: 'math',\n isVoid: true,\n data: {\n latex: ''\n }\n });\n\nconst htmlDecode = input => {\n const doc = new DOMParser().parseFromString(input, 'text/html');\n\n return doc.documentElement.textContent;\n};\n\nconst getTagName = el => {\n return ((el && el.tagName) || '').toLowerCase();\n};\n\n/**\n * Makes sure that strings that contain stuff like:\n * x<y are not transformed into x by the DOMParser because it thinks\n * that <y is the start of a dom element tag\n * @param input\n * @returns {*}\n */\nconst lessThanHandling = input => {\n const arrowSplit = input.split('<');\n\n // if we don't have at least 2 characters there's no point in checking\n if (input.length > 2) {\n return arrowSplit.reduce((st, part) => {\n /*\n We check if this element resulted is:\n div - continuation of a beginning of a HTML element\n /div - closing of a HTML tag\n br/> - beginning and closing of a html TAG\n */\n if (part.match(/<[a-zA-Z/][\\s\\S]*>/ig)) {\n return `${st}${st ? '<' : ''}${part}`;\n }\n\n return `${st}${st ? '&lt;' : ''}${part}`;\n }, '');\n }\n\n return input;\n};\n\nexport const serialization = {\n deserialize(el) {\n const tagName = getTagName(el);\n /**\n * This is used for when there's a wrapper over the mathml element.\n * Because of this slate rule: \"Only allow block nodes or inline and text nodes in blocks.\"\n * The element that contains only the mathml is removed (along with the math) because it has\n * an inline child and the block is of type block\n * This is for legacy content only since our math rendering is valid for the core slate rules\n */\n const hasMathChild =\n BLOCK_TAGS[tagName] && el.childNodes.length === 1 && getTagName(el.firstChild) === 'math';\n log('[deserialize] name: ', tagName);\n\n /**\n * This is here in order to be able to render mathml content\n */\n if (tagName === 'math' || (el.dataset && el.dataset.type === 'mathml') || hasMathChild) {\n const newHtml = hasMathChild ? el.innerHTML : el.outerHTML;\n\n return {\n object: 'inline',\n isVoid: true,\n type: 'mathml',\n data: {\n html: newHtml\n }\n };\n }\n\n if (el.nodeType === TEXT_NODE) {\n return;\n }\n\n if (tagName !== 'span') {\n return;\n }\n\n const hasLatex = el.hasAttribute('data-latex') || el.hasAttribute('latex');\n\n if (hasLatex) {\n const latex = htmlDecode(el.innerHTML);\n const { unwrapped, wrapType } = unWrapMath(latex);\n log('[deserialize]: noBrackets: ', unwrapped, wrapType);\n return {\n object: 'inline',\n type: 'math',\n isVoid: true,\n nodes: [],\n data: {\n latex: unwrapped,\n wrapper: wrapType\n }\n };\n }\n },\n serialize(object) {\n if (object.type === 'math') {\n const l = object.data.get('latex');\n const wrapper = object.data.get('wrapper');\n log('[serialize] latex: ', l);\n const decoded = htmlDecode(lessThanHandling(l));\n return (\n <span data-latex=\"\" data-raw={decoded}>\n {wrapMath(decoded, wrapper)}\n </span>\n );\n }\n\n /**\n * Here for rendering mathml content\n */\n if (object.type === 'mathml') {\n const html = object.data.get('html');\n\n return <span data-type=\"mathml\" dangerouslySetInnerHTML={{ __html: html }} />;\n }\n }\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/media/index.jsx"],"names":["log","removeDialogs","prevDialogs","document","querySelectorAll","forEach","s","remove","insertDialog","props","newEl","createElement","type","callback","opts","rest","initialBodyOverflow","body","style","overflow","className","handleClose","val","data","el","uploadSoundSupport","ReactDOM","render","appendChild","types","MediaPlugin","toolbar","icon","onClick","value","onChange","inline","Inline","create","isVoid","editing","ends","undefined","height","title","starts","src","url","width","change","insertInline","nodeIsThere","findDescendant","d","key","c","removeNodeByKey","focus","setNodeByKey","supports","node","object","name","deleteNode","e","preventDefault","renderNode","jsonData","toJSON","tag","handleEdit","createChange","edit","get","handleDelete","normalizeNode","textNodeMap","updateNodesArray","index","isMedia","indexOf","text","push","length","withoutNormalization","n","insertTextByKey","serialization","deserialize","dataset","typeIndex","Element","tagName","toLowerCase","firstChild","getAttribute","parseInt","out","serialize","divProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Inline } from 'slate';\nimport TheatersIcon from '@material-ui/icons/Theaters';\nimport VolumeUpIcon from '@material-ui/icons/VolumeUp';\nimport debug from 'debug';\n\nimport MediaDialog from './media-dialog';\nimport MediaToolbar from './media-toolbar';\nimport MediaWrapper from './media-wrapper';\n\nconst log = debug('@pie-lib:editable-html:plugins:image');\n\nconst removeDialogs = () => {\n const prevDialogs = document.querySelectorAll('.insert-media-dialog');\n\n prevDialogs.forEach(s => s.remove());\n};\n\nexport const insertDialog = props => {\n const newEl = document.createElement('div');\n const { type, callback, opts, ...rest } = props;\n const initialBodyOverflow = document.body.style.overflow;\n\n removeDialogs();\n\n newEl.className = 'insert-media-dialog';\n document.body.style.overflow = 'hidden';\n\n const handleClose = (val, data) => {\n callback(val, data);\n newEl.remove();\n document.body.style.overflow = initialBodyOverflow;\n };\n\n const el = (\n <MediaDialog\n {...rest}\n uploadSoundSupport={opts.uploadSoundSupport}\n type={type}\n disablePortal={true}\n open={true}\n handleClose={handleClose}\n />\n );\n\n ReactDOM.render(el, newEl);\n\n document.body.appendChild(newEl);\n};\n\nconst types = ['audio', 'video'];\n\nexport default function MediaPlugin(type, opts) {\n const toolbar = {\n icon: type === 'audio' ? <VolumeUpIcon /> : <TheatersIcon />,\n onClick: (value, onChange) => {\n log('[toolbar] onClick');\n const inline = Inline.create({\n type: type,\n isVoid: true,\n data: {\n editing: false,\n ends: undefined,\n height: undefined,\n title: undefined,\n starts: undefined,\n src: undefined,\n url: undefined,\n width: undefined\n }\n });\n\n const change = value.change().insertInline(inline);\n onChange(change);\n insertDialog({\n type,\n opts,\n callback: (val, data) => {\n const nodeIsThere = change.value.document.findDescendant(d => d.key === inline.key);\n\n if (nodeIsThere) {\n if (!val) {\n const c = change.removeNodeByKey(inline.key);\n onChange(c, () => opts.focus());\n } else {\n const c = change.setNodeByKey(inline.key, { data });\n onChange(c, () => opts.focus('beginning', nodeIsThere));\n }\n } else {\n opts.focus();\n }\n }\n });\n },\n supports: node => node.object === 'inline' && node.type === type\n };\n\n return {\n name: type,\n toolbar,\n deleteNode: (e, node, value, onChange) => {\n e.preventDefault();\n const change = value.change().removeNodeByKey(node.key);\n\n onChange(change);\n },\n renderNode(props) {\n if (props.node.type === type) {\n const { node, key } = props;\n const { data } = node;\n const jsonData = data.toJSON();\n const { src, height, width, editing, tag, ...rest } = jsonData;\n const handleEdit = () => {\n const change = opts.createChange();\n const c = change.setNodeByKey(key, {\n data: {\n ...jsonData,\n editing: true\n }\n });\n\n opts.onChange(c, () => {\n insertDialog({\n ...jsonData,\n edit: true,\n type,\n opts,\n callback: (val, data) => {\n const { key } = node;\n\n const nodeIsThere = change.value.document.findDescendant(\n d => d.type === type && d.data.get('editing')\n );\n\n if (nodeIsThere && val) {\n const c = change.setNodeByKey(key, { data, editing: false });\n opts.onChange(c, () => opts.focus('beginning', nodeIsThere));\n } else {\n opts.focus();\n }\n }\n });\n });\n };\n const handleDelete = () => {\n const change = opts.createChange();\n const c = change.removeNodeByKey(node.key);\n\n opts.onChange(c);\n };\n const style = {};\n\n if (width) {\n style.width = `${width}px`;\n }\n\n if (height) {\n style.height = `${height}px`;\n }\n\n if (tag === 'audio') {\n return (\n <MediaWrapper editor data-type={type} width={style.width} {...rest}>\n <audio controls=\"controls\">\n <source type=\"audio/mp3\" src={src} />\n </audio>\n <MediaToolbar hideEdit onRemove={handleDelete} />\n </MediaWrapper>\n );\n }\n\n return (\n <MediaWrapper editor data-type={type} width={style.width} {...rest}>\n <iframe\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n src={src}\n editing={editing ? 1 : 0}\n {...rest}\n {...style}\n />\n <MediaToolbar onEdit={handleEdit} onRemove={handleDelete} />\n </MediaWrapper>\n );\n }\n },\n normalizeNode: node => {\n const textNodeMap = {};\n const updateNodesArray = [];\n let index = 0;\n\n if (node.object !== 'document') return;\n\n node.findDescendant(d => {\n if (d.object === 'text') {\n textNodeMap[index] = d;\n }\n\n const isMedia = types.indexOf(d.type) >= 0;\n\n if (isMedia) {\n if (index > 0 && textNodeMap[index - 1] && textNodeMap[index - 1].text === '') {\n updateNodesArray.push(textNodeMap[index - 1]);\n }\n }\n\n index++;\n });\n\n if (!updateNodesArray.length) return;\n\n return change => {\n change.withoutNormalization(() => {\n updateNodesArray.forEach(n => change.insertTextByKey(n.key, 0, ' '));\n });\n };\n }\n };\n}\n\nexport const serialization = {\n deserialize(el /*, next*/) {\n let type = el.dataset && el.dataset.type;\n let tag = 'iframe';\n let src;\n const typeIndex = types.indexOf(type);\n\n if (typeIndex < 0) {\n if (el instanceof Element && el.tagName.toLowerCase() === 'audio') {\n type = 'audio';\n tag = 'audio';\n src = el.firstChild?.getAttribute('src');\n } else {\n return;\n }\n }\n\n const { ends, starts, title, editing, url } = el.dataset || {};\n\n log('deserialize: ', name);\n const width = parseInt(el.getAttribute('width'), 10) || null;\n const height = parseInt(el.getAttribute('height'), 10) || null;\n\n const out = {\n object: 'inline',\n type: type,\n isVoid: true,\n data: {\n tag,\n src: src || el.getAttribute('src'),\n editing,\n ends,\n height,\n starts,\n title,\n width,\n url\n }\n };\n log('return object: ', out);\n return out;\n },\n serialize(object /*, children*/) {\n const typeIndex = types.indexOf(object.type);\n\n if (typeIndex < 0) return;\n\n const type = types[typeIndex];\n\n const { data } = object;\n const editing = data.get('editing');\n const tag = data.get('tag');\n const ends = data.get('ends');\n const src = data.get('src');\n const starts = data.get('starts');\n const title = data.get('title');\n const width = data.get('width');\n const height = data.get('height');\n const url = data.get('url');\n const style = {};\n\n if (width) {\n style.width = `${width}px`;\n }\n\n if (height) {\n style.height = `${height}px`;\n }\n\n const divProps = {\n 'data-editing': editing,\n 'data-ends': ends,\n 'data-starts': starts,\n 'data-title': title,\n 'data-url': url\n };\n const props = {\n ...style,\n src\n };\n\n if (tag === 'audio') {\n return (\n <audio controls=\"controls\">\n <source type=\"audio/mp3\" src={src} />\n </audio>\n );\n }\n\n return (\n <iframe\n data-type={type}\n src={src}\n {...divProps}\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n {...props}\n />\n );\n }\n};\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["log","debug","removeDialogs","prevDialogs","document","querySelectorAll","forEach","s","remove","insertDialog","props","newEl","createElement","type","callback","opts","rest","initialBodyOverflow","body","style","overflow","className","handleClose","val","data","el","uploadSoundSupport","ReactDOM","render","appendChild","types","MediaPlugin","toolbar","icon","onClick","value","onChange","inline","Inline","create","isVoid","editing","ends","undefined","height","title","starts","src","url","width","change","insertInline","nodeIsThere","findDescendant","d","key","c","removeNodeByKey","focus","setNodeByKey","supports","node","object","name","deleteNode","e","preventDefault","renderNode","jsonData","toJSON","tag","handleEdit","createChange","edit","get","handleDelete","normalizeNode","textNodeMap","updateNodesArray","index","isMedia","indexOf","text","push","length","withoutNormalization","n","insertTextByKey","serialization","deserialize","dataset","typeIndex","Element","tagName","toLowerCase","firstChild","getAttribute","parseInt","out","serialize","divProps"],"sources":["../../../src/plugins/media/index.jsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Inline } from 'slate';\nimport TheatersIcon from '@material-ui/icons/Theaters';\nimport VolumeUpIcon from '@material-ui/icons/VolumeUp';\nimport debug from 'debug';\n\nimport MediaDialog from './media-dialog';\nimport MediaToolbar from './media-toolbar';\nimport MediaWrapper from './media-wrapper';\n\nconst log = debug('@pie-lib:editable-html:plugins:image');\n\nconst removeDialogs = () => {\n const prevDialogs = document.querySelectorAll('.insert-media-dialog');\n\n prevDialogs.forEach(s => s.remove());\n};\n\nexport const insertDialog = props => {\n const newEl = document.createElement('div');\n const { type, callback, opts, ...rest } = props;\n const initialBodyOverflow = document.body.style.overflow;\n\n removeDialogs();\n\n newEl.className = 'insert-media-dialog';\n document.body.style.overflow = 'hidden';\n\n const handleClose = (val, data) => {\n callback(val, data);\n newEl.remove();\n document.body.style.overflow = initialBodyOverflow;\n };\n\n const el = (\n <MediaDialog\n {...rest}\n uploadSoundSupport={opts.uploadSoundSupport}\n type={type}\n disablePortal={true}\n open={true}\n handleClose={handleClose}\n />\n );\n\n ReactDOM.render(el, newEl);\n\n document.body.appendChild(newEl);\n};\n\nconst types = ['audio', 'video'];\n\nexport default function MediaPlugin(type, opts) {\n const toolbar = {\n icon: type === 'audio' ? <VolumeUpIcon /> : <TheatersIcon />,\n onClick: (value, onChange) => {\n log('[toolbar] onClick');\n const inline = Inline.create({\n type: type,\n isVoid: true,\n data: {\n editing: false,\n ends: undefined,\n height: undefined,\n title: undefined,\n starts: undefined,\n src: undefined,\n url: undefined,\n width: undefined\n }\n });\n\n const change = value.change().insertInline(inline);\n onChange(change);\n insertDialog({\n type,\n opts,\n callback: (val, data) => {\n const nodeIsThere = change.value.document.findDescendant(d => d.key === inline.key);\n\n if (nodeIsThere) {\n if (!val) {\n const c = change.removeNodeByKey(inline.key);\n onChange(c, () => opts.focus());\n } else {\n const c = change.setNodeByKey(inline.key, { data });\n onChange(c, () => opts.focus('beginning', nodeIsThere));\n }\n } else {\n opts.focus();\n }\n }\n });\n },\n supports: node => node.object === 'inline' && node.type === type\n };\n\n return {\n name: type,\n toolbar,\n deleteNode: (e, node, value, onChange) => {\n e.preventDefault();\n const change = value.change().removeNodeByKey(node.key);\n\n onChange(change);\n },\n renderNode(props) {\n if (props.node.type === type) {\n const { node, key } = props;\n const { data } = node;\n const jsonData = data.toJSON();\n const { src, height, width, editing, tag, ...rest } = jsonData;\n const handleEdit = () => {\n const change = opts.createChange();\n const c = change.setNodeByKey(key, {\n data: {\n ...jsonData,\n editing: true\n }\n });\n\n opts.onChange(c, () => {\n insertDialog({\n ...jsonData,\n edit: true,\n type,\n opts,\n callback: (val, data) => {\n const { key } = node;\n\n const nodeIsThere = change.value.document.findDescendant(\n d => d.type === type && d.data.get('editing')\n );\n\n if (nodeIsThere && val) {\n const c = change.setNodeByKey(key, { data, editing: false });\n opts.onChange(c, () => opts.focus('beginning', nodeIsThere));\n } else {\n opts.focus();\n }\n }\n });\n });\n };\n const handleDelete = () => {\n const change = opts.createChange();\n const c = change.removeNodeByKey(node.key);\n\n opts.onChange(c);\n };\n const style = {};\n\n if (width) {\n style.width = `${width}px`;\n }\n\n if (height) {\n style.height = `${height}px`;\n }\n\n if (tag === 'audio') {\n return (\n <MediaWrapper editor data-type={type} width={style.width} {...rest}>\n <audio controls=\"controls\">\n <source type=\"audio/mp3\" src={src} />\n </audio>\n <MediaToolbar hideEdit onRemove={handleDelete} />\n </MediaWrapper>\n );\n }\n\n return (\n <MediaWrapper editor data-type={type} width={style.width} {...rest}>\n <iframe\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n src={src}\n editing={editing ? 1 : 0}\n {...rest}\n {...style}\n />\n <MediaToolbar onEdit={handleEdit} onRemove={handleDelete} />\n </MediaWrapper>\n );\n }\n },\n normalizeNode: node => {\n const textNodeMap = {};\n const updateNodesArray = [];\n let index = 0;\n\n if (node.object !== 'document') return;\n\n node.findDescendant(d => {\n if (d.object === 'text') {\n textNodeMap[index] = d;\n }\n\n const isMedia = types.indexOf(d.type) >= 0;\n\n if (isMedia) {\n if (index > 0 && textNodeMap[index - 1] && textNodeMap[index - 1].text === '') {\n updateNodesArray.push(textNodeMap[index - 1]);\n }\n }\n\n index++;\n });\n\n if (!updateNodesArray.length) return;\n\n return change => {\n change.withoutNormalization(() => {\n updateNodesArray.forEach(n => change.insertTextByKey(n.key, 0, ' '));\n });\n };\n }\n };\n}\n\nexport const serialization = {\n deserialize(el /*, next*/) {\n let type = el.dataset && el.dataset.type;\n let tag = 'iframe';\n let src;\n const typeIndex = types.indexOf(type);\n\n if (typeIndex < 0) {\n if (el instanceof Element && el.tagName.toLowerCase() === 'audio') {\n type = 'audio';\n tag = 'audio';\n src = el.firstChild?.getAttribute('src');\n } else {\n return;\n }\n }\n\n const { ends, starts, title, editing, url } = el.dataset || {};\n\n log('deserialize: ', name);\n const width = parseInt(el.getAttribute('width'), 10) || null;\n const height = parseInt(el.getAttribute('height'), 10) || null;\n\n const out = {\n object: 'inline',\n type: type,\n isVoid: true,\n data: {\n tag,\n src: src || el.getAttribute('src'),\n editing,\n ends,\n height,\n starts,\n title,\n width,\n url\n }\n };\n log('return object: ', out);\n return out;\n },\n serialize(object /*, children*/) {\n const typeIndex = types.indexOf(object.type);\n\n if (typeIndex < 0) return;\n\n const type = types[typeIndex];\n\n const { data } = object;\n const editing = data.get('editing');\n const tag = data.get('tag');\n const ends = data.get('ends');\n const src = data.get('src');\n const starts = data.get('starts');\n const title = data.get('title');\n const width = data.get('width');\n const height = data.get('height');\n const url = data.get('url');\n const style = {};\n\n if (width) {\n style.width = `${width}px`;\n }\n\n if (height) {\n style.height = `${height}px`;\n }\n\n const divProps = {\n 'data-editing': editing,\n 'data-ends': ends,\n 'data-starts': starts,\n 'data-title': title,\n 'data-url': url\n };\n const props = {\n ...style,\n src\n };\n\n if (tag === 'audio') {\n return (\n <audio controls=\"controls\">\n <source type=\"audio/mp3\" src={src} />\n </audio>\n );\n }\n\n return (\n <iframe\n data-type={type}\n src={src}\n {...divProps}\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n {...props}\n />\n );\n }\n};\n"],"mappings":"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"}