{"version":3,"file":"static/js/564_9aa7890e4ca1af9127eb.js","mappings":"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","sources":["file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/slate-history@0.110.3_slate@0.110.2/node_modules/slate-history/dist/index.es.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/scroll-into-view-if-needed@3.1.0/node_modules/scroll-into-view-if-needed/dist/index.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/slate-dom@0.111.0_slate@0.110.2/node_modules/slate-dom/dist/index.es.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/slate-react@0.111.0_odid62zgrwidw3rh3dyr4gxhaq/node_modules/slate-react/dist/index.es.js"],"sourcesContent":["import { isPlainObject } from 'is-plain-object';\nimport { Operation, Editor, Transforms, Path } from 'slate';\n\n// eslint-disable-next-line no-redeclare\nvar History = {\n /**\n * Check if a value is a `History` object.\n */\n isHistory(value) {\n return isPlainObject(value) && Array.isArray(value.redos) && Array.isArray(value.undos) && (value.redos.length === 0 || Operation.isOperationList(value.redos[0].operations)) && (value.undos.length === 0 || Operation.isOperationList(value.undos[0].operations));\n }\n};\n\n/**\n * Weakmaps for attaching state to the editor.\n */\nvar HISTORY = new WeakMap();\nvar SAVING = new WeakMap();\nvar MERGING = new WeakMap();\nvar SPLITTING_ONCE = new WeakMap();\n// eslint-disable-next-line no-redeclare\nvar HistoryEditor = {\n /**\n * Check if a value is a `HistoryEditor` object.\n */\n isHistoryEditor(value) {\n return History.isHistory(value.history) && Editor.isEditor(value);\n },\n /**\n * Get the merge flag's current value.\n */\n isMerging(editor) {\n return MERGING.get(editor);\n },\n /**\n * Get the splitting once flag's current value.\n */\n isSplittingOnce(editor) {\n return SPLITTING_ONCE.get(editor);\n },\n setSplittingOnce(editor, value) {\n SPLITTING_ONCE.set(editor, value);\n },\n /**\n * Get the saving flag's current value.\n */\n isSaving(editor) {\n return SAVING.get(editor);\n },\n /**\n * Redo to the previous saved state.\n */\n redo(editor) {\n editor.redo();\n },\n /**\n * Undo to the previous saved state.\n */\n undo(editor) {\n editor.undo();\n },\n /**\n * Apply a series of changes inside a synchronous `fn`, These operations will\n * be merged into the previous history.\n */\n withMerging(editor, fn) {\n var prev = HistoryEditor.isMerging(editor);\n MERGING.set(editor, true);\n fn();\n MERGING.set(editor, prev);\n },\n /**\n * Apply a series of changes inside a synchronous `fn`, ensuring that the first\n * operation starts a new batch in the history. Subsequent operations will be\n * merged as usual.\n */\n withNewBatch(editor, fn) {\n var prev = HistoryEditor.isMerging(editor);\n MERGING.set(editor, true);\n SPLITTING_ONCE.set(editor, true);\n fn();\n MERGING.set(editor, prev);\n SPLITTING_ONCE.delete(editor);\n },\n /**\n * Apply a series of changes inside a synchronous `fn`, without merging any of\n * the new operations into previous save point in the history.\n */\n withoutMerging(editor, fn) {\n var prev = HistoryEditor.isMerging(editor);\n MERGING.set(editor, false);\n fn();\n MERGING.set(editor, prev);\n },\n /**\n * Apply a series of changes inside a synchronous `fn`, without saving any of\n * their operations into the history.\n */\n withoutSaving(editor, fn) {\n var prev = HistoryEditor.isSaving(editor);\n SAVING.set(editor, false);\n fn();\n SAVING.set(editor, prev);\n }\n};\n\n/**\n * The `withHistory` plugin keeps track of the operation history of a Slate\n * editor as operations are applied to it, using undo and redo stacks.\n *\n * If you are using TypeScript, you must extend Slate's CustomTypes to use\n * this plugin.\n *\n * See https://docs.slatejs.org/concepts/11-typescript to learn how.\n */\nvar withHistory = editor => {\n var e = editor;\n var {\n apply\n } = e;\n e.history = {\n undos: [],\n redos: []\n };\n e.redo = () => {\n var {\n history\n } = e;\n var {\n redos\n } = history;\n if (redos.length > 0) {\n var batch = redos[redos.length - 1];\n if (batch.selectionBefore) {\n Transforms.setSelection(e, batch.selectionBefore);\n }\n HistoryEditor.withoutSaving(e, () => {\n Editor.withoutNormalizing(e, () => {\n for (var op of batch.operations) {\n e.apply(op);\n }\n });\n });\n history.redos.pop();\n e.writeHistory('undos', batch);\n }\n };\n e.undo = () => {\n var {\n history\n } = e;\n var {\n undos\n } = history;\n if (undos.length > 0) {\n var batch = undos[undos.length - 1];\n HistoryEditor.withoutSaving(e, () => {\n Editor.withoutNormalizing(e, () => {\n var inverseOps = batch.operations.map(Operation.inverse).reverse();\n for (var op of inverseOps) {\n e.apply(op);\n }\n if (batch.selectionBefore) {\n Transforms.setSelection(e, batch.selectionBefore);\n }\n });\n });\n e.writeHistory('redos', batch);\n history.undos.pop();\n }\n };\n e.apply = op => {\n var {\n operations,\n history\n } = e;\n var {\n undos\n } = history;\n var lastBatch = undos[undos.length - 1];\n var lastOp = lastBatch && lastBatch.operations[lastBatch.operations.length - 1];\n var save = HistoryEditor.isSaving(e);\n var merge = HistoryEditor.isMerging(e);\n if (save == null) {\n save = shouldSave(op);\n }\n if (save) {\n if (merge == null) {\n if (lastBatch == null) {\n merge = false;\n } else if (operations.length !== 0) {\n merge = true;\n } else {\n merge = shouldMerge(op, lastOp);\n }\n }\n if (HistoryEditor.isSplittingOnce(e)) {\n merge = false;\n HistoryEditor.setSplittingOnce(e, undefined);\n }\n if (lastBatch && merge) {\n lastBatch.operations.push(op);\n } else {\n var batch = {\n operations: [op],\n selectionBefore: e.selection\n };\n e.writeHistory('undos', batch);\n }\n while (undos.length > 100) {\n undos.shift();\n }\n history.redos = [];\n }\n apply(op);\n };\n e.writeHistory = (stack, batch) => {\n e.history[stack].push(batch);\n };\n return e;\n};\n/**\n * Check whether to merge an operation into the previous operation.\n */\nvar shouldMerge = (op, prev) => {\n if (prev && op.type === 'insert_text' && prev.type === 'insert_text' && op.offset === prev.offset + prev.text.length && Path.equals(op.path, prev.path)) {\n return true;\n }\n if (prev && op.type === 'remove_text' && prev.type === 'remove_text' && op.offset + op.text.length === prev.offset && Path.equals(op.path, prev.path)) {\n return true;\n }\n return false;\n};\n/**\n * Check whether an operation needs to be saved to the history.\n */\nvar shouldSave = (op, prev) => {\n if (op.type === 'set_selection') {\n return false;\n }\n return true;\n};\n\nexport { HISTORY, History, HistoryEditor, MERGING, SAVING, SPLITTING_ONCE, withHistory };\n//# sourceMappingURL=index.es.js.map\n","import{compute as t}from\"compute-scroll-into-view\";const o=t=>!1===t?{block:\"end\",inline:\"nearest\"}:(t=>t===Object(t)&&0!==Object.keys(t).length)(t)?t:{block:\"start\",inline:\"nearest\"};function e(e,r){if(!e.isConnected||!(t=>{let o=t;for(;o&&o.parentNode;){if(o.parentNode===document)return!0;o=o.parentNode instanceof ShadowRoot?o.parentNode.host:o.parentNode}return!1})(e))return;const n=(t=>{const o=window.getComputedStyle(t);return{top:parseFloat(o.scrollMarginTop)||0,right:parseFloat(o.scrollMarginRight)||0,bottom:parseFloat(o.scrollMarginBottom)||0,left:parseFloat(o.scrollMarginLeft)||0}})(e);if((t=>\"object\"==typeof t&&\"function\"==typeof t.behavior)(r))return r.behavior(t(e,r));const l=\"boolean\"==typeof r||null==r?void 0:r.behavior;for(const{el:a,top:i,left:s}of t(e,o(r))){const t=i-n.top+n.bottom,o=s-n.left+n.right;a.scroll({top:t,left:o,behavior:l})}}export{e as default};//# sourceMappingURL=index.js.map\n","import { Transforms, Element, Editor, Scrubber, Range, Node, Text, Path, Point } from 'slate';\nimport { isHotkey } from 'is-hotkey';\n\n/**\n * Types.\n */\n// COMPAT: This is required to prevent TypeScript aliases from doing some very\n// weird things for Slate's types with the same name as globals. (2019/11/27)\n// https://github.com/microsoft/TypeScript/issues/35002\nvar DOMNode = globalThis.Node;\nvar DOMElement = globalThis.Element;\nvar DOMText = globalThis.Text;\nvar DOMRange = globalThis.Range;\nvar DOMSelection = globalThis.Selection;\nvar DOMStaticRange = globalThis.StaticRange;\n/**\n * Returns the host window of a DOM node\n */\nvar getDefaultView = value => {\n return value && value.ownerDocument && value.ownerDocument.defaultView || null;\n};\n/**\n * Check if a DOM node is a comment node.\n */\nvar isDOMComment = value => {\n return isDOMNode(value) && value.nodeType === 8;\n};\n/**\n * Check if a DOM node is an element node.\n */\nvar isDOMElement = value => {\n return isDOMNode(value) && value.nodeType === 1;\n};\n/**\n * Check if a value is a DOM node.\n */\nvar isDOMNode = value => {\n var window = getDefaultView(value);\n return !!window && value instanceof window.Node;\n};\n/**\n * Check if a value is a DOM selection.\n */\nvar isDOMSelection = value => {\n var window = value && value.anchorNode && getDefaultView(value.anchorNode);\n return !!window && value instanceof window.Selection;\n};\n/**\n * Check if a DOM node is an element node.\n */\nvar isDOMText = value => {\n return isDOMNode(value) && value.nodeType === 3;\n};\n/**\n * Checks whether a paste event is a plaintext-only event.\n */\nvar isPlainTextOnlyPaste = event => {\n return event.clipboardData && event.clipboardData.getData('text/plain') !== '' && event.clipboardData.types.length === 1;\n};\n/**\n * Normalize a DOM point so that it always refers to a text node.\n */\nvar normalizeDOMPoint = domPoint => {\n var [node, offset] = domPoint;\n // If it's an element node, its offset refers to the index of its children\n // including comment nodes, so try to find the right text child node.\n if (isDOMElement(node) && node.childNodes.length) {\n var isLast = offset === node.childNodes.length;\n var index = isLast ? offset - 1 : offset;\n [node, index] = getEditableChildAndIndex(node, index, isLast ? 'backward' : 'forward');\n // If the editable child found is in front of input offset, we instead seek to its end\n isLast = index < offset;\n // If the node has children, traverse until we have a leaf node. Leaf nodes\n // can be either text nodes, or other void DOM nodes.\n while (isDOMElement(node) && node.childNodes.length) {\n var i = isLast ? node.childNodes.length - 1 : 0;\n node = getEditableChild(node, i, isLast ? 'backward' : 'forward');\n }\n // Determine the new offset inside the text node.\n offset = isLast && node.textContent != null ? node.textContent.length : 0;\n }\n // Return the node and offset.\n return [node, offset];\n};\n/**\n * Determines whether the active element is nested within a shadowRoot\n */\nvar hasShadowRoot = node => {\n var parent = node && node.parentNode;\n while (parent) {\n if (parent.toString() === '[object ShadowRoot]') {\n return true;\n }\n parent = parent.parentNode;\n }\n return false;\n};\n/**\n * Get the nearest editable child and index at `index` in a `parent`, preferring\n * `direction`.\n */\nvar getEditableChildAndIndex = (parent, index, direction) => {\n var {\n childNodes\n } = parent;\n var child = childNodes[index];\n var i = index;\n var triedForward = false;\n var triedBackward = false;\n // While the child is a comment node, or an element node with no children,\n // keep iterating to find a sibling non-void, non-comment node.\n while (isDOMComment(child) || isDOMElement(child) && child.childNodes.length === 0 || isDOMElement(child) && child.getAttribute('contenteditable') === 'false') {\n if (triedForward && triedBackward) {\n break;\n }\n if (i >= childNodes.length) {\n triedForward = true;\n i = index - 1;\n direction = 'backward';\n continue;\n }\n if (i < 0) {\n triedBackward = true;\n i = index + 1;\n direction = 'forward';\n continue;\n }\n child = childNodes[i];\n index = i;\n i += direction === 'forward' ? 1 : -1;\n }\n return [child, index];\n};\n/**\n * Get the nearest editable child at `index` in a `parent`, preferring\n * `direction`.\n */\nvar getEditableChild = (parent, index, direction) => {\n var [child] = getEditableChildAndIndex(parent, index, direction);\n return child;\n};\n/**\n * Get a plaintext representation of the content of a node, accounting for block\n * elements which get a newline appended.\n *\n * The domNode must be attached to the DOM.\n */\nvar getPlainText = domNode => {\n var text = '';\n if (isDOMText(domNode) && domNode.nodeValue) {\n return domNode.nodeValue;\n }\n if (isDOMElement(domNode)) {\n for (var childNode of Array.from(domNode.childNodes)) {\n text += getPlainText(childNode);\n }\n var display = getComputedStyle(domNode).getPropertyValue('display');\n if (display === 'block' || display === 'list' || domNode.tagName === 'BR') {\n text += '\\n';\n }\n }\n return text;\n};\n/**\n * Get x-slate-fragment attribute from data-slate-fragment\n */\nvar catchSlateFragment = /data-slate-fragment=\"(.+?)\"/m;\nvar getSlateFragmentAttribute = dataTransfer => {\n var htmlData = dataTransfer.getData('text/html');\n var [, fragment] = htmlData.match(catchSlateFragment) || [];\n return fragment;\n};\n/**\n * Get the dom selection from Shadow Root if possible, otherwise from the document\n */\nvar getSelection = root => {\n if (root.getSelection != null) {\n return root.getSelection();\n }\n return document.getSelection();\n};\n/**\n * Check whether a mutation originates from a editable element inside the editor.\n */\nvar isTrackedMutation = (editor, mutation, batch) => {\n var {\n target\n } = mutation;\n if (isDOMElement(target) && target.matches('[contentEditable=\"false\"]')) {\n return false;\n }\n var {\n document\n } = DOMEditor.getWindow(editor);\n if (document.contains(target)) {\n return DOMEditor.hasDOMNode(editor, target, {\n editable: true\n });\n }\n var parentMutation = batch.find(_ref => {\n var {\n addedNodes,\n removedNodes\n } = _ref;\n for (var node of addedNodes) {\n if (node === target || node.contains(target)) {\n return true;\n }\n }\n for (var _node of removedNodes) {\n if (_node === target || _node.contains(target)) {\n return true;\n }\n }\n });\n if (!parentMutation || parentMutation === mutation) {\n return false;\n }\n // Target add/remove is tracked. Track the mutation if we track the parent mutation.\n return isTrackedMutation(editor, parentMutation, batch);\n};\n/**\n * Retrieves the deepest active element in the DOM, considering nested shadow DOMs.\n */\nvar getActiveElement = () => {\n var activeElement = document.activeElement;\n while ((_activeElement = activeElement) !== null && _activeElement !== void 0 && _activeElement.shadowRoot && (_activeElement$shadow = activeElement.shadowRoot) !== null && _activeElement$shadow !== void 0 && _activeElement$shadow.activeElement) {\n var _activeElement, _activeElement$shadow, _activeElement2;\n activeElement = (_activeElement2 = activeElement) === null || _activeElement2 === void 0 || (_activeElement2 = _activeElement2.shadowRoot) === null || _activeElement2 === void 0 ? void 0 : _activeElement2.activeElement;\n }\n return activeElement;\n};\n/**\n * @returns `true` if `otherNode` is before `node` in the document; otherwise, `false`.\n */\nvar isBefore = (node, otherNode) => Boolean(node.compareDocumentPosition(otherNode) & DOMNode.DOCUMENT_POSITION_PRECEDING);\n/**\n * @returns `true` if `otherNode` is after `node` in the document; otherwise, `false`.\n */\nvar isAfter = (node, otherNode) => Boolean(node.compareDocumentPosition(otherNode) & DOMNode.DOCUMENT_POSITION_FOLLOWING);\n\nvar _navigator$userAgent$, _navigator$userAgent$2;\nvar IS_IOS = typeof navigator !== 'undefined' && typeof window !== 'undefined' && /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\nvar IS_APPLE = typeof navigator !== 'undefined' && /Mac OS X/.test(navigator.userAgent);\nvar IS_ANDROID = typeof navigator !== 'undefined' && /Android/.test(navigator.userAgent);\nvar IS_FIREFOX = typeof navigator !== 'undefined' && /^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent);\nvar IS_WEBKIT = typeof navigator !== 'undefined' && /AppleWebKit(?!.*Chrome)/i.test(navigator.userAgent);\n// \"modern\" Edge was released at 79.x\nvar IS_EDGE_LEGACY = typeof navigator !== 'undefined' && /Edge?\\/(?:[0-6][0-9]|[0-7][0-8])(?:\\.)/i.test(navigator.userAgent);\nvar IS_CHROME = typeof navigator !== 'undefined' && /Chrome/i.test(navigator.userAgent);\n// Native `beforeInput` events don't work well with react on Chrome 75\n// and older, Chrome 76+ can use `beforeInput` though.\nvar IS_CHROME_LEGACY = typeof navigator !== 'undefined' && /Chrome?\\/(?:[0-7][0-5]|[0-6][0-9])(?:\\.)/i.test(navigator.userAgent);\nvar IS_ANDROID_CHROME_LEGACY = IS_ANDROID && typeof navigator !== 'undefined' && /Chrome?\\/(?:[0-5]?\\d)(?:\\.)/i.test(navigator.userAgent);\n// Firefox did not support `beforeInput` until `v87`.\nvar IS_FIREFOX_LEGACY = typeof navigator !== 'undefined' && /^(?!.*Seamonkey)(?=.*Firefox\\/(?:[0-7][0-9]|[0-8][0-6])(?:\\.)).*/i.test(navigator.userAgent);\n// UC mobile browser\nvar IS_UC_MOBILE = typeof navigator !== 'undefined' && /.*UCBrowser/.test(navigator.userAgent);\n// Wechat browser (not including mac wechat)\nvar IS_WECHATBROWSER = typeof navigator !== 'undefined' && /.*Wechat/.test(navigator.userAgent) && !/.*MacWechat/.test(navigator.userAgent); // avoid lookbehind (buggy in safari < 16.4)\n// Check if DOM is available as React does internally.\n// https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js\nvar CAN_USE_DOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\n// Check if the browser is Safari and older than 17\ntypeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) && /Version\\/(\\d+)/.test(navigator.userAgent) && ((_navigator$userAgent$ = navigator.userAgent.match(/Version\\/(\\d+)/)) !== null && _navigator$userAgent$ !== void 0 && _navigator$userAgent$[1] ? parseInt((_navigator$userAgent$2 = navigator.userAgent.match(/Version\\/(\\d+)/)) === null || _navigator$userAgent$2 === void 0 ? void 0 : _navigator$userAgent$2[1], 10) < 17 : false);\n// COMPAT: Firefox/Edge Legacy don't support the `beforeinput` event\n// Chrome Legacy doesn't support `beforeinput` correctly\nvar HAS_BEFORE_INPUT_SUPPORT = (!IS_CHROME_LEGACY || !IS_ANDROID_CHROME_LEGACY) && !IS_EDGE_LEGACY &&\n// globalThis is undefined in older browsers\ntypeof globalThis !== 'undefined' && globalThis.InputEvent &&\n// @ts-ignore The `getTargetRanges` property isn't recognized.\ntypeof globalThis.InputEvent.prototype.getTargetRanges === 'function';\n\nfunction _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\n\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\n\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\n\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n\n/**\n * An auto-incrementing identifier for keys.\n */\nvar n = 0;\n/**\n * A class that keeps track of a key string. We use a full class here because we\n * want to be able to use them as keys in `WeakMap` objects.\n */\nclass Key {\n constructor() {\n _defineProperty(this, \"id\", void 0);\n this.id = \"\".concat(n++);\n }\n}\n\n/**\n * Two weak maps that allow us rebuild a path given a node. They are populated\n * at render time such that after a render occurs we can always backtrack.\n */\nvar IS_NODE_MAP_DIRTY = new WeakMap();\nvar NODE_TO_INDEX = new WeakMap();\nvar NODE_TO_PARENT = new WeakMap();\n/**\n * Weak maps that allow us to go between Slate nodes and DOM nodes. These\n * are used to resolve DOM event-related logic into Slate actions.\n */\nvar EDITOR_TO_WINDOW = new WeakMap();\nvar EDITOR_TO_ELEMENT = new WeakMap();\nvar EDITOR_TO_PLACEHOLDER_ELEMENT = new WeakMap();\nvar ELEMENT_TO_NODE = new WeakMap();\nvar NODE_TO_ELEMENT = new WeakMap();\nvar NODE_TO_KEY = new WeakMap();\nvar EDITOR_TO_KEY_TO_ELEMENT = new WeakMap();\n/**\n * Weak maps for storing editor-related state.\n */\nvar IS_READ_ONLY = new WeakMap();\nvar IS_FOCUSED = new WeakMap();\nvar IS_COMPOSING = new WeakMap();\nvar EDITOR_TO_USER_SELECTION = new WeakMap();\n/**\n * Weak map for associating the context `onChange` context with the plugin.\n */\nvar EDITOR_TO_ON_CHANGE = new WeakMap();\n/**\n * Weak maps for saving pending state on composition stage.\n */\nvar EDITOR_TO_SCHEDULE_FLUSH = new WeakMap();\nvar EDITOR_TO_PENDING_INSERTION_MARKS = new WeakMap();\nvar EDITOR_TO_USER_MARKS = new WeakMap();\n/**\n * Android input handling specific weak-maps\n */\nvar EDITOR_TO_PENDING_DIFFS = new WeakMap();\nvar EDITOR_TO_PENDING_ACTION = new WeakMap();\nvar EDITOR_TO_PENDING_SELECTION = new WeakMap();\nvar EDITOR_TO_FORCE_RENDER = new WeakMap();\n/**\n * Symbols.\n */\nvar PLACEHOLDER_SYMBOL = Symbol('placeholder');\nvar MARK_PLACEHOLDER_SYMBOL = Symbol('mark-placeholder');\n\n// eslint-disable-next-line no-redeclare\nvar DOMEditor = {\n androidPendingDiffs: editor => EDITOR_TO_PENDING_DIFFS.get(editor),\n androidScheduleFlush: editor => {\n var _EDITOR_TO_SCHEDULE_F;\n (_EDITOR_TO_SCHEDULE_F = EDITOR_TO_SCHEDULE_FLUSH.get(editor)) === null || _EDITOR_TO_SCHEDULE_F === void 0 || _EDITOR_TO_SCHEDULE_F();\n },\n blur: editor => {\n var el = DOMEditor.toDOMNode(editor, editor);\n var root = DOMEditor.findDocumentOrShadowRoot(editor);\n IS_FOCUSED.set(editor, false);\n if (root.activeElement === el) {\n el.blur();\n }\n },\n deselect: editor => {\n var {\n selection\n } = editor;\n var root = DOMEditor.findDocumentOrShadowRoot(editor);\n var domSelection = getSelection(root);\n if (domSelection && domSelection.rangeCount > 0) {\n domSelection.removeAllRanges();\n }\n if (selection) {\n Transforms.deselect(editor);\n }\n },\n findDocumentOrShadowRoot: editor => {\n var el = DOMEditor.toDOMNode(editor, editor);\n var root = el.getRootNode();\n if (root instanceof Document || root instanceof ShadowRoot) {\n return root;\n }\n return el.ownerDocument;\n },\n findEventRange: (editor, event) => {\n if ('nativeEvent' in event) {\n event = event.nativeEvent;\n }\n var {\n clientX: x,\n clientY: y,\n target\n } = event;\n if (x == null || y == null) {\n throw new Error(\"Cannot resolve a Slate range from a DOM event: \".concat(event));\n }\n var node = DOMEditor.toSlateNode(editor, event.target);\n var path = DOMEditor.findPath(editor, node);\n // If the drop target is inside a void node, move it into either the\n // next or previous node, depending on which side the `x` and `y`\n // coordinates are closest to.\n if (Element.isElement(node) && Editor.isVoid(editor, node)) {\n var rect = target.getBoundingClientRect();\n var isPrev = editor.isInline(node) ? x - rect.left < rect.left + rect.width - x : y - rect.top < rect.top + rect.height - y;\n var edge = Editor.point(editor, path, {\n edge: isPrev ? 'start' : 'end'\n });\n var point = isPrev ? Editor.before(editor, edge) : Editor.after(editor, edge);\n if (point) {\n var _range = Editor.range(editor, point);\n return _range;\n }\n }\n // Else resolve a range from the caret position where the drop occured.\n var domRange;\n var {\n document\n } = DOMEditor.getWindow(editor);\n // COMPAT: In Firefox, `caretRangeFromPoint` doesn't exist. (2016/07/25)\n if (document.caretRangeFromPoint) {\n domRange = document.caretRangeFromPoint(x, y);\n } else {\n var position = document.caretPositionFromPoint(x, y);\n if (position) {\n domRange = document.createRange();\n domRange.setStart(position.offsetNode, position.offset);\n domRange.setEnd(position.offsetNode, position.offset);\n }\n }\n if (!domRange) {\n throw new Error(\"Cannot resolve a Slate range from a DOM event: \".concat(event));\n }\n // Resolve a Slate range from the DOM range.\n var range = DOMEditor.toSlateRange(editor, domRange, {\n exactMatch: false,\n suppressThrow: false\n });\n return range;\n },\n findKey: (editor, node) => {\n var key = NODE_TO_KEY.get(node);\n if (!key) {\n key = new Key();\n NODE_TO_KEY.set(node, key);\n }\n return key;\n },\n findPath: (editor, node) => {\n var path = [];\n var child = node;\n while (true) {\n var parent = NODE_TO_PARENT.get(child);\n if (parent == null) {\n if (Editor.isEditor(child)) {\n return path;\n } else {\n break;\n }\n }\n var i = NODE_TO_INDEX.get(child);\n if (i == null) {\n break;\n }\n path.unshift(i);\n child = parent;\n }\n throw new Error(\"Unable to find the path for Slate node: \".concat(Scrubber.stringify(node)));\n },\n focus: function focus(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n retries: 5\n };\n // Return if already focused\n if (IS_FOCUSED.get(editor)) {\n return;\n }\n // Retry setting focus if the editor has pending operations.\n // The DOM (selection) is unstable while changes are applied.\n // Retry until retries are exhausted or editor is focused.\n if (options.retries <= 0) {\n throw new Error('Could not set focus, editor seems stuck with pending operations');\n }\n if (editor.operations.length > 0) {\n setTimeout(() => {\n DOMEditor.focus(editor, {\n retries: options.retries - 1\n });\n }, 10);\n return;\n }\n var el = DOMEditor.toDOMNode(editor, editor);\n var root = DOMEditor.findDocumentOrShadowRoot(editor);\n if (root.activeElement !== el) {\n // Ensure that the DOM selection state is set to the editor's selection\n if (editor.selection && root instanceof Document) {\n var domSelection = getSelection(root);\n var domRange = DOMEditor.toDOMRange(editor, editor.selection);\n domSelection === null || domSelection === void 0 || domSelection.removeAllRanges();\n domSelection === null || domSelection === void 0 || domSelection.addRange(domRange);\n }\n // Create a new selection in the top of the document if missing\n if (!editor.selection) {\n Transforms.select(editor, Editor.start(editor, []));\n }\n // IS_FOCUSED should be set before calling el.focus() to ensure that\n // FocusedContext is updated to the correct value\n IS_FOCUSED.set(editor, true);\n el.focus({\n preventScroll: true\n });\n }\n },\n getWindow: editor => {\n var window = EDITOR_TO_WINDOW.get(editor);\n if (!window) {\n throw new Error('Unable to find a host window element for this editor');\n }\n return window;\n },\n hasDOMNode: function hasDOMNode(editor, target) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n editable = false\n } = options;\n var editorEl = DOMEditor.toDOMNode(editor, editor);\n var targetEl;\n // COMPAT: In Firefox, reading `target.nodeType` will throw an error if\n // target is originating from an internal \"restricted\" element (e.g. a\n // stepper arrow on a number input). (2018/05/04)\n // https://github.com/ianstormtaylor/slate/issues/1819\n try {\n targetEl = isDOMElement(target) ? target : target.parentElement;\n } catch (err) {\n if (err instanceof Error && !err.message.includes('Permission denied to access property \"nodeType\"')) {\n throw err;\n }\n }\n if (!targetEl) {\n return false;\n }\n return targetEl.closest(\"[data-slate-editor]\") === editorEl && (!editable || targetEl.isContentEditable ? true : typeof targetEl.isContentEditable === 'boolean' &&\n // isContentEditable exists only on HTMLElement, and on other nodes it will be undefined\n // this is the core logic that lets you know you got the right editor.selection instead of null when editor is contenteditable=\"false\"(readOnly)\n targetEl.closest('[contenteditable=\"false\"]') === editorEl || !!targetEl.getAttribute('data-slate-zero-width'));\n },\n hasEditableTarget: (editor, target) => isDOMNode(target) && DOMEditor.hasDOMNode(editor, target, {\n editable: true\n }),\n hasRange: (editor, range) => {\n var {\n anchor,\n focus\n } = range;\n return Editor.hasPath(editor, anchor.path) && Editor.hasPath(editor, focus.path);\n },\n hasSelectableTarget: (editor, target) => DOMEditor.hasEditableTarget(editor, target) || DOMEditor.isTargetInsideNonReadonlyVoid(editor, target),\n hasTarget: (editor, target) => isDOMNode(target) && DOMEditor.hasDOMNode(editor, target),\n insertData: (editor, data) => {\n editor.insertData(data);\n },\n insertFragmentData: (editor, data) => editor.insertFragmentData(data),\n insertTextData: (editor, data) => editor.insertTextData(data),\n isComposing: editor => {\n return !!IS_COMPOSING.get(editor);\n },\n isFocused: editor => !!IS_FOCUSED.get(editor),\n isReadOnly: editor => !!IS_READ_ONLY.get(editor),\n isTargetInsideNonReadonlyVoid: (editor, target) => {\n if (IS_READ_ONLY.get(editor)) return false;\n var slateNode = DOMEditor.hasTarget(editor, target) && DOMEditor.toSlateNode(editor, target);\n return Element.isElement(slateNode) && Editor.isVoid(editor, slateNode);\n },\n setFragmentData: (editor, data, originEvent) => editor.setFragmentData(data, originEvent),\n toDOMNode: (editor, node) => {\n var KEY_TO_ELEMENT = EDITOR_TO_KEY_TO_ELEMENT.get(editor);\n var domNode = Editor.isEditor(node) ? EDITOR_TO_ELEMENT.get(editor) : KEY_TO_ELEMENT === null || KEY_TO_ELEMENT === void 0 ? void 0 : KEY_TO_ELEMENT.get(DOMEditor.findKey(editor, node));\n if (!domNode) {\n throw new Error(\"Cannot resolve a DOM node from Slate node: \".concat(Scrubber.stringify(node)));\n }\n return domNode;\n },\n toDOMPoint: (editor, point) => {\n var [node] = Editor.node(editor, point.path);\n var el = DOMEditor.toDOMNode(editor, node);\n var domPoint;\n // If we're inside a void node, force the offset to 0, otherwise the zero\n // width spacing character will result in an incorrect offset of 1\n if (Editor.void(editor, {\n at: point\n })) {\n point = {\n path: point.path,\n offset: 0\n };\n }\n // For each leaf, we need to isolate its content, which means filtering\n // to its direct text and zero-width spans. (We have to filter out any\n // other siblings that may have been rendered alongside them.)\n var selector = \"[data-slate-string], [data-slate-zero-width]\";\n var texts = Array.from(el.querySelectorAll(selector));\n var start = 0;\n for (var i = 0; i < texts.length; i++) {\n var text = texts[i];\n var domNode = text.childNodes[0];\n if (domNode == null || domNode.textContent == null) {\n continue;\n }\n var {\n length\n } = domNode.textContent;\n var attr = text.getAttribute('data-slate-length');\n var trueLength = attr == null ? length : parseInt(attr, 10);\n var end = start + trueLength;\n // Prefer putting the selection inside the mark placeholder to ensure\n // composed text is displayed with the correct marks.\n var nextText = texts[i + 1];\n if (point.offset === end && nextText !== null && nextText !== void 0 && nextText.hasAttribute('data-slate-mark-placeholder')) {\n var _nextText$textContent;\n var domText = nextText.childNodes[0];\n domPoint = [\n // COMPAT: If we don't explicity set the dom point to be on the actual\n // dom text element, chrome will put the selection behind the actual dom\n // text element, causing domRange.getBoundingClientRect() calls on a collapsed\n // selection to return incorrect zero values (https://bugs.chromium.org/p/chromium/issues/detail?id=435438)\n // which will cause issues when scrolling to it.\n domText instanceof DOMText ? domText : nextText, (_nextText$textContent = nextText.textContent) !== null && _nextText$textContent !== void 0 && _nextText$textContent.startsWith('\\uFEFF') ? 1 : 0];\n break;\n }\n if (point.offset <= end) {\n var offset = Math.min(length, Math.max(0, point.offset - start));\n domPoint = [domNode, offset];\n break;\n }\n start = end;\n }\n if (!domPoint) {\n throw new Error(\"Cannot resolve a DOM point from Slate point: \".concat(Scrubber.stringify(point)));\n }\n return domPoint;\n },\n toDOMRange: (editor, range) => {\n var {\n anchor,\n focus\n } = range;\n var isBackward = Range.isBackward(range);\n var domAnchor = DOMEditor.toDOMPoint(editor, anchor);\n var domFocus = Range.isCollapsed(range) ? domAnchor : DOMEditor.toDOMPoint(editor, focus);\n var window = DOMEditor.getWindow(editor);\n var domRange = window.document.createRange();\n var [startNode, startOffset] = isBackward ? domFocus : domAnchor;\n var [endNode, endOffset] = isBackward ? domAnchor : domFocus;\n // A slate Point at zero-width Leaf always has an offset of 0 but a native DOM selection at\n // zero-width node has an offset of 1 so we have to check if we are in a zero-width node and\n // adjust the offset accordingly.\n var startEl = isDOMElement(startNode) ? startNode : startNode.parentElement;\n var isStartAtZeroWidth = !!startEl.getAttribute('data-slate-zero-width');\n var endEl = isDOMElement(endNode) ? endNode : endNode.parentElement;\n var isEndAtZeroWidth = !!endEl.getAttribute('data-slate-zero-width');\n domRange.setStart(startNode, isStartAtZeroWidth ? 1 : startOffset);\n domRange.setEnd(endNode, isEndAtZeroWidth ? 1 : endOffset);\n return domRange;\n },\n toSlateNode: (editor, domNode) => {\n var domEl = isDOMElement(domNode) ? domNode : domNode.parentElement;\n if (domEl && !domEl.hasAttribute('data-slate-node')) {\n domEl = domEl.closest(\"[data-slate-node]\");\n }\n var node = domEl ? ELEMENT_TO_NODE.get(domEl) : null;\n if (!node) {\n throw new Error(\"Cannot resolve a Slate node from DOM node: \".concat(domEl));\n }\n return node;\n },\n toSlatePoint: (editor, domPoint, options) => {\n var {\n exactMatch,\n suppressThrow,\n searchDirection = 'backward'\n } = options;\n var [nearestNode, nearestOffset] = exactMatch ? domPoint : normalizeDOMPoint(domPoint);\n var parentNode = nearestNode.parentNode;\n var textNode = null;\n var offset = 0;\n if (parentNode) {\n var _domNode$textContent, _domNode$textContent2;\n var editorEl = DOMEditor.toDOMNode(editor, editor);\n var potentialVoidNode = parentNode.closest('[data-slate-void=\"true\"]');\n // Need to ensure that the closest void node is actually a void node\n // within this editor, and not a void node within some parent editor. This can happen\n // if this editor is within a void node of another editor (\"nested editors\", like in\n // the \"Editable Voids\" example on the docs site).\n var voidNode = potentialVoidNode && editorEl.contains(potentialVoidNode) ? potentialVoidNode : null;\n var potentialNonEditableNode = parentNode.closest('[contenteditable=\"false\"]');\n var nonEditableNode = potentialNonEditableNode && editorEl.contains(potentialNonEditableNode) ? potentialNonEditableNode : null;\n var leafNode = parentNode.closest('[data-slate-leaf]');\n var domNode = null;\n // Calculate how far into the text node the `nearestNode` is, so that we\n // can determine what the offset relative to the text node is.\n if (leafNode) {\n textNode = leafNode.closest('[data-slate-node=\"text\"]');\n if (textNode) {\n var window = DOMEditor.getWindow(editor);\n var range = window.document.createRange();\n range.setStart(textNode, 0);\n range.setEnd(nearestNode, nearestOffset);\n var contents = range.cloneContents();\n var removals = [...Array.prototype.slice.call(contents.querySelectorAll('[data-slate-zero-width]')), ...Array.prototype.slice.call(contents.querySelectorAll('[contenteditable=false]'))];\n removals.forEach(el => {\n // COMPAT: While composing at the start of a text node, some keyboards put\n // the text content inside the zero width space.\n if (IS_ANDROID && !exactMatch && el.hasAttribute('data-slate-zero-width') && el.textContent.length > 0 && el.textContext !== '\\uFEFF') {\n if (el.textContent.startsWith('\\uFEFF')) {\n el.textContent = el.textContent.slice(1);\n }\n return;\n }\n el.parentNode.removeChild(el);\n });\n // COMPAT: Edge has a bug where Range.prototype.toString() will\n // convert \\n into \\r\\n. The bug causes a loop when slate-dom\n // attempts to reposition its cursor to match the native position. Use\n // textContent.length instead.\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10291116/\n offset = contents.textContent.length;\n domNode = textNode;\n }\n } else if (voidNode) {\n // For void nodes, the element with the offset key will be a cousin, not an\n // ancestor, so find it by going down from the nearest void parent and taking the\n // first one that isn't inside a nested editor.\n var leafNodes = voidNode.querySelectorAll('[data-slate-leaf]');\n for (var index = 0; index < leafNodes.length; index++) {\n var current = leafNodes[index];\n if (DOMEditor.hasDOMNode(editor, current)) {\n leafNode = current;\n break;\n }\n }\n // COMPAT: In read-only editors the leaf is not rendered.\n if (!leafNode) {\n offset = 1;\n } else {\n textNode = leafNode.closest('[data-slate-node=\"text\"]');\n domNode = leafNode;\n offset = domNode.textContent.length;\n domNode.querySelectorAll('[data-slate-zero-width]').forEach(el => {\n offset -= el.textContent.length;\n });\n }\n } else if (nonEditableNode) {\n // Find the edge of the nearest leaf in `searchDirection`\n var getLeafNodes = node => node ? node.querySelectorAll(\n // Exclude leaf nodes in nested editors\n '[data-slate-leaf]:not(:scope [data-slate-editor] [data-slate-leaf])') : [];\n var elementNode = nonEditableNode.closest('[data-slate-node=\"element\"]');\n if (searchDirection === 'forward') {\n var _leafNodes$find;\n var _leafNodes = [...getLeafNodes(elementNode), ...getLeafNodes(elementNode === null || elementNode === void 0 ? void 0 : elementNode.nextElementSibling)];\n leafNode = (_leafNodes$find = _leafNodes.find(leaf => isAfter(nonEditableNode, leaf))) !== null && _leafNodes$find !== void 0 ? _leafNodes$find : null;\n } else {\n var _leafNodes2$findLast;\n var _leafNodes2 = [...getLeafNodes(elementNode === null || elementNode === void 0 ? void 0 : elementNode.previousElementSibling), ...getLeafNodes(elementNode)];\n leafNode = (_leafNodes2$findLast = _leafNodes2.findLast(leaf => isBefore(nonEditableNode, leaf))) !== null && _leafNodes2$findLast !== void 0 ? _leafNodes2$findLast : null;\n }\n if (leafNode) {\n textNode = leafNode.closest('[data-slate-node=\"text\"]');\n domNode = leafNode;\n if (searchDirection === 'forward') {\n offset = 0;\n } else {\n offset = domNode.textContent.length;\n domNode.querySelectorAll('[data-slate-zero-width]').forEach(el => {\n offset -= el.textContent.length;\n });\n }\n }\n }\n if (domNode && offset === domNode.textContent.length &&\n // COMPAT: Android IMEs might remove the zero width space while composing,\n // and we don't add it for line-breaks.\n IS_ANDROID && domNode.getAttribute('data-slate-zero-width') === 'z' && (_domNode$textContent = domNode.textContent) !== null && _domNode$textContent !== void 0 && _domNode$textContent.startsWith('\\uFEFF') && (\n // COMPAT: If the parent node is a Slate zero-width space, editor is\n // because the text node should have no characters. However, during IME\n // composition the ASCII characters will be prepended to the zero-width\n // space, so subtract 1 from the offset to account for the zero-width\n // space character.\n parentNode.hasAttribute('data-slate-zero-width') ||\n // COMPAT: In Firefox, `range.cloneContents()` returns an extra trailing '\\n'\n // when the document ends with a new-line character. This results in the offset\n // length being off by one, so we need to subtract one to account for this.\n IS_FIREFOX && (_domNode$textContent2 = domNode.textContent) !== null && _domNode$textContent2 !== void 0 && _domNode$textContent2.endsWith('\\n\\n'))) {\n offset--;\n }\n }\n if (IS_ANDROID && !textNode && !exactMatch) {\n var node = parentNode.hasAttribute('data-slate-node') ? parentNode : parentNode.closest('[data-slate-node]');\n if (node && DOMEditor.hasDOMNode(editor, node, {\n editable: true\n })) {\n var _slateNode = DOMEditor.toSlateNode(editor, node);\n var {\n path: _path,\n offset: _offset\n } = Editor.start(editor, DOMEditor.findPath(editor, _slateNode));\n if (!node.querySelector('[data-slate-leaf]')) {\n _offset = nearestOffset;\n }\n return {\n path: _path,\n offset: _offset\n };\n }\n }\n if (!textNode) {\n if (suppressThrow) {\n return null;\n }\n throw new Error(\"Cannot resolve a Slate point from DOM point: \".concat(domPoint));\n }\n // COMPAT: If someone is clicking from one Slate editor into another,\n // the select event fires twice, once for the old editor's `element`\n // first, and then afterwards for the correct `element`. (2017/03/03)\n var slateNode = DOMEditor.toSlateNode(editor, textNode);\n var path = DOMEditor.findPath(editor, slateNode);\n return {\n path,\n offset\n };\n },\n toSlateRange: (editor, domRange, options) => {\n var _focusNode$textConten;\n var {\n exactMatch,\n suppressThrow\n } = options;\n var el = isDOMSelection(domRange) ? domRange.anchorNode : domRange.startContainer;\n var anchorNode;\n var anchorOffset;\n var focusNode;\n var focusOffset;\n var isCollapsed;\n if (el) {\n if (isDOMSelection(domRange)) {\n // COMPAT: In firefox the normal seletion way does not work\n // (https://github.com/ianstormtaylor/slate/pull/5486#issue-1820720223)\n if (IS_FIREFOX && domRange.rangeCount > 1) {\n focusNode = domRange.focusNode; // Focus node works fine\n var firstRange = domRange.getRangeAt(0);\n var lastRange = domRange.getRangeAt(domRange.rangeCount - 1);\n // Here we are in the contenteditable mode of a table in firefox\n if (focusNode instanceof HTMLTableRowElement && firstRange.startContainer instanceof HTMLTableRowElement && lastRange.startContainer instanceof HTMLTableRowElement) {\n // HTMLElement, becouse Element is a slate element\n function getLastChildren(element) {\n if (element.childElementCount > 0) {\n return getLastChildren(element.children[0]);\n } else {\n return element;\n }\n }\n var firstNodeRow = firstRange.startContainer;\n var lastNodeRow = lastRange.startContainer;\n // This should never fail as \"The HTMLElement interface represents any HTML element.\"\n var firstNode = getLastChildren(firstNodeRow.children[firstRange.startOffset]);\n var lastNode = getLastChildren(lastNodeRow.children[lastRange.startOffset]);\n // Zero, as we allways take the right one as the anchor point\n focusOffset = 0;\n if (lastNode.childNodes.length > 0) {\n anchorNode = lastNode.childNodes[0];\n } else {\n anchorNode = lastNode;\n }\n if (firstNode.childNodes.length > 0) {\n focusNode = firstNode.childNodes[0];\n } else {\n focusNode = firstNode;\n }\n if (lastNode instanceof HTMLElement) {\n anchorOffset = lastNode.innerHTML.length;\n } else {\n // Fallback option\n anchorOffset = 0;\n }\n } else {\n // This is the read only mode of a firefox table\n // Right to left\n if (firstRange.startContainer === focusNode) {\n anchorNode = lastRange.endContainer;\n anchorOffset = lastRange.endOffset;\n focusOffset = firstRange.startOffset;\n } else {\n // Left to right\n anchorNode = firstRange.startContainer;\n anchorOffset = firstRange.endOffset;\n focusOffset = lastRange.startOffset;\n }\n }\n } else {\n anchorNode = domRange.anchorNode;\n anchorOffset = domRange.anchorOffset;\n focusNode = domRange.focusNode;\n focusOffset = domRange.focusOffset;\n }\n // COMPAT: There's a bug in chrome that always returns `true` for\n // `isCollapsed` for a Selection that comes from a ShadowRoot.\n // (2020/08/08)\n // https://bugs.chromium.org/p/chromium/issues/detail?id=447523\n // IsCollapsed might not work in firefox, but this will\n if (IS_CHROME && hasShadowRoot(anchorNode) || IS_FIREFOX) {\n isCollapsed = domRange.anchorNode === domRange.focusNode && domRange.anchorOffset === domRange.focusOffset;\n } else {\n isCollapsed = domRange.isCollapsed;\n }\n } else {\n anchorNode = domRange.startContainer;\n anchorOffset = domRange.startOffset;\n focusNode = domRange.endContainer;\n focusOffset = domRange.endOffset;\n isCollapsed = domRange.collapsed;\n }\n }\n if (anchorNode == null || focusNode == null || anchorOffset == null || focusOffset == null) {\n throw new Error(\"Cannot resolve a Slate range from DOM range: \".concat(domRange));\n }\n // COMPAT: Firefox sometimes includes an extra \\n (rendered by TextString\n // when isTrailing is true) in the focusOffset, resulting in an invalid\n // Slate point. (2023/11/01)\n if (IS_FIREFOX && (_focusNode$textConten = focusNode.textContent) !== null && _focusNode$textConten !== void 0 && _focusNode$textConten.endsWith('\\n\\n') && focusOffset === focusNode.textContent.length) {\n focusOffset--;\n }\n var anchor = DOMEditor.toSlatePoint(editor, [anchorNode, anchorOffset], {\n exactMatch,\n suppressThrow\n });\n if (!anchor) {\n return null;\n }\n var focusBeforeAnchor = isBefore(anchorNode, focusNode) || anchorNode === focusNode && focusOffset < anchorOffset;\n var focus = isCollapsed ? anchor : DOMEditor.toSlatePoint(editor, [focusNode, focusOffset], {\n exactMatch,\n suppressThrow,\n searchDirection: focusBeforeAnchor ? 'forward' : 'backward'\n });\n if (!focus) {\n return null;\n }\n var range = {\n anchor: anchor,\n focus: focus\n };\n // if the selection is a hanging range that ends in a void\n // and the DOM focus is an Element\n // (meaning that the selection ends before the element)\n // unhang the range to avoid mistakenly including the void\n if (Range.isExpanded(range) && Range.isForward(range) && isDOMElement(focusNode) && Editor.void(editor, {\n at: range.focus,\n mode: 'highest'\n })) {\n range = Editor.unhangRange(editor, range, {\n voids: true\n });\n }\n return range;\n }\n};\n\n/**\n * Check whether a text diff was applied in a way we can perform the pending action on /\n * recover the pending selection.\n */\nfunction verifyDiffState(editor, textDiff) {\n var {\n path,\n diff\n } = textDiff;\n if (!Editor.hasPath(editor, path)) {\n return false;\n }\n var node = Node.get(editor, path);\n if (!Text.isText(node)) {\n return false;\n }\n if (diff.start !== node.text.length || diff.text.length === 0) {\n return node.text.slice(diff.start, diff.start + diff.text.length) === diff.text;\n }\n var nextPath = Path.next(path);\n if (!Editor.hasPath(editor, nextPath)) {\n return false;\n }\n var nextNode = Node.get(editor, nextPath);\n return Text.isText(nextNode) && nextNode.text.startsWith(diff.text);\n}\nfunction applyStringDiff(text) {\n for (var _len = arguments.length, diffs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n diffs[_key - 1] = arguments[_key];\n }\n return diffs.reduce((text, diff) => text.slice(0, diff.start) + diff.text + text.slice(diff.end), text);\n}\nfunction longestCommonPrefixLength(str, another) {\n var length = Math.min(str.length, another.length);\n for (var i = 0; i < length; i++) {\n if (str.charAt(i) !== another.charAt(i)) {\n return i;\n }\n }\n return length;\n}\nfunction longestCommonSuffixLength(str, another, max) {\n var length = Math.min(str.length, another.length, max);\n for (var i = 0; i < length; i++) {\n if (str.charAt(str.length - i - 1) !== another.charAt(another.length - i - 1)) {\n return i;\n }\n }\n return length;\n}\n/**\n * Remove redundant changes from the diff so that it spans the minimal possible range\n */\nfunction normalizeStringDiff(targetText, diff) {\n var {\n start,\n end,\n text\n } = diff;\n var removedText = targetText.slice(start, end);\n var prefixLength = longestCommonPrefixLength(removedText, text);\n var max = Math.min(removedText.length - prefixLength, text.length - prefixLength);\n var suffixLength = longestCommonSuffixLength(removedText, text, max);\n var normalized = {\n start: start + prefixLength,\n end: end - suffixLength,\n text: text.slice(prefixLength, text.length - suffixLength)\n };\n if (normalized.start === normalized.end && normalized.text.length === 0) {\n return null;\n }\n return normalized;\n}\n/**\n * Return a string diff that is equivalent to applying b after a spanning the range of\n * both changes\n */\nfunction mergeStringDiffs(targetText, a, b) {\n var start = Math.min(a.start, b.start);\n var overlap = Math.max(0, Math.min(a.start + a.text.length, b.end) - b.start);\n var applied = applyStringDiff(targetText, a, b);\n var sliceEnd = Math.max(b.start + b.text.length, a.start + a.text.length + (a.start + a.text.length > b.start ? b.text.length : 0) - overlap);\n var text = applied.slice(start, sliceEnd);\n var end = Math.max(a.end, b.end - a.text.length + (a.end - a.start));\n return normalizeStringDiff(targetText, {\n start,\n end,\n text\n });\n}\n/**\n * Get the slate range the text diff spans.\n */\nfunction targetRange(textDiff) {\n var {\n path,\n diff\n } = textDiff;\n return {\n anchor: {\n path,\n offset: diff.start\n },\n focus: {\n path,\n offset: diff.end\n }\n };\n}\n/**\n * Normalize a 'pending point' a.k.a a point based on the dom state before applying\n * the pending diffs. Since the pending diffs might have been inserted with different\n * marks we have to 'walk' the offset from the starting position to ensure we still\n * have a valid point inside the document\n */\nfunction normalizePoint(editor, point) {\n var {\n path,\n offset\n } = point;\n if (!Editor.hasPath(editor, path)) {\n return null;\n }\n var leaf = Node.get(editor, path);\n if (!Text.isText(leaf)) {\n return null;\n }\n var parentBlock = Editor.above(editor, {\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n at: path\n });\n if (!parentBlock) {\n return null;\n }\n while (offset > leaf.text.length) {\n var entry = Editor.next(editor, {\n at: path,\n match: Text.isText\n });\n if (!entry || !Path.isDescendant(entry[1], parentBlock[1])) {\n return null;\n }\n offset -= leaf.text.length;\n leaf = entry[0];\n path = entry[1];\n }\n return {\n path,\n offset\n };\n}\n/**\n * Normalize a 'pending selection' to ensure it's valid in the current document state.\n */\nfunction normalizeRange(editor, range) {\n var anchor = normalizePoint(editor, range.anchor);\n if (!anchor) {\n return null;\n }\n if (Range.isCollapsed(range)) {\n return {\n anchor,\n focus: anchor\n };\n }\n var focus = normalizePoint(editor, range.focus);\n if (!focus) {\n return null;\n }\n return {\n anchor,\n focus\n };\n}\nfunction transformPendingPoint(editor, point, op) {\n var pendingDiffs = EDITOR_TO_PENDING_DIFFS.get(editor);\n var textDiff = pendingDiffs === null || pendingDiffs === void 0 ? void 0 : pendingDiffs.find(_ref => {\n var {\n path\n } = _ref;\n return Path.equals(path, point.path);\n });\n if (!textDiff || point.offset <= textDiff.diff.start) {\n return Point.transform(point, op, {\n affinity: 'backward'\n });\n }\n var {\n diff\n } = textDiff;\n // Point references location inside the diff => transform the point based on the location\n // the diff will be applied to and add the offset inside the diff.\n if (point.offset <= diff.start + diff.text.length) {\n var _anchor = {\n path: point.path,\n offset: diff.start\n };\n var _transformed = Point.transform(_anchor, op, {\n affinity: 'backward'\n });\n if (!_transformed) {\n return null;\n }\n return {\n path: _transformed.path,\n offset: _transformed.offset + point.offset - diff.start\n };\n }\n // Point references location after the diff\n var anchor = {\n path: point.path,\n offset: point.offset - diff.text.length + diff.end - diff.start\n };\n var transformed = Point.transform(anchor, op, {\n affinity: 'backward'\n });\n if (!transformed) {\n return null;\n }\n if (op.type === 'split_node' && Path.equals(op.path, point.path) && anchor.offset < op.position && diff.start < op.position) {\n return transformed;\n }\n return {\n path: transformed.path,\n offset: transformed.offset + diff.text.length - diff.end + diff.start\n };\n}\nfunction transformPendingRange(editor, range, op) {\n var anchor = transformPendingPoint(editor, range.anchor, op);\n if (!anchor) {\n return null;\n }\n if (Range.isCollapsed(range)) {\n return {\n anchor,\n focus: anchor\n };\n }\n var focus = transformPendingPoint(editor, range.focus, op);\n if (!focus) {\n return null;\n }\n return {\n anchor,\n focus\n };\n}\nfunction transformTextDiff(textDiff, op) {\n var {\n path,\n diff,\n id\n } = textDiff;\n switch (op.type) {\n case 'insert_text':\n {\n if (!Path.equals(op.path, path) || op.offset >= diff.end) {\n return textDiff;\n }\n if (op.offset <= diff.start) {\n return {\n diff: {\n start: op.text.length + diff.start,\n end: op.text.length + diff.end,\n text: diff.text\n },\n id,\n path\n };\n }\n return {\n diff: {\n start: diff.start,\n end: diff.end + op.text.length,\n text: diff.text\n },\n id,\n path\n };\n }\n case 'remove_text':\n {\n if (!Path.equals(op.path, path) || op.offset >= diff.end) {\n return textDiff;\n }\n if (op.offset + op.text.length <= diff.start) {\n return {\n diff: {\n start: diff.start - op.text.length,\n end: diff.end - op.text.length,\n text: diff.text\n },\n id,\n path\n };\n }\n return {\n diff: {\n start: diff.start,\n end: diff.end - op.text.length,\n text: diff.text\n },\n id,\n path\n };\n }\n case 'split_node':\n {\n if (!Path.equals(op.path, path) || op.position >= diff.end) {\n return {\n diff,\n id,\n path: Path.transform(path, op, {\n affinity: 'backward'\n })\n };\n }\n if (op.position > diff.start) {\n return {\n diff: {\n start: diff.start,\n end: Math.min(op.position, diff.end),\n text: diff.text\n },\n id,\n path\n };\n }\n return {\n diff: {\n start: diff.start - op.position,\n end: diff.end - op.position,\n text: diff.text\n },\n id,\n path: Path.transform(path, op, {\n affinity: 'forward'\n })\n };\n }\n case 'merge_node':\n {\n if (!Path.equals(op.path, path)) {\n return {\n diff,\n id,\n path: Path.transform(path, op)\n };\n }\n return {\n diff: {\n start: diff.start + op.position,\n end: diff.end + op.position,\n text: diff.text\n },\n id,\n path: Path.transform(path, op)\n };\n }\n }\n var newPath = Path.transform(path, op);\n if (!newPath) {\n return null;\n }\n return {\n diff,\n path: newPath,\n id\n };\n}\n\n/**\n * Utilities for single-line deletion\n */\nvar doRectsIntersect = (rect, compareRect) => {\n var middle = (compareRect.top + compareRect.bottom) / 2;\n return rect.top <= middle && rect.bottom >= middle;\n};\nvar areRangesSameLine = (editor, range1, range2) => {\n var rect1 = DOMEditor.toDOMRange(editor, range1).getBoundingClientRect();\n var rect2 = DOMEditor.toDOMRange(editor, range2).getBoundingClientRect();\n return doRectsIntersect(rect1, rect2) && doRectsIntersect(rect2, rect1);\n};\n/**\n * A helper utility that returns the end portion of a `Range`\n * which is located on a single line.\n *\n * @param {Editor} editor The editor object to compare against\n * @param {Range} parentRange The parent range to compare against\n * @returns {Range} A valid portion of the parentRange which is one a single line\n */\nvar findCurrentLineRange = (editor, parentRange) => {\n var parentRangeBoundary = Editor.range(editor, Range.end(parentRange));\n var positions = Array.from(Editor.positions(editor, {\n at: parentRange\n }));\n var left = 0;\n var right = positions.length;\n var middle = Math.floor(right / 2);\n if (areRangesSameLine(editor, Editor.range(editor, positions[left]), parentRangeBoundary)) {\n return Editor.range(editor, positions[left], parentRangeBoundary);\n }\n if (positions.length < 2) {\n return Editor.range(editor, positions[positions.length - 1], parentRangeBoundary);\n }\n while (middle !== positions.length && middle !== left) {\n if (areRangesSameLine(editor, Editor.range(editor, positions[middle]), parentRangeBoundary)) {\n right = middle;\n } else {\n left = middle;\n }\n middle = Math.floor((left + right) / 2);\n }\n return Editor.range(editor, positions[right], parentRangeBoundary);\n};\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\n/**\n * `withDOM` adds DOM specific behaviors to the editor.\n *\n * If you are using TypeScript, you must extend Slate's CustomTypes to use\n * this plugin.\n *\n * See https://docs.slatejs.org/concepts/11-typescript to learn how.\n */\nvar withDOM = function withDOM(editor) {\n var clipboardFormatKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'x-slate-fragment';\n var e = editor;\n var {\n apply,\n onChange,\n deleteBackward,\n addMark,\n removeMark\n } = e;\n // The WeakMap which maps a key to a specific HTMLElement must be scoped to the editor instance to\n // avoid collisions between editors in the DOM that share the same value.\n EDITOR_TO_KEY_TO_ELEMENT.set(e, new WeakMap());\n e.addMark = (key, value) => {\n var _EDITOR_TO_SCHEDULE_F, _EDITOR_TO_PENDING_DI;\n (_EDITOR_TO_SCHEDULE_F = EDITOR_TO_SCHEDULE_FLUSH.get(e)) === null || _EDITOR_TO_SCHEDULE_F === void 0 || _EDITOR_TO_SCHEDULE_F();\n if (!EDITOR_TO_PENDING_INSERTION_MARKS.get(e) && (_EDITOR_TO_PENDING_DI = EDITOR_TO_PENDING_DIFFS.get(e)) !== null && _EDITOR_TO_PENDING_DI !== void 0 && _EDITOR_TO_PENDING_DI.length) {\n // Ensure the current pending diffs originating from changes before the addMark\n // are applied with the current formatting\n EDITOR_TO_PENDING_INSERTION_MARKS.set(e, null);\n }\n EDITOR_TO_USER_MARKS.delete(e);\n addMark(key, value);\n };\n e.removeMark = key => {\n var _EDITOR_TO_PENDING_DI2;\n if (!EDITOR_TO_PENDING_INSERTION_MARKS.get(e) && (_EDITOR_TO_PENDING_DI2 = EDITOR_TO_PENDING_DIFFS.get(e)) !== null && _EDITOR_TO_PENDING_DI2 !== void 0 && _EDITOR_TO_PENDING_DI2.length) {\n // Ensure the current pending diffs originating from changes before the addMark\n // are applied with the current formatting\n EDITOR_TO_PENDING_INSERTION_MARKS.set(e, null);\n }\n EDITOR_TO_USER_MARKS.delete(e);\n removeMark(key);\n };\n e.deleteBackward = unit => {\n if (unit !== 'line') {\n return deleteBackward(unit);\n }\n if (e.selection && Range.isCollapsed(e.selection)) {\n var parentBlockEntry = Editor.above(e, {\n match: n => Element.isElement(n) && Editor.isBlock(e, n),\n at: e.selection\n });\n if (parentBlockEntry) {\n var [, parentBlockPath] = parentBlockEntry;\n var parentElementRange = Editor.range(e, parentBlockPath, e.selection.anchor);\n var currentLineRange = findCurrentLineRange(e, parentElementRange);\n if (!Range.isCollapsed(currentLineRange)) {\n Transforms.delete(e, {\n at: currentLineRange\n });\n }\n }\n }\n };\n // This attempts to reset the NODE_TO_KEY entry to the correct value\n // as apply() changes the object reference and hence invalidates the NODE_TO_KEY entry\n e.apply = op => {\n var matches = [];\n var pathRefMatches = [];\n var pendingDiffs = EDITOR_TO_PENDING_DIFFS.get(e);\n if (pendingDiffs !== null && pendingDiffs !== void 0 && pendingDiffs.length) {\n var transformed = pendingDiffs.map(textDiff => transformTextDiff(textDiff, op)).filter(Boolean);\n EDITOR_TO_PENDING_DIFFS.set(e, transformed);\n }\n var pendingSelection = EDITOR_TO_PENDING_SELECTION.get(e);\n if (pendingSelection) {\n EDITOR_TO_PENDING_SELECTION.set(e, transformPendingRange(e, pendingSelection, op));\n }\n var pendingAction = EDITOR_TO_PENDING_ACTION.get(e);\n if (pendingAction !== null && pendingAction !== void 0 && pendingAction.at) {\n var at = Point.isPoint(pendingAction === null || pendingAction === void 0 ? void 0 : pendingAction.at) ? transformPendingPoint(e, pendingAction.at, op) : transformPendingRange(e, pendingAction.at, op);\n EDITOR_TO_PENDING_ACTION.set(e, at ? _objectSpread(_objectSpread({}, pendingAction), {}, {\n at\n }) : null);\n }\n switch (op.type) {\n case 'insert_text':\n case 'remove_text':\n case 'set_node':\n case 'split_node':\n {\n matches.push(...getMatches(e, op.path));\n break;\n }\n case 'set_selection':\n {\n var _EDITOR_TO_USER_SELEC;\n // Selection was manually set, don't restore the user selection after the change.\n (_EDITOR_TO_USER_SELEC = EDITOR_TO_USER_SELECTION.get(e)) === null || _EDITOR_TO_USER_SELEC === void 0 || _EDITOR_TO_USER_SELEC.unref();\n EDITOR_TO_USER_SELECTION.delete(e);\n break;\n }\n case 'insert_node':\n case 'remove_node':\n {\n matches.push(...getMatches(e, Path.parent(op.path)));\n break;\n }\n case 'merge_node':\n {\n var prevPath = Path.previous(op.path);\n matches.push(...getMatches(e, prevPath));\n break;\n }\n case 'move_node':\n {\n var commonPath = Path.common(Path.parent(op.path), Path.parent(op.newPath));\n matches.push(...getMatches(e, commonPath));\n var changedPath;\n if (Path.isBefore(op.path, op.newPath)) {\n matches.push(...getMatches(e, Path.parent(op.path)));\n changedPath = op.newPath;\n } else {\n matches.push(...getMatches(e, Path.parent(op.newPath)));\n changedPath = op.path;\n }\n var changedNode = Node.get(editor, Path.parent(changedPath));\n var changedNodeKey = DOMEditor.findKey(e, changedNode);\n var changedPathRef = Editor.pathRef(e, Path.parent(changedPath));\n pathRefMatches.push([changedPathRef, changedNodeKey]);\n break;\n }\n }\n apply(op);\n switch (op.type) {\n case 'insert_node':\n case 'remove_node':\n case 'merge_node':\n case 'move_node':\n case 'split_node':\n {\n IS_NODE_MAP_DIRTY.set(e, true);\n }\n }\n for (var [path, key] of matches) {\n var [node] = Editor.node(e, path);\n NODE_TO_KEY.set(node, key);\n }\n for (var [pathRef, _key] of pathRefMatches) {\n if (pathRef.current) {\n var [_node] = Editor.node(e, pathRef.current);\n NODE_TO_KEY.set(_node, _key);\n }\n pathRef.unref();\n }\n };\n e.setFragmentData = data => {\n var {\n selection\n } = e;\n if (!selection) {\n return;\n }\n var [start, end] = Range.edges(selection);\n var startVoid = Editor.void(e, {\n at: start.path\n });\n var endVoid = Editor.void(e, {\n at: end.path\n });\n if (Range.isCollapsed(selection) && !startVoid) {\n return;\n }\n // Create a fake selection so that we can add a Base64-encoded copy of the\n // fragment to the HTML, to decode on future pastes.\n var domRange = DOMEditor.toDOMRange(e, selection);\n var contents = domRange.cloneContents();\n var attach = contents.childNodes[0];\n // Make sure attach is non-empty, since empty nodes will not get copied.\n contents.childNodes.forEach(node => {\n if (node.textContent && node.textContent.trim() !== '') {\n attach = node;\n }\n });\n // COMPAT: If the end node is a void node, we need to move the end of the\n // range from the void node's spacer span, to the end of the void node's\n // content, since the spacer is before void's content in the DOM.\n if (endVoid) {\n var [voidNode] = endVoid;\n var r = domRange.cloneRange();\n var domNode = DOMEditor.toDOMNode(e, voidNode);\n r.setEndAfter(domNode);\n contents = r.cloneContents();\n }\n // COMPAT: If the start node is a void node, we need to attach the encoded\n // fragment to the void node's content node instead of the spacer, because\n // attaching it to empty `