slate-angular 17.4.3 → 17.4.4

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.
@@ -1,8 +1,8 @@
1
- import { Editor, Node, Transforms, Range, Path, Element } from 'slate';
2
- import { EDITOR_TO_ON_CHANGE, NODE_TO_KEY, isDOMText, getPlainText } from '../utils';
3
- import { AngularEditor } from './angular-editor';
4
- import { findCurrentLineRange } from '../utils/lines';
1
+ import { Editor, Element, Node, Path, Range, Transforms } from 'slate';
2
+ import { completeTable, EDITOR_TO_ON_CHANGE, getPlainText, isDOMText, isInvalidTable, NODE_TO_KEY } from '../utils';
5
3
  import { getClipboardData, setClipboardData } from '../utils/clipboard/clipboard';
4
+ import { findCurrentLineRange } from '../utils/lines';
5
+ import { AngularEditor } from './angular-editor';
6
6
  export const withAngular = (editor, clipboardFormatKey = 'x-slate-fragment') => {
7
7
  const e = editor;
8
8
  const { apply, onChange, deleteBackward } = e;
@@ -142,10 +142,16 @@ export const withAngular = (editor, clipboardFormatKey = 'x-slate-fragment') =>
142
142
  const fragment = e.getFragment();
143
143
  // Add the content to a <div> so that we can get its inner HTML.
144
144
  const div = contents.ownerDocument.createElement('div');
145
+ const attachWrapper = document.createElement('div');
146
+ const elements = Array.from(contents.children);
147
+ if (isInvalidTable(elements)) {
148
+ contents = completeTable(contents.cloneNode(true));
149
+ }
150
+ attachWrapper.appendChild(attach);
145
151
  div.appendChild(contents);
146
152
  div.setAttribute('hidden', 'true');
147
153
  contents.ownerDocument.body.appendChild(div);
148
- setClipboardData({ text: getPlainText(div), elements: fragment }, div, attach, dataTransfer);
154
+ setClipboardData({ text: getPlainText(div), elements: fragment }, div, attachWrapper, dataTransfer);
149
155
  contents.ownerDocument.body.removeChild(div);
150
156
  };
151
157
  e.deleteCutData = () => {
@@ -208,4 +214,4 @@ export const withAngular = (editor, clipboardFormatKey = 'x-slate-fragment') =>
208
214
  };
209
215
  return e;
210
216
  };
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1hbmd1bGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvd2l0aC1hbmd1bGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFzQixPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDM0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFPLE1BQU0sVUFBVSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVsRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBbUIsTUFBUyxFQUFFLGtCQUFrQixHQUFHLGtCQUFrQixFQUFFLEVBQUU7SUFDaEcsTUFBTSxDQUFDLEdBQUcsTUFBMkIsQ0FBQztJQUN0QyxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFFOUMsQ0FBQyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsRUFBRTtRQUN0QixJQUFJLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUNsQixPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDMUQsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtnQkFDMUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxF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QyxXQUFXLENBQUMsQ0FBQztRQUN6QyxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGLE9BQU8sQ0FBQyxDQUFDO0FBQ2IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBOb2RlLCBUcmFuc2Zvcm1zLCBSYW5nZSwgUGF0aCwgT3BlcmF0aW9uLCBQYXRoUmVmLCBFbGVtZW50IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgRURJVE9SX1RPX09OX0NIQU5HRSwgTk9ERV9UT19LRVksIGlzRE9NVGV4dCwgZ2V0UGxhaW5UZXh0LCBLZXkgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yIH0gZnJvbSAnLi9hbmd1bGFyLWVkaXRvcic7XG5pbXBvcnQgeyBTbGF0ZUVycm9yIH0gZnJvbSAnLi4vdHlwZXMvZXJyb3InO1xuaW1wb3J0IHsgZmluZEN1cnJlbnRMaW5lUmFuZ2UgfSBmcm9tICcuLi91dGlscy9saW5lcyc7XG5pbXBvcnQgeyBPcmlnaW5FdmVudCB9IGZyb20gJy4uL3R5cGVzL2NsaXBib2FyZCc7XG5pbXBvcnQgeyBnZXRDbGlwYm9hcmREYXRhLCBzZXRDbGlwYm9hcmREYXRhIH0gZnJvbSAnLi4vdXRpbHMvY2xpcGJvYXJkL2NsaXBib2FyZCc7XG5cbmV4cG9ydCBjb25zdCB3aXRoQW5ndWxhciA9IDxUIGV4dGVuZHMgRWRpdG9yPihlZGl0b3I6IFQsIGNsaXBib2FyZEZvcm1hdEtleSA9ICd4LXNsYXRlLWZyYWdtZW50JykgPT4ge1xuICAgIGNvbnN0IGUgPSBlZGl0b3IgYXMgVCAmIEFuZ3VsYXJFZGl0b3I7XG4gICAgY29uc3QgeyBhcHBseSwgb25DaGFuZ2UsIGRlbGV0ZUJhY2t3YXJkIH0gPSBlO1xuXG4gICAgZS5kZWxldGVCYWNrd2FyZCA9IHVuaXQgPT4ge1xuICAgICAgICBpZiAodW5pdCAhPT0gJ2xpbmUnKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVsZXRlQmFja3dhcmQodW5pdCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZWRpdG9yLnNlbGVjdGlvbiAmJiBSYW5nZS5pc0NvbGxhcHNlZChlZGl0b3Iuc2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50QmxvY2tFbnRyeSA9IEVkaXRvci5hYm92ZShlZGl0b3IsIHtcbiAgICAgICAgICAgICAgICBtYXRjaDogbiA9PiBFbGVtZW50LmlzRWxlbWVudChuKSAmJiBFZGl0b3IuaXNCbG9jayhlZGl0b3IsIG4pLFxuICAgICAgICAgICAgICAgIGF0OiBlZGl0b3Iuc2VsZWN0aW9uXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKHBhcmVudEJsb2NrRW50cnkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBbLCBwYXJlbnRCbG9ja1BhdGhdID0gcGFyZW50QmxvY2tFbnRyeTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnRFbGVtZW50UmFuZ2UgPSBFZGl0b3IucmFuZ2UoZWRpdG9yLCBwYXJlbnRCbG9ja1BhdGgsIGVkaXRvci5zZWxlY3Rpb24uYW5jaG9yKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRMaW5lUmFuZ2UgPSBmaW5kQ3VycmVudExpbmVSYW5nZShlLCBwYXJlbnRFbGVtZW50UmFuZ2UpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFSYW5nZS5pc0NvbGxhcHNlZChjdXJyZW50TGluZVJhbmdlKSkge1xuICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLmRlbGV0ZShlZGl0b3IsIHsgYXQ6IGN1cnJlbnRMaW5lUmFuZ2UgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIGUuYXBwbHkgPSAob3A6IE9wZXJhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBtYXRjaGVzOiBbUGF0aCB8IFBhdGhSZWYsIEtleV1bXSA9IFtdO1xuXG4gICAgICAgIHN3aXRjaCAob3AudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnaW5zZXJ0X3RleHQnOlxuICAgICAgICAgICAgY2FzZSAncmVtb3ZlX3RleHQnOlxuICAgICAgICAgICAgY2FzZSAnc2V0X25vZGUnOiB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbm9kZSwgcGF0aF0gb2YgRWRpdG9yLmxldmVscyhlLCB7IGF0OiBvcC5wYXRoIH0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IEFuZ3VsYXJFZGl0b3IuZmluZEtleShlLCBub2RlKTtcbiAgICAgICAgICAgICAgICAgICAgbWF0Y2hlcy5wdXNoKFtwYXRoLCBrZXldKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FzZSAnaW5zZXJ0X25vZGUnOlxuICAgICAgICAgICAgY2FzZSAncmVtb3ZlX25vZGUnOlxuICAgICAgICAgICAgY2FzZSAnbWVyZ2Vfbm9kZSc6XG4gICAgICAgICAgICBjYXNlICdzcGxpdF9ub2RlJzoge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW25vZGUsIHBhdGhdIG9mIEVkaXRvci5sZXZlbHMoZSwge1xuICAgICAgICAgICAgICAgICAgICBhdDogUGF0aC5wYXJlbnQob3AucGF0aClcbiAgICAgICAgICAgICAgICB9KSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBBbmd1bGFyRWRpdG9yLmZpbmRLZXkoZSwgbm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoZXMucHVzaChbcGF0aCwga2V5XSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNhc2UgJ21vdmVfbm9kZSc6IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb21tb25QYXRoID0gUGF0aC5jb21tb24oUGF0aC5wYXJlbnQob3AucGF0aCksIFBhdGgucGFyZW50KG9wLm5ld1BhdGgpKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtub2RlLCBwYXRoXSBvZiBFZGl0b3IubGV2ZWxzKGUsIHtcbiAgICAgICAgICAgICAgICAgICAgYXQ6IFBhdGgucGFyZW50KG9wLnBhdGgpXG4gICAgICAgICAgICAgICAgfSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gQW5ndWxhckVkaXRvci5maW5kS2V5KGUsIG5vZGUpO1xuICAgICAgICAgICAgICAgICAgICBtYXRjaGVzLnB1c2goW0VkaXRvci5wYXRoUmVmKGVkaXRvciwgcGF0aCksIGtleV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtub2RlLCBwYXRoXSBvZiBFZGl0b3IubGV2ZWxzKGUsIHtcbiAgICAgICAgICAgICAgICAgICAgYXQ6IFBhdGgucGFyZW50KG9wLm5ld1BhdGgpXG4gICAgICAgICAgICAgICAgfSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhdGgubGVuZ3RoID4gY29tbW9uUGF0aC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IEFuZ3VsYXJFZGl0b3IuZmluZEtleShlLCBub2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoZXMucHVzaChbRWRpdG9yLnBhdGhSZWYoZWRpdG9yLCBwYXRoKSwga2V5XSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBhcHBseShvcCk7XG5cbiAgICAgICAgZm9yIChjb25zdCBbc291cmNlLCBrZXldIG9mIG1hdGNoZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IFtub2RlXSA9IEVkaXRvci5ub2RlKGUsIFBhdGguaXNQYXRoKHNvdXJjZSkgPyBzb3VyY2UgOiBzb3VyY2UuY3VycmVudCk7XG4gICAgICAgICAgICBOT0RFX1RPX0tFWS5zZXQobm9kZSwga2V5KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBlLm9uQ2hhbmdlID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBvbkNvbnRleHRDaGFuZ2UgPSBFRElUT1JfVE9fT05fQ0hBTkdFLmdldChlKTtcblxuICAgICAgICBpZiAob25Db250ZXh0Q2hhbmdlKSB7XG4gICAgICAgICAgICBvbkNvbnRleHRDaGFuZ2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG9uQ2hhbmdlKCk7XG4gICAgfTtcblxuICAgIGUuc2V0RnJhZ21lbnREYXRhID0gKGRhdGFUcmFuc2Zlcj86IFBpY2s8RGF0YVRyYW5zZmVyLCAnZ2V0RGF0YScgfCAnc2V0RGF0YSc+LCBvcmlnaW5FdmVudD86IE9yaWdpbkV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgc2VsZWN0aW9uIH0gPSBlO1xuXG4gICAgICAgIGlmICghc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSBSYW5nZS5lZGdlcyhzZWxlY3Rpb24pO1xuICAgICAgICBjb25zdCBzdGFydFZvaWQgPSBFZGl0b3Iudm9pZChlLCB7IGF0OiBzdGFydC5wYXRoIH0pO1xuICAgICAgICBjb25zdCBlbmRWb2lkID0gRWRpdG9yLnZvaWQoZSwgeyBhdDogZW5kLnBhdGggfSk7XG5cbiAgICAgICAgaWYgKFJhbmdlLmlzQ29sbGFwc2VkKHNlbGVjdGlvbikgJiYgIXN0YXJ0Vm9pZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ3JlYXRlIGEgZmFrZSBzZWxlY3Rpb24gc28gdGhhdCB3ZSBjYW4gYWRkIGEgQmFzZTY0LWVuY29kZWQgY29weSBvZiB0aGVcbiAgICAgICAgLy8gZnJhZ21lbnQgdG8gdGhlIEhUTUwsIHRvIGRlY29kZSBvbiBmdXR1cmUgcGFzdGVzLlxuICAgICAgICBjb25zdCBkb21SYW5nZSA9IEFuZ3VsYXJFZGl0b3IudG9ET01SYW5nZShlLCBzZWxlY3Rpb24pO1xuICAgICAgICBsZXQgY29udGVudHMgPSBkb21SYW5nZS5jbG9uZUNvbnRlbnRzKCk7XG4gICAgICAgIGxldCBhdHRhY2ggPSBjb250ZW50cy5jaGlsZE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgIC8vIE1ha2Ugc3VyZSBhdHRhY2ggaXMgbm9uLWVtcHR5LCBzaW5jZSBlbXB0eSBub2RlcyB3aWxsIG5vdCBnZXQgY29waWVkLlxuICAgICAgICBjb25zdCBjb250ZW50c0FycmF5ID0gQXJyYXkuZnJvbShjb250ZW50cy5jaGlsZHJlbik7XG4gICAgICAgIGNvbnRlbnRzQXJyYXkuZm9yRWFjaChub2RlID0+IHtcbiAgICAgICAgICAgIGlmIChub2RlLnRleHRDb250ZW50ICYmIG5vZGUudGV4dENvbnRlbnQudHJpbSgpICE9PSAnJykge1xuICAgICAgICAgICAgICAgIGF0dGFjaCA9IG5vZGUgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIENPTVBBVDogSWYgdGhlIGVuZCBub2RlIGlzIGEgdm9pZCBub2RlLCB3ZSBuZWVkIHRvIG1vdmUgdGhlIGVuZCBvZiB0aGVcbiAgICAgICAgLy8gcmFuZ2UgZnJvbSB0aGUgdm9pZCBub2RlJ3Mgc3BhY2VyIHNwYW4sIHRvIHRoZSBlbmQgb2YgdGhlIHZvaWQgbm9kZSdzXG4gICAgICAgIC8vIGNvbnRlbnQsIHNpbmNlIHRoZSBzcGFjZXIgaXMgYmVmb3JlIHZvaWQncyBjb250ZW50IGluIHRoZSBET00uXG4gICAgICAgIGlmIChlbmRWb2lkKSB7XG4gICAgICAgICAgICBjb25zdCBbdm9pZE5vZGVdID0gZW5kVm9pZDtcbiAgICAgICAgICAgIGNvbnN0IHIgPSBkb21SYW5nZS5jbG9uZVJhbmdlKCk7XG4gICAgICAgICAgICBjb25zdCBkb21Ob2RlID0gQW5ndWxhckVkaXRvci50b0RPTU5vZGUoZSwgdm9pZE5vZGUpO1xuICAgICAgICAgICAgci5zZXRFbmRBZnRlcihkb21Ob2RlKTtcbiAgICAgICAgICAgIGNvbnRlbnRzID0gci5jbG9uZUNvbnRlbnRzKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDT01QQVQ6IElmIHRoZSBzdGFydCBub2RlIGlzIGEgdm9pZCBub2RlLCB3ZSBuZWVkIHRvIGF0dGFjaCB0aGUgZW5jb2RlZFxuICAgICAgICAvLyBmcmFnbWVudCB0byB0aGUgdm9pZCBub2RlJ3MgY29udGVudCBub2RlIGluc3RlYWQgb2YgdGhlIHNwYWNlciwgYmVjYXVzZVxuICAgICAgICAvLyBhdHRhY2hpbmcgaXQgdG8gZW1wdHkgYDxkaXY+LzxzcGFuPmAgbm9kZXMgd2lsbCBlbmQgdXAgaGF2aW5nIGl0IGVyYXNlZCBieVxuICAgICAgICAvLyBtb3N0IGJyb3dzZXJzLiAoMjAxOC8wNC8yNylcbiAgICAgICAgaWYgKHN0YXJ0Vm9pZCkge1xuICAgICAgICAgICAgYXR0YWNoID0gY29udGVudHMucXVlcnlTZWxlY3RvcignW2RhdGEtc2xhdGUtc3BhY2VyXScpISBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlbW92ZSBhbnkgemVyby13aWR0aCBzcGFjZSBzcGFucyBmcm9tIHRoZSBjbG9uZWQgRE9NIHNvIHRoYXQgdGhleSBkb24ndFxuICAgICAgICAvLyBzaG93IHVwIGVsc2V3aGVyZSB3aGVuIHBhc3RlZC5cbiAgICAgICAgQXJyYXkuZnJvbShjb250ZW50cy5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1zbGF0ZS16ZXJvLXdpZHRoXScpKS5mb3JFYWNoKHp3ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlzTmV3bGluZSA9IHp3LmdldEF0dHJpYnV0ZSgnZGF0YS1zbGF0ZS16ZXJvLXdpZHRoJykgPT09ICduJztcbiAgICAgICAgICAgIHp3LnRleHRDb250ZW50ID0gaXNOZXdsaW5lID8gJ1xcbicgOiAnJztcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gU2V0IGEgYGRhdGEtc2xhdGUtZnJhZ21lbnRgIGF0dHJpYnV0ZSBvbiBhIG5vbi1lbXB0eSBub2RlLCBzbyBpdCBzaG93cyB1cFxuICAgICAgICAvLyBpbiB0aGUgSFRNTCwgYW5kIGNhbiBiZSB1c2VkIGZvciBpbnRyYS1TbGF0ZSBwYXN0aW5nLiBJZiBpdCdzIGEgdGV4dFxuICAgICAgICAvLyBub2RlLCB3cmFwIGl0IGluIGEgYDxzcGFuPmAgc28gd2UgaGF2ZSBzb21ldGhpbmcgdG8gc2V0IGFuIGF0dHJpYnV0ZSBvbi5cbiAgICAgICAgaWYgKGlzRE9NVGV4dChhdHRhY2gpKSB7XG4gICAgICAgICAgICBjb25zdCBzcGFuID0gYXR0YWNoLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICAgICAgLy8gQ09NUEFUOiBJbiBDaHJvbWUgYW5kIFNhZmFyaSwgaWYgd2UgZG9uJ3QgYWRkIHRoZSBgd2hpdGUtc3BhY2VgIHN0eWxlXG4gICAgICAgICAgICAvLyB0aGVuIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHNwYWNlcyB3aWxsIGJlIGlnbm9yZWQuICgyMDE3LzA5LzIxKVxuICAgICAgICAgICAgc3Bhbi5zdHlsZS53aGl0ZVNwYWNlID0gJ3ByZSc7XG4gICAgICAgICAgICBzcGFuLmFwcGVuZENoaWxkKGF0dGFjaCk7XG4gICAgICAgICAgICBjb250ZW50cy5hcHBlbmRDaGlsZChzcGFuKTtcbiAgICAgICAgICAgIGF0dGFjaCA9IHNwYW47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmcmFnbWVudCA9IGUuZ2V0RnJhZ21lbnQoKTtcblxuICAgICAgICAvLyBBZGQgdGhlIGNvbnRlbnQgdG8gYSA8ZGl2PiBzbyB0aGF0IHdlIGNhbiBnZXQgaXRzIGlubmVyIEhUTUwuXG4gICAgICAgIGNvbnN0IGRpdiA9IGNvbnRlbnRzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIGRpdi5hcHBlbmRDaGlsZChjb250ZW50cyk7XG4gICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoJ2hpZGRlbicsICd0cnVlJyk7XG4gICAgICAgIGNvbnRlbnRzLm93bmVyRG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaXYpO1xuICAgICAgICBzZXRDbGlwYm9hcmREYXRhKHsgdGV4dDogZ2V0UGxhaW5UZXh0KGRpdiksIGVsZW1lbnRzOiBmcmFnbWVudCBhcyBFbGVtZW50W10gfSwgZGl2LCBhdHRhY2gsIGRhdGFUcmFuc2Zlcik7XG4gICAgICAgIGNvbnRlbnRzLm93bmVyRG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkaXYpO1xuICAgIH07XG5cbiAgICBlLmRlbGV0ZUN1dERhdGEgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgc2VsZWN0aW9uIH0gPSBlZGl0b3I7XG4gICAgICAgIGlmIChzZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIGlmIChSYW5nZS5pc0V4cGFuZGVkKHNlbGVjdGlvbikpIHtcbiAgICAgICAgICAgICAgICBFZGl0b3IuZGVsZXRlRnJhZ21lbnQoZWRpdG9yKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IE5vZGUucGFyZW50KGVkaXRvciwgc2VsZWN0aW9uLmFuY2hvci5wYXRoKTtcbiAgICAgICAgICAgICAgICBpZiAoRWxlbWVudC5pc0VsZW1lbnQobm9kZSkgJiYgRWRpdG9yLmlzVm9pZChlZGl0b3IsIG5vZGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuZGVsZXRlKGVkaXRvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIGUuaW5zZXJ0RGF0YSA9IGFzeW5jIChkYXRhOiBEYXRhVHJhbnNmZXIpID0+IHtcbiAgICAgICAgaWYgKCEoYXdhaXQgZS5pbnNlcnRGcmFnbWVudERhdGEoZGF0YSkpKSB7XG4gICAgICAgICAgICBlLmluc2VydFRleHREYXRhKGRhdGEpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGUuaW5zZXJ0RnJhZ21lbnREYXRhID0gYXN5bmMgKGRhdGE6IERhdGFUcmFuc2Zlcik6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogQ2hlY2tpbmcgY29waWVkIGZyYWdtZW50IGZyb20gYXBwbGljYXRpb24veC1zbGF0ZS1mcmFnbWVudCBvciBkYXRhLXNsYXRlLWZyYWdtZW50XG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBjbGlwYm9hcmREYXRhID0gYXdhaXQgZ2V0Q2xpcGJvYXJkRGF0YShkYXRhKTtcbiAgICAgICAgaWYgKGNsaXBib2FyZERhdGEgJiYgY2xpcGJvYXJkRGF0YS5lbGVtZW50cykge1xuICAgICAgICAgICAgZS5pbnNlcnRGcmFnbWVudChjbGlwYm9hcmREYXRhLmVsZW1lbnRzKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuXG4gICAgZS5pbnNlcnRUZXh0RGF0YSA9IGFzeW5jIChkYXRhOiBEYXRhVHJhbnNmZXIpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICAgICAgY29uc3QgY2xpcGJvYXJkRGF0YSA9IGF3YWl0IGdldENsaXBib2FyZERhdGEoZGF0YSk7XG5cbiAgICAgICAgaWYgKGNsaXBib2FyZERhdGEgJiYgY2xpcGJvYXJkRGF0YS50ZXh0KSB7XG4gICAgICAgICAgICBjb25zdCBsaW5lcyA9IGNsaXBib2FyZERhdGEudGV4dC5zcGxpdCgvXFxyXFxufFxccnxcXG4vKTtcbiAgICAgICAgICAgIGxldCBzcGxpdCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3BsaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zcGxpdE5vZGVzKGUsIHsgYWx3YXlzOiB0cnVlIH0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGUuaW5zZXJ0VGV4dChsaW5lKTtcbiAgICAgICAgICAgICAgICBzcGxpdCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcblxuICAgIGUub25LZXlkb3duID0gKCkgPT4ge307XG5cbiAgICBlLm9uQ2xpY2sgPSAoKSA9PiB7fTtcblxuICAgIGUuaXNCbG9ja0NhcmQgPSBlbGVtZW50ID0+IGZhbHNlO1xuXG4gICAgZS5pc0V4cGFuZGVkID0gZWxlbWVudCA9PiB0cnVlO1xuXG4gICAgZS5vbkVycm9yID0gKGVycm9yRGF0YTogU2xhdGVFcnJvcikgPT4ge1xuICAgICAgICBpZiAoZXJyb3JEYXRhLm5hdGl2ZUVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yRGF0YS5uYXRpdmVFcnJvcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yRGF0YSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIGU7XG59O1xuIl19
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1hbmd1bGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvd2l0aC1hbmd1bGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBYSxJQUFJLEVBQVcsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUczRixPQUFPLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFPLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6SCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQW1CLE1BQVMsRUFBRSxrQkFBa0IsR0FBRyxrQkFBa0IsRUFBRSxFQUFFO0lBQ2hHLE1BQU0sQ0FBQyxHQUFHLE1BQTJCLENBQUM7SUFDdEMsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRTlDLENBQUMsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEVBQUU7UUFDdEIsSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDbEIsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzFELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7Z0JBQzFDLEtB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RUFBRSxHQUFFLENBQUMsQ0FBQztJQUV2QixDQUFDLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUVyQixDQUFDLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO0lBRWpDLENBQUMsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFFL0IsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLFNBQXFCLEVBQUUsRUFBRTtRQUNsQyxJQUFJLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN4QixPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6QyxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGLE9BQU8sQ0FBQyxDQUFDO0FBQ2IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBFbGVtZW50LCBOb2RlLCBPcGVyYXRpb24sIFBhdGgsIFBhdGhSZWYsIFJhbmdlLCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgT3JpZ2luRXZlbnQgfSBmcm9tICcuLi90eXBlcy9jbGlwYm9hcmQnO1xuaW1wb3J0IHsgU2xhdGVFcnJvciB9IGZyb20gJy4uL3R5cGVzL2Vycm9yJztcbmltcG9ydCB7IGNvbXBsZXRlVGFibGUsIEVESVRPUl9UT19PTl9DSEFOR0UsIGdldFBsYWluVGV4dCwgaXNET01UZXh0LCBpc0ludmFsaWRUYWJsZSwgS2V5LCBOT0RFX1RPX0tFWSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IGdldENsaXBib2FyZERhdGEsIHNldENsaXBib2FyZERhdGEgfSBmcm9tICcuLi91dGlscy9jbGlwYm9hcmQvY2xpcGJvYXJkJztcbmltcG9ydCB7IGZpbmRDdXJyZW50TGluZVJhbmdlIH0gZnJvbSAnLi4vdXRpbHMvbGluZXMnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciB9IGZyb20gJy4vYW5ndWxhci1lZGl0b3InO1xuXG5leHBvcnQgY29uc3Qgd2l0aEFuZ3VsYXIgPSA8VCBleHRlbmRzIEVkaXRvcj4oZWRpdG9yOiBULCBjbGlwYm9hcmRGb3JtYXRLZXkgPSAneC1zbGF0ZS1mcmFnbWVudCcpID0+IHtcbiAgICBjb25zdCBlID0gZWRpdG9yIGFzIFQgJiBBbmd1bGFyRWRpdG9yO1xuICAgIGNvbnN0IHsgYXBwbHksIG9uQ2hhbmdlLCBkZWxldGVCYWNrd2FyZCB9ID0gZTtcblxuICAgIGUuZGVsZXRlQmFja3dhcmQgPSB1bml0ID0+IHtcbiAgICAgICAgaWYgKHVuaXQgIT09ICdsaW5lJykge1xuICAgICAgICAgICAgcmV0dXJuIGRlbGV0ZUJhY2t3YXJkKHVuaXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVkaXRvci5zZWxlY3Rpb24gJiYgUmFuZ2UuaXNDb2xsYXBzZWQoZWRpdG9yLnNlbGVjdGlvbikpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudEJsb2NrRW50cnkgPSBFZGl0b3IuYWJvdmUoZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgbWF0Y2g6IG4gPT4gRWxlbWVudC5pc0VsZW1lbnQobikgJiYgRWRpdG9yLmlzQmxvY2soZWRpdG9yLCBuKSxcbiAgICAgICAgICAgICAgICBhdDogZWRpdG9yLnNlbGVjdGlvblxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChwYXJlbnRCbG9ja0VudHJ5KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgWywgcGFyZW50QmxvY2tQYXRoXSA9IHBhcmVudEJsb2NrRW50cnk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50RWxlbWVudFJhbmdlID0gRWRpdG9yLnJhbmdlKGVkaXRvciwgcGFyZW50QmxvY2tQYXRoLCBlZGl0b3Iuc2VsZWN0aW9uLmFuY2hvcik7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50TGluZVJhbmdlID0gZmluZEN1cnJlbnRMaW5lUmFuZ2UoZSwgcGFyZW50RWxlbWVudFJhbmdlKTtcblxuICAgICAgICAgICAgICAgIGlmICghUmFuZ2UuaXNDb2xsYXBzZWQoY3VycmVudExpbmVSYW5nZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5kZWxldGUoZWRpdG9yLCB7IGF0OiBjdXJyZW50TGluZVJhbmdlIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBlLmFwcGx5ID0gKG9wOiBPcGVyYXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgbWF0Y2hlczogW1BhdGggfCBQYXRoUmVmLCBLZXldW10gPSBbXTtcblxuICAgICAgICBzd2l0Y2ggKG9wLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2luc2VydF90ZXh0JzpcbiAgICAgICAgICAgIGNhc2UgJ3JlbW92ZV90ZXh0JzpcbiAgICAgICAgICAgIGNhc2UgJ3NldF9ub2RlJzoge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW25vZGUsIHBhdGhdIG9mIEVkaXRvci5sZXZlbHMoZSwgeyBhdDogb3AucGF0aCB9KSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBBbmd1bGFyRWRpdG9yLmZpbmRLZXkoZSwgbm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoZXMucHVzaChbcGF0aCwga2V5XSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNhc2UgJ2luc2VydF9ub2RlJzpcbiAgICAgICAgICAgIGNhc2UgJ3JlbW92ZV9ub2RlJzpcbiAgICAgICAgICAgIGNhc2UgJ21lcmdlX25vZGUnOlxuICAgICAgICAgICAgY2FzZSAnc3BsaXRfbm9kZSc6IHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtub2RlLCBwYXRoXSBvZiBFZGl0b3IubGV2ZWxzKGUsIHtcbiAgICAgICAgICAgICAgICAgICAgYXQ6IFBhdGgucGFyZW50KG9wLnBhdGgpXG4gICAgICAgICAgICAgICAgfSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gQW5ndWxhckVkaXRvci5maW5kS2V5KGUsIG5vZGUpO1xuICAgICAgICAgICAgICAgICAgICBtYXRjaGVzLnB1c2goW3BhdGgsIGtleV0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjYXNlICdtb3ZlX25vZGUnOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29tbW9uUGF0aCA9IFBhdGguY29tbW9uKFBhdGgucGFyZW50KG9wLnBhdGgpLCBQYXRoLnBhcmVudChvcC5uZXdQYXRoKSk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbm9kZSwgcGF0aF0gb2YgRWRpdG9yLmxldmVscyhlLCB7XG4gICAgICAgICAgICAgICAgICAgIGF0OiBQYXRoLnBhcmVudChvcC5wYXRoKVxuICAgICAgICAgICAgICAgIH0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IEFuZ3VsYXJFZGl0b3IuZmluZEtleShlLCBub2RlKTtcbiAgICAgICAgICAgICAgICAgICAgbWF0Y2hlcy5wdXNoKFtFZGl0b3IucGF0aFJlZihlZGl0b3IsIHBhdGgpLCBrZXldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBbbm9kZSwgcGF0aF0gb2YgRWRpdG9yLmxldmVscyhlLCB7XG4gICAgICAgICAgICAgICAgICAgIGF0OiBQYXRoLnBhcmVudChvcC5uZXdQYXRoKVxuICAgICAgICAgICAgICAgIH0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXRoLmxlbmd0aCA+IGNvbW1vblBhdGgubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBBbmd1bGFyRWRpdG9yLmZpbmRLZXkoZSwgbm9kZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGVzLnB1c2goW0VkaXRvci5wYXRoUmVmKGVkaXRvciwgcGF0aCksIGtleV0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYXBwbHkob3ApO1xuXG4gICAgICAgIGZvciAoY29uc3QgW3NvdXJjZSwga2V5XSBvZiBtYXRjaGVzKSB7XG4gICAgICAgICAgICBjb25zdCBbbm9kZV0gPSBFZGl0b3Iubm9kZShlLCBQYXRoLmlzUGF0aChzb3VyY2UpID8gc291cmNlIDogc291cmNlLmN1cnJlbnQpO1xuICAgICAgICAgICAgTk9ERV9UT19LRVkuc2V0KG5vZGUsIGtleSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZS5vbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgICAgY29uc3Qgb25Db250ZXh0Q2hhbmdlID0gRURJVE9SX1RPX09OX0NIQU5HRS5nZXQoZSk7XG5cbiAgICAgICAgaWYgKG9uQ29udGV4dENoYW5nZSkge1xuICAgICAgICAgICAgb25Db250ZXh0Q2hhbmdlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBvbkNoYW5nZSgpO1xuICAgIH07XG5cbiAgICBlLnNldEZyYWdtZW50RGF0YSA9IChkYXRhVHJhbnNmZXI/OiBQaWNrPERhdGFUcmFuc2ZlciwgJ2dldERhdGEnIHwgJ3NldERhdGEnPiwgb3JpZ2luRXZlbnQ/OiBPcmlnaW5FdmVudCkgPT4ge1xuICAgICAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gZTtcblxuICAgICAgICBpZiAoIXNlbGVjdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgW3N0YXJ0LCBlbmRdID0gUmFuZ2UuZWRnZXMoc2VsZWN0aW9uKTtcbiAgICAgICAgY29uc3Qgc3RhcnRWb2lkID0gRWRpdG9yLnZvaWQoZSwgeyBhdDogc3RhcnQucGF0aCB9KTtcbiAgICAgICAgY29uc3QgZW5kVm9pZCA9IEVkaXRvci52b2lkKGUsIHsgYXQ6IGVuZC5wYXRoIH0pO1xuXG4gICAgICAgIGlmIChSYW5nZS5pc0NvbGxhcHNlZChzZWxlY3Rpb24pICYmICFzdGFydFZvaWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENyZWF0ZSBhIGZha2Ugc2VsZWN0aW9uIHNvIHRoYXQgd2UgY2FuIGFkZCBhIEJhc2U2NC1lbmNvZGVkIGNvcHkgb2YgdGhlXG4gICAgICAgIC8vIGZyYWdtZW50IHRvIHRoZSBIVE1MLCB0byBkZWNvZGUgb24gZnV0dXJlIHBhc3Rlcy5cbiAgICAgICAgY29uc3QgZG9tUmFuZ2UgPSBBbmd1bGFyRWRpdG9yLnRvRE9NUmFuZ2UoZSwgc2VsZWN0aW9uKTtcbiAgICAgICAgbGV0IGNvbnRlbnRzID0gZG9tUmFuZ2UuY2xvbmVDb250ZW50cygpO1xuICAgICAgICBsZXQgYXR0YWNoID0gY29udGVudHMuY2hpbGROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICAvLyBNYWtlIHN1cmUgYXR0YWNoIGlzIG5vbi1lbXB0eSwgc2luY2UgZW1wdHkgbm9kZXMgd2lsbCBub3QgZ2V0IGNvcGllZC5cbiAgICAgICAgY29uc3QgY29udGVudHNBcnJheSA9IEFycmF5LmZyb20oY29udGVudHMuY2hpbGRyZW4pO1xuICAgICAgICBjb250ZW50c0FycmF5LmZvckVhY2gobm9kZSA9PiB7XG4gICAgICAgICAgICBpZiAobm9kZS50ZXh0Q29udGVudCAmJiBub2RlLnRleHRDb250ZW50LnRyaW0oKSAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICBhdHRhY2ggPSBub2RlIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBDT01QQVQ6IElmIHRoZSBlbmQgbm9kZSBpcyBhIHZvaWQgbm9kZSwgd2UgbmVlZCB0byBtb3ZlIHRoZSBlbmQgb2YgdGhlXG4gICAgICAgIC8vIHJhbmdlIGZyb20gdGhlIHZvaWQgbm9kZSdzIHNwYWNlciBzcGFuLCB0byB0aGUgZW5kIG9mIHRoZSB2b2lkIG5vZGUnc1xuICAgICAgICAvLyBjb250ZW50LCBzaW5jZSB0aGUgc3BhY2VyIGlzIGJlZm9yZSB2b2lkJ3MgY29udGVudCBpbiB0aGUgRE9NLlxuICAgICAgICBpZiAoZW5kVm9pZCkge1xuICAgICAgICAgICAgY29uc3QgW3ZvaWROb2RlXSA9IGVuZFZvaWQ7XG4gICAgICAgICAgICBjb25zdCByID0gZG9tUmFuZ2UuY2xvbmVSYW5nZSgpO1xuICAgICAgICAgICAgY29uc3QgZG9tTm9kZSA9IEFuZ3VsYXJFZGl0b3IudG9ET01Ob2RlKGUsIHZvaWROb2RlKTtcbiAgICAgICAgICAgIHIuc2V0RW5kQWZ0ZXIoZG9tTm9kZSk7XG4gICAgICAgICAgICBjb250ZW50cyA9IHIuY2xvbmVDb250ZW50cygpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ09NUEFUOiBJZiB0aGUgc3RhcnQgbm9kZSBpcyBhIHZvaWQgbm9kZSwgd2UgbmVlZCB0byBhdHRhY2ggdGhlIGVuY29kZWRcbiAgICAgICAgLy8gZnJhZ21lbnQgdG8gdGhlIHZvaWQgbm9kZSdzIGNvbnRlbnQgbm9kZSBpbnN0ZWFkIG9mIHRoZSBzcGFjZXIsIGJlY2F1c2VcbiAgICAgICAgLy8gYXR0YWNoaW5nIGl0IHRvIGVtcHR5IGA8ZGl2Pi88c3Bhbj5gIG5vZGVzIHdpbGwgZW5kIHVwIGhhdmluZyBpdCBlcmFzZWQgYnlcbiAgICAgICAgLy8gbW9zdCBicm93c2Vycy4gKDIwMTgvMDQvMjcpXG4gICAgICAgIGlmIChzdGFydFZvaWQpIHtcbiAgICAgICAgICAgIGF0dGFjaCA9IGNvbnRlbnRzLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXNsYXRlLXNwYWNlcl0nKSEgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZW1vdmUgYW55IHplcm8td2lkdGggc3BhY2Ugc3BhbnMgZnJvbSB0aGUgY2xvbmVkIERPTSBzbyB0aGF0IHRoZXkgZG9uJ3RcbiAgICAgICAgLy8gc2hvdyB1cCBlbHNld2hlcmUgd2hlbiBwYXN0ZWQuXG4gICAgICAgIEFycmF5LmZyb20oY29udGVudHMucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtc2xhdGUtemVyby13aWR0aF0nKSkuZm9yRWFjaCh6dyA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc05ld2xpbmUgPSB6dy5nZXRBdHRyaWJ1dGUoJ2RhdGEtc2xhdGUtemVyby13aWR0aCcpID09PSAnbic7XG4gICAgICAgICAgICB6dy50ZXh0Q29udGVudCA9IGlzTmV3bGluZSA/ICdcXG4nIDogJyc7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFNldCBhIGBkYXRhLXNsYXRlLWZyYWdtZW50YCBhdHRyaWJ1dGUgb24gYSBub24tZW1wdHkgbm9kZSwgc28gaXQgc2hvd3MgdXBcbiAgICAgICAgLy8gaW4gdGhlIEhUTUwsIGFuZCBjYW4gYmUgdXNlZCBmb3IgaW50cmEtU2xhdGUgcGFzdGluZy4gSWYgaXQncyBhIHRleHRcbiAgICAgICAgLy8gbm9kZSwgd3JhcCBpdCBpbiBhIGA8c3Bhbj5gIHNvIHdlIGhhdmUgc29tZXRoaW5nIHRvIHNldCBhbiBhdHRyaWJ1dGUgb24uXG4gICAgICAgIGlmIChpc0RPTVRleHQoYXR0YWNoKSkge1xuICAgICAgICAgICAgY29uc3Qgc3BhbiA9IGF0dGFjaC5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICAgICAgICAgIC8vIENPTVBBVDogSW4gQ2hyb21lIGFuZCBTYWZhcmksIGlmIHdlIGRvbid0IGFkZCB0aGUgYHdoaXRlLXNwYWNlYCBzdHlsZVxuICAgICAgICAgICAgLy8gdGhlbiBsZWFkaW5nIGFuZCB0cmFpbGluZyBzcGFjZXMgd2lsbCBiZSBpZ25vcmVkLiAoMjAxNy8wOS8yMSlcbiAgICAgICAgICAgIHNwYW4uc3R5bGUud2hpdGVTcGFjZSA9ICdwcmUnO1xuICAgICAgICAgICAgc3Bhbi5hcHBlbmRDaGlsZChhdHRhY2gpO1xuICAgICAgICAgICAgY29udGVudHMuYXBwZW5kQ2hpbGQoc3Bhbik7XG4gICAgICAgICAgICBhdHRhY2ggPSBzcGFuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZnJhZ21lbnQgPSBlLmdldEZyYWdtZW50KCk7XG5cbiAgICAgICAgLy8gQWRkIHRoZSBjb250ZW50IHRvIGEgPGRpdj4gc28gdGhhdCB3ZSBjYW4gZ2V0IGl0cyBpbm5lciBIVE1MLlxuICAgICAgICBjb25zdCBkaXYgPSBjb250ZW50cy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBjb25zdCBhdHRhY2hXcmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzID0gQXJyYXkuZnJvbShjb250ZW50cy5jaGlsZHJlbik7XG4gICAgICAgIGlmIChpc0ludmFsaWRUYWJsZShlbGVtZW50cykpIHtcbiAgICAgICAgICAgIGNvbnRlbnRzID0gY29tcGxldGVUYWJsZShjb250ZW50cy5jbG9uZU5vZGUodHJ1ZSkgYXMgRG9jdW1lbnRGcmFnbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBhdHRhY2hXcmFwcGVyLmFwcGVuZENoaWxkKGF0dGFjaCk7XG4gICAgICAgIGRpdi5hcHBlbmRDaGlsZChjb250ZW50cyk7XG4gICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoJ2hpZGRlbicsICd0cnVlJyk7XG4gICAgICAgIGNvbnRlbnRzLm93bmVyRG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaXYpO1xuICAgICAgICBzZXRDbGlwYm9hcmREYXRhKHsgdGV4dDogZ2V0UGxhaW5UZXh0KGRpdiksIGVsZW1lbnRzOiBmcmFnbWVudCBhcyBFbGVtZW50W10gfSwgZGl2LCBhdHRhY2hXcmFwcGVyLCBkYXRhVHJhbnNmZXIpO1xuICAgICAgICBjb250ZW50cy5vd25lckRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZGl2KTtcbiAgICB9O1xuXG4gICAgZS5kZWxldGVDdXREYXRhID0gKCkgPT4ge1xuICAgICAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gZWRpdG9yO1xuICAgICAgICBpZiAoc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBpZiAoUmFuZ2UuaXNFeHBhbmRlZChzZWxlY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgRWRpdG9yLmRlbGV0ZUZyYWdtZW50KGVkaXRvcik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBOb2RlLnBhcmVudChlZGl0b3IsIHNlbGVjdGlvbi5hbmNob3IucGF0aCk7XG4gICAgICAgICAgICAgICAgaWYgKEVsZW1lbnQuaXNFbGVtZW50KG5vZGUpICYmIEVkaXRvci5pc1ZvaWQoZWRpdG9yLCBub2RlKSkge1xuICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLmRlbGV0ZShlZGl0b3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBlLmluc2VydERhdGEgPSBhc3luYyAoZGF0YTogRGF0YVRyYW5zZmVyKSA9PiB7XG4gICAgICAgIGlmICghKGF3YWl0IGUuaW5zZXJ0RnJhZ21lbnREYXRhKGRhdGEpKSkge1xuICAgICAgICAgICAgZS5pbnNlcnRUZXh0RGF0YShkYXRhKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBlLmluc2VydEZyYWdtZW50RGF0YSA9IGFzeW5jIChkYXRhOiBEYXRhVHJhbnNmZXIpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIENoZWNraW5nIGNvcGllZCBmcmFnbWVudCBmcm9tIGFwcGxpY2F0aW9uL3gtc2xhdGUtZnJhZ21lbnQgb3IgZGF0YS1zbGF0ZS1mcmFnbWVudFxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgY2xpcGJvYXJkRGF0YSA9IGF3YWl0IGdldENsaXBib2FyZERhdGEoZGF0YSk7XG4gICAgICAgIGlmIChjbGlwYm9hcmREYXRhICYmIGNsaXBib2FyZERhdGEuZWxlbWVudHMpIHtcbiAgICAgICAgICAgIGUuaW5zZXJ0RnJhZ21lbnQoY2xpcGJvYXJkRGF0YS5lbGVtZW50cyk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcblxuICAgIGUuaW5zZXJ0VGV4dERhdGEgPSBhc3luYyAoZGF0YTogRGF0YVRyYW5zZmVyKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgICAgIGNvbnN0IGNsaXBib2FyZERhdGEgPSBhd2FpdCBnZXRDbGlwYm9hcmREYXRhKGRhdGEpO1xuXG4gICAgICAgIGlmIChjbGlwYm9hcmREYXRhICYmIGNsaXBib2FyZERhdGEudGV4dCkge1xuICAgICAgICAgICAgY29uc3QgbGluZXMgPSBjbGlwYm9hcmREYXRhLnRleHQuc3BsaXQoL1xcclxcbnxcXHJ8XFxuLyk7XG4gICAgICAgICAgICBsZXQgc3BsaXQgPSBmYWxzZTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNwbGl0KSB7XG4gICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc3BsaXROb2RlcyhlLCB7IGFsd2F5czogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBlLmluc2VydFRleHQobGluZSk7XG4gICAgICAgICAgICAgICAgc3BsaXQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG5cbiAgICBlLm9uS2V5ZG93biA9ICgpID0+IHt9O1xuXG4gICAgZS5vbkNsaWNrID0gKCkgPT4ge307XG5cbiAgICBlLmlzQmxvY2tDYXJkID0gZWxlbWVudCA9PiBmYWxzZTtcblxuICAgIGUuaXNFeHBhbmRlZCA9IGVsZW1lbnQgPT4gdHJ1ZTtcblxuICAgIGUub25FcnJvciA9IChlcnJvckRhdGE6IFNsYXRlRXJyb3IpID0+IHtcbiAgICAgICAgaWYgKGVycm9yRGF0YS5uYXRpdmVFcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvckRhdGEubmF0aXZlRXJyb3IpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvckRhdGEpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiBlO1xufTtcbiJdfQ==
@@ -1,7 +1,7 @@
1
+ import { SlateFragmentAttributeKey, getSlateFragmentAttribute } from '../dom';
2
+ import { isClipboardReadSupported, isClipboardWriteSupported, isClipboardWriteTextSupported } from './common';
1
3
  import { getDataTransferClipboard, setDataTransferClipboard, setDataTransferClipboardText } from './data-transfer';
2
4
  import { getNavigatorClipboard, setNavigatorClipboard } from './navigator-clipboard';
3
- import { isClipboardReadSupported, isClipboardWriteSupported, isClipboardWriteTextSupported } from './common';
4
- import { SlateFragmentAttributeKey, getSlateFragmentAttribute } from '../dom';
5
5
  export const buildHTMLText = (wrapper, attach, data) => {
6
6
  const stringObj = JSON.stringify(data);
7
7
  const encoded = window.btoa(encodeURIComponent(stringObj));
@@ -75,4 +75,4 @@ export const setClipboardData = async (clipboardData, wrapper, attach, dataTrans
75
75
  return await navigator.clipboard.writeText(htmlText);
76
76
  }
77
77
  };
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3V0aWxzL2NsaXBib2FyZC9jbGlwYm9hcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHdCQUF3QixFQUFFLDRCQUE0QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixFQUFFLDZCQUE2QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRTlHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUU5RSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxPQUFvQixFQUFFLE1BQW1CLEVBQUUsSUFBZSxFQUFFLEVBQUU7SUFDeEYsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDM0QsTUFBTSxDQUFDLFlBQVksQ0FBQyx5QkFBeUIsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN4RCxPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUM7QUFDN0IsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxJQUFZLEVBQWlCLEVBQUU7SUFDcEUsTUFBTSxpQkFBaUIsR0FBRyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxRCxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDO1lBQ0QsTUFBTSxPQUFPLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FB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O1FBQzFELE9BQU8sTUFBTSxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6RCxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IGdldERhdGFUcmFuc2ZlckNsaXBib2FyZCwgc2V0RGF0YVRyYW5zZmVyQ2xpcGJvYXJkLCBzZXREYXRhVHJhbnNmZXJDbGlwYm9hcmRUZXh0IH0gZnJvbSAnLi9kYXRhLXRyYW5zZmVyJztcbmltcG9ydCB7IGdldE5hdmlnYXRvckNsaXBib2FyZCwgc2V0TmF2aWdhdG9yQ2xpcGJvYXJkIH0gZnJvbSAnLi9uYXZpZ2F0b3ItY2xpcGJvYXJkJztcbmltcG9ydCB7IGlzQ2xpcGJvYXJkUmVhZFN1cHBvcnRlZCwgaXNDbGlwYm9hcmRXcml0ZVN1cHBvcnRlZCwgaXNDbGlwYm9hcmRXcml0ZVRleHRTdXBwb3J0ZWQgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBDbGlwYm9hcmREYXRhIH0gZnJvbSAnLi4vLi4vdHlwZXMvY2xpcGJvYXJkJztcbmltcG9ydCB7IFNsYXRlRnJhZ21lbnRBdHRyaWJ1dGVLZXksIGdldFNsYXRlRnJhZ21lbnRBdHRyaWJ1dGUgfSBmcm9tICcuLi9kb20nO1xuXG5leHBvcnQgY29uc3QgYnVpbGRIVE1MVGV4dCA9ICh3cmFwcGVyOiBIVE1MRWxlbWVudCwgYXR0YWNoOiBIVE1MRWxlbWVudCwgZGF0YTogRWxlbWVudFtdKSA9PiB7XG4gICAgY29uc3Qgc3RyaW5nT2JqID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7XG4gICAgY29uc3QgZW5jb2RlZCA9IHdpbmRvdy5idG9hKGVuY29kZVVSSUNvbXBvbmVudChzdHJpbmdPYmopKTtcbiAgICBhdHRhY2guc2V0QXR0cmlidXRlKFNsYXRlRnJhZ21lbnRBdHRyaWJ1dGVLZXksIGVuY29kZWQpO1xuICAgIHJldHVybiB3cmFwcGVyLmlubmVySFRNTDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDbGlwYm9hcmRGcm9tSFRNTFRleHQgPSAoaHRtbDogc3RyaW5nKTogQ2xpcGJvYXJkRGF0YSA9PiB7XG4gICAgY29uc3QgZnJhZ21lbnRBdHRyaWJ1dGUgPSBnZXRTbGF0ZUZyYWdtZW50QXR0cmlidXRlKGh0bWwpO1xuICAgIGlmIChmcmFnbWVudEF0dHJpYnV0ZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZGVjb2RlZCA9IGRlY29kZVVSSUNvbXBvbmVudCh3aW5kb3cuYXRvYihmcmFnbWVudEF0dHJpYnV0ZSkpO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gSlNPTi5wYXJzZShkZWNvZGVkKTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQgJiYgQXJyYXkuaXNBcnJheShyZXN1bHQpICYmIHJlc3VsdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudHM6IHJlc3VsdFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUNsaXBib2FyZERhdGEgPSAoaHRtbDogc3RyaW5nLCBlbGVtZW50czogRWxlbWVudFtdLCB0ZXh0OiBzdHJpbmcsIGZpbGVzOiBGaWxlW10pOiBDbGlwYm9hcmREYXRhID0+IHtcbiAgICBjb25zdCBkYXRhID0geyBlbGVtZW50cywgdGV4dCwgaHRtbCwgZmlsZXMgfTtcbiAgICByZXR1cm4gZGF0YTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDbGlwYm9hcmREYXRhID0gYXN5bmMgKGRhdGFUcmFuc2Zlcj86IERhdGFUcmFuc2Zlcik6IFByb21pc2U8Q2xpcGJvYXJkRGF0YT4gPT4ge1xuICAgIGxldCBjbGlwYm9hcmREYXRhID0gbnVsbDtcbiAgICBpZiAoZGF0YVRyYW5zZmVyKSB7XG4gICAgICAgIGxldCBmaWxlc0RhdGEgPSB7fTtcbiAgICAgICAgaWYgKGRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZpbGVzRGF0YSA9IHsgLi4uZmlsZXNEYXRhLCBmaWxlczogQXJyYXkuZnJvbShkYXRhVHJhbnNmZXIuZmlsZXMpIH07XG4gICAgICAgIH1cbiAgICAgICAgY2xpcGJvYXJkRGF0YSA9IGdldERhdGFUcmFuc2ZlckNsaXBib2FyZChkYXRhVHJhbnNmZXIpO1xuICAgICAgICByZXR1cm4geyAuLi5jbGlwYm9hcmREYXRhLCAuLi5maWxlc0RhdGEgfTtcbiAgICB9XG4gICAgaWYgKGlzQ2xpcGJvYXJkUmVhZFN1cHBvcnRlZCgpKSB7XG4gICAgICAgIHJldHVybiBhd2FpdCBnZXROYXZpZ2F0b3JDbGlwYm9hcmQoKTtcbiAgICB9XG4gICAgcmV0dXJuIGNsaXBib2FyZERhdGE7XG59O1xuXG4vKipcbiAqIEBwYXJhbSB3cmFwcGVyIGdldCB3cmFwcGVyLmlubmVySFRNTCBzdHJpbmcgd2hpY2ggd2lsbCBiZSB3cml0dGVuIGluIGNsaXBib2FyZFxuICogQHBhcmFtIGF0dGFjaCBhdHRhY2ggbXVzdCBiZSBjaGlsZCBlbGVtZW50IG9mIHdyYXBwZXIgd2hpY2ggd2lsbCBiZSBhdHRhY2hlZCBqc29uIGRhdGFcbiAqIEByZXR1cm5zIHZvaWRcbiAqL1xuZXhwb3J0IGNvbnN0IHNldENsaXBib2FyZERhdGEgPSBhc3luYyAoXG4gICAgY2xpcGJvYXJkRGF0YTogQ2xpcGJvYXJkRGF0YSxcbiAgICB3cmFwcGVyOiBIVE1MRWxlbWVudCxcbiAgICBhdHRhY2g6IEhUTUxFbGVtZW50LFxuICAgIGRhdGFUcmFuc2Zlcj86IFBpY2s8RGF0YVRyYW5zZmVyLCAnZ2V0RGF0YScgfCAnc2V0RGF0YSc+XG4pID0+IHtcbiAgICBpZiAoIWNsaXBib2FyZERhdGEpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB7IGVsZW1lbnRzLCB0ZXh0IH0gPSBjbGlwYm9hcmREYXRhO1xuICAgIGlmIChpc0NsaXBib2FyZFdyaXRlU3VwcG9ydGVkKCkpIHtcbiAgICAgICAgY29uc3QgaHRtbFRleHQgPSBidWlsZEhUTUxUZXh0KHdyYXBwZXIsIGF0dGFjaCwgZWxlbWVudHMpO1xuICAgICAgICAvLyBUT0RPXG4gICAgICAgIC8vIG1heWJlIGZhaWwgdG8gd3JpdGUgd2hlbiBjb3B5IHNvbWUgY2VsbCBpbiB0YWJsZVxuICAgICAgICByZXR1cm4gYXdhaXQgc2V0TmF2aWdhdG9yQ2xpcGJvYXJkKGh0bWxUZXh0LCBlbGVtZW50cywgdGV4dCk7XG4gICAgfVxuXG4gICAgaWYgKGRhdGFUcmFuc2Zlcikge1xuICAgICAgICBjb25zdCBodG1sVGV4dCA9IGJ1aWxkSFRNTFRleHQod3JhcHBlciwgYXR0YWNoLCBlbGVtZW50cyk7XG4gICAgICAgIHNldERhdGFUcmFuc2ZlckNsaXBib2FyZChkYXRhVHJhbnNmZXIsIGh0bWxUZXh0KTtcbiAgICAgICAgc2V0RGF0YVRyYW5zZmVyQ2xpcGJvYXJkVGV4dChkYXRhVHJhbnNmZXIsIHRleHQpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ29tcGF0aWJsZSB3aXRoIHNpdHVhdGlvbnMgd2hlcmUgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZSBpcyBub3Qgc3VwcG9ydGVkIGFuZCBkYXRhVHJhbnNmZXIgaXMgZW1wdHlcbiAgICAvLyBTdWNoIGFzIGNvbnRleHRtZW51IGNvcHkgaW4gRmlyZWZveC5cbiAgICBpZiAoaXNDbGlwYm9hcmRXcml0ZVRleHRTdXBwb3J0ZWQoKSkge1xuICAgICAgICBjb25zdCBodG1sVGV4dCA9IGJ1aWxkSFRNTFRleHQod3JhcHBlciwgYXR0YWNoLCBlbGVtZW50cyk7XG4gICAgICAgIHJldHVybiBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChodG1sVGV4dCk7XG4gICAgfVxufTtcbiJdfQ==
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3V0aWxzL2NsaXBib2FyZC9jbGlwYm9hcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLHlCQUF5QixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzlFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSx5QkFBeUIsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsd0JBQXdCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVyRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxPQUFvQixFQUFFLE1BQW1CLEVBQUUsSUFBZSxFQUFFLEVBQUU7SUFDeEYsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDM0QsTUFBTSxDQUFDLFlBQVksQ0FBQyx5QkFBeUIsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN4RCxPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUM7QUFDN0IsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxJQUFZLEVBQWlCLEVBQUU7SUFDcEUsTUFBTSxpQkFBaUIsR0FBRyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxRCxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDO1lBQ0QsTUFBTSxPQUFPLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FB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O1FBQzFELE9BQU8sTUFBTSxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6RCxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IENsaXBib2FyZERhdGEgfSBmcm9tICcuLi8uLi90eXBlcy9jbGlwYm9hcmQnO1xuaW1wb3J0IHsgU2xhdGVGcmFnbWVudEF0dHJpYnV0ZUtleSwgZ2V0U2xhdGVGcmFnbWVudEF0dHJpYnV0ZSB9IGZyb20gJy4uL2RvbSc7XG5pbXBvcnQgeyBpc0NsaXBib2FyZFJlYWRTdXBwb3J0ZWQsIGlzQ2xpcGJvYXJkV3JpdGVTdXBwb3J0ZWQsIGlzQ2xpcGJvYXJkV3JpdGVUZXh0U3VwcG9ydGVkIH0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHsgZ2V0RGF0YVRyYW5zZmVyQ2xpcGJvYXJkLCBzZXREYXRhVHJhbnNmZXJDbGlwYm9hcmQsIHNldERhdGFUcmFuc2ZlckNsaXBib2FyZFRleHQgfSBmcm9tICcuL2RhdGEtdHJhbnNmZXInO1xuaW1wb3J0IHsgZ2V0TmF2aWdhdG9yQ2xpcGJvYXJkLCBzZXROYXZpZ2F0b3JDbGlwYm9hcmQgfSBmcm9tICcuL25hdmlnYXRvci1jbGlwYm9hcmQnO1xuXG5leHBvcnQgY29uc3QgYnVpbGRIVE1MVGV4dCA9ICh3cmFwcGVyOiBIVE1MRWxlbWVudCwgYXR0YWNoOiBIVE1MRWxlbWVudCwgZGF0YTogRWxlbWVudFtdKSA9PiB7XG4gICAgY29uc3Qgc3RyaW5nT2JqID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7XG4gICAgY29uc3QgZW5jb2RlZCA9IHdpbmRvdy5idG9hKGVuY29kZVVSSUNvbXBvbmVudChzdHJpbmdPYmopKTtcbiAgICBhdHRhY2guc2V0QXR0cmlidXRlKFNsYXRlRnJhZ21lbnRBdHRyaWJ1dGVLZXksIGVuY29kZWQpO1xuICAgIHJldHVybiB3cmFwcGVyLmlubmVySFRNTDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDbGlwYm9hcmRGcm9tSFRNTFRleHQgPSAoaHRtbDogc3RyaW5nKTogQ2xpcGJvYXJkRGF0YSA9PiB7XG4gICAgY29uc3QgZnJhZ21lbnRBdHRyaWJ1dGUgPSBnZXRTbGF0ZUZyYWdtZW50QXR0cmlidXRlKGh0bWwpO1xuICAgIGlmIChmcmFnbWVudEF0dHJpYnV0ZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZGVjb2RlZCA9IGRlY29kZVVSSUNvbXBvbmVudCh3aW5kb3cuYXRvYihmcmFnbWVudEF0dHJpYnV0ZSkpO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gSlNPTi5wYXJzZShkZWNvZGVkKTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQgJiYgQXJyYXkuaXNBcnJheShyZXN1bHQpICYmIHJlc3VsdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudHM6IHJlc3VsdFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUNsaXBib2FyZERhdGEgPSAoaHRtbDogc3RyaW5nLCBlbGVtZW50czogRWxlbWVudFtdLCB0ZXh0OiBzdHJpbmcsIGZpbGVzOiBGaWxlW10pOiBDbGlwYm9hcmREYXRhID0+IHtcbiAgICBjb25zdCBkYXRhID0geyBlbGVtZW50cywgdGV4dCwgaHRtbCwgZmlsZXMgfTtcbiAgICByZXR1cm4gZGF0YTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDbGlwYm9hcmREYXRhID0gYXN5bmMgKGRhdGFUcmFuc2Zlcj86IERhdGFUcmFuc2Zlcik6IFByb21pc2U8Q2xpcGJvYXJkRGF0YT4gPT4ge1xuICAgIGxldCBjbGlwYm9hcmREYXRhID0gbnVsbDtcbiAgICBpZiAoZGF0YVRyYW5zZmVyKSB7XG4gICAgICAgIGxldCBmaWxlc0RhdGEgPSB7fTtcbiAgICAgICAgaWYgKGRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZpbGVzRGF0YSA9IHsgLi4uZmlsZXNEYXRhLCBmaWxlczogQXJyYXkuZnJvbShkYXRhVHJhbnNmZXIuZmlsZXMpIH07XG4gICAgICAgIH1cbiAgICAgICAgY2xpcGJvYXJkRGF0YSA9IGdldERhdGFUcmFuc2ZlckNsaXBib2FyZChkYXRhVHJhbnNmZXIpO1xuICAgICAgICByZXR1cm4geyAuLi5jbGlwYm9hcmREYXRhLCAuLi5maWxlc0RhdGEgfTtcbiAgICB9XG4gICAgaWYgKGlzQ2xpcGJvYXJkUmVhZFN1cHBvcnRlZCgpKSB7XG4gICAgICAgIHJldHVybiBhd2FpdCBnZXROYXZpZ2F0b3JDbGlwYm9hcmQoKTtcbiAgICB9XG4gICAgcmV0dXJuIGNsaXBib2FyZERhdGE7XG59O1xuXG4vKipcbiAqIEBwYXJhbSB3cmFwcGVyIGdldCB3cmFwcGVyLmlubmVySFRNTCBzdHJpbmcgd2hpY2ggd2lsbCBiZSB3cml0dGVuIGluIGNsaXBib2FyZFxuICogQHBhcmFtIGF0dGFjaCBhdHRhY2ggbXVzdCBiZSBjaGlsZCBlbGVtZW50IG9mIHdyYXBwZXIgd2hpY2ggd2lsbCBiZSBhdHRhY2hlZCBqc29uIGRhdGFcbiAqIEByZXR1cm5zIHZvaWRcbiAqL1xuZXhwb3J0IGNvbnN0IHNldENsaXBib2FyZERhdGEgPSBhc3luYyAoXG4gICAgY2xpcGJvYXJkRGF0YTogQ2xpcGJvYXJkRGF0YSxcbiAgICB3cmFwcGVyOiBIVE1MRWxlbWVudCxcbiAgICBhdHRhY2g6IEhUTUxFbGVtZW50LFxuICAgIGRhdGFUcmFuc2Zlcj86IFBpY2s8RGF0YVRyYW5zZmVyLCAnZ2V0RGF0YScgfCAnc2V0RGF0YSc+XG4pID0+IHtcbiAgICBpZiAoIWNsaXBib2FyZERhdGEpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB7IGVsZW1lbnRzLCB0ZXh0IH0gPSBjbGlwYm9hcmREYXRhO1xuICAgIGlmIChpc0NsaXBib2FyZFdyaXRlU3VwcG9ydGVkKCkpIHtcbiAgICAgICAgY29uc3QgaHRtbFRleHQgPSBidWlsZEhUTUxUZXh0KHdyYXBwZXIsIGF0dGFjaCwgZWxlbWVudHMpO1xuICAgICAgICAvLyBUT0RPXG4gICAgICAgIC8vIG1heWJlIGZhaWwgdG8gd3JpdGUgd2hlbiBjb3B5IHNvbWUgY2VsbCBpbiB0YWJsZVxuICAgICAgICByZXR1cm4gYXdhaXQgc2V0TmF2aWdhdG9yQ2xpcGJvYXJkKGh0bWxUZXh0LCBlbGVtZW50cywgdGV4dCk7XG4gICAgfVxuXG4gICAgaWYgKGRhdGFUcmFuc2Zlcikge1xuICAgICAgICBjb25zdCBodG1sVGV4dCA9IGJ1aWxkSFRNTFRleHQod3JhcHBlciwgYXR0YWNoLCBlbGVtZW50cyk7XG4gICAgICAgIHNldERhdGFUcmFuc2ZlckNsaXBib2FyZChkYXRhVHJhbnNmZXIsIGh0bWxUZXh0KTtcbiAgICAgICAgc2V0RGF0YVRyYW5zZmVyQ2xpcGJvYXJkVGV4dChkYXRhVHJhbnNmZXIsIHRleHQpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ29tcGF0aWJsZSB3aXRoIHNpdHVhdGlvbnMgd2hlcmUgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZSBpcyBub3Qgc3VwcG9ydGVkIGFuZCBkYXRhVHJhbnNmZXIgaXMgZW1wdHlcbiAgICAvLyBTdWNoIGFzIGNvbnRleHRtZW51IGNvcHkgaW4gRmlyZWZveC5cbiAgICBpZiAoaXNDbGlwYm9hcmRXcml0ZVRleHRTdXBwb3J0ZWQoKSkge1xuICAgICAgICBjb25zdCBodG1sVGV4dCA9IGJ1aWxkSFRNTFRleHQod3JhcHBlciwgYXR0YWNoLCBlbGVtZW50cyk7XG4gICAgICAgIHJldHVybiBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChodG1sVGV4dCk7XG4gICAgfVxufTtcbiJdfQ==
@@ -10,6 +10,9 @@ export const isClipboardWriteTextSupported = () => {
10
10
  export const isClipboardFile = (item) => {
11
11
  return item.types.find(i => i.match(/^image\//));
12
12
  };
13
+ export const isInvalidTable = (nodes = []) => {
14
+ return nodes.some(node => node.tagName.toLowerCase() === 'tr');
15
+ };
13
16
  export const stripHtml = (html) => {
14
17
  // See <https://github.com/developit/preact-markup/blob/4788b8d61b4e24f83688710746ee36e7464f7bbc/src/parse-markup.js#L60-L69>
15
18
  const doc = document.implementation.createHTMLDocument('');
@@ -29,4 +32,11 @@ export const blobAsString = (blob) => {
29
32
  reader.readAsText(blob);
30
33
  });
31
34
  };
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3V0aWxzL2NsaXBib2FyZC9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsR0FBRyxFQUFFO0lBQ3pDLE9BQU8sV0FBVyxJQUFJLFNBQVMsSUFBSSxNQUFNLElBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQztBQUNyRSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxHQUFHLEVBQUU7SUFDMUMsT0FBTyxXQUFXLElBQUksU0FBUyxJQUFJLE9BQU8sSUFBSSxTQUFTLENBQUMsU0FBUyxDQUFDO0FBQ3RFLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLEdBQUcsRUFBRTtJQUM5QyxPQUFPLFdBQVcsSUFBSSxTQUFTLElBQUksV0FBVyxJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUM7QUFDMUUsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsSUFBbUIsRUFBRSxFQUFFO0lBQ25ELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDckQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUU7SUFDdEMsNkhBQTZIO0lBQzdILE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0QsR0FBRyxDQUFDLGVBQWUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO0FBQzVELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLElBQVUsRUFBRSxFQUFFO0lBQ3ZDLE9BQU8sSUFBSSxPQUFPLENBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDM0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNoQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRTtZQUNwQyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxJQUFjLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO1lBQ2xDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gJ3NsYXRlJztcblxuZXhwb3J0IGNvbnN0IGlzQ2xpcGJvYXJkUmVhZFN1cHBvcnRlZCA9ICgpID0+IHtcbiAgICByZXR1cm4gJ2NsaXBib2FyZCcgaW4gbmF2aWdhdG9yICYmICdyZWFkJyBpbiBuYXZpZ2F0b3IuY2xpcGJvYXJkO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzQ2xpcGJvYXJkV3JpdGVTdXBwb3J0ZWQgPSAoKSA9PiB7XG4gICAgcmV0dXJuICdjbGlwYm9hcmQnIGluIG5hdmlnYXRvciAmJiAnd3JpdGUnIGluIG5hdmlnYXRvci5jbGlwYm9hcmQ7XG59O1xuXG5leHBvcnQgY29uc3QgaXNDbGlwYm9hcmRXcml0ZVRleHRTdXBwb3J0ZWQgPSAoKSA9PiB7XG4gICAgcmV0dXJuICdjbGlwYm9hcmQnIGluIG5hdmlnYXRvciAmJiAnd3JpdGVUZXh0JyBpbiBuYXZpZ2F0b3IuY2xpcGJvYXJkO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzQ2xpcGJvYXJkRmlsZSA9IChpdGVtOiBDbGlwYm9hcmRJdGVtKSA9PiB7XG4gICAgcmV0dXJuIGl0ZW0udHlwZXMuZmluZChpID0+IGkubWF0Y2goL15pbWFnZVxcLy8pKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzdHJpcEh0bWwgPSAoaHRtbDogc3RyaW5nKSA9PiB7XG4gICAgLy8gU2VlIDxodHRwczovL2dpdGh1Yi5jb20vZGV2ZWxvcGl0L3ByZWFjdC1tYXJrdXAvYmxvYi80Nzg4YjhkNjFiNGUyNGY4MzY4ODcxMDc0NmVlMzZlNzQ2NGY3YmJjL3NyYy9wYXJzZS1tYXJrdXAuanMjTDYwLUw2OT5cbiAgICBjb25zdCBkb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoJycpO1xuICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuaW5uZXJIVE1MID0gaHRtbC50cmltKCk7XG4gICAgcmV0dXJuIGRvYy5ib2R5LnRleHRDb250ZW50IHx8IGRvYy5ib2R5LmlubmVyVGV4dCB8fCAnJztcbn07XG5cbmV4cG9ydCBjb25zdCBibG9iQXNTdHJpbmcgPSAoYmxvYjogQmxvYikgPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgcmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRlbmQnLCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gcmVhZGVyLnJlc3VsdDtcbiAgICAgICAgICAgIHJlc29sdmUodGV4dCBhcyBzdHJpbmcpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgKCkgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KHJlYWRlci5lcnJvcik7XG4gICAgICAgIH0pO1xuICAgICAgICByZWFkZXIucmVhZEFzVGV4dChibG9iKTtcbiAgICB9KTtcbn07XG4iXX0=
35
+ export const completeTable = (fragment) => {
36
+ const result = document.createDocumentFragment();
37
+ const table = document.createElement('table');
38
+ result.appendChild(table);
39
+ table.appendChild(fragment);
40
+ return result;
41
+ };
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3V0aWxzL2NsaXBib2FyZC9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsR0FBRyxFQUFFO0lBQ3pDLE9BQU8sV0FBVyxJQUFJLFNBQVMsSUFBSSxNQUFNLElBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQztBQUNyRSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxHQUFHLEVBQUU7SUFDMUMsT0FBTyxXQUFXLElBQUksU0FBUyxJQUFJLE9BQU8sSUFBSSxTQUFTLENBQUMsU0FBUyxDQUFDO0FBQ3RFLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLEdBQUcsRUFBRTtJQUM5QyxPQUFPLFdBQVcsSUFBSSxTQUFTLElBQUksV0FBVyxJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUM7QUFDMUUsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsSUFBbUIsRUFBRSxFQUFFO0lBQ25ELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDckQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsUUFBbUIsRUFBRSxFQUFFLEVBQUU7SUFDcEQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQztBQUNuRSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRTtJQUN0Qyw2SEFBNkg7SUFDN0gsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzRCxHQUFHLENBQUMsZUFBZSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7QUFDNUQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBVSxFQUFFLEVBQUU7SUFDdkMsT0FBTyxJQUFJLE9BQU8sQ0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO1lBQ3BDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDM0IsT0FBTyxDQUFDLElBQWMsQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7WUFDbEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxRQUEwQixFQUFFLEVBQUU7SUFDeEQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDakQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUIsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGlzQ2xpcGJvYXJkUmVhZFN1cHBvcnRlZCA9ICgpID0+IHtcbiAgICByZXR1cm4gJ2NsaXBib2FyZCcgaW4gbmF2aWdhdG9yICYmICdyZWFkJyBpbiBuYXZpZ2F0b3IuY2xpcGJvYXJkO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzQ2xpcGJvYXJkV3JpdGVTdXBwb3J0ZWQgPSAoKSA9PiB7XG4gICAgcmV0dXJuICdjbGlwYm9hcmQnIGluIG5hdmlnYXRvciAmJiAnd3JpdGUnIGluIG5hdmlnYXRvci5jbGlwYm9hcmQ7XG59O1xuXG5leHBvcnQgY29uc3QgaXNDbGlwYm9hcmRXcml0ZVRleHRTdXBwb3J0ZWQgPSAoKSA9PiB7XG4gICAgcmV0dXJuICdjbGlwYm9hcmQnIGluIG5hdmlnYXRvciAmJiAnd3JpdGVUZXh0JyBpbiBuYXZpZ2F0b3IuY2xpcGJvYXJkO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzQ2xpcGJvYXJkRmlsZSA9IChpdGVtOiBDbGlwYm9hcmRJdGVtKSA9PiB7XG4gICAgcmV0dXJuIGl0ZW0udHlwZXMuZmluZChpID0+IGkubWF0Y2goL15pbWFnZVxcLy8pKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0ludmFsaWRUYWJsZSA9IChub2RlczogRWxlbWVudFtdID0gW10pID0+IHtcbiAgICByZXR1cm4gbm9kZXMuc29tZShub2RlID0+IG5vZGUudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAndHInKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzdHJpcEh0bWwgPSAoaHRtbDogc3RyaW5nKSA9PiB7XG4gICAgLy8gU2VlIDxodHRwczovL2dpdGh1Yi5jb20vZGV2ZWxvcGl0L3ByZWFjdC1tYXJrdXAvYmxvYi80Nzg4YjhkNjFiNGUyNGY4MzY4ODcxMDc0NmVlMzZlNzQ2NGY3YmJjL3NyYy9wYXJzZS1tYXJrdXAuanMjTDYwLUw2OT5cbiAgICBjb25zdCBkb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoJycpO1xuICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuaW5uZXJIVE1MID0gaHRtbC50cmltKCk7XG4gICAgcmV0dXJuIGRvYy5ib2R5LnRleHRDb250ZW50IHx8IGRvYy5ib2R5LmlubmVyVGV4dCB8fCAnJztcbn07XG5cbmV4cG9ydCBjb25zdCBibG9iQXNTdHJpbmcgPSAoYmxvYjogQmxvYikgPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgcmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRlbmQnLCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gcmVhZGVyLnJlc3VsdDtcbiAgICAgICAgICAgIHJlc29sdmUodGV4dCBhcyBzdHJpbmcpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgKCkgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KHJlYWRlci5lcnJvcik7XG4gICAgICAgIH0pO1xuICAgICAgICByZWFkZXIucmVhZEFzVGV4dChibG9iKTtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb21wbGV0ZVRhYmxlID0gKGZyYWdtZW50OiBEb2N1bWVudEZyYWdtZW50KSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgIGNvbnN0IHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGFibGUnKTtcbiAgICByZXN1bHQuYXBwZW5kQ2hpbGQodGFibGUpO1xuICAgIHRhYmxlLmFwcGVuZENoaWxkKGZyYWdtZW50KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbiJdfQ==
@@ -1046,6 +1046,48 @@ const createThrottleRAF = () => {
1046
1046
  return throttleRAF;
1047
1047
  };
1048
1048
 
1049
+ const isClipboardReadSupported = () => {
1050
+ return 'clipboard' in navigator && 'read' in navigator.clipboard;
1051
+ };
1052
+ const isClipboardWriteSupported = () => {
1053
+ return 'clipboard' in navigator && 'write' in navigator.clipboard;
1054
+ };
1055
+ const isClipboardWriteTextSupported = () => {
1056
+ return 'clipboard' in navigator && 'writeText' in navigator.clipboard;
1057
+ };
1058
+ const isClipboardFile = (item) => {
1059
+ return item.types.find(i => i.match(/^image\//));
1060
+ };
1061
+ const isInvalidTable = (nodes = []) => {
1062
+ return nodes.some(node => node.tagName.toLowerCase() === 'tr');
1063
+ };
1064
+ const stripHtml = (html) => {
1065
+ // See <https://github.com/developit/preact-markup/blob/4788b8d61b4e24f83688710746ee36e7464f7bbc/src/parse-markup.js#L60-L69>
1066
+ const doc = document.implementation.createHTMLDocument('');
1067
+ doc.documentElement.innerHTML = html.trim();
1068
+ return doc.body.textContent || doc.body.innerText || '';
1069
+ };
1070
+ const blobAsString = (blob) => {
1071
+ return new Promise((resolve, reject) => {
1072
+ const reader = new FileReader();
1073
+ reader.addEventListener('loadend', () => {
1074
+ const text = reader.result;
1075
+ resolve(text);
1076
+ });
1077
+ reader.addEventListener('error', () => {
1078
+ reject(reader.error);
1079
+ });
1080
+ reader.readAsText(blob);
1081
+ });
1082
+ };
1083
+ const completeTable = (fragment) => {
1084
+ const result = document.createDocumentFragment();
1085
+ const table = document.createElement('table');
1086
+ result.appendChild(table);
1087
+ table.appendChild(fragment);
1088
+ return result;
1089
+ };
1090
+
1049
1091
  const setDataTransferClipboard = (dataTransfer, htmlText) => {
1050
1092
  dataTransfer?.setData(`text/html`, htmlText);
1051
1093
  };
@@ -1089,38 +1131,6 @@ const getDataTransferClipboardText = (data) => {
1089
1131
  return { text };
1090
1132
  };
1091
1133
 
1092
- const isClipboardReadSupported = () => {
1093
- return 'clipboard' in navigator && 'read' in navigator.clipboard;
1094
- };
1095
- const isClipboardWriteSupported = () => {
1096
- return 'clipboard' in navigator && 'write' in navigator.clipboard;
1097
- };
1098
- const isClipboardWriteTextSupported = () => {
1099
- return 'clipboard' in navigator && 'writeText' in navigator.clipboard;
1100
- };
1101
- const isClipboardFile = (item) => {
1102
- return item.types.find(i => i.match(/^image\//));
1103
- };
1104
- const stripHtml = (html) => {
1105
- // See <https://github.com/developit/preact-markup/blob/4788b8d61b4e24f83688710746ee36e7464f7bbc/src/parse-markup.js#L60-L69>
1106
- const doc = document.implementation.createHTMLDocument('');
1107
- doc.documentElement.innerHTML = html.trim();
1108
- return doc.body.textContent || doc.body.innerText || '';
1109
- };
1110
- const blobAsString = (blob) => {
1111
- return new Promise((resolve, reject) => {
1112
- const reader = new FileReader();
1113
- reader.addEventListener('loadend', () => {
1114
- const text = reader.result;
1115
- resolve(text);
1116
- });
1117
- reader.addEventListener('error', () => {
1118
- reject(reader.error);
1119
- });
1120
- reader.readAsText(blob);
1121
- });
1122
- };
1123
-
1124
1134
  const setNavigatorClipboard = async (htmlText, data, text = '') => {
1125
1135
  let textClipboard = text;
1126
1136
  if (isClipboardWriteSupported()) {
@@ -1435,10 +1445,16 @@ const withAngular = (editor, clipboardFormatKey = 'x-slate-fragment') => {
1435
1445
  const fragment = e.getFragment();
1436
1446
  // Add the content to a <div> so that we can get its inner HTML.
1437
1447
  const div = contents.ownerDocument.createElement('div');
1448
+ const attachWrapper = document.createElement('div');
1449
+ const elements = Array.from(contents.children);
1450
+ if (isInvalidTable(elements)) {
1451
+ contents = completeTable(contents.cloneNode(true));
1452
+ }
1453
+ attachWrapper.appendChild(attach);
1438
1454
  div.appendChild(contents);
1439
1455
  div.setAttribute('hidden', 'true');
1440
1456
  contents.ownerDocument.body.appendChild(div);
1441
- setClipboardData({ text: getPlainText(div), elements: fragment }, div, attach, dataTransfer);
1457
+ setClipboardData({ text: getPlainText(div), elements: fragment }, div, attachWrapper, dataTransfer);
1442
1458
  contents.ownerDocument.body.removeChild(div);
1443
1459
  };
1444
1460
  e.deleteCutData = () => {
@@ -4489,5 +4505,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
4489
4505
  * Generated bundle index. Do not edit.
4490
4506
  */
4491
4507
 
4492
- export { AngularEditor, BaseComponent, BaseElementComponent, BaseLeafComponent, BaseTextComponent, DOMComment, DOMElement, DOMNode, DOMRange, DOMSelection, DOMStaticRange, DOMText, EDITOR_TO_AFTER_VIEW_INIT_QUEUE, EDITOR_TO_ELEMENT, EDITOR_TO_ON_CHANGE, EDITOR_TO_PLACEHOLDER, EDITOR_TO_WINDOW, ELEMENT_TO_COMPONENT, ELEMENT_TO_NODE, FAKE_LEFT_BLOCK_CARD_OFFSET, FAKE_RIGHT_BLOCK_CARD_OFFSET, HAS_BEFORE_INPUT_SUPPORT, IS_ANDROID, IS_APPLE, IS_CHROME, IS_CHROME_LEGACY, IS_CLICKING, IS_DRAGGING, IS_EDGE_LEGACY, IS_FIREFOX, IS_FIREFOX_LEGACY, IS_FOCUSED, IS_IOS, IS_QQBROWSER, IS_READONLY, IS_SAFARI, IS_UC_MOBILE, IS_WECHATBROWSER, KEY_TO_ELEMENT, Key, NODE_TO_ELEMENT, NODE_TO_INDEX, NODE_TO_KEY, NODE_TO_PARENT, PLACEHOLDER_SYMBOL, SlateChildren, SlateChildrenOutlet, SlateDefaultString, SlateEditable, SlateElement, SlateErrorCode, SlateFragmentAttributeKey, SlateLeaves, SlateModule, SlateString, blobAsString, buildHTMLText, check, createClipboardData, createThrottleRAF, defaultScrollSelectionIntoView, getCardTargetAttribute, getClipboardData, getClipboardFromHTMLText, getDataTransferClipboard, getDataTransferClipboardText, getDefaultView, getEditableChild, getEditableChildAndIndex, getNavigatorClipboard, getPlainText, getSlateFragmentAttribute, hasAfterContextChange, hasBeforeContextChange, hasBlockCard, hasBlockCardWithNode, hasEditableTarget, hasShadowRoot, hotkeys, isCardCenterByTargetAttr, isCardLeft, isCardLeftByTargetAttr, isCardRightByTargetAttr, isClipboardFile, isClipboardReadSupported, isClipboardWriteSupported, isClipboardWriteTextSupported, isComponentType, isDOMComment, isDOMElement, isDOMNode, isDOMSelection, isDOMText, isDecoratorRangeListEqual, isEmpty, isPlainTextOnlyPaste, isTemplateRef, isValid, normalize, normalizeDOMPoint, setClipboardData, setDataTransferClipboard, setDataTransferClipboardText, setNavigatorClipboard, shallowCompare, stripHtml, withAngular };
4508
+ export { AngularEditor, BaseComponent, BaseElementComponent, BaseLeafComponent, BaseTextComponent, DOMComment, DOMElement, DOMNode, DOMRange, DOMSelection, DOMStaticRange, DOMText, EDITOR_TO_AFTER_VIEW_INIT_QUEUE, EDITOR_TO_ELEMENT, EDITOR_TO_ON_CHANGE, EDITOR_TO_PLACEHOLDER, EDITOR_TO_WINDOW, ELEMENT_TO_COMPONENT, ELEMENT_TO_NODE, FAKE_LEFT_BLOCK_CARD_OFFSET, FAKE_RIGHT_BLOCK_CARD_OFFSET, HAS_BEFORE_INPUT_SUPPORT, IS_ANDROID, IS_APPLE, IS_CHROME, IS_CHROME_LEGACY, IS_CLICKING, IS_DRAGGING, IS_EDGE_LEGACY, IS_FIREFOX, IS_FIREFOX_LEGACY, IS_FOCUSED, IS_IOS, IS_QQBROWSER, IS_READONLY, IS_SAFARI, IS_UC_MOBILE, IS_WECHATBROWSER, KEY_TO_ELEMENT, Key, NODE_TO_ELEMENT, NODE_TO_INDEX, NODE_TO_KEY, NODE_TO_PARENT, PLACEHOLDER_SYMBOL, SlateChildren, SlateChildrenOutlet, SlateDefaultString, SlateEditable, SlateElement, SlateErrorCode, SlateFragmentAttributeKey, SlateLeaves, SlateModule, SlateString, blobAsString, buildHTMLText, check, completeTable, createClipboardData, createThrottleRAF, defaultScrollSelectionIntoView, getCardTargetAttribute, getClipboardData, getClipboardFromHTMLText, getDataTransferClipboard, getDataTransferClipboardText, getDefaultView, getEditableChild, getEditableChildAndIndex, getNavigatorClipboard, getPlainText, getSlateFragmentAttribute, hasAfterContextChange, hasBeforeContextChange, hasBlockCard, hasBlockCardWithNode, hasEditableTarget, hasShadowRoot, hotkeys, isCardCenterByTargetAttr, isCardLeft, isCardLeftByTargetAttr, isCardRightByTargetAttr, isClipboardFile, isClipboardReadSupported, isClipboardWriteSupported, isClipboardWriteTextSupported, isComponentType, isDOMComment, isDOMElement, isDOMNode, isDOMSelection, isDOMText, isDecoratorRangeListEqual, isEmpty, isInvalidTable, isPlainTextOnlyPaste, isTemplateRef, isValid, normalize, normalizeDOMPoint, setClipboardData, setDataTransferClipboard, setDataTransferClipboardText, setNavigatorClipboard, shallowCompare, stripHtml, withAngular };
4493
4509
  //# sourceMappingURL=slate-angular.mjs.map