@pie-lib/editable-html 10.0.0-beta.7 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/CHANGELOG.json +1 -1
  2. package/CHANGELOG.md +81 -0
  3. package/LICENSE.md +5 -0
  4. package/lib/editor.js +410 -543
  5. package/lib/editor.js.map +1 -1
  6. package/lib/index.js +200 -101
  7. package/lib/index.js.map +1 -1
  8. package/lib/parse-html.js +5 -6
  9. package/lib/parse-html.js.map +1 -1
  10. package/lib/plugins/characters/custom-popper.js +12 -2
  11. package/lib/plugins/characters/custom-popper.js.map +1 -1
  12. package/lib/plugins/characters/index.js +71 -19
  13. package/lib/plugins/characters/index.js.map +1 -1
  14. package/lib/plugins/characters/utils.js.map +1 -1
  15. package/lib/plugins/html/icons/index.js +38 -0
  16. package/lib/plugins/html/icons/index.js.map +1 -0
  17. package/lib/plugins/html/index.js +75 -0
  18. package/lib/plugins/html/index.js.map +1 -0
  19. package/lib/plugins/image/alt-dialog.js +26 -0
  20. package/lib/plugins/image/alt-dialog.js.map +1 -1
  21. package/lib/plugins/image/component.js +124 -90
  22. package/lib/plugins/image/component.js.map +1 -1
  23. package/lib/plugins/image/image-toolbar.js +45 -7
  24. package/lib/plugins/image/image-toolbar.js.map +1 -1
  25. package/lib/plugins/image/index.js +91 -113
  26. package/lib/plugins/image/index.js.map +1 -1
  27. package/lib/plugins/image/insert-image-handler.js +54 -72
  28. package/lib/plugins/image/insert-image-handler.js.map +1 -1
  29. package/lib/plugins/index.js +71 -31
  30. package/lib/plugins/index.js.map +1 -1
  31. package/lib/plugins/list/index.js +129 -58
  32. package/lib/plugins/list/index.js.map +1 -1
  33. package/lib/plugins/math/index.js +152 -118
  34. package/lib/plugins/math/index.js.map +1 -1
  35. package/lib/plugins/media/index.js +185 -168
  36. package/lib/plugins/media/index.js.map +1 -1
  37. package/lib/plugins/media/media-dialog.js +197 -110
  38. package/lib/plugins/media/media-dialog.js.map +1 -1
  39. package/lib/plugins/media/media-toolbar.js +24 -4
  40. package/lib/plugins/media/media-toolbar.js.map +1 -1
  41. package/lib/plugins/media/media-wrapper.js +65 -23
  42. package/lib/plugins/media/media-wrapper.js.map +1 -1
  43. package/lib/plugins/respArea/drag-in-the-blank/choice.js +50 -10
  44. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
  45. package/lib/plugins/respArea/drag-in-the-blank/index.js +22 -9
  46. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
  47. package/lib/plugins/respArea/explicit-constructed-response/index.js +9 -4
  48. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
  49. package/lib/plugins/respArea/icons/index.js +18 -1
  50. package/lib/plugins/respArea/icons/index.js.map +1 -1
  51. package/lib/plugins/respArea/index.js +133 -122
  52. package/lib/plugins/respArea/index.js.map +1 -1
  53. package/lib/plugins/respArea/inline-dropdown/index.js +10 -4
  54. package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
  55. package/lib/plugins/respArea/utils.js +33 -15
  56. package/lib/plugins/respArea/utils.js.map +1 -1
  57. package/lib/plugins/table/icons/index.js +7 -0
  58. package/lib/plugins/table/icons/index.js.map +1 -1
  59. package/lib/plugins/table/index.js +279 -390
  60. package/lib/plugins/table/index.js.map +1 -1
  61. package/lib/plugins/table/table-toolbar.js +47 -14
  62. package/lib/plugins/table/table-toolbar.js.map +1 -1
  63. package/lib/plugins/toolbar/default-toolbar.js +63 -51
  64. package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
  65. package/lib/plugins/toolbar/done-button.js +9 -1
  66. package/lib/plugins/toolbar/done-button.js.map +1 -1
  67. package/lib/plugins/toolbar/editor-and-toolbar.js +140 -83
  68. package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
  69. package/lib/plugins/toolbar/index.js +5 -0
  70. package/lib/plugins/toolbar/index.js.map +1 -1
  71. package/lib/plugins/toolbar/toolbar-buttons.js +39 -8
  72. package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
  73. package/lib/plugins/toolbar/toolbar.js +261 -225
  74. package/lib/plugins/toolbar/toolbar.js.map +1 -1
  75. package/lib/plugins/utils.js +16 -19
  76. package/lib/plugins/utils.js.map +1 -1
  77. package/lib/serialization.js +70 -11
  78. package/lib/serialization.js.map +1 -1
  79. package/lib/theme.js.map +1 -1
  80. package/package.json +18 -17
  81. package/src/editor.jsx +139 -434
  82. package/src/index.jsx +96 -62
  83. package/src/plugins/characters/index.jsx +17 -12
  84. package/src/plugins/html/icons/index.jsx +19 -0
  85. package/src/plugins/html/index.jsx +68 -0
  86. package/src/plugins/image/component.jsx +38 -60
  87. package/src/plugins/image/index.jsx +42 -95
  88. package/src/plugins/image/insert-image-handler.js +27 -62
  89. package/src/plugins/index.jsx +39 -21
  90. package/src/plugins/list/index.jsx +90 -62
  91. package/src/plugins/math/index.jsx +70 -93
  92. package/src/plugins/media/index.jsx +117 -146
  93. package/src/plugins/media/media-dialog.js +9 -10
  94. package/src/plugins/media/media-wrapper.jsx +27 -29
  95. package/src/plugins/respArea/drag-in-the-blank/index.jsx +4 -5
  96. package/src/plugins/respArea/explicit-constructed-response/index.jsx +1 -2
  97. package/src/plugins/respArea/index.jsx +84 -114
  98. package/src/plugins/respArea/inline-dropdown/index.jsx +2 -3
  99. package/src/plugins/respArea/utils.jsx +28 -23
  100. package/src/plugins/table/index.jsx +214 -334
  101. package/src/plugins/table/table-toolbar.jsx +4 -3
  102. package/src/plugins/toolbar/default-toolbar.jsx +30 -48
  103. package/src/plugins/toolbar/editor-and-toolbar.jsx +114 -114
  104. package/src/plugins/toolbar/toolbar.jsx +224 -254
  105. package/src/plugins/utils.js +0 -16
  106. package/src/serialization.jsx +1 -1
  107. package/lib/components.js +0 -92
  108. package/lib/components.js.map +0 -1
  109. package/lib/new-serialization.js +0 -280
  110. package/lib/new-serialization.js.map +0 -1
  111. package/lib/plugins/hotKeys/index.js +0 -60
  112. package/lib/plugins/hotKeys/index.js.map +0 -1
  113. package/lib/test-serializer.js +0 -138
  114. package/lib/test-serializer.js.map +0 -1
  115. package/src/components.js +0 -135
  116. package/src/new-serialization.jsx +0 -310
  117. package/src/plugins/hotKeys/index.js +0 -54
  118. package/src/test-serializer.js +0 -132
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_slate","_debug","_GridOn","_tableToolbar","_propTypes","_slateHyperscript","_styles","_reactAttrConverter","_toStyle","_get","_omit","_reduce","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","log","debug","Table","React","forwardRef","props","nodeAttributes","omit","dataToAttributes","element","data","attrs","attributes","createElement","_extends2","onFocus","onBlur","children","propTypes","PropTypes","func","node","shape","type","string","array","oneOfType","arrayOf","isRequired","TableRow","TableBody","useCellStyles","makeStyles","td","minWidth","TableCell","classes","Tag","get","header","colSpan","className","getAncestorByType","editor","ancestors","SlateNode","Editor","path","selection","reverse","_iterator","_step","_step$value","_slicedToArray2","ancestor","ancestorPath","moveToBeginningOfTable","_getAncestorByType","_getAncestorByType2","tableBlock","tablePath","firstTdPath","_iterator2","descendants","_step2","_step2$value","descendant","descendantPath","Transforms","select","concat","_toConsumableArray2","TABLE_TYPES","_default","opts","toolbarPlugins","core","utils","rules","normalizeNode","entry","_entry","tableNode","tableParent","SlateElement","isElement","emptyBlock","text","tableIndex","beforeTablePath","continueNormalization","afterTablePath","tBodyNode","wrapNodes","at","anchor","offset","focus","createTable","row","undefined","columns","tableRows","rowLength","fill","columnsLength","tableRow","j","getTableBlock","isSelectionInTable","createTableWithOptions","extra","createdTable","newTable","toolbar","icon","onClick","border","insertNode","customToolbar","nodePath","onToolbarDone","_core$utils$getTableB","_core$utils$getTableB2","hasBorder","addRow","_getAncestorByType3","_getAncestorByType4","trNode","trPath","newTr","insertNodes","removeRow","_getAncestorByType5","_getAncestorByType6","tBodyPath","_getAncestorByType7","_getAncestorByType8","removeNodes","addColumn","_getAncestorByType9","_getAncestorByType10","emptyTd","trElements","nodes","match","_iterator3","_step3","_step3$value","removeColumn","_getAncestorByType11","_getAncestorByType12","currentPath","columnIndex","_iterator4","_step4","_step4$value","removeTable","_getAncestorByType13","_getAncestorByType14","toggleBorder","update","_getAncestorByType15","_getAncestorByType16","properties","newProperties","onDone","Tb","plugins","onChange","c","onAddRow","onRemoveRow","onAddColumn","onRemoveColumn","onRemoveTable","onToggleBorder","supports","includes","Node","renderNode","exports","parseStyleString","regex","result","exec","trim","reactAttributes","toStyleObject","camelize","addUnits","attributesToMap","el","acc","attribute","getAttribute","styleString","reactStyleObject","reduce","v","convert","cellAttributes","serialization","deserialize","tag","tagName","toLowerCase","jsx","childNodes","serialize"],"sources":["../../../src/plugins/table/index.jsx"],"sourcesContent":["import React from 'react';\nimport { Node as SlateNode, Element as SlateElement, Editor, Transforms } from 'slate';\nimport debug from 'debug';\nimport GridOn from '@material-ui/icons/GridOn';\nimport TableToolbar from './table-toolbar';\nimport PropTypes from 'prop-types';\nimport { jsx } from 'slate-hyperscript';\nimport { makeStyles } from '@material-ui/styles';\nimport convert from 'react-attr-converter';\nimport { object as toStyleObject } from 'to-style';\nimport get from 'lodash/get';\nimport omit from 'lodash/omit';\nimport reduce from 'lodash/reduce';\n\nconst log = debug('@pie-lib:editable-html:plugins:table');\n\nconst Table = React.forwardRef(props => {\n const nodeAttributes = omit(dataToAttributes(props.element.data), 'newTable');\n const attrs = omit(props.attributes, 'newTable');\n\n return (\n <table {...attrs} {...nodeAttributes} onFocus={props.onFocus} onBlur={props.onBlur}>\n {props.children}\n </table>\n );\n});\n\nTable.propTypes = {\n attributes: PropTypes.object,\n element: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n node: PropTypes.shape({\n type: PropTypes.string,\n children: PropTypes.array,\n data: PropTypes.object\n }),\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired\n};\n\nconst TableRow = React.forwardRef(props => <tr {...props.attributes}>{props.children}</tr>);\n\nTableRow.propTypes = {\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n};\n\nconst TableBody = React.forwardRef(props => <tbody {...props.attributes}>{props.children}</tbody>);\n\nTableBody.propTypes = {\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired\n};\n\nconst useCellStyles = makeStyles({\n td: {\n minWidth: '25px'\n }\n});\n\nconst TableCell = React.forwardRef(props => {\n const classes = useCellStyles();\n const { node } = props;\n const Tag = get(node, 'data.header') ? 'th' : 'td';\n\n const nodeAttributes = dataToAttributes(props.element.data);\n delete nodeAttributes.header;\n\n return (\n <Tag\n {...props.attributes}\n {...nodeAttributes}\n colSpan={get(node, 'data.colspan')}\n className={classes[Tag]}\n onFocus={props.onFocus}\n onBlur={props.onBlur}\n >\n {props.children}\n </Tag>\n );\n});\n\nTableCell.propTypes = {\n node: PropTypes.object,\n element: PropTypes.object,\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n};\n\nconst 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\nconst moveToBeginningOfTable = editor => {\n const [tableBlock, tablePath] = getAncestorByType(editor, 'table');\n let firstTdPath;\n\n for (const [descendant, descendantPath] of SlateNode.descendants(tableBlock, { reverse: true })) {\n if (descendant.type === 'td') {\n firstTdPath = descendantPath;\n }\n }\n\n Transforms.select(editor, [...tablePath, ...firstTdPath]);\n};\n\nconst TABLE_TYPES = ['tbody', 'tr', 'td', 'table'];\n\nexport default (opts, toolbarPlugins /* : {toolbar: {}}[] */) => {\n const core = {\n utils: {},\n rules: editor => {\n const { normalizeNode } = editor;\n\n editor.normalizeNode = entry => {\n const [tableNode, tablePath] = entry;\n const tableParent = SlateNode.get(editor, tablePath.slice(0, -1));\n\n // If the element is a paragraph, ensure its children are valid.\n if (SlateElement.isElement(tableNode) && tableNode.type === 'table') {\n const emptyBlock = {\n type: 'paragraph',\n children: [{ text: '' }]\n };\n const tableIndex = tablePath.slice(-1)[0];\n\n // if table is the first element, we need to add a space before\n // so users can focus before the table\n if (tableIndex === 0) {\n const beforeTablePath = [...tablePath.slice(0, -1), 0];\n\n editor.apply({\n type: 'insert_node',\n path: beforeTablePath,\n node: emptyBlock\n });\n editor.continueNormalization();\n return;\n }\n\n // if table is the last element, we add element after it\n if (tableParent.children.length - 1 === tableIndex) {\n const afterTablePath = [...tablePath.slice(0, -1), tableIndex + 1];\n\n editor.apply({\n type: 'insert_node',\n path: afterTablePath,\n node: emptyBlock\n });\n editor.continueNormalization();\n return;\n }\n\n // if table does not have a tbody, we add it\n if (tableNode.children[0].type !== 'tbody') {\n const tBodyNode = { type: 'tbody', children: [] };\n\n Transforms.wrapNodes(editor, tBodyNode, {\n at: {\n anchor: { path: [...tablePath, 0], offset: 0 },\n focus: { path: [...tablePath, tableNode.children.length], offset: 0 }\n }\n });\n editor.continueNormalization();\n return;\n }\n }\n\n // Fall back to the original `normalizeNode` to enforce other constraints.\n normalizeNode(entry);\n };\n\n return editor;\n }\n };\n\n core.utils.createTable = (row = 2, columns = 2) => {\n const tableRows = [];\n const rowLength = new Array(row).fill(0).length;\n const columnsLength = new Array(columns).fill(0).length;\n\n for (let i = 0; i < rowLength; i++) {\n const tableRow = { type: 'tr', children: [] };\n\n for (let j = 0; j < columnsLength; j++) {\n tableRow.children.push({\n type: 'td',\n children: [\n {\n text: ''\n }\n ]\n });\n }\n\n tableRows.push(tableRow);\n }\n\n return {\n type: 'table',\n children: [\n {\n type: 'tbody',\n children: tableRows\n }\n ]\n };\n };\n\n core.utils.getTableBlock = editor => getAncestorByType(editor, 'table');\n\n core.utils.isSelectionInTable = editor => !!core.utils.getTableBlock(editor);\n\n core.utils.createTableWithOptions = (row, columns, extra) => {\n const createdTable = core.utils.createTable(row, columns);\n const newTable = { ...createdTable, ...extra };\n\n return newTable;\n };\n\n core.toolbar = {\n icon: <GridOn />,\n onClick: editor => {\n log('insert table');\n const newTable = core.utils.createTableWithOptions(2, 2, {\n data: {\n border: '1',\n newTable: true,\n },\n });\n\n editor.insertNode(newTable);\n moveToBeginningOfTable(editor, newTable);\n },\n /**\n * Note - the node may not be a table node - it may be a node inside a table.\n */\n customToolbar: (node, nodePath, editor, onToolbarDone) => {\n log('[customToolbar] node.data: ', node.data);\n\n const [tableBlock] = core.utils.getTableBlock(editor);\n log('[customToolbar] tableBlock: ', tableBlock);\n\n const hasBorder = () => get(tableBlock, 'data.border') !== '0';\n const addRow = () => {\n const [trNode, trPath] = getAncestorByType(editor, 'tr');\n\n log('[addRow]');\n\n if (trNode) {\n const newTr = { type: 'tr', children: [] };\n const columnsLength = trNode.children.length;\n\n for (let i = 0; i < columnsLength; i++) {\n newTr.children.push({\n type: 'td',\n children: [\n {\n text: ''\n }\n ]\n });\n }\n\n Transforms.insertNodes(editor, [newTr], { at: trPath });\n }\n };\n\n const removeRow = () => {\n const [tBodyNode, tBodyPath] = getAncestorByType(editor, 'tbody');\n\n log('[removeRow]');\n\n if (tBodyPath) {\n if (tBodyNode.children.length > 1) {\n const [, trPath] = getAncestorByType(editor, 'tr');\n\n log('[removeRow]');\n\n if (trPath) {\n Transforms.removeNodes(editor, { at: trPath });\n }\n }\n }\n };\n\n const addColumn = () => {\n const [tBodyNode, tBodyPath] = getAncestorByType(editor, 'tbody');\n\n log('[addColumn]');\n\n if (tBodyNode) {\n const emptyTd = {\n type: 'td',\n children: [{ text: '' }]\n };\n const trElements = Editor.nodes(editor, {\n at: tBodyPath, // Path of Editor\n match: node => 'tr' === node.type\n });\n\n for (const [trNode, nodePath] of trElements) {\n Transforms.insertNodes(editor, [emptyTd], {\n at: [...nodePath, trNode.children.length]\n });\n }\n }\n };\n\n const removeColumn = () => {\n const [tBodyNode, tBodyPath] = getAncestorByType(editor, 'tbody');\n\n log('[addColumn]');\n\n if (tBodyNode) {\n const currentPath = Editor.path(editor, editor.selection);\n const columnIndex = currentPath[currentPath.length - 2];\n const trElements = Editor.nodes(editor, {\n at: tBodyPath, // Path of Editor\n match: node => 'tr' === node.type\n });\n\n for (const [trNode, nodePath] of trElements) {\n if (trNode.children.length > 1) {\n Transforms.removeNodes(editor, { at: [...nodePath, columnIndex] });\n }\n }\n }\n };\n\n const removeTable = () => {\n const [tableNode, tablePath] = getAncestorByType(editor, 'table');\n\n editor.apply({\n type: 'remove_node',\n path: tablePath,\n node: tableNode\n });\n };\n\n const toggleBorder = () => {\n const { data } = tableBlock;\n const update = {\n ...data,\n border: hasBorder() ? '0' : '1'\n };\n const [, tablePath] = getAncestorByType(editor, 'table');\n\n log('[toggleBorder] update: ', update);\n\n editor.apply({\n type: 'set_node',\n path: tablePath,\n properties: {\n data: node.data\n },\n newProperties: { data: update }\n });\n };\n\n const onDone = () => {\n log('[onDone] call onToolbarDone...');\n onToolbarDone(true);\n };\n\n const Tb = () => (\n <TableToolbar\n editor={editor}\n plugins={toolbarPlugins}\n onChange={c => onToolbarDone(c, false)}\n onAddRow={addRow}\n onRemoveRow={removeRow}\n onAddColumn={addColumn}\n onRemoveColumn={removeColumn}\n onRemoveTable={removeTable}\n hasBorder={hasBorder()}\n onToggleBorder={toggleBorder}\n onDone={onDone}\n />\n );\n return Tb;\n },\n };\n\n core.supports = node => TABLE_TYPES.includes(node.type);\n\n const Node = props => {\n switch (props.node.type) {\n case 'table':\n return <Table {...props} onFocus={opts.onFocus} onBlur={opts.onBlur} />;\n case 'tbody':\n return <TableBody {...props} onFocus={opts.onFocus} onBlur={opts.onBlur} />;\n case 'tr':\n return <TableRow {...props} />;\n case 'td':\n return <TableCell {...props} onFocus={opts.onFocus} onBlur={opts.onBlur} />;\n default:\n return null;\n }\n };\n Node.propTypes = {\n node: PropTypes.object,\n };\n\n core.renderNode = Node;\n\n return core;\n};\n\nexport const parseStyleString = (s) => {\n const regex = /([\\w-]*)\\s*:\\s*([^;]*)/g;\n let match;\n const result = {};\n while ((match = regex.exec(s))) {\n result[match[1]] = match[2].trim();\n }\n return result;\n};\n\nexport const reactAttributes = (o) => toStyleObject(o, { camelize: true, addUnits: false });\n\nconst attributesToMap = (el) => (acc, attribute) => {\n const value = el.getAttribute(attribute);\n if (value) {\n if (attribute === 'style') {\n const styleString = el.getAttribute(attribute);\n const reactStyleObject = reactAttributes(parseStyleString(styleString));\n acc['style'] = reactStyleObject;\n } else {\n acc[attribute] = el.getAttribute(attribute);\n }\n }\n return acc;\n};\n\nconst dataToAttributes = data => {\n return reduce(\n data,\n (acc, v, name) => {\n if (v) {\n acc[convert(name)] = v;\n }\n return acc;\n },\n {}\n );\n};\n\nconst attributes = ['border', 'cellpadding', 'cellspacing', 'class', 'style'];\n\nconst cellAttributes = ['colspan', 'rowspan', 'class', 'style'];\n\nexport const serialization = {\n deserialize(el, next) {\n const tag = el.tagName.toLowerCase();\n\n switch (tag) {\n case 'table': {\n const children =\n el.children.length === 1 && el.children[0].tagName.toLowerCase() === 'tbody'\n ? el.children[0].children\n : el.children;\n const c = Array.from(children);\n\n return jsx(\n 'element',\n {\n type: 'table',\n data: attributes.reduce(attributesToMap(el), {})\n },\n next(c)\n );\n }\n case 'tbody': {\n return jsx(\n 'element',\n {\n type: 'tbody'\n },\n next(el.childNodes)\n );\n }\n\n case 'th': {\n return jsx(\n 'element',\n {\n type: 'th',\n data: cellAttributes.reduce(attributesToMap(el), { header: true })\n },\n next(el.childNodes)\n );\n }\n\n case 'tr': {\n return jsx(\n 'element',\n {\n type: 'tr'\n },\n next(Array.from(el.children))\n );\n }\n\n case 'td': {\n return jsx(\n 'element',\n {\n type: 'td',\n data: cellAttributes.reduce(attributesToMap(el), { header: true })\n },\n next(el.childNodes)\n );\n }\n }\n },\n serialize(object, children) {\n switch (object.type) {\n case 'table': {\n const attributes = dataToAttributes(object.data);\n\n return (\n <table {...attributes}>\n {children}\n </table>\n );\n }\n case 'tbody': {\n return <tbody>{children}</tbody>;\n }\n case 'tr': {\n return <tr>{children}</tr>;\n }\n case 'td': {\n const attributes = dataToAttributes(object.data);\n return <td {...attributes}>{children}</td>;\n }\n case 'th': {\n const attributes = dataToAttributes(object.data);\n return <th {...attributes}>{children}</th>;\n }\n }\n },\n};\n"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/plugins/table/index.jsx"],"names":["log","Table","table","props","nodeAttributes","dataToAttributes","node","data","classes","attributes","onFocus","onBlur","children","propTypes","PropTypes","object","func","SlatePropTypes","oneOfType","arrayOf","isRequired","TableRow","TableCell","td","minWidth","Tag","get","header","moveFocusToBeginningOfTable","change","addedTable","value","document","findDescendant","d","collapseToStartOf","update","remove","setNodeByKey","key","opts","toolbarPlugins","core","typeContent","schema","blocks","Object","keys","forEach","block","parent","nodes","types","type","objects","utils","getTableBlock","containerNode","getDescendant","ancestors","getAncestors","push","findLast","p","createTableWithOptions","row","columns","extra","createdTable","createTable","newTable","Block","create","toJSON","toolbar","icon","onClick","onChange","border","insertBlock","supports","isSelectionInTable","customToolbar","onToolbarDone","tableBlock","hasBorder","addRow","changes","insertRow","addColumn","insertColumn","removeRow","removeColumn","removeTable","toggleBorder","set","onDone","Tb","c","Node","normalizeNode","tableAdded","nodeToSearch","getParent","shouldAddTextAfterNode","indexToNotHaveTableOn","size","indexOfLastTable","findLastIndex","tableJSON","removeNodeByKey","newBlock","withoutNormalization","prevText","getPreviousText","moveFocusTo","text","length","moveAnchorTo","renderNode","parseStyleString","s","regex","match","result","exec","trim","reactAttributes","o","camelize","addUnits","attributesToMap","el","acc","attribute","getAttribute","styleString","reactStyleObject","reduce","v","name","cellAttributes","serialization","deserialize","next","tag","tagName","toLowerCase","Array","from","childNodes","serialize"],"mappings":"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","sourcesContent":["import React from 'react';\nimport EditTable from 'slate-edit-table';\nimport { Block } from 'slate';\nimport debug from 'debug';\nimport GridOn from '@material-ui/icons/GridOn';\nimport TableToolbar from './table-toolbar';\nimport PropTypes from 'prop-types';\nimport SlatePropTypes from 'slate-prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport convert from 'react-attr-converter';\nimport { object as toStyleObject } from 'to-style';\n\nconst log = debug('@pie-lib:editable-html:plugins:table');\n\nconst Table = withStyles(() => ({\n table: {},\n}))((props) => {\n const nodeAttributes = dataToAttributes(props.node.data);\n\n return (\n <table\n className={props.classes.table}\n {...props.attributes}\n {...nodeAttributes}\n onFocus={props.onFocus}\n onBlur={props.onBlur}\n >\n <tbody>{props.children}</tbody>\n </table>\n );\n});\n\nTable.propTypes = {\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n node: SlatePropTypes.node,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n};\n\nconst TableRow = (props) => <tr {...props.attributes}>{props.children}</tr>;\n\nTableRow.propTypes = {\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n};\n\nconst TableCell = withStyles(() => ({\n td: {\n minWidth: '25px',\n },\n}))((props) => {\n const Tag = props.node.data.get('header') ? 'th' : 'td';\n\n const nodeAttributes = dataToAttributes(props.node.data);\n delete nodeAttributes.header;\n\n return (\n <Tag\n {...props.attributes}\n {...nodeAttributes}\n colSpan={props.node.data.get('colspan')}\n className={props.classes[Tag]}\n onFocus={props.onFocus}\n onBlur={props.onBlur}\n >\n {props.children}\n </Tag>\n );\n});\n\nTableCell.propTypes = {\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n};\n\nexport const moveFocusToBeginningOfTable = (change) => {\n const addedTable = change.value.document.findDescendant((d) => !!d.data && !!d.data.get('newTable'));\n\n if (!addedTable) {\n return;\n }\n\n change.collapseToStartOf(addedTable);\n\n const update = addedTable.data.remove('newTable');\n\n change.setNodeByKey(addedTable.key, { data: update });\n};\n\nexport default (opts, toolbarPlugins /* : {toolbar: {}}[] */) => {\n const core = EditTable({\n typeContent: 'div',\n });\n\n // fix outdated schema\n\n if (core.schema && core.schema.blocks) {\n Object.keys(core.schema.blocks).forEach((key) => {\n const block = core.schema.blocks[key];\n\n if (block.parent) {\n if (block.nodes[0].types) {\n block.nodes[0] = {\n type: block.nodes[0].types[0],\n };\n }\n\n if (block.nodes[0].objects) {\n block.nodes[0] = {\n object: block.nodes[0].objects[0],\n };\n }\n\n block.parent = {\n type: block.parent.types[0],\n };\n } else {\n block.nodes[0] = { type: block.nodes[0].types[0] };\n }\n });\n }\n\n core.utils.getTableBlock = (containerNode, key) => {\n const node = containerNode.getDescendant(key);\n const ancestors = containerNode.getAncestors(key).push(node);\n return ancestors.findLast((p) => p.type === 'table');\n };\n\n core.utils.createTableWithOptions = (row, columns, extra) => {\n const createdTable = core.utils.createTable(row, columns);\n const newTable = Block.create({\n ...createdTable.toJSON(),\n ...extra,\n });\n\n return newTable;\n };\n\n core.toolbar = {\n icon: <GridOn />,\n onClick: (value, onChange) => {\n log('insert table');\n const change = value.change();\n const newTable = core.utils.createTableWithOptions(2, 2, {\n data: {\n border: '1',\n newTable: true,\n },\n });\n\n change.insertBlock(newTable);\n\n moveFocusToBeginningOfTable(change);\n onChange(change);\n },\n supports: (node, value) => node && node.object === 'block' && core.utils.isSelectionInTable(value),\n /**\n * Note - the node may not be a table node - it may be a node inside a table.\n */\n customToolbar: (node, value, onToolbarDone) => {\n log('[customToolbar] node.data: ', node.data);\n\n const tableBlock = core.utils.getTableBlock(value.document, node?.key);\n log('[customToolbar] tableBlock: ', tableBlock);\n\n const hasBorder = () => tableBlock.data.get('border') && tableBlock.data.get('border') !== '0';\n const addRow = () => {\n const change = core.changes.insertRow(value.change());\n onToolbarDone(change, false);\n };\n\n const addColumn = () => {\n const change = core.changes.insertColumn(value.change());\n onToolbarDone(change, false);\n };\n\n const removeRow = () => {\n const change = core.changes.removeRow(value.change());\n onToolbarDone(change, false);\n };\n\n const removeColumn = () => {\n const change = core.changes.removeColumn(value.change());\n onToolbarDone(change, false);\n };\n\n const removeTable = () => {\n const change = core.changes.removeTable(value.change());\n onToolbarDone(change, false);\n };\n\n const toggleBorder = () => {\n const { data } = tableBlock;\n const update = data.set('border', hasBorder() ? '0' : '1');\n log('[toggleBorder] update: ', update);\n const change = value.change().setNodeByKey(tableBlock.key, { data: update });\n onToolbarDone(change, false);\n };\n\n const onDone = () => {\n log('[onDone] call onToolbarDone...');\n onToolbarDone(null, true);\n };\n\n const Tb = () => (\n <TableToolbar\n plugins={toolbarPlugins}\n onChange={(c) => onToolbarDone(c, false)}\n value={value}\n onAddRow={addRow}\n onRemoveRow={removeRow}\n onAddColumn={addColumn}\n onRemoveColumn={removeColumn}\n onRemoveTable={removeTable}\n hasBorder={hasBorder()}\n onToggleBorder={toggleBorder}\n onDone={onDone}\n />\n );\n return Tb;\n },\n };\n\n const Node = (props) => {\n switch (props.node.type) {\n case 'table':\n return <Table {...props} onFocus={opts.onFocus} onBlur={opts.onBlur} />;\n case 'table_row':\n return <TableRow {...props} />;\n case 'table_cell':\n return <TableCell {...props} onFocus={opts.onFocus} onBlur={opts.onBlur} />;\n default:\n return null;\n }\n };\n Node.propTypes = {\n node: PropTypes.object,\n };\n\n core.normalizeNode = (node) => {\n if (node.object !== 'document') {\n return;\n }\n\n const tableAdded = node.findDescendant((d) => d.data && d.data.get('newTable'));\n\n if (!tableAdded) {\n return;\n }\n\n const nodeToSearch = node.getParent(tableAdded.key) || node;\n let shouldAddTextAfterNode = false;\n const indexToNotHaveTableOn = nodeToSearch.nodes.size - 1;\n const indexOfLastTable = nodeToSearch.nodes.findLastIndex((d) => d.type === 'table');\n\n // if the last table in the document is of type table, we need to do the change\n if (indexOfLastTable === indexToNotHaveTableOn) {\n shouldAddTextAfterNode = true;\n }\n\n if (!shouldAddTextAfterNode) {\n return;\n }\n\n return (change) => {\n if (shouldAddTextAfterNode) {\n const tableJSON = tableAdded.toJSON();\n\n // we remove the table node because otherwise we can't add the empty block after it\n // we need a block that contains text in order to do it\n change.removeNodeByKey(tableAdded.key);\n\n const newBlock = Block.create({\n object: 'block',\n type: 'div',\n });\n\n // we add an empty block but that it's going to be normalized\n // because it will add the empty text to it like it should\n change.insertBlock(newBlock);\n\n change.withoutNormalization(() => {\n // we do these changes without normalization\n\n // we get the text previous to the new block added\n const prevText = change.value.document.getPreviousText(newBlock.key);\n\n if (prevText) {\n // we move focus to the previous text\n change.moveFocusTo(prevText.key, prevText.text?.length).moveAnchorTo(prevText.key, prevText.text?.length);\n }\n\n // we insert the table block between the first block with text and the last block with text\n change.insertBlock({\n ...tableJSON,\n data: {\n ...tableJSON.data,\n newTable: true,\n },\n });\n\n moveFocusToBeginningOfTable(change);\n });\n }\n };\n };\n\n core.renderNode = Node;\n\n return core;\n};\n\nexport const parseStyleString = (s) => {\n const regex = /([\\w-]*)\\s*:\\s*([^;]*)/g;\n let match;\n const result = {};\n while ((match = regex.exec(s))) {\n result[match[1]] = match[2].trim();\n }\n return result;\n};\n\nexport const reactAttributes = (o) => toStyleObject(o, { camelize: true, addUnits: false });\n\nconst attributesToMap = (el) => (acc, attribute) => {\n const value = el.getAttribute(attribute);\n if (value) {\n if (attribute === 'style') {\n const styleString = el.getAttribute(attribute);\n const reactStyleObject = reactAttributes(parseStyleString(styleString));\n acc['style'] = reactStyleObject;\n } else {\n acc[attribute] = el.getAttribute(attribute);\n }\n }\n return acc;\n};\n\nconst dataToAttributes = (data) => {\n if (!data || !data.get) {\n return {};\n }\n\n return data.reduce((acc, v, name) => {\n if (v) {\n acc[convert(name)] = v;\n }\n return acc;\n }, {});\n};\n\nconst attributes = ['border', 'cellpadding', 'cellspacing', 'class', 'style'];\n\nconst cellAttributes = ['colspan', 'rowspan', 'class', 'style'];\n\nexport const serialization = {\n deserialize(el, next) {\n const tag = el.tagName.toLowerCase();\n\n switch (tag) {\n case 'table': {\n const children =\n el.children.length === 1 && el.children[0].tagName.toLowerCase() === 'tbody'\n ? el.children[0].children\n : el.children;\n const c = Array.from(children);\n\n return {\n object: 'block',\n type: 'table',\n nodes: next(c),\n data: attributes.reduce(attributesToMap(el), {}),\n };\n }\n\n case 'th': {\n return {\n object: 'block',\n type: 'table_cell',\n nodes: next(el.childNodes),\n data: cellAttributes.reduce(attributesToMap(el), { header: true }),\n };\n }\n\n case 'tr': {\n return {\n object: 'block',\n type: 'table_row',\n nodes: next(Array.from(el.children)),\n };\n }\n\n case 'td': {\n return {\n object: 'block',\n type: 'table_cell',\n nodes: next(Array.from(el.childNodes)),\n data: cellAttributes.reduce(attributesToMap(el), { header: false }),\n };\n }\n }\n },\n serialize(object, children) {\n if (object.object !== 'block') {\n return;\n }\n\n switch (object.type) {\n case 'table': {\n const attributes = dataToAttributes(object.data);\n\n return (\n <table {...attributes}>\n <tbody>{children}</tbody>\n </table>\n );\n }\n\n case 'table_row': {\n return <tr>{children}</tr>;\n }\n\n case 'table_cell': {\n const attributes = dataToAttributes(object.data);\n delete attributes.header;\n\n if (object.data.get('header')) {\n return <th {...attributes}>{children}</th>;\n } else {\n return <td {...attributes}>{children}</td>;\n }\n }\n }\n },\n};\n"],"file":"index.js"}
@@ -1,39 +1,66 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports["default"] = exports.TableToolbar = void 0;
9
+
8
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
9
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
10
14
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
11
16
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
+
12
18
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
13
20
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
14
22
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
15
24
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
+
16
26
  var _react = _interopRequireDefault(require("react"));
27
+
17
28
  var _styles = require("@material-ui/core/styles");
29
+
18
30
  var _toolbarButtons = require("../toolbar/toolbar-buttons");
31
+
19
32
  var _doneButton = require("../toolbar/done-button");
33
+
20
34
  var _BorderAll = _interopRequireDefault(require("@material-ui/icons/BorderAll"));
35
+
21
36
  var _defaultToolbar = require("../toolbar/default-toolbar");
37
+
22
38
  var _icons = require("./icons");
39
+
23
40
  var _propTypes = _interopRequireDefault(require("prop-types"));
41
+
24
42
  var _debug = _interopRequireDefault(require("debug"));
43
+
25
44
  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); }; }
45
+
26
46
  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; } }
47
+
27
48
  var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:table-toolbar');
49
+
28
50
  var TableToolbar = /*#__PURE__*/function (_React$Component) {
29
51
  (0, _inherits2["default"])(TableToolbar, _React$Component);
52
+
30
53
  var _super = _createSuper(TableToolbar);
54
+
31
55
  function TableToolbar() {
32
56
  var _this;
57
+
33
58
  (0, _classCallCheck2["default"])(this, TableToolbar);
59
+
34
60
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
35
61
  args[_key] = arguments[_key];
36
62
  }
63
+
37
64
  _this = _super.call.apply(_super, [this].concat(args));
38
65
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onDone", function (e) {
39
66
  var onDone = _this.props.onDone;
@@ -42,21 +69,22 @@ var TableToolbar = /*#__PURE__*/function (_React$Component) {
42
69
  });
43
70
  return _this;
44
71
  }
72
+
45
73
  (0, _createClass2["default"])(TableToolbar, [{
46
74
  key: "render",
47
75
  value: function render() {
48
76
  var _this$props = this.props,
49
- plugins = _this$props.plugins,
50
- editor = _this$props.editor,
51
- onChange = _this$props.onChange,
52
- onAddRow = _this$props.onAddRow,
53
- onRemoveRow = _this$props.onRemoveRow,
54
- onAddColumn = _this$props.onAddColumn,
55
- onRemoveColumn = _this$props.onRemoveColumn,
56
- onRemoveTable = _this$props.onRemoveTable,
57
- onToggleBorder = _this$props.onToggleBorder,
58
- hasBorder = _this$props.hasBorder,
59
- classes = _this$props.classes;
77
+ plugins = _this$props.plugins,
78
+ value = _this$props.value,
79
+ onChange = _this$props.onChange,
80
+ onAddRow = _this$props.onAddRow,
81
+ onRemoveRow = _this$props.onRemoveRow,
82
+ onAddColumn = _this$props.onAddColumn,
83
+ onRemoveColumn = _this$props.onRemoveColumn,
84
+ onRemoveTable = _this$props.onRemoveTable,
85
+ onToggleBorder = _this$props.onToggleBorder,
86
+ hasBorder = _this$props.hasBorder,
87
+ classes = _this$props.classes;
60
88
  log('[render] hasBorder:', hasBorder);
61
89
  return /*#__PURE__*/_react["default"].createElement("div", {
62
90
  className: classes.tableToolbar
@@ -74,9 +102,9 @@ var TableToolbar = /*#__PURE__*/function (_React$Component) {
74
102
  onClick: onRemoveTable
75
103
  }, /*#__PURE__*/_react["default"].createElement(_icons.RemoveTable, null)), plugins.map(function (p, index) {
76
104
  return /*#__PURE__*/_react["default"].createElement(_defaultToolbar.ToolbarButton, (0, _extends2["default"])({
77
- key: "plugin-".concat(index),
78
- editor: editor
105
+ key: "plugin-".concat(index)
79
106
  }, p.toolbar, {
107
+ value: value,
80
108
  onChange: onChange
81
109
  }));
82
110
  }), /*#__PURE__*/_react["default"].createElement(_toolbarButtons.Button, {
@@ -89,10 +117,11 @@ var TableToolbar = /*#__PURE__*/function (_React$Component) {
89
117
  }]);
90
118
  return TableToolbar;
91
119
  }(_react["default"].Component);
120
+
92
121
  exports.TableToolbar = TableToolbar;
93
122
  (0, _defineProperty2["default"])(TableToolbar, "propTypes", {
94
123
  plugins: _propTypes["default"].array.isRequired,
95
- editor: _propTypes["default"].object.isRequired,
124
+ value: _propTypes["default"].object.isRequired,
96
125
  onChange: _propTypes["default"].func.isRequired,
97
126
  onAddRow: _propTypes["default"].func.isRequired,
98
127
  onRemoveRow: _propTypes["default"].func.isRequired,
@@ -106,8 +135,10 @@ exports.TableToolbar = TableToolbar;
106
135
  });
107
136
  (0, _defineProperty2["default"])(TableToolbar, "defaultProps", {
108
137
  plugins: [],
138
+ value: {},
109
139
  onChange: function onChange() {}
110
140
  });
141
+
111
142
  var styles = function styles() {
112
143
  return {
113
144
  tableToolbar: {
@@ -120,6 +151,8 @@ var styles = function styles() {
120
151
  }
121
152
  };
122
153
  };
154
+
123
155
  var _default = (0, _styles.withStyles)(styles)(TableToolbar);
156
+
124
157
  exports["default"] = _default;
125
158
  //# sourceMappingURL=table-toolbar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table-toolbar.js","names":["_react","_interopRequireDefault","require","_styles","_toolbarButtons","_doneButton","_BorderAll","_defaultToolbar","_icons","_propTypes","_debug","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","log","debug","TableToolbar","_React$Component","_inherits2","_super","_this","_classCallCheck2","_len","length","args","Array","_key","concat","_defineProperty2","_assertThisInitialized2","onDone","props","preventDefault","_createClass2","key","value","render","_this$props","plugins","editor","onChange","onAddRow","onRemoveRow","onAddColumn","onRemoveColumn","onRemoveTable","onToggleBorder","hasBorder","classes","createElement","className","tableToolbar","toolbarButtons","Button","onClick","AddRow","RemoveRow","AddColumn","RemoveColumn","RemoveTable","map","p","index","ToolbarButton","_extends2","toolbar","active","DoneButton","React","Component","exports","PropTypes","array","isRequired","object","func","bool","styles","width","display","justifyContent","_default","withStyles"],"sources":["../../../src/plugins/table/table-toolbar.jsx"],"sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Button } from '../toolbar/toolbar-buttons';\nimport { DoneButton } from '../toolbar/done-button';\nimport BorderAll from '@material-ui/icons/BorderAll';\nimport { ToolbarButton } from '../toolbar/default-toolbar';\n\nimport { AddRow, AddColumn, RemoveColumn, RemoveRow, RemoveTable } from './icons';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:plugins:table-toolbar');\n\nexport class TableToolbar extends React.Component {\n static propTypes = {\n plugins: PropTypes.array.isRequired,\n editor: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n onAddRow: PropTypes.func.isRequired,\n onRemoveRow: PropTypes.func.isRequired,\n onAddColumn: PropTypes.func.isRequired,\n onRemoveColumn: PropTypes.func.isRequired,\n onRemoveTable: PropTypes.func.isRequired,\n onToggleBorder: PropTypes.func.isRequired,\n hasBorder: PropTypes.bool,\n onDone: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n };\n\n static defaultProps = {\n plugins: [],\n onChange: () => {}\n };\n\n onDone = (e) => {\n const { onDone } = this.props;\n e.preventDefault();\n onDone();\n };\n\n render() {\n const {\n plugins,\n editor,\n onChange,\n onAddRow,\n onRemoveRow,\n onAddColumn,\n onRemoveColumn,\n onRemoveTable,\n onToggleBorder,\n hasBorder,\n classes,\n } = this.props;\n log('[render] hasBorder:', hasBorder);\n\n return (\n <div className={classes.tableToolbar}>\n <div className={classes.toolbarButtons}>\n <Button onClick={onAddRow}>\n <AddRow />\n </Button>\n <Button onClick={onRemoveRow}>\n <RemoveRow />\n </Button>\n <Button onClick={onAddColumn}>\n <AddColumn />\n </Button>\n <Button onClick={onRemoveColumn}>\n <RemoveColumn />\n </Button>\n <Button onClick={onRemoveTable}>\n <RemoveTable />\n </Button>\n {plugins.map((p, index) => (\n <ToolbarButton\n key={`plugin-${index}`}\n editor={editor}\n {...p.toolbar}\n onChange={onChange}\n />\n ))}\n <Button onClick={onToggleBorder} active={hasBorder}>\n <BorderAll />\n </Button>\n </div>\n <DoneButton onClick={this.onDone} />\n </div>\n );\n }\n}\n\nconst styles = () => ({\n tableToolbar: {\n width: '100%',\n display: 'flex',\n justifyContent: 'space-between',\n },\n toolbarButtons: {\n display: 'flex',\n },\n});\nexport default withStyles(styles)(TableToolbar);\n"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/plugins/table/table-toolbar.jsx"],"names":["log","TableToolbar","e","onDone","props","preventDefault","plugins","value","onChange","onAddRow","onRemoveRow","onAddColumn","onRemoveColumn","onRemoveTable","onToggleBorder","hasBorder","classes","tableToolbar","toolbarButtons","map","p","index","toolbar","React","Component","PropTypes","array","isRequired","object","func","bool","styles","width","display","justifyContent"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Button } from '../toolbar/toolbar-buttons';\nimport { DoneButton } from '../toolbar/done-button';\nimport BorderAll from '@material-ui/icons/BorderAll';\nimport { ToolbarButton } from '../toolbar/default-toolbar';\n\nimport { AddRow, AddColumn, RemoveColumn, RemoveRow, RemoveTable } from './icons';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:plugins:table-toolbar');\n\nexport class TableToolbar extends React.Component {\n static propTypes = {\n plugins: PropTypes.array.isRequired,\n value: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n onAddRow: PropTypes.func.isRequired,\n onRemoveRow: PropTypes.func.isRequired,\n onAddColumn: PropTypes.func.isRequired,\n onRemoveColumn: PropTypes.func.isRequired,\n onRemoveTable: PropTypes.func.isRequired,\n onToggleBorder: PropTypes.func.isRequired,\n hasBorder: PropTypes.bool,\n onDone: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n };\n\n static defaultProps = {\n plugins: [],\n value: {},\n onChange: () => {},\n };\n\n onDone = (e) => {\n const { onDone } = this.props;\n e.preventDefault();\n onDone();\n };\n\n render() {\n const {\n plugins,\n value,\n onChange,\n onAddRow,\n onRemoveRow,\n onAddColumn,\n onRemoveColumn,\n onRemoveTable,\n onToggleBorder,\n hasBorder,\n classes,\n } = this.props;\n log('[render] hasBorder:', hasBorder);\n\n return (\n <div className={classes.tableToolbar}>\n <div className={classes.toolbarButtons}>\n <Button onClick={onAddRow}>\n <AddRow />\n </Button>\n <Button onClick={onRemoveRow}>\n <RemoveRow />\n </Button>\n <Button onClick={onAddColumn}>\n <AddColumn />\n </Button>\n <Button onClick={onRemoveColumn}>\n <RemoveColumn />\n </Button>\n <Button onClick={onRemoveTable}>\n <RemoveTable />\n </Button>\n {plugins.map((p, index) => (\n <ToolbarButton key={`plugin-${index}`} {...p.toolbar} value={value} onChange={onChange} />\n ))}\n <Button onClick={onToggleBorder} active={hasBorder}>\n <BorderAll />\n </Button>\n </div>\n <DoneButton onClick={this.onDone} />\n </div>\n );\n }\n}\n\nconst styles = () => ({\n tableToolbar: {\n width: '100%',\n display: 'flex',\n justifyContent: 'space-between',\n },\n toolbarButtons: {\n display: 'flex',\n },\n});\nexport default withStyles(styles)(TableToolbar);\n"],"file":"table-toolbar.js"}
@@ -1,45 +1,42 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports["default"] = exports.ToolbarButton = exports.DefaultToolbar = void 0;
9
+
8
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+
10
12
  var _doneButton = require("./done-button");
13
+
11
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
+
12
16
  var _react = _interopRequireDefault(require("react"));
17
+
18
+ var _slatePropTypes = _interopRequireDefault(require("slate-prop-types"));
19
+
13
20
  var _utils = require("../utils");
21
+
14
22
  var _styles = require("@material-ui/core/styles");
23
+
15
24
  var _toolbarButtons = require("./toolbar-buttons");
25
+
16
26
  var _debug = _interopRequireDefault(require("debug"));
17
- var _slate = require("slate");
27
+
28
+ var _immutable = require("immutable");
29
+
18
30
  var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:toolbar');
19
- var isMarkActive = function isMarkActive(editor, format) {
20
- var marks = _slate.Editor.marks(editor);
21
- return marks ? marks[format] === true : false;
22
- };
23
- var isBlockActive = function isBlockActive(editor, format) {
24
- var selection = editor.selection;
25
- if (!selection) return false;
26
- var _Array$from = Array.from(_slate.Editor.nodes(editor, {
27
- at: _slate.Editor.unhangRange(editor, selection),
28
- match: function match(n) {
29
- return !_slate.Editor.isEditor(n) && _slate.Element.isElement(n) && n.type === format;
30
- }
31
- })),
32
- _Array$from2 = (0, _slicedToArray2["default"])(_Array$from, 1),
33
- match = _Array$from2[0];
34
- return !!match;
35
- };
31
+
36
32
  var ToolbarButton = function ToolbarButton(props) {
37
- var editor = props.editor;
38
33
  var onToggle = function onToggle() {
39
- props.onToggle(editor, props);
34
+ var c = props.onToggle(props.value.change(), props);
35
+ props.onChange(c);
40
36
  };
37
+
41
38
  if (props.isMark) {
42
- var isActive = isMarkActive(editor, props.type);
39
+ var isActive = (0, _utils.hasMark)(props.value, props.type);
43
40
  log('[ToolbarButton] mark:isActive: ', isActive);
44
41
  return /*#__PURE__*/_react["default"].createElement(_toolbarButtons.MarkButton, {
45
42
  active: isActive,
@@ -49,78 +46,90 @@ var ToolbarButton = function ToolbarButton(props) {
49
46
  }, props.icon);
50
47
  } else {
51
48
  var disabled = props.disabled;
52
- var _isActive = props.isActive ? props.isActive(editor, props.type) : isBlockActive(editor, props.type);
49
+
50
+ var _isActive = props.isActive ? props.isActive(props.value, props.type) : (0, _utils.hasBlock)(props.value, props.type);
51
+
53
52
  log('[ToolbarButton] block:isActive: ', _isActive);
54
53
  return /*#__PURE__*/_react["default"].createElement(_toolbarButtons.Button, {
55
54
  active: _isActive,
56
55
  disabled: disabled,
57
56
  onClick: function onClick() {
58
- return props.onClick(editor);
57
+ return props.onClick(props.value, props.onChange, props.getFocusedValue);
59
58
  },
60
59
  extraStyles: props.buttonStyles
61
60
  }, props.icon);
62
61
  }
63
62
  };
63
+
64
64
  exports.ToolbarButton = ToolbarButton;
65
65
  ToolbarButton.propTypes = {
66
+ buttonStyles: _propTypes["default"].object,
66
67
  disabled: _propTypes["default"].bool,
67
- icon: _propTypes["default"].object,
68
- editor: _propTypes["default"].object,
69
- isActive: _propTypes["default"].func,
68
+ icon: _propTypes["default"].any,
69
+ isActive: _propTypes["default"].bool,
70
70
  isMark: _propTypes["default"].bool,
71
- onClick: _propTypes["default"].func,
71
+ getFocusedValue: _propTypes["default"].func,
72
72
  onToggle: _propTypes["default"].func,
73
+ onChange: _propTypes["default"].func,
74
+ onClick: _propTypes["default"].func,
73
75
  type: _propTypes["default"].string,
74
- buttonStyles: _propTypes["default"].object
76
+ value: _propTypes["default"].object
75
77
  };
78
+
76
79
  var isActiveToolbarPlugin = function isActiveToolbarPlugin(props) {
77
80
  return function (plugin) {
78
81
  var isDisabled = (props[plugin.name] || {}).disabled;
79
82
  return plugin && plugin.toolbar && !isDisabled;
80
83
  };
81
84
  };
85
+
82
86
  var DefaultToolbar = function DefaultToolbar(_ref) {
83
- var editor = _ref.editor,
84
- plugins = _ref.plugins,
85
- pluginProps = _ref.pluginProps,
86
- value = _ref.value,
87
- onChange = _ref.onChange,
88
- getFocusedValue = _ref.getFocusedValue,
89
- onDone = _ref.onDone,
90
- classes = _ref.classes,
91
- showDone = _ref.showDone,
92
- deletable = _ref.deletable;
93
- var filtered = plugins.filter(isActiveToolbarPlugin(pluginProps)).map(function (p) {
94
- return p.toolbar;
95
- });
87
+ var plugins = _ref.plugins,
88
+ pluginProps = _ref.pluginProps,
89
+ value = _ref.value,
90
+ onChange = _ref.onChange,
91
+ getFocusedValue = _ref.getFocusedValue,
92
+ onDone = _ref.onDone,
93
+ classes = _ref.classes,
94
+ showDone = _ref.showDone,
95
+ deletable = _ref.deletable,
96
+ isHtmlMode = _ref.isHtmlMode;
97
+ var filtered;
98
+
99
+ if (isHtmlMode) {
100
+ filtered = plugins.filter(function (plugin) {
101
+ return isActiveToolbarPlugin(pluginProps)(plugin) && (plugin.name === 'characters' || plugin.name === 'html');
102
+ }).map(function (p) {
103
+ return p.toolbar;
104
+ });
105
+ } else {
106
+ filtered = plugins.filter(isActiveToolbarPlugin(pluginProps)).map(function (p) {
107
+ return p.toolbar;
108
+ });
109
+ }
110
+
96
111
  return /*#__PURE__*/_react["default"].createElement("div", {
97
112
  className: classes.defaultToolbar
98
113
  }, /*#__PURE__*/_react["default"].createElement("div", {
99
114
  className: classes.buttonsContainer
100
115
  }, filtered.map(function (p, index) {
101
116
  return /*#__PURE__*/_react["default"].createElement(ToolbarButton, (0, _extends2["default"])({}, p, {
102
- editor: editor,
103
117
  key: index,
104
118
  value: value,
105
119
  onChange: onChange,
106
120
  getFocusedValue: getFocusedValue
107
121
  }));
108
122
  })), showDone && !deletable && /*#__PURE__*/_react["default"].createElement(_doneButton.DoneButton, {
109
- onClick: function onClick() {
110
- return onDone(editor);
111
- }
123
+ onClick: onDone
112
124
  }));
113
125
  };
126
+
114
127
  exports.DefaultToolbar = DefaultToolbar;
115
128
  DefaultToolbar.propTypes = {
116
129
  classes: _propTypes["default"].object.isRequired,
117
130
  plugins: _propTypes["default"].array.isRequired,
118
131
  pluginProps: _propTypes["default"].object,
119
- value: _propTypes["default"].arrayOf(_propTypes["default"].shape({
120
- type: _propTypes["default"].string,
121
- children: _propTypes["default"].array,
122
- data: _propTypes["default"].object
123
- })),
132
+ value: _slatePropTypes["default"].value.isRequired,
124
133
  onChange: _propTypes["default"].func.isRequired,
125
134
  getFocusedValue: _propTypes["default"].func.isRequired,
126
135
  onDone: _propTypes["default"].func.isRequired,
@@ -131,6 +140,7 @@ DefaultToolbar.propTypes = {
131
140
  DefaultToolbar.defaultProps = {
132
141
  pluginProps: {}
133
142
  };
143
+
134
144
  var toolbarStyles = function toolbarStyles() {
135
145
  return {
136
146
  defaultToolbar: {
@@ -145,6 +155,8 @@ var toolbarStyles = function toolbarStyles() {
145
155
  }
146
156
  };
147
157
  };
158
+
148
159
  var _default = (0, _styles.withStyles)(toolbarStyles)(DefaultToolbar);
160
+
149
161
  exports["default"] = _default;
150
162
  //# sourceMappingURL=default-toolbar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"default-toolbar.js","names":["_doneButton","require","_propTypes","_interopRequireDefault","_react","_utils","_styles","_toolbarButtons","_debug","_slate","log","debug","isMarkActive","editor","format","marks","Editor","isBlockActive","selection","_Array$from","Array","from","nodes","at","unhangRange","match","n","isEditor","SlateElement","isElement","type","_Array$from2","_slicedToArray2","ToolbarButton","props","onToggle","isMark","isActive","createElement","MarkButton","active","label","mark","icon","disabled","Button","onClick","extraStyles","buttonStyles","exports","propTypes","PropTypes","bool","object","func","string","isActiveToolbarPlugin","plugin","isDisabled","name","toolbar","DefaultToolbar","_ref","plugins","pluginProps","value","onChange","getFocusedValue","onDone","classes","showDone","deletable","filtered","filter","map","p","className","defaultToolbar","buttonsContainer","index","_extends2","key","DoneButton","isRequired","array","arrayOf","shape","children","data","addArea","defaultProps","toolbarStyles","display","width","justifyContent","alignItems","_default","withStyles"],"sources":["../../../src/plugins/toolbar/default-toolbar.jsx"],"sourcesContent":["import { DoneButton } from './done-button';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { hasBlock, hasMark } from '../utils';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport { Button, MarkButton } from './toolbar-buttons';\nimport debug from 'debug';\nimport { Editor, Element as SlateElement } from \"slate\";\n\nconst log = debug('@pie-lib:editable-html:plugins:toolbar');\n\nconst isMarkActive = (editor, format) => {\n const marks = Editor.marks(editor);\n return marks ? marks[format] === true : false;\n};\n\nconst isBlockActive = (editor, format) => {\n const { selection } = editor;\n if (!selection) return false;\n\n const [match] = Array.from(\n Editor.nodes(editor, {\n at: Editor.unhangRange(editor, selection),\n match: n => !Editor.isEditor(n) && SlateElement.isElement(n) && n.type === format\n })\n );\n\n return !!match;\n};\n\nexport const ToolbarButton = (props) => {\n const { editor } = props;\n const onToggle = () => {\n props.onToggle(editor, props);\n };\n\n if (props.isMark) {\n const isActive = isMarkActive(editor, props.type);\n\n log('[ToolbarButton] mark:isActive: ', isActive);\n\n return (\n <MarkButton active={isActive} label={props.type} onToggle={onToggle} mark={props.type}>\n {props.icon}\n </MarkButton>\n );\n } else {\n const { disabled } = props;\n const isActive = props.isActive\n ? props.isActive(editor, props.type)\n : isBlockActive(editor, props.type);\n\n log('[ToolbarButton] block:isActive: ', isActive);\n\n return (\n <Button\n active={isActive}\n disabled={disabled}\n onClick={() => props.onClick(editor)}\n extraStyles={props.buttonStyles}\n >\n {props.icon}\n </Button>\n );\n }\n};\n\nToolbarButton.propTypes = {\n disabled: PropTypes.bool,\n icon: PropTypes.object,\n editor: PropTypes.object,\n isActive: PropTypes.func,\n isMark: PropTypes.bool,\n onClick: PropTypes.func,\n onToggle: PropTypes.func,\n type: PropTypes.string,\n buttonStyles: PropTypes.object,\n};\n\nconst isActiveToolbarPlugin = (props) => plugin => {\n const isDisabled = (props[plugin.name] || {}).disabled;\n\n return plugin && plugin.toolbar && !isDisabled;\n};\n\nexport const DefaultToolbar = ({\n editor,\n plugins,\n pluginProps,\n value,\n onChange,\n getFocusedValue,\n onDone,\n classes,\n showDone,\n deletable,\n}) => {\n const filtered = plugins.filter(isActiveToolbarPlugin(pluginProps)).map((p) => p.toolbar);\n\n return (\n <div className={classes.defaultToolbar}>\n <div className={classes.buttonsContainer}>\n {filtered.map((p, index) => {\n return (\n <ToolbarButton\n {...p}\n editor={editor}\n key={index}\n value={value}\n onChange={onChange}\n getFocusedValue={getFocusedValue}\n />\n );\n })}\n </div>\n {showDone && !deletable && <DoneButton onClick={() => onDone(editor)} />}\n </div>\n );\n};\n\nDefaultToolbar.propTypes = {\n classes: PropTypes.object.isRequired,\n plugins: PropTypes.array.isRequired,\n pluginProps: PropTypes.object,\n value: PropTypes.arrayOf(\n PropTypes.shape({\n type: PropTypes.string,\n children: PropTypes.array,\n data: PropTypes.object\n })\n ),\n onChange: PropTypes.func.isRequired,\n getFocusedValue: PropTypes.func.isRequired,\n onDone: PropTypes.func.isRequired,\n showDone: PropTypes.bool,\n addArea: PropTypes.bool,\n deletable: PropTypes.bool,\n};\n\nDefaultToolbar.defaultProps = {\n pluginProps: {},\n};\n\nconst toolbarStyles = () => ({\n defaultToolbar: {\n display: 'flex',\n width: '100%',\n justifyContent: 'space-between',\n },\n buttonsContainer: {\n alignItems: 'center',\n display: 'flex',\n width: '100%',\n },\n});\n\nexport default withStyles(toolbarStyles)(DefaultToolbar);\n"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/plugins/toolbar/default-toolbar.jsx"],"names":["log","ToolbarButton","props","onToggle","c","value","change","onChange","isMark","isActive","type","icon","disabled","onClick","getFocusedValue","buttonStyles","propTypes","PropTypes","object","bool","any","func","string","isActiveToolbarPlugin","plugin","isDisabled","name","toolbar","DefaultToolbar","plugins","pluginProps","onDone","classes","showDone","deletable","isHtmlMode","filtered","filter","map","p","defaultToolbar","buttonsContainer","index","isRequired","array","SlatePropTypes","addArea","defaultProps","toolbarStyles","display","width","justifyContent","alignItems"],"mappings":"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","sourcesContent":["import { DoneButton } from './done-button';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport SlatePropTypes from 'slate-prop-types';\n\nimport { hasBlock, hasMark } from '../utils';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport { Button, MarkButton } from './toolbar-buttons';\nimport debug from 'debug';\nimport { is } from 'immutable';\n\nconst log = debug('@pie-lib:editable-html:plugins:toolbar');\n\nexport const ToolbarButton = (props) => {\n const onToggle = () => {\n const c = props.onToggle(props.value.change(), props);\n\n props.onChange(c);\n };\n\n if (props.isMark) {\n const isActive = hasMark(props.value, props.type);\n\n log('[ToolbarButton] mark:isActive: ', isActive);\n\n return (\n <MarkButton active={isActive} label={props.type} onToggle={onToggle} mark={props.type}>\n {props.icon}\n </MarkButton>\n );\n } else {\n const { disabled } = props;\n const isActive = props.isActive ? props.isActive(props.value, props.type) : hasBlock(props.value, props.type);\n\n log('[ToolbarButton] block:isActive: ', isActive);\n\n return (\n <Button\n active={isActive}\n disabled={disabled}\n onClick={() => props.onClick(props.value, props.onChange, props.getFocusedValue)}\n extraStyles={props.buttonStyles}\n >\n {props.icon}\n </Button>\n );\n }\n};\n\nToolbarButton.propTypes = {\n buttonStyles: PropTypes.object,\n disabled: PropTypes.bool,\n icon: PropTypes.any,\n isActive: PropTypes.bool,\n isMark: PropTypes.bool,\n getFocusedValue: PropTypes.func,\n onToggle: PropTypes.func,\n onChange: PropTypes.func,\n onClick: PropTypes.func,\n type: PropTypes.string,\n value: PropTypes.object,\n};\n\nconst isActiveToolbarPlugin = (props) => (plugin) => {\n const isDisabled = (props[plugin.name] || {}).disabled;\n\n return plugin && plugin.toolbar && !isDisabled;\n};\n\nexport const DefaultToolbar = ({\n plugins,\n pluginProps,\n value,\n onChange,\n getFocusedValue,\n onDone,\n classes,\n showDone,\n deletable,\n isHtmlMode,\n}) => {\n let filtered;\n\n if (isHtmlMode) {\n filtered = plugins\n .filter((plugin) => {\n return isActiveToolbarPlugin(pluginProps)(plugin) && (plugin.name === 'characters' || plugin.name === 'html');\n })\n .map((p) => p.toolbar);\n } else {\n filtered = plugins.filter(isActiveToolbarPlugin(pluginProps)).map((p) => p.toolbar);\n }\n\n return (\n <div className={classes.defaultToolbar}>\n <div className={classes.buttonsContainer}>\n {filtered.map((p, index) => {\n return (\n <ToolbarButton {...p} key={index} value={value} onChange={onChange} getFocusedValue={getFocusedValue} />\n );\n })}\n </div>\n {showDone && !deletable && <DoneButton onClick={onDone} />}\n </div>\n );\n};\n\nDefaultToolbar.propTypes = {\n classes: PropTypes.object.isRequired,\n plugins: PropTypes.array.isRequired,\n pluginProps: PropTypes.object,\n value: SlatePropTypes.value.isRequired,\n onChange: PropTypes.func.isRequired,\n getFocusedValue: PropTypes.func.isRequired,\n onDone: PropTypes.func.isRequired,\n showDone: PropTypes.bool,\n addArea: PropTypes.bool,\n deletable: PropTypes.bool,\n};\n\nDefaultToolbar.defaultProps = {\n pluginProps: {},\n};\n\nconst toolbarStyles = () => ({\n defaultToolbar: {\n display: 'flex',\n width: '100%',\n justifyContent: 'space-between',\n },\n buttonsContainer: {\n alignItems: 'center',\n display: 'flex',\n width: '100%',\n },\n});\n\nexport default withStyles(toolbarStyles)(DefaultToolbar);\n"],"file":"default-toolbar.js"}