@progress/kendo-editor-common 1.10.3-dev.202309121208 → 1.10.3

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 (39) hide show
  1. package/dist/cdn/js/kendo-editor-common.js +1 -1
  2. package/dist/cdn/main.js +1 -1
  3. package/dist/es/DOMSerializer.js +188 -0
  4. package/dist/es/main.js +1 -0
  5. package/dist/es/plugins/csp-fix.js +51 -0
  6. package/dist/es/plugins/table-resize/column-resize.js +2 -1
  7. package/dist/es/plugins/table-resize/row-resize.js +2 -1
  8. package/dist/es/plugins/table-resize/table-resize.js +2 -1
  9. package/dist/es/plugins/table-resize/table-view.js +3 -17
  10. package/dist/es/plugins/table-resize/utils.js +0 -8
  11. package/dist/es/source.js +29 -19
  12. package/dist/es/utils.js +31 -0
  13. package/dist/es2015/DOMSerializer.js +181 -0
  14. package/dist/es2015/main.js +1 -0
  15. package/dist/es2015/plugins/csp-fix.js +48 -0
  16. package/dist/es2015/plugins/table-resize/column-resize.js +2 -1
  17. package/dist/es2015/plugins/table-resize/row-resize.js +2 -1
  18. package/dist/es2015/plugins/table-resize/table-resize.js +2 -1
  19. package/dist/es2015/plugins/table-resize/table-view.js +3 -17
  20. package/dist/es2015/plugins/table-resize/utils.js +0 -7
  21. package/dist/es2015/source.js +27 -19
  22. package/dist/es2015/utils.js +30 -0
  23. package/dist/npm/DOMSerializer.d.ts +35 -0
  24. package/dist/npm/DOMSerializer.js +191 -0
  25. package/dist/npm/main.d.ts +1 -0
  26. package/dist/npm/main.js +4 -2
  27. package/dist/npm/plugins/csp-fix.d.ts +2 -0
  28. package/dist/npm/plugins/csp-fix.js +55 -0
  29. package/dist/npm/plugins/table-resize/column-resize.js +23 -22
  30. package/dist/npm/plugins/table-resize/row-resize.js +3 -2
  31. package/dist/npm/plugins/table-resize/table-resize.js +7 -6
  32. package/dist/npm/plugins/table-resize/table-view.js +3 -17
  33. package/dist/npm/plugins/table-resize/utils.d.ts +0 -3
  34. package/dist/npm/plugins/table-resize/utils.js +1 -10
  35. package/dist/npm/source.js +29 -19
  36. package/dist/npm/utils.d.ts +4 -0
  37. package/dist/npm/utils.js +34 -1
  38. package/dist/systemjs/kendo-editor-common.js +1 -1
  39. package/package.json +1 -1
@@ -7,11 +7,12 @@ var prosemirror_tables_1 = require("prosemirror-tables");
7
7
  var prosemirror_view_1 = require("prosemirror-view");
8
8
  var constants_1 = require("../../config/constants");
9
9
  var table_view_1 = require("./table-view");
10
- var utils_1 = require("./utils");
10
+ var utils_1 = require("./../../utils");
11
+ var utils_2 = require("./utils");
11
12
  function columnResizing() {
12
13
  var handleWidth = 5, cellMinWidth = 25;
13
14
  var plugin = new prosemirror_state_1.Plugin({
14
- key: utils_1.tableColumnResizeKey,
15
+ key: utils_2.tableColumnResizeKey,
15
16
  state: {
16
17
  init: function (_, _state) {
17
18
  return new ResizeState(-1, null);
@@ -22,15 +23,15 @@ function columnResizing() {
22
23
  },
23
24
  props: {
24
25
  attributes: function (state) {
25
- if (utils_1.otherResizeHandle(utils_1.tableColumnResizeKey, state)) {
26
+ if (utils_2.otherResizeHandle(utils_2.tableColumnResizeKey, state)) {
26
27
  return null;
27
28
  }
28
- var pluginState = utils_1.tableColumnResizeKey.getState(state);
29
+ var pluginState = utils_2.tableColumnResizeKey.getState(state);
29
30
  return pluginState.activeHandle > -1 ? { class: 'resize-cursor' } : null;
30
31
  },
31
32
  handleDOMEvents: {
32
33
  mousemove: function (view, event) {
33
- if (!utils_1.otherResizing(utils_1.tableColumnResizeKey, view.state)) {
34
+ if (!utils_2.otherResizing(utils_2.tableColumnResizeKey, view.state)) {
34
35
  handleMouseMove(view, event, handleWidth);
35
36
  }
36
37
  return false;
@@ -44,8 +45,8 @@ function columnResizing() {
44
45
  }
45
46
  },
46
47
  decorations: function (state) {
47
- if (!utils_1.otherResizing(utils_1.tableColumnResizeKey, state)) {
48
- var pluginState = utils_1.tableColumnResizeKey.getState(state);
48
+ if (!utils_2.otherResizing(utils_2.tableColumnResizeKey, state)) {
49
+ var pluginState = utils_2.tableColumnResizeKey.getState(state);
49
50
  if (pluginState.activeHandle > -1) {
50
51
  return handleDecorations(state, pluginState.activeHandle);
51
52
  }
@@ -70,7 +71,7 @@ var ResizeState = /** @class */ (function () {
70
71
  this.dragging = dragging;
71
72
  }
72
73
  ResizeState.prototype.apply = function (tr) {
73
- var state = this, action = tr.getMeta(utils_1.tableColumnResizeKey);
74
+ var state = this, action = tr.getMeta(utils_2.tableColumnResizeKey);
74
75
  if (action && action.setHandle != null) {
75
76
  return new ResizeState(action.setHandle, null);
76
77
  }
@@ -89,18 +90,18 @@ var ResizeState = /** @class */ (function () {
89
90
  return ResizeState;
90
91
  }());
91
92
  function handleMouseMove(view, event, handleWidth) {
92
- var pluginState = utils_1.tableColumnResizeKey.getState(view.state);
93
+ var pluginState = utils_2.tableColumnResizeKey.getState(view.state);
93
94
  if (!pluginState.dragging) {
94
- var target = utils_1.domCellAround(event.target), cell = -1;
95
+ var target = utils_2.domCellAround(event.target), cell = -1;
95
96
  if (target) {
96
- var indexes = utils_1.cellIndexes(target);
97
+ var indexes = utils_2.cellIndexes(target);
97
98
  var _a = target.getBoundingClientRect(), left = _a.left, right = _a.right;
98
99
  if (Math.abs(event.clientX - left) <= handleWidth && indexes.cellIndex > 0) {
99
100
  indexes.cellIndex -= target.colSpan;
100
- cell = utils_1.edgeCell(view, event, indexes);
101
+ cell = utils_2.edgeCell(view, event, indexes);
101
102
  }
102
103
  else if (right - event.clientX > 0 && right - event.clientX <= handleWidth) {
103
- cell = utils_1.edgeCell(view, event, indexes);
104
+ cell = utils_2.edgeCell(view, event, indexes);
104
105
  }
105
106
  }
106
107
  if (cell !== pluginState.activeHandle) {
@@ -109,14 +110,14 @@ function handleMouseMove(view, event, handleWidth) {
109
110
  }
110
111
  }
111
112
  function handleMouseLeave(view) {
112
- var pluginState = utils_1.tableColumnResizeKey.getState(view.state);
113
+ var pluginState = utils_2.tableColumnResizeKey.getState(view.state);
113
114
  if (pluginState.activeHandle > -1 && !pluginState.dragging) {
114
115
  updateHandle(view, -1);
115
116
  }
116
117
  }
117
118
  function handleMouseDown(view, event, cellMinWidth) {
118
119
  var _a;
119
- var pluginState = utils_1.tableColumnResizeKey.getState(view.state);
120
+ var pluginState = utils_2.tableColumnResizeKey.getState(view.state);
120
121
  if (pluginState.activeHandle === -1 || pluginState.dragging) {
121
122
  return false;
122
123
  }
@@ -156,12 +157,12 @@ function handleMouseDown(view, event, cellMinWidth) {
156
157
  tableAttrs = tslib_1.__assign(tslib_1.__assign({}, tableNode.attrs), (_a = {}, _a[constants_1.colgroupAttr] = '<colgroup>' + cols.reduce(function (acc, cur) { return acc + cur.outerHTML; }, '') + '</colgroup>', _a));
157
158
  }
158
159
  var width = parseFloat(col.style.width);
159
- var tr = view.state.tr.setMeta(utils_1.tableColumnResizeKey, { setDragging: { startX: event.clientX, startWidth: width } });
160
+ var tr = view.state.tr.setMeta(utils_2.tableColumnResizeKey, { setDragging: { startX: event.clientX, startWidth: width } });
160
161
  if (!tableDom.style.width) {
161
162
  var widths = Array.from(col.parentNode.children).map(function (c) { return c.style.width; });
162
163
  if (widths.every(Boolean)) {
163
164
  var sum = widths.reduce(function (acc, cur) { return acc + parseFloat(cur); }, 0);
164
- tableAttrs = utils_1.setNodeStyle(tableAttrs || tableNode.attrs, 'width', sum + 'px');
165
+ tableAttrs = utils_2.setNodeStyle(tableAttrs || tableNode.attrs, 'width', sum + 'px');
165
166
  }
166
167
  }
167
168
  if (tableAttrs) {
@@ -172,18 +173,18 @@ function handleMouseDown(view, event, cellMinWidth) {
172
173
  function finish(ev) {
173
174
  ev.view.removeEventListener('mouseup', finish);
174
175
  ev.view.removeEventListener('mousemove', move);
175
- var curPluginState = utils_1.tableColumnResizeKey.getState(view.state);
176
+ var curPluginState = utils_2.tableColumnResizeKey.getState(view.state);
176
177
  if (curPluginState.dragging) {
177
178
  var transaction = view.state.tr;
178
179
  updateColumnWidth(view, transaction, curPluginState.activeHandle, draggedWidth(curPluginState.dragging, ev, cellMinWidth));
179
- view.dispatch(transaction.setMeta(utils_1.tableColumnResizeKey, { setDragging: null }));
180
+ view.dispatch(transaction.setMeta(utils_2.tableColumnResizeKey, { setDragging: null }));
180
181
  }
181
182
  }
182
183
  function move(ev) {
183
184
  if (!ev.which) {
184
185
  return finish(ev);
185
186
  }
186
- var curPluginState = utils_1.tableColumnResizeKey.getState(view.state);
187
+ var curPluginState = utils_2.tableColumnResizeKey.getState(view.state);
187
188
  var dragged = draggedWidth(curPluginState.dragging, ev, cellMinWidth);
188
189
  displayColumnWidth(view, curPluginState.activeHandle, dragged, cellMinWidth);
189
190
  }
@@ -199,7 +200,7 @@ function draggedWidth(dragging, event, cellMinWidth) {
199
200
  function updateHandle(view, value) {
200
201
  var tr = view.state.tr;
201
202
  tr.setMeta('addToHistory', false);
202
- tr.setMeta(utils_1.tableColumnResizeKey, { setHandle: value });
203
+ tr.setMeta(utils_2.tableColumnResizeKey, { setHandle: value });
203
204
  view.dispatch(tr);
204
205
  }
205
206
  function updateColumnWidth(view, tr, cell, _width) {
@@ -215,7 +216,7 @@ function updateColumnWidth(view, tr, cell, _width) {
215
216
  }
216
217
  var tableDomWidth = tableDom.style.width;
217
218
  if (tableDom && tableDomWidth && utils_1.parseStyle(attrs.style).width !== tableDomWidth) {
218
- attrs = utils_1.setNodeStyle(attrs, 'width', tableDomWidth);
219
+ attrs = utils_2.setNodeStyle(attrs, 'width', tableDomWidth);
219
220
  }
220
221
  tr.setNodeMarkup(tablePos, null, attrs);
221
222
  }
@@ -5,6 +5,7 @@ var prosemirror_state_1 = require("prosemirror-state");
5
5
  var prosemirror_tables_1 = require("prosemirror-tables");
6
6
  var prosemirror_view_1 = require("prosemirror-view");
7
7
  var utils_1 = require("./utils");
8
+ var utils_2 = require("./../../utils");
8
9
  var TableRowView = /** @class */ (function () {
9
10
  function TableRowView() {
10
11
  }
@@ -126,8 +127,8 @@ function handleMouseDown(view, event) {
126
127
  var $cell = doc.resolve(pluginState.activeHandle);
127
128
  var row = $cell.parent;
128
129
  var table = $cell.node(-1);
129
- var rowHeightStr = utils_1.parseStyle(row.attrs.style).height;
130
- var tableHeight = utils_1.parseStyle(table.attrs.style).height;
130
+ var rowHeightStr = utils_2.parseStyle(row.attrs.style).height;
131
+ var tableHeight = utils_2.parseStyle(table.attrs.style).height;
131
132
  var rowHeight = rowHeightStr ? parseFloat(rowHeightStr) : 0;
132
133
  if (!rowHeightStr) {
133
134
  var tr = view.nodeDOM(pluginState.activeHandle);
@@ -5,6 +5,7 @@ var tslib_1 = require("tslib");
5
5
  var prosemirror_state_1 = require("prosemirror-state");
6
6
  var constants_1 = require("../../config/constants");
7
7
  var utils_1 = require("./utils");
8
+ var utils_2 = require("./../../utils");
8
9
  var resize_utils_1 = require("./../resize-utils");
9
10
  var commonDir = {
10
11
  'southeast': true,
@@ -78,14 +79,14 @@ var toPercents = function (view, tr, tablePos) {
78
79
  });
79
80
  var heightChange = false;
80
81
  tableNode.forEach(function (row, offset, index) {
81
- var rowHeight = utils_1.parseStyle(row.attrs.style).height;
82
+ var rowHeight = utils_2.parseStyle(row.attrs.style).height;
82
83
  if (rowHeight && !/%$/.test(rowHeight)) {
83
84
  tr.setNodeMarkup(tablePos + offset + 1, null, utils_1.setNodeStyle(row.attrs, 'height', (rowsHeight[index] * 100 / height) + '%'));
84
85
  heightChange = true;
85
86
  }
86
87
  });
87
88
  var tableAttrs = tableNode.attrs;
88
- if (utils_1.parseStyle(tableAttrs.style).width !== offsetWidth + 'px') {
89
+ if (utils_2.parseStyle(tableAttrs.style).width !== offsetWidth + 'px') {
89
90
  tableAttrs = utils_1.setNodeStyle(tableAttrs, 'width', offsetWidth + 'px');
90
91
  }
91
92
  if (widthChanged) {
@@ -105,7 +106,7 @@ var toPixels = function (view, tr, tablePos, attrs) {
105
106
  var calcStyle = win.getComputedStyle;
106
107
  var rows = Array.from(tableDom.rows);
107
108
  tableNode.forEach(function (row, offset, index) {
108
- var rowHeight = utils_1.parseStyle(row.attrs.style).height;
109
+ var rowHeight = utils_2.parseStyle(row.attrs.style).height;
109
110
  if (rowHeight && !/px$/.test(rowHeight)) {
110
111
  tr.setNodeMarkup(tablePos + offset + 1, null, utils_1.setNodeStyle(row.attrs, 'height', calcStyle(rows[index]).height));
111
112
  }
@@ -146,7 +147,7 @@ var handleMouseUp = function (view) {
146
147
  var height = rect.offsetHeight + 'px';
147
148
  var tr = view.state.tr;
148
149
  var attrs = node.attrs;
149
- var parsedStyles = utils_1.parseStyle(attrs.style);
150
+ var parsedStyles = utils_2.parseStyle(attrs.style);
150
151
  if (horizontalDir[activeHandle] && dom.style.width && parsedStyles.width !== width) {
151
152
  attrs = utils_1.setNodeStyle(attrs, 'width', width);
152
153
  }
@@ -162,10 +163,10 @@ var handleMouseUp = function (view) {
162
163
  activeHandle: null,
163
164
  nodePosition: nodePosition
164
165
  });
165
- if (!/%/.test(utils_1.parseStyle(attrs.style).width || '')) {
166
+ if (!/%/.test(utils_2.parseStyle(attrs.style).width || '')) {
166
167
  var $pos = tr.doc.resolve(nodePosition);
167
168
  var wrapper = utils_1.parentNode($pos, function (n) { return n.type.name === 'table_wrapper'; });
168
- if (wrapper && /%/.test(utils_1.parseStyle(wrapper.node.attrs.style).width || '')) {
169
+ if (wrapper && /%/.test(utils_2.parseStyle(wrapper.node.attrs.style).width || '')) {
169
170
  var wrapperAttrs = utils_1.setNodeStyle(wrapper.node.attrs, 'width', '');
170
171
  var wrapperPos = $pos.start(wrapper.depth) - 1;
171
172
  tr.setNodeMarkup(wrapperPos, null, wrapperAttrs);
@@ -4,7 +4,7 @@ exports.TableWrapperView = exports.TableView = void 0;
4
4
  var constants_1 = require("../../config/constants");
5
5
  var schema_1 = require("../../config/schema");
6
6
  var resize_utils_1 = require("./../resize-utils");
7
- var utils_1 = require("./utils");
7
+ var utils_1 = require("./../../utils");
8
8
  var TableView = /** @class */ (function () {
9
9
  function TableView(node, view) {
10
10
  this.node = node;
@@ -75,14 +75,7 @@ var TableView = /** @class */ (function () {
75
75
  var skip = [constants_1.colgroupAttr, constants_1.resizableAttr];
76
76
  for (var attrName in attrs) {
77
77
  if (attrName && skip.indexOf(attrName) === -1) {
78
- var current = table.getAttribute(attrName);
79
- var next = attrs[attrName];
80
- if (next && next !== current) {
81
- table.setAttribute(attrName, next);
82
- }
83
- else if (!next) {
84
- table.removeAttribute(attrName);
85
- }
78
+ utils_1.setAttribute(table, attrName, attrs[attrName]);
86
79
  }
87
80
  }
88
81
  if (/%$/.test(table.style.width)) {
@@ -122,14 +115,7 @@ var TableWrapperView = /** @class */ (function () {
122
115
  TableWrapperView.prototype.setAttributes = function (dom, attrs) {
123
116
  for (var attrName in attrs) {
124
117
  if (attrName) {
125
- var current = dom.getAttribute(attrName);
126
- var next = attrs[attrName];
127
- if (next && next !== current) {
128
- dom.setAttribute(attrName, next);
129
- }
130
- else if (!next) {
131
- dom.removeAttribute(attrName);
132
- }
118
+ utils_1.setAttribute(dom, attrName, attrs[attrName]);
133
119
  }
134
120
  }
135
121
  dom.setAttribute('table', '');
@@ -2,9 +2,6 @@ import { Node, ResolvedPos } from 'prosemirror-model';
2
2
  import { EditorState, PluginKey } from 'prosemirror-state';
3
3
  import { EditorView } from 'prosemirror-view';
4
4
  export declare const reAnyValue: RegExp;
5
- export declare const parseStyle: (styleText: string | null) => {
6
- [x: string]: string;
7
- };
8
5
  export declare function setNodeStyle(nodeAttrs: any, styleType: string, value: string): any;
9
6
  export declare const tableResizeKey: PluginKey<any>;
10
7
  export declare const tableColumnResizeKey: PluginKey<any>;
@@ -1,20 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.edgeCell = exports.parentNode = exports.cellIndexes = exports.domCellAround = exports.getTable = exports.otherResizeHandle = exports.otherResizing = exports.tableRowResizeKey = exports.tableColumnResizeKey = exports.tableResizeKey = exports.setNodeStyle = exports.parseStyle = exports.reAnyValue = void 0;
3
+ exports.edgeCell = exports.parentNode = exports.cellIndexes = exports.domCellAround = exports.getTable = exports.otherResizeHandle = exports.otherResizing = exports.tableRowResizeKey = exports.tableColumnResizeKey = exports.tableResizeKey = exports.setNodeStyle = exports.reAnyValue = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var prosemirror_state_1 = require("prosemirror-state");
6
6
  var prosemirror_tables_1 = require("prosemirror-tables");
7
7
  var utils_1 = require("../../utils");
8
8
  exports.reAnyValue = /^.+$/;
9
- var parseStyle = function (styleText) {
10
- var styles = (styleText || '').split(/\s*;\s*/).filter(Boolean).map(function (s) {
11
- var _a;
12
- var nameValue = s.split(/\s*:\s*/);
13
- return _a = {}, _a[nameValue[0]] = nameValue[1], _a;
14
- }).reduce(function (acc, val) { return (tslib_1.__assign(tslib_1.__assign({}, acc), val)); }, {});
15
- return styles;
16
- };
17
- exports.parseStyle = parseStyle;
18
9
  function setNodeStyle(nodeAttrs, styleType, value) {
19
10
  var attrs;
20
11
  if (new RegExp('[^-]?' + styleType + ':').test(nodeAttrs.style || '')) {
@@ -4,6 +4,7 @@ exports.setHtml = exports.getHtml = exports.parseContent = exports.domToPmDoc =
4
4
  var prosemirror_model_1 = require("prosemirror-model");
5
5
  var prosemirror_state_1 = require("prosemirror-state");
6
6
  var constants_1 = require("./config/constants");
7
+ var DOMSerializer_1 = require("./DOMSerializer");
7
8
  var blockWrappers = [
8
9
  'div', 'ol', 'ul', 'li', 'table', 'tbody', 'thead', 'tfoot', 'caption', 'td', 'th', 'p',
9
10
  'tr', 'col', 'colgroup', 'article', 'main', 'nav', 'header', 'footer', 'aside', 'section'
@@ -132,6 +133,29 @@ var trimWhitespace = function (html, trimAroundTags) {
132
133
  .replace(new RegExp('(<\\/(?:' + tags + ')(?:\\s[^>]*?)?>)\\s*', 'g'), '$1');
133
134
  };
134
135
  exports.trimWhitespace = trimWhitespace;
136
+ var styleAttr = 'data-style';
137
+ var styleReplace = ' ' + styleAttr + '=';
138
+ var reTag = /<[^>]+>/gm;
139
+ var reStyle = /\sstyle=/gm;
140
+ var replacer = function (match) {
141
+ return match.replace(reStyle, styleReplace);
142
+ };
143
+ var replaceStyleAttr = function (html) {
144
+ return html.replace(reTag, replacer);
145
+ };
146
+ var applyStyle = function (styleString, element) {
147
+ return styleString.split(';').filter(function (s) { return s !== ''; }).forEach(function (s) {
148
+ var parts = s.split(':');
149
+ element.style[parts[0].trim()] = parts[1].trim();
150
+ });
151
+ };
152
+ var restoreStyleAttr = function (container) {
153
+ Array.from(container.querySelectorAll('[' + styleAttr + ']')).forEach(function (element) {
154
+ var styleString = element.getAttribute(styleAttr);
155
+ element.removeAttribute(styleAttr);
156
+ applyStyle(styleString, element);
157
+ });
158
+ };
135
159
  /**
136
160
  * Creates a DocumentFragment from the given HTML content.
137
161
  *
@@ -140,21 +164,9 @@ exports.trimWhitespace = trimWhitespace;
140
164
  */
141
165
  var htmlToFragment = function (html) {
142
166
  var template = document.createElement('template');
143
- var fragment;
144
- if ('content' in template) {
145
- template.innerHTML = html;
146
- fragment = template.content;
147
- }
148
- else {
149
- // Internet Explorer
150
- var parsedDocument = new DOMParser().parseFromString(html, 'text/html');
151
- fragment = document.createDocumentFragment();
152
- var dom = parsedDocument.body;
153
- while (dom && dom.firstChild) {
154
- fragment.appendChild(dom.firstChild);
155
- }
156
- }
157
- return fragment;
167
+ template.innerHTML = replaceStyleAttr(html);
168
+ restoreStyleAttr(template.content);
169
+ return template.content;
158
170
  };
159
171
  exports.htmlToFragment = htmlToFragment;
160
172
  /**
@@ -170,7 +182,7 @@ exports.fragmentToHtml = fragmentToHtml;
170
182
  * @returns DocumentFragment
171
183
  */
172
184
  var pmDocToFragment = function (doc) {
173
- var fragment = prosemirror_model_1.DOMSerializer.fromSchema(doc.type.schema).serializeFragment(doc.content);
185
+ var fragment = DOMSerializer_1.DOMSerializer.fromSchema(doc.type.schema).serializeFragment(doc.content);
174
186
  restoreTables(fragment);
175
187
  return fragment;
176
188
  };
@@ -209,9 +221,7 @@ exports.parseContent = parseContent;
209
221
  */
210
222
  var getHtml = function (state) {
211
223
  var fragment = exports.pmDocToFragment(state.doc);
212
- var container = document.createElement('div');
213
- container.appendChild(fragment);
214
- return container.innerHTML;
224
+ return exports.fragmentToHtml(fragment);
215
225
  };
216
226
  exports.getHtml = getHtml;
217
227
  /**
@@ -56,3 +56,7 @@ export declare const expandSelection: (state: any, dispatch: any, options: any)
56
56
  * command(view.state, view.dispatch);
57
57
  */
58
58
  export declare const expandToWordWrap: (command: any, options: any) => (state: any, dispatch: any, _view?: any) => any;
59
+ export declare const parseStyle: (styleText: string | null) => {
60
+ [x: string]: string;
61
+ };
62
+ export declare const setAttribute: (node: HTMLElement, attrName: string, value?: string) => void;
package/dist/npm/utils.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.expandToWordWrap = exports.expandSelection = exports.shallowEqual = exports.indentHtml = exports.selectedLineTextOnly = exports.getNodeFromSelection = exports.getSelectionText = exports.hasSameMarkup = exports.insertNode = exports.findNthParentNodeOfType = exports.canInsert = exports.changeStylesString = void 0;
3
+ exports.setAttribute = exports.parseStyle = exports.expandToWordWrap = exports.expandSelection = exports.shallowEqual = exports.indentHtml = exports.selectedLineTextOnly = exports.getNodeFromSelection = exports.getSelectionText = exports.hasSameMarkup = exports.insertNode = exports.findNthParentNodeOfType = exports.canInsert = exports.changeStylesString = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var prosemirror_model_1 = require("prosemirror-model");
6
6
  var prosemirror_state_1 = require("prosemirror-state");
@@ -247,3 +247,36 @@ var expandToWordWrap = function (command, options) {
247
247
  };
248
248
  };
249
249
  exports.expandToWordWrap = expandToWordWrap;
250
+ var parseStyle = function (styleText) {
251
+ var styles = (styleText || '').split(/\s*;\s*/).filter(Boolean).map(function (s) {
252
+ var _a;
253
+ var nameValue = s.split(/\s*:\s*/);
254
+ return _a = {}, _a[nameValue[0]] = nameValue[1], _a;
255
+ }).reduce(function (acc, val) { return (tslib_1.__assign(tslib_1.__assign({}, acc), val)); }, {});
256
+ return styles;
257
+ };
258
+ exports.parseStyle = parseStyle;
259
+ var setStyleAttr = function (element, styleString) {
260
+ var styles = exports.parseStyle(styleString);
261
+ for (var style in styles) {
262
+ if (style && typeof element.style[style] !== 'undefined') {
263
+ element.style[style] = styles[style];
264
+ }
265
+ }
266
+ };
267
+ var setAttribute = function (node, attrName, value) {
268
+ var current = node.getAttribute(attrName);
269
+ if (value !== undefined && value !== current) {
270
+ if (attrName === 'style') {
271
+ node.removeAttribute(attrName);
272
+ setStyleAttr(node, value);
273
+ }
274
+ else {
275
+ node.setAttribute(attrName, value);
276
+ }
277
+ }
278
+ else if (value === undefined) {
279
+ node.removeAttribute(attrName);
280
+ }
281
+ };
282
+ exports.setAttribute = setAttribute;