slate-angular 1.7.5 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -157,4 +157,31 @@ export const getPlainText = (domNode) => {
157
157
  }
158
158
  return text;
159
159
  };
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvc3JjL3V0aWxzL2RvbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILDhFQUE4RTtBQUM5RSw2RUFBNkU7QUFDN0UsdURBQXVEO0FBQ3ZELElBQU8sT0FBTyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7QUFDakMsSUFBTyxVQUFVLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztBQUN2QyxJQUFPLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO0FBQ3ZDLElBQU8sT0FBTyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7QUFDakMsSUFBTyxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztBQUNuQyxJQUFPLFlBQVksR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDO0FBQzNDLElBQU8sY0FBYyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUM7QUFDL0MsT0FBTyxFQUNILE9BQU8sRUFDUCxVQUFVLEVBQ1YsVUFBVSxFQUNWLE9BQU8sRUFDUCxRQUFRLEVBQ1IsWUFBWSxFQUNaLGNBQWMsRUFDakIsQ0FBQztBQVlGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBVSxFQUFpQixFQUFFO0lBQ3hELE9BQU8sQ0FDSCxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsYUFBYSxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUM1RSxDQUFDO0FBQ04sQ0FBQyxDQUFBO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFVLEVBQXVCLEVBQUU7SUFDNUQsT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsS0FBSyxDQUFDLENBQUM7QUFDcEQsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZ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VUFBVSxDQUFDLEVBQUU7WUFDcEQsSUFBSSxJQUFJLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNuQztRQUVELE1BQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXRFLElBQUksT0FBTyxLQUFLLE9BQU8sSUFBSSxPQUFPLEtBQUssTUFBTSxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssSUFBSSxFQUFFO1lBQ3ZFLElBQUksSUFBSSxJQUFJLENBQUM7U0FDaEI7S0FDSjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVHlwZXMuXG4gKi9cblxuLy8gQ09NUEFUOiBUaGlzIGlzIHJlcXVpcmVkIHRvIHByZXZlbnQgVHlwZVNjcmlwdCBhbGlhc2VzIGZyb20gZG9pbmcgc29tZSB2ZXJ5XG4vLyB3ZWlyZCB0aGluZ3MgZm9yIFNsYXRlJ3MgdHlwZXMgd2l0aCB0aGUgc2FtZSBuYW1lIGFzIGdsb2JhbHMuICgyMDE5LzExLzI3KVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy8zNTAwMlxuaW1wb3J0IERPTU5vZGUgPSBnbG9iYWxUaGlzLk5vZGU7XG5pbXBvcnQgRE9NQ29tbWVudCA9IGdsb2JhbFRoaXMuQ29tbWVudDtcbmltcG9ydCBET01FbGVtZW50ID0gZ2xvYmFsVGhpcy5FbGVtZW50O1xuaW1wb3J0IERPTVRleHQgPSBnbG9iYWxUaGlzLlRleHQ7XG5pbXBvcnQgRE9NUmFuZ2UgPSBnbG9iYWxUaGlzLlJhbmdlO1xuaW1wb3J0IERPTVNlbGVjdGlvbiA9IGdsb2JhbFRoaXMuU2VsZWN0aW9uO1xuaW1wb3J0IERPTVN0YXRpY1JhbmdlID0gZ2xvYmFsVGhpcy5TdGF0aWNSYW5nZTtcbmV4cG9ydCB7XG4gICAgRE9NTm9kZSxcbiAgICBET01Db21tZW50LFxuICAgIERPTUVsZW1lbnQsXG4gICAgRE9NVGV4dCxcbiAgICBET01SYW5nZSxcbiAgICBET01TZWxlY3Rpb24sXG4gICAgRE9NU3RhdGljUmFuZ2Vcbn07XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICAgICAgU2VsZWN0aW9uOiB0eXBlb2YgU2VsZWN0aW9uWydjb25zdHJ1Y3RvciddO1xuICAgICAgICBEYXRhVHJhbnNmZXI6IHR5cGVvZiBEYXRhVHJhbnNmZXJbJ2NvbnN0cnVjdG9yJ107XG4gICAgICAgIE5vZGU6IHR5cGVvZiBOb2RlWydjb25zdHJ1Y3RvciddO1xuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgRE9NUG9pbnQgPSBbTm9kZSwgbnVtYmVyXTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBob3N0IHdpbmRvdyBvZiBhIERPTSBub2RlXG4gKi9cbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0VmlldyA9ICh2YWx1ZTogYW55KTogV2luZG93IHwgbnVsbCA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgKHZhbHVlICYmIHZhbHVlLm93bmVyRG9jdW1lbnQgJiYgdmFsdWUub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldykgfHwgbnVsbFxuICAgICk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBET00gbm9kZSBpcyBhIGNvbW1lbnQgbm9kZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGlzRE9NQ29tbWVudCA9ICh2YWx1ZTogYW55KTogdmFsdWUgaXMgRE9NQ29tbWVudCA9PiB7XG4gICAgcmV0dXJuIGlzRE9NTm9kZSh2YWx1ZSkgJiYgdmFsdWUubm9kZVR5cGUgPT09IDg7XG59O1xuXG4vKipcbiAqIENoZWNrIGlmIGEgRE9NIG5vZGUgaXMgYW4gZWxlbWVudCBub2RlLlxuICovXG5leHBvcnQgY29uc3QgaXNET01FbGVtZW50ID0gKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBET01FbGVtZW50ID0+IHtcbiAgICByZXR1cm4gaXNET01Ob2RlKHZhbHVlKSAmJiB2YWx1ZS5ub2RlVHlwZSA9PT0gMTtcbn07XG5cbi8qKlxuICogQ2hlY2sgaWYgYSB2YWx1ZSBpcyBhIERPTSBub2RlLlxuICovXG5leHBvcnQgY29uc3QgaXNET01Ob2RlID0gKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBET01Ob2RlID0+IHtcbiAgICBjb25zdCB3aW5kb3cgPSBnZXREZWZhdWx0Vmlldyh2YWx1ZSlcbiAgICByZXR1cm4gISF3aW5kb3cgJiYgdmFsdWUgaW5zdGFuY2VvZiB3aW5kb3cuTm9kZTtcbn07XG5cbi8qKlxuICogQ2hlY2sgaWYgYSB2YWx1ZSBpcyBhIERPTSBzZWxlY3Rpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBpc0RPTVNlbGVjdGlvbiA9ICh2YWx1ZTogYW55KTogdmFsdWUgaXMgRE9NU2VsZWN0aW9uID0+IHtcbiAgICBjb25zdCB3aW5kb3cgPSB2YWx1ZSAmJiB2YWx1ZS5hbmNob3JOb2RlICYmIGdldERlZmF1bHRWaWV3KHZhbHVlLmFuY2hvck5vZGUpXG4gICAgcmV0dXJuICEhd2luZG93ICYmIHZhbHVlIGluc3RhbmNlb2Ygd2luZG93LlNlbGVjdGlvblxufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgRE9NIG5vZGUgaXMgYW4gZWxlbWVudCBub2RlLlxuICovXG5leHBvcnQgY29uc3QgaXNET01UZXh0ID0gKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBET01UZXh0ID0+IHtcbiAgICByZXR1cm4gaXNET01Ob2RlKHZhbHVlKSAmJiB2YWx1ZS5ub2RlVHlwZSA9PT0gMztcbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBwYXN0ZSBldmVudCBpcyBhIHBsYWludGV4dC1vbmx5IGV2ZW50LlxuICovXG5leHBvcnQgY29uc3QgaXNQbGFpblRleHRPbmx5UGFzdGUgPSAoZXZlbnQ6IENsaXBib2FyZEV2ZW50KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgZXZlbnQuY2xpcGJvYXJkRGF0YSAmJlxuICAgICAgICBldmVudC5jbGlwYm9hcmREYXRhLmdldERhdGEoJ3RleHQvcGxhaW4nKSAhPT0gJycgJiZcbiAgICAgICAgZXZlbnQuY2xpcGJvYXJkRGF0YS50eXBlcy5sZW5ndGggPT09IDFcbiAgICApO1xufTtcblxuLyoqXG4gKiBOb3JtYWxpemUgYSBET00gcG9pbnQgc28gdGhhdCBpdCBhbHdheXMgcmVmZXJzIHRvIGEgdGV4dCBub2RlLlxuICovXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplRE9NUG9pbnQgPSAoZG9tUG9pbnQ6IERPTVBvaW50KTogRE9NUG9pbnQgPT4ge1xuICAgIGxldCBbbm9kZSwgb2Zmc2V0XSA9IGRvbVBvaW50O1xuXG4gICAgLy8gSWYgaXQncyBhbiBlbGVtZW50IG5vZGUsIGl0cyBvZmZzZXQgcmVmZXJzIHRvIHRoZSBpbmRleCBvZiBpdHMgY2hpbGRyZW5cbiAgICAvLyBpbmNsdWRpbmcgY29tbWVudCBub2Rlcywgc28gdHJ5IHRvIGZpbmQgdGhlIHJpZ2h0IHRleHQgY2hpbGQgbm9kZS5cbiAgICBpZiAoaXNET01FbGVtZW50KG5vZGUpICYmIG5vZGUuY2hpbGROb2Rlcy5sZW5ndGgpIHtcbiAgICAgICAgbGV0IGlzTGFzdCA9IG9mZnNldCA9PT0gbm9kZS5jaGlsZE5vZGVzLmxlbmd0aDtcbiAgICAgICAgbGV0IGluZGV4ID0gaXNMYXN0ID8gb2Zmc2V0IC0gMSA6IG9mZnNldDtcbiAgICAgICAgO1tub2RlLCBpbmRleF0gPSBnZXRFZGl0YWJsZUNoaWxkQW5kSW5kZXgobm9kZSxcbiAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgaXNMYXN0ID8gJ2JhY2t3YXJkJyA6ICdmb3J3YXJkJyk7XG5cbiAgICAgICAgLy8gSWYgdGhlIGVkaXRhYmxlIGNoaWxkIGZvdW5kIGlzIGluIGZyb250IG9mIGlucHV0IG9mZnNldCwgd2UgaW5zdGVhZCBzZWVrIHRvIGl0cyBlbmRcbiAgICAgICAgaXNMYXN0ID0gaW5kZXggPCBvZmZzZXQ7XG5cbiAgICAgICAgLy8gSWYgdGhlIG5vZGUgaGFzIGNoaWxkcmVuLCB0cmF2ZXJzZSB1bnRpbCB3ZSBoYXZlIGEgbGVhZiBub2RlLiBMZWFmIG5vZGVzXG4gICAgICAgIC8vIGNhbiBiZSBlaXRoZXIgdGV4dCBub2Rlcywgb3Igb3RoZXIgdm9pZCBET00gbm9kZXMuXG4gICAgICAgIHdoaWxlIChpc0RPTUVsZW1lbnQobm9kZSkgJiYgbm9kZS5jaGlsZE5vZGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgaSA9IGlzTGFzdCA/IG5vZGUuY2hpbGROb2Rlcy5sZW5ndGggLSAxIDogMDtcbiAgICAgICAgICAgIG5vZGUgPSBnZXRFZGl0YWJsZUNoaWxkKG5vZGUsIGksIGlzTGFzdCA/ICdiYWNrd2FyZCcgOiAnZm9yd2FyZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGV0ZXJtaW5lIHRoZSBuZXcgb2Zmc2V0IGluc2lkZSB0aGUgdGV4dCBub2RlLlxuICAgICAgICBvZmZzZXQgPVxuICAgICAgICAgICAgaXNMYXN0ICYmIG5vZGUudGV4dENvbnRlbnQgIT0gbnVsbCA/IG5vZGUudGV4dENvbnRlbnQubGVuZ3RoIDogMDtcbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gdGhlIG5vZGUgYW5kIG9mZnNldC5cbiAgICByZXR1cm4gW25vZGUsIG9mZnNldF07XG59O1xuXG4vKipcbiAqIERldGVybWluZXMgd2V0aGVyIHRoZSBhY3RpdmUgZWxlbWVudCBpcyBuZXN0ZWQgd2l0aGluIGEgc2hhZG93Um9vdFxuICovXG5cbmV4cG9ydCBjb25zdCBoYXNTaGFkb3dSb290ID0gKCkgPT4ge1xuICAgIHJldHVybiAhIShcbiAgICAgICAgd2luZG93LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgJiYgd2luZG93LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuc2hhZG93Um9vdFxuICAgIClcbn1cblxuLyoqXG4gKiBHZXQgdGhlIG5lYXJlc3QgZWRpdGFibGUgY2hpbGQgYW5kIGluZGV4IGF0IGBpbmRleGAgaW4gYSBgcGFyZW50YCwgcHJlZmVycmluZ1xuICogYGRpcmVjdGlvbmAuXG4gKi9cblxuZXhwb3J0IGNvbnN0IGdldEVkaXRhYmxlQ2hpbGRBbmRJbmRleCA9IChcbiAgICBwYXJlbnQ6IERPTUVsZW1lbnQsXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICBkaXJlY3Rpb246ICdmb3J3YXJkJyB8ICdiYWNrd2FyZCdcbik6IFtET01Ob2RlLCBudW1iZXJdID0+IHtcbiAgICBjb25zdCB7IGNoaWxkTm9kZXMgfSA9IHBhcmVudDtcbiAgICBsZXQgY2hpbGQgPSBjaGlsZE5vZGVzW2luZGV4XTtcbiAgICBsZXQgaSA9IGluZGV4O1xuICAgIGxldCB0cmllZEZvcndhcmQgPSBmYWxzZTtcbiAgICBsZXQgdHJpZWRCYWNrd2FyZCA9IGZhbHNlO1xuXG4gICAgLy8gV2hpbGUgdGhlIGNoaWxkIGlzIGEgY29tbWVudCBub2RlLCBvciBhbiBlbGVtZW50IG5vZGUgd2l0aCBubyBjaGlsZHJlbixcbiAgICAvLyBrZWVwIGl0ZXJhdGluZyB0byBmaW5kIGEgc2libGluZyBub24tdm9pZCwgbm9uLWNvbW1lbnQgbm9kZS5cbiAgICB3aGlsZSAoXG4gICAgICAgIGlzRE9NQ29tbWVudChjaGlsZCkgfHxcbiAgICAgICAgKGlzRE9NRWxlbWVudChjaGlsZCkgJiYgY2hpbGQuY2hpbGROb2Rlcy5sZW5ndGggPT09IDApIHx8XG4gICAgICAgIChpc0RPTUVsZW1lbnQoY2hpbGQpICYmIGNoaWxkLmdldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJykgPT09ICdmYWxzZScpXG4gICAgKSB7XG4gICAgICAgIGlmICh0cmllZEZvcndhcmQgJiYgdHJpZWRCYWNrd2FyZCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaSA+PSBjaGlsZE5vZGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgdHJpZWRGb3J3YXJkID0gdHJ1ZTtcbiAgICAgICAgICAgIGkgPSBpbmRleCAtIDE7XG4gICAgICAgICAgICBkaXJlY3Rpb24gPSAnYmFja3dhcmQnO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaSA8IDApIHtcbiAgICAgICAgICAgIHRyaWVkQmFja3dhcmQgPSB0cnVlO1xuICAgICAgICAgICAgaSA9IGluZGV4ICsgMTtcbiAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdmb3J3YXJkJztcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY2hpbGQgPSBjaGlsZE5vZGVzW2ldO1xuICAgICAgICBpbmRleCA9IGk7XG4gICAgICAgIGkgKz0gZGlyZWN0aW9uID09PSAnZm9yd2FyZCcgPyAxIDogLTE7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtjaGlsZCwgaW5kZXhdO1xufVxuXG4vKipcbiAqIEdldCB0aGUgbmVhcmVzdCBlZGl0YWJsZSBjaGlsZCBhdCBgaW5kZXhgIGluIGEgYHBhcmVudGAsIHByZWZlcnJpbmdcbiAqIGBkaXJlY3Rpb25gLlxuICovXG5cbmV4cG9ydCBjb25zdCBnZXRFZGl0YWJsZUNoaWxkID0gKFxuICAgIHBhcmVudDogRE9NRWxlbWVudCxcbiAgICBpbmRleDogbnVtYmVyLFxuICAgIGRpcmVjdGlvbjogJ2ZvcndhcmQnIHwgJ2JhY2t3YXJkJ1xuKTogRE9NTm9kZSA9PiB7XG4gICAgY29uc3QgW2NoaWxkXSA9IGdldEVkaXRhYmxlQ2hpbGRBbmRJbmRleChwYXJlbnQsIGluZGV4LCBkaXJlY3Rpb24pO1xuICAgIHJldHVybiBjaGlsZDtcbn1cblxuLyoqXG4gKiBHZXQgYSBwbGFpbnRleHQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGNvbnRlbnQgb2YgYSBub2RlLCBhY2NvdW50aW5nIGZvciBibG9ja1xuICogZWxlbWVudHMgd2hpY2ggZ2V0IGEgbmV3bGluZSBhcHBlbmRlZC5cbiAqXG4gKiBUaGUgZG9tTm9kZSBtdXN0IGJlIGF0dGFjaGVkIHRvIHRoZSBET00uXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRQbGFpblRleHQgPSAoZG9tTm9kZTogRE9NTm9kZSkgPT4ge1xuICAgIGxldCB0ZXh0ID0gJyc7XG5cbiAgICBpZiAoaXNET01UZXh0KGRvbU5vZGUpICYmIGRvbU5vZGUubm9kZVZhbHVlKSB7XG4gICAgICAgIHJldHVybiBkb21Ob2RlLm5vZGVWYWx1ZTtcbiAgICB9XG5cbiAgICBpZiAoaXNET01FbGVtZW50KGRvbU5vZGUpKSB7XG4gICAgICAgIGZvciAoY29uc3QgY2hpbGROb2RlIG9mIEFycmF5LmZyb20oZG9tTm9kZS5jaGlsZE5vZGVzKSkge1xuICAgICAgICAgICAgdGV4dCArPSBnZXRQbGFpblRleHQoY2hpbGROb2RlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRpc3BsYXkgPSBnZXRDb21wdXRlZFN0eWxlKGRvbU5vZGUpLmdldFByb3BlcnR5VmFsdWUoJ2Rpc3BsYXknKTtcblxuICAgICAgICBpZiAoZGlzcGxheSA9PT0gJ2Jsb2NrJyB8fCBkaXNwbGF5ID09PSAnbGlzdCcgfHwgZG9tTm9kZS50YWdOYW1lID09PSAnQlInKSB7XG4gICAgICAgICAgICB0ZXh0ICs9ICdcXG4nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRleHQ7XG59O1xuXG4iXX0=
160
+ /**
161
+ * Get x-slate-fragment attribute from data-slate-fragment
162
+ */
163
+ const catchSlateFragment = /data-slate-fragment="(.+?)"/m;
164
+ export const getSlateFragmentAttribute = (dataTransfer) => {
165
+ const htmlData = dataTransfer.getData('text/html');
166
+ const [, fragment] = htmlData.match(catchSlateFragment) || [];
167
+ return fragment;
168
+ };
169
+ /**
170
+ * Get the x-slate-fragment attribute that exist in text/html data
171
+ * and append it to the DataTransfer object
172
+ */
173
+ export const getClipboardData = (dataTransfer, clipboardFormatKey = 'x-slate-fragment') => {
174
+ if (!dataTransfer.getData(`application/${clipboardFormatKey}`)) {
175
+ const fragment = getSlateFragmentAttribute(dataTransfer);
176
+ if (fragment) {
177
+ const clipboardData = new DataTransfer();
178
+ dataTransfer.types.forEach(type => {
179
+ clipboardData.setData(type, dataTransfer.getData(type));
180
+ });
181
+ clipboardData.setData(`application/${clipboardFormatKey}`, fragment);
182
+ return clipboardData;
183
+ }
184
+ }
185
+ return dataTransfer;
186
+ };
187
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvc3JjL3V0aWxzL2RvbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILDhFQUE4RTtBQUM5RSw2RUFBNkU7QUFDN0UsdURBQXVEO0FBQ3ZELElBQU8sT0FBTyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7QUFDakMsSUFBTyxVQUFVLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztBQUN2QyxJQUFPLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO0FBQ3ZDLElBQU8sT0FBTyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7QUFDakMsSUFBTyxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztBQUNuQyxJQUFPLFlBQVksR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDO0FBQzNDLElBQU8sY0FBYyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUM7QUFDL0MsT0FBTyxFQUNILE9BQU8sRUFDUCxVQUFVLEVBQ1YsVUFBVSxFQUNWLE9BQU8sRUFDUCxRQUFRLEVBQ1IsWUFBWSxFQUNaLGNBQWMsRUFDakIsQ0FBQztBQVlGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBVSxFQUFpQixFQUFFO0lBQ3hELE9BQU8sQ0FDSCxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsYUFBYSxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUM1RSxDQUFDO0FBQ04sQ0FBQyxDQUFBO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFVLEVBQXVCLEVBQUU7SUFDNUQsT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsS0FBSyxDQUFDLENBQUM7QUFDcEQsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZ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Q0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1lBQzNELENBQUMsQ0FBQyxDQUFBO1lBQ0YsYUFBYSxDQUFDLE9BQU8sQ0FBQyxlQUFlLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUE7WUFDcEUsT0FBTyxhQUFhLENBQUE7U0FDdkI7S0FDSjtJQUNELE9BQU8sWUFBWSxDQUFBO0FBQ3ZCLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVHlwZXMuXG4gKi9cblxuLy8gQ09NUEFUOiBUaGlzIGlzIHJlcXVpcmVkIHRvIHByZXZlbnQgVHlwZVNjcmlwdCBhbGlhc2VzIGZyb20gZG9pbmcgc29tZSB2ZXJ5XG4vLyB3ZWlyZCB0aGluZ3MgZm9yIFNsYXRlJ3MgdHlwZXMgd2l0aCB0aGUgc2FtZSBuYW1lIGFzIGdsb2JhbHMuICgyMDE5LzExLzI3KVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy8zNTAwMlxuaW1wb3J0IERPTU5vZGUgPSBnbG9iYWxUaGlzLk5vZGU7XG5pbXBvcnQgRE9NQ29tbWVudCA9IGdsb2JhbFRoaXMuQ29tbWVudDtcbmltcG9ydCBET01FbGVtZW50ID0gZ2xvYmFsVGhpcy5FbGVtZW50O1xuaW1wb3J0IERPTVRleHQgPSBnbG9iYWxUaGlzLlRleHQ7XG5pbXBvcnQgRE9NUmFuZ2UgPSBnbG9iYWxUaGlzLlJhbmdlO1xuaW1wb3J0IERPTVNlbGVjdGlvbiA9IGdsb2JhbFRoaXMuU2VsZWN0aW9uO1xuaW1wb3J0IERPTVN0YXRpY1JhbmdlID0gZ2xvYmFsVGhpcy5TdGF0aWNSYW5nZTtcbmV4cG9ydCB7XG4gICAgRE9NTm9kZSxcbiAgICBET01Db21tZW50LFxuICAgIERPTUVsZW1lbnQsXG4gICAgRE9NVGV4dCxcbiAgICBET01SYW5nZSxcbiAgICBET01TZWxlY3Rpb24sXG4gICAgRE9NU3RhdGljUmFuZ2Vcbn07XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICAgICAgU2VsZWN0aW9uOiB0eXBlb2YgU2VsZWN0aW9uWydjb25zdHJ1Y3RvciddO1xuICAgICAgICBEYXRhVHJhbnNmZXI6IHR5cGVvZiBEYXRhVHJhbnNmZXJbJ2NvbnN0cnVjdG9yJ107XG4gICAgICAgIE5vZGU6IHR5cGVvZiBOb2RlWydjb25zdHJ1Y3RvciddO1xuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgRE9NUG9pbnQgPSBbTm9kZSwgbnVtYmVyXTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBob3N0IHdpbmRvdyBvZiBhIERPTSBub2RlXG4gKi9cbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0VmlldyA9ICh2YWx1ZTogYW55KTogV2luZG93IHwgbnVsbCA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgKHZhbHVlICYmIHZhbHVlLm93bmVyRG9jdW1lbnQgJiYgdmFsdWUub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldykgfHwgbnVsbFxuICAgICk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBET00gbm9kZSBpcyBhIGNvbW1lbnQgbm9kZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGlzRE9NQ29tbWVudCA9ICh2YWx1ZTogYW55KTogdmFsdWUgaXMgRE9NQ29tbWVudCA9PiB7XG4gICAgcmV0dXJuIGlzRE9NTm9kZSh2YWx1ZSkgJiYgdmFsdWUubm9kZVR5cGUgPT09IDg7XG59O1xuXG4vKipcbiAqIENoZWNrIGlmIGEgRE9NIG5vZGUgaXMgYW4gZWxlbWVudCBub2RlLlxuICovXG5leHBvcnQgY29uc3QgaXNET01FbGVtZW50ID0gKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBET01FbGVtZW50ID0+IHtcbiAgICByZXR1cm4gaXNET01Ob2RlKHZhbHVlKSAmJiB2YWx1ZS5ub2RlVHlwZSA9PT0gMTtcbn07XG5cbi8qKlxuICogQ2hlY2sgaWYgYSB2YWx1ZSBpcyBhIERPTSBub2RlLlxuICovXG5leHBvcnQgY29uc3QgaXNET01Ob2RlID0gKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBET01Ob2RlID0+IHtcbiAgICBjb25zdCB3aW5kb3cgPSBnZXREZWZhdWx0Vmlldyh2YWx1ZSlcbiAgICByZXR1cm4gISF3aW5kb3cgJiYgdmFsdWUgaW5zdGFuY2VvZiB3aW5kb3cuTm9kZTtcbn07XG5cbi8qKlxuICogQ2hlY2sgaWYgYSB2YWx1ZSBpcyBhIERPTSBzZWxlY3Rpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBpc0RPTVNlbGVjdGlvbiA9ICh2YWx1ZTogYW55KTogdmFsdWUgaXMgRE9NU2VsZWN0aW9uID0+IHtcbiAgICBjb25zdCB3aW5kb3cgPSB2YWx1ZSAmJiB2YWx1ZS5hbmNob3JOb2RlICYmIGdldERlZmF1bHRWaWV3KHZhbHVlLmFuY2hvck5vZGUpXG4gICAgcmV0dXJuICEhd2luZG93ICYmIHZhbHVlIGluc3RhbmNlb2Ygd2luZG93LlNlbGVjdGlvblxufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgRE9NIG5vZGUgaXMgYW4gZWxlbWVudCBub2RlLlxuICovXG5leHBvcnQgY29uc3QgaXNET01UZXh0ID0gKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBET01UZXh0ID0+IHtcbiAgICByZXR1cm4gaXNET01Ob2RlKHZhbHVlKSAmJiB2YWx1ZS5ub2RlVHlwZSA9PT0gMztcbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBwYXN0ZSBldmVudCBpcyBhIHBsYWludGV4dC1vbmx5IGV2ZW50LlxuICovXG5leHBvcnQgY29uc3QgaXNQbGFpblRleHRPbmx5UGFzdGUgPSAoZXZlbnQ6IENsaXBib2FyZEV2ZW50KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgZXZlbnQuY2xpcGJvYXJkRGF0YSAmJlxuICAgICAgICBldmVudC5jbGlwYm9hcmREYXRhLmdldERhdGEoJ3RleHQvcGxhaW4nKSAhPT0gJycgJiZcbiAgICAgICAgZXZlbnQuY2xpcGJvYXJkRGF0YS50eXBlcy5sZW5ndGggPT09IDFcbiAgICApO1xufTtcblxuLyoqXG4gKiBOb3JtYWxpemUgYSBET00gcG9pbnQgc28gdGhhdCBpdCBhbHdheXMgcmVmZXJzIHRvIGEgdGV4dCBub2RlLlxuICovXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplRE9NUG9pbnQgPSAoZG9tUG9pbnQ6IERPTVBvaW50KTogRE9NUG9pbnQgPT4ge1xuICAgIGxldCBbbm9kZSwgb2Zmc2V0XSA9IGRvbVBvaW50O1xuXG4gICAgLy8gSWYgaXQncyBhbiBlbGVtZW50IG5vZGUsIGl0cyBvZmZzZXQgcmVmZXJzIHRvIHRoZSBpbmRleCBvZiBpdHMgY2hpbGRyZW5cbiAgICAvLyBpbmNsdWRpbmcgY29tbWVudCBub2Rlcywgc28gdHJ5IHRvIGZpbmQgdGhlIHJpZ2h0IHRleHQgY2hpbGQgbm9kZS5cbiAgICBpZiAoaXNET01FbGVtZW50KG5vZGUpICYmIG5vZGUuY2hpbGROb2Rlcy5sZW5ndGgpIHtcbiAgICAgICAgbGV0IGlzTGFzdCA9IG9mZnNldCA9PT0gbm9kZS5jaGlsZE5vZGVzLmxlbmd0aDtcbiAgICAgICAgbGV0IGluZGV4ID0gaXNMYXN0ID8gb2Zmc2V0IC0gMSA6IG9mZnNldDtcbiAgICAgICAgO1tub2RlLCBpbmRleF0gPSBnZXRFZGl0YWJsZUNoaWxkQW5kSW5kZXgobm9kZSxcbiAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgaXNMYXN0ID8gJ2JhY2t3YXJkJyA6ICdmb3J3YXJkJyk7XG5cbiAgICAgICAgLy8gSWYgdGhlIGVkaXRhYmxlIGNoaWxkIGZvdW5kIGlzIGluIGZyb250IG9mIGlucHV0IG9mZnNldCwgd2UgaW5zdGVhZCBzZWVrIHRvIGl0cyBlbmRcbiAgICAgICAgaXNMYXN0ID0gaW5kZXggPCBvZmZzZXQ7XG5cbiAgICAgICAgLy8gSWYgdGhlIG5vZGUgaGFzIGNoaWxkcmVuLCB0cmF2ZXJzZSB1bnRpbCB3ZSBoYXZlIGEgbGVhZiBub2RlLiBMZWFmIG5vZGVzXG4gICAgICAgIC8vIGNhbiBiZSBlaXRoZXIgdGV4dCBub2Rlcywgb3Igb3RoZXIgdm9pZCBET00gbm9kZXMuXG4gICAgICAgIHdoaWxlIChpc0RPTUVsZW1lbnQobm9kZSkgJiYgbm9kZS5jaGlsZE5vZGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgaSA9IGlzTGFzdCA/IG5vZGUuY2hpbGROb2Rlcy5sZW5ndGggLSAxIDogMDtcbiAgICAgICAgICAgIG5vZGUgPSBnZXRFZGl0YWJsZUNoaWxkKG5vZGUsIGksIGlzTGFzdCA/ICdiYWNrd2FyZCcgOiAnZm9yd2FyZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGV0ZXJtaW5lIHRoZSBuZXcgb2Zmc2V0IGluc2lkZSB0aGUgdGV4dCBub2RlLlxuICAgICAgICBvZmZzZXQgPVxuICAgICAgICAgICAgaXNMYXN0ICYmIG5vZGUudGV4dENvbnRlbnQgIT0gbnVsbCA/IG5vZGUudGV4dENvbnRlbnQubGVuZ3RoIDogMDtcbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gdGhlIG5vZGUgYW5kIG9mZnNldC5cbiAgICByZXR1cm4gW25vZGUsIG9mZnNldF07XG59O1xuXG4vKipcbiAqIERldGVybWluZXMgd2V0aGVyIHRoZSBhY3RpdmUgZWxlbWVudCBpcyBuZXN0ZWQgd2l0aGluIGEgc2hhZG93Um9vdFxuICovXG5cbmV4cG9ydCBjb25zdCBoYXNTaGFkb3dSb290ID0gKCkgPT4ge1xuICAgIHJldHVybiAhIShcbiAgICAgICAgd2luZG93LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgJiYgd2luZG93LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuc2hhZG93Um9vdFxuICAgIClcbn1cblxuLyoqXG4gKiBHZXQgdGhlIG5lYXJlc3QgZWRpdGFibGUgY2hpbGQgYW5kIGluZGV4IGF0IGBpbmRleGAgaW4gYSBgcGFyZW50YCwgcHJlZmVycmluZ1xuICogYGRpcmVjdGlvbmAuXG4gKi9cblxuZXhwb3J0IGNvbnN0IGdldEVkaXRhYmxlQ2hpbGRBbmRJbmRleCA9IChcbiAgICBwYXJlbnQ6IERPTUVsZW1lbnQsXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICBkaXJlY3Rpb246ICdmb3J3YXJkJyB8ICdiYWNrd2FyZCdcbik6IFtET01Ob2RlLCBudW1iZXJdID0+IHtcbiAgICBjb25zdCB7IGNoaWxkTm9kZXMgfSA9IHBhcmVudDtcbiAgICBsZXQgY2hpbGQgPSBjaGlsZE5vZGVzW2luZGV4XTtcbiAgICBsZXQgaSA9IGluZGV4O1xuICAgIGxldCB0cmllZEZvcndhcmQgPSBmYWxzZTtcbiAgICBsZXQgdHJpZWRCYWNrd2FyZCA9IGZhbHNlO1xuXG4gICAgLy8gV2hpbGUgdGhlIGNoaWxkIGlzIGEgY29tbWVudCBub2RlLCBvciBhbiBlbGVtZW50IG5vZGUgd2l0aCBubyBjaGlsZHJlbixcbiAgICAvLyBrZWVwIGl0ZXJhdGluZyB0byBmaW5kIGEgc2libGluZyBub24tdm9pZCwgbm9uLWNvbW1lbnQgbm9kZS5cbiAgICB3aGlsZSAoXG4gICAgICAgIGlzRE9NQ29tbWVudChjaGlsZCkgfHxcbiAgICAgICAgKGlzRE9NRWxlbWVudChjaGlsZCkgJiYgY2hpbGQuY2hpbGROb2Rlcy5sZW5ndGggPT09IDApIHx8XG4gICAgICAgIChpc0RPTUVsZW1lbnQoY2hpbGQpICYmIGNoaWxkLmdldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJykgPT09ICdmYWxzZScpXG4gICAgKSB7XG4gICAgICAgIGlmICh0cmllZEZvcndhcmQgJiYgdHJpZWRCYWNrd2FyZCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaSA+PSBjaGlsZE5vZGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgdHJpZWRGb3J3YXJkID0gdHJ1ZTtcbiAgICAgICAgICAgIGkgPSBpbmRleCAtIDE7XG4gICAgICAgICAgICBkaXJlY3Rpb24gPSAnYmFja3dhcmQnO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaSA8IDApIHtcbiAgICAgICAgICAgIHRyaWVkQmFja3dhcmQgPSB0cnVlO1xuICAgICAgICAgICAgaSA9IGluZGV4ICsgMTtcbiAgICAgICAgICAgIGRpcmVjdGlvbiA9ICdmb3J3YXJkJztcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY2hpbGQgPSBjaGlsZE5vZGVzW2ldO1xuICAgICAgICBpbmRleCA9IGk7XG4gICAgICAgIGkgKz0gZGlyZWN0aW9uID09PSAnZm9yd2FyZCcgPyAxIDogLTE7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtjaGlsZCwgaW5kZXhdO1xufVxuXG4vKipcbiAqIEdldCB0aGUgbmVhcmVzdCBlZGl0YWJsZSBjaGlsZCBhdCBgaW5kZXhgIGluIGEgYHBhcmVudGAsIHByZWZlcnJpbmdcbiAqIGBkaXJlY3Rpb25gLlxuICovXG5cbmV4cG9ydCBjb25zdCBnZXRFZGl0YWJsZUNoaWxkID0gKFxuICAgIHBhcmVudDogRE9NRWxlbWVudCxcbiAgICBpbmRleDogbnVtYmVyLFxuICAgIGRpcmVjdGlvbjogJ2ZvcndhcmQnIHwgJ2JhY2t3YXJkJ1xuKTogRE9NTm9kZSA9PiB7XG4gICAgY29uc3QgW2NoaWxkXSA9IGdldEVkaXRhYmxlQ2hpbGRBbmRJbmRleChwYXJlbnQsIGluZGV4LCBkaXJlY3Rpb24pO1xuICAgIHJldHVybiBjaGlsZDtcbn1cblxuLyoqXG4gKiBHZXQgYSBwbGFpbnRleHQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGNvbnRlbnQgb2YgYSBub2RlLCBhY2NvdW50aW5nIGZvciBibG9ja1xuICogZWxlbWVudHMgd2hpY2ggZ2V0IGEgbmV3bGluZSBhcHBlbmRlZC5cbiAqXG4gKiBUaGUgZG9tTm9kZSBtdXN0IGJlIGF0dGFjaGVkIHRvIHRoZSBET00uXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRQbGFpblRleHQgPSAoZG9tTm9kZTogRE9NTm9kZSkgPT4ge1xuICAgIGxldCB0ZXh0ID0gJyc7XG5cbiAgICBpZiAoaXNET01UZXh0KGRvbU5vZGUpICYmIGRvbU5vZGUubm9kZVZhbHVlKSB7XG4gICAgICAgIHJldHVybiBkb21Ob2RlLm5vZGVWYWx1ZTtcbiAgICB9XG5cbiAgICBpZiAoaXNET01FbGVtZW50KGRvbU5vZGUpKSB7XG4gICAgICAgIGZvciAoY29uc3QgY2hpbGROb2RlIG9mIEFycmF5LmZyb20oZG9tTm9kZS5jaGlsZE5vZGVzKSkge1xuICAgICAgICAgICAgdGV4dCArPSBnZXRQbGFpblRleHQoY2hpbGROb2RlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRpc3BsYXkgPSBnZXRDb21wdXRlZFN0eWxlKGRvbU5vZGUpLmdldFByb3BlcnR5VmFsdWUoJ2Rpc3BsYXknKTtcblxuICAgICAgICBpZiAoZGlzcGxheSA9PT0gJ2Jsb2NrJyB8fCBkaXNwbGF5ID09PSAnbGlzdCcgfHwgZG9tTm9kZS50YWdOYW1lID09PSAnQlInKSB7XG4gICAgICAgICAgICB0ZXh0ICs9ICdcXG4nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRleHQ7XG59O1xuXG4vKipcbiAqIEdldCB4LXNsYXRlLWZyYWdtZW50IGF0dHJpYnV0ZSBmcm9tIGRhdGEtc2xhdGUtZnJhZ21lbnRcbiAqL1xuY29uc3QgY2F0Y2hTbGF0ZUZyYWdtZW50ID0gL2RhdGEtc2xhdGUtZnJhZ21lbnQ9XCIoLis/KVwiL21cbmV4cG9ydCBjb25zdCBnZXRTbGF0ZUZyYWdtZW50QXR0cmlidXRlID0gKFxuICAgIGRhdGFUcmFuc2ZlcjogRGF0YVRyYW5zZmVyXG4pOiBzdHJpbmcgfCB2b2lkID0+IHtcbiAgICBjb25zdCBodG1sRGF0YSA9IGRhdGFUcmFuc2Zlci5nZXREYXRhKCd0ZXh0L2h0bWwnKVxuICAgIGNvbnN0IFssIGZyYWdtZW50XSA9IGh0bWxEYXRhLm1hdGNoKGNhdGNoU2xhdGVGcmFnbWVudCkgfHwgW11cbiAgICByZXR1cm4gZnJhZ21lbnRcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHgtc2xhdGUtZnJhZ21lbnQgYXR0cmlidXRlIHRoYXQgZXhpc3QgaW4gdGV4dC9odG1sIGRhdGFcbiAqIGFuZCBhcHBlbmQgaXQgdG8gdGhlIERhdGFUcmFuc2ZlciBvYmplY3RcbiAqL1xuZXhwb3J0IGNvbnN0IGdldENsaXBib2FyZERhdGEgPSAoZGF0YVRyYW5zZmVyOiBEYXRhVHJhbnNmZXIsIGNsaXBib2FyZEZvcm1hdEtleSA9ICd4LXNsYXRlLWZyYWdtZW50Jyk6IERhdGFUcmFuc2ZlciA9PiB7XG4gICAgaWYgKCFkYXRhVHJhbnNmZXIuZ2V0RGF0YShgYXBwbGljYXRpb24vJHtjbGlwYm9hcmRGb3JtYXRLZXl9YCkpIHtcbiAgICAgICAgY29uc3QgZnJhZ21lbnQgPSBnZXRTbGF0ZUZyYWdtZW50QXR0cmlidXRlKGRhdGFUcmFuc2ZlcilcbiAgICAgICAgaWYgKGZyYWdtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBjbGlwYm9hcmREYXRhID0gbmV3IERhdGFUcmFuc2ZlcigpXG4gICAgICAgICAgICBkYXRhVHJhbnNmZXIudHlwZXMuZm9yRWFjaCh0eXBlID0+IHtcbiAgICAgICAgICAgICAgICBjbGlwYm9hcmREYXRhLnNldERhdGEodHlwZSwgZGF0YVRyYW5zZmVyLmdldERhdGEodHlwZSkpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgY2xpcGJvYXJkRGF0YS5zZXREYXRhKGBhcHBsaWNhdGlvbi8ke2NsaXBib2FyZEZvcm1hdEtleX1gLCBmcmFnbWVudClcbiAgICAgICAgICAgIHJldHVybiBjbGlwYm9hcmREYXRhXG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGRhdGFUcmFuc2ZlclxufVxuIl19
@@ -3,6 +3,7 @@ export const IS_IOS = typeof navigator !== 'undefined' &&
3
3
  /iPad|iPhone|iPod/.test(navigator.userAgent) &&
4
4
  !window.MSStream;
5
5
  export const IS_APPLE = typeof navigator !== 'undefined' && /Mac OS X/.test(navigator.userAgent);
6
+ export const IS_ANDROID = typeof navigator !== 'undefined' && /Android/.test(navigator.userAgent);
6
7
  export const IS_FIREFOX = typeof navigator !== 'undefined' &&
7
8
  /^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent);
8
9
  export const IS_SAFARI = typeof navigator !== 'undefined' &&
@@ -14,4 +15,22 @@ export const IS_CHROME = typeof navigator !== 'undefined' && /Chrome/i.test(navi
14
15
  // Native beforeInput events don't work well with react on Chrome 75 and older, Chrome 76+ can use beforeInput
15
16
  export const IS_CHROME_LEGACY = typeof navigator !== 'undefined' &&
16
17
  /Chrome?\/(?:[0-7][0-5]|[0-6][0-9])/i.test(navigator.userAgent);
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9zcmMvdXRpbHMvZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUNmLE9BQU8sU0FBUyxLQUFLLFdBQVc7SUFDaEMsT0FBTyxNQUFNLEtBQUssV0FBVztJQUM3QixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztJQUM1QyxDQUFFLE1BQWMsQ0FBQyxRQUFRLENBQUM7QUFFOUIsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUNqQixPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFN0UsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUNuQixPQUFPLFNBQVMsS0FBSyxXQUFXO0lBQ2hDLGtDQUFrQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFakUsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUNsQixPQUFPLFNBQVMsS0FBSyxXQUFXO0lBQ2hDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFekQscUNBQXFDO0FBQ3JDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FDdkIsT0FBTyxTQUFTLEtBQUssV0FBVztJQUNoQyxtQ0FBbUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRWxFLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FDbEIsT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRTVFLDhHQUE4RztBQUM5RyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FDekIsT0FBTyxTQUFTLEtBQUssV0FBVztJQUNoQyxxQ0FBcUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IElTX0lPUyA9XG4gICAgdHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIC9pUGFkfGlQaG9uZXxpUG9kLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmXG4gICAgISh3aW5kb3cgYXMgYW55KS5NU1N0cmVhbTtcblxuZXhwb3J0IGNvbnN0IElTX0FQUExFID1cbiAgICB0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiAvTWFjIE9TIFgvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG5cbmV4cG9ydCBjb25zdCBJU19GSVJFRk9YID1cbiAgICB0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIC9eKD8hLipTZWFtb25rZXkpKD89LipGaXJlZm94KS4qL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcblxuZXhwb3J0IGNvbnN0IElTX1NBRkFSSSA9XG4gICAgdHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAvVmVyc2lvblxcL1tcXGRcXC5dKy4qU2FmYXJpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuXG4vLyBcIm1vZGVyblwiIEVkZ2Ugd2FzIHJlbGVhc2VkIGF0IDc5LnhcbmV4cG9ydCBjb25zdCBJU19FREdFX0xFR0FDWSA9XG4gICAgdHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAvRWRnZT9cXC8oPzpbMC02XVswLTldfFswLTddWzAtOF0pL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcblxuZXhwb3J0IGNvbnN0IElTX0NIUk9NRSA9XG4gICAgdHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgL0Nocm9tZS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG5cbi8vIE5hdGl2ZSBiZWZvcmVJbnB1dCBldmVudHMgZG9uJ3Qgd29yayB3ZWxsIHdpdGggcmVhY3Qgb24gQ2hyb21lIDc1IGFuZCBvbGRlciwgQ2hyb21lIDc2KyBjYW4gdXNlIGJlZm9yZUlucHV0XG5leHBvcnQgY29uc3QgSVNfQ0hST01FX0xFR0FDWSA9XG4gICAgdHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAvQ2hyb21lP1xcLyg/OlswLTddWzAtNV18WzAtNl1bMC05XSkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuIl19
18
+ // Firefox did not support `beforeInput` until `v87`.
19
+ export const IS_FIREFOX_LEGACY = typeof navigator !== 'undefined' &&
20
+ /^(?!.*Seamonkey)(?=.*Firefox\/(?:[0-7][0-9]|[0-8][0-6])).*/i.test(navigator.userAgent);
21
+ // qq browser
22
+ export const IS_QQBROWSER = typeof navigator !== 'undefined' && /.*QQBrowser/.test(navigator.userAgent);
23
+ // UC mobile browser
24
+ export const IS_UC_MOBILE = typeof navigator !== 'undefined' && /.*UCBrowser/.test(navigator.userAgent);
25
+ // Wechat browser
26
+ export const IS_WECHATBROWSER = typeof navigator !== 'undefined' && /.*Wechat/.test(navigator.userAgent);
27
+ // COMPAT: Firefox/Edge Legacy don't support the `beforeinput` event
28
+ // Chrome Legacy doesn't support `beforeinput` correctly
29
+ export const HAS_BEFORE_INPUT_SUPPORT = !IS_CHROME_LEGACY &&
30
+ !IS_EDGE_LEGACY &&
31
+ // globalThis is undefined in older browsers
32
+ typeof globalThis !== 'undefined' &&
33
+ globalThis.InputEvent &&
34
+ // @ts-ignore The `getTargetRanges` property isn't recognized.
35
+ typeof globalThis.InputEvent.prototype.getTargetRanges === 'function';
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9zcmMvdXRpbHMvZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUNmLE9BQU8sU0FBUyxLQUFLLFdBQVc7SUFDaEMsT0FBTyxNQUFNLEtBQUssV0FBVztJQUM3QixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztJQUM1QyxDQUFFLE1BQWMsQ0FBQyxRQUFRLENBQUM7QUFFOUIsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUNqQixPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFN0UsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUNuQixPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUE7QUFFM0UsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUNuQixPQUFPLFNBQVMsS0FBSyxXQUFXO0lBQ2hDLGtDQUFrQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFakUsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUNsQixPQUFPLFNBQVMsS0FBSyxXQUFXO0lBQ2hDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFekQscUNBQXFDO0FBQ3JDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FDdkIsT0FBTyxTQUFTLEtBQUssV0FBVztJQUNoQyxtQ0FBbUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRWxFLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FDbEIsT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRTVFLDhHQUE4RztBQUM5RyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FDekIsT0FBTyxTQUFTLEtBQUssV0FBVztJQUNoQyxxQ0FBcUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBR3BFLHFEQUFxRDtBQUNyRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FDMUIsT0FBTyxTQUFTLEtBQUssV0FBVztJQUNoQyw2REFBNkQsQ0FBQyxJQUFJLENBQzlELFNBQVMsQ0FBQyxTQUFTLENBQ3RCLENBQUM7QUFFTixhQUFhO0FBQ2IsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUNyQixPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFaEYsb0JBQW9CO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FDckIsT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRWhGLGlCQUFpQjtBQUNqQixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FDekIsT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRTdFLG9FQUFvRTtBQUNwRSx3REFBd0Q7QUFDeEQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQ2pDLENBQUMsZ0JBQWdCO0lBQ2pCLENBQUMsY0FBYztJQUNmLDRDQUE0QztJQUM1QyxPQUFPLFVBQVUsS0FBSyxXQUFXO0lBQ2pDLFVBQVUsQ0FBQyxVQUFVO0lBQ3JCLDhEQUE4RDtJQUM5RCxPQUFPLFVBQVUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGVBQWUsS0FBSyxVQUFVLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgSVNfSU9TID1cbiAgICB0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmXG4gICAgL2lQYWR8aVBob25lfGlQb2QvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgJiZcbiAgICAhKHdpbmRvdyBhcyBhbnkpLk1TU3RyZWFtO1xuXG5leHBvcnQgY29uc3QgSVNfQVBQTEUgPVxuICAgIHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIC9NYWMgT1MgWC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcblxuZXhwb3J0IGNvbnN0IElTX0FORFJPSUQgPVxuICAgIHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIC9BbmRyb2lkLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpXG5cbmV4cG9ydCBjb25zdCBJU19GSVJFRk9YID1cbiAgICB0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIC9eKD8hLipTZWFtb25rZXkpKD89LipGaXJlZm94KS4qL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcblxuZXhwb3J0IGNvbnN0IElTX1NBRkFSSSA9XG4gICAgdHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAvVmVyc2lvblxcL1tcXGRcXC5dKy4qU2FmYXJpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuXG4vLyBcIm1vZGVyblwiIEVkZ2Ugd2FzIHJlbGVhc2VkIGF0IDc5LnhcbmV4cG9ydCBjb25zdCBJU19FREdFX0xFR0FDWSA9XG4gICAgdHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAvRWRnZT9cXC8oPzpbMC02XVswLTldfFswLTddWzAtOF0pL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcblxuZXhwb3J0IGNvbnN0IElTX0NIUk9NRSA9XG4gICAgdHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgL0Nocm9tZS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG5cbi8vIE5hdGl2ZSBiZWZvcmVJbnB1dCBldmVudHMgZG9uJ3Qgd29yayB3ZWxsIHdpdGggcmVhY3Qgb24gQ2hyb21lIDc1IGFuZCBvbGRlciwgQ2hyb21lIDc2KyBjYW4gdXNlIGJlZm9yZUlucHV0XG5leHBvcnQgY29uc3QgSVNfQ0hST01FX0xFR0FDWSA9XG4gICAgdHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAvQ2hyb21lP1xcLyg/OlswLTddWzAtNV18WzAtNl1bMC05XSkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuXG5cbi8vIEZpcmVmb3ggZGlkIG5vdCBzdXBwb3J0IGBiZWZvcmVJbnB1dGAgdW50aWwgYHY4N2AuXG5leHBvcnQgY29uc3QgSVNfRklSRUZPWF9MRUdBQ1kgPVxuICAgIHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmXG4gICAgL14oPyEuKlNlYW1vbmtleSkoPz0uKkZpcmVmb3hcXC8oPzpbMC03XVswLTldfFswLThdWzAtNl0pKS4qL2kudGVzdChcbiAgICAgICAgbmF2aWdhdG9yLnVzZXJBZ2VudFxuICAgICk7XG5cbi8vIHFxIGJyb3dzZXJcbmV4cG9ydCBjb25zdCBJU19RUUJST1dTRVIgPVxuICAgIHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIC8uKlFRQnJvd3Nlci8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcblxuLy8gVUMgbW9iaWxlIGJyb3dzZXJcbmV4cG9ydCBjb25zdCBJU19VQ19NT0JJTEUgPVxuICAgIHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIC8uKlVDQnJvd3Nlci8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcblxuLy8gV2VjaGF0IGJyb3dzZXJcbmV4cG9ydCBjb25zdCBJU19XRUNIQVRCUk9XU0VSID1cbiAgICB0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiAvLipXZWNoYXQvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG5cbi8vIENPTVBBVDogRmlyZWZveC9FZGdlIExlZ2FjeSBkb24ndCBzdXBwb3J0IHRoZSBgYmVmb3JlaW5wdXRgIGV2ZW50XG4vLyBDaHJvbWUgTGVnYWN5IGRvZXNuJ3Qgc3VwcG9ydCBgYmVmb3JlaW5wdXRgIGNvcnJlY3RseVxuZXhwb3J0IGNvbnN0IEhBU19CRUZPUkVfSU5QVVRfU1VQUE9SVCA9XG4gICAgIUlTX0NIUk9NRV9MRUdBQ1kgJiZcbiAgICAhSVNfRURHRV9MRUdBQ1kgJiZcbiAgICAvLyBnbG9iYWxUaGlzIGlzIHVuZGVmaW5lZCBpbiBvbGRlciBicm93c2Vyc1xuICAgIHR5cGVvZiBnbG9iYWxUaGlzICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIGdsb2JhbFRoaXMuSW5wdXRFdmVudCAmJlxuICAgIC8vIEB0cy1pZ25vcmUgVGhlIGBnZXRUYXJnZXRSYW5nZXNgIHByb3BlcnR5IGlzbid0IHJlY29nbml6ZWQuXG4gICAgdHlwZW9mIGdsb2JhbFRoaXMuSW5wdXRFdmVudC5wcm90b3R5cGUuZ2V0VGFyZ2V0UmFuZ2VzID09PSAnZnVuY3Rpb24nIl19
@@ -208,6 +208,33 @@ const getPlainText = (domNode) => {
208
208
  }
209
209
  return text;
210
210
  };
211
+ /**
212
+ * Get x-slate-fragment attribute from data-slate-fragment
213
+ */
214
+ const catchSlateFragment = /data-slate-fragment="(.+?)"/m;
215
+ const getSlateFragmentAttribute = (dataTransfer) => {
216
+ const htmlData = dataTransfer.getData('text/html');
217
+ const [, fragment] = htmlData.match(catchSlateFragment) || [];
218
+ return fragment;
219
+ };
220
+ /**
221
+ * Get the x-slate-fragment attribute that exist in text/html data
222
+ * and append it to the DataTransfer object
223
+ */
224
+ const getClipboardData = (dataTransfer, clipboardFormatKey = 'x-slate-fragment') => {
225
+ if (!dataTransfer.getData(`application/${clipboardFormatKey}`)) {
226
+ const fragment = getSlateFragmentAttribute(dataTransfer);
227
+ if (fragment) {
228
+ const clipboardData = new DataTransfer();
229
+ dataTransfer.types.forEach(type => {
230
+ clipboardData.setData(type, dataTransfer.getData(type));
231
+ });
232
+ clipboardData.setData(`application/${clipboardFormatKey}`, fragment);
233
+ return clipboardData;
234
+ }
235
+ }
236
+ return dataTransfer;
237
+ };
211
238
 
212
239
  /**
213
240
  * An auto-incrementing identifier for keys.
@@ -228,6 +255,7 @@ const IS_IOS = typeof navigator !== 'undefined' &&
228
255
  /iPad|iPhone|iPod/.test(navigator.userAgent) &&
229
256
  !window.MSStream;
230
257
  const IS_APPLE = typeof navigator !== 'undefined' && /Mac OS X/.test(navigator.userAgent);
258
+ const IS_ANDROID = typeof navigator !== 'undefined' && /Android/.test(navigator.userAgent);
231
259
  const IS_FIREFOX = typeof navigator !== 'undefined' &&
232
260
  /^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent);
233
261
  const IS_SAFARI = typeof navigator !== 'undefined' &&
@@ -239,6 +267,24 @@ const IS_CHROME = typeof navigator !== 'undefined' && /Chrome/i.test(navigator.u
239
267
  // Native beforeInput events don't work well with react on Chrome 75 and older, Chrome 76+ can use beforeInput
240
268
  const IS_CHROME_LEGACY = typeof navigator !== 'undefined' &&
241
269
  /Chrome?\/(?:[0-7][0-5]|[0-6][0-9])/i.test(navigator.userAgent);
270
+ // Firefox did not support `beforeInput` until `v87`.
271
+ const IS_FIREFOX_LEGACY = typeof navigator !== 'undefined' &&
272
+ /^(?!.*Seamonkey)(?=.*Firefox\/(?:[0-7][0-9]|[0-8][0-6])).*/i.test(navigator.userAgent);
273
+ // qq browser
274
+ const IS_QQBROWSER = typeof navigator !== 'undefined' && /.*QQBrowser/.test(navigator.userAgent);
275
+ // UC mobile browser
276
+ const IS_UC_MOBILE = typeof navigator !== 'undefined' && /.*UCBrowser/.test(navigator.userAgent);
277
+ // Wechat browser
278
+ const IS_WECHATBROWSER = typeof navigator !== 'undefined' && /.*Wechat/.test(navigator.userAgent);
279
+ // COMPAT: Firefox/Edge Legacy don't support the `beforeinput` event
280
+ // Chrome Legacy doesn't support `beforeinput` correctly
281
+ const HAS_BEFORE_INPUT_SUPPORT = !IS_CHROME_LEGACY &&
282
+ !IS_EDGE_LEGACY &&
283
+ // globalThis is undefined in older browsers
284
+ typeof globalThis !== 'undefined' &&
285
+ globalThis.InputEvent &&
286
+ // @ts-ignore The `getTargetRanges` property isn't recognized.
287
+ typeof globalThis.InputEvent.prototype.getTargetRanges === 'function';
242
288
 
243
289
  const FAKE_LEFT_BLOCK_CARD_OFFSET = -1;
244
290
  const FAKE_RIGHT_BLOCK_CARD_OFFSET = -2;
@@ -321,27 +367,16 @@ const AngularEditor = {
321
367
  throw new Error(`Unable to find the path for Slate node: ${JSON.stringify(node)}`);
322
368
  },
323
369
  /**
324
- * Find the DOM node that implements DocumentOrShadowRoot for the editor.
325
- */
370
+ * Find the DOM node that implements DocumentOrShadowRoot for the editor.
371
+ */
326
372
  findDocumentOrShadowRoot(editor) {
327
373
  const el = AngularEditor.toDOMNode(editor, editor);
328
374
  const root = el.getRootNode();
329
- // The below exception will always be thrown for iframes because the document inside an iframe
330
- // does not inherit it's prototype from the parent document, therefore we return early
331
- if (el.ownerDocument !== document) {
332
- return el.ownerDocument;
333
- }
334
- if (!(root instanceof Document || root instanceof ShadowRoot)) {
335
- throw new Error(`Unable to find DocumentOrShadowRoot for editor element: ${el}`);
336
- }
337
- // COMPAT: Only Chrome implements the DocumentOrShadowRoot mixin for
338
- // ShadowRoot; other browsers still implement it on the Document
339
- // interface. (2020/08/08)
340
- // https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot#Properties
341
- if (root.getSelection === undefined && el.ownerDocument !== null) {
342
- return el.ownerDocument;
343
- }
344
- return root;
375
+ if ((root instanceof Document || root instanceof ShadowRoot) &&
376
+ root.getSelection != null) {
377
+ return root;
378
+ }
379
+ return el.ownerDocument;
345
380
  },
346
381
  /**
347
382
  * Check if the editor is focused.
@@ -438,6 +473,18 @@ const AngularEditor = {
438
473
  insertData(editor, data) {
439
474
  editor.insertData(data);
440
475
  },
476
+ /**
477
+ * Insert fragment data from a `DataTransfer` into the editor.
478
+ */
479
+ insertFragmentData(editor, data) {
480
+ return editor.insertFragmentData(data);
481
+ },
482
+ /**
483
+ * Insert text data from a `DataTransfer` into the editor.
484
+ */
485
+ insertTextData(editor, data) {
486
+ return editor.insertTextData(data);
487
+ },
441
488
  /**
442
489
  * onKeydown hook.
443
490
  */
@@ -453,8 +500,8 @@ const AngularEditor = {
453
500
  /**
454
501
  * Sets data from the currently selected fragment on a `DataTransfer`.
455
502
  */
456
- setFragmentData(editor, data) {
457
- editor.setFragmentData(data);
503
+ setFragmentData(editor, data, originEvent) {
504
+ editor.setFragmentData(data, originEvent);
458
505
  },
459
506
  deleteCutData(editor) {
460
507
  editor.deleteCutData();
@@ -711,7 +758,9 @@ const AngularEditor = {
711
758
  // composition the ASCII characters will be prepended to the zero-width
712
759
  // space, so subtract 1 from the offset to account for the zero-width
713
760
  // space character.
714
- if (domNode && offset === domNode.textContent.length && parentNode && parentNode.hasAttribute('data-slate-zero-width')) {
761
+ if (domNode &&
762
+ offset === domNode.textContent.length &&
763
+ (parentNode && parentNode.hasAttribute('data-slate-zero-width'))) {
715
764
  offset--;
716
765
  }
717
766
  }
@@ -1125,7 +1174,7 @@ const withAngular = (editor, clipboardFormatKey = 'x-slate-fragment') => {
1125
1174
  // in the HTML, and can be used for intra-Slate pasting. If it's a text
1126
1175
  // node, wrap it in a `<span>` so we have something to set an attribute on.
1127
1176
  if (isDOMText(attach)) {
1128
- const span = document.createElement('span');
1177
+ const span = attach.ownerDocument.createElement('span');
1129
1178
  // COMPAT: In Chrome and Safari, if we don't add the `white-space` style
1130
1179
  // then leading and trailing spaces will be ignored. (2017/09/21)
1131
1180
  span.style.whiteSpace = 'pre';
@@ -1139,13 +1188,14 @@ const withAngular = (editor, clipboardFormatKey = 'x-slate-fragment') => {
1139
1188
  attach.setAttribute('data-slate-fragment', encoded);
1140
1189
  data.setData(`application/${clipboardFormatKey}`, encoded);
1141
1190
  // Add the content to a <div> so that we can get its inner HTML.
1142
- const div = document.createElement('div');
1191
+ const div = contents.ownerDocument.createElement('div');
1143
1192
  div.appendChild(contents);
1144
1193
  div.setAttribute('hidden', 'true');
1145
- document.body.appendChild(div);
1194
+ contents.ownerDocument.body.appendChild(div);
1146
1195
  data.setData('text/html', div.innerHTML);
1147
1196
  data.setData('text/plain', getPlainText(div));
1148
- document.body.removeChild(div);
1197
+ contents.ownerDocument.body.removeChild(div);
1198
+ return data;
1149
1199
  };
1150
1200
  e.deleteCutData = () => {
1151
1201
  const { selection } = editor;
@@ -1162,13 +1212,25 @@ const withAngular = (editor, clipboardFormatKey = 'x-slate-fragment') => {
1162
1212
  }
1163
1213
  };
1164
1214
  e.insertData = (data) => {
1165
- const fragment = data.getData(`application/${clipboardFormatKey}`);
1215
+ if (!e.insertFragmentData(data)) {
1216
+ e.insertTextData(data);
1217
+ }
1218
+ };
1219
+ e.insertFragmentData = (data) => {
1220
+ /**
1221
+ * Checking copied fragment from application/x-slate-fragment or data-slate-fragment
1222
+ */
1223
+ const fragment = data.getData(`application/${clipboardFormatKey}`) ||
1224
+ getSlateFragmentAttribute(data);
1166
1225
  if (fragment) {
1167
1226
  const decoded = decodeURIComponent(window.atob(fragment));
1168
1227
  const parsed = JSON.parse(decoded);
1169
1228
  e.insertFragment(parsed);
1170
- return;
1229
+ return true;
1171
1230
  }
1231
+ return false;
1232
+ };
1233
+ e.insertTextData = (data) => {
1172
1234
  const text = data.getData('text/plain');
1173
1235
  if (text) {
1174
1236
  const lines = text.split(/\r\n|\r|\n/);
@@ -1180,7 +1242,9 @@ const withAngular = (editor, clipboardFormatKey = 'x-slate-fragment') => {
1180
1242
  e.insertText(line);
1181
1243
  split = true;
1182
1244
  }
1245
+ return true;
1183
1246
  }
1247
+ return false;
1184
1248
  };
1185
1249
  e.onKeydown = () => { };
1186
1250
  e.onClick = () => { };
@@ -2443,13 +2507,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImpor
2443
2507
  }] } });
2444
2508
 
2445
2509
  const timeDebug = Debug('slate-angular-time');
2446
- // COMPAT: Firefox/Edge Legacy don't support the `beforeinput` event
2447
- // Chrome Legacy doesn't support `beforeinput` correctly
2448
- const HAS_BEFORE_INPUT_SUPPORT = !IS_CHROME_LEGACY &&
2449
- !IS_EDGE_LEGACY &&
2450
- globalThis.InputEvent &&
2451
- // @ts-ignore The `getTargetRanges` property isn't recognized.
2452
- typeof globalThis.InputEvent.prototype.getTargetRanges === 'function';
2453
2510
  // not correctly clipboardData on beforeinput
2454
2511
  const forceOnDOMPaste = IS_SAFARI;
2455
2512
  class SlateEditableComponent {
@@ -2880,7 +2937,10 @@ class SlateEditableComponent {
2880
2937
  case 'insertFromYank':
2881
2938
  case 'insertReplacementText':
2882
2939
  case 'insertText': {
2883
- if (data instanceof DataTransfer) {
2940
+ // use a weak comparison instead of 'instanceof' to allow
2941
+ // programmatic access of paste events coming from external windows
2942
+ // like cypress where cy.window does not work realibly
2943
+ if ((data === null || data === void 0 ? void 0 : data.constructor.name) === 'DataTransfer') {
2884
2944
  AngularEditor.insertData(editor, data);
2885
2945
  }
2886
2946
  else if (typeof data === 'string') {
@@ -2992,13 +3052,13 @@ class SlateEditableComponent {
2992
3052
  const isOutsideSlate = !hasStringTarget(window.getSelection()) && isTargetInsideVoid(this.editor, event.target);
2993
3053
  if (!isOutsideSlate && hasTarget(this.editor, event.target) && !this.readonly && !this.isDOMEventHandled(event, this.copy)) {
2994
3054
  event.preventDefault();
2995
- AngularEditor.setFragmentData(this.editor, event.clipboardData);
3055
+ AngularEditor.setFragmentData(this.editor, event.clipboardData, 'copy');
2996
3056
  }
2997
3057
  }
2998
3058
  onDOMCut(event) {
2999
3059
  if (!this.readonly && hasEditableTarget(this.editor, event.target) && !this.isDOMEventHandled(event, this.cut)) {
3000
3060
  event.preventDefault();
3001
- AngularEditor.setFragmentData(this.editor, event.clipboardData);
3061
+ AngularEditor.setFragmentData(this.editor, event.clipboardData, 'cut');
3002
3062
  const { selection } = this.editor;
3003
3063
  if (selection) {
3004
3064
  AngularEditor.deleteCutData(this.editor);
@@ -3017,7 +3077,7 @@ class SlateEditableComponent {
3017
3077
  }
3018
3078
  }
3019
3079
  onDOMDragStart(event) {
3020
- if (hasTarget(this.editor, event.target) && !this.isDOMEventHandled(event, this.dragStart)) {
3080
+ if (!this.readonly && hasTarget(this.editor, event.target) && !this.isDOMEventHandled(event, this.dragStart)) {
3021
3081
  const node = AngularEditor.toSlateNode(this.editor, event.target);
3022
3082
  const path = AngularEditor.findPath(this.editor, node);
3023
3083
  const voidMatch = Editor.isVoid(this.editor, node) ||
@@ -3029,7 +3089,7 @@ class SlateEditableComponent {
3029
3089
  Transforms.select(this.editor, range);
3030
3090
  }
3031
3091
  this.isDraggingInternally = true;
3032
- AngularEditor.setFragmentData(this.editor, event.dataTransfer);
3092
+ AngularEditor.setFragmentData(this.editor, event.dataTransfer, 'drag');
3033
3093
  }
3034
3094
  }
3035
3095
  onDOMDrop(event) {
@@ -3572,5 +3632,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImpor
3572
3632
  * Generated bundle index. Do not edit.
3573
3633
  */
3574
3634
 
3575
- export { AngularEditor, BaseComponent, BaseElementComponent, BaseLeafComponent, BaseTextComponent, DOMComment, DOMElement, DOMNode, DOMRange, DOMSelection, DOMStaticRange, DOMText, 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, IS_APPLE, IS_CHROME, IS_CHROME_LEGACY, IS_CLICKING, IS_DRAGGING, IS_EDGE_LEGACY, IS_FIREFOX, IS_FOCUSED, IS_IOS, IS_READONLY, IS_SAFARI, KEY_TO_ELEMENT, Key, NODE_TO_ELEMENT, NODE_TO_INDEX, NODE_TO_KEY, NODE_TO_PARENT, PLACEHOLDER_SYMBOL, SlateChildrenComponent, SlateEditableComponent, SlateElementComponent, SlateErrorCode, SlateLeavesComponent, SlateModule, SlateStringComponent, check, getCardTargetAttribute, getDefaultView, getEditableChild, getEditableChildAndIndex, getPlainText, hasBeforeContextChange, hasBlockCard, hasBlockCardWithNode, hasShadowRoot, hotkeys, isCardCenterByTargetAttr, isCardLeft, isCardLeftByTargetAttr, isCardRightByTargetAttr, isComponentType, isDOMComment, isDOMElement, isDOMNode, isDOMSelection, isDOMText, isDecoratorRangeListEqual, isPlainTextOnlyPaste, isTemplateRef, isValid, normalize, normalizeDOMPoint, shallowCompare, withAngular };
3635
+ export { AngularEditor, BaseComponent, BaseElementComponent, BaseLeafComponent, BaseTextComponent, DOMComment, DOMElement, DOMNode, DOMRange, DOMSelection, DOMStaticRange, DOMText, 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, SlateChildrenComponent, SlateEditableComponent, SlateElementComponent, SlateErrorCode, SlateLeavesComponent, SlateModule, SlateStringComponent, check, getCardTargetAttribute, getClipboardData, getDefaultView, getEditableChild, getEditableChildAndIndex, getPlainText, getSlateFragmentAttribute, hasBeforeContextChange, hasBlockCard, hasBlockCardWithNode, hasShadowRoot, hotkeys, isCardCenterByTargetAttr, isCardLeft, isCardLeftByTargetAttr, isCardRightByTargetAttr, isComponentType, isDOMComment, isDOMElement, isDOMNode, isDOMSelection, isDOMText, isDecoratorRangeListEqual, isPlainTextOnlyPaste, isTemplateRef, isValid, normalize, normalizeDOMPoint, shallowCompare, withAngular };
3576
3636
  //# sourceMappingURL=slate-angular.js.map