@pie-lib/editable-html 9.3.1-next.53 → 9.4.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.
- package/CHANGELOG.md +17 -0
- package/lib/editor.js +244 -114
- package/lib/editor.js.map +1 -1
- package/lib/index.js +51 -5
- package/lib/index.js.map +1 -1
- package/lib/parse-html.js +5 -6
- package/lib/parse-html.js.map +1 -1
- package/lib/plugins/characters/custom-popper.js +12 -2
- package/lib/plugins/characters/custom-popper.js.map +1 -1
- package/lib/plugins/characters/index.js +50 -3
- package/lib/plugins/characters/index.js.map +1 -1
- package/lib/plugins/characters/utils.js.map +1 -1
- package/lib/plugins/image/alt-dialog.js +26 -0
- package/lib/plugins/image/alt-dialog.js.map +1 -1
- package/lib/plugins/image/component.js +82 -29
- package/lib/plugins/image/component.js.map +1 -1
- package/lib/plugins/image/image-toolbar.js +45 -7
- package/lib/plugins/image/image-toolbar.js.map +1 -1
- package/lib/plugins/image/index.js +41 -2
- package/lib/plugins/image/index.js.map +1 -1
- package/lib/plugins/image/insert-image-handler.js +22 -2
- package/lib/plugins/image/insert-image-handler.js.map +1 -1
- package/lib/plugins/index.js +34 -13
- package/lib/plugins/index.js.map +1 -1
- package/lib/plugins/list/index.js +42 -13
- package/lib/plugins/list/index.js.map +1 -1
- package/lib/plugins/math/index.js +75 -30
- package/lib/plugins/math/index.js.map +1 -1
- package/lib/plugins/media/index.js +75 -18
- package/lib/plugins/media/index.js.map +1 -1
- package/lib/plugins/media/media-dialog.js +188 -100
- package/lib/plugins/media/media-dialog.js.map +1 -1
- package/lib/plugins/media/media-toolbar.js +24 -4
- package/lib/plugins/media/media-toolbar.js.map +1 -1
- package/lib/plugins/media/media-wrapper.js +29 -5
- package/lib/plugins/media/media-wrapper.js.map +1 -1
- package/lib/plugins/respArea/drag-in-the-blank/choice.js +50 -10
- package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
- package/lib/plugins/respArea/drag-in-the-blank/index.js +18 -4
- package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
- package/lib/plugins/respArea/explicit-constructed-response/index.js +8 -2
- package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
- package/lib/plugins/respArea/icons/index.js +18 -1
- package/lib/plugins/respArea/icons/index.js.map +1 -1
- package/lib/plugins/respArea/index.js +47 -1
- package/lib/plugins/respArea/index.js.map +1 -1
- package/lib/plugins/respArea/inline-dropdown/index.js +8 -1
- package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
- package/lib/plugins/respArea/utils.js +22 -0
- package/lib/plugins/respArea/utils.js.map +1 -1
- package/lib/plugins/table/icons/index.js +7 -0
- package/lib/plugins/table/icons/index.js.map +1 -1
- package/lib/plugins/table/index.js +94 -15
- package/lib/plugins/table/index.js.map +1 -1
- package/lib/plugins/table/table-toolbar.js +43 -11
- package/lib/plugins/table/table-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/default-toolbar.js +30 -8
- package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/done-button.js +9 -1
- package/lib/plugins/toolbar/done-button.js.map +1 -1
- package/lib/plugins/toolbar/editor-and-toolbar.js +48 -18
- package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/index.js +5 -0
- package/lib/plugins/toolbar/index.js.map +1 -1
- package/lib/plugins/toolbar/toolbar-buttons.js +39 -8
- package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
- package/lib/plugins/toolbar/toolbar.js +67 -19
- package/lib/plugins/toolbar/toolbar.js.map +1 -1
- package/lib/plugins/utils.js +15 -0
- package/lib/plugins/utils.js.map +1 -1
- package/lib/serialization.js +69 -8
- package/lib/serialization.js.map +1 -1
- package/lib/theme.js.map +1 -1
- package/package.json +4 -4
- package/src/plugins/media/index.jsx +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["log","debug","Table","withStyles","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","EditTable","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","toStyleObject","camelize","addUnits","attributesToMap","el","acc","attribute","getAttribute","styleString","reactStyleObject","reduce","v","name","convert","cellAttributes","serialization","deserialize","next","tag","tagName","toLowerCase","Array","from","childNodes","serialize"],"sources":["../../../src/plugins/table/index.jsx"],"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 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 case 'tr': {\n return {\n object: 'block',\n type: 'table_row',\n nodes: next(Array.from(el.children)),\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 return (\n <table {...attributes}>\n <tbody>{children}</tbody>\n </table>\n );\n }\n case 'table_row': {\n return <tr>{children}</tr>;\n }\n case 'table_cell': {\n const attributes = dataToAttributes(object.data);\n delete attributes.header;\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"],"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 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 case 'tr': {\n return {\n object: 'block',\n type: 'table_row',\n nodes: next(Array.from(el.children)),\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 return (\n <table {...attributes}>\n <tbody>{children}</tbody>\n </table>\n );\n }\n case 'table_row': {\n return <tr>{children}</tr>;\n }\n case 'table_cell': {\n const attributes = dataToAttributes(object.data);\n delete attributes.header;\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
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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
|
|
@@ -89,6 +117,7 @@ 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,
|
|
@@ -109,6 +138,7 @@ exports.TableToolbar = TableToolbar;
|
|
|
109
138
|
value: {},
|
|
110
139
|
onChange: function onChange() {}
|
|
111
140
|
});
|
|
141
|
+
|
|
112
142
|
var styles = function styles() {
|
|
113
143
|
return {
|
|
114
144
|
tableToolbar: {
|
|
@@ -121,6 +151,8 @@ var styles = function styles() {
|
|
|
121
151
|
}
|
|
122
152
|
};
|
|
123
153
|
};
|
|
154
|
+
|
|
124
155
|
var _default = (0, _styles.withStyles)(styles)(TableToolbar);
|
|
156
|
+
|
|
125
157
|
exports["default"] = _default;
|
|
126
158
|
//# sourceMappingURL=table-toolbar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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,25 +1,38 @@
|
|
|
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"));
|
|
11
|
+
|
|
9
12
|
var _doneButton = require("./done-button");
|
|
13
|
+
|
|
10
14
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
+
|
|
11
16
|
var _react = _interopRequireDefault(require("react"));
|
|
17
|
+
|
|
12
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"));
|
|
27
|
+
|
|
17
28
|
var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:toolbar');
|
|
29
|
+
|
|
18
30
|
var ToolbarButton = function ToolbarButton(props) {
|
|
19
31
|
var onToggle = function onToggle() {
|
|
20
32
|
var c = props.onToggle(props.value.change(), props);
|
|
21
33
|
props.onChange(c);
|
|
22
34
|
};
|
|
35
|
+
|
|
23
36
|
if (props.isMark) {
|
|
24
37
|
var isActive = (0, _utils.hasMark)(props.value, props.type);
|
|
25
38
|
log('[ToolbarButton] mark:isActive: ', isActive);
|
|
@@ -31,7 +44,9 @@ var ToolbarButton = function ToolbarButton(props) {
|
|
|
31
44
|
}, props.icon);
|
|
32
45
|
} else {
|
|
33
46
|
var disabled = props.disabled;
|
|
47
|
+
|
|
34
48
|
var _isActive = props.isActive ? props.isActive(props.value, props.type) : (0, _utils.hasBlock)(props.value, props.type);
|
|
49
|
+
|
|
35
50
|
log('[ToolbarButton] block:isActive: ', _isActive);
|
|
36
51
|
return /*#__PURE__*/_react["default"].createElement(_toolbarButtons.Button, {
|
|
37
52
|
active: _isActive,
|
|
@@ -43,23 +58,26 @@ var ToolbarButton = function ToolbarButton(props) {
|
|
|
43
58
|
}, props.icon);
|
|
44
59
|
}
|
|
45
60
|
};
|
|
61
|
+
|
|
46
62
|
exports.ToolbarButton = ToolbarButton;
|
|
63
|
+
|
|
47
64
|
var isActiveToolbarPlugin = function isActiveToolbarPlugin(props) {
|
|
48
65
|
return function (plugin) {
|
|
49
66
|
var isDisabled = (props[plugin.name] || {}).disabled;
|
|
50
67
|
return plugin && plugin.toolbar && !isDisabled;
|
|
51
68
|
};
|
|
52
69
|
};
|
|
70
|
+
|
|
53
71
|
var DefaultToolbar = function DefaultToolbar(_ref) {
|
|
54
72
|
var plugins = _ref.plugins,
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
73
|
+
pluginProps = _ref.pluginProps,
|
|
74
|
+
value = _ref.value,
|
|
75
|
+
onChange = _ref.onChange,
|
|
76
|
+
getFocusedValue = _ref.getFocusedValue,
|
|
77
|
+
onDone = _ref.onDone,
|
|
78
|
+
classes = _ref.classes,
|
|
79
|
+
showDone = _ref.showDone,
|
|
80
|
+
deletable = _ref.deletable;
|
|
63
81
|
var filtered = plugins.filter(isActiveToolbarPlugin(pluginProps)).map(function (p) {
|
|
64
82
|
return p.toolbar;
|
|
65
83
|
});
|
|
@@ -78,6 +96,7 @@ var DefaultToolbar = function DefaultToolbar(_ref) {
|
|
|
78
96
|
onClick: onDone
|
|
79
97
|
}));
|
|
80
98
|
};
|
|
99
|
+
|
|
81
100
|
exports.DefaultToolbar = DefaultToolbar;
|
|
82
101
|
DefaultToolbar.propTypes = {
|
|
83
102
|
classes: _propTypes["default"].object.isRequired,
|
|
@@ -94,6 +113,7 @@ DefaultToolbar.propTypes = {
|
|
|
94
113
|
DefaultToolbar.defaultProps = {
|
|
95
114
|
pluginProps: {}
|
|
96
115
|
};
|
|
116
|
+
|
|
97
117
|
var toolbarStyles = function toolbarStyles() {
|
|
98
118
|
return {
|
|
99
119
|
defaultToolbar: {
|
|
@@ -108,6 +128,8 @@ var toolbarStyles = function toolbarStyles() {
|
|
|
108
128
|
}
|
|
109
129
|
};
|
|
110
130
|
};
|
|
131
|
+
|
|
111
132
|
var _default = (0, _styles.withStyles)(toolbarStyles)(DefaultToolbar);
|
|
133
|
+
|
|
112
134
|
exports["default"] = _default;
|
|
113
135
|
//# sourceMappingURL=default-toolbar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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","isActiveToolbarPlugin","plugin","isDisabled","name","toolbar","DefaultToolbar","plugins","pluginProps","onDone","classes","showDone","deletable","filtered","filter","map","p","defaultToolbar","buttonsContainer","index","propTypes","PropTypes","object","isRequired","array","SlatePropTypes","func","bool","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';\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\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}) => {\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 {...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"}
|
|
@@ -1,18 +1,25 @@
|
|
|
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.RawDoneButton = exports.DoneButton = void 0;
|
|
9
|
+
|
|
8
10
|
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
9
12
|
var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
|
|
13
|
+
|
|
10
14
|
var _Check = _interopRequireDefault(require("@material-ui/icons/Check"));
|
|
15
|
+
|
|
11
16
|
var _styles = require("@material-ui/core/styles");
|
|
17
|
+
|
|
12
18
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
19
|
+
|
|
13
20
|
var RawDoneButton = function RawDoneButton(_ref) {
|
|
14
21
|
var classes = _ref.classes,
|
|
15
|
-
|
|
22
|
+
onClick = _ref.onClick;
|
|
16
23
|
return /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
|
|
17
24
|
"aria-label": "Done",
|
|
18
25
|
className: classes.iconRoot,
|
|
@@ -23,6 +30,7 @@ var RawDoneButton = function RawDoneButton(_ref) {
|
|
|
23
30
|
}
|
|
24
31
|
}, /*#__PURE__*/_react["default"].createElement(_Check["default"], null));
|
|
25
32
|
};
|
|
33
|
+
|
|
26
34
|
exports.RawDoneButton = RawDoneButton;
|
|
27
35
|
RawDoneButton.propTypes = {
|
|
28
36
|
classes: _propTypes["default"].object.isRequired,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../src/plugins/toolbar/done-button.jsx"],"names":["RawDoneButton","classes","onClick","iconRoot","label","root","propTypes","PropTypes","object","isRequired","func","styles","verticalAlign","width","height","color","padding","DoneButton"],"mappings":";;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AAEO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB;AAAA,MAAGC,OAAH,QAAGA,OAAH;AAAA,MAAYC,OAAZ,QAAYA,OAAZ;AAAA,sBAC3B,gCAAC,sBAAD;AACE,kBAAW,MADb;AAEE,IAAA,SAAS,EAAED,OAAO,CAACE,QAFrB;AAGE,IAAA,OAAO,EAAED,OAHX;AAIE,IAAA,OAAO,EAAE;AACPE,MAAAA,KAAK,EAAEH,OAAO,CAACG,KADR;AAEPC,MAAAA,IAAI,EAAEJ,OAAO,CAACE;AAFP;AAJX,kBASE,gCAAC,iBAAD,OATF,CAD2B;AAAA,CAAtB;;;AAcPH,aAAa,CAACM,SAAd,GAA0B;AACxBL,EAAAA,OAAO,EAAEM,sBAAUC,MAAV,CAAiBC,UADF;AAExBP,EAAAA,OAAO,EAAEK,sBAAUG;AAFK,CAA1B;AAKA,IAAMC,MAAM,GAAG;AACbR,EAAAA,QAAQ,EAAE;AACRS,IAAAA,aAAa,EAAE,KADP;AAERC,IAAAA,KAAK,EAAE,MAFC;AAGRC,IAAAA,MAAM,EAAE,MAHA;AAIRC,IAAAA,KAAK,EAAE,6CAJC;AAKRC,IAAAA,OAAO,EAAE;AALD;AADG,CAAf;AASO,IAAMC,UAAU,GAAG,wBAAWN,MAAX,EAAmBX,aAAnB,CAAnB","sourcesContent":["import React from 'react';\n\nimport IconButton from '@material-ui/core/IconButton';\nimport Check from '@material-ui/icons/Check';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\n\nexport const RawDoneButton = ({ classes, onClick }) => (\n <IconButton\n aria-label=\"Done\"\n className={classes.iconRoot}\n onClick={onClick}\n classes={{\n label: classes.label,\n root: classes.iconRoot,\n }}\n >\n <Check />\n </IconButton>\n);\n\nRawDoneButton.propTypes = {\n classes: PropTypes.object.isRequired,\n onClick: PropTypes.func,\n};\n\nconst styles = {\n iconRoot: {\n verticalAlign: 'top',\n width: '28px',\n height: '28px',\n color: 'var(--editable-html-toolbar-check, #00bb00)',\n padding: '4px',\n },\n};\nexport const DoneButton = withStyles(styles)(RawDoneButton);\n"],"file":"done-button.js"}
|
|
@@ -1,36 +1,60 @@
|
|
|
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.EditorAndToolbar = void 0;
|
|
9
|
+
|
|
8
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
9
12
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
10
14
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
+
|
|
11
16
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
|
+
|
|
12
18
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
19
|
+
|
|
13
20
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
|
+
|
|
14
22
|
var _react = _interopRequireDefault(require("react"));
|
|
23
|
+
|
|
15
24
|
var _toolbar = _interopRequireDefault(require("./toolbar"));
|
|
25
|
+
|
|
16
26
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
27
|
+
|
|
17
28
|
var _debug = _interopRequireDefault(require("debug"));
|
|
29
|
+
|
|
18
30
|
var _theme = require("../../theme");
|
|
31
|
+
|
|
19
32
|
var _styles = require("@material-ui/core/styles");
|
|
33
|
+
|
|
20
34
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
35
|
+
|
|
21
36
|
var _slatePropTypes = _interopRequireDefault(require("slate-prop-types"));
|
|
37
|
+
|
|
22
38
|
var _slateDevEnvironment = require("slate-dev-environment");
|
|
39
|
+
|
|
23
40
|
var _renderUi = require("@pie-lib/render-ui");
|
|
41
|
+
|
|
24
42
|
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); }; }
|
|
43
|
+
|
|
25
44
|
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; } }
|
|
45
|
+
|
|
26
46
|
var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:toolbar:editor-and-toolbar');
|
|
47
|
+
|
|
27
48
|
var EditorAndToolbar = /*#__PURE__*/function (_React$Component) {
|
|
28
49
|
(0, _inherits2["default"])(EditorAndToolbar, _React$Component);
|
|
50
|
+
|
|
29
51
|
var _super = _createSuper(EditorAndToolbar);
|
|
52
|
+
|
|
30
53
|
function EditorAndToolbar() {
|
|
31
54
|
(0, _classCallCheck2["default"])(this, EditorAndToolbar);
|
|
32
55
|
return _super.apply(this, arguments);
|
|
33
56
|
}
|
|
57
|
+
|
|
34
58
|
(0, _createClass2["default"])(EditorAndToolbar, [{
|
|
35
59
|
key: "componentDidMount",
|
|
36
60
|
value:
|
|
@@ -46,28 +70,30 @@ var EditorAndToolbar = /*#__PURE__*/function (_React$Component) {
|
|
|
46
70
|
key: "render",
|
|
47
71
|
value: function render() {
|
|
48
72
|
var _classNames,
|
|
49
|
-
|
|
50
|
-
|
|
73
|
+
_this = this,
|
|
74
|
+
_classNames2;
|
|
75
|
+
|
|
51
76
|
var _this$props = this.props,
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
77
|
+
classes = _this$props.classes,
|
|
78
|
+
children = _this$props.children,
|
|
79
|
+
value = _this$props.value,
|
|
80
|
+
plugins = _this$props.plugins,
|
|
81
|
+
onChange = _this$props.onChange,
|
|
82
|
+
getFocusedValue = _this$props.getFocusedValue,
|
|
83
|
+
onDone = _this$props.onDone,
|
|
84
|
+
focusedNode = _this$props.focusedNode,
|
|
85
|
+
autoWidth = _this$props.autoWidth,
|
|
86
|
+
readOnly = _this$props.readOnly,
|
|
87
|
+
disableScrollbar = _this$props.disableScrollbar,
|
|
88
|
+
disableUnderline = _this$props.disableUnderline,
|
|
89
|
+
pluginProps = _this$props.pluginProps,
|
|
90
|
+
toolbarOpts = _this$props.toolbarOpts,
|
|
91
|
+
onDataChange = _this$props.onDataChange,
|
|
92
|
+
toolbarRef = _this$props.toolbarRef;
|
|
68
93
|
var inFocus = value.isFocused || focusedNode !== null && focusedNode !== undefined;
|
|
69
94
|
var holderNames = (0, _classnames["default"])(classes.editorHolder, (_classNames = {}, (0, _defineProperty2["default"])(_classNames, classes.editorInFocus, inFocus), (0, _defineProperty2["default"])(_classNames, classes.readOnly, readOnly), (0, _defineProperty2["default"])(_classNames, classes.disabledUnderline, disableUnderline), (0, _defineProperty2["default"])(_classNames, classes.disabledScrollbar, disableScrollbar), _classNames));
|
|
70
95
|
var clonedChildren = children;
|
|
96
|
+
|
|
71
97
|
if (typeof children !== 'string') {
|
|
72
98
|
clonedChildren = /*#__PURE__*/_react["default"].cloneElement(children, {
|
|
73
99
|
ref: function ref(el) {
|
|
@@ -75,6 +101,7 @@ var EditorAndToolbar = /*#__PURE__*/function (_React$Component) {
|
|
|
75
101
|
}
|
|
76
102
|
});
|
|
77
103
|
}
|
|
104
|
+
|
|
78
105
|
log('[render] inFocus: ', inFocus, 'value.isFocused:', value.isFocused, 'focused node: ', focusedNode);
|
|
79
106
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
80
107
|
className: (0, _classnames["default"])((_classNames2 = {}, (0, _defineProperty2["default"])(_classNames2, classes.noBorder, toolbarOpts && toolbarOpts.noBorder), (0, _defineProperty2["default"])(_classNames2, classes.error, toolbarOpts && toolbarOpts.error), _classNames2), classes.root)
|
|
@@ -100,6 +127,7 @@ var EditorAndToolbar = /*#__PURE__*/function (_React$Component) {
|
|
|
100
127
|
}]);
|
|
101
128
|
return EditorAndToolbar;
|
|
102
129
|
}(_react["default"].Component);
|
|
130
|
+
|
|
103
131
|
exports.EditorAndToolbar = EditorAndToolbar;
|
|
104
132
|
(0, _defineProperty2["default"])(EditorAndToolbar, "propTypes", {
|
|
105
133
|
children: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]).isRequired,
|
|
@@ -248,6 +276,8 @@ var style = {
|
|
|
248
276
|
padding: 0
|
|
249
277
|
}
|
|
250
278
|
};
|
|
279
|
+
|
|
251
280
|
var _default = (0, _styles.withStyles)(style)(EditorAndToolbar);
|
|
281
|
+
|
|
252
282
|
exports["default"] = _default;
|
|
253
283
|
//# sourceMappingURL=editor-and-toolbar.js.map
|