@pie-lib/editable-html 7.17.13 → 7.17.14

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 CHANGED
@@ -3,6 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [7.17.14](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@7.17.13...@pie-lib/editable-html@7.17.14) (2021-12-22)
7
+
8
+ **Note:** Version bump only for package @pie-lib/editable-html
9
+
10
+
11
+
12
+
13
+
6
14
  ## [7.17.13](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@7.17.12...@pie-lib/editable-html@7.17.13) (2021-12-13)
7
15
 
8
16
  **Note:** Version bump only for package @pie-lib/editable-html
@@ -29,6 +29,12 @@ var _toStyle = require("to-style");
29
29
 
30
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
31
31
 
32
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
33
+
34
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
35
+
36
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
37
+
32
38
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
33
39
 
34
40
  var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:table');
@@ -130,12 +136,27 @@ var _default = function _default(opts, toolbarPlugins
130
136
  });
131
137
  };
132
138
 
139
+ core.utils.createTableWithOptions = function (row, columns, extra) {
140
+ var createdTable = core.utils.createTable(row, columns);
141
+
142
+ var newTable = _slate.Block.create(_objectSpread({}, createdTable.toJSON(), {}, extra));
143
+
144
+ return newTable;
145
+ };
146
+
133
147
  core.toolbar = {
134
148
  icon: _react["default"].createElement(_GridOn["default"], null),
135
149
  onClick: function onClick(value, onChange) {
136
- log('insert table');
137
- var c = core.changes.insertTable(value.change(), 2, 2);
138
- onChange(c);
150
+ log('insert table'); // const c = core.changes.insertTable(value.change(), 2, 2);
151
+
152
+ var change = value.change();
153
+ var newTable = core.utils.createTableWithOptions(2, 2, {
154
+ data: {
155
+ border: '1'
156
+ }
157
+ });
158
+ change.insertBlock(newTable);
159
+ onChange(change);
139
160
  },
140
161
  supports: function supports(node, value) {
141
162
  return node && node.object === 'block' && core.utils.isSelectionInTable(value);
@@ -1 +1 @@
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","opts","toolbarPlugins","core","typeContent","schema","blocks","Object","keys","forEach","key","block","parent","nodes","types","type","objects","utils","getTableBlock","containerNode","getDescendant","ancestors","getAncestors","push","findLast","p","toolbar","icon","onClick","value","onChange","c","changes","insertTable","change","supports","isSelectionInTable","customToolbar","onToolbarDone","tableBlock","document","hasBorder","addRow","insertRow","addColumn","insertColumn","removeRow","removeColumn","removeTable","toggleBorder","update","set","setNodeByKey","onDone","Tb","Node","normalizeNode","shouldAddTextAfterNode","indexToNotHaveTableOn","size","indexOfLastTable","findLastIndex","d","tableNode","tableJSON","toJSON","removeNodeByKey","newBlock","Block","create","insertBlock","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, Inline } 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 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.toolbar = {\n icon: <GridOn />,\n onClick: (value, onChange) => {\n log('insert table');\n const c = core.changes.insertTable(value.change(), 2, 2);\n onChange(c);\n },\n supports: (node, value) =>\n 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 = () =>\n 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 let shouldAddTextAfterNode = false;\n const indexToNotHaveTableOn = node.nodes.size - 1;\n const indexOfLastTable = node.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 const tableNode = node.nodes.get(indexOfLastTable);\n\n return change => {\n if (shouldAddTextAfterNode) {\n const tableJSON = tableNode.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(tableNode.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\n .moveFocusTo(prevText.key, prevText.text.length)\n .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(tableJSON);\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
+ {"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","opts","toolbarPlugins","core","typeContent","schema","blocks","Object","keys","forEach","key","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","value","onChange","change","border","insertBlock","supports","isSelectionInTable","customToolbar","onToolbarDone","tableBlock","document","hasBorder","addRow","changes","insertRow","addColumn","insertColumn","removeRow","removeColumn","removeTable","toggleBorder","update","set","setNodeByKey","onDone","Tb","c","Node","normalizeNode","shouldAddTextAfterNode","indexToNotHaveTableOn","size","indexOfLastTable","findLastIndex","d","tableNode","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 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 c = core.changes.insertTable(value.change(), 2, 2);\n const change = value.change();\n const newTable = core.utils.createTableWithOptions(2, 2, {\n data: {\n border: '1'\n }\n });\n\n change.insertBlock(newTable);\n onChange(change);\n },\n supports: (node, value) =>\n 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 = () =>\n 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 let shouldAddTextAfterNode = false;\n const indexToNotHaveTableOn = node.nodes.size - 1;\n const indexOfLastTable = node.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 const tableNode = node.nodes.get(indexOfLastTable);\n\n return change => {\n if (shouldAddTextAfterNode) {\n const tableJSON = tableNode.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(tableNode.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\n .moveFocusTo(prevText.key, prevText.text.length)\n .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(tableJSON);\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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-lib/editable-html",
3
- "version": "7.17.13",
3
+ "version": "7.17.14",
4
4
  "description": "",
5
5
  "license": "ISC",
6
6
  "main": "lib/index.js",
@@ -46,6 +46,6 @@
46
46
  "publishConfig": {
47
47
  "access": "public"
48
48
  },
49
- "gitHead": "0fa7d2eea7cc8d058c396cbb3b74adaaf924b2fe",
49
+ "gitHead": "e5b1861ebd9022e70d0f441e46e06c63caf3f02c",
50
50
  "scripts": {}
51
51
  }
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import EditTable from 'slate-edit-table';
3
- import { Block, Inline } from 'slate';
3
+ import { Block } from 'slate';
4
4
  import debug from 'debug';
5
5
  import GridOn from '@material-ui/icons/GridOn';
6
6
  import TableToolbar from './table-toolbar';
@@ -117,12 +117,30 @@ export default (opts, toolbarPlugins /* : {toolbar: {}}[] */) => {
117
117
  return ancestors.findLast(p => p.type === 'table');
118
118
  };
119
119
 
120
+ core.utils.createTableWithOptions = (row, columns, extra) => {
121
+ const createdTable = core.utils.createTable(row, columns);
122
+ const newTable = Block.create({
123
+ ...createdTable.toJSON(),
124
+ ...extra
125
+ });
126
+
127
+ return newTable;
128
+ };
129
+
120
130
  core.toolbar = {
121
131
  icon: <GridOn />,
122
132
  onClick: (value, onChange) => {
123
133
  log('insert table');
124
- const c = core.changes.insertTable(value.change(), 2, 2);
125
- onChange(c);
134
+ // const c = core.changes.insertTable(value.change(), 2, 2);
135
+ const change = value.change();
136
+ const newTable = core.utils.createTableWithOptions(2, 2, {
137
+ data: {
138
+ border: '1'
139
+ }
140
+ });
141
+
142
+ change.insertBlock(newTable);
143
+ onChange(change);
126
144
  },
127
145
  supports: (node, value) =>
128
146
  node && node.object === 'block' && core.utils.isSelectionInTable(value),