@pie-lib/editable-html 10.0.0-beta.4 → 10.0.0-beta.6

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 (143) hide show
  1. package/CHANGELOG.md +255 -152
  2. package/lib/components.js +15 -39
  3. package/lib/components.js.map +1 -1
  4. package/lib/editor.js +200 -356
  5. package/lib/editor.js.map +1 -1
  6. package/lib/index.js +25 -49
  7. package/lib/index.js.map +1 -1
  8. package/lib/new-serialization.js +31 -71
  9. package/lib/new-serialization.js.map +1 -1
  10. package/lib/parse-html.js +7 -6
  11. package/lib/parse-html.js.map +1 -1
  12. package/lib/plugins/characters/custom-popper.js +3 -13
  13. package/lib/plugins/characters/custom-popper.js.map +1 -1
  14. package/lib/plugins/characters/index.js +20 -59
  15. package/lib/plugins/characters/index.js.map +1 -1
  16. package/lib/plugins/characters/utils.js +1 -1
  17. package/lib/plugins/characters/utils.js.map +1 -1
  18. package/lib/plugins/hotKeys/index.js +9 -16
  19. package/lib/plugins/hotKeys/index.js.map +1 -1
  20. package/lib/plugins/image/alt-dialog.js +6 -27
  21. package/lib/plugins/image/alt-dialog.js.map +1 -1
  22. package/lib/plugins/image/component.js +42 -99
  23. package/lib/plugins/image/component.js.map +1 -1
  24. package/lib/plugins/image/image-toolbar.js +14 -50
  25. package/lib/plugins/image/image-toolbar.js.map +1 -1
  26. package/lib/plugins/image/index.js +16 -59
  27. package/lib/plugins/image/index.js.map +1 -1
  28. package/lib/plugins/image/insert-image-handler.js +13 -25
  29. package/lib/plugins/image/insert-image-handler.js.map +1 -1
  30. package/lib/plugins/index.js +6 -36
  31. package/lib/plugins/index.js.map +1 -1
  32. package/lib/plugins/list/index.js +11 -46
  33. package/lib/plugins/list/index.js.map +1 -1
  34. package/lib/plugins/math/index.js +89 -93
  35. package/lib/plugins/math/index.js.map +1 -1
  36. package/lib/plugins/media/index.js +32 -109
  37. package/lib/plugins/media/index.js.map +1 -1
  38. package/lib/plugins/media/media-dialog.js +107 -195
  39. package/lib/plugins/media/media-dialog.js.map +1 -1
  40. package/lib/plugins/media/media-toolbar.js +7 -27
  41. package/lib/plugins/media/media-toolbar.js.map +1 -1
  42. package/lib/plugins/media/media-wrapper.js +9 -14
  43. package/lib/plugins/media/media-wrapper.js.map +1 -1
  44. package/lib/plugins/respArea/drag-in-the-blank/choice.js +13 -53
  45. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
  46. package/lib/plugins/respArea/drag-in-the-blank/index.js +6 -20
  47. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
  48. package/lib/plugins/respArea/explicit-constructed-response/index.js +5 -10
  49. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
  50. package/lib/plugins/respArea/icons/index.js +16 -31
  51. package/lib/plugins/respArea/icons/index.js.map +1 -1
  52. package/lib/plugins/respArea/index.js +7 -54
  53. package/lib/plugins/respArea/index.js.map +1 -1
  54. package/lib/plugins/respArea/inline-dropdown/index.js +3 -10
  55. package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
  56. package/lib/plugins/respArea/utils.js +6 -21
  57. package/lib/plugins/respArea/utils.js.map +1 -1
  58. package/lib/plugins/table/icons/index.js +1 -8
  59. package/lib/plugins/table/icons/index.js.map +1 -1
  60. package/lib/plugins/table/index.js +54 -187
  61. package/lib/plugins/table/index.js.map +1 -1
  62. package/lib/plugins/table/table-toolbar.js +12 -44
  63. package/lib/plugins/table/table-toolbar.js.map +1 -1
  64. package/lib/plugins/toolbar/default-toolbar.js +17 -46
  65. package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
  66. package/lib/plugins/toolbar/done-button.js +2 -10
  67. package/lib/plugins/toolbar/done-button.js.map +1 -1
  68. package/lib/plugins/toolbar/editor-and-toolbar.js +134 -144
  69. package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
  70. package/lib/plugins/toolbar/index.js +2 -6
  71. package/lib/plugins/toolbar/index.js.map +1 -1
  72. package/lib/plugins/toolbar/toolbar-buttons.js +9 -40
  73. package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
  74. package/lib/plugins/toolbar/toolbar.js +29 -83
  75. package/lib/plugins/toolbar/toolbar.js.map +1 -1
  76. package/lib/plugins/utils.js +8 -30
  77. package/lib/plugins/utils.js.map +1 -1
  78. package/lib/serialization.js +11 -69
  79. package/lib/serialization.js.map +1 -1
  80. package/lib/test-serializer.js +5 -56
  81. package/lib/test-serializer.js.map +1 -1
  82. package/lib/theme.js +1 -1
  83. package/lib/theme.js.map +1 -1
  84. package/package.json +7 -7
  85. package/playground/image/data.js +20 -20
  86. package/playground/image/index.html +20 -22
  87. package/playground/image/index.jsx +10 -12
  88. package/playground/index.html +23 -25
  89. package/playground/mathquill/index.html +20 -23
  90. package/playground/mathquill/index.jsx +22 -18
  91. package/playground/prod-test/index.html +20 -24
  92. package/playground/prod-test/index.jsx +3 -5
  93. package/playground/schema-override/data.js +10 -10
  94. package/playground/schema-override/image-plugin.jsx +4 -3
  95. package/playground/schema-override/index.html +19 -21
  96. package/playground/schema-override/index.jsx +14 -13
  97. package/playground/serialization/data.js +10 -10
  98. package/playground/serialization/image-plugin.jsx +4 -3
  99. package/playground/serialization/index.html +20 -22
  100. package/playground/table-examples.html +8 -5
  101. package/playground/webpack.config.js +10 -10
  102. package/src/editor.jsx +108 -104
  103. package/src/index.jsx +20 -13
  104. package/src/new-serialization.jsx +30 -11
  105. package/src/parse-html.js +1 -1
  106. package/src/plugins/characters/custom-popper.js +7 -7
  107. package/src/plugins/characters/index.jsx +34 -23
  108. package/src/plugins/characters/utils.js +81 -81
  109. package/src/plugins/image/alt-dialog.jsx +5 -4
  110. package/src/plugins/image/component.jsx +47 -44
  111. package/src/plugins/image/image-toolbar.jsx +19 -27
  112. package/src/plugins/image/index.jsx +24 -18
  113. package/src/plugins/image/insert-image-handler.js +9 -0
  114. package/src/plugins/index.jsx +7 -9
  115. package/src/plugins/list/index.jsx +7 -7
  116. package/src/plugins/math/index.jsx +71 -28
  117. package/src/plugins/media/index.jsx +7 -7
  118. package/src/plugins/media/media-dialog.js +63 -89
  119. package/src/plugins/media/media-toolbar.jsx +8 -8
  120. package/src/plugins/media/media-wrapper.jsx +8 -5
  121. package/src/plugins/respArea/drag-in-the-blank/choice.jsx +19 -21
  122. package/src/plugins/respArea/drag-in-the-blank/index.jsx +4 -4
  123. package/src/plugins/respArea/explicit-constructed-response/index.jsx +5 -4
  124. package/src/plugins/respArea/icons/index.jsx +14 -11
  125. package/src/plugins/respArea/index.jsx +9 -15
  126. package/src/plugins/respArea/inline-dropdown/index.jsx +6 -6
  127. package/src/plugins/respArea/utils.jsx +7 -3
  128. package/src/plugins/table/icons/index.jsx +11 -17
  129. package/src/plugins/table/index.jsx +14 -10
  130. package/src/plugins/table/table-toolbar.jsx +6 -6
  131. package/src/plugins/toolbar/default-toolbar.jsx +9 -9
  132. package/src/plugins/toolbar/done-button.jsx +4 -4
  133. package/src/plugins/toolbar/editor-and-toolbar.jsx +36 -33
  134. package/src/plugins/toolbar/index.jsx +3 -2
  135. package/src/plugins/toolbar/toolbar-buttons.jsx +11 -11
  136. package/src/plugins/toolbar/toolbar.jsx +6 -1
  137. package/src/plugins/utils.js +2 -2
  138. package/src/serialization.jsx +34 -32
  139. package/src/test-serializer.js +2 -9
  140. package/lib/old-serialization.js +0 -330
  141. package/lib/slate-editor.js +0 -302
  142. package/src/test-serializer.js.rej +0 -20
  143. package/yarn-error.log +0 -18318
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","names":["log","debug","size","s","Component","percent","multiplier","img","naturalWidth","naturalHeight","width","floored","parseInt","toFixed","props","node","editor","update","cloneDeep","data","w","resizePercent","getPercentFromWidth","isEqual","nodePath","Editor","path","selection","apply","type","properties","newProperties","window","addEventListener","startResizing","stopResizing","maxImageWidth","maxImageHeight","box","style","dimensions","height","updateImageDimensions","setState","e","bounds","target","getBoundingClientRect","clientX","left","clientY","top","hasMinimumWidth","hasDimensionsConstraints","set","equals","change","c","setNodeByKey","key","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","classNames","root","loading","pendingDelete","progressClasses","progress","hideProgress","imageContainer","image","ref","loadImage","React","PropTypes","shape","string","array","object","isRequired","bool","func","value","onBlur","number","styles","theme","portal","position","opacity","transition","floatingButtonRow","backgroundColor","borderRadius","display","padding","border","boxShadow","right","alignItems","palette","primary","main","cursor","marginLeft","marginRight","drawableHeight","minHeight","withStyles"],"sources":["../../../src/plugins/image/component.jsx"],"sourcesContent":["import 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 = update.resizePercent = this.getPercentFromWidth(w);\n }\n\n log('[applySizeData] update: ', update);\n\n if (!isEqual(update, node.data)) {\n const nodePath = Editor.path(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 (!isEqual(update, node.data)) {\n const nodePath = Editor.path(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 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, 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 case 'center':\n justifyContent = 'center';\n break;\n case 'right':\n justifyContent = 'flex-end';\n break;\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\n mode=\"determinate\"\n value={percent > 0 ? percent : 0}\n className={progressClasses}\n />\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: 'white',\n borderRadius: '1px',\n display: 'flex',\n padding: '10px',\n border: 'solid 1px #eeeeee',\n boxShadow:\n '0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)'\n },\n progress: {\n position: 'absolute',\n left: '0',\n width: 'fit-content',\n top: '0%',\n transition: 'opacity 200ms linear'\n },\n hideProgress: {\n opacity: 0\n },\n loading: {\n opacity: 0.3\n },\n pendingDelete: {\n opacity: 0.3\n },\n root: {\n position: 'relative',\n border: 'solid 1px white',\n display: 'flex',\n transition: 'opacity 200ms linear'\n },\n delete: {\n position: 'absolute',\n right: 0\n },\n imageContainer: {\n position: 'relative',\n width: 'fit-content',\n display: 'flex',\n alignItems: 'center',\n\n '&&:hover > .resize': {\n display: 'block'\n }\n },\n active: {\n border: `solid 1px ${theme.palette.primary.main}`\n },\n resize: {\n backgroundColor: theme.palette.primary.main,\n cursor: 'col-resize',\n height: '35px',\n width: '5px',\n borderRadius: 8,\n marginLeft: '5px',\n marginRight: '10px',\n display: 'none'\n },\n drawableHeight: {\n minHeight: 350\n }\n});\n\nexport default withStyles(styles)(Component);\n"],"mappings":"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"}
1
+ {"version":3,"file":"component.js","names":["_react","_interopRequireDefault","require","_propTypes","_classnames","_debug","_isEqual","_cloneDeep","_LinearProgress","_styles","_slate","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","log","debug","size","s","concat","Component","_React$Component","_inherits2","_super","_this","_classCallCheck2","_len","length","args","Array","_key","_defineProperty2","_assertThisInitialized2","percent","multiplier","img","naturalWidth","naturalHeight","width","floored","parseInt","toFixed","_this$props","props","node","editor","update","cloneDeep","data","w","resizePercent","getPercentFromWidth","selection","isEqual","nodePath","Editor","path","type","properties","newProperties","window","addEventListener","startResizing","stopResizing","_ref","maxImageWidth","maxImageHeight","box","style","dimensions","height","_this$updateImageDime","updateImageDimensions","setState","_this$props2","bounds","target","getBoundingClientRect","_this$updateImageDime2","clientX","left","clientY","top","hasMinimumWidth","hasDimensionsConstraints","_this$props3","set","equals","change","c","setNodeByKey","key","removeEventListener","initialDim","nextDim","keepAspectRatio","resizeType","imageAspectRatio","_createClass2","value","componentDidMount","applySizeData","resizeHandle","resize","initialiseResize","componentDidUpdate","getSize","objectFit","render","_classNames","_this2","_this$props4","focused","classes","attributes","children","onFocus","active","_node$data","alignment","alt","deleteStatus","loaded","src","isLoaded","justifyContent","className","classNames","root","loading","pendingDelete","progressClasses","progress","hideProgress","createElement","_extends2","mode","imageContainer","image","ref","onLoad","loadImage","React","exports","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","_default","withStyles"],"sources":["../../../src/plugins/image/component.jsx"],"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 = 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.path(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.path(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 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, 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\n mode=\"determinate\"\n value={percent > 0 ? percent : 0}\n className={progressClasses}\n />\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"],"mappings":";;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,WAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,MAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,QAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,UAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,eAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA;AAA+B,SAAAS,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,aAAAL,OAAA,GAAAM,MAAA,MAAAL,yBAAA,QAAAM,SAAA,OAAAF,gBAAA,mBAAAG,WAAA,EAAAF,MAAA,GAAAG,OAAA,CAAAC,SAAA,CAAAN,KAAA,EAAAO,SAAA,EAAAJ,SAAA,YAAAD,MAAA,GAAAF,KAAA,CAAAQ,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,mBAAAP,MAAA;AAAA,SAAAJ,0BAAA,eAAAO,OAAA,qBAAAA,OAAA,CAAAC,SAAA,oBAAAD,OAAA,CAAAC,SAAA,CAAAI,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,OAAA,CAAAC,SAAA,CAAAM,OAAA,8CAAAI,CAAA;AAE/B,IAAMC,GAAG,GAAG,IAAAC,iBAAK,EAAC,gDAAgD,CAAC;AAEnE,IAAMC,IAAI,GAAG,SAAPA,IAAIA,CAAIC,CAAC;EAAA,OAAMA,CAAC,MAAAC,MAAA,CAAMD,CAAC,UAAO,MAAM;AAAA,CAAC;AAAC,IAE/BE,SAAS,0BAAAC,gBAAA;EAAA,IAAAC,UAAA,aAAAF,SAAA,EAAAC,gBAAA;EAAA,IAAAE,MAAA,GAAA9B,YAAA,CAAA2B,SAAA;EAAA,SAAAA,UAAA;IAAA,IAAAI,KAAA;IAAA,IAAAC,gBAAA,mBAAAL,SAAA;IAAA,SAAAM,IAAA,GAAArB,SAAA,CAAAsB,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAH,IAAA,GAAAI,IAAA,MAAAA,IAAA,GAAAJ,IAAA,EAAAI,IAAA;MAAAF,IAAA,CAAAE,IAAA,IAAAzB,SAAA,CAAAyB,IAAA;IAAA;IAAAN,KAAA,GAAAD,MAAA,CAAAV,IAAA,CAAAP,KAAA,CAAAiB,MAAA,SAAAJ,MAAA,CAAAS,IAAA;IAAA,IAAAG,gBAAA,iBAAAC,uBAAA,aAAAR,KAAA,eAoBT,UAACS,OAAO,EAAK;MACtB,IAAMC,UAAU,GAAGD,OAAO,GAAG,GAAG;MAChC,OAAOT,KAAA,CAAKW,GAAG,CAACC,YAAY,GAAGF,UAAU;IAC3C,CAAC;IAAA,IAAAH,gBAAA,iBAAAC,uBAAA,aAAAR,KAAA,gBAEW,UAACS,OAAO,EAAK;MACvB,IAAMC,UAAU,GAAGD,OAAO,GAAG,GAAG;MAChC,OAAOT,KAAA,CAAKW,GAAG,CAACE,aAAa,GAAGH,UAAU;IAC5C,CAAC;IAAA,IAAAH,gBAAA,iBAAAC,uBAAA,aAAAR,KAAA,0BAEqB,UAACc,KAAK,EAAK;MAC/B,IAAIC,OAAO,GAAID,KAAK,GAAGd,KAAA,CAAKW,GAAG,CAACC,YAAY,GAAI,CAAC;MACjD,OAAOI,QAAQ,CAACD,OAAO,CAACE,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;IAC9C,CAAC;IAAA,IAAAV,gBAAA,iBAAAC,uBAAA,aAAAR,KAAA,oBAEe,YAAM;MACpB,IAAAkB,WAAA,GAAyBlB,KAAA,CAAKmB,KAAK;QAA3BC,IAAI,GAAAF,WAAA,CAAJE,IAAI;QAAEC,MAAM,GAAAH,WAAA,CAANG,MAAM;MAEpB,IAAIC,MAAM,GAAG,IAAAC,qBAAS,EAACH,IAAI,CAACI,IAAI,CAAC;MAEjC,IAAMC,CAAC,GAAGH,MAAM,CAACR,KAAK;MAEtB,IAAIW,CAAC,EAAE;QACLH,MAAM,GAAGA,MAAM,CAACI,aAAa,GAAG1B,KAAA,CAAK2B,mBAAmB,CAACF,CAAC,CAAC;MAC7D;MAEAlC,GAAG,CAAC,0BAA0B,EAAE+B,MAAM,CAAC;MAEvC,IAAID,MAAM,CAACO,SAAS,IAAI,CAAC,IAAAC,mBAAO,EAACP,MAAM,EAAEF,IAAI,CAACI,IAAI,CAAC,EAAE;QACnD,IAAMM,QAAQ,GAAGC,aAAM,CAACC,IAAI,CAACX,MAAM,EAAEA,MAAM,CAACO,SAAS,CAAC;QAEtDP,MAAM,CAACvC,KAAK,CAAC;UACXmD,IAAI,EAAE,UAAU;UAChBD,IAAI,EAAEF,QAAQ;UACdI,UAAU,EAAE;YACVV,IAAI,EAAEJ,IAAI,CAACI;UACb,CAAC;UACDW,aAAa,EAAE;YAAEX,IAAI,EAAEF;UAAO;QAChC,CAAC,CAAC;MACJ;IACF,CAAC;IAAA,IAAAf,gBAAA,iBAAAC,uBAAA,aAAAR,KAAA,uBAEkB,YAAM;MACvBoC,MAAM,CAACC,gBAAgB,CAAC,WAAW,EAAErC,KAAA,CAAKsC,aAAa,EAAE,KAAK,CAAC;MAC/DF,MAAM,CAACC,gBAAgB,CAAC,SAAS,EAAErC,KAAA,CAAKuC,YAAY,EAAE,KAAK,CAAC;IAC9D,CAAC;IAAA,IAAAhC,gBAAA,iBAAAC,uBAAA,aAAAR,KAAA,gBAwBW,YAAM;MAChB,IAAAwC,IAAA,GAAwCxC,KAAA,CAAKmB,KAAK,IAAI,CAAC,CAAC;QAAlDsB,aAAa,GAAAD,IAAA,CAAbC,aAAa;QAAEC,cAAc,GAAAF,IAAA,CAAdE,cAAc;MACnCD,aAAa,GAAGA,aAAa,IAAI,GAAG;MACpCC,cAAc,GAAGA,cAAc,IAAI,GAAG;MAEtC,IAAMC,GAAG,GAAG3C,KAAA,CAAKW,GAAG;;MAEpB;MACA,IAAI,CAACgC,GAAG,CAACC,KAAK,CAAC9B,KAAK,IAAI6B,GAAG,CAACC,KAAK,CAAC9B,KAAK,KAAK,MAAM,EAAE;QAClD,IAAM+B,UAAU,GAAG;UACjB/B,KAAK,EAAG6B,GAAG,IAAIA,GAAG,CAAC/B,YAAY,IAAK,GAAG;UACvCkC,MAAM,EAAGH,GAAG,IAAIA,GAAG,CAAC9B,aAAa,IAAK;QACxC,CAAC;QAED,IAAAkC,qBAAA,GAA0B/C,KAAA,CAAKgD,qBAAqB,CAClDH,UAAU,EACV;YACE/B,KAAK,EAAE+B,UAAU,CAAC/B,KAAK,GAAG2B,aAAa,GAAGI,UAAU,CAAC/B,KAAK,GAAG2B,aAAa;YAC1EK,MAAM,EAAED,UAAU,CAACC,MAAM,GAAGJ,cAAc,GAAGG,UAAU,CAACC,MAAM,GAAGJ;UACnE,CAAC,EACD,IACF,CAAC;UAPO5B,KAAK,GAAAiC,qBAAA,CAALjC,KAAK;UAAEgC,MAAM,GAAAC,qBAAA,CAAND,MAAM;QASrBH,GAAG,CAACC,KAAK,CAAC9B,KAAK,MAAAnB,MAAA,CAAMmB,KAAK,OAAI;QAC9B6B,GAAG,CAACC,KAAK,CAACE,MAAM,MAAAnD,MAAA,CAAMmD,MAAM,OAAI;QAEhC9C,KAAA,CAAKiD,QAAQ,CAAC;UACZJ,UAAU,EAAE;YAAEC,MAAM,EAAEA,MAAM;YAAEhC,KAAK,EAAEA;UAAM;QAC7C,CAAC,CAAC;QAEF,IAAAoC,YAAA,GAAyBlD,KAAA,CAAKmB,KAAK;UAA3BC,IAAI,GAAA8B,YAAA,CAAJ9B,IAAI;UAAEC,MAAM,GAAA6B,YAAA,CAAN7B,MAAM;QAEpB,IAAMC,MAAM,GAAG,IAAAC,qBAAS,EAACH,IAAI,CAACI,IAAI,CAAC;QAEnCF,MAAM,CAACR,KAAK,GAAGA,KAAK;QACpBQ,MAAM,CAACwB,MAAM,GAAGA,MAAM;QAEtB,IAAIzB,MAAM,CAACO,SAAS,IAAI,CAAC,IAAAC,mBAAO,EAACP,MAAM,EAAEF,IAAI,CAACI,IAAI,CAAC,EAAE;UACnD,IAAMM,QAAQ,GAAGC,aAAM,CAACC,IAAI,CAACX,MAAM,EAAEA,MAAM,CAACO,SAAS,CAAC;UAEtDP,MAAM,CAACvC,KAAK,CAAC;YACXmD,IAAI,EAAE,UAAU;YAChBD,IAAI,EAAEF,QAAQ;YACdI,UAAU,EAAE;cACVV,IAAI,EAAEJ,IAAI,CAACI;YACb,CAAC;YACDW,aAAa,EAAE;cAAEX,IAAI,EAAEF;YAAO;UAChC,CAAC,CAAC;QACJ;MACF;IACF,CAAC;IAAA,IAAAf,gBAAA,iBAAAC,uBAAA,aAAAR,KAAA,oBAEe,UAACV,CAAC,EAAK;MACrB,IAAM6D,MAAM,GAAG7D,CAAC,CAAC8D,MAAM,CAACC,qBAAqB,CAAC,CAAC;MAC/C,IAAMV,GAAG,GAAG3C,KAAA,CAAKW,GAAG;MACpB,IAAMkC,UAAU,GAAG;QACjB/B,KAAK,EAAG6B,GAAG,IAAIA,GAAG,CAAC/B,YAAY,IAAK,GAAG;QACvCkC,MAAM,EAAGH,GAAG,IAAIA,GAAG,CAAC9B,aAAa,IAAK;MACxC,CAAC;MAED,IAAAyC,sBAAA,GAA0BtD,KAAA,CAAKgD,qBAAqB,CAClDH,UAAU,EACV;UACE/B,KAAK,EAAExB,CAAC,CAACiE,OAAO,GAAGJ,MAAM,CAACK,IAAI;UAC9BV,MAAM,EAAExD,CAAC,CAACmE,OAAO,GAAGN,MAAM,CAACO;QAC7B,CAAC,EACD,IACF,CAAC;QAPO5C,KAAK,GAAAwC,sBAAA,CAALxC,KAAK;QAAEgC,MAAM,GAAAQ,sBAAA,CAANR,MAAM;MASrB,IAAMa,eAAe,GAAG7C,KAAK,GAAG,EAAE,IAAIgC,MAAM,GAAG,EAAE;MACjD,IAAMc,wBAAwB,GAAG9C,KAAK,IAAI,GAAG,IAAIgC,MAAM,IAAI,GAAG;MAE9D,IAAIa,eAAe,IAAIC,wBAAwB,IAAIjB,GAAG,EAAE;QACtDA,GAAG,CAACC,KAAK,CAAC9B,KAAK,MAAAnB,MAAA,CAAMmB,KAAK,OAAI;QAC9B6B,GAAG,CAACC,KAAK,CAACE,MAAM,MAAAnD,MAAA,CAAMmD,MAAM,OAAI;QAEhC9C,KAAA,CAAKiD,QAAQ,CAAC;UACZJ,UAAU,EAAE;YAAEC,MAAM,EAAEA,MAAM;YAAEhC,KAAK,EAAEA;UAAM;QAC7C,CAAC,CAAC;QAEF,IAAA+C,YAAA,GAAyB7D,KAAA,CAAKmB,KAAK;UAA3BC,IAAI,GAAAyC,YAAA,CAAJzC,IAAI;UAAEC,MAAM,GAAAwC,YAAA,CAANxC,MAAM;QAEpB,IAAIC,MAAM,GAAGF,IAAI,CAACI,IAAI;QAEtBF,MAAM,GAAGA,MAAM,CAACwC,GAAG,CAAC,OAAO,EAAEhD,KAAK,CAAC;QACnCQ,MAAM,GAAGA,MAAM,CAACwC,GAAG,CAAC,QAAQ,EAAEhB,MAAM,CAAC;QAErC,IAAI,CAACxB,MAAM,CAACyC,MAAM,CAAC3C,IAAI,CAACI,IAAI,CAAC,EAAE;UAC7BH,MAAM,CAAC2C,MAAM,CAAC,UAACC,CAAC;YAAA,OAAKA,CAAC,CAACC,YAAY,CAAC9C,IAAI,CAAC+C,GAAG,EAAE;cAAE3C,IAAI,EAAEF;YAAO,CAAC,CAAC;UAAA,EAAC;QAClE;MACF;IACF,CAAC;IAAA,IAAAf,gBAAA,iBAAAC,uBAAA,aAAAR,KAAA,mBAEc,YAAM;MACnBoC,MAAM,CAACgC,mBAAmB,CAAC,WAAW,EAAEpE,KAAA,CAAKsC,aAAa,EAAE,KAAK,CAAC;MAClEF,MAAM,CAACgC,mBAAmB,CAAC,SAAS,EAAEpE,KAAA,CAAKuC,YAAY,EAAE,KAAK,CAAC;IACjE,CAAC;IAAA,IAAAhC,gBAAA,iBAAAC,uBAAA,aAAAR,KAAA,4BAEuB,UAACqE,UAAU,EAAEC,OAAO,EAAEC,eAAe,EAAEC,UAAU,EAAK;MAC5E;MACA,IAAID,eAAe,EAAE;QACnB,IAAME,gBAAgB,GAAGJ,UAAU,CAACvD,KAAK,GAAGuD,UAAU,CAACvB,MAAM;QAE7D,IAAI0B,UAAU,KAAK,QAAQ,EAAE;UAC3B;UACA,OAAO;YACL1D,KAAK,EAAEwD,OAAO,CAACxB,MAAM,GAAG2B,gBAAgB;YACxC3B,MAAM,EAAEwB,OAAO,CAACxB;UAClB,CAAC;QACH;;QAEA;QACA,OAAO;UACLhC,KAAK,EAAEwD,OAAO,CAACxD,KAAK;UACpBgC,MAAM,EAAEwB,OAAO,CAACxD,KAAK,GAAG2D;QAC1B,CAAC;MACH;;MAEA;MACA,OAAO;QACL3D,KAAK,EAAEwD,OAAO,CAACxD,KAAK;QACpBgC,MAAM,EAAEwB,OAAO,CAACxB;MAClB,CAAC;IACH,CAAC;IAAA,OAAA9C,KAAA;EAAA;EAAA,IAAA0E,aAAA,aAAA9E,SAAA;IAAAuE,GAAA;IAAAQ,KAAA,EAjJD,SAAAC,kBAAA,EAAoB;MAClB,IAAI,CAACC,aAAa,CAAC,CAAC;MAEpB,IAAMC,YAAY,GAAG,IAAI,CAACC,MAAM;MAEhC,IAAID,YAAY,EAAE;QAChBA,YAAY,CAACzC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC2C,gBAAgB,EAAE,KAAK,CAAC;MAC1E;IACF;EAAC;IAAAb,GAAA;IAAAQ,KAAA,EAED,SAAAM,mBAAA,EAAqB;MACnB,IAAI,CAACJ,aAAa,CAAC,CAAC;IACtB;EAAC;IAAAV,GAAA;IAAAQ,KAAA,EAED,SAAAO,QAAQ1D,IAAI,EAAE;MACZ,OAAO;QACLV,KAAK,EAAErB,IAAI,CAAC+B,IAAI,CAACV,KAAK,CAAC;QACvBgC,MAAM,EAAErD,IAAI,CAAC+B,IAAI,CAACsB,MAAM,CAAC;QACzBqC,SAAS,EAAE;MACb,CAAC;IACH;EAAC;IAAAhB,GAAA;IAAAQ,KAAA,EA+HD,SAAAS,OAAA,EAAS;MAAA,IAAAC,WAAA;QAAAC,MAAA;MACP,IAAAC,YAAA,GAAkE,IAAI,CAACpE,KAAK;QAApEC,IAAI,GAAAmE,YAAA,CAAJnE,IAAI;QAAEoE,OAAO,GAAAD,YAAA,CAAPC,OAAO;QAAEC,OAAO,GAAAF,YAAA,CAAPE,OAAO;QAAEC,UAAU,GAAAH,YAAA,CAAVG,UAAU;QAAEC,QAAQ,GAAAJ,YAAA,CAARI,QAAQ;QAAEC,OAAO,GAAAL,YAAA,CAAPK,OAAO;MAC7D,IAAMC,MAAM,GAAGL,OAAO;MACtB,IAAAM,UAAA,GAA+D1E,IAAI,CAACI,IAAI;QAAhEuE,SAAS,GAAAD,UAAA,CAATC,SAAS;QAAEC,GAAG,GAAAF,UAAA,CAAHE,GAAG;QAAEC,YAAY,GAAAH,UAAA,CAAZG,YAAY;QAAEC,MAAM,GAAAJ,UAAA,CAANI,MAAM;QAAEzF,OAAO,GAAAqF,UAAA,CAAPrF,OAAO;QAAE0F,GAAG,GAAAL,UAAA,CAAHK,GAAG;MAC1D,IAAMC,QAAQ,GAAGF,MAAM,KAAK,KAAK;MACjC,IAAIG,cAAc;MAElB,QAAQN,SAAS;QACf,KAAK,MAAM;UACTM,cAAc,GAAG,YAAY;UAC7B;QAEF,KAAK,QAAQ;UACXA,cAAc,GAAG,QAAQ;UACzB;QAEF,KAAK,OAAO;UACVA,cAAc,GAAG,UAAU;UAC3B;QAEF;UACEA,cAAc,GAAG,YAAY;UAC7B;MACJ;MACA9G,GAAG,CAAC,qBAAqB,EAAE6B,IAAI,CAACI,IAAI,CAAC;MAErC,IAAM/B,IAAI,GAAG,IAAI,CAACyF,OAAO,CAAC9D,IAAI,CAACI,IAAI,CAAC;MAEpCjC,GAAG,CAAC,iBAAiB,EAAEE,IAAI,CAAC;MAE5B,IAAM6G,SAAS,GAAG,IAAAC,sBAAU,EAACd,OAAO,CAACe,IAAI,GAAAnB,WAAA,WAAA9E,gBAAA,aAAA8E,WAAA,EACtCI,OAAO,CAACgB,OAAO,EAAG,CAACL,QAAQ,OAAA7F,gBAAA,aAAA8E,WAAA,EAC3BI,OAAO,CAACiB,aAAa,EAAGT,YAAY,KAAK,SAAS,GAAAZ,WAAA,CACpD,CAAC;MAEF,IAAMsB,eAAe,GAAG,IAAAJ,sBAAU,EAACd,OAAO,CAACmB,QAAQ,MAAArG,gBAAA,iBAChDkF,OAAO,CAACoB,YAAY,EAAGT,QAAQ,CACjC,CAAC;MAEF,oBACE9I,MAAA,YAAAwJ,aAAA,YAAAC,SAAA;QAAKnB,OAAO,EAAEA,OAAQ;QAACU,SAAS,EAAEA,SAAU;QAAC1D,KAAK,EAAE;UAAEyD,cAAc,EAAdA;QAAe;MAAE,GAAKX,UAAU,GACnFC,QAAQ,eACTrI,MAAA,YAAAwJ,aAAA,CAAChJ,eAAA,WAAc;QACbkJ,IAAI,EAAC,aAAa;QAClBrC,KAAK,EAAElE,OAAO,GAAG,CAAC,GAAGA,OAAO,GAAG,CAAE;QACjC6F,SAAS,EAAEK;MAAgB,CAC5B,CAAC,eACFrJ,MAAA,YAAAwJ,aAAA;QAAKR,SAAS,EAAEb,OAAO,CAACwB;MAAe,gBACrC3J,MAAA,YAAAwJ,aAAA;QACER,SAAS,EAAE,IAAAC,sBAAU,EAACd,OAAO,CAACyB,KAAK,MAAA3G,gBAAA,iBAAKkF,OAAO,CAACI,MAAM,EAAGA,MAAM,CAAE,CAAE;QACnEsB,GAAG,EAAE,SAAAA,IAACA,KAAG,EAAK;UACZ7B,MAAI,CAAC3E,GAAG,GAAGwG,KAAG;QAChB,CAAE;QACFhB,GAAG,EAAEA,GAAI;QACTvD,KAAK,EAAEnD,IAAK;QACZ2H,MAAM,EAAE,IAAI,CAACC,SAAU;QACvBrB,GAAG,EAAEA;MAAI,CACV,CAAC,eACF1I,MAAA,YAAAwJ,aAAA;QACEK,GAAG,EAAE,SAAAA,IAACA,KAAG,EAAK;UACZ7B,MAAI,CAACP,MAAM,GAAGoC,KAAG;QACnB,CAAE;QACFb,SAAS,EAAE,IAAAC,sBAAU,EAACd,OAAO,CAACV,MAAM,EAAE,QAAQ;MAAE,CACjD,CACE,CACF,CAAC;IAEV;EAAC;EAAA,OAAAnF,SAAA;AAAA,EAzR4B0H,iBAAK,CAAC1H,SAAS;AAAA2H,OAAA,CAAA3H,SAAA,GAAAA,SAAA;AAAA,IAAAW,gBAAA,aAAjCX,SAAS,eACD;EACjBwB,IAAI,EAAEoG,qBAAS,CAACC,KAAK,CAAC;IACpBxF,IAAI,EAAEuF,qBAAS,CAACE,MAAM;IACtB/B,QAAQ,EAAE6B,qBAAS,CAACG,KAAK;IACzBnG,IAAI,EAAEgG,qBAAS,CAACI;EAClB,CAAC,CAAC,CAACC,UAAU;EACbrC,OAAO,EAAEgC,qBAAS,CAACM,IAAI;EACvBzG,MAAM,EAAEmG,qBAAS,CAACC,KAAK,CAAC;IACtBzD,MAAM,EAAEwD,qBAAS,CAACO,IAAI,CAACF,UAAU;IACjClD,KAAK,EAAE6C,qBAAS,CAACI;EACnB,CAAC,CAAC,CAACC,UAAU;EACbpC,OAAO,EAAE+B,qBAAS,CAACI,MAAM,CAACC,UAAU;EACpCnC,UAAU,EAAE8B,qBAAS,CAACI,MAAM;EAC5BhC,OAAO,EAAE4B,qBAAS,CAACO,IAAI;EACvBC,MAAM,EAAER,qBAAS,CAACO,IAAI;EACtBtF,aAAa,EAAE+E,qBAAS,CAACS,MAAM;EAC/BvF,cAAc,EAAE8E,qBAAS,CAACS;AAC5B,CAAC;AA0QH,IAAMC,MAAM,GAAG,SAATA,MAAMA,CAAIC,KAAK;EAAA,OAAM;IACzBC,MAAM,EAAE;MACNC,QAAQ,EAAE,UAAU;MACpBC,OAAO,EAAE,CAAC;MACVC,UAAU,EAAE;IACd,CAAC;IACDC,iBAAiB,EAAE;MACjBC,eAAe,EAAEN,KAAK,CAACO,OAAO,CAACC,UAAU,CAACC,KAAK;MAC/CC,YAAY,EAAE,KAAK;MACnBC,OAAO,EAAE,MAAM;MACfC,OAAO,EAAE,MAAM;MACfC,MAAM,eAAArJ,MAAA,CAAewI,KAAK,CAACO,OAAO,CAACO,IAAI,CAAC,GAAG,CAAC,CAAE;MAC9CC,SAAS,EACP;IACJ,CAAC;IACDtC,QAAQ,EAAE;MACRyB,QAAQ,EAAE,UAAU;MACpB7E,IAAI,EAAE,GAAG;MACT1C,KAAK,EAAE,aAAa;MACpB4C,GAAG,EAAE,IAAI;MACT6E,UAAU,EAAE;IACd,CAAC;IACD1B,YAAY,EAAE;MACZyB,OAAO,EAAE;IACX,CAAC;IACD7B,OAAO,EAAE;MACP6B,OAAO,EAAE;IACX,CAAC;IACD5B,aAAa,EAAE;MACb4B,OAAO,EAAE;IACX,CAAC;IACD9B,IAAI,EAAE;MACJ6B,QAAQ,EAAE,UAAU;MACpBW,MAAM,eAAArJ,MAAA,CAAewI,KAAK,CAACO,OAAO,CAACS,MAAM,CAACC,KAAK,CAAE;MACjDN,OAAO,EAAE,MAAM;MACfP,UAAU,EAAE,sBAAsB;MAClCzH,KAAK,EAAE;IACT,CAAC;IACD,UAAQ;MACNuH,QAAQ,EAAE,UAAU;MACpBgB,KAAK,EAAE;IACT,CAAC;IACDpC,cAAc,EAAE;MACdoB,QAAQ,EAAE,UAAU;MACpBvH,KAAK,EAAE,aAAa;MACpBgI,OAAO,EAAE,MAAM;MACfQ,UAAU,EAAE,QAAQ;MAEpB,oBAAoB,EAAE;QACpBR,OAAO,EAAE;MACX;IACF,CAAC;IACDjD,MAAM,EAAE;MACNmD,MAAM,eAAArJ,MAAA,CAAewI,KAAK,CAACO,OAAO,CAACa,OAAO,CAACC,IAAI;IACjD,CAAC;IACDzE,MAAM,EAAE;MACN0D,eAAe,EAAEN,KAAK,CAACO,OAAO,CAACa,OAAO,CAACC,IAAI;MAC3CC,MAAM,EAAE,YAAY;MACpB3G,MAAM,EAAE,MAAM;MACdhC,KAAK,EAAE,KAAK;MACZ+H,YAAY,EAAE,CAAC;MACfa,UAAU,EAAE,KAAK;MACjBC,WAAW,EAAE,MAAM;MACnBb,OAAO,EAAE;IACX,CAAC;IACDc,cAAc,EAAE;MACdC,SAAS,EAAE;IACb;EACF,CAAC;AAAA,CAAC;AAAC,IAAAC,QAAA,GAEY,IAAAC,kBAAU,EAAC7B,MAAM,CAAC,CAACtI,SAAS,CAAC;AAAA2H,OAAA,cAAAuC,QAAA"}
@@ -1,52 +1,32 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports["default"] = exports.ImageToolbar = void 0;
9
-
10
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
10
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
11
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
12
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
13
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
15
  var _propTypes = _interopRequireDefault(require("prop-types"));
25
-
26
16
  var _react = _interopRequireDefault(require("react"));
27
-
28
17
  var _debug = _interopRequireDefault(require("debug"));
29
-
30
18
  var _reactDom = _interopRequireDefault(require("react-dom"));
31
-
32
19
  var _styles = require("@material-ui/core/styles");
33
-
34
20
  var _classnames = _interopRequireDefault(require("classnames"));
35
-
36
21
  var _toolbarButtons = require("../toolbar/toolbar-buttons");
37
-
38
22
  var _altDialog = _interopRequireDefault(require("./alt-dialog"));
39
-
40
23
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
41
-
42
24
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
43
-
44
25
  var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:image:image-toolbar');
45
-
46
26
  var AlignmentButton = function AlignmentButton(_ref) {
47
27
  var alignment = _ref.alignment,
48
- active = _ref.active,
49
- onClick = _ref.onClick;
28
+ active = _ref.active,
29
+ onClick = _ref.onClick;
50
30
  return /*#__PURE__*/_react["default"].createElement(_toolbarButtons.MarkButton, {
51
31
  active: active,
52
32
  onToggle: function onToggle() {
@@ -55,38 +35,29 @@ var AlignmentButton = function AlignmentButton(_ref) {
55
35
  label: alignment
56
36
  }, alignment);
57
37
  };
58
-
59
38
  AlignmentButton.propTypes = {
60
39
  alignment: _propTypes["default"].string.isRequired,
61
40
  active: _propTypes["default"].bool.isRequired,
62
41
  onClick: _propTypes["default"].func.isRequired
63
42
  };
64
-
65
43
  var ImageToolbar = /*#__PURE__*/function (_React$Component) {
66
44
  (0, _inherits2["default"])(ImageToolbar, _React$Component);
67
-
68
45
  var _super = _createSuper(ImageToolbar);
69
-
70
46
  function ImageToolbar() {
71
47
  var _this;
72
-
73
48
  (0, _classCallCheck2["default"])(this, ImageToolbar);
74
-
75
49
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
76
50
  args[_key] = arguments[_key];
77
51
  }
78
-
79
52
  _this = _super.call.apply(_super, [this].concat(args));
80
53
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAltTextDone", function (newAlt) {
81
54
  log('[onAltTextDone]: alt:', newAlt);
82
-
83
55
  _this.props.onChange({
84
56
  alt: newAlt
85
- });
57
+ }, true);
86
58
  });
87
59
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAlignmentClick", function (alignment) {
88
60
  log('[onAlignmentClick]: alignment:', alignment);
89
-
90
61
  _this.props.onChange({
91
62
  alignment: alignment
92
63
  });
@@ -94,32 +65,28 @@ var ImageToolbar = /*#__PURE__*/function (_React$Component) {
94
65
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "renderDialog", function () {
95
66
  var alt = _this.props.alt;
96
67
  var popoverEl = document.createElement('div');
97
-
98
68
  var el = /*#__PURE__*/_react["default"].createElement(_altDialog["default"], {
99
69
  alt: alt,
100
70
  onDone: _this.onAltTextDone
101
71
  });
102
-
103
72
  _reactDom["default"].render(el, popoverEl);
104
-
105
73
  document.body.appendChild(popoverEl);
106
74
  });
107
75
  return _this;
108
76
  }
109
-
110
77
  (0, _createClass2["default"])(ImageToolbar, [{
111
78
  key: "render",
112
79
  value: function render() {
113
80
  var _classNames,
114
- _this2 = this;
115
-
81
+ _this2 = this;
116
82
  var _this$props = this.props,
117
- classes = _this$props.classes,
118
- alignment = _this$props.alignment,
119
- imageLoaded = _this$props.imageLoaded;
83
+ classes = _this$props.classes,
84
+ alignment = _this$props.alignment,
85
+ imageLoaded = _this$props.imageLoaded,
86
+ disableImageAlignmentButtons = _this$props.disableImageAlignmentButtons;
120
87
  return /*#__PURE__*/_react["default"].createElement("div", {
121
88
  className: classes.holder
122
- }, /*#__PURE__*/_react["default"].createElement(AlignmentButton, {
89
+ }, !disableImageAlignmentButtons && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(AlignmentButton, {
123
90
  alignment: 'left',
124
91
  active: alignment === 'left',
125
92
  onClick: this.onAlignmentClick
@@ -131,8 +98,8 @@ var ImageToolbar = /*#__PURE__*/function (_React$Component) {
131
98
  alignment: 'right',
132
99
  active: alignment === 'right',
133
100
  onClick: this.onAlignmentClick
134
- }), /*#__PURE__*/_react["default"].createElement("span", {
135
- className: (0, _classnames["default"])((_classNames = {}, (0, _defineProperty2["default"])(_classNames, classes.disabled, !imageLoaded), (0, _defineProperty2["default"])(_classNames, classes.altButton, true), _classNames)),
101
+ })), /*#__PURE__*/_react["default"].createElement("span", {
102
+ className: (0, _classnames["default"])((_classNames = {}, (0, _defineProperty2["default"])(_classNames, classes.disabled, !imageLoaded), (0, _defineProperty2["default"])(_classNames, classes.altButton, !disableImageAlignmentButtons), _classNames)),
136
103
  onMouseDown: function onMouseDown(event) {
137
104
  return imageLoaded && _this2.renderDialog(event);
138
105
  }
@@ -141,16 +108,15 @@ var ImageToolbar = /*#__PURE__*/function (_React$Component) {
141
108
  }]);
142
109
  return ImageToolbar;
143
110
  }(_react["default"].Component);
144
-
145
111
  exports.ImageToolbar = ImageToolbar;
146
112
  (0, _defineProperty2["default"])(ImageToolbar, "propTypes", {
147
113
  onChange: _propTypes["default"].func.isRequired,
148
114
  classes: _propTypes["default"].object.isRequired,
149
115
  alignment: _propTypes["default"].string,
150
116
  alt: _propTypes["default"].string,
151
- imageLoaded: _propTypes["default"].bool
117
+ imageLoaded: _propTypes["default"].bool,
118
+ disableImageAlignmentButtons: _propTypes["default"].bool
152
119
  });
153
-
154
120
  var styles = function styles(theme) {
155
121
  return {
156
122
  holder: {
@@ -168,8 +134,6 @@ var styles = function styles(theme) {
168
134
  }
169
135
  };
170
136
  };
171
-
172
137
  var _default = (0, _styles.withStyles)(styles)(ImageToolbar);
173
-
174
138
  exports["default"] = _default;
175
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2ciLCJkZWJ1ZyIsIkFsaWdubWVudEJ1dHRvbiIsImFsaWdubWVudCIsImFjdGl2ZSIsIm9uQ2xpY2siLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJpc1JlcXVpcmVkIiwiYm9vbCIsImZ1bmMiLCJJbWFnZVRvb2xiYXIiLCJuZXdBbHQiLCJwcm9wcyIsIm9uQ2hhbmdlIiwiYWx0IiwicG9wb3ZlckVsIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiZWwiLCJvbkFsdFRleHREb25lIiwiUmVhY3RET00iLCJyZW5kZXIiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJjbGFzc2VzIiwiaW1hZ2VMb2FkZWQiLCJob2xkZXIiLCJvbkFsaWdubWVudENsaWNrIiwiY2xhc3NOYW1lcyIsImRpc2FibGVkIiwiYWx0QnV0dG9uIiwiZXZlbnQiLCJyZW5kZXJEaWFsb2ciLCJSZWFjdCIsIkNvbXBvbmVudCIsIm9iamVjdCIsInN0eWxlcyIsInRoZW1lIiwicGFkZGluZ0xlZnQiLCJzcGFjaW5nIiwidW5pdCIsImRpc3BsYXkiLCJhbGlnbkl0ZW1zIiwib3BhY2l0eSIsImJvcmRlckxlZnQiLCJtYXJnaW5MZWZ0Iiwid2l0aFN0eWxlcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wbHVnaW5zL2ltYWdlL2ltYWdlLXRvb2xiYXIuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcyc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcblxuaW1wb3J0IHsgTWFya0J1dHRvbiB9IGZyb20gJy4uL3Rvb2xiYXIvdG9vbGJhci1idXR0b25zJztcbmltcG9ydCBBbHREaWFsb2cgZnJvbSAnLi9hbHQtZGlhbG9nJztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtbGliOmVkaXRhYmxlLWh0bWw6cGx1Z2luczppbWFnZTppbWFnZS10b29sYmFyJyk7XG5cbmNvbnN0IEFsaWdubWVudEJ1dHRvbiA9ICh7IGFsaWdubWVudCwgYWN0aXZlLCBvbkNsaWNrIH0pID0+IHtcbiAgcmV0dXJuIChcbiAgICA8TWFya0J1dHRvbiBhY3RpdmU9e2FjdGl2ZX0gb25Ub2dnbGU9eygpID0+IG9uQ2xpY2soYWxpZ25tZW50KX0gbGFiZWw9e2FsaWdubWVudH0+XG4gICAgICB7YWxpZ25tZW50fVxuICAgIDwvTWFya0J1dHRvbj5cbiAgKTtcbn07XG5cbkFsaWdubWVudEJ1dHRvbi5wcm9wVHlwZXMgPSB7XG4gIGFsaWdubWVudDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBhY3RpdmU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWRcbn07XG5cbmV4cG9ydCBjbGFzcyBJbWFnZVRvb2xiYXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBhbGlnbm1lbnQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgYWx0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGltYWdlTG9hZGVkOiBQcm9wVHlwZXMuYm9vbFxuICB9O1xuXG4gIG9uQWx0VGV4dERvbmUgPSBuZXdBbHQgPT4ge1xuICAgIGxvZygnW29uQWx0VGV4dERvbmVdOiBhbHQ6JywgbmV3QWx0KTtcblxuICAgIHRoaXMucHJvcHMub25DaGFuZ2UoeyBhbHQ6IG5ld0FsdCB9KTtcbiAgfTtcblxuICBvbkFsaWdubWVudENsaWNrID0gYWxpZ25tZW50ID0+IHtcbiAgICBsb2coJ1tvbkFsaWdubWVudENsaWNrXTogYWxpZ25tZW50OicsIGFsaWdubWVudCk7XG4gICAgdGhpcy5wcm9wcy5vbkNoYW5nZSh7IGFsaWdubWVudCB9KTtcbiAgfTtcblxuICByZW5kZXJEaWFsb2cgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBhbHQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgcG9wb3ZlckVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cbiAgICBjb25zdCBlbCA9IDxBbHREaWFsb2cgYWx0PXthbHR9IG9uRG9uZT17dGhpcy5vbkFsdFRleHREb25lfSAvPjtcblxuICAgIFJlYWN0RE9NLnJlbmRlcihlbCwgcG9wb3ZlckVsKTtcblxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocG9wb3ZlckVsKTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBjbGFzc2VzLCBhbGlnbm1lbnQsIGltYWdlTG9hZGVkIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLmhvbGRlcn0+XG4gICAgICAgIDxBbGlnbm1lbnRCdXR0b25cbiAgICAgICAgICBhbGlnbm1lbnQ9eydsZWZ0J31cbiAgICAgICAgICBhY3RpdmU9e2FsaWdubWVudCA9PT0gJ2xlZnQnfVxuICAgICAgICAgIG9uQ2xpY2s9e3RoaXMub25BbGlnbm1lbnRDbGlja31cbiAgICAgICAgLz5cbiAgICAgICAgPEFsaWdubWVudEJ1dHRvblxuICAgICAgICAgIGFsaWdubWVudD17J2NlbnRlcid9XG4gICAgICAgICAgYWN0aXZlPXthbGlnbm1lbnQgPT09ICdjZW50ZXInfVxuICAgICAgICAgIG9uQ2xpY2s9e3RoaXMub25BbGlnbm1lbnRDbGlja31cbiAgICAgICAgLz5cbiAgICAgICAgPEFsaWdubWVudEJ1dHRvblxuICAgICAgICAgIGFsaWdubWVudD17J3JpZ2h0J31cbiAgICAgICAgICBhY3RpdmU9e2FsaWdubWVudCA9PT0gJ3JpZ2h0J31cbiAgICAgICAgICBvbkNsaWNrPXt0aGlzLm9uQWxpZ25tZW50Q2xpY2t9XG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKHtcbiAgICAgICAgICAgIFtjbGFzc2VzLmRpc2FibGVkXTogIWltYWdlTG9hZGVkLFxuICAgICAgICAgICAgW2NsYXNzZXMuYWx0QnV0dG9uXTogdHJ1ZVxuICAgICAgICAgIH0pfVxuICAgICAgICAgIG9uTW91c2VEb3duPXtldmVudCA9PiBpbWFnZUxvYWRlZCAmJiB0aGlzLnJlbmRlckRpYWxvZyhldmVudCl9XG4gICAgICAgID5cbiAgICAgICAgICBBbHQgdGV4dFxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmNvbnN0IHN0eWxlcyA9IHRoZW1lID0+ICh7XG4gIGhvbGRlcjoge1xuICAgIHBhZGRpbmdMZWZ0OiB0aGVtZS5zcGFjaW5nLnVuaXQsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInXG4gIH0sXG4gIGRpc2FibGVkOiB7XG4gICAgb3BhY2l0eTogMC41XG4gIH0sXG4gIGFsdEJ1dHRvbjoge1xuICAgIGJvcmRlckxlZnQ6ICcxcHggc29saWQgZ3JleScsXG4gICAgcGFkZGluZ0xlZnQ6IDgsXG4gICAgbWFyZ2luTGVmdDogNCxcbiAgfSxcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHN0eWxlcykoSW1hZ2VUb29sYmFyKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7Ozs7O0FBRUEsSUFBTUEsR0FBRyxHQUFHLElBQUFDLGlCQUFBLEVBQU0sb0RBQU4sQ0FBWjs7QUFFQSxJQUFNQyxlQUFlLEdBQUcsU0FB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
139
+ //# sourceMappingURL=image-toolbar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-toolbar.js","names":["log","debug","AlignmentButton","alignment","active","onClick","propTypes","PropTypes","string","isRequired","bool","func","ImageToolbar","newAlt","props","onChange","alt","popoverEl","document","createElement","el","onAltTextDone","ReactDOM","render","body","appendChild","classes","imageLoaded","holder","onAlignmentClick","classNames","disabled","altButton","event","renderDialog","React","Component","object","styles","theme","paddingLeft","spacing","unit","display","alignItems","opacity","borderLeft","marginLeft","withStyles"],"sources":["../../../src/plugins/image/image-toolbar.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport debug from 'debug';\nimport ReactDOM from 'react-dom';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nimport { MarkButton } from '../toolbar/toolbar-buttons';\nimport AltDialog from './alt-dialog';\n\nconst log = debug('@pie-lib:editable-html:plugins:image:image-toolbar');\n\nconst AlignmentButton = ({ alignment, active, onClick }) => {\n return (\n <MarkButton active={active} onToggle={() => onClick(alignment)} label={alignment}>\n {alignment}\n </MarkButton>\n );\n};\n\nAlignmentButton.propTypes = {\n alignment: PropTypes.string.isRequired,\n active: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired\n};\n\nexport class ImageToolbar extends React.Component {\n static propTypes = {\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n alignment: PropTypes.string,\n alt: PropTypes.string,\n imageLoaded: PropTypes.bool\n };\n\n onAltTextDone = newAlt => {\n log('[onAltTextDone]: alt:', newAlt);\n\n this.props.onChange({ alt: newAlt });\n };\n\n onAlignmentClick = alignment => {\n log('[onAlignmentClick]: alignment:', alignment);\n this.props.onChange({ alignment });\n };\n\n renderDialog = () => {\n const { alt } = this.props;\n const popoverEl = document.createElement('div');\n\n const el = <AltDialog alt={alt} onDone={this.onAltTextDone} />;\n\n ReactDOM.render(el, popoverEl);\n\n document.body.appendChild(popoverEl);\n };\n\n render() {\n const { classes, alignment, imageLoaded } = this.props;\n\n return (\n <div className={classes.holder}>\n <AlignmentButton\n alignment={'left'}\n active={alignment === 'left'}\n onClick={this.onAlignmentClick}\n />\n <AlignmentButton\n alignment={'center'}\n active={alignment === 'center'}\n onClick={this.onAlignmentClick}\n />\n <AlignmentButton\n alignment={'right'}\n active={alignment === 'right'}\n onClick={this.onAlignmentClick}\n />\n <span\n className={classNames({\n [classes.disabled]: !imageLoaded,\n [classes.altButton]: true\n })}\n onMouseDown={event => imageLoaded && this.renderDialog(event)}\n >\n Alt text\n </span>\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n holder: {\n paddingLeft: theme.spacing.unit,\n display: 'flex',\n alignItems: 'center'\n },\n disabled: {\n opacity: 0.5\n },\n altButton: {\n borderLeft: '1px solid grey',\n paddingLeft: 8,\n marginLeft: 4,\n },\n});\n\nexport default withStyles(styles)(ImageToolbar);\n"],"mappings":"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"}
1
+ {"version":3,"file":"image-toolbar.js","names":["_propTypes","_interopRequireDefault","require","_react","_debug","_reactDom","_styles","_classnames","_toolbarButtons","_altDialog","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","log","debug","AlignmentButton","_ref","alignment","active","onClick","createElement","MarkButton","onToggle","label","propTypes","PropTypes","string","isRequired","bool","func","ImageToolbar","_React$Component","_inherits2","_super","_this","_classCallCheck2","_len","length","args","Array","_key","concat","_defineProperty2","_assertThisInitialized2","newAlt","props","onChange","alt","popoverEl","document","el","onDone","onAltTextDone","ReactDOM","render","body","appendChild","_createClass2","key","value","_classNames","_this2","_this$props","classes","imageLoaded","disableImageAlignmentButtons","className","holder","Fragment","onAlignmentClick","classNames","disabled","altButton","onMouseDown","event","renderDialog","React","Component","exports","object","styles","theme","paddingLeft","spacing","unit","display","alignItems","opacity","borderLeft","marginLeft","_default","withStyles"],"sources":["../../../src/plugins/image/image-toolbar.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport debug from 'debug';\nimport ReactDOM from 'react-dom';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nimport { MarkButton } from '../toolbar/toolbar-buttons';\nimport AltDialog from './alt-dialog';\n\nconst log = debug('@pie-lib:editable-html:plugins:image:image-toolbar');\n\nconst AlignmentButton = ({ alignment, active, onClick }) => {\n return (\n <MarkButton active={active} onToggle={() => onClick(alignment)} label={alignment}>\n {alignment}\n </MarkButton>\n );\n};\n\nAlignmentButton.propTypes = {\n alignment: PropTypes.string.isRequired,\n active: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired,\n};\n\nexport class ImageToolbar extends React.Component {\n static propTypes = {\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n alignment: PropTypes.string,\n alt: PropTypes.string,\n imageLoaded: PropTypes.bool,\n 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"],"mappings":"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"}