@pie-element/complex-rubric 2.10.2-next.31 → 2.10.2-next.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (21) hide show
  1. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/code/editable-html/editor.js +32 -16
  2. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/code/editable-html/editor.js.map +1 -1
  3. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/image/component.js +4 -18
  4. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/image/component.js.map +1 -1
  5. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/list/index.js +12 -4
  6. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/list/index.js.map +1 -1
  7. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/code/plot/label.js +2 -2
  8. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/code/plot/label.js.map +1 -1
  9. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/code/plot/root.js +3 -3
  10. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/code/plot/root.js.map +1 -1
  11. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/package.json +2 -2
  12. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/editor.jsx +34 -17
  13. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/image/component.jsx +4 -13
  14. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/list/index.jsx +9 -4
  15. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/src/code/plot/label.jsx +1 -1
  16. package/configure/node_modules/@pie-element/rubric/node_modules/@pie-lib/pie-toolbox/src/code/plot/root.jsx +3 -3
  17. package/module/configure.js +1 -1
  18. package/module/element.js +1 -1
  19. package/module/manifest.json +1 -1
  20. package/module/print.js +1 -1
  21. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/code/editable-html/plugins/image/component.jsx"],"names":["log","size","s","Component","percent","multiplier","img","naturalWidth","naturalHeight","width","floored","parseInt","toFixed","props","node","editor","update","data","w","resizePercent","getPercentFromWidth","selection","Editor","parent","nodePath","apply","type","path","properties","newProperties","window","addEventListener","startResizing","stopResizing","maxImageWidth","maxImageHeight","box","style","dimensions","height","updateImageDimensions","setState","e","bounds","target","getBoundingClientRect","clientX","left","clientY","top","hasMinimumWidth","hasDimensionsConstraints","removeEventListener","initialDim","nextDim","keepAspectRatio","resizeType","imageAspectRatio","applySizeData","resizeHandle","resize","initialiseResize","objectFit","focused","classes","attributes","children","onFocus","active","alignment","alt","deleteStatus","loaded","src","isLoaded","justifyContent","getSize","className","root","loading","pendingDelete","progressClasses","progress","hideProgress","imageContainer","image","ref","loadImage","React","PropTypes","shape","string","array","object","isRequired","bool","change","func","value","onBlur","number","styles","theme","portal","position","opacity","transition","floatingButtonRow","backgroundColor","palette","background","paper","borderRadius","display","padding","border","grey","boxShadow","common","white","right","alignItems","primary","main","cursor","marginLeft","marginRight","drawableHeight","minHeight"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport debug from 'debug';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Editor } from 'slate';\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: PropTypes.shape({\n type: PropTypes.string,\n children: PropTypes.array,\n data: PropTypes.object,\n }).isRequired,\n focused: PropTypes.bool,\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 = cloneDeep(node.data);\n\n const w = update.width;\n\n if (w) {\n update.resizePercent = this.getPercentFromWidth(w);\n }\n\n log('[applySizeData] update: ', update);\n\n if (editor.selection && !isEqual(update, node.data)) {\n const [, nodePath] = Editor.parent(editor, editor.selection);\n\n editor.apply({\n type: 'set_node',\n path: nodePath,\n properties: {\n data: node.data,\n },\n newProperties: { data: update },\n });\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.width),\n height: size(data.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 const update = cloneDeep(node.data);\n\n update.width = width;\n update.height = height;\n\n if (editor.selection && !isEqual(update, node.data)) {\n const [, nodePath] = Editor.parent(editor, editor.selection);\n\n editor.apply({\n type: 'set_node',\n path: nodePath,\n properties: {\n data: node.data,\n },\n newProperties: { data: update },\n });\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 const update = {\n ...node.data,\n width,\n height,\n };\n\n if (!isEqual(update, node.data)) {\n const [, nodePath] = Editor.parent(editor, editor.selection);\n\n editor.apply({\n type: 'set_node',\n path: nodePath,\n properties: {\n data: node.data,\n },\n newProperties: { data: update },\n });\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, focused, classes, attributes, children, onFocus } = this.props;\n const active = focused;\n const { alignment, alt, deleteStatus, loaded, percent, src } = node.data;\n const isLoaded = loaded !== false;\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(classes.root, {\n [classes.loading]: !isLoaded,\n [classes.pendingDelete]: deleteStatus === 'pending',\n });\n\n const progressClasses = classNames(classes.progress, {\n [classes.hideProgress]: isLoaded,\n });\n\n return (\n <div onFocus={onFocus} className={className} style={{ justifyContent }} {...attributes}>\n {children}\n <LinearProgress mode=\"determinate\" value={percent > 0 ? percent : 0} className={progressClasses} />\n <div className={classes.imageContainer}>\n <img\n className={classNames(classes.image, { [classes.active]: 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 );\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 width: '100%',\n },\n delete: {\n position: 'absolute',\n right: 0,\n },\n imageContainer: {\n position: 'relative',\n width: 'fit-content',\n display: 'flex',\n alignItems: 'center',\n\n '&&:hover > .resize': {\n display: 'block',\n },\n },\n active: {\n border: `solid 1px ${theme.palette.primary.main}`,\n },\n resize: {\n backgroundColor: theme.palette.primary.main,\n cursor: 'col-resize',\n height: '35px',\n width: '5px',\n borderRadius: 8,\n marginLeft: '5px',\n marginRight: '10px',\n display: 'none',\n },\n drawableHeight: {\n minHeight: 350,\n },\n});\n\nexport default withStyles(styles)(Component);\n"],"file":"component.js"}
1
+ {"version":3,"sources":["../../../../src/code/editable-html/plugins/image/component.jsx"],"names":["log","size","s","Component","percent","multiplier","img","naturalWidth","naturalHeight","width","floored","parseInt","toFixed","props","node","nodePath","editor","update","data","w","resizePercent","getPercentFromWidth","selection","apply","type","path","properties","newProperties","window","addEventListener","startResizing","stopResizing","maxImageWidth","maxImageHeight","box","style","dimensions","height","updateImageDimensions","setState","e","bounds","target","getBoundingClientRect","clientX","left","clientY","top","hasMinimumWidth","hasDimensionsConstraints","removeEventListener","initialDim","nextDim","keepAspectRatio","resizeType","imageAspectRatio","applySizeData","resizeHandle","resize","initialiseResize","objectFit","focused","classes","attributes","children","onFocus","active","alignment","alt","deleteStatus","loaded","src","isLoaded","justifyContent","getSize","className","root","loading","pendingDelete","progressClasses","progress","hideProgress","imageContainer","image","ref","loadImage","React","PropTypes","shape","string","array","object","isRequired","bool","func","onBlur","number","styles","theme","portal","position","opacity","transition","floatingButtonRow","backgroundColor","palette","background","paper","borderRadius","display","padding","border","grey","boxShadow","common","white","right","alignItems","primary","main","cursor","marginLeft","marginRight","drawableHeight","minHeight"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport debug from 'debug';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Editor } from 'slate';\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: PropTypes.shape({\n type: PropTypes.string,\n children: PropTypes.array,\n data: PropTypes.object,\n }).isRequired,\n focused: PropTypes.bool,\n editor: PropTypes.object.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, nodePath, editor } = this.props;\n\n let update = cloneDeep(node.data);\n\n const w = update.width;\n\n if (w) {\n update.resizePercent = this.getPercentFromWidth(w);\n }\n\n log('[applySizeData] update: ', update);\n\n if (editor.selection && !isEqual(update, node.data)) {\n editor.apply({\n type: 'set_node',\n path: nodePath,\n properties: {\n data: node.data,\n },\n newProperties: { data: update },\n });\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.width),\n height: size(data.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, nodePath, editor } = this.props;\n\n const update = cloneDeep(node.data);\n\n update.width = width;\n update.height = height;\n\n if (editor.selection && !isEqual(update, node.data)) {\n editor.apply({\n type: 'set_node',\n path: nodePath,\n properties: {\n data: node.data,\n },\n newProperties: { data: update },\n });\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, nodePath, editor } = this.props;\n\n const update = {\n ...node.data,\n width,\n height,\n };\n\n if (!isEqual(update, node.data)) {\n editor.apply({\n type: 'set_node',\n path: nodePath,\n properties: {\n data: node.data,\n },\n newProperties: { data: update },\n });\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, focused, classes, attributes, children, onFocus } = this.props;\n const active = focused;\n const { alignment, alt, deleteStatus, loaded, percent, src } = node.data;\n const isLoaded = loaded !== false;\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(classes.root, {\n [classes.loading]: !isLoaded,\n [classes.pendingDelete]: deleteStatus === 'pending',\n });\n\n const progressClasses = classNames(classes.progress, {\n [classes.hideProgress]: isLoaded,\n });\n\n return (\n <div onFocus={onFocus} className={className} style={{ justifyContent }} {...attributes}>\n {children}\n <LinearProgress mode=\"determinate\" value={percent > 0 ? percent : 0} className={progressClasses} />\n <div className={classes.imageContainer}>\n <img\n className={classNames(classes.image, { [classes.active]: 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 );\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 width: '100%',\n },\n delete: {\n position: 'absolute',\n right: 0,\n },\n imageContainer: {\n position: 'relative',\n width: 'fit-content',\n display: 'flex',\n alignItems: 'center',\n\n '&&:hover > .resize': {\n display: 'block',\n },\n },\n active: {\n border: `solid 1px ${theme.palette.primary.main}`,\n },\n resize: {\n backgroundColor: theme.palette.primary.main,\n cursor: 'col-resize',\n height: '35px',\n width: '5px',\n borderRadius: 8,\n marginLeft: '5px',\n marginRight: '10px',\n display: 'none',\n },\n drawableHeight: {\n minHeight: 350,\n },\n});\n\nexport default withStyles(styles)(Component);\n"],"file":"component.js"}
@@ -534,7 +534,9 @@ var _default = function _default(options) {
534
534
  _ref6 = (0, _slicedToArray2["default"])(_ref5, 1),
535
535
  parentListItem = _ref6[0];
536
536
 
537
- if (parentListItem) {
537
+ var isListItem = parentListItem && parentListItem.type === 'li';
538
+
539
+ if (isListItem) {
538
540
  return decreaseItemDepth(editor);
539
541
  } // Exit list
540
542
 
@@ -548,7 +550,7 @@ var _default = function _default(options) {
548
550
  editor.apply({
549
551
  type: 'split_node',
550
552
  path: pathToSplit,
551
- position: 1,
553
+ position: currentLi.children.length,
552
554
  properties: {
553
555
  type: 'li'
554
556
  }
@@ -585,7 +587,11 @@ var _default = function _default(options) {
585
587
  core.onBackSpace = function (editor, event) {
586
588
  var startRange = _slate.Range.start(editor.selection);
587
589
 
588
- if (startRange.offset !== 0) {
590
+ var isNotOnTheFirstNode = startRange.path[startRange.path.length - 1] !== 0;
591
+ var isNotOnTheFirstIndex = startRange.offset !== 0;
592
+ var isAtStartOfListItem = isNotOnTheFirstNode || isNotOnTheFirstIndex;
593
+
594
+ if (isAtStartOfListItem) {
589
595
  return;
590
596
  }
591
597
 
@@ -609,7 +615,9 @@ var _default = function _default(options) {
609
615
  _ref8 = (0, _slicedToArray2["default"])(_ref7, 1),
610
616
  parentListItem = _ref8[0];
611
617
 
612
- if (parentListItem) {
618
+ var isListItem = parentListItem && parentListItem.type === 'li';
619
+
620
+ if (isListItem) {
613
621
  return decreaseItemDepth(editor);
614
622
  }
615
623
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/code/editable-html/plugins/list/index.jsx"],"names":["log","b","type","next","childNodes","object","nodes","serialization","deserialize","el","name","tagName","toLowerCase","children","length","Array","from","serialize","key","ReactEditor","findKey","undefined","getListParent","editor","pathRange","Editor","unhangRange","selection","ancestors","SlateNode","anchor","path","reverse","parentList","find","node","includes","e","isBlockActive","format","createEditList","core","changes","wrapInList","isActive","isList","LIST_TYPES","unwrapList","listSelected","Transforms","unwrapNodes","match","n","isEditor","SlateElement","isElement","split","newProperties","setNodes","block","wrapNodes","switchMap","ul","ol","listNode","listPath","at","KEY_TAB","KEY_ENTER","KEY_BACKSPACE","options","icon","supports","renderNode","props","attributes","toolbar","isMark","onClick","propTypes","PropTypes","func","getAncestorByType","ancestor","ancestorPath","increaseItemDepth","currentLiPath","prevResult","previous","prevLi","prevLiPath","parent","list","lastItem","itemPath","moveNodes","to","listItemContent","get","Text","isText","newList","insertNode","decreaseItemDepth","currentLi","subList","subListPath","parentLi","parentLiPath","parentListPath","index","indexOf","followingItems","reduce","acc","item","skip","push","forEach","liPath","last","lastPlacePath","removeNodes","window","unwrapListByKey","nodeInfo","withoutNormalizing","splitItemPath","slice","splitNodes","always","newListPath","furthestListItems","onEnter","event","preventDefault","Range","isExpanded","range","isEmpty","parentListItem","pathToSplit","apply","position","properties","newLiPath","select","onTab","result","shiftKey","setTimeout","focus","onBackSpace","startRange","start","offset","onKeyDown"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport { Node as SlateNode, Editor, Element as SlateElement, Path, Range, Transforms, Text } from 'slate';\nimport { ReactEditor } from 'slate-react';\nimport { jsx } from 'slate-hyperscript';\nimport cloneDeep from 'lodash/cloneDeep';\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 const children = el.children.length ? Array.from(el.children) : el.childNodes;\n\n if (name === 'li') {\n return jsx(\n 'element',\n {\n type: 'li',\n },\n next(children),\n );\n }\n\n if (name === 'ul') {\n return jsx(\n 'element',\n {\n type: 'ul',\n },\n next(children),\n );\n }\n\n if (name === 'ol') {\n return jsx(\n 'element',\n {\n type: 'ol',\n },\n next(children),\n );\n }\n },\n serialize(object, children) {\n const key = ReactEditor.findKey(undefined, object);\n\n if (object.type === 'li') {\n return <li key={key}>{children}</li>;\n }\n\n if (object.type === 'ul') {\n return <ul key={key}>{children}</ul>;\n }\n\n if (object.type === 'ol') {\n return <ol key={key}>{children}</ol>;\n }\n },\n};\n\nconst getListParent = (editor) => {\n try {\n const pathRange = Editor.unhangRange(editor, editor.selection);\n const ancestors = Array.from(SlateNode.ancestors(editor, pathRange.anchor.path, { reverse: true }));\n const parentList = ancestors.find(([node]) => ['ul', 'ol'].includes(node.type));\n\n return parentList;\n } catch (e) {\n return null;\n }\n};\n\nconst isBlockActive = (editor, format) => {\n const { selection } = editor;\n\n if (!selection) {\n return false;\n }\n\n const parentList = getListParent(editor);\n\n if (!parentList) {\n return false;\n }\n\n return parentList[0].type === format;\n};\n\nconst createEditList = () => {\n const core = {\n changes: {},\n };\n\n core.changes.wrapInList = (editor, format) => {\n const isActive = isBlockActive(editor, format);\n const isList = LIST_TYPES.includes(format);\n\n if (isActive && isList) {\n unwrapList(editor);\n return;\n }\n\n const listSelected = getListParent(editor);\n\n if (!listSelected) {\n Transforms.unwrapNodes(editor, {\n match: (n) => !Editor.isEditor(n) && SlateElement.isElement(n) && LIST_TYPES.includes(n.type),\n split: true,\n });\n\n const newProperties = {\n type: isActive ? 'paragraph' : isList ? 'li' : format,\n };\n\n Transforms.setNodes(editor, newProperties);\n\n if (!isActive && isList) {\n const block = { type: format, children: [] };\n Transforms.wrapNodes(editor, block, {\n match: (n) => !Editor.isEditor(n) && SlateElement.isElement(n) && LIST_TYPES.includes(n.type),\n });\n }\n } else {\n const switchMap = {\n ul: 'ol',\n ol: 'ul',\n };\n const [listNode, listPath] = listSelected;\n\n editor.setNodes({ type: switchMap[listNode.type] }, { at: listPath });\n }\n };\n\n return core;\n};\n\nexport const LIST_TYPES = ['ul', 'ol', 'li'];\n\nconst KEY_TAB = 'Tab';\nconst KEY_ENTER = 'Enter';\nconst KEY_BACKSPACE = 'Backspace';\n\nexport default (options) => {\n const { type, icon } = options;\n\n const core = createEditList();\n\n core.supports = (node) => LIST_TYPES.includes(node.type);\n\n core.renderNode = (props) => {\n const { node, attributes, children } = props;\n\n switch (node.type) {\n case 'ul':\n return <ul {...attributes}>{children}</ul>;\n case 'ol':\n return <ol {...attributes}>{children}</ol>;\n case 'li':\n return <li {...attributes}>{children}</li>;\n }\n };\n\n core.toolbar = {\n isMark: false,\n type,\n icon,\n isActive: isBlockActive,\n onClick: (editor) => {\n core.changes.wrapInList(editor, type);\n },\n };\n\n core.renderNode.propTypes = {\n node: PropTypes.object,\n attributes: PropTypes.object,\n children: PropTypes.func,\n };\n\n const getAncestorByType = (editor, type) => {\n if (!editor || !type) {\n return null;\n }\n\n const ancestors = SlateNode.ancestors(editor, Editor.path(editor, editor.selection), {\n reverse: true,\n });\n\n for (const [ancestor, ancestorPath] of ancestors) {\n if (ancestor.type === type) {\n return [ancestor, ancestorPath];\n }\n }\n\n return null;\n };\n\n const increaseItemDepth = (editor) => {\n const [, currentLiPath] = getAncestorByType(editor, 'li');\n const prevResult = editor.previous({ at: currentLiPath });\n\n if (!prevResult) {\n return true;\n }\n\n const [prevLi, prevLiPath] = prevResult;\n const [list] = editor.parent(prevLiPath);\n\n if (!list || !prevLi) {\n return true;\n }\n\n const lastItem = prevLi.children[prevLi.children.length - 1];\n\n if (lastItem && lastItem.type === 'ul') {\n // if it's a list\n const itemPath = [...prevLiPath, 1, lastItem.children.length];\n\n editor.moveNodes({\n at: currentLiPath,\n to: itemPath,\n });\n } else {\n const block = { type: 'div', children: [] };\n const listItemContent = SlateNode.get(editor, [...prevLiPath, 0]);\n\n if (Text.isText(listItemContent)) {\n // wrap text in a block, so we can add a list on the same level\n editor.wrapNodes(block, {\n at: [...prevLiPath, 0],\n });\n }\n\n const newList = {\n type: type,\n children: [],\n };\n\n editor.insertNode(newList, {\n at: [...prevLiPath, prevLi.children.length],\n });\n\n const itemPath = [...prevLiPath, prevLi.children.length, 0];\n\n editor.moveNodes({\n at: currentLiPath,\n to: itemPath,\n });\n }\n\n return true;\n };\n\n const decreaseItemDepth = (editor) => {\n const [currentLi, currentLiPath] = getAncestorByType(editor, 'li');\n\n if (currentLi.type !== 'li') {\n return true;\n }\n\n const [subList, subListPath] = editor.parent(currentLiPath);\n const [parentLi, parentLiPath] = editor.parent(subListPath);\n\n let parentList;\n let parentListPath;\n\n if (parentLi.type !== 'li') {\n parentList = subList;\n parentListPath = subListPath;\n } else {\n [parentList, parentListPath] = editor.parent(parentLiPath);\n }\n\n const index = parentList.children.indexOf(parentLi.type !== 'li' ? currentLi : parentLi);\n const followingItems = subList.children.reduce(\n (acc, item, index) => {\n if (item === currentLi) {\n acc.skip = false;\n return acc;\n }\n\n if (!acc.skip) {\n acc.list.push([item, [...subListPath, index - 1]]);\n }\n\n return acc;\n },\n { skip: true, list: [] },\n );\n\n if (followingItems.list.length) {\n const newList = {\n type: type,\n children: [],\n };\n\n const listItemContent = SlateNode.get(editor, [...currentLiPath, 0]);\n\n if (Text.isText(listItemContent)) {\n const block = { type: 'div', children: [] };\n\n // wrap text in a block, so we can add a list on the same level\n editor.wrapNodes(block, {\n at: [...currentLiPath, 0],\n });\n }\n\n editor.insertNode(newList, {\n at: [...currentLiPath, currentLi.children.length],\n });\n\n const itemPath = [...parentListPath, index + 1];\n\n editor.moveNodes({\n at: currentLiPath,\n to: itemPath,\n });\n\n // otherItems.forEach((item, index) => editor.moveNodeByKey(item.key, newList.key, newList.nodes.size + index));\n followingItems.list.forEach(([, liPath]) => {\n const [, lastPlacePath] = SlateNode.last(editor, [...itemPath, 1]);\n\n editor.moveNodes({\n at: liPath,\n to: lastPlacePath,\n });\n });\n } else {\n // if it's a list\n const itemPath = [...parentListPath, index + 1];\n\n editor.moveNodes({\n at: currentLiPath,\n to: itemPath,\n });\n }\n\n if (subList.children.length === followingItems.list.length + 1) {\n // we already remove one item from the list when we moved it\n // and the reference is not updated => list is empty\n editor.removeNodes({\n at: subListPath,\n });\n }\n\n return true;\n };\n\n window.decreaseItemDepth = decreaseItemDepth;\n\n const unwrapListByKey = (editor, nodeInfo) => {\n const [, currentLiPath] = nodeInfo;\n\n editor.withoutNormalizing(() => {\n const splitItemPath = currentLiPath.slice(0, currentLiPath.length - 1);\n\n splitItemPath[splitItemPath.length - 1] += 1;\n\n if (currentLiPath[currentLiPath.length - 1] !== 0) {\n editor.splitNodes({ at: currentLiPath, always: true });\n } else {\n splitItemPath[splitItemPath.length - 1] -= 1;\n }\n\n editor.moveNodes({ at: [...splitItemPath, 0], to: splitItemPath });\n editor.setNodes({ type: 'div' }, { at: splitItemPath });\n\n const newListPath = splitItemPath.slice();\n\n newListPath[newListPath.length - 1] += 1;\n\n const [newList] = editor.node(newListPath);\n\n if (!newList.children.length) {\n editor.removeNodes({ at: newListPath });\n }\n });\n };\n\n window.SlateNode = SlateNode;\n\n const unwrapList = (editor) => {\n let furthestListItems = Array.from(\n Editor.nodes(editor, {\n at: Editor.unhangRange(editor, editor.selection),\n match: (node) => !Editor.isEditor(node) && SlateElement.isElement(node) && node.type === 'li',\n }),\n );\n\n while (furthestListItems.length) {\n unwrapListByKey(editor, furthestListItems[0]);\n furthestListItems = Array.from(\n Editor.nodes(editor, {\n at: Editor.unhangRange(editor, editor.selection),\n match: (node) => !Editor.isEditor(node) && SlateElement.isElement(node) && node.type === 'li',\n }),\n );\n }\n };\n\n window.unwrapList = unwrapList;\n\n const onEnter = (editor, event) => {\n event.preventDefault();\n\n if (Range.isExpanded(editor.range(editor.selection))) {\n editor.delete();\n }\n\n const [currentLi, currentLiPath] = getAncestorByType(editor, 'li');\n\n if (editor.isEmpty(currentLi)) {\n // Block is empty, we exit the list\n const [, listPath] = editor.parent(currentLiPath);\n const [parentListItem] = listPath.length > 1 ? editor.parent(listPath) : [];\n\n if (parentListItem) {\n return decreaseItemDepth(editor);\n }\n\n // Exit list\n return unwrapList(editor);\n }\n\n const pathToSplit = Text.isText(currentLi.children[0]) ? currentLiPath : [...currentLiPath, 0];\n\n if (Text.isText(currentLi.children[0])) {\n editor.apply({\n type: 'split_node',\n path: pathToSplit,\n position: 1,\n properties: { type: 'li' },\n });\n\n const newLiPath = cloneDeep(pathToSplit);\n\n newLiPath[newLiPath.length - 1] = newLiPath[newLiPath.length - 1] + 1;\n Transforms.select(editor, newLiPath);\n } else {\n editor.splitNodes({ at: pathToSplit, always: true });\n }\n\n return true;\n };\n\n core.onTab = (editor, event) => {\n let result;\n\n if (event.shiftKey) {\n result = decreaseItemDepth(editor);\n } else {\n result = increaseItemDepth(editor);\n }\n\n setTimeout(() => ReactEditor.focus(editor), 50);\n\n return result;\n };\n\n core.onBackSpace = (editor, event) => {\n const startRange = Range.start(editor.selection);\n\n if (startRange.offset !== 0) {\n return;\n }\n\n if (Range.isExpanded(editor.range(editor.selection))) {\n editor.delete();\n return;\n }\n\n event.preventDefault();\n\n const [, currentLiPath] = getAncestorByType(editor, 'li');\n // Block is empty, we exit the list\n const [, listPath] = editor.parent(currentLiPath);\n const [parentListItem] = listPath.length > 1 ? editor.parent(listPath) : [];\n\n if (parentListItem) {\n return decreaseItemDepth(editor);\n }\n\n unwrapList(editor);\n\n return true;\n };\n\n core.onEnter = (editor, event) => {\n let result;\n\n if (event.shiftKey) {\n // this is handled elsewhere already\n } else {\n result = onEnter(editor, event);\n }\n\n setTimeout(() => ReactEditor.focus(editor), 50);\n\n return result;\n };\n\n core.onKeyDown = (editor, event) => {\n const isActive = isBlockActive(editor, type);\n const isList = LIST_TYPES.includes(type);\n\n if (isActive && isList) {\n switch (event.key) {\n case KEY_TAB:\n return core.onTab(editor, event);\n case KEY_ENTER:\n return core.onEnter(editor, event);\n case KEY_BACKSPACE:\n return core.onBackSpace(editor, event);\n default:\n return undefined;\n }\n }\n };\n\n return core;\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/code/editable-html/plugins/list/index.jsx"],"names":["log","b","type","next","childNodes","object","nodes","serialization","deserialize","el","name","tagName","toLowerCase","children","length","Array","from","serialize","key","ReactEditor","findKey","undefined","getListParent","editor","pathRange","Editor","unhangRange","selection","ancestors","SlateNode","anchor","path","reverse","parentList","find","node","includes","e","isBlockActive","format","createEditList","core","changes","wrapInList","isActive","isList","LIST_TYPES","unwrapList","listSelected","Transforms","unwrapNodes","match","n","isEditor","SlateElement","isElement","split","newProperties","setNodes","block","wrapNodes","switchMap","ul","ol","listNode","listPath","at","KEY_TAB","KEY_ENTER","KEY_BACKSPACE","options","icon","supports","renderNode","props","attributes","toolbar","isMark","onClick","propTypes","PropTypes","func","getAncestorByType","ancestor","ancestorPath","increaseItemDepth","currentLiPath","prevResult","previous","prevLi","prevLiPath","parent","list","lastItem","itemPath","moveNodes","to","listItemContent","get","Text","isText","newList","insertNode","decreaseItemDepth","currentLi","subList","subListPath","parentLi","parentLiPath","parentListPath","index","indexOf","followingItems","reduce","acc","item","skip","push","forEach","liPath","last","lastPlacePath","removeNodes","window","unwrapListByKey","nodeInfo","withoutNormalizing","splitItemPath","slice","splitNodes","always","newListPath","furthestListItems","onEnter","event","preventDefault","Range","isExpanded","range","isEmpty","parentListItem","isListItem","pathToSplit","apply","position","properties","newLiPath","select","onTab","result","shiftKey","setTimeout","focus","onBackSpace","startRange","start","isNotOnTheFirstNode","isNotOnTheFirstIndex","offset","isAtStartOfListItem","onKeyDown"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport { Node as SlateNode, Editor, Element as SlateElement, Path, Range, Transforms, Text } from 'slate';\nimport { ReactEditor } from 'slate-react';\nimport { jsx } from 'slate-hyperscript';\nimport cloneDeep from 'lodash/cloneDeep';\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 const children = el.children.length ? Array.from(el.children) : el.childNodes;\n\n if (name === 'li') {\n return jsx(\n 'element',\n {\n type: 'li',\n },\n next(children),\n );\n }\n\n if (name === 'ul') {\n return jsx(\n 'element',\n {\n type: 'ul',\n },\n next(children),\n );\n }\n\n if (name === 'ol') {\n return jsx(\n 'element',\n {\n type: 'ol',\n },\n next(children),\n );\n }\n },\n serialize(object, children) {\n const key = ReactEditor.findKey(undefined, object);\n\n if (object.type === 'li') {\n return <li key={key}>{children}</li>;\n }\n\n if (object.type === 'ul') {\n return <ul key={key}>{children}</ul>;\n }\n\n if (object.type === 'ol') {\n return <ol key={key}>{children}</ol>;\n }\n },\n};\n\nconst getListParent = (editor) => {\n try {\n const pathRange = Editor.unhangRange(editor, editor.selection);\n const ancestors = Array.from(SlateNode.ancestors(editor, pathRange.anchor.path, { reverse: true }));\n const parentList = ancestors.find(([node]) => ['ul', 'ol'].includes(node.type));\n\n return parentList;\n } catch (e) {\n return null;\n }\n};\n\nconst isBlockActive = (editor, format) => {\n const { selection } = editor;\n\n if (!selection) {\n return false;\n }\n\n const parentList = getListParent(editor);\n\n if (!parentList) {\n return false;\n }\n\n return parentList[0].type === format;\n};\n\nconst createEditList = () => {\n const core = {\n changes: {},\n };\n\n core.changes.wrapInList = (editor, format) => {\n const isActive = isBlockActive(editor, format);\n const isList = LIST_TYPES.includes(format);\n\n if (isActive && isList) {\n unwrapList(editor);\n return;\n }\n\n const listSelected = getListParent(editor);\n\n if (!listSelected) {\n Transforms.unwrapNodes(editor, {\n match: (n) => !Editor.isEditor(n) && SlateElement.isElement(n) && LIST_TYPES.includes(n.type),\n split: true,\n });\n\n const newProperties = {\n type: isActive ? 'paragraph' : isList ? 'li' : format,\n };\n\n Transforms.setNodes(editor, newProperties);\n\n if (!isActive && isList) {\n const block = { type: format, children: [] };\n Transforms.wrapNodes(editor, block, {\n match: (n) => !Editor.isEditor(n) && SlateElement.isElement(n) && LIST_TYPES.includes(n.type),\n });\n }\n } else {\n const switchMap = {\n ul: 'ol',\n ol: 'ul',\n };\n const [listNode, listPath] = listSelected;\n\n editor.setNodes({ type: switchMap[listNode.type] }, { at: listPath });\n }\n };\n\n return core;\n};\n\nexport const LIST_TYPES = ['ul', 'ol', 'li'];\n\nconst KEY_TAB = 'Tab';\nconst KEY_ENTER = 'Enter';\nconst KEY_BACKSPACE = 'Backspace';\n\nexport default (options) => {\n const { type, icon } = options;\n\n const core = createEditList();\n\n core.supports = (node) => LIST_TYPES.includes(node.type);\n\n core.renderNode = (props) => {\n const { node, attributes, children } = props;\n\n switch (node.type) {\n case 'ul':\n return <ul {...attributes}>{children}</ul>;\n case 'ol':\n return <ol {...attributes}>{children}</ol>;\n case 'li':\n return <li {...attributes}>{children}</li>;\n }\n };\n\n core.toolbar = {\n isMark: false,\n type,\n icon,\n isActive: isBlockActive,\n onClick: (editor) => {\n core.changes.wrapInList(editor, type);\n },\n };\n\n core.renderNode.propTypes = {\n node: PropTypes.object,\n attributes: PropTypes.object,\n children: PropTypes.func,\n };\n\n const getAncestorByType = (editor, type) => {\n if (!editor || !type) {\n return null;\n }\n\n const ancestors = SlateNode.ancestors(editor, Editor.path(editor, editor.selection), {\n reverse: true,\n });\n\n for (const [ancestor, ancestorPath] of ancestors) {\n if (ancestor.type === type) {\n return [ancestor, ancestorPath];\n }\n }\n\n return null;\n };\n\n const increaseItemDepth = (editor) => {\n const [, currentLiPath] = getAncestorByType(editor, 'li');\n const prevResult = editor.previous({ at: currentLiPath });\n\n if (!prevResult) {\n return true;\n }\n\n const [prevLi, prevLiPath] = prevResult;\n const [list] = editor.parent(prevLiPath);\n\n if (!list || !prevLi) {\n return true;\n }\n\n const lastItem = prevLi.children[prevLi.children.length - 1];\n\n if (lastItem && lastItem.type === 'ul') {\n // if it's a list\n const itemPath = [...prevLiPath, 1, lastItem.children.length];\n\n editor.moveNodes({\n at: currentLiPath,\n to: itemPath,\n });\n } else {\n const block = { type: 'div', children: [] };\n const listItemContent = SlateNode.get(editor, [...prevLiPath, 0]);\n\n if (Text.isText(listItemContent)) {\n // wrap text in a block, so we can add a list on the same level\n editor.wrapNodes(block, {\n at: [...prevLiPath, 0],\n });\n }\n\n const newList = {\n type: type,\n children: [],\n };\n\n editor.insertNode(newList, {\n at: [...prevLiPath, prevLi.children.length],\n });\n\n const itemPath = [...prevLiPath, prevLi.children.length, 0];\n\n editor.moveNodes({\n at: currentLiPath,\n to: itemPath,\n });\n }\n\n return true;\n };\n\n const decreaseItemDepth = (editor) => {\n const [currentLi, currentLiPath] = getAncestorByType(editor, 'li');\n\n if (currentLi.type !== 'li') {\n return true;\n }\n\n const [subList, subListPath] = editor.parent(currentLiPath);\n const [parentLi, parentLiPath] = editor.parent(subListPath);\n\n let parentList;\n let parentListPath;\n\n if (parentLi.type !== 'li') {\n parentList = subList;\n parentListPath = subListPath;\n } else {\n [parentList, parentListPath] = editor.parent(parentLiPath);\n }\n\n const index = parentList.children.indexOf(parentLi.type !== 'li' ? currentLi : parentLi);\n const followingItems = subList.children.reduce(\n (acc, item, index) => {\n if (item === currentLi) {\n acc.skip = false;\n return acc;\n }\n\n if (!acc.skip) {\n acc.list.push([item, [...subListPath, index - 1]]);\n }\n\n return acc;\n },\n { skip: true, list: [] },\n );\n\n if (followingItems.list.length) {\n const newList = {\n type: type,\n children: [],\n };\n\n const listItemContent = SlateNode.get(editor, [...currentLiPath, 0]);\n\n if (Text.isText(listItemContent)) {\n const block = { type: 'div', children: [] };\n\n // wrap text in a block, so we can add a list on the same level\n editor.wrapNodes(block, {\n at: [...currentLiPath, 0],\n });\n }\n\n editor.insertNode(newList, {\n at: [...currentLiPath, currentLi.children.length],\n });\n\n const itemPath = [...parentListPath, index + 1];\n\n editor.moveNodes({\n at: currentLiPath,\n to: itemPath,\n });\n\n // otherItems.forEach((item, index) => editor.moveNodeByKey(item.key, newList.key, newList.nodes.size + index));\n followingItems.list.forEach(([, liPath]) => {\n const [, lastPlacePath] = SlateNode.last(editor, [...itemPath, 1]);\n\n editor.moveNodes({\n at: liPath,\n to: lastPlacePath,\n });\n });\n } else {\n // if it's a list\n const itemPath = [...parentListPath, index + 1];\n\n editor.moveNodes({\n at: currentLiPath,\n to: itemPath,\n });\n }\n\n if (subList.children.length === followingItems.list.length + 1) {\n // we already remove one item from the list when we moved it\n // and the reference is not updated => list is empty\n editor.removeNodes({\n at: subListPath,\n });\n }\n\n return true;\n };\n\n window.decreaseItemDepth = decreaseItemDepth;\n\n const unwrapListByKey = (editor, nodeInfo) => {\n const [, currentLiPath] = nodeInfo;\n\n editor.withoutNormalizing(() => {\n const splitItemPath = currentLiPath.slice(0, currentLiPath.length - 1);\n\n splitItemPath[splitItemPath.length - 1] += 1;\n\n if (currentLiPath[currentLiPath.length - 1] !== 0) {\n editor.splitNodes({ at: currentLiPath, always: true });\n } else {\n splitItemPath[splitItemPath.length - 1] -= 1;\n }\n\n editor.moveNodes({ at: [...splitItemPath, 0], to: splitItemPath });\n editor.setNodes({ type: 'div' }, { at: splitItemPath });\n\n const newListPath = splitItemPath.slice();\n\n newListPath[newListPath.length - 1] += 1;\n\n const [newList] = editor.node(newListPath);\n\n if (!newList.children.length) {\n editor.removeNodes({ at: newListPath });\n }\n });\n };\n\n window.SlateNode = SlateNode;\n\n const unwrapList = (editor) => {\n let furthestListItems = Array.from(\n Editor.nodes(editor, {\n at: Editor.unhangRange(editor, editor.selection),\n match: (node) => !Editor.isEditor(node) && SlateElement.isElement(node) && node.type === 'li',\n }),\n );\n\n while (furthestListItems.length) {\n unwrapListByKey(editor, furthestListItems[0]);\n furthestListItems = Array.from(\n Editor.nodes(editor, {\n at: Editor.unhangRange(editor, editor.selection),\n match: (node) => !Editor.isEditor(node) && SlateElement.isElement(node) && node.type === 'li',\n }),\n );\n }\n };\n\n window.unwrapList = unwrapList;\n\n const onEnter = (editor, event) => {\n event.preventDefault();\n\n if (Range.isExpanded(editor.range(editor.selection))) {\n editor.delete();\n }\n\n const [currentLi, currentLiPath] = getAncestorByType(editor, 'li');\n\n if (editor.isEmpty(currentLi)) {\n // Block is empty, we exit the list\n const [, listPath] = editor.parent(currentLiPath);\n const [parentListItem] = listPath.length > 1 ? editor.parent(listPath) : [];\n const isListItem = parentListItem && parentListItem.type === 'li';\n\n if (isListItem) {\n return decreaseItemDepth(editor);\n }\n\n // Exit list\n return unwrapList(editor);\n }\n\n const pathToSplit = Text.isText(currentLi.children[0]) ? currentLiPath : [...currentLiPath, 0];\n\n if (Text.isText(currentLi.children[0])) {\n editor.apply({\n type: 'split_node',\n path: pathToSplit,\n position: currentLi.children.length,\n properties: { type: 'li' },\n });\n\n const newLiPath = cloneDeep(pathToSplit);\n\n newLiPath[newLiPath.length - 1] = newLiPath[newLiPath.length - 1] + 1;\n Transforms.select(editor, newLiPath);\n } else {\n editor.splitNodes({ at: pathToSplit, always: true });\n }\n\n return true;\n };\n\n core.onTab = (editor, event) => {\n let result;\n\n if (event.shiftKey) {\n result = decreaseItemDepth(editor);\n } else {\n result = increaseItemDepth(editor);\n }\n\n setTimeout(() => ReactEditor.focus(editor), 50);\n\n return result;\n };\n\n core.onBackSpace = (editor, event) => {\n const startRange = Range.start(editor.selection);\n const isNotOnTheFirstNode = startRange.path[startRange.path.length - 1] !== 0;\n const isNotOnTheFirstIndex = startRange.offset !== 0;\n const isAtStartOfListItem = isNotOnTheFirstNode || isNotOnTheFirstIndex;\n\n if (isAtStartOfListItem) {\n return;\n }\n\n if (Range.isExpanded(editor.range(editor.selection))) {\n editor.delete();\n return;\n }\n\n event.preventDefault();\n\n const [, currentLiPath] = getAncestorByType(editor, 'li');\n // Block is empty, we exit the list\n const [, listPath] = editor.parent(currentLiPath);\n const [parentListItem] = listPath.length > 1 ? editor.parent(listPath) : [];\n const isListItem = parentListItem && parentListItem.type === 'li';\n\n if (isListItem) {\n return decreaseItemDepth(editor);\n }\n\n unwrapList(editor);\n\n return true;\n };\n\n core.onEnter = (editor, event) => {\n let result;\n\n if (event.shiftKey) {\n // this is handled elsewhere already\n } else {\n result = onEnter(editor, event);\n }\n\n setTimeout(() => ReactEditor.focus(editor), 50);\n\n return result;\n };\n\n core.onKeyDown = (editor, event) => {\n const isActive = isBlockActive(editor, type);\n const isList = LIST_TYPES.includes(type);\n\n if (isActive && isList) {\n switch (event.key) {\n case KEY_TAB:\n return core.onTab(editor, event);\n case KEY_ENTER:\n return core.onEnter(editor, event);\n case KEY_BACKSPACE:\n return core.onBackSpace(editor, event);\n default:\n return undefined;\n }\n }\n };\n\n return core;\n};\n"],"file":"index.js"}
@@ -76,8 +76,7 @@ var LabelComponent = function LabelComponent(props) {
76
76
  "false": true
77
77
  }, /*#__PURE__*/_react["default"].createElement("div", {
78
78
  className: (0, _classnames["default"])(isChart ? classes.chartLabel : classes.axisLabel, (_cn = {}, (0, _defineProperty2["default"])(_cn, classes.rotateLeftLabel, side === 'left' && !rotatedToHorizontal), (0, _defineProperty2["default"])(_cn, classes.rotateRightLabel, side === 'right' && !rotatedToHorizontal), (0, _defineProperty2["default"])(_cn, classes.editLabel, rotatedToHorizontal), (0, _defineProperty2["default"])(_cn, classes.customBottom, isChartBottomLabel || isDefineChartBottomLabel), _cn)),
79
- style: rotatedToHorizontal ? rotatedStyle : defaultStyle,
80
- onClick: rotateLabel
79
+ style: rotatedToHorizontal ? rotatedStyle : defaultStyle
81
80
  }, disabledLabel ? /*#__PURE__*/_react["default"].createElement("div", {
82
81
  className: classes.disabledLabel,
83
82
  dangerouslySetInnerHTML: {
@@ -93,6 +92,7 @@ var LabelComponent = function LabelComponent(props) {
93
92
  },
94
93
  disableScrollbar: true,
95
94
  activePlugins: activePlugins,
95
+ onFocus: rotateLabel,
96
96
  onDone: function onDone() {
97
97
  return setRotatedToHorizontal(false);
98
98
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/code/plot/label.jsx"],"names":["LabelComponent","props","classes","disabledLabel","graphHeight","graphWidth","isChartBottomLabel","isDefineChartBottomLabel","isChartLeftLabel","isDefineChartLeftLabel","placeholder","text","side","onChange","mathMlOptions","charactersLimit","rotatedToHorizontal","setRotatedToHorizontal","activePlugins","isChart","chartValue","defaultStyle","width","top","left","rotatedStyle","rotateLabel","chartLabel","axisLabel","rotateLeftLabel","rotateRightLabel","editLabel","customBottom","__html","position","noBorder","propTypes","PropTypes","object","bool","number","string","func","theme","label","fill","color","secondary","fontSize","typography","textAlign","margin","spacing","unit","padding","pointerEvents","backgroundColor","borderRadius","boxShadow","zIndex","transformOrigin","transformStyle"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport { color, Readable } from '../../render-ui';\nimport cn from 'classnames';\nimport EditableHtml from '../editable-html';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\n\nconst LabelComponent = (props) => {\n const {\n classes,\n disabledLabel,\n graphHeight,\n graphWidth,\n isChartBottomLabel,\n isDefineChartBottomLabel,\n isChartLeftLabel,\n isDefineChartLeftLabel,\n placeholder,\n text,\n side,\n onChange,\n mathMlOptions = {},\n charactersLimit,\n } = props;\n const [rotatedToHorizontal, setRotatedToHorizontal] = useState(false);\n const activePlugins = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough',\n 'math',\n // 'languageCharacters'\n ];\n\n const isChart = isChartBottomLabel || isChartLeftLabel || isDefineChartBottomLabel || isDefineChartLeftLabel;\n\n const chartValue = side === 'left' && isDefineChartLeftLabel && graphHeight - 220;\n const defaultStyle = {\n width: chartValue || (side === 'left' || side === 'right' ? graphHeight - 8 : graphWidth - 8),\n top:\n chartValue ||\n (isChartLeftLabel && `${graphHeight - 70}px`) ||\n (side === 'left' && `${graphHeight - 8}px`) ||\n (isChartBottomLabel && `${graphHeight - 30}px`) ||\n (side === 'bottom' && `${graphHeight - 90}px`) ||\n 0,\n left:\n (side === 'right' && `${graphWidth - 8}px`) ||\n ((isDefineChartLeftLabel || isDefineChartBottomLabel) && '40px') ||\n (isChartBottomLabel && '-10px') ||\n 0,\n };\n\n const rotatedStyle = {\n width: graphWidth - 8,\n top: (side === 'right' && `${graphHeight - 22}px`) || 0,\n left: 0,\n };\n\n const rotateLabel = () => !disabledLabel && (side === 'left' || side === 'right') && setRotatedToHorizontal(true);\n\n return (\n <Readable false>\n <div\n className={cn(isChart ? classes.chartLabel : classes.axisLabel, {\n [classes.rotateLeftLabel]: side === 'left' && !rotatedToHorizontal,\n [classes.rotateRightLabel]: side === 'right' && !rotatedToHorizontal,\n [classes.editLabel]: rotatedToHorizontal,\n [classes.customBottom]: isChartBottomLabel || isDefineChartBottomLabel,\n })}\n style={rotatedToHorizontal ? rotatedStyle : defaultStyle}\n onClick={rotateLabel}\n >\n {disabledLabel ? (\n <div className={classes.disabledLabel} dangerouslySetInnerHTML={{ __html: text || '' }} />\n ) : (\n <EditableHtml\n markup={text || ''}\n onChange={onChange}\n placeholder={!disabledLabel && placeholder}\n toolbarOpts={{\n position: side === 'bottom' ? 'top' : 'bottom',\n noBorder: true,\n }}\n disableScrollbar\n activePlugins={activePlugins}\n onDone={() => setRotatedToHorizontal(false)}\n mathMlOptions={mathMlOptions}\n charactersLimit={charactersLimit}\n />\n )}\n </div>\n </Readable>\n );\n};\nLabelComponent.propTypes = {\n classes: PropTypes.object,\n disabledLabel: PropTypes.bool,\n graphHeight: PropTypes.number,\n graphWidth: PropTypes.number,\n isChartBottomLabel: PropTypes.bool,\n isDefineChartBottomLabel: PropTypes.bool,\n isChartLeftLabel: PropTypes.bool,\n isDefineChartLeftLabel: PropTypes.bool,\n placeholder: PropTypes.string,\n text: PropTypes.string,\n side: PropTypes.string,\n onChange: PropTypes.func,\n mathMlOptions: PropTypes.object,\n charactersLimit: PropTypes.number,\n};\n\nexport default withStyles((theme) => ({\n label: {\n fill: color.secondary(),\n },\n axisLabel: {\n fontSize: theme.typography.fontSize - 2,\n textAlign: 'center',\n margin: theme.spacing.unit / 2,\n padding: `${theme.spacing.unit / 2}px 0`,\n },\n chartLabel: {\n fontSize: theme.typography.fontSize + 2,\n textAlign: 'center',\n margin: theme.spacing.unit / 2,\n padding: `${theme.spacing.unit / 2}px 0`,\n },\n disabledLabel: {\n pointerEvents: 'none',\n width: '100%',\n },\n editLabel: {\n position: 'absolute',\n backgroundColor: 'white',\n borderRadius: '4px',\n boxShadow: '0px 5px 8px rgba(0, 0, 0, 0.15)',\n zIndex: 10,\n },\n rotateLeftLabel: {\n '-webkit-transform': 'rotate(-90deg)',\n transformOrigin: '0 0',\n transformStyle: 'preserve-3d',\n position: 'absolute',\n },\n rotateRightLabel: {\n '-webkit-transform': 'rotate(90deg)',\n transformOrigin: '0 0',\n transformStyle: 'preserve-3d',\n position: 'absolute',\n },\n customBottom: {\n position: 'absolute',\n },\n}))(LabelComponent);\n"],"file":"label.js"}
1
+ {"version":3,"sources":["../../src/code/plot/label.jsx"],"names":["LabelComponent","props","classes","disabledLabel","graphHeight","graphWidth","isChartBottomLabel","isDefineChartBottomLabel","isChartLeftLabel","isDefineChartLeftLabel","placeholder","text","side","onChange","mathMlOptions","charactersLimit","rotatedToHorizontal","setRotatedToHorizontal","activePlugins","isChart","chartValue","defaultStyle","width","top","left","rotatedStyle","rotateLabel","chartLabel","axisLabel","rotateLeftLabel","rotateRightLabel","editLabel","customBottom","__html","position","noBorder","propTypes","PropTypes","object","bool","number","string","func","theme","label","fill","color","secondary","fontSize","typography","textAlign","margin","spacing","unit","padding","pointerEvents","backgroundColor","borderRadius","boxShadow","zIndex","transformOrigin","transformStyle"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,CAACC,KAAD,EAAW;AAAA;;AAChC,MACEC,OADF,GAeID,KAfJ,CACEC,OADF;AAAA,MAEEC,aAFF,GAeIF,KAfJ,CAEEE,aAFF;AAAA,MAGEC,WAHF,GAeIH,KAfJ,CAGEG,WAHF;AAAA,MAIEC,UAJF,GAeIJ,KAfJ,CAIEI,UAJF;AAAA,MAKEC,kBALF,GAeIL,KAfJ,CAKEK,kBALF;AAAA,MAMEC,wBANF,GAeIN,KAfJ,CAMEM,wBANF;AAAA,MAOEC,gBAPF,GAeIP,KAfJ,CAOEO,gBAPF;AAAA,MAQEC,sBARF,GAeIR,KAfJ,CAQEQ,sBARF;AAAA,MASEC,WATF,GAeIT,KAfJ,CASES,WATF;AAAA,MAUEC,IAVF,GAeIV,KAfJ,CAUEU,IAVF;AAAA,MAWEC,IAXF,GAeIX,KAfJ,CAWEW,IAXF;AAAA,MAYEC,QAZF,GAeIZ,KAfJ,CAYEY,QAZF;AAAA,6BAeIZ,KAfJ,CAaEa,aAbF;AAAA,MAaEA,aAbF,qCAakB,EAblB;AAAA,MAcEC,eAdF,GAeId,KAfJ,CAcEc,eAdF;;AAgBA,kBAAsD,qBAAS,KAAT,CAAtD;AAAA;AAAA,MAAOC,mBAAP;AAAA,MAA4BC,sBAA5B;;AACA,MAAMC,aAAa,GAAG,CACpB,MADoB,EAEpB,QAFoB,EAGpB,WAHoB,EAIpB,eAJoB,EAKpB,MALoB,CAMpB;AANoB,GAAtB;AASA,MAAMC,OAAO,GAAGb,kBAAkB,IAAIE,gBAAtB,IAA0CD,wBAA1C,IAAsEE,sBAAtF;AAEA,MAAMW,UAAU,GAAGR,IAAI,KAAK,MAAT,IAAmBH,sBAAnB,IAA6CL,WAAW,GAAG,GAA9E;AACA,MAAMiB,YAAY,GAAG;AACnBC,IAAAA,KAAK,EAAEF,UAAU,KAAKR,IAAI,KAAK,MAAT,IAAmBA,IAAI,KAAK,OAA5B,GAAsCR,WAAW,GAAG,CAApD,GAAwDC,UAAU,GAAG,CAA1E,CADE;AAEnBkB,IAAAA,GAAG,EACDH,UAAU,IACTZ,gBAAgB,cAAOJ,WAAW,GAAG,EAArB,OADjB,IAECQ,IAAI,KAAK,MAAT,cAAsBR,WAAW,GAAG,CAApC,OAFD,IAGCE,kBAAkB,cAAOF,WAAW,GAAG,EAArB,OAHnB,IAICQ,IAAI,KAAK,QAAT,cAAwBR,WAAW,GAAG,EAAtC,OAJD,IAKA,CARiB;AASnBoB,IAAAA,IAAI,EACDZ,IAAI,KAAK,OAAT,cAAuBP,UAAU,GAAG,CAApC,OAAD,IACC,CAACI,sBAAsB,IAAIF,wBAA3B,KAAwD,MADzD,IAECD,kBAAkB,IAAI,OAFvB,IAGA;AAbiB,GAArB;AAgBA,MAAMmB,YAAY,GAAG;AACnBH,IAAAA,KAAK,EAAEjB,UAAU,GAAG,CADD;AAEnBkB,IAAAA,GAAG,EAAGX,IAAI,KAAK,OAAT,cAAuBR,WAAW,GAAG,EAArC,OAAD,IAAiD,CAFnC;AAGnBoB,IAAAA,IAAI,EAAE;AAHa,GAArB;;AAMA,MAAME,WAAW,GAAG,SAAdA,WAAc;AAAA,WAAM,CAACvB,aAAD,KAAmBS,IAAI,KAAK,MAAT,IAAmBA,IAAI,KAAK,OAA/C,KAA2DK,sBAAsB,CAAC,IAAD,CAAvF;AAAA,GAApB;;AAEA,sBACE,gCAAC,kBAAD;AAAU;AAAV,kBACE;AACE,IAAA,SAAS,EAAE,4BAAGE,OAAO,GAAGjB,OAAO,CAACyB,UAAX,GAAwBzB,OAAO,CAAC0B,SAA1C,mDACR1B,OAAO,CAAC2B,eADA,EACkBjB,IAAI,KAAK,MAAT,IAAmB,CAACI,mBADtC,yCAERd,OAAO,CAAC4B,gBAFA,EAEmBlB,IAAI,KAAK,OAAT,IAAoB,CAACI,mBAFxC,yCAGRd,OAAO,CAAC6B,SAHA,EAGYf,mBAHZ,yCAIRd,OAAO,CAAC8B,YAJA,EAIe1B,kBAAkB,IAAIC,wBAJrC,QADb;AAOE,IAAA,KAAK,EAAES,mBAAmB,GAAGS,YAAH,GAAkBJ;AAP9C,KASGlB,aAAa,gBACZ;AAAK,IAAA,SAAS,EAAED,OAAO,CAACC,aAAxB;AAAuC,IAAA,uBAAuB,EAAE;AAAE8B,MAAAA,MAAM,EAAEtB,IAAI,IAAI;AAAlB;AAAhE,IADY,gBAGZ,gCAAC,wBAAD;AACE,IAAA,MAAM,EAAEA,IAAI,IAAI,EADlB;AAEE,IAAA,QAAQ,EAAEE,QAFZ;AAGE,IAAA,WAAW,EAAE,CAACV,aAAD,IAAkBO,WAHjC;AAIE,IAAA,WAAW,EAAE;AACXwB,MAAAA,QAAQ,EAAEtB,IAAI,KAAK,QAAT,GAAoB,KAApB,GAA4B,QAD3B;AAEXuB,MAAAA,QAAQ,EAAE;AAFC,KAJf;AAQE,IAAA,gBAAgB,MARlB;AASE,IAAA,aAAa,EAAEjB,aATjB;AAUE,IAAA,OAAO,EAAEQ,WAVX;AAWE,IAAA,MAAM,EAAE;AAAA,aAAMT,sBAAsB,CAAC,KAAD,CAA5B;AAAA,KAXV;AAYE,IAAA,aAAa,EAAEH,aAZjB;AAaE,IAAA,eAAe,EAAEC;AAbnB,IAZJ,CADF,CADF;AAiCD,CAvFD;;AAwFAf,cAAc,CAACoC,SAAf,GAA2B;AACzBlC,EAAAA,OAAO,EAAEmC,sBAAUC,MADM;AAEzBnC,EAAAA,aAAa,EAAEkC,sBAAUE,IAFA;AAGzBnC,EAAAA,WAAW,EAAEiC,sBAAUG,MAHE;AAIzBnC,EAAAA,UAAU,EAAEgC,sBAAUG,MAJG;AAKzBlC,EAAAA,kBAAkB,EAAE+B,sBAAUE,IALL;AAMzBhC,EAAAA,wBAAwB,EAAE8B,sBAAUE,IANX;AAOzB/B,EAAAA,gBAAgB,EAAE6B,sBAAUE,IAPH;AAQzB9B,EAAAA,sBAAsB,EAAE4B,sBAAUE,IART;AASzB7B,EAAAA,WAAW,EAAE2B,sBAAUI,MATE;AAUzB9B,EAAAA,IAAI,EAAE0B,sBAAUI,MAVS;AAWzB7B,EAAAA,IAAI,EAAEyB,sBAAUI,MAXS;AAYzB5B,EAAAA,QAAQ,EAAEwB,sBAAUK,IAZK;AAazB5B,EAAAA,aAAa,EAAEuB,sBAAUC,MAbA;AAczBvB,EAAAA,eAAe,EAAEsB,sBAAUG;AAdF,CAA3B;;eAiBe,wBAAW,UAACG,KAAD;AAAA,SAAY;AACpCC,IAAAA,KAAK,EAAE;AACLC,MAAAA,IAAI,EAAEC,gBAAMC,SAAN;AADD,KAD6B;AAIpCnB,IAAAA,SAAS,EAAE;AACToB,MAAAA,QAAQ,EAAEL,KAAK,CAACM,UAAN,CAAiBD,QAAjB,GAA4B,CAD7B;AAETE,MAAAA,SAAS,EAAE,QAFF;AAGTC,MAAAA,MAAM,EAAER,KAAK,CAACS,OAAN,CAAcC,IAAd,GAAqB,CAHpB;AAITC,MAAAA,OAAO,YAAKX,KAAK,CAACS,OAAN,CAAcC,IAAd,GAAqB,CAA1B;AAJE,KAJyB;AAUpC1B,IAAAA,UAAU,EAAE;AACVqB,MAAAA,QAAQ,EAAEL,KAAK,CAACM,UAAN,CAAiBD,QAAjB,GAA4B,CAD5B;AAEVE,MAAAA,SAAS,EAAE,QAFD;AAGVC,MAAAA,MAAM,EAAER,KAAK,CAACS,OAAN,CAAcC,IAAd,GAAqB,CAHnB;AAIVC,MAAAA,OAAO,YAAKX,KAAK,CAACS,OAAN,CAAcC,IAAd,GAAqB,CAA1B;AAJG,KAVwB;AAgBpClD,IAAAA,aAAa,EAAE;AACboD,MAAAA,aAAa,EAAE,MADF;AAEbjC,MAAAA,KAAK,EAAE;AAFM,KAhBqB;AAoBpCS,IAAAA,SAAS,EAAE;AACTG,MAAAA,QAAQ,EAAE,UADD;AAETsB,MAAAA,eAAe,EAAE,OAFR;AAGTC,MAAAA,YAAY,EAAE,KAHL;AAITC,MAAAA,SAAS,EAAE,iCAJF;AAKTC,MAAAA,MAAM,EAAE;AALC,KApByB;AA2BpC9B,IAAAA,eAAe,EAAE;AACf,2BAAqB,gBADN;AAEf+B,MAAAA,eAAe,EAAE,KAFF;AAGfC,MAAAA,cAAc,EAAE,aAHD;AAIf3B,MAAAA,QAAQ,EAAE;AAJK,KA3BmB;AAiCpCJ,IAAAA,gBAAgB,EAAE;AAChB,2BAAqB,eADL;AAEhB8B,MAAAA,eAAe,EAAE,KAFD;AAGhBC,MAAAA,cAAc,EAAE,aAHA;AAIhB3B,MAAAA,QAAQ,EAAE;AAJM,KAjCkB;AAuCpCF,IAAAA,YAAY,EAAE;AACZE,MAAAA,QAAQ,EAAE;AADE;AAvCsB,GAAZ;AAAA,CAAX,EA0CXlC,cA1CW,C","sourcesContent":["import React, { useState } from 'react';\nimport { color, Readable } from '../../render-ui';\nimport cn from 'classnames';\nimport EditableHtml from '../editable-html';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\n\nconst LabelComponent = (props) => {\n const {\n classes,\n disabledLabel,\n graphHeight,\n graphWidth,\n isChartBottomLabel,\n isDefineChartBottomLabel,\n isChartLeftLabel,\n isDefineChartLeftLabel,\n placeholder,\n text,\n side,\n onChange,\n mathMlOptions = {},\n charactersLimit,\n } = props;\n const [rotatedToHorizontal, setRotatedToHorizontal] = useState(false);\n const activePlugins = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough',\n 'math',\n // 'languageCharacters'\n ];\n\n const isChart = isChartBottomLabel || isChartLeftLabel || isDefineChartBottomLabel || isDefineChartLeftLabel;\n\n const chartValue = side === 'left' && isDefineChartLeftLabel && graphHeight - 220;\n const defaultStyle = {\n width: chartValue || (side === 'left' || side === 'right' ? graphHeight - 8 : graphWidth - 8),\n top:\n chartValue ||\n (isChartLeftLabel && `${graphHeight - 70}px`) ||\n (side === 'left' && `${graphHeight - 8}px`) ||\n (isChartBottomLabel && `${graphHeight - 30}px`) ||\n (side === 'bottom' && `${graphHeight - 90}px`) ||\n 0,\n left:\n (side === 'right' && `${graphWidth - 8}px`) ||\n ((isDefineChartLeftLabel || isDefineChartBottomLabel) && '40px') ||\n (isChartBottomLabel && '-10px') ||\n 0,\n };\n\n const rotatedStyle = {\n width: graphWidth - 8,\n top: (side === 'right' && `${graphHeight - 22}px`) || 0,\n left: 0,\n };\n\n const rotateLabel = () => !disabledLabel && (side === 'left' || side === 'right') && setRotatedToHorizontal(true);\n\n return (\n <Readable false>\n <div\n className={cn(isChart ? classes.chartLabel : classes.axisLabel, {\n [classes.rotateLeftLabel]: side === 'left' && !rotatedToHorizontal,\n [classes.rotateRightLabel]: side === 'right' && !rotatedToHorizontal,\n [classes.editLabel]: rotatedToHorizontal,\n [classes.customBottom]: isChartBottomLabel || isDefineChartBottomLabel,\n })}\n style={rotatedToHorizontal ? rotatedStyle : defaultStyle}\n >\n {disabledLabel ? (\n <div className={classes.disabledLabel} dangerouslySetInnerHTML={{ __html: text || '' }} />\n ) : (\n <EditableHtml\n markup={text || ''}\n onChange={onChange}\n placeholder={!disabledLabel && placeholder}\n toolbarOpts={{\n position: side === 'bottom' ? 'top' : 'bottom',\n noBorder: true,\n }}\n disableScrollbar\n activePlugins={activePlugins}\n onFocus={rotateLabel}\n onDone={() => setRotatedToHorizontal(false)}\n mathMlOptions={mathMlOptions}\n charactersLimit={charactersLimit}\n />\n )}\n </div>\n </Readable>\n );\n};\nLabelComponent.propTypes = {\n classes: PropTypes.object,\n disabledLabel: PropTypes.bool,\n graphHeight: PropTypes.number,\n graphWidth: PropTypes.number,\n isChartBottomLabel: PropTypes.bool,\n isDefineChartBottomLabel: PropTypes.bool,\n isChartLeftLabel: PropTypes.bool,\n isDefineChartLeftLabel: PropTypes.bool,\n placeholder: PropTypes.string,\n text: PropTypes.string,\n side: PropTypes.string,\n onChange: PropTypes.func,\n mathMlOptions: PropTypes.object,\n charactersLimit: PropTypes.number,\n};\n\nexport default withStyles((theme) => ({\n label: {\n fill: color.secondary(),\n },\n axisLabel: {\n fontSize: theme.typography.fontSize - 2,\n textAlign: 'center',\n margin: theme.spacing.unit / 2,\n padding: `${theme.spacing.unit / 2}px 0`,\n },\n chartLabel: {\n fontSize: theme.typography.fontSize + 2,\n textAlign: 'center',\n margin: theme.spacing.unit / 2,\n padding: `${theme.spacing.unit / 2}px 0`,\n },\n disabledLabel: {\n pointerEvents: 'none',\n width: '100%',\n },\n editLabel: {\n position: 'absolute',\n backgroundColor: 'white',\n borderRadius: '4px',\n boxShadow: '0px 5px 8px rgba(0, 0, 0, 0.15)',\n zIndex: 10,\n },\n rotateLeftLabel: {\n '-webkit-transform': 'rotate(-90deg)',\n transformOrigin: '0 0',\n transformStyle: 'preserve-3d',\n position: 'absolute',\n },\n rotateRightLabel: {\n '-webkit-transform': 'rotate(90deg)',\n transformOrigin: '0 0',\n transformStyle: 'preserve-3d',\n position: 'absolute',\n },\n customBottom: {\n position: 'absolute',\n },\n}))(LabelComponent);\n"],"file":"label.js"}
@@ -92,15 +92,15 @@ var Root = /*#__PURE__*/function (_React$Component) {
92
92
 
93
93
  if (isChart) {
94
94
  if (side === 'left') {
95
- onChangeLabels('range', newValue);
95
+ onChangeLabels && onChangeLabels('range', newValue);
96
96
  } else {
97
- onChangeLabels('domain', newValue);
97
+ onChangeLabels && onChangeLabels('domain', newValue);
98
98
  }
99
99
 
100
100
  return;
101
101
  }
102
102
 
103
- onChangeLabels(_objectSpread(_objectSpread({}, labels), {}, (0, _defineProperty2["default"])({}, side, newValue)));
103
+ onChangeLabels && onChangeLabels(_objectSpread(_objectSpread({}, labels), {}, (0, _defineProperty2["default"])({}, side, newValue)));
104
104
  });
105
105
  return _this;
106
106
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/code/plot/root.jsx"],"names":["Root","g","props","graphProps","onMouseMove","scale","snap","coords","_groups","x","invert","y","snapped","newValue","side","labels","onChangeLabels","isChart","on","mouseMove","bind","disabledTitle","disabledLabels","labelsPlaceholders","titlePlaceholder","children","classes","defineChart","onChangeTitle","showLabels","showPixelGuides","showTitle","title","rootRef","mathMlOptions","labelsCharactersLimit","size","width","height","domain","range","topPadding","leftPadding","finalWidth","padding","finalHeight","activeTitlePlugins","actualHeight","nbOfVerticalLines","parseInt","nbOfHorizontalLines","sideGridlinesPadding","root","topPixelGuides","marginLeft","Array","keys","map","value","topPixelIndicator","chartTitle","graphTitle","__html","rightMargin","noBorder","top","onChangeLabel","wrapper","left","chart","r","graphBox","right","sidePixelGuides","paddingTop","marginTop","reverse","sidePixelIndicator","bottom","React","Component","PropTypes","string","ChildrenType","bool","GraphPropsType","isRequired","object","func","number","styles","theme","border","color","primaryLight","defaults","TEXT","backgroundColor","palette","common","white","touchAction","position","display","svg","paddingLeft","overflow","cursor","userSelect","fontSize","typography","spacing","unit","textAlign","pointerEvents","marginRight","PRIMARY_LIGHT","flexDirection","alignItems","marginBottom"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { ChildrenType } from './types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { select, mouse } from 'd3-selection';\nimport PropTypes from 'prop-types';\nimport { GraphPropsType } from './types';\nimport { color, Readable } from '../render-ui';\nimport EditableHtml from '../editable-html';\nimport cn from 'classnames';\nimport Label from './label';\n\nexport class Root extends React.Component {\n static propTypes = {\n title: PropTypes.string,\n children: ChildrenType,\n defineChart: PropTypes.bool,\n disabledLabels: PropTypes.bool,\n disabledTitle: PropTypes.bool,\n graphProps: GraphPropsType.isRequired,\n isChart: PropTypes.bool,\n labels: PropTypes.object,\n labelsPlaceholders: PropTypes.object,\n onChangeTitle: PropTypes.func,\n onMouseMove: PropTypes.func,\n classes: PropTypes.object.isRequired,\n showLabels: PropTypes.bool,\n showTitle: PropTypes.bool,\n showPixelGuides: PropTypes.bool,\n rootRef: PropTypes.func,\n onChangeLabels: PropTypes.func,\n titlePlaceholder: PropTypes.string,\n mathMlOptions: PropTypes.object,\n labelsCharactersLimit: PropTypes.number,\n };\n\n mouseMove = (g) => {\n const { graphProps, onMouseMove } = this.props;\n\n if (!onMouseMove) {\n return;\n }\n\n const { scale, snap } = graphProps;\n const coords = mouse(g._groups[0][0]);\n const x = scale.x.invert(coords[0]);\n const y = scale.y.invert(coords[1]);\n\n const snapped = {\n x: snap.x(x),\n y: snap.y(y),\n };\n\n onMouseMove(snapped);\n };\n\n componentDidMount() {\n const g = select(this.g);\n g.on('mousemove', this.mouseMove.bind(this, g));\n }\n\n componentWillUnmount() {\n const g = select(this.g);\n g.on('mousemove', null);\n }\n\n onChangeLabel = (newValue, side) => {\n const { labels, onChangeLabels, isChart } = this.props;\n\n if (isChart) {\n if (side === 'left') {\n onChangeLabels('range', newValue);\n } else {\n onChangeLabels('domain', newValue);\n }\n\n return;\n }\n\n onChangeLabels({\n ...labels,\n [side]: newValue,\n });\n };\n\n render() {\n const {\n disabledTitle,\n disabledLabels,\n labels,\n labelsPlaceholders,\n titlePlaceholder,\n graphProps,\n children,\n classes,\n defineChart,\n onChangeTitle,\n isChart,\n showLabels,\n showPixelGuides,\n showTitle,\n title,\n rootRef,\n mathMlOptions = {},\n labelsCharactersLimit,\n } = this.props;\n const {\n size: { width = 500, height = 500 },\n domain,\n range,\n } = graphProps;\n\n const topPadding = 40;\n const leftPadding = showLabels ? 80 : 60;\n const finalWidth = width + leftPadding * 2 + (domain.padding || 0) * 2;\n const finalHeight = height + topPadding * 2 + (range.padding || 0) * 2;\n\n const activeTitlePlugins = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough',\n 'math',\n // 'languageCharacters'\n ];\n\n const actualHeight = defineChart && showPixelGuides ? height - 160 : height;\n const nbOfVerticalLines = parseInt(width / 100);\n const nbOfHorizontalLines = parseInt(actualHeight / 100);\n const sideGridlinesPadding = parseInt(actualHeight % 100);\n\n return (\n <div className={classes.root}>\n {showPixelGuides && (\n <div className={classes.topPixelGuides} style={{ marginLeft: isChart ? 80 : showLabels ? 30 : 10 }}>\n {[...Array(nbOfVerticalLines + 1).keys()].map((value) => (\n <Readable false key={`top-guide-${value}`}>\n <div className={classes.topPixelIndicator}>\n <div>{value * 100}px</div>\n <div>|</div>\n </div>\n </Readable>\n ))}\n </div>\n )}\n {showTitle &&\n (disabledTitle ? (\n <div\n style={\n isChart && {\n width: finalWidth,\n }\n }\n className={cn(isChart ? classes.chartTitle : classes.graphTitle, classes.disabledTitle)}\n dangerouslySetInnerHTML={{ __html: title || '' }}\n />\n ) : (\n <EditableHtml\n style={\n isChart && {\n width: finalWidth,\n }\n }\n className={cn(\n { [classes.rightMargin]: showPixelGuides },\n isChart ? classes.chartTitle : classes.graphTitle,\n )}\n markup={title || ''}\n onChange={onChangeTitle}\n placeholder={\n (defineChart && titlePlaceholder) || (!disabledTitle && 'Click here to add a title for this graph')\n }\n toolbarOpts={{ noBorder: true }}\n activePlugins={activeTitlePlugins}\n disableScrollbar\n />\n ))}\n {showLabels && !isChart && (\n <Label\n side=\"top\"\n text={labels.top}\n disabledLabel={disabledLabels}\n placeholder={labelsPlaceholders?.top}\n graphHeight={finalHeight}\n graphWidth={finalWidth}\n onChange={(value) => this.onChangeLabel(value, 'top')}\n mathMlOptions={mathMlOptions}\n charactersLimit={labelsCharactersLimit}\n />\n )}\n <div className={classes.wrapper}>\n {showLabels && (\n <Label\n side=\"left\"\n text={labels.left}\n disabledLabel={disabledLabels}\n placeholder={labelsPlaceholders?.left}\n graphHeight={finalHeight}\n graphWidth={finalWidth}\n isChartLeftLabel={isChart && !defineChart}\n isDefineChartLeftLabel={isChart && defineChart}\n onChange={(value) => this.onChangeLabel(value, 'left')}\n mathMlOptions={mathMlOptions}\n charactersLimit={labelsCharactersLimit}\n />\n )}\n <svg width={finalWidth} height={finalHeight} className={defineChart ? classes.defineChart : classes.chart}>\n <g\n ref={(r) => {\n this.g = r;\n if (rootRef) {\n rootRef(r);\n }\n }}\n className={classes.graphBox}\n transform={`translate(${leftPadding}, ${topPadding})`}\n >\n {children}\n </g>\n </svg>\n {showLabels && !isChart && (\n <Label\n side=\"right\"\n text={labels.right}\n disabledLabel={disabledLabels}\n placeholder={labelsPlaceholders?.right}\n graphHeight={finalHeight}\n graphWidth={finalWidth}\n onChange={(value) => this.onChangeLabel(value, 'right')}\n mathMlOptions={mathMlOptions}\n charactersLimit={labelsCharactersLimit}\n />\n )}\n {showPixelGuides && (\n <div\n className={classes.sidePixelGuides}\n style={{\n paddingTop: sideGridlinesPadding,\n marginTop: 31,\n }}\n >\n {[...Array(nbOfHorizontalLines + 1).keys()].reverse().map((value) => (\n <Readable false key={`top-guide-${value}`}>\n <div className={classes.sidePixelIndicator}>━ {value * 100}px</div>\n </Readable>\n ))}\n </div>\n )}\n </div>\n {showLabels && (\n <Label\n side=\"bottom\"\n text={labels.bottom}\n disabledLabel={disabledLabels}\n placeholder={labelsPlaceholders?.bottom}\n graphHeight={finalHeight}\n graphWidth={finalWidth}\n isChartBottomLabel={isChart && !defineChart}\n isDefineChartBottomLabel={isChart && defineChart}\n onChange={(value) => this.onChangeLabel(value, 'bottom')}\n mathMlOptions={mathMlOptions}\n charactersLimit={labelsCharactersLimit}\n />\n )}\n </div>\n );\n }\n}\n\n// use default color theme style to avoid color contrast issues\nconst styles = (theme) => ({\n root: {\n border: `solid 1px ${color.primaryLight()}`,\n color: color.defaults.TEXT,\n backgroundColor: theme.palette.common.white,\n touchAction: 'none',\n position: 'relative',\n },\n wrapper: {\n display: 'flex',\n position: 'relative',\n },\n svg: {},\n defineChart: {\n paddingLeft: '50px',\n overflow: 'visible',\n },\n chart: {\n overflow: 'visible',\n },\n graphBox: {\n cursor: 'pointer',\n userSelect: 'none',\n },\n graphTitle: {\n color: color.defaults.TEXT,\n fontSize: theme.typography.fontSize + 2,\n padding: `${theme.spacing.unit * 1.5}px ${theme.spacing.unit / 2}px 0`,\n textAlign: 'center',\n },\n chartTitle: {\n color: color.defaults.TEXT,\n fontSize: theme.typography.fontSize + 4,\n padding: `${theme.spacing.unit * 1.5}px ${theme.spacing.unit / 2}px 0`,\n textAlign: 'center',\n },\n disabledTitle: {\n pointerEvents: 'none',\n },\n rightMargin: {\n marginRight: '74px',\n },\n topPixelGuides: {\n display: 'flex',\n paddingTop: '6px',\n },\n topPixelIndicator: {\n color: color.defaults.PRIMARY_LIGHT,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n width: '100px',\n pointerEvents: 'none',\n userSelect: 'none',\n },\n sidePixelGuides: {\n width: '70px',\n display: 'flex',\n flexDirection: 'column',\n marginRight: '6px',\n },\n sidePixelIndicator: {\n color: color.defaults.PRIMARY_LIGHT,\n textAlign: 'right',\n height: '20px',\n pointerEvents: 'none',\n userSelect: 'none',\n\n '&:not(:last-child)': {\n marginBottom: '80px',\n },\n },\n});\n\nexport default withStyles(styles)(Root);\n"],"file":"root.js"}
1
+ {"version":3,"sources":["../../src/code/plot/root.jsx"],"names":["Root","g","props","graphProps","onMouseMove","scale","snap","coords","_groups","x","invert","y","snapped","newValue","side","labels","onChangeLabels","isChart","on","mouseMove","bind","disabledTitle","disabledLabels","labelsPlaceholders","titlePlaceholder","children","classes","defineChart","onChangeTitle","showLabels","showPixelGuides","showTitle","title","rootRef","mathMlOptions","labelsCharactersLimit","size","width","height","domain","range","topPadding","leftPadding","finalWidth","padding","finalHeight","activeTitlePlugins","actualHeight","nbOfVerticalLines","parseInt","nbOfHorizontalLines","sideGridlinesPadding","root","topPixelGuides","marginLeft","Array","keys","map","value","topPixelIndicator","chartTitle","graphTitle","__html","rightMargin","noBorder","top","onChangeLabel","wrapper","left","chart","r","graphBox","right","sidePixelGuides","paddingTop","marginTop","reverse","sidePixelIndicator","bottom","React","Component","PropTypes","string","ChildrenType","bool","GraphPropsType","isRequired","object","func","number","styles","theme","border","color","primaryLight","defaults","TEXT","backgroundColor","palette","common","white","touchAction","position","display","svg","paddingLeft","overflow","cursor","userSelect","fontSize","typography","spacing","unit","textAlign","pointerEvents","marginRight","PRIMARY_LIGHT","flexDirection","alignItems","marginBottom"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { ChildrenType } from './types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { select, mouse } from 'd3-selection';\nimport PropTypes from 'prop-types';\nimport { GraphPropsType } from './types';\nimport { color, Readable } from '../render-ui';\nimport EditableHtml from '../editable-html';\nimport cn from 'classnames';\nimport Label from './label';\n\nexport class Root extends React.Component {\n static propTypes = {\n title: PropTypes.string,\n children: ChildrenType,\n defineChart: PropTypes.bool,\n disabledLabels: PropTypes.bool,\n disabledTitle: PropTypes.bool,\n graphProps: GraphPropsType.isRequired,\n isChart: PropTypes.bool,\n labels: PropTypes.object,\n labelsPlaceholders: PropTypes.object,\n onChangeTitle: PropTypes.func,\n onMouseMove: PropTypes.func,\n classes: PropTypes.object.isRequired,\n showLabels: PropTypes.bool,\n showTitle: PropTypes.bool,\n showPixelGuides: PropTypes.bool,\n rootRef: PropTypes.func,\n onChangeLabels: PropTypes.func,\n titlePlaceholder: PropTypes.string,\n mathMlOptions: PropTypes.object,\n labelsCharactersLimit: PropTypes.number,\n };\n\n mouseMove = (g) => {\n const { graphProps, onMouseMove } = this.props;\n\n if (!onMouseMove) {\n return;\n }\n\n const { scale, snap } = graphProps;\n const coords = mouse(g._groups[0][0]);\n const x = scale.x.invert(coords[0]);\n const y = scale.y.invert(coords[1]);\n\n const snapped = {\n x: snap.x(x),\n y: snap.y(y),\n };\n\n onMouseMove(snapped);\n };\n\n componentDidMount() {\n const g = select(this.g);\n g.on('mousemove', this.mouseMove.bind(this, g));\n }\n\n componentWillUnmount() {\n const g = select(this.g);\n g.on('mousemove', null);\n }\n\n onChangeLabel = (newValue, side) => {\n const { labels, onChangeLabels, isChart } = this.props;\n\n if (isChart) {\n if (side === 'left') {\n onChangeLabels && onChangeLabels('range', newValue);\n } else {\n onChangeLabels && onChangeLabels('domain', newValue);\n }\n\n return;\n }\n\n onChangeLabels && onChangeLabels({\n ...labels,\n [side]: newValue,\n });\n };\n\n render() {\n const {\n disabledTitle,\n disabledLabels,\n labels,\n labelsPlaceholders,\n titlePlaceholder,\n graphProps,\n children,\n classes,\n defineChart,\n onChangeTitle,\n isChart,\n showLabels,\n showPixelGuides,\n showTitle,\n title,\n rootRef,\n mathMlOptions = {},\n labelsCharactersLimit,\n } = this.props;\n const {\n size: { width = 500, height = 500 },\n domain,\n range,\n } = graphProps;\n\n const topPadding = 40;\n const leftPadding = showLabels ? 80 : 60;\n const finalWidth = width + leftPadding * 2 + (domain.padding || 0) * 2;\n const finalHeight = height + topPadding * 2 + (range.padding || 0) * 2;\n\n const activeTitlePlugins = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough',\n 'math',\n // 'languageCharacters'\n ];\n\n const actualHeight = defineChart && showPixelGuides ? height - 160 : height;\n const nbOfVerticalLines = parseInt(width / 100);\n const nbOfHorizontalLines = parseInt(actualHeight / 100);\n const sideGridlinesPadding = parseInt(actualHeight % 100);\n\n return (\n <div className={classes.root}>\n {showPixelGuides && (\n <div className={classes.topPixelGuides} style={{ marginLeft: isChart ? 80 : showLabels ? 30 : 10 }}>\n {[...Array(nbOfVerticalLines + 1).keys()].map((value) => (\n <Readable false key={`top-guide-${value}`}>\n <div className={classes.topPixelIndicator}>\n <div>{value * 100}px</div>\n <div>|</div>\n </div>\n </Readable>\n ))}\n </div>\n )}\n {showTitle &&\n (disabledTitle ? (\n <div\n style={\n isChart && {\n width: finalWidth,\n }\n }\n className={cn(isChart ? classes.chartTitle : classes.graphTitle, classes.disabledTitle)}\n dangerouslySetInnerHTML={{ __html: title || '' }}\n />\n ) : (\n <EditableHtml\n style={\n isChart && {\n width: finalWidth,\n }\n }\n className={cn(\n { [classes.rightMargin]: showPixelGuides },\n isChart ? classes.chartTitle : classes.graphTitle,\n )}\n markup={title || ''}\n onChange={onChangeTitle}\n placeholder={\n (defineChart && titlePlaceholder) || (!disabledTitle && 'Click here to add a title for this graph')\n }\n toolbarOpts={{ noBorder: true }}\n activePlugins={activeTitlePlugins}\n disableScrollbar\n />\n ))}\n {showLabels && !isChart && (\n <Label\n side=\"top\"\n text={labels.top}\n disabledLabel={disabledLabels}\n placeholder={labelsPlaceholders?.top}\n graphHeight={finalHeight}\n graphWidth={finalWidth}\n onChange={(value) => this.onChangeLabel(value, 'top')}\n mathMlOptions={mathMlOptions}\n charactersLimit={labelsCharactersLimit}\n />\n )}\n <div className={classes.wrapper}>\n {showLabels && (\n <Label\n side=\"left\"\n text={labels.left}\n disabledLabel={disabledLabels}\n placeholder={labelsPlaceholders?.left}\n graphHeight={finalHeight}\n graphWidth={finalWidth}\n isChartLeftLabel={isChart && !defineChart}\n isDefineChartLeftLabel={isChart && defineChart}\n onChange={(value) => this.onChangeLabel(value, 'left')}\n mathMlOptions={mathMlOptions}\n charactersLimit={labelsCharactersLimit}\n />\n )}\n <svg width={finalWidth} height={finalHeight} className={defineChart ? classes.defineChart : classes.chart}>\n <g\n ref={(r) => {\n this.g = r;\n if (rootRef) {\n rootRef(r);\n }\n }}\n className={classes.graphBox}\n transform={`translate(${leftPadding}, ${topPadding})`}\n >\n {children}\n </g>\n </svg>\n {showLabels && !isChart && (\n <Label\n side=\"right\"\n text={labels.right}\n disabledLabel={disabledLabels}\n placeholder={labelsPlaceholders?.right}\n graphHeight={finalHeight}\n graphWidth={finalWidth}\n onChange={(value) => this.onChangeLabel(value, 'right')}\n mathMlOptions={mathMlOptions}\n charactersLimit={labelsCharactersLimit}\n />\n )}\n {showPixelGuides && (\n <div\n className={classes.sidePixelGuides}\n style={{\n paddingTop: sideGridlinesPadding,\n marginTop: 31,\n }}\n >\n {[...Array(nbOfHorizontalLines + 1).keys()].reverse().map((value) => (\n <Readable false key={`top-guide-${value}`}>\n <div className={classes.sidePixelIndicator}>━ {value * 100}px</div>\n </Readable>\n ))}\n </div>\n )}\n </div>\n {showLabels && (\n <Label\n side=\"bottom\"\n text={labels.bottom}\n disabledLabel={disabledLabels}\n placeholder={labelsPlaceholders?.bottom}\n graphHeight={finalHeight}\n graphWidth={finalWidth}\n isChartBottomLabel={isChart && !defineChart}\n isDefineChartBottomLabel={isChart && defineChart}\n onChange={(value) => this.onChangeLabel(value, 'bottom')}\n mathMlOptions={mathMlOptions}\n charactersLimit={labelsCharactersLimit}\n />\n )}\n </div>\n );\n }\n}\n\n// use default color theme style to avoid color contrast issues\nconst styles = (theme) => ({\n root: {\n border: `solid 1px ${color.primaryLight()}`,\n color: color.defaults.TEXT,\n backgroundColor: theme.palette.common.white,\n touchAction: 'none',\n position: 'relative',\n },\n wrapper: {\n display: 'flex',\n position: 'relative',\n },\n svg: {},\n defineChart: {\n paddingLeft: '50px',\n overflow: 'visible',\n },\n chart: {\n overflow: 'visible',\n },\n graphBox: {\n cursor: 'pointer',\n userSelect: 'none',\n },\n graphTitle: {\n color: color.defaults.TEXT,\n fontSize: theme.typography.fontSize + 2,\n padding: `${theme.spacing.unit * 1.5}px ${theme.spacing.unit / 2}px 0`,\n textAlign: 'center',\n },\n chartTitle: {\n color: color.defaults.TEXT,\n fontSize: theme.typography.fontSize + 4,\n padding: `${theme.spacing.unit * 1.5}px ${theme.spacing.unit / 2}px 0`,\n textAlign: 'center',\n },\n disabledTitle: {\n pointerEvents: 'none',\n },\n rightMargin: {\n marginRight: '74px',\n },\n topPixelGuides: {\n display: 'flex',\n paddingTop: '6px',\n },\n topPixelIndicator: {\n color: color.defaults.PRIMARY_LIGHT,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n width: '100px',\n pointerEvents: 'none',\n userSelect: 'none',\n },\n sidePixelGuides: {\n width: '70px',\n display: 'flex',\n flexDirection: 'column',\n marginRight: '6px',\n },\n sidePixelIndicator: {\n color: color.defaults.PRIMARY_LIGHT,\n textAlign: 'right',\n height: '20px',\n pointerEvents: 'none',\n userSelect: 'none',\n\n '&:not(:last-child)': {\n marginBottom: '80px',\n },\n },\n});\n\nexport default withStyles(styles)(Root);\n"],"file":"root.js"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-lib/pie-toolbox",
3
- "version": "1.16.5-next.58+5af0852f",
3
+ "version": "1.16.5-next.62+cd9f2bfc",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -86,5 +86,5 @@
86
86
  "react": "^16.8.1",
87
87
  "react-dom": "^16.8.1"
88
88
  },
89
- "gitHead": "5af0852f975ab34324d1b2860405c5725250331d"
89
+ "gitHead": "cd9f2bfcf7206fd2588e9aa3eb2458143e1d207b"
90
90
  }
@@ -128,7 +128,13 @@ const SlateEditor = (editorProps) => {
128
128
 
129
129
  return returnValue;
130
130
  };
131
- const onFocus = () => setIsFocused(true);
131
+ const onFocus = () => {
132
+ setIsFocused(true);
133
+
134
+ if (editorProps.onFocus) {
135
+ editorProps.onFocus();
136
+ }
137
+ };
132
138
  const onBlur = (e) => {
133
139
  setTimeout(() => {
134
140
  if (!editorRef.current || !editorRef.current.contains(document.activeElement)) {
@@ -260,7 +266,18 @@ const Element = (props) => {
260
266
  const { attributes, children, element, plugins } = props;
261
267
  const style = { textAlign: element.align };
262
268
 
263
- const nodeProps = { ...attributes, ...props, node: { ...element }, children };
269
+ let nodePath;
270
+ const nodeInfo = Array.from(
271
+ editor.nodes({
272
+ match: (n) => n === element,
273
+ }),
274
+ )[0];
275
+
276
+ if (nodeInfo) {
277
+ nodePath = nodeInfo[1];
278
+ }
279
+
280
+ const nodeProps = { ...attributes, ...props, node: element, nodePath, children };
264
281
  const pluginToRender = plugins.find((plugin) => typeof plugin.supports === 'function' && plugin.supports(element));
265
282
 
266
283
  if (pluginToRender) {
@@ -965,21 +982,21 @@ export class EditorComponent extends React.Component {
965
982
  * */
966
983
  onFocus = () =>
967
984
  new Promise((resolve) => {
968
- const editorDOM = document.querySelector(`[data-key="${this.state.value.document.key}"]`);
969
-
970
- log('[onFocus]', document.activeElement);
971
-
972
- /**
973
- * This is needed just in case the browser decides to make the editor
974
- * lose focus without triggering the onBlur event (can happen in a few cases).
975
- * This will also trigger onBlur if the user clicks outside of the page when the editor
976
- * is focused.
977
- */
978
- if (editorDOM === document.activeElement) {
979
- editorDOM.removeEventListener('blur', this.handleDomBlur);
980
- editorDOM.addEventListener('blur', this.handleDomBlur);
981
- }
982
-
985
+ // const editorDOM = document.querySelector(`[data-key="${this.state.value.document.key}"]`);
986
+ //
987
+ // log('[onFocus]', document.activeElement);
988
+ //
989
+ // /**
990
+ // * This is needed just in case the browser decides to make the editor
991
+ // * lose focus without triggering the onBlur event (can happen in a few cases).
992
+ // * This will also trigger onBlur if the user clicks outside of the page when the editor
993
+ // * is focused.
994
+ // */
995
+ // if (editorDOM === document.activeElement) {
996
+ // editorDOM.removeEventListener('blur', this.handleDomBlur);
997
+ // editorDOM.addEventListener('blur', this.handleDomBlur);
998
+ // }
999
+ //
983
1000
  this.stashValue();
984
1001
  this.props.onFocus();
985
1002