@pie-lib/editable-html 11.18.0 → 11.18.3

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../config-ui/src/alert-dialog.jsx","../../../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../../node_modules/@babel/runtime/helpers/inheritsLoose.js","../../../node_modules/recompose/setStatic.js","../../../node_modules/recompose/setDisplayName.js","../../../node_modules/recompose/getDisplayName.js","../../../node_modules/recompose/wrapDisplayName.js","../../../node_modules/recompose/shouldUpdate.js","../../../node_modules/fbjs/lib/shallowEqual.js","../../../node_modules/recompose/shallowEqual.js","../../../node_modules/recompose/pure.js","../../../node_modules/@material-ui/icons/utils/createSvgIcon.js","../../../node_modules/@material-ui/icons/Image.js","../src/plugins/image/component.jsx","../src/plugins/toolbar/toolbar-buttons.jsx","../../../node_modules/@material-ui/icons/ArrowBackIos.js","../src/plugins/image/alt-dialog.jsx","../src/plugins/image/image-toolbar.jsx","../src/plugins/image/insert-image-handler.js","../src/plugins/image/index.jsx","../../../node_modules/@material-ui/icons/Functions.js","../src/block-tags.js","../src/plugins/math/index.jsx","../../../node_modules/@material-ui/icons/Theaters.js","../../../node_modules/@material-ui/icons/VolumeUp.js","../../../node_modules/@material-ui/icons/Delete.js","../src/plugins/media/media-dialog.js","../src/plugins/media/media-toolbar.jsx","../src/plugins/media/media-wrapper.jsx","../src/plugins/media/index.jsx","../src/plugins/list/index.jsx","../../../node_modules/@material-ui/icons/GridOn.js","../../../node_modules/@material-ui/icons/Check.js","../src/plugins/toolbar/done-button.jsx","../../../node_modules/@material-ui/icons/BorderAll.js","../src/plugins/utils.js","../src/plugins/toolbar/default-toolbar.jsx","../src/plugins/table/icons/index.jsx","../src/plugins/table/table-toolbar.jsx","../src/plugins/table/CustomTablePlugin.js","../src/plugins/table/index.jsx","../../../node_modules/@material-ui/icons/ChevronRight.js","../../../node_modules/@material-ui/icons/MoreVert.js","../src/plugins/respArea/icons/index.jsx","../src/plugins/respArea/inline-dropdown/index.jsx","../src/plugins/respArea/drag-in-the-blank/choice.jsx","../src/plugins/respArea/drag-in-the-blank/index.jsx","../src/plugins/respArea/explicit-constructed-response/index.jsx","../src/plugins/respArea/math-templated/index.jsx","../src/plugins/respArea/utils.jsx","../src/plugins/respArea/index.jsx","../src/serialization.jsx","../../../node_modules/@material-ui/icons/FormatBold.js","../../../node_modules/@material-ui/icons/FormatQuote.js","../../../node_modules/@material-ui/icons/FormatListBulleted.js","../../../node_modules/@material-ui/icons/FormatListNumbered.js","../../../node_modules/@material-ui/icons/Redo.js","../../../node_modules/@material-ui/icons/Undo.js","../src/plugins/characters/custom-popper.js","../src/plugins/characters/utils.js","../src/plugins/characters/index.jsx","../../../node_modules/@material-ui/icons/FormatItalic.js","../../../node_modules/@material-ui/icons/FormatStrikethrough.js","../src/constants.js","../src/plugins/toolbar/toolbar.jsx","../src/theme.js","../src/plugins/toolbar/editor-and-toolbar.jsx","../src/plugins/toolbar/index.jsx","../../../node_modules/@material-ui/icons/FormatUnderlined.js","../src/plugins/html/icons/index.jsx","../src/plugins/html/index.jsx","../src/plugins/css/icons/index.jsx","../src/plugins/css/index.jsx","../src/plugins/customPlugin/index.jsx","../src/plugins/rendering/index.js","../src/plugins/textAlign/icons/index.jsx","../src/plugins/textAlign/index.jsx","../src/plugins/index.jsx","../src/editor.jsx","../src/parse-html.js","../src/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle } from '@material-ui/core';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst AlertDialog = ({ text, title, onClose, onConfirm, open, onCloseText, onConfirmText, classes }) => (\n <Dialog open={open} onClose={onClose}>\n {title && <DialogTitle className={classes.heading}>{title}</DialogTitle>}\n {text && (\n <DialogContent>\n <DialogContentText className={classes.subheading}>{text}</DialogContentText>\n </DialogContent>\n )}\n <DialogActions>\n {onClose && (\n <Button onClick={onClose} color=\"primary\">\n {onCloseText}\n </Button>\n )}\n {onConfirm && (\n <Button autoFocus onClick={onConfirm} color=\"primary\">\n {onConfirmText}\n </Button>\n )}\n </DialogActions>\n </Dialog>\n);\n\nAlertDialog.defaultProps = {\n onCloseText: 'CANCEL',\n onConfirmText: 'OK',\n};\n\nAlertDialog.propTypes = {\n text: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n title: PropTypes.string,\n onClose: PropTypes.func,\n onConfirm: PropTypes.func,\n open: PropTypes.bool,\n onConfirmText: PropTypes.string,\n onCloseText: PropTypes.string,\n classes: PropTypes.object,\n};\n\nconst styles = () => ({\n heading: {\n '& h2': {\n fontSize: 'max(1.25rem, 18px)',\n },\n },\n subheading: {\n fontSize: 'max(1rem, 14px)',\n },\n});\n\nexport default withStyles(styles)(AlertDialog);\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar setStatic = function setStatic(key, value) {\n return function (BaseComponent) {\n /* eslint-disable no-param-reassign */\n BaseComponent[key] = value;\n /* eslint-enable no-param-reassign */\n\n return BaseComponent;\n };\n};\n\nvar _default = setStatic;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _setStatic = _interopRequireDefault(require(\"./setStatic\"));\n\nvar setDisplayName = function setDisplayName(displayName) {\n return (0, _setStatic.default)('displayName', displayName);\n};\n\nvar _default = setDisplayName;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar getDisplayName = function getDisplayName(Component) {\n if (typeof Component === 'string') {\n return Component;\n }\n\n if (!Component) {\n return undefined;\n }\n\n return Component.displayName || Component.name || 'Component';\n};\n\nvar _default = getDisplayName;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _getDisplayName = _interopRequireDefault(require(\"./getDisplayName\"));\n\nvar wrapDisplayName = function wrapDisplayName(BaseComponent, hocName) {\n return hocName + \"(\" + (0, _getDisplayName.default)(BaseComponent) + \")\";\n};\n\nvar _default = wrapDisplayName;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _react = require(\"react\");\n\nvar _setDisplayName = _interopRequireDefault(require(\"./setDisplayName\"));\n\nvar _wrapDisplayName = _interopRequireDefault(require(\"./wrapDisplayName\"));\n\nvar shouldUpdate = function shouldUpdate(test) {\n return function (BaseComponent) {\n var factory = (0, _react.createFactory)(BaseComponent);\n\n var ShouldUpdate =\n /*#__PURE__*/\n function (_Component) {\n (0, _inheritsLoose2.default)(ShouldUpdate, _Component);\n\n function ShouldUpdate() {\n return _Component.apply(this, arguments) || this;\n }\n\n var _proto = ShouldUpdate.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return test(this.props, nextProps);\n };\n\n _proto.render = function render() {\n return factory(this.props);\n };\n\n return ShouldUpdate;\n }(_react.Component);\n\n if (process.env.NODE_ENV !== 'production') {\n return (0, _setDisplayName.default)((0, _wrapDisplayName.default)(BaseComponent, 'shouldUpdate'))(ShouldUpdate);\n }\n\n return ShouldUpdate;\n };\n};\n\nvar _default = shouldUpdate;\nexports.default = _default;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqual;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _shallowEqual = _interopRequireDefault(require(\"fbjs/lib/shallowEqual\"));\n\nvar _default = _shallowEqual.default;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _shouldUpdate = _interopRequireDefault(require(\"./shouldUpdate\"));\n\nvar _shallowEqual = _interopRequireDefault(require(\"./shallowEqual\"));\n\nvar _setDisplayName = _interopRequireDefault(require(\"./setDisplayName\"));\n\nvar _wrapDisplayName = _interopRequireDefault(require(\"./wrapDisplayName\"));\n\nvar pure = function pure(BaseComponent) {\n var hoc = (0, _shouldUpdate.default)(function (props, nextProps) {\n return !(0, _shallowEqual.default)(props, nextProps);\n });\n\n if (process.env.NODE_ENV !== 'production') {\n return (0, _setDisplayName.default)((0, _wrapDisplayName.default)(BaseComponent, 'pure'))(hoc(BaseComponent));\n }\n\n return hoc(BaseComponent);\n};\n\nvar _default = pure;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _pure = _interopRequireDefault(require(\"recompose/pure\"));\n\nvar _SvgIcon = _interopRequireDefault(require(\"@material-ui/core/SvgIcon\"));\n\nfunction createSvgIcon(path, displayName) {\n var Icon = function Icon(props) {\n return _react.default.createElement(_SvgIcon.default, props, path);\n };\n\n Icon.displayName = \"\".concat(displayName, \"Icon\");\n Icon = (0, _pure.default)(Icon);\n Icon.muiName = 'SvgIcon';\n return Icon;\n}\n\n;\nvar _default = createSvgIcon;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n}), _react.default.createElement(\"path\", {\n d: \"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z\"\n})), 'Image');\n\nexports.default = _default;","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 justifyContent;\n\n switch (alignment) {\n case 'left':\n justifyContent = 'flex-start';\n break;\n\n case 'center':\n justifyContent = 'center';\n break;\n\n case 'right':\n justifyContent = 'flex-end';\n break;\n\n default:\n justifyContent = 'flex-start';\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 mode=\"determinate\" value={percent > 0 ? percent : 0} className={progressClasses} />\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: theme.palette.background.paper,\n borderRadius: '1px',\n display: 'flex',\n padding: '10px',\n border: `solid 1px ${theme.palette.grey[200]}`,\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 ${theme.palette.common.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","import React from 'react';\nimport debug from 'debug';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nconst styles = (theme) => ({\n button: {\n color: 'grey',\n display: 'inline-flex',\n padding: '2px',\n background: 'none',\n border: 'none',\n cursor: 'pointer',\n '&:hover': {\n color: 'black',\n },\n '&:focus': {\n outline: `2px solid ${theme.palette.grey[700]}`,\n },\n },\n active: {\n color: 'black',\n },\n disabled: {\n opacity: 0.7,\n cursor: 'not-allowed',\n '& :hover': {\n color: 'grey',\n },\n },\n});\n\nconst log = debug('pie-elements:editable-html:raw-button');\n\nexport class RawButton extends React.Component {\n static propTypes = {\n onClick: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n active: PropTypes.bool,\n disabled: PropTypes.bool,\n extraStyles: PropTypes.object,\n };\n\n constructor(props) {\n super(props);\n }\n\n onClick = (e) => {\n log('[onClick]');\n e.preventDefault();\n const { onClick } = this.props;\n onClick(e);\n };\n\n onKeyDown = (e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n log('[onKeyDown]');\n e.preventDefault();\n const { onClick } = this.props;\n onClick(e);\n }\n };\n\n render() {\n const { active, classes, children, disabled, extraStyles, ariaLabel } = this.props;\n\n const names = classNames(classes.button, {\n [classes.active]: active,\n [classes.disabled]: disabled,\n });\n\n return (\n <button\n style={extraStyles}\n className={names}\n onMouseDown={this.onClick}\n onKeyDown={this.onKeyDown}\n disabled={disabled}\n aria-label={ariaLabel}\n aria-pressed={active}\n tabIndex={0}\n >\n {children}\n </button>\n );\n }\n}\n\nexport const Button = withStyles(styles)(RawButton);\n\nexport class RawMarkButton extends React.Component {\n static propTypes = {\n onToggle: PropTypes.func.isRequired,\n mark: PropTypes.string,\n label: PropTypes.string.isRequired,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n classes: PropTypes.object.isRequired,\n active: PropTypes.bool,\n };\n\n constructor(props) {\n super(props);\n }\n\n onToggle = (e) => {\n e.preventDefault();\n this.props.onToggle(this.props.mark);\n };\n\n onKeyDown = (e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.props.onToggle(this.props.mark);\n }\n };\n\n render() {\n const { classes, children, active, label } = this.props;\n\n const names = classNames(classes.button, active && classes.active);\n return (\n <button\n className={names}\n onMouseDown={this.onToggle}\n aria-pressed={active}\n onKeyDown={this.onKeyDown}\n aria-label={label}\n tabIndex={0}\n >\n {children}\n </button>\n );\n }\n}\n\nexport const MarkButton = withStyles(styles)(RawMarkButton);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n d: \"M11.67 3.87L9.9 2.1 0 12l9.9 9.9 1.77-1.77L3.54 12z\"\n}), _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n})), 'ArrowBackIos');\n\nexports.default = _default;","import React from 'react';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport ArrowBackIos from '@material-ui/icons/ArrowBackIos';\nimport TextField from '@material-ui/core/TextField';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport PropTypes from 'prop-types';\n\nexport class AltDialog extends React.Component {\n static propTypes = {\n onDone: PropTypes.func.isRequired,\n alt: PropTypes.string,\n };\n\n constructor(props) {\n super(props);\n\n const { alt } = props;\n\n this.state = {\n value: alt,\n };\n }\n\n closeDialog = () => {\n const allDialogs = document.querySelectorAll('#text-dialog');\n\n allDialogs.forEach(function(s) {\n return s.remove();\n });\n };\n\n onDone = () => {\n const { onDone } = this.props;\n const { value } = this.state;\n\n onDone(value);\n this.closeDialog();\n };\n\n handleOverflow = () => {\n document.body.style.removeProperty('overflow');\n };\n\n render() {\n const { value } = this.state;\n\n return (\n <Dialog\n open\n disablePortal\n onClose={this.closeDialog}\n id=\"text-dialog\"\n hideBackdrop\n disableScrollLock\n onEntered={this.handleOverflow}\n >\n <DialogContent>\n <div style={{ display: 'flex' }}>\n <ArrowBackIos style={{ paddingTop: '6px' }} />\n <TextField\n multiline\n placeholder={'Enter an Alt Text description of this image'}\n helperText={\n 'Users with visual limitations rely on Alt Text, since screen readers cannot otherwise describe the contents of an image.'\n }\n value={value}\n onChange={(event) => this.setState({ value: event.target.value })}\n FormHelperTextProps={{ style: { fontSize: 14 } }}\n />\n </div>\n </DialogContent>\n <DialogActions>\n <Button onClick={this.onDone}>Done</Button>\n </DialogActions>\n </Dialog>\n );\n }\n}\n\nexport default AltDialog;\n","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 disableImageAlignmentButtons: PropTypes.bool,\n };\n\n onAltTextDone = (newAlt) => {\n log('[onAltTextDone]: alt:', newAlt);\n\n this.props.onChange({ alt: newAlt }, true);\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, disableImageAlignmentButtons } = this.props;\n return (\n <div className={classes.holder}>\n {!disableImageAlignmentButtons && (\n <>\n <AlignmentButton alignment={'left'} active={alignment === 'left'} onClick={this.onAlignmentClick} />\n <AlignmentButton alignment={'center'} active={alignment === 'center'} onClick={this.onAlignmentClick} />\n <AlignmentButton alignment={'right'} active={alignment === 'right'} onClick={this.onAlignmentClick} />\n </>\n )}\n <span\n className={classNames({\n [classes.disabled]: !imageLoaded,\n [classes.altButton]: !disableImageAlignmentButtons,\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","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} onFinish - a function to call if uploading fails or succeeds\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, onFinish, getValue, onChange, isPasted = false) {\n this.placeholderBlock = placeholderBlock;\n this.getValue = getValue;\n this.onFinish = onFinish;\n this.onChange = onChange;\n this.isPasted = isPasted;\n this.chosenFile = null;\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\n try {\n const value = this.getValue();\n const child = this.getPlaceholderInDocument(value);\n\n if (child) {\n const c = value.change().removeNodeByKey(child.key);\n this.onChange(c);\n this.onFinish(false);\n }\n } catch (err) {\n //\n }\n }\n\n done(err, src) {\n log('done: err:', err);\n if (err) {\n //eslint-disable-next-line\n console.log(err);\n this.onFinish(false);\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 this.onFinish(true);\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 // Save the chosen file to this.chosenFile\n this.chosenFile = file;\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 // Add a getter method to retrieve the chosen file\n getChosenFile() {\n return this.chosenFile;\n }\n}\n\nexport default InsertImageHandler;\n","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 ariaLabel: 'Insert 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\n onChange(change);\n opts.insertImageRequested(\n inline,\n (onFinish, getValue) => new InsertImageHandler(inline, onFinish, getValue, onChange),\n );\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, done) => {\n const update = {\n ...node.data.toObject(),\n ...newValues,\n };\n\n const change = value.change().setNodeByKey(node.key, { data: update });\n onToolbarDone(change, done);\n };\n\n const Tb = () => (\n <ImageToolbar\n disableImageAlignmentButtons={opts.disableImageAlignmentButtons}\n alt={alt}\n imageLoaded={imageLoaded}\n alignment={alignment || 'left'}\n onChange={onChange}\n />\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, (err, v) => {\n if (!err) {\n change = v.change().removeNodeByKey(node.key);\n } else {\n log('[error]: ', err);\n change = v.change().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') || 'left';\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","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n}), _react.default.createElement(\"path\", {\n d: \"M18 4H6v2l6.5 6L6 18v2h12v-3h-7l5-5-5-5h7z\"\n})), 'Functions');\n\nexports.default = _default;","/**\n * Tags to blocks.\n *\n * @type {Object}\n */\n\nexport const BLOCK_TAGS = {\n div: 'div',\n // span: 'span',\n p: 'paragraph',\n pre: 'code',\n h1: 'heading-one',\n h2: 'heading-two',\n h4: 'heading-four',\n h5: 'heading-five',\n h6: 'heading-six',\n};\n","import Functions from '@material-ui/icons/Functions';\nimport { Inline } from 'slate';\nimport { MathPreview, MathToolbar } from '@pie-lib/math-toolbar';\nimport { wrapMath, unWrapMath, mmlToLatex, renderMath } 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 '../../block-tags';\nimport isEqual from 'lodash/isEqual';\n\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\n// eslint-disable-next-line react/display-name\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\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: { math: { keypadMode: keypadModeNext, controlledKeypadMode: controlledKeypadModeNext } = {} } = {},\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(opts) {\n MathPlugin.mathMlOptions = {\n mmlOutput: opts.mmlOutput,\n mmlEditing: opts.mmlEditing,\n };\n\n return {\n name: 'math',\n toolbar: {\n ariaLabel: 'Math 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';\nMathPlugin.mathMlOptions = {};\n\nMathPlugin.propTypes = {\n attributes: PropTypes.object,\n node: SlatePropTypes.node,\n};\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 arrowHandlingCase = (input) => {\n /*\n If we have a < character followed by a letter\n we make sure to replace it with a &lt; sign instead\n */\n return input.replace(/<([a-zA-Z]*)/g, '&lt;$1');\n};\n\nfunction replaceLeftRight(latexInput) {\n // for some reason, mmlToLatex parses () incorrectly - or at least in a way that our interpreter can not use them\n // Replace '\\\\left.' and '\\\\right.' with an empty string\n return latexInput.replace(/\\\\left\\.\\s*|\\\\right\\.\\s*/g, '');\n}\n\nconst convertLatexToMathMl = ({ latex, decoded, wrapper }) => {\n const removeEmptyMos = (mmlFromLatex) => {\n // Regular expression to match <mo>&#x2061;</mo> and <mo ...>&#x2061;</mo>, which get added when using log with base\n // not sure why they get added, but they add an extra space which is not needed\n const regex = /<mo(?: [^>]*)?>&#x2061;<\\/mo>/g;\n\n // Replace all occurrences of the matched patterns\n return mmlFromLatex.replace(regex, '');\n };\n const handled = arrowHandlingCase(decoded);\n\n const latexToConvert = `<span data-latex=\"\" data-raw=\"${handled}\">${wrapMath(handled, wrapper)}</span>`;\n\n // use math rendering (MathJax) to convert latex to mathMl\n let mathMlFromLatex = renderMath(latexToConvert, {\n skipWaitForMathRenderingLib: true,\n });\n\n // if renderMath returned the exact same string that we sent, it just means that the conversion could not be done\n const conversionDidNotWork = isEqual(latexToConvert, mathMlFromLatex);\n\n mathMlFromLatex = removeEmptyMos(mathMlFromLatex);\n\n // we convert resulted mathml to latex to check if the resulted mathMl can be converted back to latex if user wants to edit it later\n const latexFromMathMl = mathMlFromLatex ? mmlToLatex(mathMlFromLatex) : '';\n\n // we need to remove all the spaces from the latex to be able to compare it\n const strippedL = latex.replace(/\\s/g, '');\n const strippedNewL = latexFromMathMl.replace(/\\s/g, '');\n\n // we check if the latex keeps his form after being converted to mathml and back to latex\n // if it does, we can safely convert it to mathml\n if (!isEqual(strippedL, strippedNewL)) {\n const correctedLatex = replaceLeftRight(latexFromMathMl);\n\n // As George requested in PD-3167, I will set the new mathML anyway, and also log differences\n // if it doesn't, we keep the latex version\n // eslint-disable-next-line no-console\n console.log('This latex can not be safely converted to mathml so we will keep the latex version!!!', {\n initialLatex: latex,\n newLatex: latexFromMathMl,\n correctedLatex,\n mathML: mathMlFromLatex,\n conversionDidNotWork,\n });\n }\n\n return { mathMlFromLatex, conversionDidNotWork };\n};\n\nconst convertMathMlToLatex = (mathMl) => {\n const htmlWithRemovedSpaces = mathMl.replaceAll('&nbsp;', ' ');\n const htmlToUse = mmlToLatex(htmlWithRemovedSpaces);\n const latex = htmlDecode(htmlToUse);\n\n // todo fix this in mathml-to-latex\n return replaceLeftRight(latex);\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 = 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 mathMl = hasMathChild ? el.innerHTML : el.outerHTML;\n\n if (MathPlugin.mathMlOptions.mmlEditing) {\n const { unwrapped, wrapType } = unWrapMath(convertMathMlToLatex(mathMl));\n\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 return {\n object: 'inline',\n isVoid: true,\n type: 'mathml',\n data: {\n html: mathMl,\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 latex = object.data.get('latex');\n const wrapper = object.data.get('wrapper');\n const decoded = htmlDecode(arrowHandlingCase(latex));\n\n log('[serialize] latex: ', latex);\n\n if (MathPlugin.mathMlOptions.mmlOutput) {\n const { mathMlFromLatex, conversionDidNotWork } = convertLatexToMathMl({ latex, decoded, wrapper });\n\n if (conversionDidNotWork) {\n // this means we could not convert latex to mathMl, so just return the latex version,\n // same as we would do if mmlOutput would not be enabled\n return (\n <span data-latex=\"\" data-raw={decoded}>\n {wrapMath(decoded, wrapper)}\n </span>\n );\n }\n\n return <span data-type=\"mathml\" dangerouslySetInnerHTML={{ __html: mathMlFromLatex }} />;\n }\n\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","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n d: \"M18 3v2h-2V3H8v2H6V3H4v18h2v-2h2v2h8v-2h2v2h2V3h-2zM8 17H6v-2h2v2zm0-4H6v-2h2v2zm0-4H6V7h2v2zm10 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V7h2v2z\"\n}), _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n})), 'Theaters');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n d: \"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z\"\n}), _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n})), 'VolumeUp');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n d: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\"\n}), _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n})), 'Delete');\n\nexports.default = _default;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport { color } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport MuiTabs from '@material-ui/core/Tabs';\nimport MuiTab from '@material-ui/core/Tab';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport TextField from '@material-ui/core/TextField';\nimport Typography from '@material-ui/core/Typography';\nimport IconButton from '@material-ui/core/IconButton';\nimport ActionDelete from '@material-ui/icons/Delete';\n\nconst log = debug('@pie-lib:editable-html:plugins:media:dialog');\n\nconst matchYoutubeUrl = (url) => {\n if (!url) {\n return false;\n }\n\n const p = /^(?:https?:\\/\\/)?(?:m\\.|www\\.)?(?:youtu\\.be\\/|youtube\\.com\\/(?:embed\\/|v\\/|watch\\?v=|watch\\?.+&v=))((\\w|-){11})(?:\\S+)?$/;\n if (url.match(p)) {\n return url.match(p)[1];\n }\n return false;\n};\n\nconst matchVimeoUrl = (url) =>\n url &&\n /(http|https)?:\\/\\/(www\\.)?(player\\.)?vimeo.com\\/(?:channels\\/(?:\\w+\\/)?|groups\\/([^/]*)\\/videos\\/|)(video\\/)?(\\d+)(?:|\\/\\?)/.test(\n url,\n );\n\nconst matchDriveUrl = (url) =>\n url && /^https:\\/\\/drive\\.google\\.com\\/(?:file\\/d\\/|drive\\/(?:u\\/\\d+\\/)?folders\\/|uc\\?id=)([a-zA-Z0-9_-]+)/.test(url);\n\nconst matchSoundCloudUrl = (url) => {\n if (!url) {\n return false;\n }\n\n const regexp = /^https?:\\/\\/(soundcloud\\.com|snd\\.sc)\\/(.*)$/;\n return url.match(regexp) && url.match(regexp)[2];\n};\n\nconst makeApiRequest = (url) => {\n return new Promise((resolve) => {\n try {\n fetch(`https://soundcloud.com/oembed?format=json&url=${url}`)\n .then((response) => response.json())\n .then((json) => {\n const d = document.createElement('div');\n\n d.innerHTML = json.html;\n\n const iframe = d.querySelector('iframe');\n\n resolve(iframe.src);\n })\n .catch((err) => {\n resolve('');\n log(err);\n });\n } catch (err) {\n resolve('');\n }\n });\n};\n\nconst typeMap = {\n video: 'Video',\n audio: 'Audio',\n};\n\nconst tabsTypeMap = {\n uploadFile: 'upload-file',\n insertUrl: 'insert-url',\n};\n\nexport class MediaDialog extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n open: PropTypes.bool,\n edit: PropTypes.bool,\n disablePortal: PropTypes.bool,\n handleClose: PropTypes.func,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func,\n delete: PropTypes.func,\n }),\n type: PropTypes.string,\n src: PropTypes.string,\n url: PropTypes.string,\n urlToUse: PropTypes.string,\n starts: PropTypes.number,\n ends: PropTypes.number,\n height: PropTypes.number,\n width: PropTypes.number,\n };\n\n constructor(props) {\n super(props);\n\n const { ends, height, src, starts, type, uploadSoundSupport, url, urlToUse, width } = props;\n const showUploadFile = uploadSoundSupport?.add && uploadSoundSupport?.delete && type !== 'video';\n\n this.state = {\n ends: ends || 0,\n url: url,\n urlToUse: urlToUse,\n formattedUrl: src,\n height: height || 315,\n invalid: false,\n starts: starts || 0,\n width: width || 560,\n // default selected tab should be upload file if available\n tabValue: showUploadFile ? tabsTypeMap.uploadFile : tabsTypeMap.insertUrl,\n fileUpload: {\n error: null,\n loading: false,\n scheduled: false,\n url: '',\n mimeType: '',\n },\n };\n }\n\n componentDidMount() {\n if (this.props.url) {\n this.urlChange({\n target: {\n value: this.props.url,\n },\n });\n }\n }\n\n formatUrl = () => {\n const { url, urlToUse, starts, ends } = this.state;\n const isYoutube = matchYoutubeUrl(url);\n const isVimeo = matchVimeoUrl(url);\n let formattedUrl = urlToUse;\n\n if ((isYoutube || isVimeo) && urlToUse) {\n const params = [];\n\n let paramName;\n let paramStart;\n\n switch (true) {\n case isVimeo:\n paramName = 't';\n paramStart = '#';\n break;\n case isYoutube:\n paramName = 'start';\n paramStart = '?';\n break;\n default:\n paramName = 'start';\n paramStart = '?';\n }\n\n if (starts) {\n params.push(`${paramName}=${starts}`);\n }\n\n if (ends) {\n params.push(`end=${ends}`);\n }\n\n formattedUrl = `${urlToUse}${params.length ? paramStart : ''}${params.join('&')}`;\n }\n\n const callback = () => this.setState({ formattedUrl, updating: false });\n\n this.setState({ formattedUrl: null, updating: true }, callback);\n };\n\n handleStateChange = (newState) => this.setState(newState, this.formatUrl);\n\n checkAudio = (value) => {\n if (matchSoundCloudUrl(value)) {\n makeApiRequest(value)\n .then((urlToUse) => {\n this.handleStateChange({\n urlToUse,\n invalid: !urlToUse,\n url: value,\n });\n })\n .catch(log);\n }\n };\n\n checkVideo = (value) => {\n if (matchYoutubeUrl(value)) {\n const regExp = /^.*(youtu\\.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|&v=)([^#&?]*).*/;\n const match = value.match(regExp);\n const id = match[2];\n const urlToUse = `https://youtube.com/embed/${id}`;\n\n log('is youtube');\n\n this.handleStateChange({\n urlToUse,\n url: value,\n invalid: false,\n });\n }\n\n if (matchVimeoUrl(value)) {\n const id = value.replace(/.*vimeo.com\\/(.*)/g, '$1');\n const urlToUse = `https://player.vimeo.com/video/${id}`;\n\n log('is vimeo');\n\n this.handleStateChange({\n urlToUse,\n url: value,\n ends: null,\n invalid: false,\n });\n }\n\n if (matchDriveUrl(value)) {\n // https://drive.google.com/file/d/11QkK_gUO068amNvZBm9cxZpKX74WYb8q/view\n const id = value.replace(\n /^https:\\/\\/drive\\.google\\.com\\/(?:file\\/d\\/|drive\\/(?:u\\/\\d+\\/)?folders\\/|uc\\?id=)([a-zA-Z0-9_-]+)\\/.*/,\n '$1',\n );\n const urlToUse = `https://drive.google.com/file/d/${id}/preview`;\n\n log('is google drive');\n\n this.handleStateChange({\n urlToUse,\n url: value,\n ends: null,\n invalid: false,\n });\n }\n };\n\n urlChange = (e) => {\n const { value } = e.target || {};\n const { type } = this.props;\n\n if (type && type === 'audio') {\n this.checkAudio();\n return;\n } else if (type && type === 'video') {\n this.checkVideo(value);\n return;\n }\n\n this.handleStateChange({\n urlToUse: null,\n url: null,\n invalid: true,\n });\n };\n\n changeHandler = (type) => (e) => this.handleStateChange({ [type]: e.target.value });\n\n handleDone = (val) => {\n const { handleClose } = this.props;\n const { tabValue, fileUpload } = this.state;\n const isInsertURL = tabValue === tabsTypeMap.insertUrl;\n\n if (!val) {\n if (fileUpload.url) {\n this.handleRemoveFile();\n }\n\n handleClose(val);\n return;\n }\n\n if (isInsertURL) {\n const { ends, height, url, urlToUse, formattedUrl, starts, width } = this.state;\n\n handleClose(val, {\n tag: 'iframe',\n ends,\n height,\n starts,\n width,\n url,\n urlToUse,\n src: formattedUrl,\n });\n return;\n }\n\n if (!fileUpload.loading) {\n handleClose(val, {\n tag: 'audio',\n src: fileUpload.url,\n });\n return;\n }\n\n this.setState({\n fileUpload: {\n ...fileUpload,\n scheduled: true,\n },\n });\n };\n\n handleUploadFile = async (e) => {\n e.preventDefault();\n\n this.setState({\n fileUpload: {\n ...this.state.fileUpload,\n error: null,\n loading: true,\n },\n });\n\n const fileChosen = e.target.files[0];\n\n const reader = new FileReader();\n\n reader.onload = () => {\n const dataURL = reader.result;\n\n this.setState({\n fileUpload: {\n ...this.state.fileUpload,\n url: dataURL,\n mimeType: fileChosen.type,\n },\n });\n };\n reader.readAsDataURL(fileChosen);\n\n this.props.uploadSoundSupport.add({\n fileChosen,\n done: (err, src) => {\n log('done: err:', err);\n if (err) {\n //eslint-disable-next-line\n console.log(err);\n this.setState({\n fileUpload: {\n ...this.state.fileUpload,\n scheduled: false,\n loading: false,\n error: err,\n },\n });\n return;\n }\n\n const { fileUpload } = this.state;\n const callback = fileUpload && fileUpload.scheduled ? this.handleDone.bind(this, true) : undefined;\n\n this.setState(\n {\n fileUpload: {\n ...fileUpload,\n scheduled: false,\n loading: false,\n url: src,\n },\n },\n callback,\n );\n },\n });\n };\n\n handleRemoveFile = async () => {\n this.props.uploadSoundSupport.delete(this.state.fileUpload.url, (err) => {\n if (err) {\n //eslint-disable-next-line\n console.log(err);\n this.setState({\n fileUpload: {\n ...this.state.fileUpload,\n error: err,\n },\n });\n }\n });\n\n // we should put it inside uploadSoundSupport.delete but we can leave it here for testing purposes\n this.setState({\n fileUpload: {\n ...this.state.fileUpload,\n loading: false,\n url: '',\n mimeType: '',\n },\n });\n };\n\n render() {\n const { classes, open, disablePortal, type, edit, uploadSoundSupport } = this.props;\n const {\n ends,\n height,\n invalid,\n starts,\n width,\n url,\n mimeType,\n formattedUrl,\n updating,\n tabValue,\n fileUpload,\n } = this.state;\n const isYoutube = matchYoutubeUrl(url);\n const isInsertURL = tabValue === tabsTypeMap.insertUrl;\n const isUploadMedia = tabValue === tabsTypeMap.uploadFile;\n const submitIsDisabled = isInsertURL\n ? invalid || url === null || url === undefined\n : !fileUpload.url || fileUpload.scheduled;\n const showUploadFile = uploadSoundSupport?.add && uploadSoundSupport?.delete && type !== 'video';\n\n return (\n <Dialog\n classes={{\n paper: classes.paper,\n }}\n disablePortal={disablePortal}\n open={open}\n onClose={() => this.handleDone(false)}\n aria-labelledby=\"form-dialog-title\"\n >\n <DialogTitle id=\"form-dialog-title\">Insert {typeMap[type]}</DialogTitle>\n <DialogContent>\n <div>\n <div className={classes.row}>\n <MuiTabs\n indicatorColor=\"primary\"\n value={tabValue}\n onChange={(event, value) => {\n this.setState({ tabValue: value });\n }}\n >\n {showUploadFile ? <MuiTab value={tabsTypeMap.uploadFile} label=\"Upload file\" /> : null}\n <MuiTab\n value={tabsTypeMap.insertUrl}\n label={type === 'video' ? 'Insert YouTube, Vimeo, or Google Drive URL' : 'Insert SoundCloud URL'}\n />\n </MuiTabs>\n </div>\n {isInsertURL && (\n <div>\n <TextField\n autoFocus\n error={invalid}\n helperText={invalid ? 'Invalid URL' : ''}\n margin=\"dense\"\n id=\"name\"\n label=\"URL\"\n placeholder={`Paste URL of ${type}...`}\n type=\"text\"\n onChange={this.urlChange}\n value={url}\n fullWidth\n />\n {type === 'video' && (\n <DialogContent\n classes={{\n root: classes.properties,\n }}\n >\n <DialogContentText>Video Properties</DialogContentText>\n <TextField\n autoFocus\n margin=\"dense\"\n id=\"width\"\n label=\"Width\"\n type=\"number\"\n placeholder=\"Width\"\n value={width}\n onChange={this.changeHandler('width')}\n />\n <TextField\n autoFocus\n margin=\"dense\"\n id=\"height\"\n label=\"Height\"\n type=\"number\"\n placeholder=\"Height\"\n value={height}\n onChange={this.changeHandler('height')}\n />\n </DialogContent>\n )}\n {formattedUrl && (\n <iframe\n width={width}\n height={height}\n src={formattedUrl}\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n />\n )}\n {type === 'video' && (formattedUrl || updating) && !invalid && (\n <React.Fragment>\n <DialogContent\n classes={{\n root: classes.properties,\n }}\n >\n <TextField\n autoFocus\n margin=\"dense\"\n id=\"starts\"\n label=\"Starts\"\n type=\"number\"\n placeholder=\"Starts\"\n value={starts}\n onChange={this.changeHandler('starts')}\n />\n {isYoutube && (\n <TextField\n autoFocus\n margin=\"dense\"\n id=\"ends\"\n label=\"Ends\"\n type=\"number\"\n placeholder=\"Ends\"\n value={ends}\n onChange={this.changeHandler('ends')}\n />\n )}\n </DialogContent>\n </React.Fragment>\n )}\n </div>\n )}\n {isUploadMedia && (\n <div className={classes.uploadInput}>\n <div>\n {fileUpload.url ? (\n <>\n <div className={classes.row}>\n <audio controls=\"controls\" controlsList=\"nodownload\">\n <source type={mimeType} src={fileUpload.url} />\n </audio>\n <IconButton aria-label=\"delete\" className={classes.deleteIcon} onClick={this.handleRemoveFile}>\n <ActionDelete />\n </IconButton>\n </div>\n {!fileUpload.scheduled && fileUpload.loading ? (\n <Typography variant=\"subheading\">Loading...</Typography>\n ) : null}\n {fileUpload.scheduled ? (\n <Typography variant=\"subheading\">\n Waiting for Upload to finish, then inserting item...\n </Typography>\n ) : null}\n </>\n ) : !fileUpload.loading ? (\n <input accept=\"audio/*\" className={classes.input} onChange={this.handleUploadFile} type=\"file\" />\n ) : null}\n {!!fileUpload.error && (\n <Typography className={classes.error} variant=\"caption\">\n {fileUpload.error}\n </Typography>\n )}\n </div>\n </div>\n )}\n </div>\n </DialogContent>\n <DialogActions>\n <Button onClick={() => this.handleDone(false)} color=\"primary\">\n Cancel\n </Button>\n <Button disabled={submitIsDisabled} onClick={() => this.handleDone(true)} color=\"primary\">\n {edit ? 'Update' : 'Insert'}\n </Button>\n </DialogActions>\n </Dialog>\n );\n }\n}\n\nconst styles = (theme) => ({\n paper: {\n minWidth: '500px',\n },\n properties: {\n padding: 0,\n },\n row: {\n display: 'flex',\n flexDirection: 'space-between',\n },\n rowItem: {\n marginRight: theme.spacing.unit * 1.5,\n cursor: 'pointer',\n },\n active: {\n color: color.primary(),\n borderBottom: `2px solid ${color.primary()}`,\n },\n uploadInput: {\n marginTop: theme.spacing.unit * 1.5,\n },\n error: {\n marginTop: theme.spacing.unit * 1.5,\n color: theme.palette.error.main,\n },\n deleteIcon: {\n marginLeft: theme.spacing.unit * 1.5,\n },\n});\n\nexport default withStyles(styles)(MediaDialog);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst useStyles = withStyles((theme) => ({\n root: {\n position: 'relative',\n bottom: '5px',\n left: 0,\n width: '100%',\n background: theme.palette.common.white,\n display: 'inline-flex',\n padding: '5px',\n boxShadow: '0px 4px 4px rgba(0, 0, 0, 0.25)',\n },\n editContainer: {\n cursor: 'pointer',\n flex: 3,\n border: `solid ${theme.palette.common.black}`,\n textAlign: 'right',\n borderWidth: '0 2px 0 0',\n marginRight: '5px',\n paddingRight: '5px',\n },\n removeContainer: {\n cursor: 'pointer',\n },\n}));\n\nclass MediaToolbar extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n onEdit: PropTypes.func,\n hideEdit: PropTypes.bool,\n onRemove: PropTypes.func,\n };\n\n render() {\n const { classes, hideEdit, onEdit, onRemove } = this.props;\n\n return (\n <span className={classes.root}>\n {hideEdit ? null : (\n <span className={classes.editContainer} onClick={onEdit}>\n Edit Settings\n </span>\n )}\n <span className={classes.removeContainer} onClick={onRemove}>\n Remove\n </span>\n </span>\n );\n }\n}\n\nexport default useStyles(MediaToolbar);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst useStyles = withStyles(() => ({\n root: {\n position: 'relative',\n },\n editor: {\n display: 'inline-block',\n overflow: 'hidden',\n },\n}));\n\nclass MediaWrapper extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n children: PropTypes.array,\n editor: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n };\n\n render() {\n const { editor, classes, children, width, ...rest } = this.props;\n\n return (\n <span\n className={classNames(classes.root, {\n [classes.editor]: editor,\n })}\n {...rest}\n style={{\n width: width || 300,\n }}\n >\n {children}\n </span>\n );\n }\n}\n\nexport default useStyles(MediaWrapper);\n","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 ariaLabel: type === 'audio' ? 'Insert audio' : 'Insert video',\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\" controlsList=\"nodownload\">\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\" controlsList=\"nodownload\">\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","import React from 'react';\nimport { Data } from 'slate';\nimport Immutable from 'immutable';\nimport PropTypes from 'prop-types';\nimport EditList from 'slate-edit-list';\nimport ListOptions from 'slate-edit-list/dist/options';\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 const listOptions = new ListOptions({\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 core.changes.unwrapList = function unwrapList(opts, change) {\n const items = core.utils.getItemsAtRange(change.value);\n\n if (items.isEmpty()) {\n return change;\n }\n\n // Unwrap the items from their list\n items.forEach((item) => change.unwrapNodeByKey(item.key, { normalize: false }));\n\n // Parent of the list of the items\n const firstItem = items.first();\n const parent = change.value.document.getParent(firstItem.key);\n\n let index = parent.nodes.findIndex((node) => node.key === firstItem.key);\n\n // Unwrap the items' children\n items.forEach((item) => {\n item.nodes.forEach((node) => {\n change.moveNodeByKey(node.key, parent.key, index, {\n normalize: false,\n });\n index += 1;\n });\n });\n\n // Finally, remove the now empty items\n items.forEach((item) => change.removeNodeByKey(item.key, { normalize: false }));\n\n return change;\n }.bind(this, listOptions);\n\n core.utils.getItemsAtRange = function(opts, value, range) {\n range = range || value.selection;\n\n if (!range.startKey) {\n return Immutable.List();\n }\n\n const { document } = value;\n\n const startBlock = document.getClosestBlock(range.startKey);\n const endBlock = document.getClosestBlock(range.endKey);\n\n if (startBlock === endBlock) {\n const item = core.utils.getCurrentItem(value, startBlock);\n return item ? Immutable.List([item]) : Immutable.List();\n }\n\n const ancestor = document.getCommonAncestor(startBlock.key, endBlock.key);\n\n if (core.utils.isList(ancestor)) {\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 } else if (ancestor.type === opts.typeItem) {\n // The ancestor is the highest list item that covers the range\n return Immutable.List([ancestor]);\n }\n // No list of items can cover the range\n return Immutable.List();\n }.bind(this, listOptions);\n\n core.utils.getListForItem = function(opts, value, item) {\n const { document } = value;\n const parent = document.getParent(item.key);\n return parent && core.utils.isList(parent) ? parent : null;\n }.bind(this, listOptions);\n\n core.utils.isSelectionInList = function(opts, value, type) {\n const items = core.utils.getItemsAtRange(value);\n return (\n !items.isEmpty() &&\n // Check the type of the list if needed\n (!type || core.utils.getListForItem(value, items.first()).get('type') === type)\n );\n }.bind(this, listOptions);\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 ariaLabel: type == 'ul_list' ? 'bulleted list' : 'numbered-list',\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.normalizeNode = (node) => {\n if (node.object !== 'document' && node.object !== 'block') {\n return undefined;\n }\n\n const response = core.validateNode(node);\n\n const invalidListItems = [];\n\n node.forEachDescendant((d) => {\n if (d.type === 'list_item' && d.nodes.size === 1 && d.nodes.first().object === 'text') {\n // if we have a list_item that has only a text inside, we need to add a block in it\n invalidListItems.push(d);\n }\n });\n\n if (!invalidListItems.length && !response) {\n return undefined;\n }\n\n return (change) => {\n if (response) {\n response(change);\n }\n\n if (invalidListItems.length) {\n change.withoutNormalization(() => {\n invalidListItems.forEach((node) => {\n const textNode = node.nodes.first();\n const wrappedBlock = {\n object: 'block',\n type: 'div',\n nodes: [textNode.toJSON()],\n };\n\n change.removeNodeByKey(textNode.key);\n\n change.insertNodeByKey(node.key, 0, wrappedBlock);\n });\n });\n }\n };\n };\n\n core.renderNode.propTypes = {\n node: PropTypes.object,\n attributes: PropTypes.object,\n children: PropTypes.func,\n };\n core.name = type;\n\n return core;\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n}), _react.default.createElement(\"path\", {\n d: \"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 20H4v-4h4v4zm0-6H4v-4h4v4zm0-6H4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4z\"\n})), 'GridOn');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n}), _react.default.createElement(\"path\", {\n d: \"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"\n})), 'Check');\n\nexports.default = _default;","import React from 'react';\n\nimport IconButton from '@material-ui/core/IconButton';\nimport Check from '@material-ui/icons/Check';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\n\nexport const RawDoneButton = ({ classes, onClick, doneButtonRef }) => (\n <IconButton\n aria-label=\"Done\"\n className={classes.iconRoot}\n buttonRef={doneButtonRef}\n onClick={onClick}\n classes={{\n label: classes.label,\n root: classes.iconRoot,\n }}\n >\n <Check />\n </IconButton>\n);\n\nRawDoneButton.propTypes = {\n classes: PropTypes.object.isRequired,\n onClick: PropTypes.func,\n doneButtonRef: PropTypes.func,\n};\n\nconst styles = {\n iconRoot: {\n verticalAlign: 'top',\n width: '28px',\n height: '28px',\n color: 'var(--editable-html-toolbar-check, #00bb00)',\n padding: '4px',\n },\n};\nexport const DoneButton = withStyles(styles)(RawDoneButton);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n d: \"M3 3v18h18V3H3zm8 16H5v-6h6v6zm0-8H5V5h6v6zm8 8h-6v-6h6v6zm0-8h-6V5h6v6z\"\n}), _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n})), 'BorderAll');\n\nexports.default = _default;","export const findSingleNode = (value) => {\n if (!value || !value.isCollapsed || !value.startKey) {\n return;\n }\n\n const inline = value.document.getClosestInline(value.startKey);\n\n if (inline) {\n return inline;\n }\n\n const block = value.document.getClosestBlock(value.startKey);\n\n if (block) {\n return block;\n }\n};\n\nexport const findParentNode = (value, node) => {\n if (!value || !node) {\n return;\n }\n\n return value.document.getParent(node.key);\n};\n\nexport const hasMark = (value, type) => value && value.marks.some((mark) => mark.type == type);\n\nexport const hasBlock = (value, type) => value && value.blocks.some((node) => node.type == type);\n\nexport const hasNode = ({ document }, type) => document && document.nodes.some((node) => node.type == type);\n","import { DoneButton } from './done-button';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport SlatePropTypes from 'slate-prop-types';\n\nimport { hasBlock, hasMark } from '../utils';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport { Button, MarkButton } from './toolbar-buttons';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:plugins:toolbar');\n\nexport const ToolbarButton = (props) => {\n const onToggle = () => {\n const c = props.onToggle(props.value.change(), props);\n\n props.onChange(c);\n };\n\n if (props.isMark) {\n const isActive = hasMark(props.value, props.type);\n const fnToCall =\n props.type === 'css' ? () => props.onClick(props.value, props.onChange, props.getFocusedValue) : onToggle;\n\n log('[ToolbarButton] mark:isActive: ', isActive);\n\n let ariaLabel;\n\n if (props.type === 'sup') {\n ariaLabel = 'Superscript (marks text as superscripted)';\n } else if (props.type === 'sub') {\n ariaLabel = 'Subscript (marks text as subscripted)';\n } else {\n ariaLabel = props.type;\n }\n\n return (\n <MarkButton active={isActive} onToggle={fnToCall} mark={props.type} label={ariaLabel}>\n {props.icon}\n </MarkButton>\n );\n }\n\n const { disabled } = props;\n const isActive = props.isActive ? props.isActive(props.value, props.type) : hasBlock(props.value, props.type);\n\n log('[ToolbarButton] block:isActive: ', isActive);\n const newIcon = React.cloneElement(props.icon);\n\n return (\n <Button\n ariaLabel={props.ariaLabel}\n active={isActive}\n disabled={disabled}\n onClick={(event) => props.onClick(props.value, props.onChange, props.getFocusedValue, event)}\n extraStyles={props.buttonStyles}\n >\n {newIcon}\n </Button>\n );\n};\n\nToolbarButton.propTypes = {\n buttonStyles: PropTypes.object,\n disabled: PropTypes.bool,\n icon: PropTypes.any,\n isActive: PropTypes.bool,\n isMark: PropTypes.bool,\n getFocusedValue: PropTypes.func,\n onToggle: PropTypes.func,\n onChange: PropTypes.func,\n onClick: PropTypes.func,\n type: PropTypes.string,\n value: PropTypes.object,\n ariaLabel: PropTypes.string,\n};\n\nconst isActiveToolbarPlugin = (props) => (plugin) => {\n const isDisabled = (props[plugin.name] || {}).disabled;\n\n return plugin && plugin.toolbar && !isDisabled;\n};\n\nexport const DefaultToolbar = ({\n plugins,\n pluginProps,\n value,\n onChange,\n getFocusedValue,\n onDone,\n classes,\n showDone,\n deletable,\n isHtmlMode,\n doneButtonRef,\n onBlur,\n onFocus,\n}) => {\n pluginProps = {\n // disable HTML plugin by default, at least for now\n html: { disabled: true },\n ...pluginProps,\n };\n let filtered;\n\n const handleFocus = (event) => {\n const doneButtonClassName = doneButtonRef?.current?.className;\n const isRawDoneButton = doneButtonClassName && event.target?.closest(`[class*=\"${doneButtonClassName}\"]`);\n\n if (onFocus && !isRawDoneButton) {\n onFocus(event);\n }\n };\n\n if (isHtmlMode) {\n filtered = plugins\n .filter((plugin) => {\n return isActiveToolbarPlugin(pluginProps)(plugin) && (plugin.name === 'characters' || plugin.name === 'html');\n })\n .map((p) => p.toolbar);\n } else {\n filtered = plugins.filter(isActiveToolbarPlugin(pluginProps)).map((p) => p.toolbar);\n }\n\n const isListActive = plugins.some(\n (plugin) =>\n isActiveToolbarPlugin(pluginProps)(plugin) &&\n ['ul_list', 'ol_list'].includes(plugin.name) &&\n plugin.toolbar.isActive(value, plugin.name),\n );\n\n const isTableActive = plugins.some(\n (plugin) =>\n isActiveToolbarPlugin(pluginProps)(plugin) &&\n plugin.name === 'table' &&\n plugin.utils &&\n plugin.utils.isSelectionInTable &&\n plugin.utils.isSelectionInTable(value),\n );\n\n const isToolbarButtonDisabled = (plugin) => {\n if (plugin.type === 'table') {\n return isListActive;\n } else if (plugin.type === 'ul_list' || plugin.type === 'ol_list') {\n return isTableActive;\n }\n return plugin.disabled;\n };\n\n return (\n <div className={classes.defaultToolbar} onFocus={handleFocus} tabIndex=\"1\" onBlur={onBlur}>\n <div className={classes.buttonsContainer}>\n {filtered.map((p, index) => {\n return (\n <ToolbarButton\n {...p}\n key={index}\n value={value}\n onChange={onChange}\n getFocusedValue={getFocusedValue}\n disabled={isToolbarButtonDisabled(p)}\n />\n );\n })}\n </div>\n {showDone && !deletable && <DoneButton doneButtonRef={doneButtonRef} onClick={onDone} />}\n </div>\n );\n};\n\nDefaultToolbar.propTypes = {\n classes: PropTypes.object.isRequired,\n plugins: PropTypes.array.isRequired,\n pluginProps: PropTypes.object,\n value: SlatePropTypes.value.isRequired,\n onChange: PropTypes.func.isRequired,\n getFocusedValue: PropTypes.func.isRequired,\n onDone: PropTypes.func.isRequired,\n showDone: PropTypes.bool,\n addArea: PropTypes.bool,\n deletable: PropTypes.bool,\n isHtmlMode: PropTypes.bool,\n doneButtonRef: PropTypes.func,\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n};\n\nDefaultToolbar.defaultProps = {\n pluginProps: {},\n};\n\nconst toolbarStyles = () => ({\n defaultToolbar: {\n display: 'flex',\n width: '100%',\n justifyContent: 'space-between',\n },\n buttonsContainer: {\n alignItems: 'center',\n display: 'flex',\n width: '100%',\n },\n});\n\nexport default withStyles(toolbarStyles)(DefaultToolbar);\n","import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst styles = {\n icon: {\n fill: 'grey',\n '&:hover': {\n fill: 'black',\n },\n },\n};\n\nconst SvgIcon = (Component) => {\n return withStyles(styles)((props) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <Component className={props.classes.icon} />\n </svg>\n ));\n};\nexport const AddRow = SvgIcon((props) => (\n <path\n {...props}\n d=\"M22,10A2,2 0 0,1 20,12H4A2,2 0 0,1 2,10V3H4V5H8V3H10V5H14V3H16V5H20V3H22V10M4,10H8V7H4V10M10,10H14V7H10V10M20,10V7H16V10H20M11,14H13V17H16V19H13V22H11V19H8V17H11V14Z\"\n />\n));\n\nexport const RemoveRow = SvgIcon((props) => (\n <path\n {...props}\n d=\"M9.41,13L12,15.59L14.59,13L16,14.41L13.41,17L16,19.59L14.59,21L12,18.41L9.41,21L8,19.59L10.59,17L8,14.41L9.41,13M22,9A2,2 0 0,1 20,11H4A2,2 0 0,1 2,9V6A2,2 0 0,1 4,4H20A2,2 0 0,1 22,6V9M4,9H8V6H4V9M10,9H14V6H10V9M16,9H20V6H16V9Z\"\n />\n));\n\nexport const AddColumn = SvgIcon((props) => (\n <path\n {...props}\n d=\"M11,2A2,2 0 0,1 13,4V20A2,2 0 0,1 11,22H2V2H11M4,10V14H11V10H4M4,16V20H11V16H4M4,4V8H11V4H4M15,11H18V8H20V11H23V13H20V16H18V13H15V11Z\"\n />\n));\n\nexport const RemoveColumn = SvgIcon((props) => (\n <path\n {...props}\n d=\"M4,2H11A2,2 0 0,1 13,4V20A2,2 0 0,1 11,22H4A2,2 0 0,1 2,20V4A2,2 0 0,1 4,2M4,10V14H11V10H4M4,16V20H11V16H4M4,4V8H11V4H4M17.59,12L15,9.41L16.41,8L19,10.59L21.59,8L23,9.41L20.41,12L23,14.59L21.59,16L19,13.41L16.41,16L15,14.59L17.59,12Z\"\n />\n));\n\nexport const RemoveTable = SvgIcon((props) => (\n <path\n {...props}\n d=\"M15.46,15.88L16.88,14.46L19,16.59L21.12,14.46L22.54,15.88L20.41,18L22.54,20.12L21.12,21.54L19,19.41L16.88,21.54L15.46,20.12L17.59,18L15.46,15.88M4,3H18A2,2 0 0,1 20,5V12.08C18.45,11.82 16.92,12.18 15.68,13H12V17H13.08C12.97,17.68 12.97,18.35 13.08,19H4A2,2 0 0,1 2,17V5A2,2 0 0,1 4,3M4,7V11H10V7H4M12,7V11H18V7H12M4,13V17H10V13H4Z\"\n />\n));\n","import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Button } from '../toolbar/toolbar-buttons';\nimport { DoneButton } from '../toolbar/done-button';\nimport BorderAll from '@material-ui/icons/BorderAll';\nimport { ToolbarButton } from '../toolbar/default-toolbar';\n\nimport { AddRow, AddColumn, RemoveColumn, RemoveRow, RemoveTable } from './icons';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:plugins:table-toolbar');\n\nexport class TableToolbar extends React.Component {\n static propTypes = {\n plugins: PropTypes.array.isRequired,\n value: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n onAddRow: PropTypes.func.isRequired,\n onRemoveRow: PropTypes.func.isRequired,\n onAddColumn: PropTypes.func.isRequired,\n onRemoveColumn: PropTypes.func.isRequired,\n onRemoveTable: PropTypes.func.isRequired,\n onToggleBorder: PropTypes.func.isRequired,\n hasBorder: PropTypes.bool,\n onDone: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n };\n\n static defaultProps = {\n plugins: [],\n value: {},\n onChange: () => {},\n };\n\n onDone = (e) => {\n const { onDone } = this.props;\n e.preventDefault();\n onDone();\n };\n\n render() {\n const {\n getFocusedValue,\n plugins,\n value,\n onChange,\n onAddRow,\n onRemoveRow,\n onAddColumn,\n onRemoveColumn,\n onRemoveTable,\n onToggleBorder,\n hasBorder,\n classes,\n } = this.props;\n log('[render] hasBorder:', hasBorder);\n\n // we're separating the response area plugin because we want to display it next to the done button\n const filteredPlugins = (plugins || []).reduce(\n (acc, plugin) => {\n if (plugin.name === 'response_area') {\n return {\n ...acc,\n respAreaPlugin: plugin,\n };\n }\n\n return {\n ...acc,\n otherPlugins: [...acc.otherPlugins, plugin],\n };\n },\n {\n respAreaPlugin: null,\n otherPlugins: [],\n },\n );\n\n return (\n <div className={classes.tableToolbar}>\n <div className={classes.toolbarButtons}>\n <Button onClick={onAddRow}>\n <AddRow />\n </Button>\n <Button onClick={onRemoveRow}>\n <RemoveRow />\n </Button>\n <Button onClick={onAddColumn}>\n <AddColumn />\n </Button>\n <Button onClick={onRemoveColumn}>\n <RemoveColumn />\n </Button>\n <Button onClick={onRemoveTable}>\n <RemoveTable />\n </Button>\n {(filteredPlugins.otherPlugins || []).map((p, index) => (\n <ToolbarButton\n key={`plugin-${index}`}\n {...p.toolbar}\n value={value}\n onChange={onChange}\n getFocusedValue={getFocusedValue}\n />\n ))}\n <Button onClick={onToggleBorder} active={hasBorder}>\n <BorderAll />\n </Button>\n </div>\n {filteredPlugins.respAreaPlugin && (\n <ToolbarButton\n key={'plugin-response-area'}\n {...filteredPlugins.respAreaPlugin.toolbar}\n value={value}\n onChange={onChange}\n getFocusedValue={getFocusedValue}\n />\n )}\n <DoneButton onClick={this.onDone} />\n </div>\n );\n }\n}\n\nconst styles = () => ({\n tableToolbar: {\n width: '100%',\n display: 'flex',\n justifyContent: 'space-between',\n },\n toolbarButtons: {\n display: 'flex',\n },\n});\nexport default withStyles(styles)(TableToolbar);\n","import EditTable from 'slate-edit-table';\nimport { isSelectionInTable } from 'slate-edit-table/dist/utils';\nimport { onEnter, onModEnter, onTab, onUpDown } from 'slate-edit-table/dist/handlers';\nimport TableOptions from 'slate-edit-table/dist/options';\nimport { clearCell } from 'slate-edit-table/dist/changes';\n\nfunction onBackspace(event, change, editor, opts) {\n const { value } = change;\n const { startBlock, endBlock, selection, document } = value;\n\n const startCell = document.getClosest(startBlock.key, opts.isCell);\n const endCell = document.getClosest(endBlock.key, opts.isCell);\n\n const startBlockIndex = startCell?.nodes?.findIndex((block) => block.key == startBlock.key);\n\n // If a cursor is collapsed at the start of the first block, do nothing\n if (startBlockIndex === 0 && selection.isAtStartOf(startBlock)) {\n if (startBlock.isVoid) {\n // Delete the block normally if it is a void block\n return undefined;\n }\n\n event.preventDefault();\n return change;\n }\n\n // If \"normal\" deletion, we continue\n if (startCell === endCell) {\n return undefined;\n }\n\n // If cursor is between multiple blocks,\n // we clear the content of the cells.\n event.preventDefault();\n\n const { blocks } = value;\n\n // Get all cells that contains the selection\n const cells = blocks\n .map((node) =>\n node.type === opts.typeCell ? node : document.getClosest(node.key, (a) => a.type === opts.typeCell),\n )\n .toSet();\n\n // If the cursor is at the very end of the first cell, ignore it.\n // If the cursor is at the very start of the last cell, ignore it.\n // This behavior is to compensate hanging selection behaviors:\n // https://github.com/ianstormtaylor/slate/pull/1605\n const ignoreFirstCell = value.selection.collapseToStart().isAtEndOf(cells.first());\n const ignoreLastCell = value.selection.collapseToEnd().isAtStartOf(cells.last());\n\n let cellsToClear = cells;\n if (ignoreFirstCell) {\n cellsToClear = cellsToClear.rest();\n }\n if (ignoreLastCell) {\n cellsToClear = cellsToClear.butLast();\n }\n\n // Clear all the selection\n cellsToClear.forEach((cell) => clearCell(opts, change, cell));\n\n // Update the selection properly, and avoid reset of selection\n const updatedStartCell = change.value.document.getDescendant(cellsToClear.first().key);\n return change.collapseToStartOf(updatedStartCell);\n}\n\nconst KEY_ENTER = 'Enter';\nconst KEY_TAB = 'Tab';\nconst KEY_BACKSPACE = 'Backspace';\nconst KEY_DOWN = 'ArrowDown';\nconst KEY_UP = 'ArrowUp';\n\n/**\n * User is pressing a key in the editor\n */\nfunction onKeyDown(opts, event, change, editor) {\n // Only handle events in cells\n if (!isSelectionInTable(opts, change.value)) {\n return undefined;\n }\n\n // Build arguments list\n const args = [event, change, editor, opts];\n\n switch (event.key) {\n case KEY_ENTER:\n if (event.metaKey && opts.exitBlockType) {\n return onModEnter(...args);\n }\n return onEnter(...args);\n\n case KEY_TAB:\n return onTab(...args);\n case KEY_BACKSPACE:\n return onBackspace(...args);\n case KEY_DOWN:\n case KEY_UP:\n return onUpDown(...args);\n default:\n return undefined;\n }\n}\n\nexport default (opts) => {\n const core = EditTable(opts);\n\n const tableOpts = new TableOptions(opts);\n\n core.onKeyDown = onKeyDown.bind(null, tableOpts);\n\n return core;\n};\n","import React from 'react';\nimport { Block } from 'slate';\nimport debug from 'debug';\nimport GridOn from '@material-ui/icons/GridOn';\nimport TableToolbar from './table-toolbar';\nimport PropTypes from 'prop-types';\nimport SlatePropTypes from 'slate-prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport convert from 'react-attr-converter';\nimport { object as toStyleObject } from 'to-style';\nimport CustomTablePlugin from './CustomTablePlugin';\n\nconst log = debug('@pie-lib:editable-html:plugins:table');\n\nconst Table = withStyles(() => ({\n table: {},\n}))((props) => {\n const nodeAttributes = dataToAttributes(props.node.data);\n\n return (\n <table\n className={props.classes.table}\n {...props.attributes}\n {...nodeAttributes}\n onFocus={props.onFocus}\n onBlur={props.onBlur}\n >\n <tbody>{props.children}</tbody>\n </table>\n );\n});\n\nTable.propTypes = {\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n node: SlatePropTypes.node,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n};\n\nconst TableRow = (props) => <tr {...props.attributes}>{props.children}</tr>;\n\nTableRow.propTypes = {\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n};\n\nconst TableCell = withStyles(() => ({\n td: {\n minWidth: '25px',\n },\n}))((props) => {\n const Tag = props.node.data.get('header') ? 'th' : 'td';\n\n const nodeAttributes = dataToAttributes(props.node.data);\n delete nodeAttributes.header;\n\n return (\n <Tag\n {...props.attributes}\n {...nodeAttributes}\n colSpan={props.node.data.get('colspan')}\n className={props.classes[Tag]}\n onFocus={props.onFocus}\n onBlur={props.onBlur}\n >\n {props.children}\n </Tag>\n );\n});\n\nTableCell.propTypes = {\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n};\n\nexport const moveFocusToBeginningOfTable = (change) => {\n const addedTable = change.value.document.findDescendant((d) => !!d.data && !!d.data.get('newTable'));\n\n if (!addedTable) {\n return;\n }\n\n change.collapseToStartOf(addedTable);\n\n const update = addedTable.data.remove('newTable');\n\n change.setNodeByKey(addedTable.key, { data: update });\n};\n\nexport default (opts, toolbarPlugins /* : {toolbar: {}}[] */) => {\n const core = CustomTablePlugin(opts);\n\n // fix outdated schema\n\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 if (block.nodes[0].types) {\n block.nodes[0] = {\n type: block.nodes[0].types[0],\n };\n }\n\n if (block.nodes[0].objects) {\n block.nodes[0] = {\n object: block.nodes[0].objects[0],\n };\n }\n\n block.parent = {\n type: block.parent.types[0],\n };\n } else {\n block.nodes[0] = { type: block.nodes[0].types[0] };\n }\n });\n }\n\n core.utils.getTableBlock = (containerNode, key) => {\n const node = containerNode.getDescendant(key);\n const ancestors = containerNode.getAncestors(key).push(node);\n return ancestors.findLast((p) => p.type === 'table');\n };\n\n core.utils.createTableWithOptions = (row, columns, extra) => {\n const createdTable = core.utils.createTable(row, columns);\n const newTable = Block.create({\n ...createdTable.toJSON(),\n ...extra,\n });\n\n return newTable;\n };\n\n core.toolbar = {\n type: 'table',\n icon: <GridOn />,\n ariaLabel: 'Insert Table',\n onClick: (value, onChange) => {\n log('insert table');\n const change = value.change();\n const newTable = core.utils.createTableWithOptions(2, 2, {\n data: {\n border: '1',\n newTable: true,\n },\n });\n\n change.insertBlock(newTable);\n\n moveFocusToBeginningOfTable(change);\n onChange(change);\n },\n supports: (node, value) => node && node.object === 'block' && core.utils.isSelectionInTable(value),\n /**\n * Note - the node may not be a table node - it may be a node inside a table.\n */\n customToolbar: (node, value, onToolbarDone, getFocusedValue) => {\n log('[customToolbar] node.data: ', node.data);\n\n const tableBlock = core.utils.getTableBlock(value.document, node?.key);\n log('[customToolbar] tableBlock: ', tableBlock);\n\n const hasBorder = () => tableBlock.data.get('border') && tableBlock.data.get('border') !== '0';\n const addRow = () => {\n const change = core.changes.insertRow(value.change());\n onToolbarDone(change, false);\n };\n\n const addColumn = () => {\n const change = core.changes.insertColumn(value.change());\n onToolbarDone(change, false);\n };\n\n const removeRow = () => {\n const change = core.changes.removeRow(value.change());\n onToolbarDone(change, false);\n };\n\n const removeColumn = () => {\n const change = core.changes.removeColumn(value.change());\n onToolbarDone(change, false);\n };\n\n const removeTable = () => {\n const change = core.changes.removeTable(value.change());\n onToolbarDone(change, false);\n };\n\n const toggleBorder = () => {\n const { data } = tableBlock;\n const update = data.set('border', hasBorder() ? '0' : '1');\n log('[toggleBorder] update: ', update);\n const change = value.change().setNodeByKey(tableBlock.key, { data: update });\n onToolbarDone(change, false);\n };\n\n const onDone = () => {\n log('[onDone] call onToolbarDone...');\n onToolbarDone(null, true);\n };\n\n const Tb = () => (\n <TableToolbar\n getFocusedValue={getFocusedValue}\n plugins={toolbarPlugins}\n onChange={(c) => onToolbarDone(c, false)}\n value={value}\n onAddRow={addRow}\n onRemoveRow={removeRow}\n onAddColumn={addColumn}\n onRemoveColumn={removeColumn}\n onRemoveTable={removeTable}\n hasBorder={hasBorder()}\n onToggleBorder={toggleBorder}\n onDone={onDone}\n />\n );\n\n return Tb;\n },\n };\n\n const Node = (props) => {\n switch (props.node.type) {\n case 'table':\n return <Table {...props} onFocus={opts.onFocus} onBlur={opts.onBlur} />;\n case 'table_row':\n return <TableRow {...props} />;\n case 'table_cell':\n return <TableCell {...props} onFocus={opts.onFocus} onBlur={opts.onBlur} />;\n default:\n return null;\n }\n };\n Node.propTypes = {\n node: PropTypes.object,\n };\n\n core.normalizeNode = (node) => {\n const addNodeBeforeArray = [];\n\n if (node.object !== 'document') return;\n\n node.findDescendant((d) => {\n if (d.type === 'table') {\n const tablePath = node.getPath(d.key);\n const prevNode = node.getPreviousNode(tablePath);\n const nextNode = node.getNextNode(tablePath);\n\n if (!prevNode || !nextNode) {\n addNodeBeforeArray.push({\n node: d,\n prevNode,\n nextNode,\n });\n }\n }\n });\n\n if (!addNodeBeforeArray.length) {\n return;\n }\n\n return (change) => {\n const newBlock = {\n object: 'block',\n type: 'div',\n };\n\n addNodeBeforeArray.forEach((n) => {\n const tablePath = change.value.document.getPath(n.node.key).toJSON();\n // removing tableIndex\n let indexToAdd = tablePath.splice(-1)[0];\n\n if (!n.prevNode) {\n // inserting block key before table\n change.insertNodeByPath(tablePath, indexToAdd, newBlock);\n // this will trigger another normalization, which will figure out if there's not\n // a block after the table and add it, so we exit for now\n return;\n }\n\n if (!n.nextNode) {\n // inserting block key after table\n change.insertNodeByPath(tablePath, indexToAdd + 1, newBlock);\n }\n });\n };\n };\n\n core.renderNode = Node;\n core.name = 'table';\n\n return core;\n};\n\nexport const parseStyleString = (s) => {\n const regex = /([\\w-]*)\\s*:\\s*([^;]*)/g;\n let match;\n const result = {};\n while ((match = regex.exec(s))) {\n result[match[1]] = match[2].trim();\n }\n return result;\n};\n\nexport const reactAttributes = (o) => toStyleObject(o, { camelize: true, addUnits: false });\n\nconst attributesToMap = (el) => (acc, attribute) => {\n const value = el.getAttribute(attribute);\n if (value) {\n if (attribute === 'style') {\n const styleString = el.getAttribute(attribute);\n const reactStyleObject = reactAttributes(parseStyleString(styleString));\n acc['style'] = reactStyleObject;\n } else {\n acc[attribute] = el.getAttribute(attribute);\n }\n }\n return acc;\n};\n\nconst dataToAttributes = (data) => {\n if (!data || !data.get) {\n return {};\n }\n\n return data.reduce((acc, v, name) => {\n if (v) {\n acc[convert(name)] = v;\n }\n return acc;\n }, {});\n};\n\nconst attributes = ['border', 'cellpadding', 'cellspacing', 'class', 'style'];\n\nconst cellAttributes = ['colspan', 'rowspan', 'class', 'style'];\n\nexport const serialization = {\n deserialize(el, next) {\n const tag = el.tagName.toLowerCase();\n\n switch (tag) {\n case 'table': {\n const children =\n el.children.length === 1 && el.children[0].tagName.toLowerCase() === 'tbody'\n ? el.children[0].children\n : el.children;\n const c = Array.from(children);\n\n return {\n object: 'block',\n type: 'table',\n nodes: next(c),\n data: attributes.reduce(attributesToMap(el), {}),\n };\n }\n\n case 'th': {\n return {\n object: 'block',\n type: 'table_cell',\n nodes: next(el.childNodes),\n data: cellAttributes.reduce(attributesToMap(el), { header: true }),\n };\n }\n\n case 'tr': {\n return {\n object: 'block',\n type: 'table_row',\n nodes: next(Array.from(el.children)),\n };\n }\n\n case 'td': {\n return {\n object: 'block',\n type: 'table_cell',\n nodes: next(Array.from(el.childNodes)),\n data: cellAttributes.reduce(attributesToMap(el), { header: false }),\n };\n }\n }\n },\n serialize(object, children) {\n if (object.object !== 'block') {\n return;\n }\n\n switch (object.type) {\n case 'table': {\n const attributes = dataToAttributes(object.data);\n\n return (\n <table {...attributes}>\n <tbody>{children}</tbody>\n </table>\n );\n }\n\n case 'table_row': {\n return <tr>{children}</tr>;\n }\n\n case 'table_cell': {\n const attributes = dataToAttributes(object.data);\n delete attributes.header;\n\n if (object.data.get('header')) {\n return <th {...attributes}>{children}</th>;\n } else {\n return <td {...attributes}>{children}</td>;\n }\n }\n }\n },\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n d: \"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"\n}), _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n})), 'ChevronRight');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n}), _react.default.createElement(\"path\", {\n d: \"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"\n})), 'MoreVert');\n\nexports.default = _default;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ChevronRight from '@material-ui/icons/ChevronRight';\nimport MoreVert from '@material-ui/icons/MoreVert';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst getRotate = (direction) => {\n switch (direction) {\n case 'down':\n return 90;\n\n case 'up':\n return -90;\n\n case 'left':\n return 180;\n\n default:\n return 0;\n }\n};\n\nexport const Chevron = (props) => {\n const { direction, style } = props;\n const rotate = getRotate(direction);\n\n return (\n <ChevronRight\n style={{\n transform: `rotate(${rotate}deg)`,\n ...style,\n }}\n />\n );\n};\n\nChevron.propTypes = {\n direction: PropTypes.string,\n style: PropTypes.object,\n};\n\nexport const GripIcon = ({ style }) => {\n return (\n <span style={style}>\n <MoreVert\n style={{\n margin: '0 -16px',\n }}\n />\n <MoreVert />\n </span>\n );\n};\n\nGripIcon.propTypes = {\n style: PropTypes.object,\n};\n\nexport const ToolbarIcon = withStyles((theme) => ({\n icon: {\n fontFamily: 'Cerebri Sans !important',\n fontSize: theme.typography.fontSize,\n fontWeight: 'bold',\n lineHeight: '14px',\n position: 'relative',\n top: '7px',\n width: '110px',\n height: '28px',\n whiteSpace: 'nowrap',\n },\n}))(({ classes }) => <div className={classes.icon}>+ Response Area</div>);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Chevron } from '../icons';\n\nconst InlineDropdown = ({ attributes, selectedItem }) => {\n // TODO: Investigate\n // Needed because items with values inside have different positioning for some reason\n const html = selectedItem || '<div>&nbsp</div>';\n\n return (\n <span\n {...attributes}\n style={{\n display: 'inline-flex',\n height: '50px',\n margin: '0 5px',\n cursor: 'pointer',\n }}\n >\n <div\n style={{\n display: 'inline-flex',\n minWidth: '178px',\n height: '36px',\n background: '#FFF',\n border: '1px solid #C0C3CF',\n boxSizing: 'border-box',\n borderRadius: '3px',\n position: 'relative',\n alignItems: 'center',\n }}\n >\n <div\n style={{\n flex: 1,\n overflow: 'hidden',\n padding: '0 25px 0 8px',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n }}\n >\n <span\n style={{\n display: 'inline-block',\n verticalAlign: 'middle',\n }}\n dangerouslySetInnerHTML={{\n __html: html,\n }}\n />\n </div>\n <Chevron\n direction=\"down\"\n style={{\n position: 'absolute',\n top: '5px',\n right: '5px',\n }}\n />\n </div>\n </span>\n );\n};\n\nInlineDropdown.propTypes = {\n attributes: PropTypes.object,\n selectedItem: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n};\n\nexport default InlineDropdown;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport isUndefined from 'lodash/isUndefined';\nimport { DragSource, DropTarget } from '@pie-lib/drag';\nimport { color } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { withStyles } from '@material-ui/core/styles';\nimport classnames from 'classnames';\n\nimport { GripIcon } from '../icons';\n\nconst useStyles = withStyles((theme) => ({\n content: {\n border: `solid 0px ${theme.palette.primary.main}`,\n '& mjx-frac': {\n fontSize: '120% !important',\n },\n },\n chip: {\n minWidth: '90px',\n },\n correct: {\n border: `solid 1px ${color.correct()}`,\n },\n incorrect: {\n border: `solid 1px ${theme.palette.error.main}`,\n },\n selected: {\n border: `2px solid ${color.primaryDark()} !important`,\n },\n}));\n\nexport class BlankContent extends React.Component {\n static propTypes = {\n n: PropTypes.object,\n children: PropTypes.func,\n isDragging: PropTypes.bool,\n isOver: PropTypes.bool,\n dragItem: PropTypes.object,\n value: PropTypes.object,\n classes: PropTypes.object,\n };\n\n constructor(props) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n this.state = { hoveredElementSize: null };\n }\n\n componentDidMount() {\n document.addEventListener('click', this.handleClick);\n }\n\n componentWillUnmount() {\n document.removeEventListener('click', this.handleClick);\n }\n\n handleClick(event) {\n const { classes } = this.props;\n\n if (this.elementRef) {\n this.elementRef.className = this.elementRef.contains(event.target) ? classes.selected : '';\n }\n }\n\n getSnapshotBeforeUpdate(prevProps) {\n if (!prevProps.isOver && this.props.isOver && this.elementRef) {\n const node = this.elementRef;\n return { width: node.offsetWidth, height: node.offsetHeight };\n }\n return null;\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.elementRef && typeof renderMath === 'function') {\n renderMath(this.elementRef);\n }\n\n if (\n snapshot &&\n (!this.state.hoveredElementSize ||\n this.state.hoveredElementSize.width !== snapshot.width ||\n this.state.hoveredElementSize.height !== snapshot.height)\n ) {\n this.setState({ hoveredElementSize: snapshot });\n return;\n }\n\n if (prevProps.isOver && !this.props.isOver && this.state.hoveredElementSize) {\n this.setState({ hoveredElementSize: null });\n }\n }\n\n render() {\n const { n, children, isDragging, dragItem, isOver, value } = this.props;\n const { hoveredElementSize } = this.state;\n\n const label = dragItem && isOver ? dragItem.value.value : value.value || '\\u00A0';\n const finalLabel = isDragging ? '\\u00A0' : label;\n const hasGrip = finalLabel !== '\\u00A0';\n const isPreview = dragItem && isOver;\n\n return (\n <div\n ref={(ref) => (this.elementRef = ref)}\n style={{\n display: 'inline-flex',\n minWidth: '178px',\n minHeight: '36px',\n background: isPreview ? `${color.defaults.BORDER_LIGHT}` : `${color.defaults.WHITE}`,\n border: isPreview ? `1px solid ${color.defaults.BORDER_DARK}` : `1px solid ${color.defaults.BORDER_LIGHT}`,\n boxSizing: 'border-box',\n borderRadius: '3px',\n overflow: 'hidden',\n position: 'relative',\n padding: '8px 8px 8px 35px',\n width: hoveredElementSize ? hoveredElementSize.width : undefined,\n height: hoveredElementSize ? hoveredElementSize.height : undefined,\n }}\n data-key={n.key}\n contentEditable={false}\n >\n {hasGrip && (\n <GripIcon\n style={{\n position: 'absolute',\n top: '6px',\n left: '15px',\n color: '#9B9B9B',\n }}\n contentEditable={false}\n />\n )}\n <span\n dangerouslySetInnerHTML={{\n __html: finalLabel,\n }}\n />\n {children}\n </div>\n );\n }\n}\n\nconst StyledBlankContent = useStyles(BlankContent);\n\nconst connectedBlankContent = useStyles(({ connectDropTarget, connectDragSource, ...props }) => {\n const { classes, isOver, value } = props;\n const dragContent = <StyledBlankContent {...props} />;\n const dragEl = !value ? dragContent : connectDragSource(<span>{dragContent}</span>);\n const content = <span className={classnames(classes.content, isOver && classes.over)}>{dragEl}</span>;\n\n return connectDropTarget ? connectDropTarget(content) : content;\n});\n\nexport const tileTarget = {\n drop(props, monitor) {\n const draggedItem = monitor.getItem();\n const shouldDrop =\n isUndefined(draggedItem.value.index) ||\n isUndefined(props.value.index) ||\n draggedItem.value.index !== props.value.index;\n\n if (shouldDrop) {\n props.onChange(draggedItem.value);\n }\n\n return {\n dropped: shouldDrop,\n };\n },\n canDrop(props, monitor) {\n const draggedItem = monitor.getItem();\n\n return draggedItem.instanceId === props.instanceId;\n },\n};\n\nconst DropTile = DropTarget('drag-in-the-blank-choice', tileTarget, (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver({ shallow: true }),\n dragItem: monitor.getItem(),\n}))(connectedBlankContent);\n\nexport const tileSource = {\n canDrag(props) {\n return !props.disabled && !!props.value;\n },\n beginDrag(props) {\n return {\n id: props.targetId,\n value: props.value,\n instanceId: props.instanceId,\n fromChoice: true,\n };\n },\n endDrag(props, monitor) {\n // this will be null if it did not drop\n const dropResult = monitor.getDropResult();\n\n if (!dropResult || (dropResult.dropped && !props.duplicates)) {\n const draggedItem = monitor.getItem();\n\n if (draggedItem.fromChoice) {\n props.removeResponse(draggedItem.value);\n }\n }\n },\n};\n\nexport default DragSource('drag-in-the-blank-choice', tileSource, (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n isDragging: monitor.isDragging(),\n}))(DropTile);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport DragDropTile from './choice';\n\nexport const onValueChange = (nodeProps, n, value) => {\n const val = nodeProps.editor.value;\n const change = val.change();\n\n change.setNodeByKey(n.key, {\n data: {\n ...value,\n index: n.data.get('index'),\n },\n });\n\n nodeProps.editor.props.onChange(change, () => {\n nodeProps.editor.props.onEditingDone();\n });\n};\n\nexport const onRemoveResponse = (nodeProps, value) => {\n const val = nodeProps.editor.value;\n const change = val.change();\n const dragInTheBlank = val.document.findDescendant((n) => n.data && n.data.get('index') === value.index);\n\n change.setNodeByKey(dragInTheBlank.key, {\n data: {\n index: dragInTheBlank.data.get('index'),\n },\n });\n\n nodeProps.editor.props.onChange(change, () => {\n nodeProps.editor.props.onEditingDone();\n });\n};\n\nconst DragDrop = (props) => {\n const { attributes, data, n, nodeProps, opts } = props;\n const { inTable } = data;\n\n return (\n <span\n {...attributes}\n style={{\n display: 'inline-flex',\n minHeight: '50px',\n minWidth: '178px',\n position: 'relative',\n margin: inTable ? '10px' : '0 10px',\n cursor: 'pointer',\n }}\n >\n <DragDropTile\n n={n}\n dragKey={n.key}\n targetId=\"0\"\n value={data}\n duplicates={opts.options.duplicates}\n onChange={(value) => onValueChange(nodeProps, n, value)}\n removeResponse={(value) => onRemoveResponse(nodeProps, value)}\n >\n {nodeProps.children}\n </DragDropTile>\n </span>\n );\n};\n\nDragDrop.propTypes = {\n attributes: PropTypes.object,\n data: PropTypes.object,\n n: PropTypes.object,\n nodeProps: PropTypes.object,\n opts: PropTypes.object,\n};\n\nexport default DragDrop;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst ExplicitConstructedResponse = (props) => {\n const { attributes, value, error } = props;\n\n return (\n <span\n {...attributes}\n style={{\n display: 'inline-flex',\n visibility: props.isFocused ? 'hidden' : 'visible',\n minHeight: '55px',\n minWidth: '178px',\n position: 'relative',\n cursor: 'pointer',\n }}\n >\n <div\n style={{\n display: 'inline-flex',\n width: '100%',\n minHeight: '46px',\n height: '46px',\n backgroundColor: '#FFF',\n border: `1px solid ${error ? 'red' : '#C0C3CF'}`,\n boxSizing: 'border-box',\n borderRadius: '4px',\n overflow: 'hidden',\n padding: '12px 21px',\n marginLeft: '4px',\n }}\n dangerouslySetInnerHTML={{\n __html: value || '<div>&nbsp;</div>',\n }}\n />\n </span>\n );\n};\n\nExplicitConstructedResponse.propTypes = {\n attributes: PropTypes.object,\n error: PropTypes.any,\n value: PropTypes.string,\n isFocused: PropTypes.bool,\n};\n\nexport default ExplicitConstructedResponse;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { mq } from '@pie-lib/math-input';\n\nconst MathTemplated = ({ attributes, value, classes, keyToDisplay }) => (\n <span {...attributes} className={classes.spanContainer}>\n <div className={classes.responseBox}>{keyToDisplay}</div>\n <div className={classes.mathBlock}>\n <mq.Static latex={value} />\n </div>\n </span>\n);\n\nMathTemplated.propTypes = {\n attributes: PropTypes.object,\n classes: PropTypes.object.isRequired,\n value: PropTypes.string,\n keyToDisplay: PropTypes.string,\n};\n\nconst styles = (theme) => ({\n responseBox: {\n background: theme.palette.grey['A100'],\n color: theme.palette.grey['A700'],\n display: 'inline-flex',\n borderRight: '2px solid #C0C3CF',\n boxSizing: 'border-box',\n overflow: 'hidden',\n fontSize: '12px',\n minHeight: '36px',\n height: '100%',\n alignItems: 'center',\n fontFamily: 'Symbola, Times New Roman, serif',\n padding: '0 2px',\n },\n spanContainer: {\n display: 'inline-flex',\n border: '1px solid #C0C3CF',\n margin: '1px 5px',\n cursor: 'pointer',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: '50px',\n minHeight: '36px',\n height: 'fit-content',\n },\n mathBlock: {\n flex: 8,\n color: 'var(--pie-text, black)',\n padding: '4px !important',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'var(--pie-background, rgba(255, 255, 255, 0))',\n '& > .mq-math-mode sup.mq-nthroot': {\n fontSize: '70% !important',\n verticalAlign: '1em !important',\n },\n '& > .mq-math-mode .mq-sqrt-stem': {\n borderTop: '0.07em solid',\n marginLeft: '-1.5px',\n marginTop: '-2px !important',\n paddingTop: '5px !important',\n },\n '& .mq-overarrow-inner': {\n paddingTop: '0 !important',\n border: 'none !important',\n },\n '& .mq-overarrow.mq-arrow-both': {\n marginTop: '0px',\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important',\n },\n '&:before': {\n top: '-0.4em',\n left: '-1px',\n },\n '&:after': {\n top: '0px !important',\n position: 'absolute !important',\n right: '-2px',\n },\n '&.mq-empty:after': {\n top: '-0.45em',\n },\n },\n '& .mq-overarrow.mq-arrow-right': {\n '&:before': {\n top: '-0.4em',\n right: '-1px',\n },\n },\n '& .mq-overarrow-inner-right': {\n display: 'none !important',\n },\n '& .mq-overarrow-inner-left': {\n display: 'none !important',\n },\n },\n});\n\nexport default withStyles(styles)(MathTemplated);\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Inline } from 'slate';\nimport Snackbar from '@material-ui/core/Snackbar';\n\nexport const isNumber = (val) => !isNaN(parseFloat(val)) && isFinite(val);\n\nexport const insertSnackBar = (message) => {\n const prevSnacks = document.querySelectorAll('.response-area-alert');\n\n prevSnacks.forEach((s) => s.remove());\n\n const newEl = document.createElement('div');\n\n newEl.className = 'response-area-alert';\n\n const el = (\n <Snackbar\n anchorOrigin={{ vertical: 'top', horizontal: 'center' }}\n open={true}\n ContentProps={{\n 'aria-describedby': 'message-id',\n }}\n message={<span id=\"message-id\">{message}</span>}\n />\n );\n\n ReactDOM.render(el, newEl);\n\n document.body.appendChild(newEl);\n\n setTimeout(() => {\n newEl.remove();\n }, 2000);\n};\n\nexport const defaultECR = (index) =>\n Inline.create({\n type: 'explicit_constructed_response',\n isVoid: true,\n data: {\n index,\n },\n });\nexport const defaultMT = (index) =>\n Inline.create({\n type: 'math_templated',\n isVoid: true,\n data: {\n index,\n },\n });\n\nexport const defaultDIB = (opts, index) =>\n Inline.create({\n type: 'drag_in_the_blank',\n isVoid: true,\n data: {\n index,\n duplicates: opts.options.duplicates,\n value: null,\n },\n });\n\nexport const defaultIDD = (index) =>\n Inline.create({\n object: 'inline',\n type: 'inline_dropdown',\n isVoid: true,\n data: {\n index,\n },\n });\n\nexport const getDefaultElement = (opts, index) => {\n switch (opts.type) {\n case 'explicit-constructed-response':\n return defaultECR(index);\n\n case 'math-templated':\n return defaultMT(index);\n\n case 'drag-in-the-blank':\n return defaultDIB(opts, index);\n\n default:\n // inline-dropdown\n return defaultIDD(index);\n }\n};\n","import React from 'react';\nimport debug from 'debug';\nimport isUndefined from 'lodash/isUndefined';\n\nimport InlineDropdown from './inline-dropdown';\nimport DragInTheBlank from './drag-in-the-blank';\nimport ExplicitConstructedResponse from './explicit-constructed-response';\nimport MathTemplated from './math-templated';\nimport { getDefaultElement } from './utils';\nimport { ToolbarIcon } from './icons';\n\nconst log = debug('@pie-lib:editable-html:plugins:respArea');\n\nconst lastIndexMap = {};\nconst elTypesMap = {\n 'inline-dropdown': 'inline_dropdown',\n 'explicit-constructed-response': 'explicit_constructed_response',\n 'math-templated': 'math_templated',\n 'drag-in-the-blank': 'drag_in_the_blank',\n};\nconst elTypesArray = Object.values(elTypesMap);\n\nexport default function ResponseAreaPlugin(opts) {\n const isOfCurrentType = (d) => d.type === opts.type || d.type === elTypesMap[opts.type];\n\n const toolbar = {\n icon: <ToolbarIcon />,\n buttonStyles: {\n margin: '0 20px 0 auto',\n },\n onClick: (value, onChange) => {\n log('[toolbar] onClick');\n const change = value.change();\n const currentRespAreaList = change.value.document.filterDescendants(isOfCurrentType);\n\n if (currentRespAreaList.size >= opts.maxResponseAreas) {\n return;\n }\n\n const type = opts.type.replace(/-/g, '_');\n const prevIndex = lastIndexMap[type];\n const newIndex = prevIndex === 0 ? prevIndex : prevIndex + 1;\n const newInline = getDefaultElement(opts, newIndex);\n\n lastIndexMap[type] += 1;\n\n if (newInline) {\n if (change.value.selection.startKey || change.value.selection.endKey) {\n change.insertInline(newInline);\n } else {\n // If the markup is empty and there's no focus\n const lastText = value.document.getLastText();\n\n if (!lastText) {\n return;\n }\n const parentNode = value.document.getParent(lastText.key);\n\n if (parentNode) {\n const index = parentNode.nodes.indexOf(lastText.key);\n\n if (parentNode.isVoid) return;\n\n change.insertNodeByKey(parentNode.key, index + 1, newInline);\n }\n }\n\n if (newInline.type === 'drag_in_the_blank') {\n const nextText = change.value.document.getNextText(newInline.key);\n\n if (nextText) {\n change.moveFocusTo(nextText.key, 0).moveAnchorTo(nextText.key, 0);\n }\n }\n if (newInline.type === 'math_templated') {\n const nextText = change.value.document.getNextText(newInline.key);\n\n if (nextText) {\n change.moveFocusTo(nextText.key, 0).moveAnchorTo(nextText.key, 0);\n }\n }\n\n onChange(change);\n }\n },\n customToolbar: opts.respAreaToolbar,\n supports: (node) => node.object === 'inline' && elTypesArray.indexOf(node.type) >= 0,\n showDone: false,\n };\n\n return {\n name: 'response_area',\n toolbar,\n filterPlugins: (node, plugins) => {\n if (\n node.type === 'explicit_constructed_response' ||\n node.type === 'math_templated' ||\n node.type === 'drag_in_the_blank'\n ) {\n return [];\n }\n\n return plugins.filter((p) => p.name !== 'response_area');\n },\n deleteNode: (e, node, value, onChange) => {\n e.preventDefault();\n\n const change = value.change().removeNodeByKey(node.key);\n\n onChange(change);\n },\n renderNode(props) {\n const { attributes, node: n, isFocused } = props;\n\n if (n.type === 'explicit_constructed_response') {\n const data = n.data.toJSON();\n let error;\n\n if (opts.error) {\n error = opts.error();\n }\n\n return (\n <ExplicitConstructedResponse\n attributes={attributes}\n isFocused={isFocused}\n value={data.value}\n error={error && error[data.index] && error[data.index][0]}\n />\n );\n }\n\n if (n.type === 'math_templated') {\n const data = n.data.toJSON();\n let error;\n\n if (opts.error) {\n error = opts.error();\n }\n\n // add 1 to index to display R 1 instead of R 0\n const keyToDisplay = `R ${parseInt(data.index) + 1}`;\n\n return (\n <MathTemplated\n attributes={attributes}\n keyToDisplay={keyToDisplay}\n value={data.value || ''}\n error={error && error[data.index] && error[data.index][0]}\n />\n );\n }\n\n if (n.type === 'drag_in_the_blank') {\n const data = n.data.toJSON();\n\n return <DragInTheBlank attributes={attributes} data={data} n={n} nodeProps={props} opts={opts} />;\n }\n\n if (n.type === 'inline_dropdown') {\n const data = n.data.toJSON();\n\n return <InlineDropdown attributes={attributes} selectedItem={data.value} />;\n }\n },\n onChange(change, editor) {\n const type = opts.type.replace(/-/g, '_');\n\n if (isUndefined(lastIndexMap[type])) {\n lastIndexMap[type] = 0;\n\n change.value.document.forEachDescendant((d) => {\n if (d.type === type) {\n const newIndex = parseInt(d.data.get('index'), 10);\n\n if (newIndex > lastIndexMap[type]) {\n lastIndexMap[type] = newIndex;\n }\n }\n });\n }\n\n if (!editor.value) {\n return;\n }\n\n const currentRespAreaList = change.value.document.filterDescendants(isOfCurrentType);\n const oldRespAreaList = editor.value.document.filterDescendants(isOfCurrentType);\n\n toolbar.disabled = currentRespAreaList.size >= opts.maxResponseAreas;\n\n const arrayToFilter = oldRespAreaList.size > currentRespAreaList.size ? oldRespAreaList : currentRespAreaList;\n const arrayToUseForFilter = arrayToFilter === oldRespAreaList ? currentRespAreaList : oldRespAreaList;\n\n const elementsWithChangedStatus = arrayToFilter.filter(\n (d) => !arrayToUseForFilter.find((e) => e.data.get('index') === d.data.get('index')),\n );\n\n if (elementsWithChangedStatus.size && oldRespAreaList.size > currentRespAreaList.size) {\n opts.onHandleAreaChange(elementsWithChangedStatus);\n }\n },\n onDrop(event, change, editor) {\n const closestEl = event.target.closest('[data-key]');\n const inline = editor.value.document.findDescendant((d) => d.key === closestEl.dataset.key);\n\n if (inline.type === 'drag_in_the_blank') {\n return false;\n }\n },\n };\n}\n\nexport const serialization = {\n deserialize(el) {\n const type = el.dataset && el.dataset.type;\n\n switch (type) {\n case 'inline_dropdown':\n return {\n object: 'inline',\n type: 'inline_dropdown',\n isVoid: true,\n data: {\n index: el.dataset.index,\n value: el.dataset.value,\n },\n };\n case 'explicit_constructed_response':\n return {\n object: 'inline',\n type: 'explicit_constructed_response',\n isVoid: true,\n data: {\n index: el.dataset.index,\n value: el.dataset.value,\n },\n };\n case 'math_templated':\n return {\n object: 'inline',\n type: 'math_templated',\n isVoid: true,\n data: {\n index: el.dataset.index,\n value: el.dataset.value,\n },\n };\n case 'drag_in_the_blank':\n return {\n object: 'inline',\n type: 'drag_in_the_blank',\n isVoid: true,\n data: {\n index: el.dataset.index,\n id: el.dataset.id,\n value: el.dataset.value,\n inTable: el.dataset.inTable,\n },\n };\n }\n },\n serialize(object) {\n if (object.object !== 'inline') {\n return;\n }\n\n switch (object.type) {\n case 'inline_dropdown': {\n const data = object.data.toJSON();\n\n return <span data-type=\"inline_dropdown\" data-index={data.index} data-value={data.value} />;\n }\n case 'explicit_constructed_response': {\n const data = object.data.toJSON();\n\n return <span data-type=\"explicit_constructed_response\" data-index={data.index} data-value={data.value} />;\n }\n case 'math_templated': {\n const data = object.data.toJSON();\n\n return <span data-type=\"math_templated\" data-index={data.index} data-value={data.value} />;\n }\n case 'drag_in_the_blank': {\n const data = object.data.toJSON();\n\n return (\n <span\n data-type=\"drag_in_the_blank\"\n data-index={data.index}\n data-id={data.id}\n data-value={data.value}\n data-in-table={data.inTable}\n />\n );\n }\n }\n },\n};\n","import Html from 'slate-html-serializer';\nimport React from 'react';\nimport debug from 'debug';\nimport { object as toStyleObject } from 'to-style';\nimport isEmpty from 'lodash/isEmpty';\n\nimport { serialization as imgSerialization } from './plugins/image';\nimport { serialization as mathSerialization } from './plugins/math';\nimport { serialization as mediaSerialization } from './plugins/media';\nimport { serialization as listSerialization } from './plugins/list';\nimport { serialization as tableSerialization } from './plugins/table';\nimport { serialization as responseAreaSerialization } from './plugins/respArea';\nimport { Mark, Value } from 'slate';\nimport { BLOCK_TAGS } from './block-tags';\n\nconst log = debug('@pie-lib:editable-html:serialization');\n\n/**\n * Tags to marks.\n *\n * @type {Object}\n */\n\nconst MARK_TAGS = {\n b: 'bold',\n em: 'italic',\n u: 'underline',\n s: 'strikethrough',\n code: 'code',\n strong: 'bold',\n blockquote: 'blockquote',\n h3: 'h3',\n sup: 'sup',\n sub: 'sub',\n};\n\nexport const parseStyleString = (s) => {\n const regex = /([\\w-]*)\\s*:\\s*([^;]*)/g;\n let match;\n const result = {};\n while ((match = regex.exec(s))) {\n result[match[1]] = match[2].trim();\n }\n return result;\n};\n\nexport const getBase64 = (file) => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result);\n reader.onerror = (error) => reject(error);\n });\n};\n\nexport const reactAttributes = (o) => toStyleObject(o, { camelize: true, addUnits: false });\n\nconst attributesToMap = (el) => (acc, attribute) => {\n const value = el.getAttribute(attribute);\n if (value) {\n if (attribute === 'style') {\n const styleString = el.getAttribute(attribute);\n const reactStyleObject = reactAttributes(parseStyleString(styleString));\n acc['style'] = reactStyleObject;\n } else {\n acc[attribute] = el.getAttribute(attribute);\n }\n }\n return acc;\n};\n\nconst attributes = ['border', 'cellpadding', 'cellspacing', 'class', 'style', 'align'];\n\n/**\n * Serializer rules.\n *\n * @type {Array}\n */\n\nconst blocks = {\n deserialize(el, next) {\n log('[blocks:deserialize] block: ', el);\n const block = BLOCK_TAGS[el.tagName.toLowerCase()];\n if (!block) return;\n log('[blocks:deserialize] block: ', block);\n\n if (el.childNodes.length === 1) {\n const cn = el.childNodes[0];\n if (cn && cn.tagName && cn.tagName.toLowerCase() === block) {\n log('[we have a child node of the same]...');\n return;\n }\n }\n\n return {\n object: 'block',\n type: block,\n /**\n * Here for rendering styles for all block elements\n */\n data: { attributes: attributes.reduce(attributesToMap(el), {}) },\n nodes: next(el.childNodes),\n };\n },\n serialize: (object, children) => {\n if (object.object !== 'block') return;\n\n const jsonData = object.data.toJSON();\n\n log('[blocks:serialize] object: ', object, children);\n let key;\n\n for (key in BLOCK_TAGS) {\n if (BLOCK_TAGS[key] === object.type) {\n const Tag = key;\n\n return <Tag {...jsonData.attributes}>{children}</Tag>;\n }\n }\n },\n};\n\nexport const INLINE_TAGS = {\n span: 'span',\n};\n\nconst inlines = {\n deserialize(el, next) {\n log('[inlines:deserialize] inline: ', el);\n const inlineTag = INLINE_TAGS[el.tagName.toLowerCase()];\n if (!inlineTag) return;\n log('[inlines:deserialize] inline: ', inlineTag);\n\n if (el.childNodes.length === 1) {\n const cn = el.childNodes[0];\n if (cn && cn.tagName && cn.tagName.toLowerCase() === inlineTag) {\n log('[we have a child node of the same]...');\n return;\n }\n }\n\n return {\n object: 'inline',\n type: inlineTag,\n /**\n * Here for rendering styles for all inline elements\n */\n data: { attributes: attributes.reduce(attributesToMap(el), {}) },\n nodes: next(el.childNodes),\n };\n },\n serialize: (object, children) => {\n if (object.object !== 'inline') return;\n\n const jsonData = object.data.toJSON();\n\n log('[inlines:serialize] object: ', object, children);\n let key;\n\n for (key in INLINE_TAGS) {\n if (INLINE_TAGS[key] === object.type) {\n const Tag = key;\n\n return <Tag {...jsonData.attributes}>{children}</Tag>;\n }\n }\n },\n};\n\nexport const extraCSSRulesOpts = {};\n\nconst STYLES_MAP = {\n h3: {\n fontSize: 'inherit',\n fontWeight: 'inherit',\n },\n blockquote: {\n background: '#f9f9f9',\n borderLeft: '5px solid #ccc',\n margin: '1.5em 10px',\n padding: '.5em 10px',\n },\n};\n\nconst reactToHTMLAttributesMap = {\n class: 'className',\n};\n\nconst marks = {\n deserialize(el, next) {\n const mark = MARK_TAGS[el.tagName.toLowerCase()];\n const elClasses = el.getAttribute('class') || '';\n const hasCSSRule = (extraCSSRulesOpts?.names || []).find((name) => elClasses?.includes(name));\n\n if (!mark && !hasCSSRule) {\n return;\n }\n\n log('[deserialize] mark: ', mark);\n const attrs = attributes.reduce(attributesToMap(el), {});\n const data = isEmpty(attrs) ? undefined : { attributes: attrs };\n\n return {\n object: 'mark',\n type: hasCSSRule ? 'css' : mark,\n /**\n * Here for rendering styles for all elements\n */\n data,\n nodes: next(el.childNodes),\n };\n },\n serialize(object, children) {\n const jsonData = object.data?.toJSON() || {};\n const elClasses = jsonData.attributes?.class || '';\n const hasCSSRule = (extraCSSRulesOpts?.names || []).find((name) => elClasses?.includes(name));\n\n if (hasCSSRule) {\n const htmlAttrs = Object.keys(jsonData.attributes).reduce((obj, key) => {\n obj[reactToHTMLAttributesMap[key] || key] = jsonData.attributes[key];\n return obj;\n }, {});\n\n return <span {...htmlAttrs}>{children}</span>;\n }\n\n if (Mark.isMark(object)) {\n for (var key in MARK_TAGS) {\n if (MARK_TAGS[key] === object.type) {\n const Tag = key;\n const additionalStyles = STYLES_MAP[Tag];\n\n if (additionalStyles) {\n if (!jsonData.attributes) {\n jsonData.attributes = {};\n }\n\n jsonData.attributes.style = {\n ...jsonData.attributes.style,\n ...additionalStyles,\n };\n }\n\n return <Tag {...jsonData.attributes}>{children}</Tag>;\n }\n }\n }\n },\n};\n\n// eslint-disable-next-line no-unused-vars\nconst findPreviousText = (el) => {\n if (el.nodeName === '#text') {\n return el;\n }\n\n if (el.previousSibling) {\n return findPreviousText(el.previousSibling);\n }\n\n return null;\n};\n\nexport const TEXT_RULE = {\n deserialize(el) {\n /**\n * This needs to be called on the dom element in order to merge the adjacent text nodes together\n * */\n el.normalize();\n\n if (el.tagName && el.tagName.toLowerCase() === 'br') {\n return {\n object: 'text',\n leaves: [\n {\n object: 'leaf',\n text: '\\n',\n },\n ],\n };\n }\n\n if (el.nodeName === '#text') {\n if (el.nodeValue && el.nodeValue.match(/<!--.*?-->/)) return;\n\n log('[text:deserialize] return text object..');\n return {\n object: 'text',\n leaves: [\n {\n object: 'leaf',\n text: el.nodeValue,\n },\n ],\n };\n }\n },\n\n serialize(obj, children) {\n if (obj.object === 'string') {\n return children.split('\\n').reduce((array, text, i) => {\n if (i !== 0) array.push(<br />);\n array.push(text);\n return array;\n }, []);\n }\n },\n};\n\nconst RULES = [\n listSerialization,\n mathSerialization,\n mediaSerialization,\n imgSerialization,\n tableSerialization,\n responseAreaSerialization,\n TEXT_RULE,\n inlines,\n blocks,\n marks,\n];\n\nfunction allWhitespace(node) {\n // Use ECMA-262 Edition 3 String and RegExp features\n return !/[^\\t\\n\\r ]/.test(node.textContent);\n}\n\nfunction defaultParseHtml(html) {\n if (typeof DOMParser === 'undefined') {\n throw new Error(\n 'The native `DOMParser` global which the `Html` serializer uses by default is not present in this environment. You must supply the `options.parseHtml` function instead.',\n );\n }\n\n const parsed = new DOMParser().parseFromString(html, 'text/html');\n\n const { body } = parsed;\n var textNodes = document.createTreeWalker(body, NodeFilter.SHOW_TEXT, null, null);\n var n = textNodes.nextNode();\n\n while (n) {\n const isWhiteSpace = allWhitespace(n);\n const isNotNearMarkup =\n !MARK_TAGS[n.nextSibling?.tagName?.toLowerCase()] && !MARK_TAGS[n.previousSibling?.tagName?.toLowerCase()];\n\n if ((isWhiteSpace && isNotNearMarkup) || n.nodeValue === '\\u200B') {\n n.parentNode.removeChild(n);\n }\n n = textNodes.nextNode();\n }\n\n return body;\n}\n\n/** If this lib is used on the server side, we need to bypass using the DOMParser - just put in a stub. */\nconst parseHtml =\n typeof window === 'undefined'\n ? () => ({\n childNodes: [],\n })\n : defaultParseHtml;\n\nconst serializer = new Html({\n defaultBlock: 'div',\n rules: RULES,\n parseHtml,\n});\n\nconst _extends =\n Object.assign ||\n function(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n/**\n * This is needed in order to override the function that eventually leads\n * to the max iteration of 12, which in most cases it's not enough. The newer versions\n * have a different way to calculate this, but updating to a newer version of slate\n * requires a lot of work fixing other issues. So we just increase the rules by 1000,\n * which means a lot of iterations.\n * Below is the code that calculates the max iterations.\n * var max = schema.stack.plugins.length + schema.rules.length + 1;\n */\nserializer.deserialize = function deserialize(html) {\n const options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const _options$toJSON = options.toJSON;\n const toJSON = _options$toJSON === undefined ? false : _options$toJSON;\n const defaultBlock = this.defaultBlock;\n const parseHtml = this.parseHtml;\n\n const fragment = parseHtml(html);\n const children = Array.from(fragment.childNodes);\n let nodes = this.deserializeElements(children);\n\n // COMPAT: ensure that all top-level inline nodes are wrapped into a block.\n nodes = nodes.reduce(function(memo, node, i, original) {\n if (node.object === 'block') {\n memo.push(node);\n return memo;\n }\n\n if (i > 0 && original[i - 1].object !== 'block') {\n const _block = memo[memo.length - 1];\n\n _block.nodes.push(node);\n return memo;\n }\n\n const block = _extends({ object: 'block', data: {}, isVoid: false }, defaultBlock, {\n nodes: [node],\n });\n\n memo.push(block);\n return memo;\n }, []);\n\n if (nodes.length === 0) {\n nodes = [\n _extends({ object: 'block', data: {}, isVoid: false }, defaultBlock, {\n nodes: [{ object: 'text', leaves: [{ object: 'leaf', text: '', marks: [] }] }],\n }),\n ];\n }\n\n const json = {\n object: 'value',\n document: {\n object: 'document',\n data: {},\n nodes: nodes,\n },\n schema: {\n rules: [],\n },\n };\n\n let i;\n\n for (i = 0; i < 3000; i++) {\n json.schema.rules.push({\n match: { object: 'document' },\n nodes: [{ match: { object: 'block' } }],\n });\n }\n\n const ret = toJSON ? json : Value.fromJSON(json);\n\n if (ret) {\n return ret;\n }\n\n return null;\n};\n\nexport const reduceMultipleBrs = (markup) => {\n try {\n return markup.replace(/(<br\\s*\\/?>){3,}/gi, '<br>');\n } catch (e) {\n // eslint-disable-next-line no-console\n console.log(\"Couldn't remove <br/> tags: \", e);\n }\n\n return markup;\n};\n\nconst reduceRedundantNewLineCharacters = (markup) => {\n try {\n return markup.replace(/\\n/gi, '');\n } catch (e) {\n // eslint-disable-next-line no-console\n console.log(\"Couldn't remove <br/> tags: \", e);\n }\n\n return markup;\n};\n\n/**\n * Makes sure that the html provided respects the schema\n * rules for the slate editor.\n * @param markup\n * @returns {string}\n */\nconst fixHtmlCode = (markup) => {\n const wrapperEl = document.createElement('div');\n\n wrapperEl.innerHTML = markup;\n\n /**\n * DIV elements that are at the same level as paragraphs\n * are replaced with P elements for normalizing purposes\n * @param child\n */\n const fixParagraphs = (child) => {\n const p = document.createElement('p');\n\n p.innerHTML = child.innerHTML;\n\n Array.from(child.attributes).forEach((attr) => {\n p.setAttribute(attr.name, attr.value);\n });\n child.replaceWith(p);\n };\n\n /**\n * @summary Makes sure that tables are placed in the root document.\n * @description This function removes the tables from the nodes that are\n * placed inside the root element and places them exactly near\n * the parent element.\n * @param tableArray\n */\n const fixTables = (tableArray) => {\n tableArray.forEach((el) => {\n const { index, child, parent } = el;\n const nodesBefore = [];\n const nodesAfter = [];\n const allNodes = Array.from(parent.childNodes);\n let i;\n\n for (i = 0; i < allNodes.length; i++) {\n const node = allNodes[i];\n\n if (i < index) {\n nodesBefore.push(node);\n } else if (i > index) {\n nodesAfter.push(node);\n }\n }\n\n // creating the element that is going to be placed instead of the parent\n const beforeEl = document.createElement(parent.nodeName);\n\n beforeEl.append(...nodesBefore);\n\n // replacing parent with the beforeElement\n parent.replaceWith(beforeEl);\n\n // adding the table right after the before element\n beforeEl.after(child);\n\n // creating the element that is going to be placed after the table\n const afterEl = document.createElement(parent.nodeName);\n\n afterEl.append(...nodesAfter);\n\n // adding the after element near the table\n child.after(afterEl);\n });\n };\n\n const emptyBlockCheck = (node) =>\n (node.nodeName === 'DIV' || node.nodeName === 'P' || node.nodeName === 'LI') && node.childNodes.length === 0;\n\n const parseNode = (el) => {\n const childArray = Array.from(el.childNodes);\n const hasParagraphs = childArray.find((child) => child.nodeName === 'P');\n const tables = [];\n\n childArray.forEach((child, index) => {\n // removing empty blocks\n if (emptyBlockCheck(child)) {\n child.remove();\n return;\n }\n\n if (hasParagraphs && child.nodeName === 'DIV') {\n fixParagraphs(child);\n }\n\n if (wrapperEl !== el && child.nodeName === 'TABLE') {\n // we don't need to fix tables in the root element\n tables.push({\n index,\n child,\n parent: el,\n });\n }\n\n parseNode(child);\n });\n\n if (tables.length) {\n fixTables(tables);\n }\n };\n\n parseNode(wrapperEl);\n\n return wrapperEl.innerHTML;\n};\n\nexport const handleHtml = (html) => fixHtmlCode(reduceRedundantNewLineCharacters(reduceMultipleBrs(html)));\n\nexport const htmlToValue = (html) => {\n try {\n return serializer.deserialize(handleHtml(html));\n } catch (e) {\n // eslint-disable-next-line no-console\n console.log(\"Couldn't parse html: \", e);\n return {};\n }\n};\n\nexport const valueToHtml = (value) => serializer.serialize(value);\n\n/**\n *\n * <div><div>a</div></div> -> <div>a</div>\n *\n * <div><div>a</div><div>b</div></div> -> <div>a</div><div>b</div>\n * <div><div>a</div>4444<div>b</div></div> -> <div>a</div>4444<div>b</div>\n */\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n d: \"M15.6 10.79c.97-.67 1.65-1.77 1.65-2.79 0-2.26-1.75-4-4-4H7v14h7.04c2.09 0 3.71-1.7 3.71-3.79 0-1.52-.86-2.82-2.15-3.42zM10 6.5h3c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-3v-3zm3.5 9H10v-3h3.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5z\"\n}), _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n})), 'FormatBold');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n d: \"M6 17h3l2-4V7H5v6h3zm8 0h3l2-4V7h-6v6h3z\"\n}), _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n})), 'FormatQuote');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n d: \"M4 10.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-6c-.83 0-1.5.67-1.5 1.5S3.17 7.5 4 7.5 5.5 6.83 5.5 6 4.83 4.5 4 4.5zm0 12c-.83 0-1.5.68-1.5 1.5s.68 1.5 1.5 1.5 1.5-.68 1.5-1.5-.67-1.5-1.5-1.5zM7 19h14v-2H7v2zm0-6h14v-2H7v2zm0-8v2h14V5H7z\"\n}), _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0V0z\"\n})), 'FormatListBulleted');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n d: \"M2 17h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1 3h1.8L2 13.1v.9h3v-1H3.2L5 10.9V10H2v1zm5-6v2h14V5H7zm0 14h14v-2H7v2zm0-6h14v-2H7v2z\"\n}), _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n})), 'FormatListNumbered');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n}), _react.default.createElement(\"path\", {\n d: \"M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.6z\"\n})), 'Redo');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n}), _react.default.createElement(\"path\", {\n d: \"M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z\"\n})), 'Undo');\n\nexports.default = _default;","import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport Popper from '@material-ui/core/Popper';\nimport Typography from '@material-ui/core/Typography';\n\nconst styles = () => ({\n popover: {\n background: '#fff',\n padding: '10px',\n pointerEvents: 'none',\n zIndex: 99999,\n },\n paper: {\n padding: 20,\n height: 'auto',\n width: 'auto',\n },\n typography: {\n fontSize: 50,\n textAlign: 'center',\n },\n});\n\nconst CustomPopper = withStyles(styles)(({ classes, children, ...props }) => (\n <Popper\n id=\"mouse-over-popover\"\n open\n className={classes.popover}\n classes={{\n paper: classes.paper,\n }}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left',\n }}\n disableRestoreFocus\n disableAutoFocus\n {...props}\n >\n <Typography classes={{ root: classes.typography }}>{children}</Typography>\n </Popper>\n));\n\nexport default CustomPopper;\n","export const spanishConfig = {\n characters: [\n ['á', 'é', 'í', 'ó', 'ú'],\n ['Á', 'É', 'Í', 'Ó', 'Ú'],\n ['—', '«', '»', 'ñ', 'ü'],\n ['-', '¿', '¡', 'Ñ', 'Ü'],\n ],\n};\n\nexport const specialConfig = {\n hasPreview: true,\n characters: [\n [\n {\n unicode: 'U+00A2',\n description: 'CENT SIGN',\n write: '¢',\n label: '¢',\n },\n {\n unicode: 'U+00BF',\n description: 'INVERTED QUESTION MARK',\n write: '¿',\n label: '¿',\n },\n {\n unicode: 'U+00B4',\n description: 'ACUTE ACCENT',\n write: '´',\n label: '´',\n extraProps: { style: { gridRow: 'span 2' } },\n },\n {\n unicode: 'U+00E1',\n description: 'LATIN SMALL LETTER A WITH ACUTE',\n write: 'á',\n label: 'á',\n },\n {\n unicode: 'U+00E9',\n description: 'LATIN SMALL LETTER E WITH ACUTE',\n write: 'é',\n label: 'é',\n },\n {\n unicode: 'U+00ED',\n description: 'LATIN SMALL LETTER I WITH ACUTE',\n write: 'í',\n label: 'í',\n },\n {\n unicode: 'U+00F3',\n description: 'LATIN SMALL LETTER O WITH ACUTE',\n write: 'ó',\n label: 'ó',\n },\n {\n unicode: 'U+00FA',\n description: 'LATIN SMALL LETTER U WITH ACUTE',\n write: 'ú',\n label: 'ú',\n },\n {\n unicode: 'U+00F1',\n description: 'LATIN SMALL LETTER N WITH TILDE',\n write: 'ñ',\n label: 'ñ',\n },\n ],\n [\n {\n unicode: 'U+20AC',\n description: 'EURO SIGN',\n write: '€',\n label: '€',\n },\n {\n unicode: 'U+00A1',\n description: 'INVERTED EXCLAMATION MARK',\n write: '¡',\n label: '¡',\n },\n {\n unicode: 'U+00C1',\n description: 'LATIN CAPITAL LETTER A WITH ACUTE',\n write: 'Á',\n label: 'Á',\n },\n {\n unicode: 'U+00C9',\n description: 'LATIN CAPITAL LETTER E WITH ACUTE',\n write: 'É',\n label: 'É',\n },\n {\n unicode: 'U+00CD',\n description: 'LATIN CAPITAL LETTER I WITH ACUTE',\n write: 'Í',\n label: 'Í',\n },\n {\n unicode: 'U+00D3',\n description: 'LATIN CAPITAL LETTER O WITH ACUTE',\n write: 'Ó',\n label: 'Ó',\n },\n {\n unicode: 'U+00DA',\n description: 'LATIN CAPITAL LETTER U WITH ACUTE',\n write: 'Ú',\n label: 'Ú',\n },\n {\n unicode: 'U+00D1',\n description: 'LATIN CAPITAL LETTER N WITH TILDE',\n write: 'Ñ',\n label: 'Ñ',\n },\n ],\n [\n {\n unicode: 'U+00A3',\n description: 'POUND SIGN',\n write: '£',\n label: '£',\n },\n {\n unicode: 'U+00AB',\n description: 'LEFT-POINTING DOUBLE ANGLE QUOTATION MARK',\n write: '«',\n label: '«',\n },\n {\n unicode: 'U+005E',\n description: 'CIRCUMFLEX ACCENT',\n write: '^',\n label: '^',\n extraProps: { style: { gridRow: 'span 2' } },\n },\n {\n unicode: 'U+00E2',\n description: 'LATIN SMALL LETTER A WITH CIRCUMFLEX',\n write: 'â',\n label: 'â',\n },\n {\n unicode: 'U+00EA',\n description: 'LATIN SMALL LETTER E WITH CIRCUMFLEX',\n write: 'ê',\n label: 'ê',\n },\n {\n unicode: 'U+00EE',\n description: 'LATIN SMALL LETTER I WITH CIRCUMFLEX',\n write: 'î',\n label: 'î',\n },\n {\n unicode: 'U+00F4',\n description: 'LATIN SMALL LETTER O WITH CIRCUMFLEX',\n write: 'ô',\n label: 'ô',\n },\n {\n unicode: 'U+00FB',\n description: 'LATIN SMALL LETTER U WITH CIRCUMFLEX',\n write: 'û',\n label: 'û',\n },\n {\n unicode: 'U+00E7',\n description: 'LATIN SMALL LETTER C WITH CEDILLA',\n write: 'ç',\n label: 'ç',\n },\n ],\n [\n {\n unicode: 'U+00A5',\n description: 'YEN SIGN',\n write: '¥',\n label: '¥',\n },\n {\n unicode: 'U+00BB',\n description: 'RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK',\n write: '»',\n label: '»',\n },\n {\n unicode: 'U+00C2',\n description: 'LATIN CAPITAL LETTER A WITH CIRCUMFLEX',\n write: 'Â',\n label: 'Â',\n },\n {\n unicode: 'U+00CA',\n description: 'LATIN CAPITAL LETTER E WITH CIRCUMFLEX',\n write: 'Ê',\n label: 'Ê',\n },\n {\n unicode: 'U+00CE',\n description: 'LATIN CAPITAL LETTER I WITH CIRCUMFLEX',\n write: 'Î',\n label: 'Î',\n },\n {\n unicode: 'U+00D4',\n description: 'LATIN CAPITAL LETTER O WITH CIRCUMFLEX',\n write: 'Ô',\n label: 'Ô',\n },\n {\n unicode: 'U+00DB',\n description: 'LATIN CAPITAL LETTER U WITH CIRCUMFLEX',\n write: 'Û',\n label: 'Û',\n },\n {\n unicode: 'U+00C7',\n description: 'LATIN CAPITAL LETTER C WITH CEDILLA',\n write: 'Ç',\n label: 'Ç',\n },\n ],\n [\n {\n unicode: 'U+200A',\n description: 'HAIR SPACE',\n write: String.fromCodePoint('0x200A'),\n label: '&hairsp;',\n },\n {\n unicode: 'U+00A7',\n description: 'SECTION SIGN',\n write: '§',\n label: '§',\n },\n {\n unicode: 'U+00A8',\n description: 'DIAERESIS',\n write: '¨',\n label: '¨',\n extraProps: { style: { gridRow: 'span 2' } },\n },\n {\n unicode: 'U+00E4',\n description: 'LATIN SMALL LETTER A WITH DIAERESIS',\n write: 'ä',\n label: 'ä',\n },\n {\n unicode: 'U+00EB',\n description: 'LATIN SMALL LETTER E WITH DIAERESIS',\n write: 'ë',\n label: 'ë',\n },\n {\n unicode: 'U+00EF',\n description: 'LATIN SMALL LETTER I WITH DIAERESIS',\n write: 'ï',\n label: 'ï',\n },\n {\n unicode: 'U+00F6',\n description: 'LATIN SMALL LETTER O WITH DIAERESIS',\n write: 'ö',\n label: 'ö',\n },\n {\n unicode: 'U+00FC',\n description: 'LATIN SMALL LETTER U WITH DIAERESIS',\n write: 'ü',\n label: 'ü',\n },\n {\n unicode: 'U+00DF',\n description: 'LATIN SMALL LETTER SHARP S',\n write: 'ß',\n label: 'ß',\n },\n ],\n [\n {\n unicode: 'U+2009',\n description: 'THIN SPACE',\n write: String.fromCodePoint('0x2009'),\n label: '&thinsp;',\n },\n {\n unicode: 'U+2026',\n description: 'HORIZONTAL ELLIPSIS',\n write: '…',\n label: '…',\n },\n {\n unicode: 'U+00C4',\n description: 'LATIN CAPITAL LETTER A WITH DIAERESIS',\n write: 'Ä',\n label: 'Ä',\n },\n {\n unicode: 'U+00CB',\n description: 'LATIN CAPITAL LETTER E WITH DIAERESIS',\n write: 'Ë',\n label: 'Ë',\n },\n {\n unicode: 'U+00CF',\n description: 'LATIN CAPITAL LETTER I WITH DIAERESIS',\n write: 'Ï',\n label: 'Ï',\n },\n {\n unicode: 'U+00D6',\n description: 'LATIN CAPITAL LETTER O WITH DIAERESIS',\n write: 'Ö',\n label: 'Ö',\n },\n {\n unicode: 'U+00DC',\n description: 'LATIN CAPITAL LETTER U WITH DIAERESIS',\n write: 'Ü',\n label: 'Ü',\n },\n {\n unicode: 'U+2212',\n description: 'MINUS SIGN',\n write: '−',\n label: '−',\n },\n ],\n [\n {\n unicode: 'U+00A0',\n description: 'NO-BREAK SPACE',\n write: String.fromCodePoint('0x00A0'),\n label: '&nbsp;',\n },\n {\n unicode: 'U+2022',\n description: 'BULLET',\n write: '•',\n label: '•',\n },\n {\n unicode: 'U+0060',\n description: 'GRAVE ACCENT',\n write: '`',\n label: '`',\n extraProps: { style: { gridRow: 'span 2' } },\n },\n {\n unicode: 'U+00E0',\n description: 'LATIN SMALL LETTER A WITH GRAVE',\n write: 'à',\n label: 'à',\n },\n {\n unicode: 'U+00E8',\n description: 'LATIN SMALL LETTER E WITH GRAVE',\n write: 'è',\n label: 'è',\n },\n {\n unicode: 'U+00EC',\n description: 'LATIN SMALL LETTER I WITH GRAVE',\n write: 'ì',\n label: 'ì',\n },\n {\n unicode: 'U+00F2',\n description: 'LATIN SMALL LETTER O WITH GRAVE',\n write: 'ò',\n label: 'ò',\n },\n {\n unicode: 'U+00F9',\n description: 'LATIN SMALL LETTER U WITH GRAVE',\n write: 'ù',\n label: 'ù',\n },\n {\n unicode: 'U+2013',\n description: 'EN DASH',\n write: '–',\n label: '–',\n },\n ],\n [\n {\n unicode: 'U+2003',\n description: 'EM SPACE',\n write: String.fromCodePoint('0x2003'),\n label: '&emsp;',\n },\n {\n unicode: 'U+25E6',\n description: 'WHITE BULLET',\n write: '◦',\n label: '◦',\n },\n {\n unicode: 'U+00C0',\n description: 'LATIN CAPITAL LETTER A WITH GRAVE',\n write: 'À',\n label: 'À',\n },\n {\n unicode: 'U+00C8',\n description: 'LATIN CAPITAL LETTER E WITH GRAVE',\n write: 'È',\n label: 'È',\n },\n {\n unicode: 'U+00CC',\n description: 'LATIN CAPITAL LETTER I WITH GRAVE',\n write: 'Ì',\n label: 'Ì',\n },\n {\n unicode: 'U+00D2',\n description: 'LATIN CAPITAL LETTER O WITH GRAVE',\n write: 'Ò',\n label: 'Ò',\n },\n {\n unicode: 'U+00D9',\n description: 'LATIN CAPITAL LETTER U WITH GRAVE',\n write: 'Ù',\n label: 'Ù',\n },\n {\n unicode: 'U+2014',\n description: 'EM DASH',\n write: '—',\n label: '—',\n },\n ],\n ],\n};\n\nexport const characterIcons = {\n spanish: 'ñ',\n special: '€',\n};\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport debug from 'debug';\nimport get from 'lodash/get';\n\nimport { PureToolbar } from '@pie-lib/math-toolbar';\n\nimport CustomPopper from './custom-popper';\nimport { insertSnackBar } from '../respArea/utils';\nimport { characterIcons, spanishConfig, specialConfig } from './utils';\nimport PropTypes from 'prop-types';\n\nconst log = debug('@pie-lib:editable-html:plugins:characters');\n\nconst removePopOvers = () => {\n const prevPopOvers = document.querySelectorAll('#mouse-over-popover');\n\n log('[characters:removePopOvers]');\n prevPopOvers.forEach((s) => s.remove());\n};\n\nexport const removeDialogs = () => {\n const prevDialogs = document.querySelectorAll('.insert-character-dialog');\n\n log('[characters:removeDialogs]');\n prevDialogs.forEach((s) => s.remove());\n removePopOvers();\n};\n\nconst insertDialog = ({ editorDOM, value, callback, opts }) => {\n const newEl = document.createElement('div');\n\n log('[characters:insertDialog]');\n\n removeDialogs();\n\n newEl.className = 'insert-character-dialog';\n\n let configToUse;\n\n switch (true) {\n case opts.language === 'spanish':\n configToUse = spanishConfig;\n break;\n case opts.language === 'special':\n configToUse = specialConfig;\n break;\n default:\n configToUse = opts;\n }\n\n if (!configToUse.characters) {\n insertSnackBar('No characters provided or language not recognized');\n return;\n }\n\n const layoutForCharacters = configToUse.characters.reduce(\n (obj, arr) => {\n if (arr.length >= obj.columns) {\n obj.columns = arr.length;\n }\n\n return obj;\n },\n { rows: configToUse.characters.length, columns: 0 },\n );\n\n let popoverEl;\n\n const closePopOver = () => {\n if (popoverEl) {\n popoverEl.remove();\n }\n\n removePopOvers();\n };\n\n const renderPopOver = (event, el) => {\n if (!event) {\n return;\n }\n\n const infoStyle = { fontSize: '20px', lineHeight: '20px' };\n\n closePopOver();\n\n popoverEl = document.createElement('div');\n ReactDOM.render(\n <CustomPopper onClose={closePopOver} anchorEl={event.currentTarget}>\n <div>{el.label}</div>\n\n <div style={infoStyle}>{el.description}</div>\n\n <div style={infoStyle}>{el.unicode}</div>\n </CustomPopper>,\n popoverEl,\n );\n\n document.body.appendChild(newEl);\n };\n\n let firstCallMade = false;\n\n const listener = (e) => {\n // this will be triggered right after setting it because\n // this toolbar is added on the mousedown event\n // so right after mouseup, the click will be triggered\n if (firstCallMade) {\n const focusIsInModals = newEl.contains(e.target) || (popoverEl && popoverEl.contains(e.target));\n const focusIsInEditor = editorDOM.contains(e.target);\n\n if (!(focusIsInModals || focusIsInEditor)) {\n handleClose();\n }\n } else {\n firstCallMade = true;\n }\n };\n\n const handleClose = () => {\n callback(undefined, true);\n newEl.remove();\n closePopOver();\n document.body.removeEventListener('click', listener);\n };\n\n const handleChange = (val) => {\n if (typeof val === 'string') {\n callback(val, true);\n }\n };\n\n const el = (\n <PureToolbar\n keyPadCharacterRef={opts.keyPadCharacterRef}\n setKeypadInteraction={opts.setKeypadInteraction}\n autoFocus\n noDecimal\n hideInput\n noLatexHandling\n hideDoneButtonBackground\n layoutForKeyPad={layoutForCharacters}\n additionalKeys={configToUse.characters.reduce((arr, n) => {\n arr = [\n ...arr,\n ...n.map((k) => ({\n name: get(k, 'name') || k,\n write: get(k, 'write') || k,\n label: get(k, 'label') || k,\n category: 'character',\n extraClass: 'character',\n extraProps: {\n ...(k.extraProps || {}),\n style: {\n ...(k.extraProps || {}).style,\n border: '1px solid #000',\n },\n },\n ...(configToUse.hasPreview\n ? {\n actions: { onMouseEnter: (ev) => renderPopOver(ev, k), onMouseLeave: closePopOver },\n }\n : {}),\n })),\n ];\n\n return arr;\n }, [])}\n keypadMode=\"language\"\n onChange={handleChange}\n onDone={handleClose}\n />\n );\n\n ReactDOM.render(el, newEl, () => {\n const cursorItem = document.querySelector(`[data-key=\"${value.anchorKey}\"]`);\n\n if (cursorItem) {\n const bodyRect = document.body.getBoundingClientRect();\n const boundRect = cursorItem.getBoundingClientRect();\n\n document.body.appendChild(newEl);\n\n // when height of toolbar exceeds screen - can happen in scrollable contexts\n let additionalTopOffset = 0;\n if (boundRect.y < newEl.offsetHeight) {\n additionalTopOffset = newEl.offsetHeight - boundRect.y + 10;\n }\n\n newEl.style.maxWidth = '500px';\n newEl.style.position = 'absolute';\n newEl.style.top = `${boundRect.top + Math.abs(bodyRect.top) - newEl.offsetHeight - 10 + additionalTopOffset}px`;\n newEl.style.zIndex = 99999;\n\n const leftValue = `${boundRect.left + Math.abs(bodyRect.left) + cursorItem.offsetWidth + 10}px`;\n\n const rightValue = `${boundRect.x}px`;\n\n newEl.style.left = leftValue;\n\n const leftAlignedWidth = newEl.offsetWidth;\n\n newEl.style.left = 'unset';\n newEl.style.right = rightValue;\n\n const rightAlignedWidth = newEl.offsetWidth;\n\n newEl.style.left = 'unset';\n newEl.style.right = 'unset';\n\n if (leftAlignedWidth >= rightAlignedWidth) {\n newEl.style.left = leftValue;\n } else {\n newEl.style.right = rightValue;\n }\n\n document.body.addEventListener('click', listener);\n }\n });\n};\n\nconst CharacterIcon = ({ letter }) => (\n <div\n style={{\n fontSize: '24px',\n lineHeight: '24px',\n }}\n >\n {letter}\n </div>\n);\n\nCharacterIcon.propTypes = {\n letter: PropTypes.string,\n};\n\nexport default function CharactersPlugin(opts) {\n removeDialogs();\n\n return {\n name: 'characters',\n toolbar: {\n icon: <CharacterIcon letter={opts.characterIcon || characterIcons[opts.language] || 'ñ'} />,\n ariaLabel: `${opts.language} characters Toolbar`,\n onClick: (value, onChange, getFocusedValue) => {\n const editorDOM = document.querySelector(`[data-key=\"${value.document.key}\"]`);\n let valueToUse = value;\n\n const callback = (char, focus) => {\n if (getFocusedValue) {\n valueToUse = getFocusedValue() || valueToUse;\n }\n\n if (char) {\n const change = valueToUse.change().insertTextByKey(valueToUse.anchorKey, valueToUse.anchorOffset, char);\n\n valueToUse = change.value;\n log('[characters:insert]: ', value);\n onChange(change);\n }\n\n log('[characters:click]');\n\n if (focus) {\n if (editorDOM) {\n editorDOM.focus();\n }\n }\n };\n\n insertDialog({ editorDOM, value: valueToUse, callback, opts });\n },\n },\n\n pluginStyles: (node, parentNode, p) => {\n if (p) {\n return {\n position: 'absolute',\n top: 'initial',\n };\n }\n },\n };\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n}), _react.default.createElement(\"path\", {\n d: \"M10 4v3h2.21l-3.42 8H6v3h8v-3h-2.21l3.42-8H18V4z\"\n})), 'FormatItalic');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n}), _react.default.createElement(\"path\", {\n d: \"M10 19h4v-3h-4v3zM5 4v3h5v3h4V7h5V4H5zM3 14h18v-2H3v2z\"\n})), 'FormatStrikethrough');\n\nexports.default = _default;","export const MAIN_CONTAINER_CLASS = 'main-container';\nexport const PIE_TOOLBAR__CLASS = 'pie-toolbar';\n\nexport default {\n MAIN_CONTAINER_CLASS,\n PIE_TOOLBAR__CLASS,\n};\n","import React from 'react';\nimport { Change } from 'slate';\nimport Delete from '@material-ui/icons/Delete';\nimport IconButton from '@material-ui/core/IconButton';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport debug from 'debug';\nimport SlatePropTypes from 'slate-prop-types';\nimport debounce from 'lodash/debounce';\n\nimport { DoneButton } from './done-button';\n\nimport { findSingleNode, findParentNode } from '../utils';\nimport { withStyles } from '@material-ui/core/styles';\nimport DefaultToolbar from './default-toolbar';\nimport { removeDialogs as removeCharacterDialogs } from '../characters';\nimport { PIE_TOOLBAR__CLASS } from '../../constants';\n\nconst log = debug('@pie-lib:editable-html:plugins:toolbar');\n\nconst getCustomToolbar = (plugin, node, value, handleDone, getFocusedValue, onDataChange) => {\n if (!plugin) {\n return;\n }\n\n if (!plugin.toolbar) {\n return;\n }\n\n if (plugin.toolbar.CustomToolbarComp) {\n /**\n * Using a pre-defined Component should be preferred\n * as the rendering of it (and it's children) can be optimized by React.\n * If you keep re-defining the comp with an inline function\n * then react will have to re-render.\n */\n return plugin.toolbar.CustomToolbarComp;\n } else if (typeof plugin.toolbar.customToolbar === 'function') {\n log('deprecated - use CustomToolbarComp');\n return plugin.toolbar.customToolbar(node, value, handleDone, getFocusedValue, onDataChange);\n }\n};\n\nexport class Toolbar extends React.Component {\n static propTypes = {\n zIndex: PropTypes.number,\n value: SlatePropTypes.value.isRequired,\n plugins: PropTypes.array,\n plugin: PropTypes.object,\n onImageClick: PropTypes.func,\n onDone: PropTypes.func.isRequired,\n toolbarRef: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n isFocused: PropTypes.bool,\n autoWidth: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n getFocusedValue: PropTypes.func.isRequired,\n pluginProps: PropTypes.object,\n toolbarOpts: PropTypes.shape({\n position: PropTypes.oneOf(['bottom', 'top']),\n alignment: PropTypes.oneOf(['left', 'right']),\n alwaysVisible: PropTypes.bool,\n ref: PropTypes.func,\n showDone: PropTypes.bool,\n minWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n isHidden: PropTypes.bool,\n }),\n onDataChange: PropTypes.func,\n doneButtonRef: PropTypes.func,\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n change: null,\n };\n }\n\n componentWillUnmount() {\n removeCharacterDialogs();\n }\n\n hasMark = (type) => {\n const { value } = this.props;\n return value.marks.some((mark) => mark.type == type);\n };\n\n hasBlock = (type) => {\n const { value } = this.props;\n return value.blocks.some((node) => node.type == type);\n };\n\n onToggle = (plugin) => {\n const { value, onChange } = this.props;\n\n if (!plugin.onToggle) return;\n\n const change = plugin.onToggle(value.change());\n onChange(change);\n };\n\n onClick = (e) => {\n log('[onClick]');\n e.preventDefault();\n };\n\n onButtonClick = (fn) => {\n return (e) => {\n e.preventDefault();\n fn();\n };\n };\n\n onToolbarDone = (change, finishEditing) => {\n log('[onToolbarDone] change: ', change, 'finishEditing: ', finishEditing);\n const { onChange, onDone } = this.props;\n\n // use handler only if this is an actual Slate Change\n if (change instanceof Change) {\n onChange(change, () => {\n if (finishEditing) {\n onDone();\n }\n });\n } else {\n if (finishEditing) {\n log('[onToolbarChange] call onDone');\n onDone();\n }\n }\n };\n\n onDeleteClick = debounce((e, plugin, node, value, onChange) => plugin.deleteNode(e, node, value, onChange), 500);\n\n onDeleteMouseDown = (e, plugin, node, value, onChange) => {\n e.persist();\n this.onDeleteClick(e, plugin, node, value, onChange);\n };\n\n render() {\n const {\n classes,\n plugins,\n pluginProps,\n toolbarOpts,\n value,\n autoWidth,\n onChange,\n getFocusedValue,\n isFocused,\n onDone,\n toolbarRef,\n doneButtonRef,\n onBlur,\n onFocus,\n } = this.props;\n\n const node = findSingleNode(value);\n const parentNode = findParentNode(value, node);\n\n log(' --------------> [render] node: ', node);\n log('[render] node: ', node);\n\n const plugin = plugins.find((p) => {\n if (!node) {\n return;\n }\n\n if (p.toolbar) {\n return p.toolbar.supports && p.toolbar.supports(node, value);\n }\n });\n const parentPlugin = plugins.find((p) => {\n if (!parentNode) {\n return;\n }\n\n if (p.toolbar) {\n return p.toolbar.supports && p.toolbar.supports(parentNode, value);\n }\n });\n\n log('[render] plugin: ', plugin);\n\n const handleDone = (change, done) => {\n let handler = onDone;\n\n if (plugin && plugin.toolbar && plugin.toolbar.customToolbar) {\n handler = this.onToolbarDone;\n }\n\n handler(change, done);\n\n if (parentPlugin && parentPlugin.handleDone) {\n parentPlugin.handleDone(value, node, plugin, onChange);\n }\n };\n\n const handleDataChange = (key, data) => {\n this.props.onDataChange(key, data);\n };\n\n const CustomToolbar = getCustomToolbar(plugin, node, value, handleDone, getFocusedValue, this.props.onDataChange);\n\n const filteredPlugins = plugin && plugin.filterPlugins ? plugin.filterPlugins(node, plugins) : plugins;\n\n log('[render] CustomToolbar: ', CustomToolbar);\n const parentExtraStyles =\n parentPlugin && parentPlugin.pluginStyles ? parentPlugin.pluginStyles(node, parentNode, plugin) : {};\n const pluginExtraStyles = plugin && plugin.pluginStyles ? plugin.pluginStyles(node, parentNode, plugin) : {};\n const extraStyles = {\n ...pluginExtraStyles,\n ...parentExtraStyles,\n };\n\n const deletable = node && plugin && plugin.deleteNode;\n const customToolbarShowDone =\n node && plugin && plugin.toolbar && plugin.toolbar.showDone && !toolbarOpts.alwaysVisible;\n\n // If there is a toolbarOpts we check if the showDone is not equal to false\n const defaultToolbarShowDone = !toolbarOpts || toolbarOpts.showDone !== false;\n\n const hasDoneButton = defaultToolbarShowDone || customToolbarShowDone;\n\n const names = classNames(classes.toolbar, PIE_TOOLBAR__CLASS, {\n [classes.toolbarWithNoDone]: !hasDoneButton,\n [classes.toolbarTop]: toolbarOpts.position === 'top',\n [classes.toolbarRight]: toolbarOpts.alignment === 'right',\n [classes.focused]: toolbarOpts.alwaysVisible || isFocused,\n [classes.autoWidth]: autoWidth,\n [classes.fullWidth]: !autoWidth,\n [classes.hidden]: toolbarOpts.isHidden === true,\n });\n const customStyles = toolbarOpts.minWidth !== undefined ? { minWidth: toolbarOpts.minWidth } : {};\n\n return (\n <div className={names} style={{ ...extraStyles, ...customStyles }} onClick={this.onClick} ref={toolbarRef}>\n {CustomToolbar ? (\n <CustomToolbar\n node={node}\n value={value}\n getFocusedValue={getFocusedValue}\n onToolbarDone={this.onToolbarDone}\n onDataChange={handleDataChange}\n pluginProps={pluginProps}\n />\n ) : (\n <DefaultToolbar\n plugins={filteredPlugins}\n pluginProps={pluginProps}\n value={value}\n onChange={onChange}\n getFocusedValue={getFocusedValue}\n showDone={defaultToolbarShowDone}\n onDone={handleDone}\n deletable={deletable}\n isHtmlMode={toolbarOpts.isHtmlMode}\n onFocus={onFocus}\n doneButtonRef={doneButtonRef}\n onBlur={onBlur}\n />\n )}\n\n <div className={classes.shared}>\n {deletable && (\n <IconButton\n aria-label=\"Delete\"\n className={classes.iconRoot}\n onMouseDown={(e) => this.onDeleteMouseDown(e, plugin, node, value, onChange)}\n classes={{\n root: classes.iconRoot,\n }}\n >\n <Delete />\n </IconButton>\n )}\n {customToolbarShowDone && <DoneButton doneButtonRef={doneButtonRef} onClick={handleDone} />}\n </div>\n </div>\n );\n }\n}\n\nconst style = {\n toolbar: {\n position: 'absolute',\n zIndex: 10,\n cursor: 'pointer',\n justifyContent: 'space-between',\n background: 'var(--editable-html-toolbar-bg, #efefef)',\n minWidth: '280px',\n margin: '5px 0 0 0',\n padding: '2px',\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 boxSizing: 'border-box',\n display: 'flex',\n opacity: 0,\n pointerEvents: 'none',\n },\n toolbarWithNoDone: {\n minWidth: '265px',\n },\n toolbarTop: {\n top: '-45px',\n },\n toolbarRight: {\n right: 0,\n },\n fullWidth: {\n width: '100%',\n },\n hidden: {\n visibility: 'hidden',\n },\n autoWidth: {\n width: 'auto',\n },\n focused: {\n opacity: 1,\n pointerEvents: 'auto',\n },\n iconRoot: {\n width: '28px',\n height: '28px',\n padding: '4px',\n verticalAlign: 'top',\n },\n label: {\n color: 'var(--editable-html-toolbar-check, #00bb00)',\n },\n shared: {\n display: 'flex',\n },\n};\nexport default withStyles(style, { index: 1000 })(Toolbar);\n","export const primary = '#304ffe';\n","import React from 'react';\nimport Toolbar from './toolbar';\nimport classNames from 'classnames';\nimport debug from 'debug';\nimport { primary } from '../../theme';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nimport SlatePropTypes from 'slate-prop-types';\nimport { color } from '@pie-lib/render-ui';\n\nconst log = debug('@pie-lib:editable-html:plugins:toolbar:editor-and-toolbar');\n\nexport class EditorAndToolbar extends React.Component {\n static propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n value: SlatePropTypes.value.isRequired,\n plugins: PropTypes.array.isRequired,\n onChange: PropTypes.func.isRequired,\n getFocusedValue: PropTypes.func.isRequired,\n onDone: PropTypes.func.isRequired,\n onDataChange: PropTypes.func,\n toolbarRef: PropTypes.func,\n focusedNode: SlatePropTypes.node,\n readOnly: PropTypes.bool,\n disableScrollbar: PropTypes.bool,\n disableUnderline: PropTypes.bool,\n autoWidth: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n pluginProps: PropTypes.object,\n toolbarOpts: PropTypes.shape({\n position: PropTypes.oneOf(['bottom', 'top']),\n alwaysVisible: PropTypes.bool,\n error: PropTypes.string,\n noBorder: PropTypes.any,\n noPadding: PropTypes.any,\n }),\n focusToolbar: PropTypes.bool.isRequired,\n onToolbarFocus: PropTypes.func.isRequired,\n onToolbarBlur: PropTypes.func.isRequired,\n doneButtonRef: PropTypes.func,\n };\n\n render() {\n const {\n classes,\n children,\n value,\n plugins,\n onChange,\n getFocusedValue,\n onDone,\n focusedNode,\n autoWidth,\n readOnly,\n disableScrollbar,\n disableUnderline,\n pluginProps,\n toolbarOpts,\n onDataChange,\n toolbarRef,\n doneButtonRef,\n focusToolbar,\n onToolbarFocus,\n onToolbarBlur,\n } = this.props;\n\n let inFocus = value.isFocused || (focusedNode !== null && focusedNode !== undefined) || focusToolbar;\n\n const holderNames = classNames(classes.editorHolder, {\n [classes.editorInFocus]: inFocus,\n [classes.readOnly]: readOnly,\n [classes.disabledUnderline]: disableUnderline,\n [classes.disabledScrollbar]: disableScrollbar,\n });\n\n let clonedChildren = children;\n\n if (typeof children !== 'string') {\n clonedChildren = React.cloneElement(children, {\n ref: (el) => (this.editorRef = el),\n });\n }\n\n log('[render] inFocus: ', inFocus, 'value.isFocused:', value.isFocused, 'focused node: ', focusedNode);\n\n return (\n <div\n className={classNames(\n {\n [classes.noBorder]: toolbarOpts && toolbarOpts.noBorder,\n [classes.error]: toolbarOpts && toolbarOpts.error,\n },\n classes.root,\n )}\n >\n <div className={holderNames}>\n <div\n className={classNames(\n {\n [classes.noPadding]: toolbarOpts && toolbarOpts.noPadding,\n },\n classes.children,\n )}\n >\n {clonedChildren}\n </div>\n </div>\n\n <Toolbar\n autoWidth={autoWidth}\n plugins={plugins}\n focusedNode={focusedNode}\n value={value}\n isFocused={inFocus}\n onBlur={onToolbarBlur}\n onFocus={onToolbarFocus}\n onChange={onChange}\n getFocusedValue={getFocusedValue}\n onDone={onDone}\n onDataChange={onDataChange}\n toolbarRef={toolbarRef}\n doneButtonRef={doneButtonRef}\n pluginProps={pluginProps}\n toolbarOpts={toolbarOpts}\n />\n </div>\n );\n }\n}\n\nconst style = (theme) => ({\n root: {\n position: 'relative',\n padding: '0px',\n border: '1px solid #ccc',\n borderRadius: '4px',\n cursor: 'text',\n '& [data-slate-editor=\"true\"]': {\n wordBreak: 'break-word',\n overflow: 'visible',\n maxHeight: '500px',\n // needed in order to be able to put the focus before a void element when it is the first one in the editor\n padding: '5px',\n },\n },\n children: {\n padding: '10px 16px',\n },\n editorHolder: {\n position: 'relative',\n padding: '0px',\n overflowY: 'auto',\n color: color.text(),\n backgroundColor: color.background(),\n '&::before': {\n left: '0',\n right: '0',\n bottom: '0',\n height: '1px',\n content: '\"\"',\n position: 'absolute',\n transition: 'background-color 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms',\n pointerEvents: 'none',\n backgroundColor: 'rgba(0, 0, 0, 0.42)',\n },\n '&::after': {\n left: '0',\n right: '0',\n bottom: '0',\n height: '1px',\n content: '\"\"',\n position: 'absolute',\n transform: 'scaleX(0)',\n transition: 'transform 200ms cubic-bezier(0.0, 0.0, 0.2, 1) 0ms, background-color 200ms linear',\n backgroundColor: 'rgba(0, 0, 0, 0.42)',\n },\n '&:focus': {\n '&::after': {\n transform: 'scaleX(1)',\n backgroundColor: primary,\n height: '2px',\n },\n },\n '&:hover': {\n '&::after': {\n transform: 'scaleX(1)',\n backgroundColor: theme.palette.common.black,\n height: '2px',\n },\n },\n },\n disabledUnderline: {\n '&::before': {\n display: 'none',\n },\n '&::after': {\n display: 'none',\n },\n },\n disabledScrollbar: {\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n scrollbarWidth: 'none',\n '-ms-overflow-style': 'none',\n },\n readOnly: {\n '&::before': {\n background: 'transparent',\n backgroundSize: '5px 1px',\n backgroundImage: 'linear-gradient(to right, rgba(0, 0, 0, 0.42) 33%, transparent 0%)',\n backgroundRepeat: 'repeat-x',\n backgroundPosition: 'left top',\n },\n '&::after': {\n left: '0',\n right: '0',\n bottom: '0',\n height: '1px',\n content: '\"\"',\n position: 'absolute',\n transform: 'scaleX(0)',\n transition: 'transform 200ms cubic-bezier(0.0, 0.0, 0.2, 1) 0ms, background-color 0ms linear',\n backgroundColor: 'rgba(0, 0, 0, 0)',\n },\n '&:hover': {\n '&::after': {\n transform: 'scaleX(0)',\n backgroundColor: theme.palette.common.black,\n height: '2px',\n },\n },\n },\n editorInFocus: {\n '&::after': {\n transform: 'scaleX(1)',\n backgroundColor: primary,\n height: '2px',\n },\n '&:hover': {\n '&::after': {\n backgroundColor: primary,\n },\n },\n },\n error: {\n border: `2px solid ${theme.palette.error.main} !important`,\n },\n noBorder: {\n border: 'none',\n },\n noPadding: {\n padding: 0,\n },\n});\n\nexport default withStyles(style)(EditorAndToolbar);\n","import React from 'react';\n\nimport EditorAndToolbar from './editor-and-toolbar';\n\n/**\n * Adds a toolbar which is shown when the editor is focused.\n * @param {*} opts\n */\nexport default function ToolbarPlugin(opts) {\n return {\n /* eslint-disable-next-line */\n renderEditor: (props) => (\n <EditorAndToolbar\n {...props}\n mainEditorRef={opts.mainEditorRef}\n disableScrollbar={opts.disableScrollbar}\n disableUnderline={opts.disableUnderline}\n autoWidth={opts.autoWidth}\n onDone={opts.onDone}\n />\n ),\n };\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n}), _react.default.createElement(\"path\", {\n d: \"M12 17c3.31 0 6-2.69 6-6V3h-2.5v8c0 1.93-1.57 3.5-3.5 3.5S8.5 12.93 8.5 11V3H6v8c0 3.31 2.69 6 6 6zm-7 2v2h14v-2H5z\"\n})), 'FormatUnderlined');\n\nexports.default = _default;","import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst styles = (theme) => ({\n icon: {\n fontFamily: 'Cerebri Sans, Arial, sans-serif',\n fontSize: theme.typography.fontSize,\n fontWeight: 'bold',\n lineHeight: '14px',\n position: 'relative',\n whiteSpace: 'nowrap',\n },\n});\n\nconst HtmlModeIcon = ({ classes, isHtmlMode }) => (\n <div className={classes.icon}>{isHtmlMode ? 'Exit <HTML> mode' : '<HTML>'}</div>\n);\n\nexport default withStyles(styles)(HtmlModeIcon);\n","import React from 'react';\nimport HtmlModeIcon from './icons';\nimport { htmlToValue, valueToHtml } from './../../serialization';\n\nconst toggleToRichText = (value, onChange, dismiss) => {\n const plainText = value.document.text;\n const slateValue = dismiss ? value : htmlToValue(plainText);\n\n const change = value\n .change()\n .selectAll()\n .delete()\n .insertFragment(slateValue.document);\n onChange(change);\n};\n\nexport default function HtmlPlugin(opts) {\n const { isHtmlMode, isEditedInHtmlMode, toggleHtmlMode, handleAlertDialog, currentValue } = opts;\n\n const handleHtmlModeOn = (value, onChange) => {\n const dialogProps = {\n title: 'Warning',\n text: 'Returning to rich text mode without saving will cause edits to be lost.',\n onConfirmText: 'Dismiss changes',\n onCloseText: 'Continue Editing',\n onConfirm: () => {\n handleAlertDialog(false);\n toggleToRichText(currentValue, onChange, true);\n toggleHtmlMode();\n },\n onClose: () => {\n handleAlertDialog(false);\n },\n };\n\n handleAlertDialog(true, dialogProps);\n };\n\n const handleHtmlModeOff = (value, onChange) => {\n const change = value\n .change()\n .selectAll()\n .delete()\n .insertText(valueToHtml(value));\n onChange(change);\n };\n\n return {\n name: 'html',\n toolbar: {\n icon: <HtmlModeIcon isHtmlMode={isHtmlMode} />,\n ariaLabel: 'Html editor',\n buttonStyles: {\n margin: '0 20px 0 auto',\n },\n type: 'html',\n onClick: (value, onChange) => {\n if (isHtmlMode) {\n if (isEditedInHtmlMode) {\n handleHtmlModeOn(value, onChange);\n } else {\n toggleToRichText(value, onChange);\n toggleHtmlMode();\n }\n } else {\n handleHtmlModeOff(value, onChange);\n toggleHtmlMode();\n }\n },\n },\n };\n}\n","import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst styles = (theme) => ({\n icon: {\n fontFamily: 'Cerebri Sans, Arial, sans-serif',\n fontSize: theme.typography.fontSize,\n fontWeight: 'bold',\n lineHeight: '14px',\n position: 'relative',\n whiteSpace: 'nowrap',\n },\n});\n\nconst CssIcon = ({ classes }) => <div className={classes.icon}>CSS</div>;\n\nexport default withStyles(styles)(CssIcon);\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport List from '@material-ui/core/List';\nimport { Leaf, Mark } from 'slate';\nimport Immutable from 'immutable';\nimport ListItem from '@material-ui/core/ListItem';\nimport isEmpty from 'lodash/isEmpty';\nimport debug from 'debug';\nimport CssIcon from './icons';\n\nconst log = debug('@pie-lib:editable-html:plugins:characters');\n\nexport const removeDialogs = () => {\n const prevDialogs = document.querySelectorAll('.insert-css-dialog');\n\n log('[characters:removeDialogs]');\n prevDialogs.forEach((s) => s.remove());\n};\n\nconst insertDialog = ({ editorDOM, value, callback, opts, textNode, parentNode }) => {\n const newEl = document.createElement('div');\n\n log('[characters:insertDialog]');\n\n removeDialogs();\n\n newEl.className = 'insert-css-dialog';\n\n let popoverEl;\n\n const closePopOver = () => {\n if (popoverEl) {\n popoverEl.remove();\n }\n };\n\n let firstCallMade = false;\n\n const listener = (e) => {\n // this will be triggered right after setting it because\n // this toolbar is added on the mousedown event\n // so right after mouseup, the click will be triggered\n if (firstCallMade) {\n const focusIsInModals = newEl.contains(e.target) || (popoverEl && popoverEl.contains(e.target));\n const focusIsInEditor = editorDOM.contains(e.target);\n\n if (!(focusIsInModals || focusIsInEditor)) {\n handleClose();\n }\n } else {\n firstCallMade = true;\n }\n };\n\n const handleClose = () => {\n callback(undefined, true);\n newEl.remove();\n closePopOver();\n document.body.removeEventListener('click', listener);\n };\n\n const handleChange = (name) => {\n callback(name, true);\n newEl.remove();\n closePopOver();\n document.body.removeEventListener('click', listener);\n };\n\n const selectedText = textNode.text.slice(value.selection.anchorOffset, value.selection.focusOffset);\n const parentNodeClass = parentNode?.data?.get('attributes')?.class;\n const createHTML = (name) => {\n let html = `<span class=\"${name}\">${selectedText}</span>`;\n\n if (parentNode) {\n let tag;\n\n if (parentNode?.object === 'inline') {\n tag = 'span';\n }\n\n if (parentNode?.object === 'block') {\n tag = 'div';\n }\n\n html = `<${tag} class=\"${parentNodeClass}\">${parentNode.text.slice(\n 0,\n value.selection.anchorOffset,\n )}${html}${parentNode.text.slice(value.selection.focusOffset)}</${tag}>`;\n }\n\n return html;\n };\n\n const el = (\n <div\n style={{ background: 'white', height: 500, padding: 20, overflow: 'hidden', display: 'flex', flexFlow: 'column' }}\n >\n <h2>Please choose a css class</h2>\n {parentNodeClass && <div>The current parent has this class {parentNodeClass}</div>}\n <List component=\"nav\" style={{ overflow: 'scroll' }}>\n {opts.names.map((name, i) => (\n <ListItem key={`rule-${i}`} button onClick={() => handleChange(name)}>\n <div style={{ marginRight: 20 }}>{name}</div>\n <div\n dangerouslySetInnerHTML={{\n __html: createHTML(name),\n }}\n />\n </ListItem>\n ))}\n </List>\n </div>\n );\n\n ReactDOM.render(el, newEl, () => {\n const cursorItem = document.querySelector(`[data-key=\"${value.anchorKey}\"]`);\n\n if (cursorItem) {\n const bodyRect = editorDOM.parentElement.parentElement.parentElement.getBoundingClientRect();\n const boundRect = cursorItem.getBoundingClientRect();\n\n editorDOM.parentElement.parentElement.parentElement.appendChild(newEl);\n\n // when height of toolbar exceeds screen - can happen in scrollable contexts\n let additionalTopOffset = 0;\n if (boundRect.y < newEl.offsetHeight) {\n additionalTopOffset = newEl.offsetHeight - boundRect.y + 10;\n }\n\n newEl.style.maxWidth = '500px';\n newEl.style.position = 'absolute';\n newEl.style.top = 0;\n newEl.style.zIndex = 99999;\n\n const leftValue = `${boundRect.left + Math.abs(bodyRect.left) + cursorItem.offsetWidth + 10}px`;\n\n const rightValue = `${boundRect.x}px`;\n\n newEl.style.left = leftValue;\n\n const leftAlignedWidth = newEl.offsetWidth;\n\n newEl.style.left = 'unset';\n newEl.style.right = rightValue;\n\n const rightAlignedWidth = newEl.offsetWidth;\n\n newEl.style.left = 'unset';\n newEl.style.right = 'unset';\n\n if (leftAlignedWidth >= rightAlignedWidth) {\n newEl.style.left = leftValue;\n } else {\n newEl.style.right = rightValue;\n }\n\n document.body.addEventListener('click', listener);\n }\n });\n};\n\nconst findParentNodeInfo = (value, textNode) => {\n const closestInline = value.document.getClosestInline(value.selection.endKey);\n const closestBlock = value.document.getClosestBlock(value.selection.endKey);\n let nodeToUse = null;\n\n if (closestInline?.nodes?.find((n) => n.key === textNode.key)) {\n nodeToUse = closestInline;\n }\n\n if (closestBlock?.nodes?.find((n) => n.key === textNode.key)) {\n nodeToUse = closestBlock;\n }\n\n return nodeToUse;\n};\n\n/**\n * Find the node that has a class attribute and return it.\n * Keeping this in case the implementation of classes needs to be changed\n * @param value\n * @param opts\n * @returns {*}\n */\nconst getNodeWithClass = (value, opts) => {\n const blocksAtRange = value.document.getBlocksAtRangeAsArray(value.selection);\n const inlinesAtRange = value.document.getInlinesAtRangeAsArray(value.selection);\n const blockData = blocksAtRange[0]?.data.toJSON() || {};\n const inlineData = inlinesAtRange[0]?.data.toJSON() || {};\n\n if (!blockData.attributes?.class && !inlineData.attributes?.class) {\n return null;\n }\n\n const { class: blockClass } = blockData.attributes || {};\n const { class: inlineClass } = inlineData.attributes || {};\n const inlineHasClass = opts.names.find((name) => inlineClass.includes(name));\n\n if (inlineHasClass) {\n return inlinesAtRange[0];\n }\n\n const blockHasClass = opts.names.find((name) => blockClass.includes(name));\n\n if (blockHasClass) {\n return blocksAtRange[0];\n }\n\n return null;\n};\n\n/**\n * Plugin in order to be able to add a css clas that is provided through the model\n * on a text element. Works like a mark (bold, italic etc.).\n * @param opts\n * @constructor\n */\nexport default function CSSPlugin(opts) {\n const plugin = {\n name: 'extraCSSRules',\n toolbar: {\n isMark: true,\n icon: <CssIcon />,\n ariaLabel: 'CSS editor',\n type: 'css',\n onToggle: (change) => {\n const type = 'css';\n const hasMark = change.value.activeMarks.find((entry) => {\n return entry.type === type;\n });\n\n if (hasMark) {\n change.removeMark(hasMark);\n } else {\n const newMark = Mark.create(type);\n\n change.addMark(newMark);\n }\n\n return change;\n },\n onClick: (value, onChange, getFocusedValue) => {\n const type = 'css';\n const hasMark = value.activeMarks.find((entry) => {\n return entry.type === type;\n });\n\n let change = value.change();\n\n if (hasMark) {\n change.removeMark(hasMark);\n onChange(change);\n return;\n }\n\n // keeping this if implementation needs to be changed to regular blocks instead of marks\n // let nodeWithClass = getNodeWithClass(value, opts);\n //\n // if (nodeWithClass) {\n // const nodeAttributes = nodeWithClass.data.get('attributes');\n //\n // opts.names.forEach((name) => {\n // if (nodeAttributes.class.includes(name)) {\n // nodeAttributes.class = nodeAttributes.class.replace(name, '');\n // }\n // });\n //\n // // keeping only one space between classes\n // nodeAttributes.class = nodeAttributes.class.replace(/ +/g, ' ');\n //\n // nodeWithClass.data.set('attributes', nodeAttributes);\n //\n // let change = value.change();\n // change.replaceNodeByKey(nodeWithClass.key, nodeWithClass);\n //\n // onChange(change);\n // return;\n // }\n\n const editorDOM = document.querySelector(`[data-key=\"${value.document.key}\"]`);\n let valueToUse = value;\n\n const callback = (className, focus) => {\n if (getFocusedValue) {\n valueToUse = getFocusedValue() || valueToUse;\n }\n\n if (className) {\n let change = valueToUse.change();\n\n const newMark = Mark.create({\n object: 'mark',\n type: 'css',\n data: {\n attributes: {\n class: className,\n },\n },\n });\n\n change.addMark(newMark);\n // keeping this if implementation needs to be changed to regular blocks instead of marks\n // change = change.wrapInline({ type: 'span', data: { attributes: { class: className } } });\n //\n // // change = change.splitBlockAtRange(adaptedRange);\n // //\n // // const newBlock = change.value.document.getFurthestBlock(change.value.selection.endKey);\n // //\n // // change = change.setNodeByKey(newBlock.key, { data: { attributes: { class: className } } });\n //\n // valueToUse = change.value;\n // log('[characters:insert]: ', value);\n onChange(change);\n }\n\n log('[characters:click]');\n\n if (focus) {\n setTimeout(() => {\n if (editorDOM) {\n editorDOM.focus();\n }\n }, 0);\n }\n };\n const textNode = value.document.getTextsAtRangeAsArray(value.selection)[0];\n\n if (textNode) {\n const parentNode = findParentNodeInfo(value, textNode, opts);\n\n insertDialog({ editorDOM, value: valueToUse, callback, opts, textNode, parentNode });\n }\n },\n },\n renderMark(props) {\n if (props.mark.type === 'css') {\n const { data } = props.mark || {};\n const jsonData = data?.toJSON() || {};\n\n return <span {...jsonData.attributes}>{props.children}</span>;\n }\n },\n };\n\n return plugin;\n}\n","import React from 'react';\nimport { htmlToValue } from '../../serialization';\n\n// We're possibly going to have to support content types, so starting it as an enum\nexport const CONTENT_TYPE = {\n FRAGMENT: 'FRAGMENT',\n};\n\n// We're possibly going to have to support multiple icon types, so starting it as an enum\nexport const ICON_TYPE = {\n SVG: 'SVG',\n};\n\nconst getIcon = (customPluginProps) => {\n const svg = customPluginProps.icon;\n\n switch (customPluginProps.iconType) {\n case ICON_TYPE.SVG:\n return <span style={{ width: 28, height: 28 }} dangerouslySetInnerHTML={{ __html: svg }} />;\n default:\n return <span>{customPluginProps.iconAlt}</span>;\n }\n};\n\nexport default function CustomPlugin(type, customPluginProps) {\n const toolbar = {\n icon: getIcon(customPluginProps),\n onClick: (value, onChange, getFocusedValue) => {\n const editorDOM = document.querySelector(`[data-key=\"${value.document.key}\"]`);\n let valueToUse = value;\n const callback = ({ customContent, contentType }, focus) => {\n valueToUse = getFocusedValue();\n\n switch (contentType) {\n case CONTENT_TYPE.FRAGMENT:\n default: {\n const contentValue = htmlToValue(customContent);\n const change = valueToUse.change().insertFragment(contentValue.document);\n\n valueToUse = change.value;\n onChange(change);\n\n break;\n }\n }\n\n if (focus) {\n if (editorDOM) {\n editorDOM.focus();\n }\n }\n };\n\n // NOTE: the emitted event (custom event named by client) will be suffixed with \"PIE-\"\n window.dispatchEvent(\n new CustomEvent(`PIE-${customPluginProps.event}`, {\n detail: {\n ...customPluginProps,\n callback,\n },\n }),\n );\n },\n supports: (node) => node.object === 'inline' && node.type === type,\n };\n\n return {\n name: type,\n toolbar,\n renderNode(props) {\n if (props.node.type === type) {\n const { node } = props;\n const { data } = node;\n const jsonData = data.toJSON();\n const { customContent, contentType } = jsonData;\n\n switch (contentType) {\n case CONTENT_TYPE.FRAGMENT:\n default:\n return customContent;\n }\n }\n },\n };\n}\n","import React from 'react';\n\n/**\n * Plugin to render the normal divs and spans with attributes (if they are provided)\n */\nexport default () => {\n return {\n name: 'renderingPlugin',\n renderNode: (props) => {\n const { attributes, children, node } = props;\n\n if (node.object !== 'block' && node.object !== 'inline') {\n return;\n }\n\n const Tag = node.object === 'block' ? 'div' : 'span';\n const style = { position: 'relative' };\n const extraAttributes = node.data.get('attributes');\n\n return React.createElement(\n Tag,\n {\n ...attributes,\n ...extraAttributes,\n style: style,\n },\n children,\n );\n },\n };\n};\n","import React, { useState } from 'react';\nimport Collapse from '@material-ui/core/Collapse';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\n\nexport const AlignLeft = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 66 66\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M42.1875 4.75C42.1875 7.38672 39.9902 9.4375 37.5 9.4375H4.6875C2.05078 9.4375 0 7.38672 0 4.75C0 2.25977 2.05078 0.0625 4.6875 0.0625H37.5C39.9902 0.0625 42.1875 2.25977 42.1875 4.75ZM42.1875 42.25C42.1875 44.8867 39.9902 46.9375 37.5 46.9375H4.6875C2.05078 46.9375 0 44.8867 0 42.25C0 39.7598 2.05078 37.5625 4.6875 37.5625H37.5C39.9902 37.5625 42.1875 39.7598 42.1875 42.25ZM0 23.5C0 21.0098 2.05078 18.8125 4.6875 18.8125H60.9375C63.4277 18.8125 65.625 21.0098 65.625 23.5C65.625 26.1367 63.4277 28.1875 60.9375 28.1875H4.6875C2.05078 28.1875 0 26.1367 0 23.5ZM65.625 61C65.625 63.6367 63.4277 65.6875 60.9375 65.6875H4.6875C2.05078 65.6875 0 63.6367 0 61C0 58.5098 2.05078 56.3125 4.6875 56.3125H60.9375C63.4277 56.3125 65.625 58.5098 65.625 61Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport const AlignRight = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 66 66\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M65.625 4.75C65.625 7.38672 63.4277 9.4375 60.9375 9.4375H28.125C25.4883 9.4375 23.4375 7.38672 23.4375 4.75C23.4375 2.25977 25.4883 0.0625 28.125 0.0625H60.9375C63.4277 0.0625 65.625 2.25977 65.625 4.75ZM65.625 42.25C65.625 44.8867 63.4277 46.9375 60.9375 46.9375H28.125C25.4883 46.9375 23.4375 44.8867 23.4375 42.25C23.4375 39.7598 25.4883 37.5625 28.125 37.5625H60.9375C63.4277 37.5625 65.625 39.7598 65.625 42.25ZM0 23.5C0 21.0098 2.05078 18.8125 4.6875 18.8125H60.9375C63.4277 18.8125 65.625 21.0098 65.625 23.5C65.625 26.1367 63.4277 28.1875 60.9375 28.1875H4.6875C2.05078 28.1875 0 26.1367 0 23.5ZM65.625 61C65.625 63.6367 63.4277 65.6875 60.9375 65.6875H4.6875C2.05078 65.6875 0 63.6367 0 61C0 58.5098 2.05078 56.3125 4.6875 56.3125H60.9375C63.4277 56.3125 65.625 58.5098 65.625 61Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport const AlignCenter = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 66 66\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M51.5625 4.75C51.5625 7.38672 49.3652 9.4375 46.875 9.4375H18.75C16.1133 9.4375 14.0625 7.38672 14.0625 4.75C14.0625 2.25977 16.1133 0.0625 18.75 0.0625H46.875C49.3652 0.0625 51.5625 2.25977 51.5625 4.75ZM65.625 23.5C65.625 26.1367 63.4277 28.1875 60.9375 28.1875H4.6875C2.05078 28.1875 0 26.1367 0 23.5C0 21.0098 2.05078 18.8125 4.6875 18.8125H60.9375C63.4277 18.8125 65.625 21.0098 65.625 23.5ZM0 61C0 58.5098 2.05078 56.3125 4.6875 56.3125H60.9375C63.4277 56.3125 65.625 58.5098 65.625 61C65.625 63.6367 63.4277 65.6875 60.9375 65.6875H4.6875C2.05078 65.6875 0 63.6367 0 61ZM51.5625 42.25C51.5625 44.8867 49.3652 46.9375 46.875 46.9375H18.75C16.1133 46.9375 14.0625 44.8867 14.0625 42.25C14.0625 39.7598 16.1133 37.5625 18.75 37.5625H46.875C49.3652 37.5625 51.5625 39.7598 51.5625 42.25Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport const AlignJustify = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 66 66\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M65.625 4.75C65.625 7.38672 63.4277 9.4375 60.9375 9.4375H4.6875C2.05078 9.4375 0 7.38672 0 4.75C0 2.25977 2.05078 0.0625 4.6875 0.0625H60.9375C63.4277 0.0625 65.625 2.25977 65.625 4.75ZM65.625 42.25C65.625 44.8867 63.4277 46.9375 60.9375 46.9375H4.6875C2.05078 46.9375 0 44.8867 0 42.25C0 39.7598 2.05078 37.5625 4.6875 37.5625H60.9375C63.4277 37.5625 65.625 39.7598 65.625 42.25ZM0 23.5C0 21.0098 2.05078 18.8125 4.6875 18.8125H60.9375C63.4277 18.8125 65.625 21.0098 65.625 23.5C65.625 26.1367 63.4277 28.1875 60.9375 28.1875H4.6875C2.05078 28.1875 0 26.1367 0 23.5ZM65.625 61C65.625 63.6367 63.4277 65.6875 60.9375 65.6875H4.6875C2.05078 65.6875 0 63.6367 0 61C0 58.5098 2.05078 56.3125 4.6875 56.3125H60.9375C63.4277 56.3125 65.625 58.5098 65.625 61Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default ({ getValue, onChange }) => {\n const [open, setOpen] = useState(false);\n const value = getValue();\n const text = value.texts.get(0);\n\n let type;\n\n if (text) {\n const blockParent = value.document.getParent(text.key);\n const data = blockParent.data.toJSON();\n\n if (data?.attributes?.align) {\n type = data?.attributes?.align;\n }\n }\n\n let icon;\n\n switch (type) {\n case 'right':\n icon = <AlignRight />;\n break;\n case 'center':\n icon = <AlignCenter />;\n break;\n case 'justify':\n icon = <AlignJustify />;\n break;\n default:\n icon = <AlignLeft />;\n break;\n }\n\n const applyAlignment = (event) => {\n if (value.texts.size) {\n const alignType = event.target?.closest('div')?.getAttribute('value');\n\n if (alignType) {\n let c = value.change();\n\n value.texts.forEach((text) => {\n const blockParent = value.document.getParent(text.key);\n\n c = c.setNodeByKey(blockParent.key, {\n data: { ...blockParent.data, attributes: { ...blockParent.data?.attributes, align: alignType } },\n });\n });\n\n onChange(c);\n }\n }\n\n setOpen(false);\n };\n\n const onMouseDown = (event) => {\n event.preventDefault();\n event.stopPropagation();\n setOpen(!open);\n };\n\n return (\n <div>\n <div style={{ display: 'flex', alignItems: 'center' }} onClick={onMouseDown}>\n {icon}\n <span style={{ marginLeft: '5px', fontSize: '8px' }}>&#9660;</span>\n </div>\n <Collapse in={open} timeout=\"auto\" unmountOnExit style={{ position: 'absolute' }}>\n <List\n component=\"div\"\n disablePadding\n style={{\n background: '#fff',\n display: 'flex',\n flexDirection: 'row',\n padding: 0,\n }}\n >\n <ListItem button type=\"submit\" value=\"left\" aria-label=\"Align text left\" onClick={applyAlignment}>\n <AlignLeft />\n </ListItem>\n\n <ListItem button type=\"submit\" value=\"center\" aria-label=\"Align text center\" onClick={applyAlignment}>\n <AlignCenter />\n </ListItem>\n\n <ListItem button type=\"submit\" value=\"right\" aria-label=\"Align text right\" onClick={applyAlignment}>\n <AlignRight />\n </ListItem>\n\n <ListItem button type=\"submit\" value=\"justify\" aria-label=\"Justify text\" onClick={applyAlignment}>\n <AlignJustify />\n </ListItem>\n </List>\n </Collapse>\n </div>\n );\n};\n","import React from 'react';\nimport debug from 'debug';\nimport TextAlignIcon from './icons';\n\nconst log = debug('@pie-lib:editable-html:plugins:characters');\n\n/**\n * Plugin in order to be able to change alignment for the selected text(s) element(s).\n * @param opts\n * @constructor\n */\nexport default function TextAlign(opts) {\n const plugin = {\n name: 'textAlign',\n toolbar: {\n icon: <TextAlignIcon {...opts} />,\n ariaLabel: 'Text Align',\n onClick: () => {},\n },\n };\n\n return plugin;\n}\n","import Hotkeys from 'slate-hotkeys';\nimport { IS_IOS } from 'slate-dev-environment';\nimport { Mark } from 'slate';\nimport Bold from '@material-ui/icons/FormatBold';\nimport FormatQuote from '@material-ui/icons/FormatQuote';\n//import Code from '@material-ui/icons/Code';\nimport BulletedListIcon from '@material-ui/icons/FormatListBulleted';\nimport NumberedListIcon from '@material-ui/icons/FormatListNumbered';\nimport Redo from '@material-ui/icons/Redo';\nimport Undo from '@material-ui/icons/Undo';\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 isEmpty from 'lodash/isEmpty';\nimport SoftBreakPlugin from 'slate-soft-break';\nimport debug from 'debug';\nimport List from './list';\nimport TablePlugin from './table';\nimport RespAreaPlugin from './respArea';\nimport HtmlPlugin from './html';\nimport CSSPlugin from './css';\nimport CustomPlugin from './customPlugin';\nimport RenderingPlugin from './rendering';\nimport TextAlign from './textAlign';\n\nconst log = debug('@pie-lib:editable-html:plugins');\n\nconst SuperscriptIcon = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"none\">\n <path\n d=\"M22,7h-2v1h3v1h-4V7c0-0.55,0.45-1,1-1h2V5h-3V4h3c0.55,0,1,0.45,1,1v1C23,6.55,22.55,7,22,7z M5.88,20h2.66l3.4-5.42h0.12 l3.4,5.42h2.66l-4.65-7.27L17.81,6h-2.68l-3.07,4.99h-0.12L8.85,6H6.19l4.32,6.73L5.88,20z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nconst SubscriptIcon = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"none\">\n <path\n d=\"M22,18h-2v1h3v1h-4v-2c0-0.55,0.45-1,1-1h2v-1h-3v-1h3c0.55,0,1,0.45,1,1v1C23,17.55,22.55,18,22,18z M5.88,18h2.66 l3.4-5.42h0.12l3.4,5.42h2.66l-4.65-7.27L17.81,4h-2.68l-3.07,4.99h-0.12L8.85,4H6.19l4.32,6.73L5.88,18z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nconst HeadingIcon = () => (\n <svg\n width=\"30\"\n height=\"28\"\n viewBox=\"0 0 30 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ width: '20px', height: '18px' }}\n >\n <path\n d=\"M27 4V24H29C29.5 24 30 24.5 30 25V27C30 27.5625 29.5 28 29 28H19C18.4375 28 18 27.5625 18 27V25C18 24.5 18.4375 24 19 24H21V16H9V24H11C11.5 24 12 24.5 12 25V27C12 27.5625 11.5 28 11 28H1C0.4375 28 0 27.5625 0 27V25C0 24.5 0.4375 24 1 24H3V4H1C0.4375 4 0 3.5625 0 3V1C0 0.5 0.4375 0 1 0H11C11.5 0 12 0.5 12 1V3C12 3.5625 11.5 4 11 4H9V12H21V4H19C18.4375 4 18 3.5625 18 3V1C18 0.5 18.4375 0 19 0H29C29.5 0 30 0.5 30 1V3C30 3.5625 29.5 4 29 4H27Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\nconst STYLES_MAP = {\n h3: {\n fontSize: 'inherit',\n fontWeight: 'inherit',\n },\n blockquote: {\n background: '#f9f9f9',\n borderLeft: '5px solid #ccc',\n margin: '1.5em 10px',\n padding: '.5em 10px',\n },\n};\n\nfunction MarkHotkey(options) {\n const { type, key, icon, tag } = options;\n\n // Return our \"plugin\" object, containing the `onKeyDown` handler.\n return {\n name: type,\n toolbar: {\n isMark: true,\n type,\n icon,\n onToggle: (change) => {\n log('[onToggleMark] type: ', type);\n const { selection } = change.value;\n\n if (['blockquote', 'h3'].includes(type)) {\n const texts = change.value.document.getTextsAtRangeAsArray(selection);\n const onlyOneText = texts.length === 1;\n let hasMark = false;\n let sameMark = true;\n\n texts.forEach((t) => {\n const marks = t.getMarksAsArray();\n const markIsThere = marks.find((m) => m.type === type);\n\n if (!markIsThere) {\n // not all texts have this mark\n sameMark = false;\n } else {\n // at least one mark\n hasMark = true;\n }\n });\n\n const shouldContinue = onlyOneText || sameMark || !hasMark;\n\n if (!shouldContinue) {\n return change;\n }\n\n if (selection.startKey === selection.endKey && selection.anchorOffset === selection.focusOffset) {\n const textNode = change.value.document.getNode(selection.startKey);\n\n // select the whole line if there is no selection\n change.moveFocusTo(textNode.key, 0).moveAnchorTo(textNode.key, textNode.text.length);\n\n // remove toggle\n const hasMark = change.value.activeMarks.find((entry) => {\n return entry.type === type;\n });\n\n if (hasMark) {\n change.removeMark(hasMark);\n } else {\n const newMark = Mark.create(type);\n\n change.addMark(newMark);\n }\n\n // move focus to end of text\n return change\n .moveFocusTo(textNode.key, textNode.text.length)\n .moveAnchorTo(textNode.key, textNode.text.length);\n }\n }\n\n return change.toggleMark(type);\n },\n },\n renderMark(props) {\n if (props.mark.type === type) {\n const { data } = props.node || {};\n const jsonData = data?.toJSON() || {};\n const K = tag || type;\n const additionalStyles = STYLES_MAP[K];\n\n if (additionalStyles) {\n if (!jsonData.attributes) {\n jsonData.attributes = {};\n }\n\n jsonData.attributes.style = {\n ...jsonData.attributes.style,\n ...additionalStyles,\n };\n }\n\n return <K {...jsonData.attributes}>{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 'html',\n 'extraCSSRules',\n 'italic',\n 'underline',\n 'strikethrough',\n 'bulleted-list',\n 'numbered-list',\n 'image',\n 'math',\n 'languageCharacters',\n 'text-align',\n 'blockquote',\n 'h3',\n 'table',\n 'video',\n 'audio',\n 'responseArea',\n 'redo',\n 'undo',\n 'superscript',\n 'subscript',\n];\n\nexport const DEFAULT_PLUGINS = ALL_PLUGINS.filter((plug) => !['responseArea', 'h3', 'blockquote'].includes(plug));\n\nconst ICON_MAP = {\n undo: Undo,\n redo: Redo,\n};\nfunction UndoRedo(type) {\n const IconToUse = ICON_MAP[type];\n\n return {\n name: type,\n toolbar: {\n type,\n icon: <IconToUse />,\n ariaLabel: type === 'undo' ? 'Undo (revert the last action)' : 'Redo (reapply the last undone action)',\n onClick: (value, onChange) => {\n const change = value.change();\n\n onChange(change[type]());\n },\n },\n };\n}\n\nfunction EnterHandlingPlugin() {\n return {\n name: 'enterHandling',\n onKeyDown: (event, change) => {\n if (Hotkeys.isSplitBlock(event) && !IS_IOS) {\n if (change.value.isInVoid) {\n return change.collapseToStartOfNextText();\n }\n\n change.splitBlock();\n\n const range = change.value.selection;\n const newBlock = change.value.document.getClosestBlock(range.startKey);\n\n if (newBlock.type !== 'paragraph') {\n change.setNodeByKey(newBlock.key, {\n type: 'paragraph',\n });\n }\n\n return change;\n }\n\n return undefined;\n },\n };\n}\n\nexport const buildPlugins = (activePlugins, customPlugins, opts) => {\n log('[buildPlugins] opts: ', opts);\n\n activePlugins = activePlugins || DEFAULT_PLUGINS;\n\n const addIf = (key, p) => activePlugins.includes(key) && p;\n\n const imagePlugin = opts.image && opts.image.onDelete && ImagePlugin(opts.image);\n const mathPlugin = MathPlugin(opts.math);\n const respAreaPlugin =\n opts.responseArea && opts.responseArea.type && RespAreaPlugin(opts.responseArea, compact([mathPlugin]));\n const cssPlugin = !isEmpty(opts.extraCSSRules) && CSSPlugin(opts.extraCSSRules);\n\n const languageCharactersPlugins = (opts?.languageCharacters || []).map((config) =>\n CharactersPlugin({\n ...config,\n keyPadCharacterRef: opts.keyPadCharacterRef,\n setKeypadInteraction: opts.setKeypadInteraction,\n }),\n );\n\n const tablePlugins = [imagePlugin, mathPlugin, respAreaPlugin, ...languageCharactersPlugins];\n\n if (opts.responseArea && opts.responseArea.type === 'math-templated') {\n tablePlugins.push(respAreaPlugin);\n }\n\n let builtCustomPlugins = [];\n\n customPlugins.forEach((customPlugin) => {\n const { event, icon, iconType, iconAlt } = customPlugin || {};\n\n function isValidEventName(eventName) {\n // Check if eventName is a non-empty string\n if (typeof eventName !== 'string' || eventName.length === 0) {\n return false;\n }\n\n // Regular expression to match valid event names (only alphanumeric characters and underscore)\n const regex = /^[a-zA-Z0-9_]+$/;\n\n // Check if the eventName matches the regular expression\n return regex.test(eventName);\n }\n\n if (!isValidEventName(event)) {\n console.error(`The event name: ${event} is not a valid event name!`);\n return;\n }\n\n if (!icon && !iconType && !iconAlt) {\n console.error('Your custom button requires icon, iconType and iconAlt');\n return;\n }\n\n builtCustomPlugins.push(CustomPlugin('custom-plugin', customPlugin));\n });\n\n return compact([\n addIf('table', TablePlugin(opts.table, compact(tablePlugins))),\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 // icon should be modifies accordingly\n addIf('superscript', MarkHotkey({ type: 'sup', icon: <SuperscriptIcon />, tag: 'sup' })),\n // icon should be modifies accordingly\n addIf('subscript', MarkHotkey({ type: 'sub', icon: <SubscriptIcon />, tag: 'sub' })),\n addIf('image', imagePlugin),\n addIf('video', MediaPlugin('video', opts.media)),\n addIf('audio', MediaPlugin('audio', opts.media)),\n addIf('math', mathPlugin),\n ...languageCharactersPlugins.map((plugin) => addIf('languageCharacters', plugin)),\n addIf('text-align', TextAlign(opts.textAlign)),\n addIf('blockquote', MarkHotkey({ key: 'q', type: 'blockquote', icon: <FormatQuote />, tag: 'blockquote' })),\n addIf('h3', MarkHotkey({ key: 'h3', type: 'h3', icon: <HeadingIcon />, tag: 'h3' })),\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 addIf('undo', UndoRedo('undo')),\n addIf('redo', UndoRedo('redo')),\n ToolbarPlugin(opts.toolbar),\n SoftBreakPlugin({ shift: true }),\n ...builtCustomPlugins,\n addIf('responseArea', respAreaPlugin),\n cssPlugin,\n addIf('html', HtmlPlugin(opts.html)),\n EnterHandlingPlugin(),\n RenderingPlugin(),\n ]);\n};\n","import React from 'react';\nimport { Editor as SlateEditor, findNode, getEventRange, getEventTransfer } from 'slate-react';\nimport SlateTypes from 'slate-prop-types';\nimport { Value, Block, Inline } from 'slate';\nimport Plain from 'slate-plain-serializer';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash/debounce';\nimport isEqual from 'lodash/isEqual';\nimport classNames from 'classnames';\nimport debug from 'debug';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport { color } from '@pie-lib/render-ui';\nimport AlertDialog from '../../config-ui/src/alert-dialog';\nimport { PreviewPrompt } from '@pie-lib/render-ui';\n\nimport { getBase64, htmlToValue } from './serialization';\nimport InsertImageHandler from './plugins/image/insert-image-handler';\nimport * as serialization from './serialization';\nimport { buildPlugins, ALL_PLUGINS, DEFAULT_PLUGINS } from './plugins';\n\nexport { ALL_PLUGINS, DEFAULT_PLUGINS, serialization };\n\nconst log = debug('editable-html:editor');\n\nconst defaultToolbarOpts = {\n position: 'bottom',\n alignment: 'left',\n alwaysVisible: false,\n showDone: true,\n doneOn: 'blur',\n};\n\nconst defaultResponseAreaProps = {\n options: {},\n respAreaToolbar: () => {},\n onHandleAreaChange: () => {},\n};\n\nconst defaultLanguageCharactersProps = [];\n\nconst createToolbarOpts = (toolbarOpts, error, isHtmlMode) => {\n return {\n ...defaultToolbarOpts,\n ...toolbarOpts,\n error,\n isHtmlMode,\n };\n};\n\n/**\n * The maximum number of characters the editor can support\n * @type {number}\n */\nconst MAX_CHARACTERS_LIMIT = 1000000;\n\nexport class Editor extends React.Component {\n static propTypes = {\n autoFocus: PropTypes.bool,\n editorRef: PropTypes.func.isRequired,\n error: PropTypes.any,\n onRef: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onKeyDown: PropTypes.func,\n focus: PropTypes.func.isRequired,\n value: SlateTypes.value.isRequired,\n imageSupport: PropTypes.object,\n mathMlOptions: PropTypes.shape({\n mmlOutput: PropTypes.bool,\n mmlEditing: PropTypes.bool,\n }),\n disableImageAlignmentButtons: PropTypes.bool,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func,\n delete: PropTypes.func,\n }),\n charactersLimit: PropTypes.number,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n minWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n minHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n classes: PropTypes.object.isRequired,\n highlightShape: PropTypes.bool,\n disabled: PropTypes.bool,\n spellCheck: PropTypes.bool,\n nonEmpty: PropTypes.bool,\n disableScrollbar: PropTypes.bool,\n disableUnderline: PropTypes.bool,\n autoWidthToolbar: PropTypes.bool,\n pluginProps: PropTypes.any,\n // customPlugins should be inside pluginProps (a property inside pluginProps)\n // customPlugins: PropTypes.arrayOf(\n // PropTypes.shape({\n // event: PropTypes.string,\n // icon: PropTypes.string,\n // iconType: PropTypes.string,\n // iconAlt: PropTypes.string\n // }),\n // ),\n placeholder: PropTypes.string,\n isEditor: PropTypes.bool,\n responseAreaProps: PropTypes.shape({\n type: PropTypes.oneOf([\n 'explicit-constructed-response',\n 'inline-dropdown',\n 'drag-in-the-blank',\n 'math-templated',\n ]),\n options: PropTypes.object,\n respAreaToolbar: PropTypes.func,\n onHandleAreaChange: PropTypes.func,\n maxResponseAreas: PropTypes.number,\n error: PropTypes.any,\n }),\n extraCSSRules: PropTypes.shape({\n names: PropTypes.arrayOf(PropTypes.string),\n rules: PropTypes.string,\n }),\n languageCharactersProps: PropTypes.arrayOf(\n PropTypes.shape({\n language: PropTypes.string,\n characterIcon: PropTypes.string,\n characters: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)),\n }),\n ),\n runSerializationOnMarkup: PropTypes.func,\n toolbarOpts: PropTypes.shape({\n position: PropTypes.oneOf(['bottom', 'top']),\n alignment: PropTypes.oneOf(['left', 'right']),\n alwaysVisible: PropTypes.bool,\n showDone: PropTypes.bool,\n doneOn: PropTypes.string,\n minWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n }),\n activePlugins: PropTypes.arrayOf((values) => {\n const allValid = values.every((v) => ALL_PLUGINS.includes(v));\n\n return !allValid && new Error(`Invalid values: ${values}, values must be one of [${ALL_PLUGINS.join(',')}]`);\n }),\n className: PropTypes.string,\n maxImageWidth: PropTypes.number,\n maxImageHeight: PropTypes.number,\n };\n\n static defaultProps = {\n disableUnderline: true,\n onFocus: () => {},\n onBlur: () => {},\n onKeyDown: () => {},\n runSerializationOnMarkup: () => {},\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n toolbarOpts: defaultToolbarOpts,\n responseAreaProps: defaultResponseAreaProps,\n languageCharactersProps: defaultLanguageCharactersProps,\n extraCSSRules: null,\n isEditor: false,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n value: props.value,\n toolbarOpts: createToolbarOpts(props.toolbarOpts, props.error),\n pendingImages: [],\n isHtmlMode: false,\n isEditedInHtmlMode: false,\n focusToolbar: false,\n dialog: {\n open: false,\n },\n };\n\n this.keyPadCharacterRef = React.createRef();\n this.doneButtonRef = React.createRef();\n this.keypadInteractionDetected = false;\n\n this.toggleHtmlMode = this.toggleHtmlMode.bind(this);\n this.handleToolbarFocus = this.handleToolbarFocus.bind(this);\n this.handleToolbarBlur = this.handleToolbarBlur.bind(this);\n\n this.onResize = debounce(() => {\n if (!this.state.isHtmlMode && props.onChange) {\n props.onChange(this.state.value, true);\n }\n }, 50);\n\n this.handlePlugins(this.props);\n }\n\n handleToolbarFocus() {\n if (this.state.focusToolbar) {\n return;\n }\n\n this.setState({ focusToolbar: true });\n }\n\n setKeypadInteraction = (interacted) => {\n this.keypadInteractionDetected = interacted;\n };\n\n handleToolbarBlur() {\n setTimeout(() => {\n if (!this.toolbarContainsFocus()) {\n this.setState({ focusToolbar: false });\n }\n }, 0);\n }\n\n toolbarContainsFocus() {\n if (!this.toolbarRef) return false;\n const toolbarElement = this.toolbarRef;\n const activeElement = document.activeElement;\n\n return toolbarElement && toolbarElement.contains(activeElement);\n }\n\n handleDialog = (open, extraDialogProps = {}, callback) => {\n this.setState(\n {\n dialog: {\n open,\n ...extraDialogProps,\n },\n },\n callback,\n );\n };\n\n toggleHtmlMode = () => {\n this.setState(\n (prevState) => ({\n isHtmlMode: !prevState.isHtmlMode,\n isEditedInHtmlMode: false,\n }),\n () => {\n const { error } = this.props;\n const { toolbarOpts } = this.state;\n const newToolbarOpts = createToolbarOpts(toolbarOpts, error, this.state.isHtmlMode);\n this.setState({\n toolbarOpts: newToolbarOpts,\n });\n },\n );\n };\n\n handlePlugins = (props) => {\n const normalizedResponseAreaProps = {\n ...defaultResponseAreaProps,\n ...props.responseAreaProps,\n };\n\n const htmlPluginOpts = {\n currentValue: this.props.value,\n isHtmlMode: this.state.isHtmlMode,\n isEditedInHtmlMode: this.state.isEditedInHtmlMode,\n toggleHtmlMode: this.toggleHtmlMode,\n handleAlertDialog: this.handleDialog,\n };\n let { customPlugins } = props.pluginProps || {};\n customPlugins = customPlugins || [];\n\n this.plugins = buildPlugins(props.activePlugins, customPlugins, {\n math: {\n onClick: this.onMathClick,\n onFocus: this.onPluginFocus,\n onBlur: this.onPluginBlur,\n ...props.mathMlOptions,\n },\n textAlign: {\n getValue: () => this.state.value,\n onChange: this.onChange,\n },\n html: htmlPluginOpts,\n extraCSSRules: props.extraCSSRules || {},\n image: {\n disableImageAlignmentButtons: props.disableImageAlignmentButtons,\n onDelete:\n props.imageSupport &&\n props.imageSupport.delete &&\n ((node, done) => {\n const src = node.data.get('src');\n\n props.imageSupport.delete(src, (e) => {\n const newPendingImages = this.state.pendingImages.filter((img) => img.key !== node.key);\n const { scheduled: oldScheduled } = this.state;\n const newState = {\n pendingImages: newPendingImages,\n scheduled: oldScheduled && newPendingImages.length === 0 ? false : oldScheduled,\n };\n\n this.setState(newState, () => done(e, this.state.value));\n });\n }),\n insertImageRequested:\n props.imageSupport &&\n ((addedImage, getHandler) => {\n const { pendingImages } = this.state;\n const onFinish = (result) => {\n let cb;\n\n if (this.state.scheduled && result) {\n // finish editing only on success\n cb = this.onEditingDone.bind(this);\n }\n\n const newPendingImages = this.state.pendingImages.filter((img) => img.key !== addedImage.key);\n const newState = {\n pendingImages: newPendingImages,\n };\n\n if (newPendingImages.length === 0) {\n newState.scheduled = false;\n }\n\n this.setState(newState, cb);\n };\n const callback = () => {\n /**\n * The handler is the object through which the outer context\n * communicates file upload events like: fileChosen, cancel, progress\n */\n const handler = getHandler(onFinish, () => this.state.value);\n props.imageSupport.add(handler);\n };\n\n this.setState(\n {\n pendingImages: [...pendingImages, addedImage],\n },\n callback,\n );\n }),\n onFocus: this.onPluginFocus,\n onBlur: this.onPluginBlur,\n maxImageWidth: props.maxImageWidth,\n maxImageHeight: props.maxImageHeight,\n },\n toolbar: {\n /**\n * To minimize converting html -> state -> html\n * We only emit markup once 'done' is clicked.\n */\n disableScrollbar: !!props.disableScrollbar,\n disableUnderline: props.disableUnderline,\n autoWidth: props.autoWidthToolbar,\n onDone: () => {\n const { nonEmpty } = props;\n\n log('[onDone]');\n this.setState({ toolbarInFocus: false, focusedNode: null, focusToolbar: false });\n this.editor.blur();\n\n if (nonEmpty && this.state.value.startText?.text?.length === 0) {\n this.resetValue(true).then(() => {\n this.onEditingDone();\n });\n } else {\n this.onEditingDone();\n }\n },\n },\n table: {\n onFocus: () => {\n log('[table:onFocus]...');\n this.onPluginFocus();\n },\n onBlur: () => {\n log('[table:onBlur]...');\n this.onPluginBlur();\n },\n },\n responseArea: {\n type: normalizedResponseAreaProps.type,\n options: normalizedResponseAreaProps.options,\n maxResponseAreas: normalizedResponseAreaProps.maxResponseAreas,\n respAreaToolbar: normalizedResponseAreaProps.respAreaToolbar,\n onHandleAreaChange: normalizedResponseAreaProps.onHandleAreaChange,\n error: normalizedResponseAreaProps.error,\n onFocus: () => {\n log('[table:onFocus]...');\n this.onPluginFocus();\n },\n onBlur: () => {\n log('[table:onBlur]...');\n this.onPluginBlur();\n },\n },\n languageCharacters: props.languageCharactersProps,\n keyPadCharacterRef: this.keyPadCharacterRef,\n setKeypadInteraction: this.setKeypadInteraction,\n media: {\n focus: this.focus,\n createChange: () => this.state.value.change(),\n onChange: this.onChange,\n uploadSoundSupport: props.uploadSoundSupport,\n },\n });\n\n if (props.mathMlOptions.mmlOutput || props.mathMlOptions.mmlEditing) {\n this.props.runSerializationOnMarkup();\n }\n };\n\n componentDidMount() {\n // onRef is needed to get the ref of the component because we export it using withStyles\n this.props.onRef(this);\n\n window.addEventListener('resize', this.onResize);\n\n const isResponseAreaEditor = this.props.className?.includes('response-area-editor');\n\n if (isResponseAreaEditor && this.editor) {\n const responseAreaEditor = document.querySelector(`[data-key=\"${this.editor.value.document.key}\"]`);\n\n if (responseAreaEditor) {\n responseAreaEditor.setAttribute('aria-label', 'Answer');\n }\n }\n\n if (this.editor && this.props.autoFocus) {\n Promise.resolve().then(() => {\n if (this.editor) {\n const editorDOM = document.querySelector(`[data-key=\"${this.editor.value.document.key}\"]`);\n\n this.editor.focus();\n\n if (editorDOM) {\n editorDOM.focus();\n }\n }\n });\n }\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { isHtmlMode, toolbarOpts } = this.state;\n const newToolbarOpts = createToolbarOpts(nextProps.toolbarOpts, nextProps.error, isHtmlMode);\n\n if (!isEqual(newToolbarOpts, toolbarOpts)) {\n this.setState({\n toolbarOpts: newToolbarOpts,\n });\n }\n\n const differentCharacterProps = !isEqual(nextProps.languageCharactersProps, this.props.languageCharactersProps);\n const differentMathMlProps = !isEqual(nextProps.mathMlOptions, this.props.mathMlOptions);\n const differentImageMaxDimensionsProps =\n !isEqual(nextProps.maxImageWidth, this.props.maxImageWidth) ||\n !isEqual(nextProps.maxImageHeight, this.props.maxImageHeight);\n\n if (differentCharacterProps || differentMathMlProps || differentImageMaxDimensionsProps) {\n this.handlePlugins(nextProps);\n }\n\n if (!nextProps.value?.document?.equals(this.props.value?.document)) {\n this.setState({\n focus: false,\n value: nextProps.value,\n });\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n // The cursor is on a zero width element and when that is placed near void elements, it is not visible\n // so we increase the width to at least 2px in order for the user to see it\n\n // Trigger plugins and finish editing if:\n // 1. The 'isHtmlMode' state has been toggled.\n // 2. We're currently in 'isHtmlMode' and the editor value has been modified.\n if (\n this.state.isHtmlMode !== prevState.isHtmlMode ||\n (this.state.isHtmlMode && !prevState.isEditedInHtmlMode && this.state.isEditedInHtmlMode)\n ) {\n this.handlePlugins(this.props);\n }\n\n const zeroWidthEls = document.querySelectorAll('[data-slate-zero-width=\"z\"]');\n\n Array.from(zeroWidthEls).forEach((el) => {\n el.style.minWidth = '2px';\n el.style.display = 'inline-block';\n });\n }\n\n onPluginBlur = (e) => {\n log('[onPluginBlur]', e && e.relatedTarget);\n const target = e && e.relatedTarget;\n\n const node = target ? findNode(target, this.state.value) : null;\n log('[onPluginBlur] node: ', node);\n this.setState({ focusedNode: node }, () => {\n this.resetValue();\n });\n };\n\n onPluginFocus = (e) => {\n log('[onPluginFocus]', e && e.target);\n const target = e && e.target;\n if (target) {\n const node = findNode(target, this.state.value);\n log('[onPluginFocus] node: ', node);\n\n const stashedValue = this.state.stashedValue || this.state.value;\n this.setState({ focusedNode: node, stashedValue });\n } else {\n this.setState({ focusedNode: null });\n }\n this.stashValue();\n };\n\n onMathClick = (node) => {\n this.editor.change((c) => c.collapseToStartOf(node));\n this.setState({ selectedNode: node });\n };\n\n onEditingDone = () => {\n const { isHtmlMode, dialog, value, pendingImages } = this.state;\n\n // Handling HTML mode and dialog state\n if (isHtmlMode) {\n // Early return if HTML mode is enabled\n if (dialog?.open) return;\n\n const currentValue = htmlToValue(value.document.text);\n const previewText = this.renderHtmlPreviewContent();\n\n this.openHtmlModeConfirmationDialog(currentValue, previewText);\n return;\n }\n\n if (pendingImages.length) {\n // schedule image processing\n this.setState({ scheduled: true });\n return;\n }\n\n // Finalizing editing\n log('[onEditingDone]');\n this.setState({ pendingImages: [], stashedValue: null, focusedNode: null });\n log('[onEditingDone] value: ', this.state.value);\n this.props.onChange(this.state.value, true);\n };\n\n /**\n * Renders the HTML preview content to be displayed inside the dialog.\n * This content includes the edited HTML and a prompt for the user.\n */\n renderHtmlPreviewContent = () => {\n const { classes } = this.props;\n return (\n <div ref={(ref) => (this.elementRef = ref)}>\n <div>Preview of Edited Html:</div>\n <PreviewPrompt defaultClassName={classes.previewText} prompt={this.state.value.document.text} />\n <div>Would you like to save these changes ?</div>\n </div>\n );\n };\n\n /**\n * Opens a confirmation dialog in HTML mode, displaying the preview of the current HTML content\n * and offering options to save or continue editing.\n */\n openHtmlModeConfirmationDialog = (currentValue, previewText) => {\n this.setState({\n dialog: {\n open: true,\n title: 'Content Preview & Save',\n text: previewText,\n onConfirmText: 'Save changes',\n onCloseText: 'Continue editing',\n onConfirm: () => {\n this.handleHtmlModeSaveConfirmation(currentValue);\n },\n onClose: this.htmlModeContinueEditing,\n },\n });\n };\n\n /**\n * Handles the save confirmation action in HTML mode. This updates the value to the confirmed\n * content, updates value on props, and exits the HTML mode.\n * @param {string} currentValue - The confirmed value of the HTML content to save.\n */\n handleHtmlModeSaveConfirmation = (currentValue) => {\n this.setState({ value: currentValue });\n this.props.onChange(currentValue, true);\n this.handleDialog(false);\n this.toggleHtmlMode();\n };\n\n /**\n * Closes the dialog in HTML mode and allows the user to continue editing the html content.\n * This function is invoked when the user opts to not save the current changes.\n */\n htmlModeContinueEditing = () => {\n this.handleDialog(false);\n };\n\n /**\n * Remove onResize event listener\n */\n componentWillUnmount() {\n window.removeEventListener('resize', this.onResize);\n }\n\n // Allowing time for onChange to take effect if it is called\n handleBlur = (resolve) => {\n const { nonEmpty } = this.props;\n const {\n toolbarOpts: { doneOn },\n } = this.state;\n\n this.setState({ toolbarInFocus: false, focusedNode: null });\n\n if (this.editor) {\n this.editor.blur();\n }\n\n if (doneOn === 'blur') {\n if (nonEmpty && this.state.value.startText?.text?.length === 0) {\n this.resetValue(true).then(() => {\n this.onEditingDone();\n resolve();\n });\n } else {\n this.onEditingDone();\n resolve();\n }\n }\n };\n\n onBlur = (event) => {\n log('[onBlur]');\n const relatedTarget = event.relatedTarget;\n const toolbarElement = this.toolbarRef && relatedTarget?.closest(`[class*=\"${this.toolbarRef.className}\"]`);\n\n // Check if relatedTarget is a done button\n const isRawDoneButton =\n this.doneButtonRef && relatedTarget?.closest(`[class*=\"${this.doneButtonRef.current?.className}\"]`);\n\n // Skip onBlur handling if relatedTarget is a button from the KeyPad characters\n this.skipBlurHandling = this.keypadInteractionDetected && relatedTarget !== null;\n\n if (toolbarElement && !isRawDoneButton && !this.state.focusToolbar) {\n this.setState({\n focusToolbar: true,\n });\n }\n\n const node = relatedTarget ? findNode(relatedTarget, this.state.value) : null;\n\n log('[onBlur] node: ', node);\n\n return new Promise((resolve) => {\n if (!this.skipBlurHandling) {\n this.setKeypadInteraction(false);\n this.setState(\n { preBlurValue: this.state.value, focusedNode: !node ? null : node },\n this.handleBlur.bind(this, resolve),\n );\n }\n\n this.props.onBlur(event);\n });\n };\n\n handleDomBlur = (e) => {\n const editorDOM = document.querySelector(`[data-key=\"${this.state.value.document.key}\"]`);\n\n setTimeout(() => {\n const { value: stateValue } = this.state;\n\n if (!this.wrapperRef) {\n return;\n }\n\n const editorElement = !editorDOM || document.activeElement.closest(`[class*=\"${editorDOM.className}\"]`);\n const toolbarElement =\n !this.toolbarRef || document.activeElement.closest(`[class*=\"${this.toolbarRef.className}\"]`);\n const isInCurrentComponent = this.wrapperRef.contains(editorElement) || this.wrapperRef.contains(toolbarElement);\n\n if (!isInCurrentComponent) {\n editorDOM.removeEventListener('blur', this.handleDomBlur);\n\n if (stateValue.isFocused) {\n this.onBlur(e);\n }\n }\n }, 50);\n };\n\n /*\n * Needs to be wrapped otherwise it causes issues because of race conditions\n * Known issue for slatejs. See: https://github.com/ianstormtaylor/slate/issues/2097\n * Using timeout I wasn't able to test this\n *\n * Note: The use of promises has been causing issues with MathQuill\n * */\n onFocus = (event, change) =>\n new Promise((resolve) => {\n const editorDOM = document.querySelector(`[data-key=\"${this.state.value.document.key}\"]`);\n const isTouchDevice =\n typeof window !== 'undefined' && ('ontouchstart' in window || navigator?.maxTouchPoints > 0);\n\n log('[onFocus]', document.activeElement);\n\n if (this.keypadInteractionDetected && this.__TEMPORARY_CHANGE_DATA) {\n this.__TEMPORARY_CHANGE_DATA = null;\n }\n\n /**\n * This is a temporary hack - @see changeData below for some more information.\n */\n if (this.__TEMPORARY_CHANGE_DATA) {\n const { key, data } = this.__TEMPORARY_CHANGE_DATA;\n const domEl = document.querySelector(`[data-key=\"${key}\"]`);\n\n if (domEl) {\n let change = this.state.value.change().setNodeByKey(key, { data });\n this.setState({ value: change.value }, () => {\n this.__TEMPORARY_CHANGE_DATA = null;\n });\n }\n }\n\n /**\n * This is needed just in case the browser decides to make the editor\n * lose focus without triggering the onBlur event (can happen in a few cases).\n * This will also trigger onBlur if the user clicks outside of the page when the editor\n * is focused.\n */\n if (editorDOM === document.activeElement) {\n editorDOM.removeEventListener('blur', this.handleDomBlur);\n editorDOM.addEventListener('blur', this.handleDomBlur);\n }\n\n this.stashValue();\n this.props.onFocus();\n\n // Added for accessibility: Ensures the editor gains focus when tabbed to for improved keyboard navigation\n const shouldFocusEditor = !this.keypadInteractionDetected && !isTouchDevice;\n\n if (shouldFocusEditor) {\n change?.focus();\n }\n\n resolve();\n });\n\n stashValue = () => {\n log('[stashValue]');\n\n if (!this.state.stashedValue) {\n this.setState({ stashedValue: this.state.value });\n }\n };\n\n /**\n * Reset the value if the user didn't click done.\n */\n resetValue = (force) => {\n const { value, focusedNode } = this.state;\n\n const stopReset = this.plugins.reduce((s, p) => {\n return s || (p.stopReset && p.stopReset(this.state.value));\n }, false);\n\n log('[resetValue]', value.isFocused, focusedNode, 'stopReset: ', stopReset);\n if ((this.state.stashedValue && !value.isFocused && !focusedNode && !stopReset) || force) {\n log('[resetValue] resetting...');\n log('stashed', this.state.stashedValue.document.toObject());\n log('current', this.state.value.document.toObject());\n\n const newValue = Value.fromJSON(this.state.stashedValue.toJSON());\n\n log('newValue: ', newValue.document);\n return new Promise((resolve) => {\n setTimeout(() => {\n this.setState({ value: newValue, stashedValue: null }, () => {\n log('value now: ', this.state.value.document.toJSON());\n resolve();\n });\n }, 50);\n });\n } else {\n return Promise.resolve({});\n }\n };\n\n onChange = (change, done) => {\n log('[onChange]');\n window.me = this;\n\n const { value } = change;\n const { charactersLimit } = this.props;\n let limit = charactersLimit;\n if (!limit || limit > MAX_CHARACTERS_LIMIT) {\n limit = MAX_CHARACTERS_LIMIT;\n }\n\n if (value && value.document && value.document.text && value.document.text.length > limit) {\n return;\n }\n\n // Mark the editor as edited when in HTML mode and its content has changed.\n // This status will later be used to decide whether to prompt a warning to the user when exiting HTML mode.\n const isEditedInHtmlMode = !this.state.isHtmlMode\n ? false\n : this.state.value.document.text !== value.document.text\n ? true\n : this.state.isEditedInHtmlMode;\n\n if (isEditedInHtmlMode != this.state.isEditedInHtmlMode) {\n this.handlePlugins(this.props);\n }\n\n this.setState({ value, isEditedInHtmlMode }, () => {\n log('[onChange], call done()');\n\n if (done) {\n done();\n }\n });\n };\n\n getFocusedValue = () => {\n if (this.state.value.isFocused) {\n return this.state.value;\n }\n\n return this.state.preBlurValue;\n };\n\n valueToSize = (v) => {\n if (!v) {\n return;\n }\n const calcRegex = /^calc\\((.*)\\)$/;\n\n if (typeof v === 'string') {\n if (v.endsWith('%')) {\n return undefined;\n } else if (\n v.endsWith('px') ||\n v.endsWith('vh') ||\n v.endsWith('vw') ||\n v.endsWith('ch') ||\n v.endsWith('em') ||\n v.match(calcRegex)\n ) {\n return v;\n } else {\n const value = parseInt(v, 10);\n return isNaN(value) ? value : `${value}px`;\n }\n }\n if (typeof v === 'number') {\n return `${v}px`;\n }\n };\n\n buildSizeStyle() {\n const { minWidth, width, maxWidth, minHeight, height, maxHeight } = this.props;\n\n return {\n width: this.valueToSize(width),\n minWidth: this.valueToSize(minWidth),\n maxWidth: this.valueToSize(maxWidth),\n height: this.valueToSize(height),\n minHeight: this.valueToSize(minHeight),\n maxHeight: this.valueToSize(maxHeight),\n };\n }\n\n validateNode = (node) => {\n if (node.object !== 'block') return;\n\n const last = node.nodes.last();\n if (!last) return;\n\n if (last.type !== 'image') return;\n\n log('[validateNode] last is image..');\n\n const parent = last.getParent(last.key);\n const p = Block.getParent(last.key);\n log('[validateNode] parent:', parent, p);\n\n return undefined;\n };\n\n changeData = (key, data) => {\n log('[changeData]. .. ', key, data);\n\n /**\n * HACK ALERT: We should be calling setState here and storing the change data:\n *\n * <code>this.setState({changeData: { key, data}})</code>\n * However this is causing issues with the Mathquill instance. The 'input' event stops firing on the element and no\n * more changes get through. The issues seem to be related to the promises in onBlur/onFocus. But removing these\n * brings it's own problems. A major clean up is planned for this component so I've decided to temporarily settle\n * on this hack rather than spend more time on this.\n */\n\n // Uncomment this line to see the bug described above.\n // this.setState({changeData: {key, data}})\n\n this.__TEMPORARY_CHANGE_DATA = { key, data };\n };\n\n focus = (pos, node) => {\n const position = pos || 'end';\n\n this.props.focus(position, node);\n };\n\n onDropPaste = async (event, change, dropContext) => {\n const editor = change.editor;\n const transfer = getEventTransfer(event);\n const file = transfer.files && transfer.files[0];\n\n const type = transfer.type;\n const fragment = transfer.fragment;\n const text = transfer.text;\n\n if (file && (file.type === 'image/jpeg' || file.type === 'image/jpg' || file.type === 'image/png')) {\n if (!this.props.imageSupport) {\n return;\n }\n try {\n log('[onDropPaste]');\n const src = await getBase64(file);\n const inline = Inline.create({\n type: 'image',\n isVoid: true,\n data: {\n loading: false,\n src,\n },\n });\n\n if (dropContext) {\n this.focus();\n } else {\n const range = getEventRange(event, editor);\n if (range) {\n change.select(range);\n }\n }\n\n const ch = change.insertInline(inline);\n this.onChange(ch);\n const handler = new InsertImageHandler(\n inline,\n () => {},\n () => this.state.value,\n this.onChange,\n true,\n );\n handler.fileChosen(file);\n this.props.imageSupport.add(handler);\n } catch (err) {\n log('[onDropPaste] error: ', err);\n }\n } else if (type === 'fragment') {\n change.insertFragment(fragment);\n } else if (type === 'text' || type === 'html') {\n if (!text) {\n return;\n }\n const {\n value: { document, selection, startBlock },\n } = change;\n\n if (startBlock.isVoid) {\n return;\n }\n\n const defaultBlock = startBlock;\n const defaultMarks = document.getInsertMarksAtRange(selection);\n const frag = Plain.deserialize(text, {\n defaultBlock,\n defaultMarks,\n }).document;\n change.insertFragment(frag);\n }\n };\n\n renderPlaceholder = (props) => {\n const { editor } = props;\n const { document } = editor.value;\n\n if (!editor.props.placeholder || document.text !== '' || document.nodes.size !== 1 || !document.isEmpty) {\n return false;\n }\n\n return (\n <span\n contentEditable={false}\n style={{\n display: 'inline-block',\n width: 'fit-content', // for centering the placeholder if text-align is set to center\n maxWidth: '100%',\n whiteSpace: 'nowrap',\n opacity: '0.33',\n pointerEvents: 'none',\n userSelect: 'none',\n }}\n >\n {editor.props.placeholder}\n </span>\n );\n };\n\n render() {\n const {\n disabled,\n spellCheck,\n highlightShape,\n classes,\n className,\n isEditor,\n placeholder,\n pluginProps,\n onKeyDown,\n } = this.props;\n // We don't want to send customPlugins to slate.\n // Not sure if they would do any harm, but I think it's better to not send them.\n // We use custom plugins to be able to add custom buttons\n // eslint-disable-next-line no-unused-vars\n const { customPlugins, showParagraphs, separateParagraphs, ...otherPluginProps } = pluginProps || {};\n\n const { value, focusedNode, toolbarOpts, dialog, scheduled } = this.state;\n\n log('[render] value: ', value);\n const sizeStyle = this.buildSizeStyle();\n const names = classNames(\n {\n [classes.withBg]: highlightShape,\n [classes.toolbarOnTop]: toolbarOpts.alwaysVisible && toolbarOpts.position === 'top',\n [classes.scheduled]: scheduled,\n },\n className,\n );\n\n return (\n <div\n ref={(ref) => (this.wrapperRef = ref)}\n style={{ width: sizeStyle.width, minWidth: sizeStyle.minWidth, maxWidth: sizeStyle.maxWidth }}\n className={names}\n id={`editor-${value?.document?.key}`}\n >\n {scheduled && <div className={classes.uploading}>Uploading image and then saving...</div>}\n <SlateEditor\n plugins={this.plugins}\n innerRef={(r) => {\n if (r) {\n this.slateEditor = r;\n }\n }}\n ref={(r) => (this.editor = r && this.props.editorRef(r))}\n toolbarRef={(r) => {\n if (r) {\n this.toolbarRef = r;\n }\n }}\n doneButtonRef={this.doneButtonRef}\n value={value}\n focusToolbar={this.state.focusToolbar}\n onToolbarFocus={this.handleToolbarFocus}\n onToolbarBlur={this.handleToolbarBlur}\n focus={this.focus}\n onKeyDown={onKeyDown}\n onChange={this.onChange}\n getFocusedValue={this.getFocusedValue}\n onBlur={this.onBlur}\n onDrop={(event, editor) => this.onDropPaste(event, editor, true)}\n onPaste={(event, editor) => this.onDropPaste(event, editor)}\n onFocus={this.onFocus}\n onEditingDone={this.onEditingDone}\n focusedNode={focusedNode}\n normalize={this.normalize}\n readOnly={disabled}\n spellCheck={spellCheck}\n autoCorrect={spellCheck}\n className={classNames(\n {\n [classes.noPadding]: toolbarOpts?.noPadding,\n [classes.showParagraph]: showParagraphs && !showParagraphs.disabled,\n [classes.separateParagraph]: separateParagraphs && !separateParagraphs.disabled,\n },\n classes.slateEditor,\n )}\n style={{\n minHeight: sizeStyle.minHeight,\n height: sizeStyle.height,\n maxHeight: sizeStyle.maxHeight,\n }}\n pluginProps={otherPluginProps}\n toolbarOpts={toolbarOpts}\n placeholder={placeholder}\n renderPlaceholder={this.renderPlaceholder}\n onDataChange={this.changeData}\n />\n <AlertDialog\n open={dialog.open}\n title={dialog.title}\n text={dialog.text}\n onClose={dialog.onClose}\n onConfirm={dialog.onConfirm}\n onConfirmText={dialog.onConfirmText}\n onCloseText={dialog.onCloseText}\n />\n </div>\n );\n }\n}\n\n// TODO color - hardcoded gray background and keypad colors will need to change too\nconst styles = {\n withBg: {\n backgroundColor: 'rgba(0,0,0,0.06)',\n },\n scheduled: {\n opacity: 0.5,\n pointerEvents: 'none',\n position: 'relative',\n },\n uploading: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n },\n slateEditor: {\n fontFamily: 'Roboto, sans-serif',\n\n '& table': {\n tableLayout: 'fixed',\n width: '100%',\n borderCollapse: 'collapse',\n color: color.text(),\n backgroundColor: color.background(),\n },\n '& table:not([border=\"1\"]) tr': {\n borderTop: '1px solid #dfe2e5',\n // TODO perhaps secondary color for background, for now disable\n // '&:nth-child(2n)': {\n // backgroundColor: '#f6f8fa'\n // }\n },\n '& td, th': {\n padding: '.6em 1em',\n textAlign: 'center',\n },\n '& table:not([border=\"1\"]) td, th': {\n border: '1px solid #dfe2e5',\n },\n },\n showParagraph: {\n // a div that has a div after it\n '& > div:has(+ div)::after': {\n display: 'block',\n content: '\"¶\"',\n fontSize: '1em',\n color: '#146EB3',\n },\n },\n separateParagraph: {\n // a div that has a div after it\n '& > div:has(+ div)': {\n marginBottom: '1em',\n },\n },\n toolbarOnTop: {\n marginTop: '45px',\n },\n noPadding: {\n padding: '0 !important',\n },\n previewText: {\n marginBottom: '36px',\n marginTop: '6px',\n padding: '20px',\n backgroundColor: 'rgba(0,0,0,0.06)',\n },\n};\n\nexport default withStyles(styles)(Editor);\n","export const parseDegrees = (html) =>\n html\n // removes \\( use case: 50°\n .replace(/\\\\[(]/g, '')\n // removes \\) use case: 50°+m<1\n .replace(/\\\\[)]/g, '')\n // removes \\degree use case: 50°\n .replace(/\\\\degree/g, '&deg;');\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Editor, { DEFAULT_PLUGINS, ALL_PLUGINS } from './editor';\nimport { extraCSSRulesOpts, htmlToValue, valueToHtml, reduceMultipleBrs } from './serialization';\nimport { parseDegrees } from './parse-html';\nimport constants from './constants';\nimport debug from 'debug';\nimport { Range } from 'slate';\n\nconst log = debug('@pie-lib:editable-html');\n\n/**\n * Wrapper around the editor that exposes a `markup` and `onChange(markup:string)` api.\n * Because of the mismatch between the markup and the `Value` we need to convert the incoming markup to a value and\n * compare it. TODO: This is an interim fix, we'll need to strip back `Editor` and look how best to maintain the\n * `markup` api whilst avoiding the serialization mismatch. We should be making better use of schemas w/ normalize.\n */\nexport default class EditableHtml extends React.Component {\n static propTypes = {\n error: PropTypes.any,\n onChange: PropTypes.func.isRequired,\n onDone: PropTypes.func,\n markup: PropTypes.string.isRequired,\n allowValidation: PropTypes.bool,\n toolbarOpts: PropTypes.object,\n extraCSSRules: PropTypes.shape({\n names: PropTypes.arrayOf(PropTypes.string),\n rules: PropTypes.string,\n }),\n };\n\n static defaultProps = {\n onDone: () => {},\n allowValidation: false,\n };\n\n constructor(props) {\n super(props);\n\n if (props.extraCSSRules) {\n Object.assign(extraCSSRulesOpts, this.props.extraCSSRules);\n }\n\n const v = htmlToValue(props.markup);\n this.state = {\n value: v,\n };\n }\n\n // eslint-disable-next-line react/no-deprecated\n componentWillReceiveProps(props) {\n if (!props.allowValidation && props.markup === this.props.markup) {\n return;\n }\n\n const v = htmlToValue(props.markup);\n const current = htmlToValue(this.props.markup);\n\n if (v.equals && !v.equals(current)) {\n this.setState({ value: v });\n }\n }\n\n runSerializationOnMarkup = () => {\n if (!this.props.markup) {\n return;\n }\n\n const v = htmlToValue(reduceMultipleBrs(this.props.markup));\n\n this.setState({ value: v });\n };\n\n onChange = (value, done) => {\n const html = valueToHtml(value);\n const htmlParsed = parseDegrees(html);\n\n if (htmlParsed !== this.props.markup && this.props.onChange) {\n this.props.onChange(htmlParsed);\n }\n\n if (done && this.props.onDone) {\n this.props.onDone(htmlParsed);\n }\n };\n\n focus = (position, node, select = false) => {\n if (this.editorRef) {\n this.editorRef.change((c) => {\n const lastText = node ? c.value.document.getNextText(node.key) : c.value.document.getLastText();\n const editorDOM = document.querySelector(`[data-key=\"${this.editorRef.value.document.key}\"]`);\n\n if (editorDOM !== document.activeElement) {\n document.activeElement.blur();\n }\n\n c.focus();\n\n if (position === 'end' && lastText) {\n c.moveFocusTo(lastText.key, lastText.text?.length).moveAnchorTo(lastText.key, lastText.text?.length);\n if (select) {\n const range = Range.fromJSON({\n anchorKey: lastText.key,\n anchorOffset: 0,\n focusKey: lastText.key,\n focusOffset: lastText.text?.length,\n isFocused: true,\n isBackward: false,\n });\n c.select(range);\n }\n }\n\n if (position === 'beginning' && lastText) {\n c.moveFocusTo(lastText.key, 0).moveAnchorTo(lastText.key, 0);\n }\n editorDOM.focus();\n });\n }\n };\n\n finishEditing = () => {\n if (this.editorRef) {\n this.editorRef.props.onEditingDone();\n }\n };\n\n render() {\n const { value } = this.state;\n const { toolbarOpts, error } = this.props;\n\n if (toolbarOpts) {\n toolbarOpts.error = error;\n }\n\n const props = {\n ...this.props,\n markup: null,\n value,\n onChange: this.onChange,\n focus: this.focus,\n runSerializationOnMarkup: this.runSerializationOnMarkup,\n };\n\n return (\n <Editor\n onRef={(ref) => {\n if (ref) {\n this.rootRef = ref;\n }\n }}\n editorRef={(ref) => ref && (this.editorRef = ref)}\n {...props}\n />\n );\n }\n}\n\n/**\n * Export lower level Editor and serialization functions.\n */\nexport { htmlToValue, valueToHtml, Editor, DEFAULT_PLUGINS, ALL_PLUGINS, constants };\n"],"names":["AlertDialog","text","title","onClose","onConfirm","open","onCloseText","onConfirmText","classes","heading","subheading","Button","defaultProps","propTypes","PropTypes","oneOfType","string","object","func","bool","styles","fontSize","withStyles","require$$0","setStatic_1","setStatic","setDisplayName_1","require$$1","setDisplayName","getDisplayName_1","getDisplayName","wrapDisplayName_1","wrapDisplayName","shouldUpdate_1","require$$2","require$$3","require$$4","shouldUpdate","pure_1","pure","createSvgIcon_1","createSvgIcon","Image","log","debug","size","s","Component","React","getWidth","percent","multiplier","img","naturalWidth","getHeight","naturalHeight","getPercentFromWidth","width","floored","parseInt","toFixed","applySizeData","node","editor","props","update","data","w","get","set","equals","change","c","setNodeByKey","key","initialiseResize","window","addEventListener","startResizing","stopResizing","loadImage","maxImageWidth","maxImageHeight","box","style","dimensions","height","updateImageDimensions","setState","e","bounds","target","getBoundingClientRect","clientX","left","clientY","top","hasMinimumWidth","hasDimensionsConstraints","removeEventListener","initialDim","nextDim","keepAspectRatio","resizeType","imageAspectRatio","componentDidMount","resizeHandle","resize","componentDidUpdate","getSize","objectFit","render","attributes","onFocus","active","value","isFocused","selection","hasEdgeIn","src","loaded","deleteStatus","alignment","alt","justifyContent","className","classNames","root","loading","pendingDelete","progressClasses","progress","hideProgress","imageContainer","image","ref","SlatePropTypes","isRequired","shape","onBlur","number","theme","portal","position","opacity","transition","floatingButtonRow","backgroundColor","palette","background","paper","borderRadius","display","padding","border","grey","boxShadow","common","white","delete","right","alignItems","primary","main","cursor","marginLeft","marginRight","drawableHeight","minHeight","button","color","outline","disabled","RawButton","constructor","onClick","preventDefault","onKeyDown","children","extraStyles","ariaLabel","names","arrayOf","RawMarkButton","onToggle","mark","label","MarkButton","ArrowBackIos","AltDialog","closeDialog","allDialogs","document","querySelectorAll","forEach","remove","onDone","state","handleOverflow","body","removeProperty","Dialog","DialogContent","paddingTop","event","DialogActions","AlignmentButton","ImageToolbar","onAltTextDone","newAlt","onChange","onAlignmentClick","renderDialog","popoverEl","createElement","el","ReactDOM","appendChild","imageLoaded","disableImageAlignmentButtons","holder","altButton","paddingLeft","spacing","unit","borderLeft","InsertImageHandler","placeholderBlock","onFinish","getValue","isPasted","chosenFile","getPlaceholderInDocument","directChild","getChild","child","getDescendant","Error","cancel","removeNodeByKey","err","done","console","merge","Data","create","fileChosen","file","reader","FileReader","onload","dataURL","result","readAsDataURL","bytes","total","getChosenFile","ImagePlugin","opts","toolbar","insertImageRequested","icon","inline","Inline","type","isVoid","undefined","insertInline","supports","customToolbar","onToolbarDone","newValues","_extends","toObject","Tb","showDone","name","deleteNode","onDelete","v","stopReset","imgPendingInsertion","findDescendant","n","renderNode","all","Object","assign","normalizeNode","textNodeMap","updateNodesArray","index","d","push","length","withoutNormalization","insertTextByKey","serialization","deserialize","tagName","toLowerCase","replace","out","getAttribute","margin","serialize","Functions","BLOCK_TAGS","div","p","pre","h1","h2","h4","h5","h6","TEXT_NODE","generateAdditionalKeys","keyData","map","latex","write","CustomToolbarComp","memo","pluginProps","math","keypadMode","customKeys","controlledKeypadMode","nextText","getNextText","moveFocusTo","moveAnchorTo","onDataChange","prev","next","nodeNext","keypadModeNext","controlledKeypadModeNext","keypadModeChanged","controlledKeypadModeChanged","equal","MathPlugin","mathMlOptions","mmlOutput","mmlEditing","inlineMath","schema","match","pluginStyles","parentNode","html","__html","ROUND_BRACKETS","SQUARE_BRACKETS","DOLLAR","DOUBLE_DOLLAR","htmlDecode","input","doc","DOMParser","parseFromString","documentElement","textContent","getTagName","arrowHandlingCase","replaceLeftRight","latexInput","convertLatexToMathMl","decoded","wrapper","removeEmptyMos","mmlFromLatex","regex","handled","latexToConvert","wrapMath","mathMlFromLatex","renderMath","skipWaitForMathRenderingLib","conversionDidNotWork","isEqual","latexFromMathMl","mmlToLatex","strippedL","strippedNewL","correctedLatex","initialLatex","newLatex","mathML","convertMathMlToLatex","mathMl","htmlWithRemovedSpaces","replaceAll","htmlToUse","hasMathChild","childNodes","firstChild","dataset","innerHTML","outerHTML","unwrapped","wrapType","unWrapMath","nodes","nodeType","hasLatex","hasAttribute","Delete","matchYoutubeUrl","url","matchVimeoUrl","test","matchDriveUrl","matchSoundCloudUrl","regexp","makeApiRequest","Promise","resolve","fetch","then","response","json","iframe","querySelector","catch","typeMap","video","audio","tabsTypeMap","uploadFile","insertUrl","MediaDialog","formatUrl","urlToUse","starts","ends","isYoutube","isVimeo","formattedUrl","params","paramName","paramStart","join","callback","updating","handleStateChange","newState","checkAudio","invalid","checkVideo","regExp","id","urlChange","changeHandler","handleDone","val","handleClose","tabValue","fileUpload","isInsertURL","handleRemoveFile","tag","scheduled","handleUploadFile","error","files","mimeType","uploadSoundSupport","add","bind","showUploadFile","disablePortal","edit","isUploadMedia","submitIsDisabled","DialogTitle","row","properties","DialogContentText","uploadInput","deleteIcon","ActionDelete","minWidth","flexDirection","rowItem","borderBottom","marginTop","useStyles","bottom","editContainer","flex","black","textAlign","borderWidth","paddingRight","removeContainer","MediaToolbar","hideEdit","onEdit","onRemove","overflow","MediaWrapper","rest","_excluded","array","removeDialogs","prevDialogs","insertDialog","newEl","initialBodyOverflow","types","MediaPlugin","editing","nodeIsThere","focus","jsonData","toJSON","handleEdit","createChange","handleDelete","isMedia","indexOf","typeIndex","Element","divProps","b","Array","from","createEditList","core","EditList","typeDefault","listOptions","ListOptions","blocks","keys","block","parent","getHighestSelectedBlocks","range","startBlock","getClosestBlock","startKey","endBlock","endKey","Immutable","List","ancestor","getCommonAncestor","startPath","getPath","endPath","slice","changes","wrapInList","selectedBlocks","wrapBlock","normalize","utils","isList","_ref","unwrapNodeByKey","wrapBlockByKey","unwrapList","items","getItemsAtRange","isEmpty","item","firstItem","first","getParent","findIndex","moveNodeByKey","this","getCurrentItem","typeItem","getListForItem","isSelectionInList","options","isMark","isActive","current","getCurrentList","inList","call","validateNode","invalidListItems","forEachDescendant","textNode","wrappedBlock","insertNodeByKey","GridOn","Check","RawDoneButton","doneButtonRef","iconRoot","verticalAlign","DoneButton","BorderAll","findSingleNode","isCollapsed","getClosestInline","findParentNode","hasMark","marks","some","hasBlock","ToolbarButton","fnToCall","getFocusedValue","newIcon","cloneElement","buttonStyles","any","isActiveToolbarPlugin","plugin","isDisabled","DefaultToolbar","plugins","deletable","isHtmlMode","filtered","handleFocus","doneButtonClassName","isRawDoneButton","closest","filter","isListActive","includes","isTableActive","isSelectionInTable","isToolbarButtonDisabled","defaultToolbar","buttonsContainer","addArea","toolbarStyles","fill","SvgIcon","AddRow","RemoveRow","AddColumn","RemoveColumn","RemoveTable","TableToolbar","onAddRow","onRemoveRow","onAddColumn","onRemoveColumn","onRemoveTable","onToggleBorder","hasBorder","filteredPlugins","reduce","acc","respAreaPlugin","otherPlugins","tableToolbar","toolbarButtons","onBackspace","startCell","getClosest","isCell","endCell","startBlockIndex","isAtStartOf","cells","typeCell","a","toSet","ignoreFirstCell","collapseToStart","isAtEndOf","ignoreLastCell","collapseToEnd","last","cellsToClear","butLast","cell","clearCell","updatedStartCell","collapseToStartOf","KEY_ENTER","KEY_TAB","KEY_BACKSPACE","KEY_DOWN","KEY_UP","args","metaKey","exitBlockType","onModEnter","onEnter","onTab","onUpDown","EditTable","tableOpts","TableOptions","Table","table","nodeAttributes","dataToAttributes","TableRow","TableCell","td","Tag","header","moveFocusToBeginningOfTable","addedTable","toolbarPlugins","CustomTablePlugin","objects","getTableBlock","containerNode","ancestors","getAncestors","findLast","createTableWithOptions","columns","extra","createdTable","createTable","newTable","Block","insertBlock","tableBlock","addRow","insertRow","addColumn","insertColumn","removeRow","removeColumn","removeTable","toggleBorder","Node","addNodeBeforeArray","tablePath","prevNode","getPreviousNode","nextNode","getNextNode","newBlock","indexToAdd","splice","insertNodeByPath","parseStyleString","exec","trim","reactAttributes","o","toStyleObject","camelize","addUnits","attributesToMap","attribute","styleString","reactStyleObject","convert","cellAttributes","ChevronRight","MoreVert","getRotate","direction","Chevron","rotate","transform","GripIcon","ToolbarIcon","fontFamily","typography","fontWeight","lineHeight","whiteSpace","InlineDropdown","selectedItem","boxSizing","textOverflow","content","chip","correct","incorrect","selected","primaryDark","BlankContent","handleClick","hoveredElementSize","componentWillUnmount","elementRef","contains","getSnapshotBeforeUpdate","prevProps","isOver","offsetWidth","offsetHeight","prevState","snapshot","isDragging","dragItem","finalLabel","hasGrip","isPreview","defaults","BORDER_LIGHT","WHITE","BORDER_DARK","StyledBlankContent","connectedBlankContent","connectDropTarget","connectDragSource","dragContent","dragEl","classnames","over","tileTarget","drop","monitor","draggedItem","getItem","shouldDrop","isUndefined","dropped","canDrop","instanceId","DropTile","DropTarget","connect","dropTarget","shallow","tileSource","canDrag","beginDrag","targetId","fromChoice","endDrag","dropResult","getDropResult","duplicates","removeResponse","DragSource","dragSource","onValueChange","nodeProps","onEditingDone","onRemoveResponse","dragInTheBlank","DragDrop","inTable","ExplicitConstructedResponse","visibility","MathTemplated","keyToDisplay","spanContainer","responseBox","mathBlock","borderRight","borderTop","insertSnackBar","message","prevSnacks","vertical","horizontal","setTimeout","defaultECR","defaultMT","defaultDIB","defaultIDD","getDefaultElement","lastIndexMap","elTypesMap","elTypesArray","values","ResponseAreaPlugin","isOfCurrentType","currentRespAreaList","filterDescendants","maxResponseAreas","prevIndex","newIndex","newInline","lastText","getLastText","respAreaToolbar","filterPlugins","DragInTheBlank","oldRespAreaList","arrayToFilter","arrayToUseForFilter","elementsWithChangedStatus","find","onHandleAreaChange","onDrop","closestEl","MARK_TAGS","em","u","code","strong","blockquote","h3","sup","sub","getBase64","reject","onerror","cn","INLINE_TAGS","span","inlines","inlineTag","extraCSSRulesOpts","STYLES_MAP","reactToHTMLAttributesMap","class","elClasses","hasCSSRule","attrs","htmlAttrs","obj","Mark","additionalStyles","_extends2","TEXT_RULE","leaves","nodeName","nodeValue","split","i","RULES","listSerialization","mathSerialization","mediaSerialization","imgSerialization","tableSerialization","responseAreaSerialization","allWhitespace","defaultParseHtml","parsed","textNodes","createTreeWalker","NodeFilter","SHOW_TEXT","isWhiteSpace","isNotNearMarkup","nextSibling","previousSibling","removeChild","parseHtml","serializer","Html","defaultBlock","rules","arguments","source","prototype","hasOwnProperty","_options$toJSON","fragment","deserializeElements","original","_block","ret","Value","fromJSON","reduceMultipleBrs","markup","reduceRedundantNewLineCharacters","fixHtmlCode","wrapperEl","fixParagraphs","attr","setAttribute","replaceWith","fixTables","tableArray","nodesBefore","nodesAfter","allNodes","beforeEl","append","after","afterEl","emptyBlockCheck","parseNode","childArray","hasParagraphs","tables","handleHtml","htmlToValue","valueToHtml","FormatQuote","Redo","Undo","popover","pointerEvents","zIndex","CustomPopper","spanishConfig","characters","specialConfig","hasPreview","unicode","description","extraProps","gridRow","String","fromCodePoint","characterIcons","spanish","special","removePopOvers","prevPopOvers","editorDOM","configToUse","language","layoutForCharacters","arr","rows","closePopOver","renderPopOver","infoStyle","currentTarget","firstCallMade","listener","focusIsInModals","focusIsInEditor","handleChange","keyPadCharacterRef","setKeypadInteraction","k","category","extraClass","actions","onMouseEnter","ev","onMouseLeave","cursorItem","anchorKey","bodyRect","boundRect","additionalTopOffset","y","maxWidth","Math","abs","leftValue","rightValue","x","leftAlignedWidth","rightAlignedWidth","CharacterIcon","letter","CharactersPlugin","characterIcon","valueToUse","char","anchorOffset","MAIN_CONTAINER_CLASS","PIE_TOOLBAR__CLASS","getCustomToolbar","Toolbar","onButtonClick","fn","finishEditing","Change","onDeleteClick","debounce","onDeleteMouseDown","persist","removeCharacterDialogs","toolbarOpts","autoWidth","toolbarRef","parentPlugin","handler","handleDataChange","CustomToolbar","parentExtraStyles","pluginExtraStyles","customToolbarShowDone","alwaysVisible","defaultToolbarShowDone","hasDoneButton","toolbarWithNoDone","toolbarTop","toolbarRight","focused","fullWidth","hidden","isHidden","customStyles","shared","onImageClick","oneOf","EditorAndToolbar","focusedNode","readOnly","disableScrollbar","disableUnderline","focusToolbar","onToolbarFocus","onToolbarBlur","inFocus","holderNames","editorHolder","editorInFocus","disabledUnderline","disabledScrollbar","clonedChildren","editorRef","noBorder","noPadding","wordBreak","maxHeight","overflowY","scrollbarWidth","backgroundSize","backgroundImage","backgroundRepeat","backgroundPosition","ToolbarPlugin","renderEditor","mainEditorRef","HtmlModeIcon","toggleToRichText","dismiss","plainText","slateValue","selectAll","insertFragment","HtmlPlugin","isEditedInHtmlMode","toggleHtmlMode","handleAlertDialog","currentValue","handleHtmlModeOn","dialogProps","handleHtmlModeOff","insertText","CssIcon","selectedText","focusOffset","parentNodeClass","createHTML","flexFlow","parentElement","findParentNodeInfo","closestInline","closestBlock","nodeToUse","CSSPlugin","activeMarks","entry","removeMark","newMark","addMark","getTextsAtRangeAsArray","renderMark","CONTENT_TYPE","FRAGMENT","ICON_TYPE","SVG","getIcon","customPluginProps","svg","iconType","iconAlt","CustomPlugin","customContent","contentType","contentValue","dispatchEvent","CustomEvent","detail","extraAttributes","AlignLeft","AlignRight","AlignCenter","AlignJustify","setOpen","useState","texts","blockParent","align","applyAlignment","alignType","onMouseDown","stopPropagation","TextAlign","SuperscriptIcon","SubscriptIcon","HeadingIcon","MarkHotkey","onlyOneText","sameMark","t","getMarksAsArray","markIsThere","m","shouldContinue","getNode","toggleMark","K","ALL_PLUGINS","DEFAULT_PLUGINS","plug","ICON_MAP","undo","redo","UndoRedo","IconToUse","EnterHandlingPlugin","Hotkeys","isSplitBlock","IS_IOS","isInVoid","collapseToStartOfNextText","splitBlock","buildPlugins","activePlugins","customPlugins","addIf","imagePlugin","mathPlugin","responseArea","RespAreaPlugin","compact","cssPlugin","extraCSSRules","languageCharactersPlugins","languageCharacters","config","tablePlugins","builtCustomPlugins","customPlugin","isValidEventName","eventName","TablePlugin","media","SoftBreakPlugin","shift","RenderingPlugin","defaultToolbarOpts","doneOn","defaultResponseAreaProps","defaultLanguageCharactersProps","createToolbarOpts","MAX_CHARACTERS_LIMIT","Editor","interacted","keypadInteractionDetected","handleDialog","extraDialogProps","dialog","newToolbarOpts","handlePlugins","normalizedResponseAreaProps","responseAreaProps","htmlPluginOpts","onMathClick","onPluginFocus","onPluginBlur","imageSupport","newPendingImages","pendingImages","oldScheduled","addedImage","getHandler","cb","autoWidthToolbar","nonEmpty","toolbarInFocus","blur","startText","resetValue","languageCharactersProps","runSerializationOnMarkup","relatedTarget","findNode","stashedValue","stashValue","selectedNode","previewText","renderHtmlPreviewContent","openHtmlModeConfirmationDialog","handleHtmlModeSaveConfirmation","htmlModeContinueEditing","handleBlur","toolbarElement","skipBlurHandling","preBlurValue","handleDomBlur","stateValue","wrapperRef","editorElement","activeElement","isInCurrentComponent","isTouchDevice","navigator","maxTouchPoints","__TEMPORARY_CHANGE_DATA","domEl","shouldFocusEditor","force","newValue","me","charactersLimit","limit","valueToSize","calcRegex","endsWith","isNaN","changeData","pos","onDropPaste","dropContext","transfer","getEventTransfer","getEventRange","select","ch","defaultMarks","getInsertMarksAtRange","frag","Plain","renderPlaceholder","placeholder","userSelect","createRef","handleToolbarFocus","handleToolbarBlur","onResize","toolbarContainsFocus","onRef","isResponseAreaEditor","responseAreaEditor","autoFocus","UNSAFE_componentWillReceiveProps","nextProps","differentCharacterProps","differentMathMlProps","differentImageMaxDimensionsProps","zeroWidthEls","buildSizeStyle","spellCheck","highlightShape","isEditor","showParagraphs","separateParagraphs","otherPluginProps","sizeStyle","withBg","toolbarOnTop","uploading","SlateEditor","r","slateEditor","showParagraph","separateParagraph","SlateTypes","allValid","every","tableLayout","borderCollapse","marginBottom","parseDegrees","EditableHtml","htmlParsed","Range","focusKey","isBackward","componentWillReceiveProps","allowValidation","rootRef"],"mappings":"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","x_google_ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12,13,16,21,24,25,26,32,33,35,42,43,53,54,55,56,57,58,62,63,69]}