@pnnh/atom 0.6.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.cjs","sources":["../../client/clipboard.ts","../../client/html.ts","../../client/http.ts","../../client/window.ts","../../client/button/throttle.ts","../../client/cookie/cookie.ts","../../client/postoffice/mailbox.ts","../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react.production.js","../node_modules/react/cjs/react.development.js","../node_modules/react/index.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../node_modules/direction/index.js","../node_modules/lodash/isObject.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_root.js","../node_modules/lodash/now.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/debounce.js","../node_modules/lodash/throttle.js","../node_modules/compute-scroll-into-view/dist/index.js","../node_modules/scroll-into-view-if-needed/dist/index.js","../node_modules/immer/dist/immer.mjs","../node_modules/slate/dist/index.es.js","../node_modules/is-hotkey/lib/index.js","../node_modules/slate-dom/dist/index.es.js","../node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../node_modules/@juggle/resize-observer/lib/utils/freeze.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../node_modules/@juggle/resize-observer/lib/utils/element.js","../node_modules/@juggle/resize-observer/lib/utils/global.js","../node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../node_modules/@juggle/resize-observer/lib/utils/process.js","../node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../node_modules/react-dom/cjs/react-dom.production.js","../node_modules/react-dom/cjs/react-dom.development.js","../node_modules/react-dom/index.js","../node_modules/slate-react/dist/index.es.js","../node_modules/is-plain-object/dist/is-plain-object.mjs","../node_modules/slate-history/dist/index.es.js","../../client/editor/nodes/text.tsx","../../client/editor/helpers.ts","../../client/editor/nodes/header.tsx","../../client/editor/nodes/paragraph.tsx","../node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Parser.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.esm.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/cache/dist/emotion-cache.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","../node_modules/@emotion/utils/dist/emotion-utils.esm.js","../node_modules/@emotion/css/create-instance/dist/emotion-css-create-instance.esm.js","../node_modules/@emotion/css/dist/emotion-css.esm.js","../../client/editor/nodes/codeblock.tsx","../node_modules/prismjs/prism.js","../node_modules/prismjs/components/prism-markup-templating.js","../node_modules/prismjs/components/prism-markup.js","../node_modules/prismjs/components/prism-css.js","../node_modules/prismjs/components/prism-java.js","../node_modules/prismjs/components/prism-bash.js","../node_modules/prismjs/components/prism-go.js","../node_modules/prismjs/components/prism-c.js","../node_modules/prismjs/components/prism-cpp.js","../node_modules/prismjs/components/prism-csharp.js","../node_modules/prismjs/components/prism-markdown.js","../node_modules/prismjs/components/prism-kotlin.js","../node_modules/prismjs/components/prism-json.js","../node_modules/prismjs/components/prism-rust.js","../node_modules/prismjs/components/prism-python.js","../node_modules/prismjs/components/prism-php.js","../node_modules/prismjs/components/prism-sql.js","../node_modules/prismjs/components/prism-cmake.js","../node_modules/prismjs/components/prism-ruby.js","../node_modules/prismjs/components/prism-javascript.js","../node_modules/prismjs/components/prism-typescript.js","../../client/editor/nodes/node.tsx","../../client/editor/nodes/quote-block.tsx","../../client/editor/editor.tsx","../../client/index.tsx"],"sourcesContent":[null,null,null,null,null,null,null,"/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray;\nfunction noop() {}\nvar ReactSharedInternals = { H: null, A: null, T: null, S: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, props) {\n var refProp = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== refProp ? refProp : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(oldElement.type, newKey, oldElement.props);\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\nexports.Activity = REACT_ACTIVITY_TYPE;\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nexports.__COMPILER_RUNTIME = {\n __proto__: null,\n c: function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n }\n};\nexports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nexports.cacheSignal = function () {\n return null;\n};\nexports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, props);\n};\nexports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\nexports.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, props);\n};\nexports.createRef = function () {\n return { current: null };\n};\nexports.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n};\nexports.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\nexports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n};\nexports.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\nexports.useEffectEvent = function (callback) {\n return ReactSharedInternals.H.useEffectEvent(callback);\n};\nexports.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nexports.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nexports.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.2.0\";\n","/**\n * @license React\n * react.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function defineDeprecationWarning(methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function () {\n console.warn(\n \"%s(...) is deprecated in plain JavaScript React classes. %s\",\n info[0],\n info[1]\n );\n }\n });\n }\n function getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable)\n return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n }\n function warnNoop(publicInstance, callerName) {\n publicInstance =\n ((publicInstance = publicInstance.constructor) &&\n (publicInstance.displayName || publicInstance.name)) ||\n \"ReactClass\";\n var warningKey = publicInstance + \".\" + callerName;\n didWarnStateUpdateForUnmountedComponent[warningKey] ||\n (console.error(\n \"Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.\",\n callerName,\n publicInstance\n ),\n (didWarnStateUpdateForUnmountedComponent[warningKey] = !0));\n }\n function Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n function ComponentDummy() {}\n function PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n function noop() {}\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function cloneAndReplaceKey(oldElement, newKey) {\n newKey = ReactElement(\n oldElement.type,\n newKey,\n oldElement.props,\n oldElement._owner,\n oldElement._debugStack,\n oldElement._debugTask\n );\n oldElement._store &&\n (newKey._store.validated = oldElement._store.validated);\n return newKey;\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n function escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n }\n function getElementKey(element, index) {\n return \"object\" === typeof element &&\n null !== element &&\n null != element.key\n ? (checkKeyStringCoercion(element.key), escape(\"\" + element.key))\n : index.toString(36);\n }\n function resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"),\n (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n }\n function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback) {\n invokeCallback = children;\n callback = callback(invokeCallback);\n var childKey =\n \"\" === nameSoFar ? \".\" + getElementKey(invokeCallback, 0) : nameSoFar;\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != childKey &&\n (escapedPrefix =\n childKey.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (null != callback.key &&\n ((invokeCallback && invokeCallback.key === callback.key) ||\n checkKeyStringCoercion(callback.key)),\n (escapedPrefix = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (invokeCallback && invokeCallback.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n childKey\n )),\n \"\" !== nameSoFar &&\n null != invokeCallback &&\n isValidElement(invokeCallback) &&\n null == invokeCallback.key &&\n invokeCallback._store &&\n !invokeCallback._store.validated &&\n (escapedPrefix._store.validated = 2),\n (callback = escapedPrefix)),\n array.push(callback));\n return 1;\n }\n invokeCallback = 0;\n childKey = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = childKey + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n i === children.entries &&\n (didWarnAboutMaps ||\n console.warn(\n \"Using Maps as children is not supported. Use an array of keyed ReactElements instead.\"\n ),\n (didWarnAboutMaps = !0)),\n children = i.call(children),\n i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = childKey + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n }\n function mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n }\n function lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ioInfo = payload._ioInfo;\n null != ioInfo && (ioInfo.start = ioInfo.end = performance.now());\n ioInfo = payload._result;\n var thenable = ioInfo();\n thenable.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status) {\n payload._status = 1;\n payload._result = moduleObject;\n var _ioInfo = payload._ioInfo;\n null != _ioInfo && (_ioInfo.end = performance.now());\n void 0 === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = moduleObject));\n }\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status) {\n payload._status = 2;\n payload._result = error;\n var _ioInfo2 = payload._ioInfo;\n null != _ioInfo2 && (_ioInfo2.end = performance.now());\n void 0 === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n }\n );\n ioInfo = payload._ioInfo;\n if (null != ioInfo) {\n ioInfo.value = thenable;\n var displayName = thenable.displayName;\n \"string\" === typeof displayName && (ioInfo.name = displayName);\n }\n -1 === payload._status &&\n ((payload._status = 0), (payload._result = thenable));\n }\n if (1 === payload._status)\n return (\n (ioInfo = payload._result),\n void 0 === ioInfo &&\n console.error(\n \"lazy: Expected the result of a dynamic import() call. Instead received: %s\\n\\nYour code should look like: \\n const MyComponent = lazy(() => import('./MyComponent'))\\n\\nDid you accidentally put curly braces around the import?\",\n ioInfo\n ),\n \"default\" in ioInfo ||\n console.error(\n \"lazy: Expected the result of a dynamic import() call. Instead received: %s\\n\\nYour code should look like: \\n const MyComponent = lazy(() => import('./MyComponent'))\",\n ioInfo\n ),\n ioInfo.default\n );\n throw payload._result;\n }\n function resolveDispatcher() {\n var dispatcher = ReactSharedInternals.H;\n null === dispatcher &&\n console.error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n return dispatcher;\n }\n function releaseAsyncTransition() {\n ReactSharedInternals.asyncTransitions--;\n }\n function enqueueTask(task) {\n if (null === enqueueTaskImpl)\n try {\n var requireString = (\"require\" + Math.random()).slice(0, 7);\n enqueueTaskImpl = (module && module[requireString]).call(\n module,\n \"timers\"\n ).setImmediate;\n } catch (_err) {\n enqueueTaskImpl = function (callback) {\n !1 === didWarnAboutMessageChannel &&\n ((didWarnAboutMessageChannel = !0),\n \"undefined\" === typeof MessageChannel &&\n console.error(\n \"This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning.\"\n ));\n var channel = new MessageChannel();\n channel.port1.onmessage = callback;\n channel.port2.postMessage(void 0);\n };\n }\n return enqueueTaskImpl(task);\n }\n function aggregateErrors(errors) {\n return 1 < errors.length && \"function\" === typeof AggregateError\n ? new AggregateError(errors)\n : errors[0];\n }\n function popActScope(prevActQueue, prevActScopeDepth) {\n prevActScopeDepth !== actScopeDepth - 1 &&\n console.error(\n \"You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. \"\n );\n actScopeDepth = prevActScopeDepth;\n }\n function recursivelyFlushAsyncActWork(returnValue, resolve, reject) {\n var queue = ReactSharedInternals.actQueue;\n if (null !== queue)\n if (0 !== queue.length)\n try {\n flushActQueue(queue);\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n });\n return;\n } catch (error) {\n ReactSharedInternals.thrownErrors.push(error);\n }\n else ReactSharedInternals.actQueue = null;\n 0 < ReactSharedInternals.thrownErrors.length\n ? ((queue = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n reject(queue))\n : resolve(returnValue);\n }\n function flushActQueue(queue) {\n if (!isFlushing) {\n isFlushing = !0;\n var i = 0;\n try {\n for (; i < queue.length; i++) {\n var callback = queue[i];\n do {\n ReactSharedInternals.didUsePromise = !1;\n var continuation = callback(!1);\n if (null !== continuation) {\n if (ReactSharedInternals.didUsePromise) {\n queue[i] = callback;\n queue.splice(0, i);\n return;\n }\n callback = continuation;\n } else break;\n } while (1);\n }\n queue.length = 0;\n } catch (error) {\n queue.splice(0, i + 1), ReactSharedInternals.thrownErrors.push(error);\n } finally {\n isFlushing = !1;\n }\n }\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator,\n didWarnStateUpdateForUnmountedComponent = {},\n ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function (publicInstance) {\n warnNoop(publicInstance, \"forceUpdate\");\n },\n enqueueReplaceState: function (publicInstance) {\n warnNoop(publicInstance, \"replaceState\");\n },\n enqueueSetState: function (publicInstance) {\n warnNoop(publicInstance, \"setState\");\n }\n },\n assign = Object.assign,\n emptyObject = {};\n Object.freeze(emptyObject);\n Component.prototype.isReactComponent = {};\n Component.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n };\n Component.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n };\n var deprecatedAPIs = {\n isMounted: [\n \"isMounted\",\n \"Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks.\"\n ],\n replaceState: [\n \"replaceState\",\n \"Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236).\"\n ]\n };\n for (fnName in deprecatedAPIs)\n deprecatedAPIs.hasOwnProperty(fnName) &&\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n ComponentDummy.prototype = Component.prototype;\n deprecatedAPIs = PureComponent.prototype = new ComponentDummy();\n deprecatedAPIs.constructor = PureComponent;\n assign(deprecatedAPIs, Component.prototype);\n deprecatedAPIs.isPureReactComponent = !0;\n var isArrayImpl = Array.isArray,\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals = {\n H: null,\n A: null,\n T: null,\n S: null,\n actQueue: null,\n asyncTransitions: 0,\n isBatchingLegacy: !1,\n didScheduleLegacyUpdate: !1,\n didUsePromise: !1,\n thrownErrors: [],\n getCurrentStack: null,\n recentlyCreatedOwnerStacks: 0\n },\n hasOwnProperty = Object.prototype.hasOwnProperty,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n deprecatedAPIs = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown, didWarnAboutOldJSXRuntime;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = deprecatedAPIs.react_stack_bottom_frame.bind(\n deprecatedAPIs,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutMaps = !1,\n userProvidedKeyEscapeRegex = /\\/+/g,\n reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n didWarnAboutMessageChannel = !1,\n enqueueTaskImpl = null,\n actScopeDepth = 0,\n didWarnNoAwaitAct = !1,\n isFlushing = !1,\n queueSeveralMicrotasks =\n \"function\" === typeof queueMicrotask\n ? function (callback) {\n queueMicrotask(function () {\n return queueMicrotask(callback);\n });\n }\n : enqueueTask;\n deprecatedAPIs = Object.freeze({\n __proto__: null,\n c: function (size) {\n return resolveDispatcher().useMemoCache(size);\n }\n });\n var fnName = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\n exports.Activity = REACT_ACTIVITY_TYPE;\n exports.Children = fnName;\n exports.Component = Component;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.PureComponent = PureComponent;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\n exports.__COMPILER_RUNTIME = deprecatedAPIs;\n exports.act = function (callback) {\n var prevActQueue = ReactSharedInternals.actQueue,\n prevActScopeDepth = actScopeDepth;\n actScopeDepth++;\n var queue = (ReactSharedInternals.actQueue =\n null !== prevActQueue ? prevActQueue : []),\n didAwaitActCall = !1;\n try {\n var result = callback();\n } catch (error) {\n ReactSharedInternals.thrownErrors.push(error);\n }\n if (0 < ReactSharedInternals.thrownErrors.length)\n throw (\n (popActScope(prevActQueue, prevActScopeDepth),\n (callback = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n callback)\n );\n if (\n null !== result &&\n \"object\" === typeof result &&\n \"function\" === typeof result.then\n ) {\n var thenable = result;\n queueSeveralMicrotasks(function () {\n didAwaitActCall ||\n didWarnNoAwaitAct ||\n ((didWarnNoAwaitAct = !0),\n console.error(\n \"You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);\"\n ));\n });\n return {\n then: function (resolve, reject) {\n didAwaitActCall = !0;\n thenable.then(\n function (returnValue) {\n popActScope(prevActQueue, prevActScopeDepth);\n if (0 === prevActScopeDepth) {\n try {\n flushActQueue(queue),\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(\n returnValue,\n resolve,\n reject\n );\n });\n } catch (error$0) {\n ReactSharedInternals.thrownErrors.push(error$0);\n }\n if (0 < ReactSharedInternals.thrownErrors.length) {\n var _thrownError = aggregateErrors(\n ReactSharedInternals.thrownErrors\n );\n ReactSharedInternals.thrownErrors.length = 0;\n reject(_thrownError);\n }\n } else resolve(returnValue);\n },\n function (error) {\n popActScope(prevActQueue, prevActScopeDepth);\n 0 < ReactSharedInternals.thrownErrors.length\n ? ((error = aggregateErrors(\n ReactSharedInternals.thrownErrors\n )),\n (ReactSharedInternals.thrownErrors.length = 0),\n reject(error))\n : reject(error);\n }\n );\n }\n };\n }\n var returnValue$jscomp$0 = result;\n popActScope(prevActQueue, prevActScopeDepth);\n 0 === prevActScopeDepth &&\n (flushActQueue(queue),\n 0 !== queue.length &&\n queueSeveralMicrotasks(function () {\n didAwaitActCall ||\n didWarnNoAwaitAct ||\n ((didWarnNoAwaitAct = !0),\n console.error(\n \"A component suspended inside an `act` scope, but the `act` call was not awaited. When testing React components that depend on asynchronous data, you must await the result:\\n\\nawait act(() => ...)\"\n ));\n }),\n (ReactSharedInternals.actQueue = null));\n if (0 < ReactSharedInternals.thrownErrors.length)\n throw (\n ((callback = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n callback)\n );\n return {\n then: function (resolve, reject) {\n didAwaitActCall = !0;\n 0 === prevActScopeDepth\n ? ((ReactSharedInternals.actQueue = queue),\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(\n returnValue$jscomp$0,\n resolve,\n reject\n );\n }))\n : resolve(returnValue$jscomp$0);\n }\n };\n };\n exports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n };\n exports.cacheSignal = function () {\n return null;\n };\n exports.captureOwnerStack = function () {\n var getCurrentStack = ReactSharedInternals.getCurrentStack;\n return null === getCurrentStack ? null : getCurrentStack();\n };\n exports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" +\n element +\n \".\"\n );\n var props = assign({}, element.props),\n key = element.key,\n owner = element._owner;\n if (null != config) {\n var JSCompiler_inline_result;\n a: {\n if (\n hasOwnProperty.call(config, \"ref\") &&\n (JSCompiler_inline_result = Object.getOwnPropertyDescriptor(\n config,\n \"ref\"\n ).get) &&\n JSCompiler_inline_result.isReactWarning\n ) {\n JSCompiler_inline_result = !1;\n break a;\n }\n JSCompiler_inline_result = void 0 !== config.ref;\n }\n JSCompiler_inline_result && (owner = getOwner());\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (key = \"\" + config.key));\n for (propName in config)\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n }\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n JSCompiler_inline_result = Array(propName);\n for (var i = 0; i < propName; i++)\n JSCompiler_inline_result[i] = arguments[i + 2];\n props.children = JSCompiler_inline_result;\n }\n props = ReactElement(\n element.type,\n key,\n props,\n owner,\n element._debugStack,\n element._debugTask\n );\n for (key = 2; key < arguments.length; key++)\n validateChildKeys(arguments[key]);\n return props;\n };\n exports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n defaultValue._currentRenderer = null;\n defaultValue._currentRenderer2 = null;\n return defaultValue;\n };\n exports.createElement = function (type, config, children) {\n for (var i = 2; i < arguments.length; i++)\n validateChildKeys(arguments[i]);\n i = {};\n var key = null;\n if (null != config)\n for (propName in (didWarnAboutOldJSXRuntime ||\n !(\"__self\" in config) ||\n \"key\" in config ||\n ((didWarnAboutOldJSXRuntime = !0),\n console.warn(\n \"Your app (or one of its dependencies) is using an outdated JSX transform. Update to the modern JSX transform for faster performance: https://react.dev/link/new-jsx-transform\"\n )),\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (key = \"\" + config.key)),\n config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (i[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) i.children = children;\n else if (1 < childrenLength) {\n for (\n var childArray = Array(childrenLength), _i = 0;\n _i < childrenLength;\n _i++\n )\n childArray[_i] = arguments[_i + 2];\n Object.freeze && Object.freeze(childArray);\n i.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === i[propName] && (i[propName] = childrenLength[propName]);\n key &&\n defineKeyPropWarningGetter(\n i,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n var propName = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return ReactElement(\n type,\n key,\n i,\n getOwner(),\n propName ? Error(\"react-stack-top-frame\") : unknownOwnerDebugStack,\n propName ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.createRef = function () {\n var refObject = { current: null };\n Object.seal(refObject);\n return refObject;\n };\n exports.forwardRef = function (render) {\n null != render && render.$$typeof === REACT_MEMO_TYPE\n ? console.error(\n \"forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...)).\"\n )\n : \"function\" !== typeof render\n ? console.error(\n \"forwardRef requires a render function but was given %s.\",\n null === render ? \"null\" : typeof render\n )\n : 0 !== render.length &&\n 2 !== render.length &&\n console.error(\n \"forwardRef render functions accept exactly two parameters: props and ref. %s\",\n 1 === render.length\n ? \"Did you forget to use the ref parameter?\"\n : \"Any additional parameter will be undefined.\"\n );\n null != render &&\n null != render.defaultProps &&\n console.error(\n \"forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?\"\n );\n var elementType = { $$typeof: REACT_FORWARD_REF_TYPE, render: render },\n ownName;\n Object.defineProperty(elementType, \"displayName\", {\n enumerable: !1,\n configurable: !0,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n render.name ||\n render.displayName ||\n (Object.defineProperty(render, \"name\", { value: name }),\n (render.displayName = name));\n }\n });\n return elementType;\n };\n exports.isValidElement = isValidElement;\n exports.lazy = function (ctor) {\n ctor = { _status: -1, _result: ctor };\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: ctor,\n _init: lazyInitializer\n },\n ioInfo = {\n name: \"lazy\",\n start: -1,\n end: -1,\n value: null,\n owner: null,\n debugStack: Error(\"react-stack-top-frame\"),\n debugTask: console.createTask ? console.createTask(\"lazy()\") : null\n };\n ctor._ioInfo = ioInfo;\n lazyType._debugInfo = [{ awaited: ioInfo }];\n return lazyType;\n };\n exports.memo = function (type, compare) {\n null == type &&\n console.error(\n \"memo: The first argument must be a component. Instead received: %s\",\n null === type ? \"null\" : typeof type\n );\n compare = {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n var ownName;\n Object.defineProperty(compare, \"displayName\", {\n enumerable: !1,\n configurable: !0,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n type.name ||\n type.displayName ||\n (Object.defineProperty(type, \"name\", { value: name }),\n (type.displayName = name));\n }\n });\n return compare;\n };\n exports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n currentTransition._updatedFibers = new Set();\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n (ReactSharedInternals.asyncTransitions++,\n returnValue.then(releaseAsyncTransition, releaseAsyncTransition),\n returnValue.then(noop, reportGlobalError));\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null === prevTransition &&\n currentTransition._updatedFibers &&\n ((scope = currentTransition._updatedFibers.size),\n currentTransition._updatedFibers.clear(),\n 10 < scope &&\n console.warn(\n \"Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table.\"\n )),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (null !== prevTransition.types &&\n prevTransition.types !== currentTransition.types &&\n console.error(\n \"We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React.\"\n ),\n (prevTransition.types = currentTransition.types)),\n (ReactSharedInternals.T = prevTransition);\n }\n };\n exports.unstable_useCacheRefresh = function () {\n return resolveDispatcher().useCacheRefresh();\n };\n exports.use = function (usable) {\n return resolveDispatcher().use(usable);\n };\n exports.useActionState = function (action, initialState, permalink) {\n return resolveDispatcher().useActionState(\n action,\n initialState,\n permalink\n );\n };\n exports.useCallback = function (callback, deps) {\n return resolveDispatcher().useCallback(callback, deps);\n };\n exports.useContext = function (Context) {\n var dispatcher = resolveDispatcher();\n Context.$$typeof === REACT_CONSUMER_TYPE &&\n console.error(\n \"Calling useContext(Context.Consumer) is not supported and will cause bugs. Did you mean to call useContext(Context) instead?\"\n );\n return dispatcher.useContext(Context);\n };\n exports.useDebugValue = function (value, formatterFn) {\n return resolveDispatcher().useDebugValue(value, formatterFn);\n };\n exports.useDeferredValue = function (value, initialValue) {\n return resolveDispatcher().useDeferredValue(value, initialValue);\n };\n exports.useEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useEffect(create, deps);\n };\n exports.useEffectEvent = function (callback) {\n return resolveDispatcher().useEffectEvent(callback);\n };\n exports.useId = function () {\n return resolveDispatcher().useId();\n };\n exports.useImperativeHandle = function (ref, create, deps) {\n return resolveDispatcher().useImperativeHandle(ref, create, deps);\n };\n exports.useInsertionEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useInsertionEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useInsertionEffect(create, deps);\n };\n exports.useLayoutEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useLayoutEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useLayoutEffect(create, deps);\n };\n exports.useMemo = function (create, deps) {\n return resolveDispatcher().useMemo(create, deps);\n };\n exports.useOptimistic = function (passthrough, reducer) {\n return resolveDispatcher().useOptimistic(passthrough, reducer);\n };\n exports.useReducer = function (reducer, initialArg, init) {\n return resolveDispatcher().useReducer(reducer, initialArg, init);\n };\n exports.useRef = function (initialValue) {\n return resolveDispatcher().useRef(initialValue);\n };\n exports.useState = function (initialState) {\n return resolveDispatcher().useState(initialState);\n };\n exports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n return resolveDispatcher().useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n };\n exports.useTransition = function () {\n return resolveDispatcher().useTransition();\n };\n exports.version = \"19.2.0\";\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'use strict'\n\nmodule.exports = direction\n\nvar RTL = '\\u0591-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC'\nvar LTR =\n 'A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6' +\n '\\u00F8-\\u02B8\\u0300-\\u0590\\u0800-\\u1FFF\\u200E\\u2C00-\\uFB1C' +\n '\\uFE00-\\uFE6F\\uFEFD-\\uFFFF'\n\nvar rtl = new RegExp('^[^' + LTR + ']*[' + RTL + ']')\nvar ltr = new RegExp('^[^' + RTL + ']*[' + LTR + ']')\n\nfunction direction(value) {\n value = String(value || '')\n\n if (rtl.test(value)) {\n return 'rtl'\n }\n\n if (ltr.test(value)) {\n return 'ltr'\n }\n\n return 'neutral'\n}\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","const t=t=>\"object\"==typeof t&&null!=t&&1===t.nodeType,e=(t,e)=>(!e||\"hidden\"!==t)&&(\"visible\"!==t&&\"clip\"!==t),n=(t,n)=>{if(t.clientHeight<t.scrollHeight||t.clientWidth<t.scrollWidth){const o=getComputedStyle(t,null);return e(o.overflowY,n)||e(o.overflowX,n)||(t=>{const e=(t=>{if(!t.ownerDocument||!t.ownerDocument.defaultView)return null;try{return t.ownerDocument.defaultView.frameElement}catch(t){return null}})(t);return!!e&&(e.clientHeight<t.scrollHeight||e.clientWidth<t.scrollWidth)})(t)}return!1},o=(t,e,n,o,l,r,i,s)=>r<t&&i>e||r>t&&i<e?0:r<=t&&s<=n||i>=e&&s>=n?r-t-o:i>e&&s<n||r<t&&s>n?i-e+l:0,l=t=>{const e=t.parentElement;return null==e?t.getRootNode().host||null:e},r=(e,r)=>{var i,s,d,h;if(\"undefined\"==typeof document)return[];const{scrollMode:c,block:f,inline:u,boundary:a,skipOverflowHiddenElements:g}=r,p=\"function\"==typeof a?a:t=>t!==a;if(!t(e))throw new TypeError(\"Invalid target\");const m=document.scrollingElement||document.documentElement,w=[];let W=e;for(;t(W)&&p(W);){if(W=l(W),W===m){w.push(W);break}null!=W&&W===document.body&&n(W)&&!n(document.documentElement)||null!=W&&n(W,g)&&w.push(W)}const b=null!=(s=null==(i=window.visualViewport)?void 0:i.width)?s:innerWidth,H=null!=(h=null==(d=window.visualViewport)?void 0:d.height)?h:innerHeight,{scrollX:y,scrollY:M}=window,{height:v,width:E,top:x,right:C,bottom:I,left:R}=e.getBoundingClientRect(),{top:T,right:B,bottom:F,left:V}=(t=>{const e=window.getComputedStyle(t);return{top:parseFloat(e.scrollMarginTop)||0,right:parseFloat(e.scrollMarginRight)||0,bottom:parseFloat(e.scrollMarginBottom)||0,left:parseFloat(e.scrollMarginLeft)||0}})(e);let k=\"start\"===f||\"nearest\"===f?x-T:\"end\"===f?I+F:x+v/2-T+F,D=\"center\"===u?R+E/2-V+B:\"end\"===u?C+B:R-V;const L=[];for(let t=0;t<w.length;t++){const e=w[t],{height:l,width:r,top:i,right:s,bottom:d,left:h}=e.getBoundingClientRect();if(\"if-needed\"===c&&x>=0&&R>=0&&I<=H&&C<=b&&(e===m&&!n(e)||x>=i&&I<=d&&R>=h&&C<=s))return L;const a=getComputedStyle(e),g=parseInt(a.borderLeftWidth,10),p=parseInt(a.borderTopWidth,10),W=parseInt(a.borderRightWidth,10),T=parseInt(a.borderBottomWidth,10);let B=0,F=0;const V=\"offsetWidth\"in e?e.offsetWidth-e.clientWidth-g-W:0,S=\"offsetHeight\"in e?e.offsetHeight-e.clientHeight-p-T:0,X=\"offsetWidth\"in e?0===e.offsetWidth?0:r/e.offsetWidth:0,Y=\"offsetHeight\"in e?0===e.offsetHeight?0:l/e.offsetHeight:0;if(m===e)B=\"start\"===f?k:\"end\"===f?k-H:\"nearest\"===f?o(M,M+H,H,p,T,M+k,M+k+v,v):k-H/2,F=\"start\"===u?D:\"center\"===u?D-b/2:\"end\"===u?D-b:o(y,y+b,b,g,W,y+D,y+D+E,E),B=Math.max(0,B+M),F=Math.max(0,F+y);else{B=\"start\"===f?k-i-p:\"end\"===f?k-d+T+S:\"nearest\"===f?o(i,d,l,p,T+S,k,k+v,v):k-(i+l/2)+S/2,F=\"start\"===u?D-h-g:\"center\"===u?D-(h+r/2)+V/2:\"end\"===u?D-s+W+V:o(h,s,r,g,W+V,D,D+E,E);const{scrollLeft:t,scrollTop:n}=e;B=0===Y?0:Math.max(0,Math.min(n+B/Y,e.scrollHeight-l/Y+S)),F=0===X?0:Math.max(0,Math.min(t+F/X,e.scrollWidth-r/X+V)),k+=n-B,D+=t-F}L.push({el:e,top:B,left:F})}return L};export{r as compute};//# sourceMappingURL=index.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","// src/utils/env.ts\nvar NOTHING = Symbol.for(\"immer-nothing\");\nvar DRAFTABLE = Symbol.for(\"immer-draftable\");\nvar DRAFT_STATE = Symbol.for(\"immer-state\");\n\n// src/utils/errors.ts\nvar errors = process.env.NODE_ENV !== \"production\" ? [\n // All error codes, starting by 0:\n function(plugin) {\n return `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`;\n },\n function(thing) {\n return `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`;\n },\n \"This object has been frozen and should not be mutated\",\n function(data) {\n return \"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" + data;\n },\n \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n \"Immer forbids circular references\",\n \"The first or second argument to `produce` must be a function\",\n \"The third argument to `produce` must be a function or undefined\",\n \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n function(thing) {\n return `'current' expects a draft, got: ${thing}`;\n },\n \"Object.defineProperty() cannot be used on an Immer draft\",\n \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n \"Immer only supports deleting array indices\",\n \"Immer only supports setting array indices and the 'length' property\",\n function(thing) {\n return `'original' expects a draft, got: ${thing}`;\n }\n // Note: if more errors are added, the errorOffset in Patches.ts should be increased\n // See Patches.ts for additional errors\n] : [];\nfunction die(error, ...args) {\n if (process.env.NODE_ENV !== \"production\") {\n const e = errors[error];\n const msg = typeof e === \"function\" ? e.apply(null, args) : e;\n throw new Error(`[Immer] ${msg}`);\n }\n throw new Error(\n `[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n );\n}\n\n// src/utils/common.ts\nvar getPrototypeOf = Object.getPrototypeOf;\nfunction isDraft(value) {\n return !!value && !!value[DRAFT_STATE];\n}\nfunction isDraftable(value) {\n if (!value)\n return false;\n return isPlainObject(value) || Array.isArray(value) || !!value[DRAFTABLE] || !!value.constructor?.[DRAFTABLE] || isMap(value) || isSet(value);\n}\nvar objectCtorString = Object.prototype.constructor.toString();\nvar cachedCtorStrings = /* @__PURE__ */ new WeakMap();\nfunction isPlainObject(value) {\n if (!value || typeof value !== \"object\")\n return false;\n const proto = Object.getPrototypeOf(value);\n if (proto === null || proto === Object.prototype)\n return true;\n const Ctor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n if (Ctor === Object)\n return true;\n if (typeof Ctor !== \"function\")\n return false;\n let ctorString = cachedCtorStrings.get(Ctor);\n if (ctorString === void 0) {\n ctorString = Function.toString.call(Ctor);\n cachedCtorStrings.set(Ctor, ctorString);\n }\n return ctorString === objectCtorString;\n}\nfunction original(value) {\n if (!isDraft(value))\n die(15, value);\n return value[DRAFT_STATE].base_;\n}\nfunction each(obj, iter, strict = true) {\n if (getArchtype(obj) === 0 /* Object */) {\n const keys = strict ? Reflect.ownKeys(obj) : Object.keys(obj);\n keys.forEach((key) => {\n iter(key, obj[key], obj);\n });\n } else {\n obj.forEach((entry, index) => iter(index, entry, obj));\n }\n}\nfunction getArchtype(thing) {\n const state = thing[DRAFT_STATE];\n return state ? state.type_ : Array.isArray(thing) ? 1 /* Array */ : isMap(thing) ? 2 /* Map */ : isSet(thing) ? 3 /* Set */ : 0 /* Object */;\n}\nfunction has(thing, prop) {\n return getArchtype(thing) === 2 /* Map */ ? thing.has(prop) : Object.prototype.hasOwnProperty.call(thing, prop);\n}\nfunction get(thing, prop) {\n return getArchtype(thing) === 2 /* Map */ ? thing.get(prop) : thing[prop];\n}\nfunction set(thing, propOrOldValue, value) {\n const t = getArchtype(thing);\n if (t === 2 /* Map */)\n thing.set(propOrOldValue, value);\n else if (t === 3 /* Set */) {\n thing.add(value);\n } else\n thing[propOrOldValue] = value;\n}\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\nfunction isMap(target) {\n return target instanceof Map;\n}\nfunction isSet(target) {\n return target instanceof Set;\n}\nfunction latest(state) {\n return state.copy_ || state.base_;\n}\nfunction shallowCopy(base, strict) {\n if (isMap(base)) {\n return new Map(base);\n }\n if (isSet(base)) {\n return new Set(base);\n }\n if (Array.isArray(base))\n return Array.prototype.slice.call(base);\n const isPlain = isPlainObject(base);\n if (strict === true || strict === \"class_only\" && !isPlain) {\n const descriptors = Object.getOwnPropertyDescriptors(base);\n delete descriptors[DRAFT_STATE];\n let keys = Reflect.ownKeys(descriptors);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const desc = descriptors[key];\n if (desc.writable === false) {\n desc.writable = true;\n desc.configurable = true;\n }\n if (desc.get || desc.set)\n descriptors[key] = {\n configurable: true,\n writable: true,\n // could live with !!desc.set as well here...\n enumerable: desc.enumerable,\n value: base[key]\n };\n }\n return Object.create(getPrototypeOf(base), descriptors);\n } else {\n const proto = getPrototypeOf(base);\n if (proto !== null && isPlain) {\n return { ...base };\n }\n const obj = Object.create(proto);\n return Object.assign(obj, base);\n }\n}\nfunction freeze(obj, deep = false) {\n if (isFrozen(obj) || isDraft(obj) || !isDraftable(obj))\n return obj;\n if (getArchtype(obj) > 1) {\n Object.defineProperties(obj, {\n set: dontMutateMethodOverride,\n add: dontMutateMethodOverride,\n clear: dontMutateMethodOverride,\n delete: dontMutateMethodOverride\n });\n }\n Object.freeze(obj);\n if (deep)\n Object.values(obj).forEach((value) => freeze(value, true));\n return obj;\n}\nfunction dontMutateFrozenCollections() {\n die(2);\n}\nvar dontMutateMethodOverride = {\n value: dontMutateFrozenCollections\n};\nfunction isFrozen(obj) {\n if (obj === null || typeof obj !== \"object\")\n return true;\n return Object.isFrozen(obj);\n}\n\n// src/utils/plugins.ts\nvar plugins = {};\nfunction getPlugin(pluginKey) {\n const plugin = plugins[pluginKey];\n if (!plugin) {\n die(0, pluginKey);\n }\n return plugin;\n}\nfunction loadPlugin(pluginKey, implementation) {\n if (!plugins[pluginKey])\n plugins[pluginKey] = implementation;\n}\n\n// src/core/scope.ts\nvar currentScope;\nfunction getCurrentScope() {\n return currentScope;\n}\nfunction createScope(parent_, immer_) {\n return {\n drafts_: [],\n parent_,\n immer_,\n // Whenever the modified draft contains a draft from another scope, we\n // need to prevent auto-freezing so the unowned draft can be finalized.\n canAutoFreeze_: true,\n unfinalizedDrafts_: 0\n };\n}\nfunction usePatchesInScope(scope, patchListener) {\n if (patchListener) {\n getPlugin(\"Patches\");\n scope.patches_ = [];\n scope.inversePatches_ = [];\n scope.patchListener_ = patchListener;\n }\n}\nfunction revokeScope(scope) {\n leaveScope(scope);\n scope.drafts_.forEach(revokeDraft);\n scope.drafts_ = null;\n}\nfunction leaveScope(scope) {\n if (scope === currentScope) {\n currentScope = scope.parent_;\n }\n}\nfunction enterScope(immer2) {\n return currentScope = createScope(currentScope, immer2);\n}\nfunction revokeDraft(draft) {\n const state = draft[DRAFT_STATE];\n if (state.type_ === 0 /* Object */ || state.type_ === 1 /* Array */)\n state.revoke_();\n else\n state.revoked_ = true;\n}\n\n// src/core/finalize.ts\nfunction processResult(result, scope) {\n scope.unfinalizedDrafts_ = scope.drafts_.length;\n const baseDraft = scope.drafts_[0];\n const isReplaced = result !== void 0 && result !== baseDraft;\n if (isReplaced) {\n if (baseDraft[DRAFT_STATE].modified_) {\n revokeScope(scope);\n die(4);\n }\n if (isDraftable(result)) {\n result = finalize(scope, result);\n if (!scope.parent_)\n maybeFreeze(scope, result);\n }\n if (scope.patches_) {\n getPlugin(\"Patches\").generateReplacementPatches_(\n baseDraft[DRAFT_STATE].base_,\n result,\n scope.patches_,\n scope.inversePatches_\n );\n }\n } else {\n result = finalize(scope, baseDraft, []);\n }\n revokeScope(scope);\n if (scope.patches_) {\n scope.patchListener_(scope.patches_, scope.inversePatches_);\n }\n return result !== NOTHING ? result : void 0;\n}\nfunction finalize(rootScope, value, path) {\n if (isFrozen(value))\n return value;\n const useStrictIteration = rootScope.immer_.shouldUseStrictIteration();\n const state = value[DRAFT_STATE];\n if (!state) {\n each(\n value,\n (key, childValue) => finalizeProperty(rootScope, state, value, key, childValue, path),\n useStrictIteration\n );\n return value;\n }\n if (state.scope_ !== rootScope)\n return value;\n if (!state.modified_) {\n maybeFreeze(rootScope, state.base_, true);\n return state.base_;\n }\n if (!state.finalized_) {\n state.finalized_ = true;\n state.scope_.unfinalizedDrafts_--;\n const result = state.copy_;\n let resultEach = result;\n let isSet2 = false;\n if (state.type_ === 3 /* Set */) {\n resultEach = new Set(result);\n result.clear();\n isSet2 = true;\n }\n each(\n resultEach,\n (key, childValue) => finalizeProperty(\n rootScope,\n state,\n result,\n key,\n childValue,\n path,\n isSet2\n ),\n useStrictIteration\n );\n maybeFreeze(rootScope, result, false);\n if (path && rootScope.patches_) {\n getPlugin(\"Patches\").generatePatches_(\n state,\n path,\n rootScope.patches_,\n rootScope.inversePatches_\n );\n }\n }\n return state.copy_;\n}\nfunction finalizeProperty(rootScope, parentState, targetObject, prop, childValue, rootPath, targetIsSet) {\n if (childValue == null) {\n return;\n }\n if (typeof childValue !== \"object\" && !targetIsSet) {\n return;\n }\n const childIsFrozen = isFrozen(childValue);\n if (childIsFrozen && !targetIsSet) {\n return;\n }\n if (process.env.NODE_ENV !== \"production\" && childValue === targetObject)\n die(5);\n if (isDraft(childValue)) {\n const path = rootPath && parentState && parentState.type_ !== 3 /* Set */ && // Set objects are atomic since they have no keys.\n !has(parentState.assigned_, prop) ? rootPath.concat(prop) : void 0;\n const res = finalize(rootScope, childValue, path);\n set(targetObject, prop, res);\n if (isDraft(res)) {\n rootScope.canAutoFreeze_ = false;\n } else\n return;\n } else if (targetIsSet) {\n targetObject.add(childValue);\n }\n if (isDraftable(childValue) && !childIsFrozen) {\n if (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n return;\n }\n if (parentState && parentState.base_ && parentState.base_[prop] === childValue && childIsFrozen) {\n return;\n }\n finalize(rootScope, childValue);\n if ((!parentState || !parentState.scope_.parent_) && typeof prop !== \"symbol\" && (isMap(targetObject) ? targetObject.has(prop) : Object.prototype.propertyIsEnumerable.call(targetObject, prop)))\n maybeFreeze(rootScope, childValue);\n }\n}\nfunction maybeFreeze(scope, value, deep = false) {\n if (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n freeze(value, deep);\n }\n}\n\n// src/core/proxy.ts\nfunction createProxyProxy(base, parent) {\n const isArray = Array.isArray(base);\n const state = {\n type_: isArray ? 1 /* Array */ : 0 /* Object */,\n // Track which produce call this is associated with.\n scope_: parent ? parent.scope_ : getCurrentScope(),\n // True for both shallow and deep changes.\n modified_: false,\n // Used during finalization.\n finalized_: false,\n // Track which properties have been assigned (true) or deleted (false).\n assigned_: {},\n // The parent draft state.\n parent_: parent,\n // The base state.\n base_: base,\n // The base proxy.\n draft_: null,\n // set below\n // The base copy with any updated values.\n copy_: null,\n // Called by the `produce` function.\n revoke_: null,\n isManual_: false\n };\n let target = state;\n let traps = objectTraps;\n if (isArray) {\n target = [state];\n traps = arrayTraps;\n }\n const { revoke, proxy } = Proxy.revocable(target, traps);\n state.draft_ = proxy;\n state.revoke_ = revoke;\n return proxy;\n}\nvar objectTraps = {\n get(state, prop) {\n if (prop === DRAFT_STATE)\n return state;\n const source = latest(state);\n if (!has(source, prop)) {\n return readPropFromProto(state, source, prop);\n }\n const value = source[prop];\n if (state.finalized_ || !isDraftable(value)) {\n return value;\n }\n if (value === peek(state.base_, prop)) {\n prepareCopy(state);\n return state.copy_[prop] = createProxy(value, state);\n }\n return value;\n },\n has(state, prop) {\n return prop in latest(state);\n },\n ownKeys(state) {\n return Reflect.ownKeys(latest(state));\n },\n set(state, prop, value) {\n const desc = getDescriptorFromProto(latest(state), prop);\n if (desc?.set) {\n desc.set.call(state.draft_, value);\n return true;\n }\n if (!state.modified_) {\n const current2 = peek(latest(state), prop);\n const currentState = current2?.[DRAFT_STATE];\n if (currentState && currentState.base_ === value) {\n state.copy_[prop] = value;\n state.assigned_[prop] = false;\n return true;\n }\n if (is(value, current2) && (value !== void 0 || has(state.base_, prop)))\n return true;\n prepareCopy(state);\n markChanged(state);\n }\n if (state.copy_[prop] === value && // special case: handle new props with value 'undefined'\n (value !== void 0 || prop in state.copy_) || // special case: NaN\n Number.isNaN(value) && Number.isNaN(state.copy_[prop]))\n return true;\n state.copy_[prop] = value;\n state.assigned_[prop] = true;\n return true;\n },\n deleteProperty(state, prop) {\n if (peek(state.base_, prop) !== void 0 || prop in state.base_) {\n state.assigned_[prop] = false;\n prepareCopy(state);\n markChanged(state);\n } else {\n delete state.assigned_[prop];\n }\n if (state.copy_) {\n delete state.copy_[prop];\n }\n return true;\n },\n // Note: We never coerce `desc.value` into an Immer draft, because we can't make\n // the same guarantee in ES5 mode.\n getOwnPropertyDescriptor(state, prop) {\n const owner = latest(state);\n const desc = Reflect.getOwnPropertyDescriptor(owner, prop);\n if (!desc)\n return desc;\n return {\n writable: true,\n configurable: state.type_ !== 1 /* Array */ || prop !== \"length\",\n enumerable: desc.enumerable,\n value: owner[prop]\n };\n },\n defineProperty() {\n die(11);\n },\n getPrototypeOf(state) {\n return getPrototypeOf(state.base_);\n },\n setPrototypeOf() {\n die(12);\n }\n};\nvar arrayTraps = {};\neach(objectTraps, (key, fn) => {\n arrayTraps[key] = function() {\n arguments[0] = arguments[0][0];\n return fn.apply(this, arguments);\n };\n});\narrayTraps.deleteProperty = function(state, prop) {\n if (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop)))\n die(13);\n return arrayTraps.set.call(this, state, prop, void 0);\n};\narrayTraps.set = function(state, prop, value) {\n if (process.env.NODE_ENV !== \"production\" && prop !== \"length\" && isNaN(parseInt(prop)))\n die(14);\n return objectTraps.set.call(this, state[0], prop, value, state[0]);\n};\nfunction peek(draft, prop) {\n const state = draft[DRAFT_STATE];\n const source = state ? latest(state) : draft;\n return source[prop];\n}\nfunction readPropFromProto(state, source, prop) {\n const desc = getDescriptorFromProto(source, prop);\n return desc ? `value` in desc ? desc.value : (\n // This is a very special case, if the prop is a getter defined by the\n // prototype, we should invoke it with the draft as context!\n desc.get?.call(state.draft_)\n ) : void 0;\n}\nfunction getDescriptorFromProto(source, prop) {\n if (!(prop in source))\n return void 0;\n let proto = getPrototypeOf(source);\n while (proto) {\n const desc = Object.getOwnPropertyDescriptor(proto, prop);\n if (desc)\n return desc;\n proto = getPrototypeOf(proto);\n }\n return void 0;\n}\nfunction markChanged(state) {\n if (!state.modified_) {\n state.modified_ = true;\n if (state.parent_) {\n markChanged(state.parent_);\n }\n }\n}\nfunction prepareCopy(state) {\n if (!state.copy_) {\n state.copy_ = shallowCopy(\n state.base_,\n state.scope_.immer_.useStrictShallowCopy_\n );\n }\n}\n\n// src/core/immerClass.ts\nvar Immer2 = class {\n constructor(config) {\n this.autoFreeze_ = true;\n this.useStrictShallowCopy_ = false;\n this.useStrictIteration_ = true;\n /**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\n this.produce = (base, recipe, patchListener) => {\n if (typeof base === \"function\" && typeof recipe !== \"function\") {\n const defaultBase = recipe;\n recipe = base;\n const self = this;\n return function curriedProduce(base2 = defaultBase, ...args) {\n return self.produce(base2, (draft) => recipe.call(this, draft, ...args));\n };\n }\n if (typeof recipe !== \"function\")\n die(6);\n if (patchListener !== void 0 && typeof patchListener !== \"function\")\n die(7);\n let result;\n if (isDraftable(base)) {\n const scope = enterScope(this);\n const proxy = createProxy(base, void 0);\n let hasError = true;\n try {\n result = recipe(proxy);\n hasError = false;\n } finally {\n if (hasError)\n revokeScope(scope);\n else\n leaveScope(scope);\n }\n usePatchesInScope(scope, patchListener);\n return processResult(result, scope);\n } else if (!base || typeof base !== \"object\") {\n result = recipe(base);\n if (result === void 0)\n result = base;\n if (result === NOTHING)\n result = void 0;\n if (this.autoFreeze_)\n freeze(result, true);\n if (patchListener) {\n const p = [];\n const ip = [];\n getPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip);\n patchListener(p, ip);\n }\n return result;\n } else\n die(1, base);\n };\n this.produceWithPatches = (base, recipe) => {\n if (typeof base === \"function\") {\n return (state, ...args) => this.produceWithPatches(state, (draft) => base(draft, ...args));\n }\n let patches, inversePatches;\n const result = this.produce(base, recipe, (p, ip) => {\n patches = p;\n inversePatches = ip;\n });\n return [result, patches, inversePatches];\n };\n if (typeof config?.autoFreeze === \"boolean\")\n this.setAutoFreeze(config.autoFreeze);\n if (typeof config?.useStrictShallowCopy === \"boolean\")\n this.setUseStrictShallowCopy(config.useStrictShallowCopy);\n if (typeof config?.useStrictIteration === \"boolean\")\n this.setUseStrictIteration(config.useStrictIteration);\n }\n createDraft(base) {\n if (!isDraftable(base))\n die(8);\n if (isDraft(base))\n base = current(base);\n const scope = enterScope(this);\n const proxy = createProxy(base, void 0);\n proxy[DRAFT_STATE].isManual_ = true;\n leaveScope(scope);\n return proxy;\n }\n finishDraft(draft, patchListener) {\n const state = draft && draft[DRAFT_STATE];\n if (!state || !state.isManual_)\n die(9);\n const { scope_: scope } = state;\n usePatchesInScope(scope, patchListener);\n return processResult(void 0, scope);\n }\n /**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * By default, auto-freezing is enabled.\n */\n setAutoFreeze(value) {\n this.autoFreeze_ = value;\n }\n /**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\n setUseStrictShallowCopy(value) {\n this.useStrictShallowCopy_ = value;\n }\n /**\n * Pass false to use faster iteration that skips non-enumerable properties\n * but still handles symbols for compatibility.\n *\n * By default, strict iteration is enabled (includes all own properties).\n */\n setUseStrictIteration(value) {\n this.useStrictIteration_ = value;\n }\n shouldUseStrictIteration() {\n return this.useStrictIteration_;\n }\n applyPatches(base, patches) {\n let i;\n for (i = patches.length - 1; i >= 0; i--) {\n const patch = patches[i];\n if (patch.path.length === 0 && patch.op === \"replace\") {\n base = patch.value;\n break;\n }\n }\n if (i > -1) {\n patches = patches.slice(i + 1);\n }\n const applyPatchesImpl = getPlugin(\"Patches\").applyPatches_;\n if (isDraft(base)) {\n return applyPatchesImpl(base, patches);\n }\n return this.produce(\n base,\n (draft) => applyPatchesImpl(draft, patches)\n );\n }\n};\nfunction createProxy(value, parent) {\n const draft = isMap(value) ? getPlugin(\"MapSet\").proxyMap_(value, parent) : isSet(value) ? getPlugin(\"MapSet\").proxySet_(value, parent) : createProxyProxy(value, parent);\n const scope = parent ? parent.scope_ : getCurrentScope();\n scope.drafts_.push(draft);\n return draft;\n}\n\n// src/core/current.ts\nfunction current(value) {\n if (!isDraft(value))\n die(10, value);\n return currentImpl(value);\n}\nfunction currentImpl(value) {\n if (!isDraftable(value) || isFrozen(value))\n return value;\n const state = value[DRAFT_STATE];\n let copy;\n let strict = true;\n if (state) {\n if (!state.modified_)\n return state.base_;\n state.finalized_ = true;\n copy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_);\n strict = state.scope_.immer_.shouldUseStrictIteration();\n } else {\n copy = shallowCopy(value, true);\n }\n each(\n copy,\n (key, childValue) => {\n set(copy, key, currentImpl(childValue));\n },\n strict\n );\n if (state) {\n state.finalized_ = false;\n }\n return copy;\n}\n\n// src/plugins/patches.ts\nfunction enablePatches() {\n const errorOffset = 16;\n if (process.env.NODE_ENV !== \"production\") {\n errors.push(\n 'Sets cannot have \"replace\" patches.',\n function(op) {\n return \"Unsupported patch operation: \" + op;\n },\n function(path) {\n return \"Cannot apply patch, path doesn't resolve: \" + path;\n },\n \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n );\n }\n const REPLACE = \"replace\";\n const ADD = \"add\";\n const REMOVE = \"remove\";\n function generatePatches_(state, basePath, patches, inversePatches) {\n switch (state.type_) {\n case 0 /* Object */:\n case 2 /* Map */:\n return generatePatchesFromAssigned(\n state,\n basePath,\n patches,\n inversePatches\n );\n case 1 /* Array */:\n return generateArrayPatches(state, basePath, patches, inversePatches);\n case 3 /* Set */:\n return generateSetPatches(\n state,\n basePath,\n patches,\n inversePatches\n );\n }\n }\n function generateArrayPatches(state, basePath, patches, inversePatches) {\n let { base_, assigned_ } = state;\n let copy_ = state.copy_;\n if (copy_.length < base_.length) {\n ;\n [base_, copy_] = [copy_, base_];\n [patches, inversePatches] = [inversePatches, patches];\n }\n for (let i = 0; i < base_.length; i++) {\n if (assigned_[i] && copy_[i] !== base_[i]) {\n const path = basePath.concat([i]);\n patches.push({\n op: REPLACE,\n path,\n // Need to maybe clone it, as it can in fact be the original value\n // due to the base/copy inversion at the start of this function\n value: clonePatchValueIfNeeded(copy_[i])\n });\n inversePatches.push({\n op: REPLACE,\n path,\n value: clonePatchValueIfNeeded(base_[i])\n });\n }\n }\n for (let i = base_.length; i < copy_.length; i++) {\n const path = basePath.concat([i]);\n patches.push({\n op: ADD,\n path,\n // Need to maybe clone it, as it can in fact be the original value\n // due to the base/copy inversion at the start of this function\n value: clonePatchValueIfNeeded(copy_[i])\n });\n }\n for (let i = copy_.length - 1; base_.length <= i; --i) {\n const path = basePath.concat([i]);\n inversePatches.push({\n op: REMOVE,\n path\n });\n }\n }\n function generatePatchesFromAssigned(state, basePath, patches, inversePatches) {\n const { base_, copy_ } = state;\n each(state.assigned_, (key, assignedValue) => {\n const origValue = get(base_, key);\n const value = get(copy_, key);\n const op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD;\n if (origValue === value && op === REPLACE)\n return;\n const path = basePath.concat(key);\n patches.push(op === REMOVE ? { op, path } : { op, path, value });\n inversePatches.push(\n op === ADD ? { op: REMOVE, path } : op === REMOVE ? { op: ADD, path, value: clonePatchValueIfNeeded(origValue) } : { op: REPLACE, path, value: clonePatchValueIfNeeded(origValue) }\n );\n });\n }\n function generateSetPatches(state, basePath, patches, inversePatches) {\n let { base_, copy_ } = state;\n let i = 0;\n base_.forEach((value) => {\n if (!copy_.has(value)) {\n const path = basePath.concat([i]);\n patches.push({\n op: REMOVE,\n path,\n value\n });\n inversePatches.unshift({\n op: ADD,\n path,\n value\n });\n }\n i++;\n });\n i = 0;\n copy_.forEach((value) => {\n if (!base_.has(value)) {\n const path = basePath.concat([i]);\n patches.push({\n op: ADD,\n path,\n value\n });\n inversePatches.unshift({\n op: REMOVE,\n path,\n value\n });\n }\n i++;\n });\n }\n function generateReplacementPatches_(baseValue, replacement, patches, inversePatches) {\n patches.push({\n op: REPLACE,\n path: [],\n value: replacement === NOTHING ? void 0 : replacement\n });\n inversePatches.push({\n op: REPLACE,\n path: [],\n value: baseValue\n });\n }\n function applyPatches_(draft, patches) {\n patches.forEach((patch) => {\n const { path, op } = patch;\n let base = draft;\n for (let i = 0; i < path.length - 1; i++) {\n const parentType = getArchtype(base);\n let p = path[i];\n if (typeof p !== \"string\" && typeof p !== \"number\") {\n p = \"\" + p;\n }\n if ((parentType === 0 /* Object */ || parentType === 1 /* Array */) && (p === \"__proto__\" || p === \"constructor\"))\n die(errorOffset + 3);\n if (typeof base === \"function\" && p === \"prototype\")\n die(errorOffset + 3);\n base = get(base, p);\n if (typeof base !== \"object\")\n die(errorOffset + 2, path.join(\"/\"));\n }\n const type = getArchtype(base);\n const value = deepClonePatchValue(patch.value);\n const key = path[path.length - 1];\n switch (op) {\n case REPLACE:\n switch (type) {\n case 2 /* Map */:\n return base.set(key, value);\n case 3 /* Set */:\n die(errorOffset);\n default:\n return base[key] = value;\n }\n case ADD:\n switch (type) {\n case 1 /* Array */:\n return key === \"-\" ? base.push(value) : base.splice(key, 0, value);\n case 2 /* Map */:\n return base.set(key, value);\n case 3 /* Set */:\n return base.add(value);\n default:\n return base[key] = value;\n }\n case REMOVE:\n switch (type) {\n case 1 /* Array */:\n return base.splice(key, 1);\n case 2 /* Map */:\n return base.delete(key);\n case 3 /* Set */:\n return base.delete(patch.value);\n default:\n return delete base[key];\n }\n default:\n die(errorOffset + 1, op);\n }\n });\n return draft;\n }\n function deepClonePatchValue(obj) {\n if (!isDraftable(obj))\n return obj;\n if (Array.isArray(obj))\n return obj.map(deepClonePatchValue);\n if (isMap(obj))\n return new Map(\n Array.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n );\n if (isSet(obj))\n return new Set(Array.from(obj).map(deepClonePatchValue));\n const cloned = Object.create(getPrototypeOf(obj));\n for (const key in obj)\n cloned[key] = deepClonePatchValue(obj[key]);\n if (has(obj, DRAFTABLE))\n cloned[DRAFTABLE] = obj[DRAFTABLE];\n return cloned;\n }\n function clonePatchValueIfNeeded(obj) {\n if (isDraft(obj)) {\n return deepClonePatchValue(obj);\n } else\n return obj;\n }\n loadPlugin(\"Patches\", {\n applyPatches_,\n generatePatches_,\n generateReplacementPatches_\n });\n}\n\n// src/plugins/mapset.ts\nfunction enableMapSet() {\n class DraftMap extends Map {\n constructor(target, parent) {\n super();\n this[DRAFT_STATE] = {\n type_: 2 /* Map */,\n parent_: parent,\n scope_: parent ? parent.scope_ : getCurrentScope(),\n modified_: false,\n finalized_: false,\n copy_: void 0,\n assigned_: void 0,\n base_: target,\n draft_: this,\n isManual_: false,\n revoked_: false\n };\n }\n get size() {\n return latest(this[DRAFT_STATE]).size;\n }\n has(key) {\n return latest(this[DRAFT_STATE]).has(key);\n }\n set(key, value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!latest(state).has(key) || latest(state).get(key) !== value) {\n prepareMapCopy(state);\n markChanged(state);\n state.assigned_.set(key, true);\n state.copy_.set(key, value);\n state.assigned_.set(key, true);\n }\n return this;\n }\n delete(key) {\n if (!this.has(key)) {\n return false;\n }\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareMapCopy(state);\n markChanged(state);\n if (state.base_.has(key)) {\n state.assigned_.set(key, false);\n } else {\n state.assigned_.delete(key);\n }\n state.copy_.delete(key);\n return true;\n }\n clear() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (latest(state).size) {\n prepareMapCopy(state);\n markChanged(state);\n state.assigned_ = /* @__PURE__ */ new Map();\n each(state.base_, (key) => {\n state.assigned_.set(key, false);\n });\n state.copy_.clear();\n }\n }\n forEach(cb, thisArg) {\n const state = this[DRAFT_STATE];\n latest(state).forEach((_value, key, _map) => {\n cb.call(thisArg, this.get(key), key, this);\n });\n }\n get(key) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n const value = latest(state).get(key);\n if (state.finalized_ || !isDraftable(value)) {\n return value;\n }\n if (value !== state.base_.get(key)) {\n return value;\n }\n const draft = createProxy(value, state);\n prepareMapCopy(state);\n state.copy_.set(key, draft);\n return draft;\n }\n keys() {\n return latest(this[DRAFT_STATE]).keys();\n }\n values() {\n const iterator = this.keys();\n return {\n [Symbol.iterator]: () => this.values(),\n next: () => {\n const r = iterator.next();\n if (r.done)\n return r;\n const value = this.get(r.value);\n return {\n done: false,\n value\n };\n }\n };\n }\n entries() {\n const iterator = this.keys();\n return {\n [Symbol.iterator]: () => this.entries(),\n next: () => {\n const r = iterator.next();\n if (r.done)\n return r;\n const value = this.get(r.value);\n return {\n done: false,\n value: [r.value, value]\n };\n }\n };\n }\n [(DRAFT_STATE, Symbol.iterator)]() {\n return this.entries();\n }\n }\n function proxyMap_(target, parent) {\n return new DraftMap(target, parent);\n }\n function prepareMapCopy(state) {\n if (!state.copy_) {\n state.assigned_ = /* @__PURE__ */ new Map();\n state.copy_ = new Map(state.base_);\n }\n }\n class DraftSet extends Set {\n constructor(target, parent) {\n super();\n this[DRAFT_STATE] = {\n type_: 3 /* Set */,\n parent_: parent,\n scope_: parent ? parent.scope_ : getCurrentScope(),\n modified_: false,\n finalized_: false,\n copy_: void 0,\n base_: target,\n draft_: this,\n drafts_: /* @__PURE__ */ new Map(),\n revoked_: false,\n isManual_: false\n };\n }\n get size() {\n return latest(this[DRAFT_STATE]).size;\n }\n has(value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!state.copy_) {\n return state.base_.has(value);\n }\n if (state.copy_.has(value))\n return true;\n if (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n return true;\n return false;\n }\n add(value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!this.has(value)) {\n prepareSetCopy(state);\n markChanged(state);\n state.copy_.add(value);\n }\n return this;\n }\n delete(value) {\n if (!this.has(value)) {\n return false;\n }\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n markChanged(state);\n return state.copy_.delete(value) || (state.drafts_.has(value) ? state.copy_.delete(state.drafts_.get(value)) : (\n /* istanbul ignore next */\n false\n ));\n }\n clear() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (latest(state).size) {\n prepareSetCopy(state);\n markChanged(state);\n state.copy_.clear();\n }\n }\n values() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n return state.copy_.values();\n }\n entries() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n return state.copy_.entries();\n }\n keys() {\n return this.values();\n }\n [(DRAFT_STATE, Symbol.iterator)]() {\n return this.values();\n }\n forEach(cb, thisArg) {\n const iterator = this.values();\n let result = iterator.next();\n while (!result.done) {\n cb.call(thisArg, result.value, result.value, this);\n result = iterator.next();\n }\n }\n }\n function proxySet_(target, parent) {\n return new DraftSet(target, parent);\n }\n function prepareSetCopy(state) {\n if (!state.copy_) {\n state.copy_ = /* @__PURE__ */ new Set();\n state.base_.forEach((value) => {\n if (isDraftable(value)) {\n const draft = createProxy(value, state);\n state.drafts_.set(value, draft);\n state.copy_.add(draft);\n } else {\n state.copy_.add(value);\n }\n });\n }\n }\n function assertUnrevoked(state) {\n if (state.revoked_)\n die(3, JSON.stringify(latest(state)));\n }\n loadPlugin(\"MapSet\", { proxyMap_, proxySet_ });\n}\n\n// src/immer.ts\nvar immer = new Immer2();\nvar produce = immer.produce;\nvar produceWithPatches = /* @__PURE__ */ immer.produceWithPatches.bind(\n immer\n);\nvar setAutoFreeze = /* @__PURE__ */ immer.setAutoFreeze.bind(immer);\nvar setUseStrictShallowCopy = /* @__PURE__ */ immer.setUseStrictShallowCopy.bind(\n immer\n);\nvar setUseStrictIteration = /* @__PURE__ */ immer.setUseStrictIteration.bind(\n immer\n);\nvar applyPatches = /* @__PURE__ */ immer.applyPatches.bind(immer);\nvar createDraft = /* @__PURE__ */ immer.createDraft.bind(immer);\nvar finishDraft = /* @__PURE__ */ immer.finishDraft.bind(immer);\nfunction castDraft(value) {\n return value;\n}\nfunction castImmutable(value) {\n return value;\n}\nexport {\n Immer2 as Immer,\n applyPatches,\n castDraft,\n castImmutable,\n createDraft,\n current,\n enableMapSet,\n enablePatches,\n finishDraft,\n freeze,\n DRAFTABLE as immerable,\n isDraft,\n isDraftable,\n NOTHING as nothing,\n original,\n produce,\n produceWithPatches,\n setAutoFreeze,\n setUseStrictIteration,\n setUseStrictShallowCopy\n};\n//# sourceMappingURL=immer.mjs.map","import { produce } from 'immer';\n\n// eslint-disable-next-line no-redeclare\nvar PathRef = {\n transform(ref, op) {\n var {\n current,\n affinity\n } = ref;\n if (current == null) {\n return;\n }\n var path = Path.transform(current, op, {\n affinity\n });\n ref.current = path;\n if (path == null) {\n ref.unref();\n }\n }\n};\n\n// eslint-disable-next-line no-redeclare\nvar PointRef = {\n transform(ref, op) {\n var {\n current,\n affinity\n } = ref;\n if (current == null) {\n return;\n }\n var point = Point.transform(current, op, {\n affinity\n });\n ref.current = point;\n if (point == null) {\n ref.unref();\n }\n }\n};\n\n// eslint-disable-next-line no-redeclare\nvar RangeRef = {\n transform(ref, op) {\n var {\n current,\n affinity\n } = ref;\n if (current == null) {\n return;\n }\n var path = Range.transform(current, op, {\n affinity\n });\n ref.current = path;\n if (path == null) {\n ref.unref();\n }\n }\n};\n\nvar DIRTY_PATHS = new WeakMap();\nvar DIRTY_PATH_KEYS = new WeakMap();\nvar FLUSHING = new WeakMap();\nvar NORMALIZING = new WeakMap();\nvar PATH_REFS = new WeakMap();\nvar POINT_REFS = new WeakMap();\nvar RANGE_REFS = new WeakMap();\n\n// eslint-disable-next-line no-redeclare\nvar Path = {\n ancestors(path) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n reverse = false\n } = options;\n var paths = Path.levels(path, options);\n if (reverse) {\n paths = paths.slice(1);\n } else {\n paths = paths.slice(0, -1);\n }\n return paths;\n },\n common(path, another) {\n var common = [];\n for (var i = 0; i < path.length && i < another.length; i++) {\n var av = path[i];\n var bv = another[i];\n if (av !== bv) {\n break;\n }\n common.push(av);\n }\n return common;\n },\n compare(path, another) {\n var min = Math.min(path.length, another.length);\n for (var i = 0; i < min; i++) {\n if (path[i] < another[i]) return -1;\n if (path[i] > another[i]) return 1;\n }\n return 0;\n },\n endsAfter(path, another) {\n var i = path.length - 1;\n var as = path.slice(0, i);\n var bs = another.slice(0, i);\n var av = path[i];\n var bv = another[i];\n return Path.equals(as, bs) && av > bv;\n },\n endsAt(path, another) {\n var i = path.length;\n var as = path.slice(0, i);\n var bs = another.slice(0, i);\n return Path.equals(as, bs);\n },\n endsBefore(path, another) {\n var i = path.length - 1;\n var as = path.slice(0, i);\n var bs = another.slice(0, i);\n var av = path[i];\n var bv = another[i];\n return Path.equals(as, bs) && av < bv;\n },\n equals(path, another) {\n return path.length === another.length && path.every((n, i) => n === another[i]);\n },\n hasPrevious(path) {\n return path[path.length - 1] > 0;\n },\n isAfter(path, another) {\n return Path.compare(path, another) === 1;\n },\n isAncestor(path, another) {\n return path.length < another.length && Path.compare(path, another) === 0;\n },\n isBefore(path, another) {\n return Path.compare(path, another) === -1;\n },\n isChild(path, another) {\n return path.length === another.length + 1 && Path.compare(path, another) === 0;\n },\n isCommon(path, another) {\n return path.length <= another.length && Path.compare(path, another) === 0;\n },\n isDescendant(path, another) {\n return path.length > another.length && Path.compare(path, another) === 0;\n },\n isParent(path, another) {\n return path.length + 1 === another.length && Path.compare(path, another) === 0;\n },\n isPath(value) {\n return Array.isArray(value) && (value.length === 0 || typeof value[0] === 'number');\n },\n isSibling(path, another) {\n if (path.length !== another.length) {\n return false;\n }\n var as = path.slice(0, -1);\n var bs = another.slice(0, -1);\n var al = path[path.length - 1];\n var bl = another[another.length - 1];\n return al !== bl && Path.equals(as, bs);\n },\n levels(path) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n reverse = false\n } = options;\n var list = [];\n for (var i = 0; i <= path.length; i++) {\n list.push(path.slice(0, i));\n }\n if (reverse) {\n list.reverse();\n }\n return list;\n },\n next(path) {\n if (path.length === 0) {\n throw new Error(\"Cannot get the next path of a root path [\".concat(path, \"], because it has no next index.\"));\n }\n var last = path[path.length - 1];\n return path.slice(0, -1).concat(last + 1);\n },\n operationCanTransformPath(operation) {\n switch (operation.type) {\n case 'insert_node':\n case 'remove_node':\n case 'merge_node':\n case 'split_node':\n case 'move_node':\n return true;\n default:\n return false;\n }\n },\n parent(path) {\n if (path.length === 0) {\n throw new Error(\"Cannot get the parent path of the root path [\".concat(path, \"].\"));\n }\n return path.slice(0, -1);\n },\n previous(path) {\n if (path.length === 0) {\n throw new Error(\"Cannot get the previous path of a root path [\".concat(path, \"], because it has no previous index.\"));\n }\n var last = path[path.length - 1];\n if (last <= 0) {\n throw new Error(\"Cannot get the previous path of a first child path [\".concat(path, \"] because it would result in a negative index.\"));\n }\n return path.slice(0, -1).concat(last - 1);\n },\n relative(path, ancestor) {\n if (!Path.isAncestor(ancestor, path) && !Path.equals(path, ancestor)) {\n throw new Error(\"Cannot get the relative path of [\".concat(path, \"] inside ancestor [\").concat(ancestor, \"], because it is not above or equal to the path.\"));\n }\n return path.slice(ancestor.length);\n },\n transform(path, operation) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (!path) return null;\n // PERF: use destructing instead of immer\n var p = [...path];\n var {\n affinity = 'forward'\n } = options;\n // PERF: Exit early if the operation is guaranteed not to have an effect.\n if (path.length === 0) {\n return p;\n }\n switch (operation.type) {\n case 'insert_node':\n {\n var {\n path: op\n } = operation;\n if (Path.equals(op, p) || Path.endsBefore(op, p) || Path.isAncestor(op, p)) {\n p[op.length - 1] += 1;\n }\n break;\n }\n case 'remove_node':\n {\n var {\n path: _op\n } = operation;\n if (Path.equals(_op, p) || Path.isAncestor(_op, p)) {\n return null;\n } else if (Path.endsBefore(_op, p)) {\n p[_op.length - 1] -= 1;\n }\n break;\n }\n case 'merge_node':\n {\n var {\n path: _op2,\n position\n } = operation;\n if (Path.equals(_op2, p) || Path.endsBefore(_op2, p)) {\n p[_op2.length - 1] -= 1;\n } else if (Path.isAncestor(_op2, p)) {\n p[_op2.length - 1] -= 1;\n p[_op2.length] += position;\n }\n break;\n }\n case 'split_node':\n {\n var {\n path: _op3,\n position: _position\n } = operation;\n if (Path.equals(_op3, p)) {\n if (affinity === 'forward') {\n p[p.length - 1] += 1;\n } else if (affinity === 'backward') ; else {\n return null;\n }\n } else if (Path.endsBefore(_op3, p)) {\n p[_op3.length - 1] += 1;\n } else if (Path.isAncestor(_op3, p) && path[_op3.length] >= _position) {\n p[_op3.length - 1] += 1;\n p[_op3.length] -= _position;\n }\n break;\n }\n case 'move_node':\n {\n var {\n path: _op4,\n newPath: onp\n } = operation;\n // If the old and new path are the same, it's a no-op.\n if (Path.equals(_op4, onp)) {\n return p;\n }\n if (Path.isAncestor(_op4, p) || Path.equals(_op4, p)) {\n var copy = onp.slice();\n if (Path.endsBefore(_op4, onp) && _op4.length < onp.length) {\n copy[_op4.length - 1] -= 1;\n }\n return copy.concat(p.slice(_op4.length));\n } else if (Path.isSibling(_op4, onp) && (Path.isAncestor(onp, p) || Path.equals(onp, p))) {\n if (Path.endsBefore(_op4, p)) {\n p[_op4.length - 1] -= 1;\n } else {\n p[_op4.length - 1] += 1;\n }\n } else if (Path.endsBefore(onp, p) || Path.equals(onp, p) || Path.isAncestor(onp, p)) {\n if (Path.endsBefore(_op4, p)) {\n p[_op4.length - 1] -= 1;\n }\n p[onp.length - 1] += 1;\n } else if (Path.endsBefore(_op4, p)) {\n if (Path.equals(onp, p)) {\n p[onp.length - 1] += 1;\n }\n p[_op4.length - 1] -= 1;\n }\n break;\n }\n }\n return p;\n }\n};\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\nfunction ownKeys$e(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(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$e(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$e(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar insertChildren = function insertChildren(xs, index) {\n for (var _len = arguments.length, newValues = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newValues[_key - 2] = arguments[_key];\n }\n return [...xs.slice(0, index), ...newValues, ...xs.slice(index)];\n};\nvar replaceChildren = function replaceChildren(xs, index, removeCount) {\n for (var _len2 = arguments.length, newValues = new Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) {\n newValues[_key2 - 3] = arguments[_key2];\n }\n return [...xs.slice(0, index), ...newValues, ...xs.slice(index + removeCount)];\n};\nvar removeChildren = replaceChildren;\n/**\n * Replace a descendant with a new node, replacing all ancestors\n */\nvar modifyDescendant = (editor, path, f) => {\n if (path.length === 0) {\n throw new Error('Cannot modify the editor');\n }\n var node = Node.get(editor, path);\n var slicedPath = path.slice();\n var modifiedNode = f(node);\n while (slicedPath.length > 1) {\n var _index = slicedPath.pop();\n var ancestorNode = Node.get(editor, slicedPath);\n modifiedNode = _objectSpread$e(_objectSpread$e({}, ancestorNode), {}, {\n children: replaceChildren(ancestorNode.children, _index, 1, modifiedNode)\n });\n }\n var index = slicedPath.pop();\n editor.children = replaceChildren(editor.children, index, 1, modifiedNode);\n};\n/**\n * Replace the children of a node, replacing all ancestors\n */\nvar modifyChildren = (editor, path, f) => {\n if (path.length === 0) {\n editor.children = f(editor.children);\n } else {\n modifyDescendant(editor, path, node => {\n if (Text.isText(node)) {\n throw new Error(\"Cannot get the element at path [\".concat(path, \"] because it refers to a leaf node: \").concat(Scrubber.stringify(node)));\n }\n return _objectSpread$e(_objectSpread$e({}, node), {}, {\n children: f(node.children)\n });\n });\n }\n};\n/**\n * Replace a leaf, replacing all ancestors\n */\nvar modifyLeaf = (editor, path, f) => modifyDescendant(editor, path, node => {\n if (!Text.isText(node)) {\n throw new Error(\"Cannot get the leaf node at path [\".concat(path, \"] because it refers to a non-leaf node: \").concat(Scrubber.stringify(node)));\n }\n return f(node);\n});\n// eslint-disable-next-line no-redeclare\nvar GeneralTransforms = {\n transform(editor, op) {\n var transformSelection = false;\n switch (op.type) {\n case 'insert_node':\n {\n var {\n path,\n node\n } = op;\n modifyChildren(editor, Path.parent(path), children => {\n var index = path[path.length - 1];\n if (index > children.length) {\n throw new Error(\"Cannot apply an \\\"insert_node\\\" operation at path [\".concat(path, \"] because the destination is past the end of the node.\"));\n }\n return insertChildren(children, index, node);\n });\n transformSelection = true;\n break;\n }\n case 'insert_text':\n {\n var {\n path: _path,\n offset,\n text\n } = op;\n if (text.length === 0) break;\n modifyLeaf(editor, _path, node => {\n var before = node.text.slice(0, offset);\n var after = node.text.slice(offset);\n return _objectSpread$e(_objectSpread$e({}, node), {}, {\n text: before + text + after\n });\n });\n transformSelection = true;\n break;\n }\n case 'merge_node':\n {\n var {\n path: _path2\n } = op;\n var index = _path2[_path2.length - 1];\n var prevPath = Path.previous(_path2);\n var prevIndex = prevPath[prevPath.length - 1];\n modifyChildren(editor, Path.parent(_path2), children => {\n var node = children[index];\n var prev = children[prevIndex];\n var newNode;\n if (Text.isText(node) && Text.isText(prev)) {\n newNode = _objectSpread$e(_objectSpread$e({}, prev), {}, {\n text: prev.text + node.text\n });\n } else if (!Text.isText(node) && !Text.isText(prev)) {\n newNode = _objectSpread$e(_objectSpread$e({}, prev), {}, {\n children: prev.children.concat(node.children)\n });\n } else {\n throw new Error(\"Cannot apply a \\\"merge_node\\\" operation at path [\".concat(_path2, \"] to nodes of different interfaces: \").concat(Scrubber.stringify(node), \" \").concat(Scrubber.stringify(prev)));\n }\n return replaceChildren(children, prevIndex, 2, newNode);\n });\n transformSelection = true;\n break;\n }\n case 'move_node':\n {\n var {\n path: _path3,\n newPath\n } = op;\n var _index2 = _path3[_path3.length - 1];\n if (Path.isAncestor(_path3, newPath)) {\n throw new Error(\"Cannot move a path [\".concat(_path3, \"] to new path [\").concat(newPath, \"] because the destination is inside itself.\"));\n }\n var _node = Node.get(editor, _path3);\n modifyChildren(editor, Path.parent(_path3), children => removeChildren(children, _index2, 1));\n // This is tricky, but since the `path` and `newPath` both refer to\n // the same snapshot in time, there's a mismatch. After either\n // removing the original position, the second step's path can be out\n // of date. So instead of using the `op.newPath` directly, we\n // transform `op.path` to ascertain what the `newPath` would be after\n // the operation was applied.\n var truePath = Path.transform(_path3, op);\n var newIndex = truePath[truePath.length - 1];\n modifyChildren(editor, Path.parent(truePath), children => insertChildren(children, newIndex, _node));\n transformSelection = true;\n break;\n }\n case 'remove_node':\n {\n var {\n path: _path4\n } = op;\n var _index3 = _path4[_path4.length - 1];\n modifyChildren(editor, Path.parent(_path4), children => removeChildren(children, _index3, 1));\n // Transform all the points in the value, but if the point was in the\n // node that was removed we need to update the range or remove it.\n if (editor.selection) {\n var selection = _objectSpread$e({}, editor.selection);\n for (var [point, key] of Range.points(selection)) {\n var result = Point.transform(point, op);\n if (selection != null && result != null) {\n selection[key] = result;\n } else {\n var prev = void 0;\n var next = void 0;\n for (var [n, p] of Node.texts(editor)) {\n if (Path.compare(p, _path4) === -1) {\n prev = [n, p];\n } else {\n next = [n, p];\n break;\n }\n }\n var preferNext = false;\n if (prev && next) {\n if (Path.isSibling(prev[1], _path4)) {\n preferNext = false;\n } else if (Path.equals(next[1], _path4)) {\n preferNext = true;\n } else {\n preferNext = Path.common(prev[1], _path4).length < Path.common(next[1], _path4).length;\n }\n }\n if (prev && !preferNext) {\n selection[key] = {\n path: prev[1],\n offset: prev[0].text.length\n };\n } else if (next) {\n selection[key] = {\n path: next[1],\n offset: 0\n };\n } else {\n selection = null;\n }\n }\n }\n if (!selection || !Range.equals(selection, editor.selection)) {\n editor.selection = selection;\n }\n }\n break;\n }\n case 'remove_text':\n {\n var {\n path: _path5,\n offset: _offset,\n text: _text\n } = op;\n if (_text.length === 0) break;\n modifyLeaf(editor, _path5, node => {\n var before = node.text.slice(0, _offset);\n var after = node.text.slice(_offset + _text.length);\n return _objectSpread$e(_objectSpread$e({}, node), {}, {\n text: before + after\n });\n });\n transformSelection = true;\n break;\n }\n case 'set_node':\n {\n var {\n path: _path6,\n properties,\n newProperties\n } = op;\n if (_path6.length === 0) {\n throw new Error(\"Cannot set properties on the root node!\");\n }\n modifyDescendant(editor, _path6, node => {\n var newNode = _objectSpread$e({}, node);\n for (var _key3 in newProperties) {\n if (_key3 === 'children' || _key3 === 'text') {\n throw new Error(\"Cannot set the \\\"\".concat(_key3, \"\\\" property of nodes!\"));\n }\n var value = newProperties[_key3];\n if (value == null) {\n delete newNode[_key3];\n } else {\n newNode[_key3] = value;\n }\n }\n // properties that were previously defined, but are now missing, must be deleted\n for (var _key4 in properties) {\n if (!newProperties.hasOwnProperty(_key4)) {\n delete newNode[_key4];\n }\n }\n return newNode;\n });\n break;\n }\n case 'set_selection':\n {\n var {\n newProperties: _newProperties\n } = op;\n if (_newProperties == null) {\n editor.selection = null;\n break;\n }\n if (editor.selection == null) {\n if (!Range.isRange(_newProperties)) {\n throw new Error(\"Cannot apply an incomplete \\\"set_selection\\\" operation properties \".concat(Scrubber.stringify(_newProperties), \" when there is no current selection.\"));\n }\n editor.selection = _objectSpread$e({}, _newProperties);\n break;\n }\n var _selection = _objectSpread$e({}, editor.selection);\n for (var _key5 in _newProperties) {\n var value = _newProperties[_key5];\n if (value == null) {\n if (_key5 === 'anchor' || _key5 === 'focus') {\n throw new Error(\"Cannot remove the \\\"\".concat(_key5, \"\\\" selection property\"));\n }\n delete _selection[_key5];\n } else {\n _selection[_key5] = value;\n }\n }\n editor.selection = _selection;\n break;\n }\n case 'split_node':\n {\n var {\n path: _path7,\n position,\n properties: _properties\n } = op;\n var _index4 = _path7[_path7.length - 1];\n if (_path7.length === 0) {\n throw new Error(\"Cannot apply a \\\"split_node\\\" operation at path [\".concat(_path7, \"] because the root node cannot be split.\"));\n }\n modifyChildren(editor, Path.parent(_path7), children => {\n var node = children[_index4];\n var newNode;\n var nextNode;\n if (Text.isText(node)) {\n var before = node.text.slice(0, position);\n var after = node.text.slice(position);\n newNode = _objectSpread$e(_objectSpread$e({}, node), {}, {\n text: before\n });\n nextNode = _objectSpread$e(_objectSpread$e({}, _properties), {}, {\n text: after\n });\n } else {\n var _before = node.children.slice(0, position);\n var _after = node.children.slice(position);\n newNode = _objectSpread$e(_objectSpread$e({}, node), {}, {\n children: _before\n });\n nextNode = _objectSpread$e(_objectSpread$e({}, _properties), {}, {\n children: _after\n });\n }\n return replaceChildren(children, _index4, 1, newNode, nextNode);\n });\n transformSelection = true;\n break;\n }\n }\n if (transformSelection && editor.selection) {\n var _selection2 = _objectSpread$e({}, editor.selection);\n for (var [_point, _key6] of Range.points(_selection2)) {\n _selection2[_key6] = Point.transform(_point, op);\n }\n if (!Range.equals(_selection2, editor.selection)) {\n editor.selection = _selection2;\n }\n }\n }\n};\n\n// eslint-disable-next-line no-redeclare\nvar NodeTransforms = {\n insertNodes(editor, nodes, options) {\n editor.insertNodes(nodes, options);\n },\n liftNodes(editor, options) {\n editor.liftNodes(options);\n },\n mergeNodes(editor, options) {\n editor.mergeNodes(options);\n },\n moveNodes(editor, options) {\n editor.moveNodes(options);\n },\n removeNodes(editor, options) {\n editor.removeNodes(options);\n },\n setNodes(editor, props, options) {\n editor.setNodes(props, options);\n },\n splitNodes(editor, options) {\n editor.splitNodes(options);\n },\n unsetNodes(editor, props, options) {\n editor.unsetNodes(props, options);\n },\n unwrapNodes(editor, options) {\n editor.unwrapNodes(options);\n },\n wrapNodes(editor, element, options) {\n editor.wrapNodes(element, options);\n }\n};\n\n// eslint-disable-next-line no-redeclare\nvar SelectionTransforms = {\n collapse(editor, options) {\n editor.collapse(options);\n },\n deselect(editor) {\n editor.deselect();\n },\n move(editor, options) {\n editor.move(options);\n },\n select(editor, target) {\n editor.select(target);\n },\n setPoint(editor, props, options) {\n editor.setPoint(props, options);\n },\n setSelection(editor, props) {\n editor.setSelection(props);\n }\n};\n\nvar isObject = value => typeof value === 'object' && value !== null;\n\n/*\n Custom deep equal comparison for Slate nodes.\n\n We don't need general purpose deep equality;\n Slate only supports plain values, Arrays, and nested objects.\n Complex values nested inside Arrays are not supported.\n\n Slate objects are designed to be serialised, so\n missing keys are deliberately normalised to undefined.\n */\nvar isDeepEqual = (node, another) => {\n for (var key in node) {\n var a = node[key];\n var b = another[key];\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) return false;\n for (var i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n } else if (isObject(a) && isObject(b)) {\n if (!isDeepEqual(a, b)) return false;\n } else if (a !== b) {\n return false;\n }\n }\n /*\n Deep object equality is only necessary in one direction; in the reverse direction\n we are only looking for keys that are missing.\n As above, undefined keys are normalised to missing.\n */\n for (var _key in another) {\n if (node[_key] === undefined && another[_key] !== undefined) {\n return false;\n }\n }\n return true;\n};\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\n\nvar _excluded$4 = [\"anchor\", \"focus\"];\nfunction ownKeys$d(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$d(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$d(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$d(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\n// eslint-disable-next-line no-redeclare\nvar Range = {\n edges(range) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n reverse = false\n } = options;\n var {\n anchor,\n focus\n } = range;\n return Range.isBackward(range) === reverse ? [anchor, focus] : [focus, anchor];\n },\n end(range) {\n var [, end] = Range.edges(range);\n return end;\n },\n equals(range, another) {\n return Point.equals(range.anchor, another.anchor) && Point.equals(range.focus, another.focus);\n },\n surrounds(range, target) {\n var intersectionRange = Range.intersection(range, target);\n if (!intersectionRange) {\n return false;\n }\n return Range.equals(intersectionRange, target);\n },\n includes(range, target) {\n if (Range.isRange(target)) {\n if (Range.includes(range, target.anchor) || Range.includes(range, target.focus)) {\n return true;\n }\n var [rs, re] = Range.edges(range);\n var [ts, te] = Range.edges(target);\n return Point.isBefore(rs, ts) && Point.isAfter(re, te);\n }\n var [start, end] = Range.edges(range);\n var isAfterStart = false;\n var isBeforeEnd = false;\n if (Point.isPoint(target)) {\n isAfterStart = Point.compare(target, start) >= 0;\n isBeforeEnd = Point.compare(target, end) <= 0;\n } else {\n isAfterStart = Path.compare(target, start.path) >= 0;\n isBeforeEnd = Path.compare(target, end.path) <= 0;\n }\n return isAfterStart && isBeforeEnd;\n },\n intersection(range, another) {\n var rest = _objectWithoutProperties(range, _excluded$4);\n var [s1, e1] = Range.edges(range);\n var [s2, e2] = Range.edges(another);\n var start = Point.isBefore(s1, s2) ? s2 : s1;\n var end = Point.isBefore(e1, e2) ? e1 : e2;\n if (Point.isBefore(end, start)) {\n return null;\n } else {\n return _objectSpread$d({\n anchor: start,\n focus: end\n }, rest);\n }\n },\n isBackward(range) {\n var {\n anchor,\n focus\n } = range;\n return Point.isAfter(anchor, focus);\n },\n isCollapsed(range) {\n var {\n anchor,\n focus\n } = range;\n return Point.equals(anchor, focus);\n },\n isExpanded(range) {\n return !Range.isCollapsed(range);\n },\n isForward(range) {\n return !Range.isBackward(range);\n },\n isRange(value) {\n return isObject(value) && Point.isPoint(value.anchor) && Point.isPoint(value.focus);\n },\n *points(range) {\n yield [range.anchor, 'anchor'];\n yield [range.focus, 'focus'];\n },\n start(range) {\n var [start] = Range.edges(range);\n return start;\n },\n transform(range, op) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (range === null) {\n return null;\n }\n var {\n affinity = 'inward'\n } = options;\n var affinityAnchor;\n var affinityFocus;\n if (affinity === 'inward') {\n // If the range is collapsed, make sure to use the same affinity to\n // avoid the two points passing each other and expanding in the opposite\n // direction\n var isCollapsed = Range.isCollapsed(range);\n if (Range.isForward(range)) {\n affinityAnchor = 'forward';\n affinityFocus = isCollapsed ? affinityAnchor : 'backward';\n } else {\n affinityAnchor = 'backward';\n affinityFocus = isCollapsed ? affinityAnchor : 'forward';\n }\n } else if (affinity === 'outward') {\n if (Range.isForward(range)) {\n affinityAnchor = 'backward';\n affinityFocus = 'forward';\n } else {\n affinityAnchor = 'forward';\n affinityFocus = 'backward';\n }\n } else {\n affinityAnchor = affinity;\n affinityFocus = affinity;\n }\n var anchor = Point.transform(range.anchor, op, {\n affinity: affinityAnchor\n });\n var focus = Point.transform(range.focus, op, {\n affinity: affinityFocus\n });\n if (!anchor || !focus) {\n return null;\n }\n return {\n anchor,\n focus\n };\n }\n};\n\n/**\n * Shared the function with isElementType utility\n */\nvar isElement = function isElement(value) {\n var {\n deep = false\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!isObject(value)) return false;\n // PERF: No need to use the full Editor.isEditor here\n var isEditor = typeof value.apply === 'function';\n if (isEditor) return false;\n var isChildrenValid = deep ? Node.isNodeList(value.children) : Array.isArray(value.children);\n return isChildrenValid;\n};\n// eslint-disable-next-line no-redeclare\nvar Element = {\n isAncestor(value) {\n var {\n deep = false\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return isObject(value) && Node.isNodeList(value.children, {\n deep\n });\n },\n isElement,\n isElementList(value) {\n var {\n deep = false\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Array.isArray(value) && value.every(val => Element.isElement(val, {\n deep\n }));\n },\n isElementProps(props) {\n return props.children !== undefined;\n },\n isElementType: function isElementType(value, elementVal) {\n var elementKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'type';\n return isElement(value) && value[elementKey] === elementVal;\n },\n matches(element, props) {\n for (var key in props) {\n if (key === 'children') {\n continue;\n }\n if (element[key] !== props[key]) {\n return false;\n }\n }\n return true;\n }\n};\n\nvar _excluded$3 = [\"children\"],\n _excluded2$3 = [\"text\"];\n// eslint-disable-next-line no-redeclare\nvar Node = {\n ancestor(root, path) {\n var node = Node.get(root, path);\n if (Text.isText(node)) {\n throw new Error(\"Cannot get the ancestor node at path [\".concat(path, \"] because it refers to a text node instead: \").concat(Scrubber.stringify(node)));\n }\n return node;\n },\n ancestors(root, path) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return function* () {\n for (var p of Path.ancestors(path, options)) {\n var n = Node.ancestor(root, p);\n var entry = [n, p];\n yield entry;\n }\n }();\n },\n child(root, index) {\n if (Text.isText(root)) {\n throw new Error(\"Cannot get the child of a text node: \".concat(Scrubber.stringify(root)));\n }\n var c = root.children[index];\n if (c == null) {\n throw new Error(\"Cannot get child at index `\".concat(index, \"` in node: \").concat(Scrubber.stringify(root)));\n }\n return c;\n },\n children(root, path) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return function* () {\n var {\n reverse = false\n } = options;\n var ancestor = Node.ancestor(root, path);\n var {\n children\n } = ancestor;\n var index = reverse ? children.length - 1 : 0;\n while (reverse ? index >= 0 : index < children.length) {\n var child = Node.child(ancestor, index);\n var childPath = path.concat(index);\n yield [child, childPath];\n index = reverse ? index - 1 : index + 1;\n }\n }();\n },\n common(root, path, another) {\n var p = Path.common(path, another);\n var n = Node.get(root, p);\n return [n, p];\n },\n descendant(root, path) {\n var node = Node.get(root, path);\n if (Editor.isEditor(node)) {\n throw new Error(\"Cannot get the descendant node at path [\".concat(path, \"] because it refers to the root editor node instead: \").concat(Scrubber.stringify(node)));\n }\n return node;\n },\n descendants(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function* () {\n for (var [node, path] of Node.nodes(root, options)) {\n if (path.length !== 0) {\n // NOTE: we have to coerce here because checking the path's length does\n // guarantee that `node` is not a `Editor`, but TypeScript doesn't know.\n yield [node, path];\n }\n }\n }();\n },\n elements(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function* () {\n for (var [node, path] of Node.nodes(root, options)) {\n if (Element.isElement(node)) {\n yield [node, path];\n }\n }\n }();\n },\n extractProps(node) {\n if (Element.isAncestor(node)) {\n var properties = _objectWithoutProperties(node, _excluded$3);\n return properties;\n } else {\n var properties = _objectWithoutProperties(node, _excluded2$3);\n return properties;\n }\n },\n first(root, path) {\n var p = path.slice();\n var n = Node.get(root, p);\n while (n) {\n if (Text.isText(n) || n.children.length === 0) {\n break;\n } else {\n n = n.children[0];\n p.push(0);\n }\n }\n return [n, p];\n },\n fragment(root, range) {\n var newRoot = produce({\n children: root.children\n }, r => {\n var [start, end] = Range.edges(range);\n var nodeEntries = Node.nodes(r, {\n reverse: true,\n pass: _ref => {\n var [, path] = _ref;\n return !Range.includes(range, path);\n }\n });\n for (var [, path] of nodeEntries) {\n if (!Range.includes(range, path)) {\n var parent = Node.parent(r, path);\n var index = path[path.length - 1];\n parent.children.splice(index, 1);\n }\n if (Path.equals(path, end.path)) {\n var leaf = Node.leaf(r, path);\n leaf.text = leaf.text.slice(0, end.offset);\n }\n if (Path.equals(path, start.path)) {\n var _leaf = Node.leaf(r, path);\n _leaf.text = _leaf.text.slice(start.offset);\n }\n }\n if (Editor.isEditor(r)) {\n r.selection = null;\n }\n });\n return newRoot.children;\n },\n get(root, path) {\n var node = Node.getIf(root, path);\n if (node === undefined) {\n throw new Error(\"Cannot find a descendant at path [\".concat(path, \"] in node: \").concat(Scrubber.stringify(root)));\n }\n return node;\n },\n getIf(root, path) {\n var node = root;\n for (var i = 0; i < path.length; i++) {\n var p = path[i];\n if (Text.isText(node) || !node.children[p]) {\n return;\n }\n node = node.children[p];\n }\n return node;\n },\n has(root, path) {\n var node = root;\n for (var i = 0; i < path.length; i++) {\n var p = path[i];\n if (Text.isText(node) || !node.children[p]) {\n return false;\n }\n node = node.children[p];\n }\n return true;\n },\n isNode(value) {\n var {\n deep = false\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Text.isText(value) || Element.isElement(value, {\n deep\n }) || Editor.isEditor(value, {\n deep\n });\n },\n isNodeList(value) {\n var {\n deep = false\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Array.isArray(value) && value.every(val => Node.isNode(val, {\n deep\n }));\n },\n last(root, path) {\n var p = path.slice();\n var n = Node.get(root, p);\n while (n) {\n if (Text.isText(n) || n.children.length === 0) {\n break;\n } else {\n var i = n.children.length - 1;\n n = n.children[i];\n p.push(i);\n }\n }\n return [n, p];\n },\n leaf(root, path) {\n var node = Node.get(root, path);\n if (!Text.isText(node)) {\n throw new Error(\"Cannot get the leaf node at path [\".concat(path, \"] because it refers to a non-leaf node: \").concat(Scrubber.stringify(node)));\n }\n return node;\n },\n levels(root, path) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return function* () {\n for (var p of Path.levels(path, options)) {\n var n = Node.get(root, p);\n yield [n, p];\n }\n }();\n },\n matches(node, props) {\n return Element.isElement(node) && Element.isElementProps(props) && Element.matches(node, props) || Text.isText(node) && Text.isTextProps(props) && Text.matches(node, props);\n },\n nodes(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function* () {\n var {\n pass,\n reverse = false\n } = options;\n var {\n from = [],\n to\n } = options;\n var visited = new Set();\n var p = [];\n var n = root;\n while (true) {\n if (to && (reverse ? Path.isBefore(p, to) : Path.isAfter(p, to))) {\n break;\n }\n if (!visited.has(n)) {\n yield [n, p];\n }\n // If we're allowed to go downward and we haven't descended yet, do.\n if (!visited.has(n) && !Text.isText(n) && n.children.length !== 0 && (pass == null || pass([n, p]) === false)) {\n visited.add(n);\n var nextIndex = reverse ? n.children.length - 1 : 0;\n if (Path.isAncestor(p, from)) {\n nextIndex = from[p.length];\n }\n p = p.concat(nextIndex);\n n = Node.get(root, p);\n continue;\n }\n // If we're at the root and we can't go down, we're done.\n if (p.length === 0) {\n break;\n }\n // If we're going forward...\n if (!reverse) {\n var newPath = Path.next(p);\n if (Node.has(root, newPath)) {\n p = newPath;\n n = Node.get(root, p);\n continue;\n }\n }\n // If we're going backward...\n if (reverse && p[p.length - 1] !== 0) {\n var _newPath = Path.previous(p);\n p = _newPath;\n n = Node.get(root, p);\n continue;\n }\n // Otherwise we're going upward...\n p = Path.parent(p);\n n = Node.get(root, p);\n visited.add(n);\n }\n }();\n },\n parent(root, path) {\n var parentPath = Path.parent(path);\n var p = Node.get(root, parentPath);\n if (Text.isText(p)) {\n throw new Error(\"Cannot get the parent of path [\".concat(path, \"] because it does not exist in the root.\"));\n }\n return p;\n },\n string(node) {\n if (Text.isText(node)) {\n return node.text;\n } else {\n return node.children.map(Node.string).join('');\n }\n },\n texts(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function* () {\n for (var [node, path] of Node.nodes(root, options)) {\n if (Text.isText(node)) {\n yield [node, path];\n }\n }\n }();\n }\n};\n\nfunction ownKeys$c(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$c(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$c(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$c(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\n// eslint-disable-next-line no-redeclare\nvar Operation = {\n isNodeOperation(value) {\n return Operation.isOperation(value) && value.type.endsWith('_node');\n },\n isOperation(value) {\n if (!isObject(value)) {\n return false;\n }\n switch (value.type) {\n case 'insert_node':\n return Path.isPath(value.path) && Node.isNode(value.node);\n case 'insert_text':\n return typeof value.offset === 'number' && typeof value.text === 'string' && Path.isPath(value.path);\n case 'merge_node':\n return typeof value.position === 'number' && Path.isPath(value.path) && isObject(value.properties);\n case 'move_node':\n return Path.isPath(value.path) && Path.isPath(value.newPath);\n case 'remove_node':\n return Path.isPath(value.path) && Node.isNode(value.node);\n case 'remove_text':\n return typeof value.offset === 'number' && typeof value.text === 'string' && Path.isPath(value.path);\n case 'set_node':\n return Path.isPath(value.path) && isObject(value.properties) && isObject(value.newProperties);\n case 'set_selection':\n return value.properties === null && Range.isRange(value.newProperties) || value.newProperties === null && Range.isRange(value.properties) || isObject(value.properties) && isObject(value.newProperties);\n case 'split_node':\n return Path.isPath(value.path) && typeof value.position === 'number' && isObject(value.properties);\n default:\n return false;\n }\n },\n isOperationList(value) {\n return Array.isArray(value) && value.every(val => Operation.isOperation(val));\n },\n isSelectionOperation(value) {\n return Operation.isOperation(value) && value.type.endsWith('_selection');\n },\n isTextOperation(value) {\n return Operation.isOperation(value) && value.type.endsWith('_text');\n },\n inverse(op) {\n switch (op.type) {\n case 'insert_node':\n {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n type: 'remove_node'\n });\n }\n case 'insert_text':\n {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n type: 'remove_text'\n });\n }\n case 'merge_node':\n {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n type: 'split_node',\n path: Path.previous(op.path)\n });\n }\n case 'move_node':\n {\n var {\n newPath,\n path\n } = op;\n // PERF: in this case the move operation is a no-op anyways.\n if (Path.equals(newPath, path)) {\n return op;\n }\n // If the move happens completely within a single parent the path and\n // newPath are stable with respect to each other.\n if (Path.isSibling(path, newPath)) {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n path: newPath,\n newPath: path\n });\n }\n // If the move does not happen within a single parent it is possible\n // for the move to impact the true path to the location where the node\n // was removed from and where it was inserted. We have to adjust for this\n // and find the original path. We can accomplish this (only in non-sibling)\n // moves by looking at the impact of the move operation on the node\n // after the original move path.\n var inversePath = Path.transform(path, op);\n var inverseNewPath = Path.transform(Path.next(path), op);\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n path: inversePath,\n newPath: inverseNewPath\n });\n }\n case 'remove_node':\n {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n type: 'insert_node'\n });\n }\n case 'remove_text':\n {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n type: 'insert_text'\n });\n }\n case 'set_node':\n {\n var {\n properties,\n newProperties\n } = op;\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n properties: newProperties,\n newProperties: properties\n });\n }\n case 'set_selection':\n {\n var {\n properties: _properties,\n newProperties: _newProperties\n } = op;\n if (_properties == null) {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n properties: _newProperties,\n newProperties: null\n });\n } else if (_newProperties == null) {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n properties: null,\n newProperties: _properties\n });\n } else {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n properties: _newProperties,\n newProperties: _properties\n });\n }\n }\n case 'split_node':\n {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n type: 'merge_node',\n path: Path.next(op.path)\n });\n }\n }\n }\n};\n\nvar isEditor = function isEditor(value) {\n var {\n deep = false\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!isObject(value)) {\n return false;\n }\n var isEditor = typeof value.addMark === 'function' && typeof value.apply === 'function' && typeof value.deleteFragment === 'function' && typeof value.insertBreak === 'function' && typeof value.insertSoftBreak === 'function' && typeof value.insertFragment === 'function' && typeof value.insertNode === 'function' && typeof value.insertText === 'function' && typeof value.isElementReadOnly === 'function' && typeof value.isInline === 'function' && typeof value.isSelectable === 'function' && typeof value.isVoid === 'function' && typeof value.normalizeNode === 'function' && typeof value.onChange === 'function' && typeof value.removeMark === 'function' && typeof value.getDirtyPaths === 'function' && (value.marks === null || isObject(value.marks)) && (value.selection === null || Range.isRange(value.selection)) && (!deep || Node.isNodeList(value.children)) && Operation.isOperationList(value.operations);\n return isEditor;\n};\n\n// eslint-disable-next-line no-redeclare\nvar Editor = {\n above(editor, options) {\n return editor.above(options);\n },\n addMark(editor, key, value) {\n editor.addMark(key, value);\n },\n after(editor, at, options) {\n return editor.after(at, options);\n },\n before(editor, at, options) {\n return editor.before(at, options);\n },\n deleteBackward(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n unit = 'character'\n } = options;\n editor.deleteBackward(unit);\n },\n deleteForward(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n unit = 'character'\n } = options;\n editor.deleteForward(unit);\n },\n deleteFragment(editor, options) {\n editor.deleteFragment(options);\n },\n edges(editor, at) {\n return editor.edges(at);\n },\n elementReadOnly(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return editor.elementReadOnly(options);\n },\n end(editor, at) {\n return editor.end(at);\n },\n first(editor, at) {\n return editor.first(at);\n },\n fragment(editor, at) {\n return editor.fragment(at);\n },\n hasBlocks(editor, element) {\n return editor.hasBlocks(element);\n },\n hasInlines(editor, element) {\n return editor.hasInlines(element);\n },\n hasPath(editor, path) {\n return editor.hasPath(path);\n },\n hasTexts(editor, element) {\n return editor.hasTexts(element);\n },\n insertBreak(editor) {\n editor.insertBreak();\n },\n insertFragment(editor, fragment, options) {\n editor.insertFragment(fragment, options);\n },\n insertNode(editor, node) {\n editor.insertNode(node);\n },\n insertSoftBreak(editor) {\n editor.insertSoftBreak();\n },\n insertText(editor, text) {\n editor.insertText(text);\n },\n isBlock(editor, value) {\n return editor.isBlock(value);\n },\n isEdge(editor, point, at) {\n return editor.isEdge(point, at);\n },\n isEditor(value) {\n return isEditor(value);\n },\n isElementReadOnly(editor, element) {\n return editor.isElementReadOnly(element);\n },\n isEmpty(editor, element) {\n return editor.isEmpty(element);\n },\n isEnd(editor, point, at) {\n return editor.isEnd(point, at);\n },\n isInline(editor, value) {\n return editor.isInline(value);\n },\n isNormalizing(editor) {\n return editor.isNormalizing();\n },\n isSelectable(editor, value) {\n return editor.isSelectable(value);\n },\n isStart(editor, point, at) {\n return editor.isStart(point, at);\n },\n isVoid(editor, value) {\n return editor.isVoid(value);\n },\n last(editor, at) {\n return editor.last(at);\n },\n leaf(editor, at, options) {\n return editor.leaf(at, options);\n },\n levels(editor, options) {\n return editor.levels(options);\n },\n marks(editor) {\n return editor.getMarks();\n },\n next(editor, options) {\n return editor.next(options);\n },\n node(editor, at, options) {\n return editor.node(at, options);\n },\n nodes(editor, options) {\n return editor.nodes(options);\n },\n normalize(editor, options) {\n editor.normalize(options);\n },\n parent(editor, at, options) {\n return editor.parent(at, options);\n },\n path(editor, at, options) {\n return editor.path(at, options);\n },\n pathRef(editor, path, options) {\n return editor.pathRef(path, options);\n },\n pathRefs(editor) {\n return editor.pathRefs();\n },\n point(editor, at, options) {\n return editor.point(at, options);\n },\n pointRef(editor, point, options) {\n return editor.pointRef(point, options);\n },\n pointRefs(editor) {\n return editor.pointRefs();\n },\n positions(editor, options) {\n return editor.positions(options);\n },\n previous(editor, options) {\n return editor.previous(options);\n },\n range(editor, at, to) {\n return editor.range(at, to);\n },\n rangeRef(editor, range, options) {\n return editor.rangeRef(range, options);\n },\n rangeRefs(editor) {\n return editor.rangeRefs();\n },\n removeMark(editor, key) {\n editor.removeMark(key);\n },\n setNormalizing(editor, isNormalizing) {\n editor.setNormalizing(isNormalizing);\n },\n start(editor, at) {\n return editor.start(at);\n },\n string(editor, at, options) {\n return editor.string(at, options);\n },\n unhangRange(editor, range, options) {\n return editor.unhangRange(range, options);\n },\n void(editor, options) {\n return editor.void(options);\n },\n withoutNormalizing(editor, fn) {\n editor.withoutNormalizing(fn);\n },\n shouldMergeNodesRemovePrevNode: (editor, prevNode, curNode) => {\n return editor.shouldMergeNodesRemovePrevNode(prevNode, curNode);\n }\n};\n\n// eslint-disable-next-line no-redeclare\nvar Location = {\n isLocation(value) {\n return Path.isPath(value) || Point.isPoint(value) || Range.isRange(value);\n }\n};\n// eslint-disable-next-line no-redeclare\nvar Span = {\n isSpan(value) {\n return Array.isArray(value) && value.length === 2 && value.every(Path.isPath);\n }\n};\n\nfunction ownKeys$b(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$b(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$b(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$b(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\n// eslint-disable-next-line no-redeclare\nvar Point = {\n compare(point, another) {\n var result = Path.compare(point.path, another.path);\n if (result === 0) {\n if (point.offset < another.offset) return -1;\n if (point.offset > another.offset) return 1;\n return 0;\n }\n return result;\n },\n isAfter(point, another) {\n return Point.compare(point, another) === 1;\n },\n isBefore(point, another) {\n return Point.compare(point, another) === -1;\n },\n equals(point, another) {\n // PERF: ensure the offsets are equal first since they are cheaper to check.\n return point.offset === another.offset && Path.equals(point.path, another.path);\n },\n isPoint(value) {\n return isObject(value) && typeof value.offset === 'number' && Path.isPath(value.path);\n },\n transform(point, op) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (point === null) {\n return null;\n }\n var {\n affinity = 'forward'\n } = options;\n var {\n path,\n offset\n } = point;\n switch (op.type) {\n case 'insert_node':\n case 'move_node':\n {\n path = Path.transform(path, op, options);\n break;\n }\n case 'insert_text':\n {\n if (Path.equals(op.path, path) && (op.offset < offset || op.offset === offset && affinity === 'forward')) {\n offset += op.text.length;\n }\n break;\n }\n case 'merge_node':\n {\n if (Path.equals(op.path, path)) {\n offset += op.position;\n }\n path = Path.transform(path, op, options);\n break;\n }\n case 'remove_text':\n {\n if (Path.equals(op.path, path) && op.offset <= offset) {\n offset -= Math.min(offset - op.offset, op.text.length);\n }\n break;\n }\n case 'remove_node':\n {\n if (Path.equals(op.path, path) || Path.isAncestor(op.path, path)) {\n return null;\n }\n path = Path.transform(path, op, options);\n break;\n }\n case 'split_node':\n {\n if (Path.equals(op.path, path)) {\n if (op.position === offset && affinity == null) {\n return null;\n } else if (op.position < offset || op.position === offset && affinity === 'forward') {\n offset -= op.position;\n path = Path.transform(path, op, _objectSpread$b(_objectSpread$b({}, options), {}, {\n affinity: 'forward'\n }));\n }\n } else {\n path = Path.transform(path, op, options);\n }\n break;\n }\n default:\n return point;\n }\n return {\n path,\n offset\n };\n }\n};\n\nvar _scrubber = undefined;\n/**\n * This interface implements a stringify() function, which is used by Slate\n * internally when generating exceptions containing end user data. Developers\n * using Slate may call Scrubber.setScrubber() to alter the behavior of this\n * stringify() function.\n *\n * For example, to prevent the cleartext logging of 'text' fields within Nodes:\n *\n * import { Scrubber } from 'slate';\n * Scrubber.setScrubber((key, val) => {\n * if (key === 'text') return '...scrubbed...'\n * return val\n * });\n *\n */\n// eslint-disable-next-line no-redeclare\nvar Scrubber = {\n setScrubber(scrubber) {\n _scrubber = scrubber;\n },\n stringify(value) {\n return JSON.stringify(value, _scrubber);\n }\n};\n\nvar _excluded$2 = [\"text\"],\n _excluded2$2 = [\"anchor\", \"focus\", \"merge\"];\nfunction ownKeys$a(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$a(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$a(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$a(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\n// eslint-disable-next-line no-redeclare\nvar Text = {\n equals(text, another) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n loose = false\n } = options;\n function omitText(obj) {\n var rest = _objectWithoutProperties(obj, _excluded$2);\n return rest;\n }\n return isDeepEqual(loose ? omitText(text) : text, loose ? omitText(another) : another);\n },\n isText(value) {\n return isObject(value) && typeof value.text === 'string';\n },\n isTextList(value) {\n return Array.isArray(value) && value.every(val => Text.isText(val));\n },\n isTextProps(props) {\n return props.text !== undefined;\n },\n matches(text, props) {\n for (var key in props) {\n if (key === 'text') {\n continue;\n }\n if (!text.hasOwnProperty(key) || text[key] !== props[key]) {\n return false;\n }\n }\n return true;\n },\n decorations(node, decorations) {\n var leaves = [{\n leaf: _objectSpread$a({}, node)\n }];\n for (var dec of decorations) {\n var {\n anchor,\n focus,\n merge: mergeDecoration\n } = dec,\n rest = _objectWithoutProperties(dec, _excluded2$2);\n var [start, end] = Range.edges(dec);\n var next = [];\n var leafEnd = 0;\n var decorationStart = start.offset;\n var decorationEnd = end.offset;\n var merge = mergeDecoration !== null && mergeDecoration !== void 0 ? mergeDecoration : Object.assign;\n for (var {\n leaf\n } of leaves) {\n var {\n length\n } = leaf.text;\n var leafStart = leafEnd;\n leafEnd += length;\n // If the range encompasses the entire leaf, add the range.\n if (decorationStart <= leafStart && leafEnd <= decorationEnd) {\n merge(leaf, rest);\n next.push({\n leaf\n });\n continue;\n }\n // If the range expanded and match the leaf, or starts after, or ends before it, continue.\n if (decorationStart !== decorationEnd && (decorationStart === leafEnd || decorationEnd === leafStart) || decorationStart > leafEnd || decorationEnd < leafStart || decorationEnd === leafStart && leafStart !== 0) {\n next.push({\n leaf\n });\n continue;\n }\n // Otherwise we need to split the leaf, at the start, end, or both,\n // and add the range to the middle intersecting section. Do the end\n // split first since we don't need to update the offset that way.\n var middle = leaf;\n var before = void 0;\n var after = void 0;\n if (decorationEnd < leafEnd) {\n var off = decorationEnd - leafStart;\n after = {\n leaf: _objectSpread$a(_objectSpread$a({}, middle), {}, {\n text: middle.text.slice(off)\n })\n };\n middle = _objectSpread$a(_objectSpread$a({}, middle), {}, {\n text: middle.text.slice(0, off)\n });\n }\n if (decorationStart > leafStart) {\n var _off = decorationStart - leafStart;\n before = {\n leaf: _objectSpread$a(_objectSpread$a({}, middle), {}, {\n text: middle.text.slice(0, _off)\n })\n };\n middle = _objectSpread$a(_objectSpread$a({}, middle), {}, {\n text: middle.text.slice(_off)\n });\n }\n merge(middle, rest);\n if (before) {\n next.push(before);\n }\n next.push({\n leaf: middle\n });\n if (after) {\n next.push(after);\n }\n }\n leaves = next;\n }\n if (leaves.length > 1) {\n var currentOffset = 0;\n for (var [index, item] of leaves.entries()) {\n var _start = currentOffset;\n var _end = _start + item.leaf.text.length;\n var position = {\n start: _start,\n end: _end\n };\n if (index === 0) position.isFirst = true;\n if (index === leaves.length - 1) position.isLast = true;\n item.position = position;\n currentOffset = _end;\n }\n }\n return leaves;\n }\n};\n\n/**\n * Get the default location to insert content into the editor.\n * By default, use the selection as the target location. But if there is\n * no selection, insert at the end of the document since that is such a\n * common use case when inserting from a non-selected state.\n */\nvar getDefaultInsertLocation = editor => {\n if (editor.selection) {\n return editor.selection;\n } else if (editor.children.length > 0) {\n return Editor.end(editor, []);\n } else {\n return [0];\n }\n};\n\nvar matchPath = (editor, path) => {\n var [node] = Editor.node(editor, path);\n return n => n === node;\n};\n\n// Character (grapheme cluster) boundaries are determined according to\n// the default grapheme cluster boundary specification, extended grapheme clusters variant[1].\n//\n// References:\n//\n// [1] https://www.unicode.org/reports/tr29/#Default_Grapheme_Cluster_Table\n// [2] https://www.unicode.org/Public/UCD/latest/ucd/auxiliary/GraphemeBreakProperty.txt\n// [3] https://www.unicode.org/Public/UCD/latest/ucd/auxiliary/GraphemeBreakTest.html\n// [4] https://www.unicode.org/Public/UCD/latest/ucd/auxiliary/GraphemeBreakTest.txt\n/**\n * Get the distance to the end of the first character in a string of text.\n */\nvar getCharacterDistance = function getCharacterDistance(str) {\n var isRTL = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var isLTR = !isRTL;\n var codepoints = isRTL ? codepointsIteratorRTL(str) : str;\n var left = CodepointType.None;\n var right = CodepointType.None;\n var distance = 0;\n // Evaluation of these conditions are deferred.\n var gb11 = null; // Is GB11 applicable?\n var gb12Or13 = null; // Is GB12 or GB13 applicable?\n for (var char of codepoints) {\n var code = char.codePointAt(0);\n if (!code) break;\n var type = getCodepointType(char, code);\n [left, right] = isLTR ? [right, type] : [type, left];\n if (intersects(left, CodepointType.ZWJ) && intersects(right, CodepointType.ExtPict)) {\n if (isLTR) {\n gb11 = endsWithEmojiZWJ(str.substring(0, distance));\n } else {\n gb11 = endsWithEmojiZWJ(str.substring(0, str.length - distance));\n }\n if (!gb11) break;\n }\n if (intersects(left, CodepointType.RI) && intersects(right, CodepointType.RI)) {\n if (gb12Or13 !== null) {\n gb12Or13 = !gb12Or13;\n } else {\n if (isLTR) {\n gb12Or13 = true;\n } else {\n gb12Or13 = endsWithOddNumberOfRIs(str.substring(0, str.length - distance));\n }\n }\n if (!gb12Or13) break;\n }\n if (left !== CodepointType.None && right !== CodepointType.None && isBoundaryPair(left, right)) {\n break;\n }\n distance += char.length;\n }\n return distance || 1;\n};\nvar SPACE = /\\s/;\nvar PUNCTUATION = /[\\u002B\\u0021-\\u0023\\u0025-\\u002A\\u002C-\\u002F\\u003A\\u003B\\u003F\\u0040\\u005B-\\u005D\\u005F\\u007B\\u007D\\u00A1\\u00A7\\u00AB\\u00B6\\u00B7\\u00BB\\u00BF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u0AF0\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E3B\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/;\nvar CHAMELEON = /['\\u2018\\u2019]/;\n/**\n * Get the distance to the end of the first word in a string of text.\n */\nvar getWordDistance = function getWordDistance(text) {\n var isRTL = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var dist = 0;\n var started = false;\n while (text.length > 0) {\n var charDist = getCharacterDistance(text, isRTL);\n var [char, remaining] = splitByCharacterDistance(text, charDist, isRTL);\n if (isWordCharacter(char, remaining, isRTL)) {\n started = true;\n dist += charDist;\n } else if (!started) {\n dist += charDist;\n } else {\n break;\n }\n text = remaining;\n }\n return dist;\n};\n/**\n * Split a string in two parts at a given distance starting from the end when\n * `isRTL` is set to `true`.\n */\nvar splitByCharacterDistance = (str, dist, isRTL) => {\n if (isRTL) {\n var at = str.length - dist;\n return [str.slice(at, str.length), str.slice(0, at)];\n }\n return [str.slice(0, dist), str.slice(dist)];\n};\n/**\n * Check if a character is a word character. The `remaining` argument is used\n * because sometimes you must read subsequent characters to truly determine it.\n */\nvar isWordCharacter = function isWordCharacter(char, remaining) {\n var isRTL = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (SPACE.test(char)) {\n return false;\n }\n // Chameleons count as word characters as long as they're in a word, so\n // recurse to see if the next one is a word character or not.\n if (CHAMELEON.test(char)) {\n var charDist = getCharacterDistance(remaining, isRTL);\n var [nextChar, nextRemaining] = splitByCharacterDistance(remaining, charDist, isRTL);\n if (isWordCharacter(nextChar, nextRemaining, isRTL)) {\n return true;\n }\n }\n if (PUNCTUATION.test(char)) {\n return false;\n }\n return true;\n};\n/**\n * Iterate on codepoints from right to left.\n */\nvar codepointsIteratorRTL = function* codepointsIteratorRTL(str) {\n var end = str.length - 1;\n for (var i = 0; i < str.length; i++) {\n var char1 = str.charAt(end - i);\n if (isLowSurrogate(char1.charCodeAt(0))) {\n var char2 = str.charAt(end - i - 1);\n if (isHighSurrogate(char2.charCodeAt(0))) {\n yield char2 + char1;\n i++;\n continue;\n }\n }\n yield char1;\n }\n};\n/**\n * Is `charCode` a high surrogate.\n *\n * https://en.wikipedia.org/wiki/Universal_Character_Set_characters#Surrogates\n */\nvar isHighSurrogate = charCode => {\n return charCode >= 0xd800 && charCode <= 0xdbff;\n};\n/**\n * Is `charCode` a low surrogate.\n *\n * https://en.wikipedia.org/wiki/Universal_Character_Set_characters#Surrogates\n */\nvar isLowSurrogate = charCode => {\n return charCode >= 0xdc00 && charCode <= 0xdfff;\n};\nvar CodepointType;\n(function (CodepointType) {\n CodepointType[CodepointType[\"None\"] = 0] = \"None\";\n CodepointType[CodepointType[\"Extend\"] = 1] = \"Extend\";\n CodepointType[CodepointType[\"ZWJ\"] = 2] = \"ZWJ\";\n CodepointType[CodepointType[\"RI\"] = 4] = \"RI\";\n CodepointType[CodepointType[\"Prepend\"] = 8] = \"Prepend\";\n CodepointType[CodepointType[\"SpacingMark\"] = 16] = \"SpacingMark\";\n CodepointType[CodepointType[\"L\"] = 32] = \"L\";\n CodepointType[CodepointType[\"V\"] = 64] = \"V\";\n CodepointType[CodepointType[\"T\"] = 128] = \"T\";\n CodepointType[CodepointType[\"LV\"] = 256] = \"LV\";\n CodepointType[CodepointType[\"LVT\"] = 512] = \"LVT\";\n CodepointType[CodepointType[\"ExtPict\"] = 1024] = \"ExtPict\";\n CodepointType[CodepointType[\"Any\"] = 2048] = \"Any\";\n})(CodepointType || (CodepointType = {}));\nvar reExtend = /^(?:[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0898-\\u089F\\u08CA-\\u08E1\\u08E3-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09BE\\u09C1-\\u09C4\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01\\u0B3C\\u0B3E\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE\\u0BC0\\u0BCD\\u0BD7\\u0C00\\u0C04\\u0C3C\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81\\u0CBC\\u0CBF\\u0CC2\\u0CC6\\u0CCC\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D00\\u0D01\\u0D3B\\u0D3C\\u0D3E\\u0D41-\\u0D44\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81\\u0DCA\\u0DCF\\u0DD2-\\u0DD4\\u0DD6\\u0DDF\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732\\u1733\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A1B\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B03\\u1B34-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB-\\u1BAD\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DFF\\u200C\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA82C\\uA8C4\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uA9BD\\uA9E5\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAA7C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFF9E\\uFF9F]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC01\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC81\\uDCB3-\\uDCB6\\uDCB9\\uDCBA\\uDCC2\\uDD00-\\uDD02\\uDD27-\\uDD2B\\uDD2D-\\uDD34\\uDD73\\uDD80\\uDD81\\uDDB6-\\uDDBE\\uDDC9-\\uDDCC\\uDDCF\\uDE2F-\\uDE31\\uDE34\\uDE36\\uDE37\\uDE3E\\uDE41\\uDEDF\\uDEE3-\\uDEEA\\uDF00\\uDF01\\uDF3B\\uDF3C\\uDF3E\\uDF40\\uDF57\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC38-\\uDC3F\\uDC42-\\uDC44\\uDC46\\uDC5E\\uDCB0\\uDCB3-\\uDCB8\\uDCBA\\uDCBD\\uDCBF\\uDCC0\\uDCC2\\uDCC3\\uDDAF\\uDDB2-\\uDDB5\\uDDBC\\uDDBD\\uDDBF\\uDDC0\\uDDDC\\uDDDD\\uDE33-\\uDE3A\\uDE3D\\uDE3F\\uDE40\\uDEAB\\uDEAD\\uDEB0-\\uDEB5\\uDEB7\\uDF1D-\\uDF1F\\uDF22-\\uDF25\\uDF27-\\uDF2B]|\\uD806[\\uDC2F-\\uDC37\\uDC39\\uDC3A\\uDD30\\uDD3B\\uDD3C\\uDD3E\\uDD43\\uDDD4-\\uDDD7\\uDDDA\\uDDDB\\uDDE0\\uDE01-\\uDE0A\\uDE33-\\uDE38\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE56\\uDE59-\\uDE5B\\uDE8A-\\uDE96\\uDE98\\uDE99]|\\uD807[\\uDC30-\\uDC36\\uDC38-\\uDC3D\\uDC3F\\uDC92-\\uDCA7\\uDCAA-\\uDCB0\\uDCB2\\uDCB3\\uDCB5\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD90\\uDD91\\uDD95\\uDD97\\uDEF3\\uDEF4\\uDF00\\uDF01\\uDF36-\\uDF3A\\uDF40\\uDF42]|\\uD80D[\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF8F-\\uDF92\\uDFE4]|\\uD82F[\\uDC9D\\uDC9E]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65\\uDD67-\\uDD69\\uDD6E-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC20-\\uDC7F\\uDD00-\\uDDEF])$/;\nvar rePrepend = /^(?:[\\u0600-\\u0605\\u06DD\\u070F\\u0890\\u0891\\u08E2\\u0D4E]|\\uD804[\\uDCBD\\uDCCD\\uDDC2\\uDDC3]|\\uD806[\\uDD3F\\uDD41\\uDE3A\\uDE84-\\uDE89]|\\uD807\\uDD46)$/;\nvar reSpacingMark = /^(?:[\\u0903\\u093B\\u093E-\\u0940\\u0949-\\u094C\\u094E\\u094F\\u0982\\u0983\\u09BF\\u09C0\\u09C7\\u09C8\\u09CB\\u09CC\\u0A03\\u0A3E-\\u0A40\\u0A83\\u0ABE-\\u0AC0\\u0AC9\\u0ACB\\u0ACC\\u0B02\\u0B03\\u0B40\\u0B47\\u0B48\\u0B4B\\u0B4C\\u0BBF\\u0BC1\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCC\\u0C01-\\u0C03\\u0C41-\\u0C44\\u0C82\\u0C83\\u0CBE\\u0CC0\\u0CC1\\u0CC3\\u0CC4\\u0CC7\\u0CC8\\u0CCA\\u0CCB\\u0D02\\u0D03\\u0D3F\\u0D40\\u0D46-\\u0D48\\u0D4A-\\u0D4C\\u0D82\\u0D83\\u0DD0\\u0DD1\\u0DD8-\\u0DDE\\u0DF2\\u0DF3\\u0E33\\u0EB3\\u0F3E\\u0F3F\\u0F7F\\u1031\\u103B\\u103C\\u1056\\u1057\\u1084\\u1715\\u1734\\u17B6\\u17BE-\\u17C5\\u17C7\\u17C8\\u1923-\\u1926\\u1929-\\u192B\\u1930\\u1931\\u1933-\\u1938\\u1A19\\u1A1A\\u1A55\\u1A57\\u1A6D-\\u1A72\\u1B04\\u1B3B\\u1B3D-\\u1B41\\u1B43\\u1B44\\u1B82\\u1BA1\\u1BA6\\u1BA7\\u1BAA\\u1BE7\\u1BEA-\\u1BEC\\u1BEE\\u1BF2\\u1BF3\\u1C24-\\u1C2B\\u1C34\\u1C35\\u1CE1\\u1CF7\\uA823\\uA824\\uA827\\uA880\\uA881\\uA8B4-\\uA8C3\\uA952\\uA953\\uA983\\uA9B4\\uA9B5\\uA9BA\\uA9BB\\uA9BE-\\uA9C0\\uAA2F\\uAA30\\uAA33\\uAA34\\uAA4D\\uAAEB\\uAAEE\\uAAEF\\uAAF5\\uABE3\\uABE4\\uABE6\\uABE7\\uABE9\\uABEA\\uABEC]|\\uD804[\\uDC00\\uDC02\\uDC82\\uDCB0-\\uDCB2\\uDCB7\\uDCB8\\uDD2C\\uDD45\\uDD46\\uDD82\\uDDB3-\\uDDB5\\uDDBF\\uDDC0\\uDDCE\\uDE2C-\\uDE2E\\uDE32\\uDE33\\uDE35\\uDEE0-\\uDEE2\\uDF02\\uDF03\\uDF3F\\uDF41-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF62\\uDF63]|\\uD805[\\uDC35-\\uDC37\\uDC40\\uDC41\\uDC45\\uDCB1\\uDCB2\\uDCB9\\uDCBB\\uDCBC\\uDCBE\\uDCC1\\uDDB0\\uDDB1\\uDDB8-\\uDDBB\\uDDBE\\uDE30-\\uDE32\\uDE3B\\uDE3C\\uDE3E\\uDEAC\\uDEAE\\uDEAF\\uDEB6\\uDF26]|\\uD806[\\uDC2C-\\uDC2E\\uDC38\\uDD31-\\uDD35\\uDD37\\uDD38\\uDD3D\\uDD40\\uDD42\\uDDD1-\\uDDD3\\uDDDC-\\uDDDF\\uDDE4\\uDE39\\uDE57\\uDE58\\uDE97]|\\uD807[\\uDC2F\\uDC3E\\uDCA9\\uDCB1\\uDCB4\\uDD8A-\\uDD8E\\uDD93\\uDD94\\uDD96\\uDEF5\\uDEF6]|\\uD81B[\\uDF51-\\uDF87\\uDFF0\\uDFF1]|\\uD834[\\uDD66\\uDD6D])$/;\nvar reL = /^[\\u1100-\\u115F\\uA960-\\uA97C]$/;\nvar reV = /^[\\u1160-\\u11A7\\uD7B0-\\uD7C6]$/;\nvar reT = /^[\\u11A8-\\u11FF\\uD7CB-\\uD7FB]$/;\nvar reLV = /^[\\uAC00\\uAC1C\\uAC38\\uAC54\\uAC70\\uAC8C\\uACA8\\uACC4\\uACE0\\uACFC\\uAD18\\uAD34\\uAD50\\uAD6C\\uAD88\\uADA4\\uADC0\\uADDC\\uADF8\\uAE14\\uAE30\\uAE4C\\uAE68\\uAE84\\uAEA0\\uAEBC\\uAED8\\uAEF4\\uAF10\\uAF2C\\uAF48\\uAF64\\uAF80\\uAF9C\\uAFB8\\uAFD4\\uAFF0\\uB00C\\uB028\\uB044\\uB060\\uB07C\\uB098\\uB0B4\\uB0D0\\uB0EC\\uB108\\uB124\\uB140\\uB15C\\uB178\\uB194\\uB1B0\\uB1CC\\uB1E8\\uB204\\uB220\\uB23C\\uB258\\uB274\\uB290\\uB2AC\\uB2C8\\uB2E4\\uB300\\uB31C\\uB338\\uB354\\uB370\\uB38C\\uB3A8\\uB3C4\\uB3E0\\uB3FC\\uB418\\uB434\\uB450\\uB46C\\uB488\\uB4A4\\uB4C0\\uB4DC\\uB4F8\\uB514\\uB530\\uB54C\\uB568\\uB584\\uB5A0\\uB5BC\\uB5D8\\uB5F4\\uB610\\uB62C\\uB648\\uB664\\uB680\\uB69C\\uB6B8\\uB6D4\\uB6F0\\uB70C\\uB728\\uB744\\uB760\\uB77C\\uB798\\uB7B4\\uB7D0\\uB7EC\\uB808\\uB824\\uB840\\uB85C\\uB878\\uB894\\uB8B0\\uB8CC\\uB8E8\\uB904\\uB920\\uB93C\\uB958\\uB974\\uB990\\uB9AC\\uB9C8\\uB9E4\\uBA00\\uBA1C\\uBA38\\uBA54\\uBA70\\uBA8C\\uBAA8\\uBAC4\\uBAE0\\uBAFC\\uBB18\\uBB34\\uBB50\\uBB6C\\uBB88\\uBBA4\\uBBC0\\uBBDC\\uBBF8\\uBC14\\uBC30\\uBC4C\\uBC68\\uBC84\\uBCA0\\uBCBC\\uBCD8\\uBCF4\\uBD10\\uBD2C\\uBD48\\uBD64\\uBD80\\uBD9C\\uBDB8\\uBDD4\\uBDF0\\uBE0C\\uBE28\\uBE44\\uBE60\\uBE7C\\uBE98\\uBEB4\\uBED0\\uBEEC\\uBF08\\uBF24\\uBF40\\uBF5C\\uBF78\\uBF94\\uBFB0\\uBFCC\\uBFE8\\uC004\\uC020\\uC03C\\uC058\\uC074\\uC090\\uC0AC\\uC0C8\\uC0E4\\uC100\\uC11C\\uC138\\uC154\\uC170\\uC18C\\uC1A8\\uC1C4\\uC1E0\\uC1FC\\uC218\\uC234\\uC250\\uC26C\\uC288\\uC2A4\\uC2C0\\uC2DC\\uC2F8\\uC314\\uC330\\uC34C\\uC368\\uC384\\uC3A0\\uC3BC\\uC3D8\\uC3F4\\uC410\\uC42C\\uC448\\uC464\\uC480\\uC49C\\uC4B8\\uC4D4\\uC4F0\\uC50C\\uC528\\uC544\\uC560\\uC57C\\uC598\\uC5B4\\uC5D0\\uC5EC\\uC608\\uC624\\uC640\\uC65C\\uC678\\uC694\\uC6B0\\uC6CC\\uC6E8\\uC704\\uC720\\uC73C\\uC758\\uC774\\uC790\\uC7AC\\uC7C8\\uC7E4\\uC800\\uC81C\\uC838\\uC854\\uC870\\uC88C\\uC8A8\\uC8C4\\uC8E0\\uC8FC\\uC918\\uC934\\uC950\\uC96C\\uC988\\uC9A4\\uC9C0\\uC9DC\\uC9F8\\uCA14\\uCA30\\uCA4C\\uCA68\\uCA84\\uCAA0\\uCABC\\uCAD8\\uCAF4\\uCB10\\uCB2C\\uCB48\\uCB64\\uCB80\\uCB9C\\uCBB8\\uCBD4\\uCBF0\\uCC0C\\uCC28\\uCC44\\uCC60\\uCC7C\\uCC98\\uCCB4\\uCCD0\\uCCEC\\uCD08\\uCD24\\uCD40\\uCD5C\\uCD78\\uCD94\\uCDB0\\uCDCC\\uCDE8\\uCE04\\uCE20\\uCE3C\\uCE58\\uCE74\\uCE90\\uCEAC\\uCEC8\\uCEE4\\uCF00\\uCF1C\\uCF38\\uCF54\\uCF70\\uCF8C\\uCFA8\\uCFC4\\uCFE0\\uCFFC\\uD018\\uD034\\uD050\\uD06C\\uD088\\uD0A4\\uD0C0\\uD0DC\\uD0F8\\uD114\\uD130\\uD14C\\uD168\\uD184\\uD1A0\\uD1BC\\uD1D8\\uD1F4\\uD210\\uD22C\\uD248\\uD264\\uD280\\uD29C\\uD2B8\\uD2D4\\uD2F0\\uD30C\\uD328\\uD344\\uD360\\uD37C\\uD398\\uD3B4\\uD3D0\\uD3EC\\uD408\\uD424\\uD440\\uD45C\\uD478\\uD494\\uD4B0\\uD4CC\\uD4E8\\uD504\\uD520\\uD53C\\uD558\\uD574\\uD590\\uD5AC\\uD5C8\\uD5E4\\uD600\\uD61C\\uD638\\uD654\\uD670\\uD68C\\uD6A8\\uD6C4\\uD6E0\\uD6FC\\uD718\\uD734\\uD750\\uD76C\\uD788]$/;\nvar reLVT = /^[\\uAC01-\\uAC1B\\uAC1D-\\uAC37\\uAC39-\\uAC53\\uAC55-\\uAC6F\\uAC71-\\uAC8B\\uAC8D-\\uACA7\\uACA9-\\uACC3\\uACC5-\\uACDF\\uACE1-\\uACFB\\uACFD-\\uAD17\\uAD19-\\uAD33\\uAD35-\\uAD4F\\uAD51-\\uAD6B\\uAD6D-\\uAD87\\uAD89-\\uADA3\\uADA5-\\uADBF\\uADC1-\\uADDB\\uADDD-\\uADF7\\uADF9-\\uAE13\\uAE15-\\uAE2F\\uAE31-\\uAE4B\\uAE4D-\\uAE67\\uAE69-\\uAE83\\uAE85-\\uAE9F\\uAEA1-\\uAEBB\\uAEBD-\\uAED7\\uAED9-\\uAEF3\\uAEF5-\\uAF0F\\uAF11-\\uAF2B\\uAF2D-\\uAF47\\uAF49-\\uAF63\\uAF65-\\uAF7F\\uAF81-\\uAF9B\\uAF9D-\\uAFB7\\uAFB9-\\uAFD3\\uAFD5-\\uAFEF\\uAFF1-\\uB00B\\uB00D-\\uB027\\uB029-\\uB043\\uB045-\\uB05F\\uB061-\\uB07B\\uB07D-\\uB097\\uB099-\\uB0B3\\uB0B5-\\uB0CF\\uB0D1-\\uB0EB\\uB0ED-\\uB107\\uB109-\\uB123\\uB125-\\uB13F\\uB141-\\uB15B\\uB15D-\\uB177\\uB179-\\uB193\\uB195-\\uB1AF\\uB1B1-\\uB1CB\\uB1CD-\\uB1E7\\uB1E9-\\uB203\\uB205-\\uB21F\\uB221-\\uB23B\\uB23D-\\uB257\\uB259-\\uB273\\uB275-\\uB28F\\uB291-\\uB2AB\\uB2AD-\\uB2C7\\uB2C9-\\uB2E3\\uB2E5-\\uB2FF\\uB301-\\uB31B\\uB31D-\\uB337\\uB339-\\uB353\\uB355-\\uB36F\\uB371-\\uB38B\\uB38D-\\uB3A7\\uB3A9-\\uB3C3\\uB3C5-\\uB3DF\\uB3E1-\\uB3FB\\uB3FD-\\uB417\\uB419-\\uB433\\uB435-\\uB44F\\uB451-\\uB46B\\uB46D-\\uB487\\uB489-\\uB4A3\\uB4A5-\\uB4BF\\uB4C1-\\uB4DB\\uB4DD-\\uB4F7\\uB4F9-\\uB513\\uB515-\\uB52F\\uB531-\\uB54B\\uB54D-\\uB567\\uB569-\\uB583\\uB585-\\uB59F\\uB5A1-\\uB5BB\\uB5BD-\\uB5D7\\uB5D9-\\uB5F3\\uB5F5-\\uB60F\\uB611-\\uB62B\\uB62D-\\uB647\\uB649-\\uB663\\uB665-\\uB67F\\uB681-\\uB69B\\uB69D-\\uB6B7\\uB6B9-\\uB6D3\\uB6D5-\\uB6EF\\uB6F1-\\uB70B\\uB70D-\\uB727\\uB729-\\uB743\\uB745-\\uB75F\\uB761-\\uB77B\\uB77D-\\uB797\\uB799-\\uB7B3\\uB7B5-\\uB7CF\\uB7D1-\\uB7EB\\uB7ED-\\uB807\\uB809-\\uB823\\uB825-\\uB83F\\uB841-\\uB85B\\uB85D-\\uB877\\uB879-\\uB893\\uB895-\\uB8AF\\uB8B1-\\uB8CB\\uB8CD-\\uB8E7\\uB8E9-\\uB903\\uB905-\\uB91F\\uB921-\\uB93B\\uB93D-\\uB957\\uB959-\\uB973\\uB975-\\uB98F\\uB991-\\uB9AB\\uB9AD-\\uB9C7\\uB9C9-\\uB9E3\\uB9E5-\\uB9FF\\uBA01-\\uBA1B\\uBA1D-\\uBA37\\uBA39-\\uBA53\\uBA55-\\uBA6F\\uBA71-\\uBA8B\\uBA8D-\\uBAA7\\uBAA9-\\uBAC3\\uBAC5-\\uBADF\\uBAE1-\\uBAFB\\uBAFD-\\uBB17\\uBB19-\\uBB33\\uBB35-\\uBB4F\\uBB51-\\uBB6B\\uBB6D-\\uBB87\\uBB89-\\uBBA3\\uBBA5-\\uBBBF\\uBBC1-\\uBBDB\\uBBDD-\\uBBF7\\uBBF9-\\uBC13\\uBC15-\\uBC2F\\uBC31-\\uBC4B\\uBC4D-\\uBC67\\uBC69-\\uBC83\\uBC85-\\uBC9F\\uBCA1-\\uBCBB\\uBCBD-\\uBCD7\\uBCD9-\\uBCF3\\uBCF5-\\uBD0F\\uBD11-\\uBD2B\\uBD2D-\\uBD47\\uBD49-\\uBD63\\uBD65-\\uBD7F\\uBD81-\\uBD9B\\uBD9D-\\uBDB7\\uBDB9-\\uBDD3\\uBDD5-\\uBDEF\\uBDF1-\\uBE0B\\uBE0D-\\uBE27\\uBE29-\\uBE43\\uBE45-\\uBE5F\\uBE61-\\uBE7B\\uBE7D-\\uBE97\\uBE99-\\uBEB3\\uBEB5-\\uBECF\\uBED1-\\uBEEB\\uBEED-\\uBF07\\uBF09-\\uBF23\\uBF25-\\uBF3F\\uBF41-\\uBF5B\\uBF5D-\\uBF77\\uBF79-\\uBF93\\uBF95-\\uBFAF\\uBFB1-\\uBFCB\\uBFCD-\\uBFE7\\uBFE9-\\uC003\\uC005-\\uC01F\\uC021-\\uC03B\\uC03D-\\uC057\\uC059-\\uC073\\uC075-\\uC08F\\uC091-\\uC0AB\\uC0AD-\\uC0C7\\uC0C9-\\uC0E3\\uC0E5-\\uC0FF\\uC101-\\uC11B\\uC11D-\\uC137\\uC139-\\uC153\\uC155-\\uC16F\\uC171-\\uC18B\\uC18D-\\uC1A7\\uC1A9-\\uC1C3\\uC1C5-\\uC1DF\\uC1E1-\\uC1FB\\uC1FD-\\uC217\\uC219-\\uC233\\uC235-\\uC24F\\uC251-\\uC26B\\uC26D-\\uC287\\uC289-\\uC2A3\\uC2A5-\\uC2BF\\uC2C1-\\uC2DB\\uC2DD-\\uC2F7\\uC2F9-\\uC313\\uC315-\\uC32F\\uC331-\\uC34B\\uC34D-\\uC367\\uC369-\\uC383\\uC385-\\uC39F\\uC3A1-\\uC3BB\\uC3BD-\\uC3D7\\uC3D9-\\uC3F3\\uC3F5-\\uC40F\\uC411-\\uC42B\\uC42D-\\uC447\\uC449-\\uC463\\uC465-\\uC47F\\uC481-\\uC49B\\uC49D-\\uC4B7\\uC4B9-\\uC4D3\\uC4D5-\\uC4EF\\uC4F1-\\uC50B\\uC50D-\\uC527\\uC529-\\uC543\\uC545-\\uC55F\\uC561-\\uC57B\\uC57D-\\uC597\\uC599-\\uC5B3\\uC5B5-\\uC5CF\\uC5D1-\\uC5EB\\uC5ED-\\uC607\\uC609-\\uC623\\uC625-\\uC63F\\uC641-\\uC65B\\uC65D-\\uC677\\uC679-\\uC693\\uC695-\\uC6AF\\uC6B1-\\uC6CB\\uC6CD-\\uC6E7\\uC6E9-\\uC703\\uC705-\\uC71F\\uC721-\\uC73B\\uC73D-\\uC757\\uC759-\\uC773\\uC775-\\uC78F\\uC791-\\uC7AB\\uC7AD-\\uC7C7\\uC7C9-\\uC7E3\\uC7E5-\\uC7FF\\uC801-\\uC81B\\uC81D-\\uC837\\uC839-\\uC853\\uC855-\\uC86F\\uC871-\\uC88B\\uC88D-\\uC8A7\\uC8A9-\\uC8C3\\uC8C5-\\uC8DF\\uC8E1-\\uC8FB\\uC8FD-\\uC917\\uC919-\\uC933\\uC935-\\uC94F\\uC951-\\uC96B\\uC96D-\\uC987\\uC989-\\uC9A3\\uC9A5-\\uC9BF\\uC9C1-\\uC9DB\\uC9DD-\\uC9F7\\uC9F9-\\uCA13\\uCA15-\\uCA2F\\uCA31-\\uCA4B\\uCA4D-\\uCA67\\uCA69-\\uCA83\\uCA85-\\uCA9F\\uCAA1-\\uCABB\\uCABD-\\uCAD7\\uCAD9-\\uCAF3\\uCAF5-\\uCB0F\\uCB11-\\uCB2B\\uCB2D-\\uCB47\\uCB49-\\uCB63\\uCB65-\\uCB7F\\uCB81-\\uCB9B\\uCB9D-\\uCBB7\\uCBB9-\\uCBD3\\uCBD5-\\uCBEF\\uCBF1-\\uCC0B\\uCC0D-\\uCC27\\uCC29-\\uCC43\\uCC45-\\uCC5F\\uCC61-\\uCC7B\\uCC7D-\\uCC97\\uCC99-\\uCCB3\\uCCB5-\\uCCCF\\uCCD1-\\uCCEB\\uCCED-\\uCD07\\uCD09-\\uCD23\\uCD25-\\uCD3F\\uCD41-\\uCD5B\\uCD5D-\\uCD77\\uCD79-\\uCD93\\uCD95-\\uCDAF\\uCDB1-\\uCDCB\\uCDCD-\\uCDE7\\uCDE9-\\uCE03\\uCE05-\\uCE1F\\uCE21-\\uCE3B\\uCE3D-\\uCE57\\uCE59-\\uCE73\\uCE75-\\uCE8F\\uCE91-\\uCEAB\\uCEAD-\\uCEC7\\uCEC9-\\uCEE3\\uCEE5-\\uCEFF\\uCF01-\\uCF1B\\uCF1D-\\uCF37\\uCF39-\\uCF53\\uCF55-\\uCF6F\\uCF71-\\uCF8B\\uCF8D-\\uCFA7\\uCFA9-\\uCFC3\\uCFC5-\\uCFDF\\uCFE1-\\uCFFB\\uCFFD-\\uD017\\uD019-\\uD033\\uD035-\\uD04F\\uD051-\\uD06B\\uD06D-\\uD087\\uD089-\\uD0A3\\uD0A5-\\uD0BF\\uD0C1-\\uD0DB\\uD0DD-\\uD0F7\\uD0F9-\\uD113\\uD115-\\uD12F\\uD131-\\uD14B\\uD14D-\\uD167\\uD169-\\uD183\\uD185-\\uD19F\\uD1A1-\\uD1BB\\uD1BD-\\uD1D7\\uD1D9-\\uD1F3\\uD1F5-\\uD20F\\uD211-\\uD22B\\uD22D-\\uD247\\uD249-\\uD263\\uD265-\\uD27F\\uD281-\\uD29B\\uD29D-\\uD2B7\\uD2B9-\\uD2D3\\uD2D5-\\uD2EF\\uD2F1-\\uD30B\\uD30D-\\uD327\\uD329-\\uD343\\uD345-\\uD35F\\uD361-\\uD37B\\uD37D-\\uD397\\uD399-\\uD3B3\\uD3B5-\\uD3CF\\uD3D1-\\uD3EB\\uD3ED-\\uD407\\uD409-\\uD423\\uD425-\\uD43F\\uD441-\\uD45B\\uD45D-\\uD477\\uD479-\\uD493\\uD495-\\uD4AF\\uD4B1-\\uD4CB\\uD4CD-\\uD4E7\\uD4E9-\\uD503\\uD505-\\uD51F\\uD521-\\uD53B\\uD53D-\\uD557\\uD559-\\uD573\\uD575-\\uD58F\\uD591-\\uD5AB\\uD5AD-\\uD5C7\\uD5C9-\\uD5E3\\uD5E5-\\uD5FF\\uD601-\\uD61B\\uD61D-\\uD637\\uD639-\\uD653\\uD655-\\uD66F\\uD671-\\uD68B\\uD68D-\\uD6A7\\uD6A9-\\uD6C3\\uD6C5-\\uD6DF\\uD6E1-\\uD6FB\\uD6FD-\\uD717\\uD719-\\uD733\\uD735-\\uD74F\\uD751-\\uD76B\\uD76D-\\uD787\\uD789-\\uD7A3]$/;\nvar reExtPict = /^(?:[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u2388\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2605\\u2607-\\u2612\\u2614-\\u2685\\u2690-\\u2705\\u2708-\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763-\\u2767\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC00-\\uDCFF\\uDD0D-\\uDD0F\\uDD2F\\uDD6C-\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDAD-\\uDDE5\\uDE01-\\uDE0F\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE3C-\\uDE3F\\uDE49-\\uDFFA]|\\uD83D[\\uDC00-\\uDD3D\\uDD46-\\uDE4F\\uDE80-\\uDEFF\\uDF74-\\uDF7F\\uDFD5-\\uDFFF]|\\uD83E[\\uDC0C-\\uDC0F\\uDC48-\\uDC4F\\uDC5A-\\uDC5F\\uDC88-\\uDC8F\\uDCAE-\\uDCFF\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDEFF]|\\uD83F[\\uDC00-\\uDFFD])$/;\nvar getCodepointType = (char, code) => {\n var type = CodepointType.Any;\n if (char.search(reExtend) !== -1) {\n type |= CodepointType.Extend;\n }\n if (code === 0x200d) {\n type |= CodepointType.ZWJ;\n }\n if (code >= 0x1f1e6 && code <= 0x1f1ff) {\n type |= CodepointType.RI;\n }\n if (char.search(rePrepend) !== -1) {\n type |= CodepointType.Prepend;\n }\n if (char.search(reSpacingMark) !== -1) {\n type |= CodepointType.SpacingMark;\n }\n if (char.search(reL) !== -1) {\n type |= CodepointType.L;\n }\n if (char.search(reV) !== -1) {\n type |= CodepointType.V;\n }\n if (char.search(reT) !== -1) {\n type |= CodepointType.T;\n }\n if (char.search(reLV) !== -1) {\n type |= CodepointType.LV;\n }\n if (char.search(reLVT) !== -1) {\n type |= CodepointType.LVT;\n }\n if (char.search(reExtPict) !== -1) {\n type |= CodepointType.ExtPict;\n }\n return type;\n};\nfunction intersects(x, y) {\n return (x & y) !== 0;\n}\nvar NonBoundaryPairs = [\n// GB6\n[CodepointType.L, CodepointType.L | CodepointType.V | CodepointType.LV | CodepointType.LVT],\n// GB7\n[CodepointType.LV | CodepointType.V, CodepointType.V | CodepointType.T],\n// GB8\n[CodepointType.LVT | CodepointType.T, CodepointType.T],\n// GB9\n[CodepointType.Any, CodepointType.Extend | CodepointType.ZWJ],\n// GB9a\n[CodepointType.Any, CodepointType.SpacingMark],\n// GB9b\n[CodepointType.Prepend, CodepointType.Any],\n// GB11\n[CodepointType.ZWJ, CodepointType.ExtPict],\n// GB12 and GB13\n[CodepointType.RI, CodepointType.RI]];\nfunction isBoundaryPair(left, right) {\n return NonBoundaryPairs.findIndex(r => intersects(left, r[0]) && intersects(right, r[1])) === -1;\n}\nvar endingEmojiZWJ = /(?:[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u2388\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2605\\u2607-\\u2612\\u2614-\\u2685\\u2690-\\u2705\\u2708-\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763-\\u2767\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC00-\\uDCFF\\uDD0D-\\uDD0F\\uDD2F\\uDD6C-\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDAD-\\uDDE5\\uDE01-\\uDE0F\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE3C-\\uDE3F\\uDE49-\\uDFFA]|\\uD83D[\\uDC00-\\uDD3D\\uDD46-\\uDE4F\\uDE80-\\uDEFF\\uDF74-\\uDF7F\\uDFD5-\\uDFFF]|\\uD83E[\\uDC0C-\\uDC0F\\uDC48-\\uDC4F\\uDC5A-\\uDC5F\\uDC88-\\uDC8F\\uDCAE-\\uDCFF\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDEFF]|\\uD83F[\\uDC00-\\uDFFD])(?:[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0898-\\u089F\\u08CA-\\u08E1\\u08E3-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09BE\\u09C1-\\u09C4\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01\\u0B3C\\u0B3E\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE\\u0BC0\\u0BCD\\u0BD7\\u0C00\\u0C04\\u0C3C\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81\\u0CBC\\u0CBF\\u0CC2\\u0CC6\\u0CCC\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D00\\u0D01\\u0D3B\\u0D3C\\u0D3E\\u0D41-\\u0D44\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81\\u0DCA\\u0DCF\\u0DD2-\\u0DD4\\u0DD6\\u0DDF\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732\\u1733\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A1B\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B03\\u1B34-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB-\\u1BAD\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DFF\\u200C\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA82C\\uA8C4\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uA9BD\\uA9E5\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAA7C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFF9E\\uFF9F]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC01\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC81\\uDCB3-\\uDCB6\\uDCB9\\uDCBA\\uDCC2\\uDD00-\\uDD02\\uDD27-\\uDD2B\\uDD2D-\\uDD34\\uDD73\\uDD80\\uDD81\\uDDB6-\\uDDBE\\uDDC9-\\uDDCC\\uDDCF\\uDE2F-\\uDE31\\uDE34\\uDE36\\uDE37\\uDE3E\\uDE41\\uDEDF\\uDEE3-\\uDEEA\\uDF00\\uDF01\\uDF3B\\uDF3C\\uDF3E\\uDF40\\uDF57\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC38-\\uDC3F\\uDC42-\\uDC44\\uDC46\\uDC5E\\uDCB0\\uDCB3-\\uDCB8\\uDCBA\\uDCBD\\uDCBF\\uDCC0\\uDCC2\\uDCC3\\uDDAF\\uDDB2-\\uDDB5\\uDDBC\\uDDBD\\uDDBF\\uDDC0\\uDDDC\\uDDDD\\uDE33-\\uDE3A\\uDE3D\\uDE3F\\uDE40\\uDEAB\\uDEAD\\uDEB0-\\uDEB5\\uDEB7\\uDF1D-\\uDF1F\\uDF22-\\uDF25\\uDF27-\\uDF2B]|\\uD806[\\uDC2F-\\uDC37\\uDC39\\uDC3A\\uDD30\\uDD3B\\uDD3C\\uDD3E\\uDD43\\uDDD4-\\uDDD7\\uDDDA\\uDDDB\\uDDE0\\uDE01-\\uDE0A\\uDE33-\\uDE38\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE56\\uDE59-\\uDE5B\\uDE8A-\\uDE96\\uDE98\\uDE99]|\\uD807[\\uDC30-\\uDC36\\uDC38-\\uDC3D\\uDC3F\\uDC92-\\uDCA7\\uDCAA-\\uDCB0\\uDCB2\\uDCB3\\uDCB5\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD90\\uDD91\\uDD95\\uDD97\\uDEF3\\uDEF4\\uDF00\\uDF01\\uDF36-\\uDF3A\\uDF40\\uDF42]|\\uD80D[\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF8F-\\uDF92\\uDFE4]|\\uD82F[\\uDC9D\\uDC9E]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65\\uDD67-\\uDD69\\uDD6E-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*\\u200D$/;\nvar endsWithEmojiZWJ = str => {\n return str.search(endingEmojiZWJ) !== -1;\n};\nvar endingRIs = /(?:\\uD83C[\\uDDE6-\\uDDFF])+$/g;\nvar endsWithOddNumberOfRIs = str => {\n var match = str.match(endingRIs);\n if (match === null) {\n return false;\n } else {\n // A RI is represented by a surrogate pair.\n var numRIs = match[0].length / 2;\n return numRIs % 2 === 1;\n }\n};\n\n// eslint-disable-next-line no-redeclare\nvar TextTransforms = {\n delete(editor, options) {\n editor.delete(options);\n },\n insertFragment(editor, fragment, options) {\n editor.insertFragment(fragment, options);\n },\n insertText(editor, text) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n voids = false\n } = options;\n var {\n at = getDefaultInsertLocation(editor)\n } = options;\n if (Path.isPath(at)) {\n at = Editor.range(editor, at);\n }\n if (Range.isRange(at)) {\n if (Range.isCollapsed(at)) {\n at = at.anchor;\n } else {\n var end = Range.end(at);\n if (!voids && Editor.void(editor, {\n at: end\n })) {\n return;\n }\n var start = Range.start(at);\n var startRef = Editor.pointRef(editor, start);\n var endRef = Editor.pointRef(editor, end);\n Transforms.delete(editor, {\n at,\n voids\n });\n var startPoint = startRef.unref();\n var endPoint = endRef.unref();\n at = startPoint || endPoint;\n Transforms.setSelection(editor, {\n anchor: at,\n focus: at\n });\n }\n }\n if (!voids && Editor.void(editor, {\n at\n }) || Editor.elementReadOnly(editor, {\n at\n })) {\n return;\n }\n var {\n path,\n offset\n } = at;\n if (text.length > 0) editor.apply({\n type: 'insert_text',\n path,\n offset,\n text\n });\n });\n }\n};\n\nfunction ownKeys$9(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$9(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$9(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$9(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar Transforms = _objectSpread$9(_objectSpread$9(_objectSpread$9(_objectSpread$9({}, GeneralTransforms), NodeTransforms), SelectionTransforms), TextTransforms);\n\n// perf\nvar BATCHING_DIRTY_PATHS = new WeakMap();\nvar isBatchingDirtyPaths = editor => {\n return BATCHING_DIRTY_PATHS.get(editor) || false;\n};\nvar batchDirtyPaths = (editor, fn, update) => {\n var value = BATCHING_DIRTY_PATHS.get(editor) || false;\n BATCHING_DIRTY_PATHS.set(editor, true);\n try {\n fn();\n update();\n } finally {\n BATCHING_DIRTY_PATHS.set(editor, value);\n }\n};\n\n/**\n * update editor dirty paths\n *\n * @param newDirtyPaths: Path[]; new dirty paths\n * @param transform: (p: Path) => Path | null; how to transform existing dirty paths\n */\nfunction updateDirtyPaths(editor, newDirtyPaths, transform) {\n var oldDirtyPaths = DIRTY_PATHS.get(editor) || [];\n var oldDirtyPathKeys = DIRTY_PATH_KEYS.get(editor) || new Set();\n var dirtyPaths;\n var dirtyPathKeys;\n var add = path => {\n if (path) {\n var key = path.join(',');\n if (!dirtyPathKeys.has(key)) {\n dirtyPathKeys.add(key);\n dirtyPaths.push(path);\n }\n }\n };\n if (transform) {\n dirtyPaths = [];\n dirtyPathKeys = new Set();\n for (var path of oldDirtyPaths) {\n var newPath = transform(path);\n add(newPath);\n }\n } else {\n dirtyPaths = oldDirtyPaths;\n dirtyPathKeys = oldDirtyPathKeys;\n }\n for (var _path of newDirtyPaths) {\n add(_path);\n }\n DIRTY_PATHS.set(editor, dirtyPaths);\n DIRTY_PATH_KEYS.set(editor, dirtyPathKeys);\n}\n\nvar apply = (editor, op) => {\n for (var ref of Editor.pathRefs(editor)) {\n PathRef.transform(ref, op);\n }\n for (var _ref of Editor.pointRefs(editor)) {\n PointRef.transform(_ref, op);\n }\n for (var _ref2 of Editor.rangeRefs(editor)) {\n RangeRef.transform(_ref2, op);\n }\n // update dirty paths\n if (!isBatchingDirtyPaths(editor)) {\n var transform = Path.operationCanTransformPath(op) ? p => Path.transform(p, op) : undefined;\n updateDirtyPaths(editor, editor.getDirtyPaths(op), transform);\n }\n Transforms.transform(editor, op);\n editor.operations.push(op);\n Editor.normalize(editor, {\n operation: op\n });\n // Clear any formats applied to the cursor if the selection changes.\n if (op.type === 'set_selection') {\n editor.marks = null;\n }\n if (!FLUSHING.get(editor)) {\n FLUSHING.set(editor, true);\n Promise.resolve().then(() => {\n FLUSHING.set(editor, false);\n editor.onChange({\n operation: op\n });\n editor.operations = [];\n });\n }\n};\n\n/**\n * Get the \"dirty\" paths generated from an operation.\n */\nvar getDirtyPaths = (editor, op) => {\n switch (op.type) {\n case 'insert_text':\n case 'remove_text':\n case 'set_node':\n {\n var {\n path\n } = op;\n return Path.levels(path);\n }\n case 'insert_node':\n {\n var {\n node,\n path: _path\n } = op;\n var levels = Path.levels(_path);\n var descendants = Text.isText(node) ? [] : Array.from(Node.nodes(node), _ref => {\n var [, p] = _ref;\n return _path.concat(p);\n });\n return [...levels, ...descendants];\n }\n case 'merge_node':\n {\n var {\n path: _path2\n } = op;\n var ancestors = Path.ancestors(_path2);\n var previousPath = Path.previous(_path2);\n return [...ancestors, previousPath];\n }\n case 'move_node':\n {\n var {\n path: _path3,\n newPath\n } = op;\n if (Path.equals(_path3, newPath)) {\n return [];\n }\n var oldAncestors = [];\n var newAncestors = [];\n for (var ancestor of Path.ancestors(_path3)) {\n var p = Path.transform(ancestor, op);\n oldAncestors.push(p);\n }\n for (var _ancestor of Path.ancestors(newPath)) {\n var _p = Path.transform(_ancestor, op);\n newAncestors.push(_p);\n }\n var newParent = newAncestors[newAncestors.length - 1];\n var newIndex = newPath[newPath.length - 1];\n var resultPath = newParent.concat(newIndex);\n return [...oldAncestors, ...newAncestors, resultPath];\n }\n case 'remove_node':\n {\n var {\n path: _path4\n } = op;\n var _ancestors = Path.ancestors(_path4);\n return [..._ancestors];\n }\n case 'split_node':\n {\n var {\n path: _path5\n } = op;\n var _levels = Path.levels(_path5);\n var nextPath = Path.next(_path5);\n return [..._levels, nextPath];\n }\n default:\n {\n return [];\n }\n }\n};\n\nvar getFragment = editor => {\n var {\n selection\n } = editor;\n if (selection) {\n return Node.fragment(editor, selection);\n }\n return [];\n};\n\nvar normalizeNode = (editor, entry, options) => {\n var [node, path] = entry;\n // There are no core normalizations for text nodes.\n if (Text.isText(node)) {\n return;\n }\n // Ensure that block and inline nodes have at least one text child.\n if (Element.isElement(node) && node.children.length === 0) {\n var child = {\n text: ''\n };\n Transforms.insertNodes(editor, child, {\n at: path.concat(0),\n voids: true\n });\n return;\n }\n // Determine whether the node should have block or inline children.\n var shouldHaveInlines = Editor.isEditor(node) ? false : Element.isElement(node) && (editor.isInline(node) || node.children.length === 0 || Text.isText(node.children[0]) || editor.isInline(node.children[0]));\n // Since we'll be applying operations while iterating, keep track of an\n // index that accounts for any added/removed nodes.\n var n = 0;\n for (var i = 0; i < node.children.length; i++, n++) {\n var currentNode = Node.get(editor, path);\n if (Text.isText(currentNode)) continue;\n var _child = currentNode.children[n];\n var prev = currentNode.children[n - 1];\n var isLast = i === node.children.length - 1;\n var isInlineOrText = Text.isText(_child) || Element.isElement(_child) && editor.isInline(_child);\n // Only allow block nodes in the top-level children and parent blocks\n // that only contain block nodes. Similarly, only allow inline nodes in\n // other inline nodes, or parent blocks that only contain inlines and\n // text.\n if (isInlineOrText !== shouldHaveInlines) {\n if (isInlineOrText) {\n if (options !== null && options !== void 0 && options.fallbackElement) {\n Transforms.wrapNodes(editor, options.fallbackElement(), {\n at: path.concat(n),\n voids: true\n });\n } else {\n Transforms.removeNodes(editor, {\n at: path.concat(n),\n voids: true\n });\n }\n } else {\n Transforms.unwrapNodes(editor, {\n at: path.concat(n),\n voids: true\n });\n }\n n--;\n } else if (Element.isElement(_child)) {\n // Ensure that inline nodes are surrounded by text nodes.\n if (editor.isInline(_child)) {\n if (prev == null || !Text.isText(prev)) {\n var newChild = {\n text: ''\n };\n Transforms.insertNodes(editor, newChild, {\n at: path.concat(n),\n voids: true\n });\n n++;\n } else if (isLast) {\n var _newChild = {\n text: ''\n };\n Transforms.insertNodes(editor, _newChild, {\n at: path.concat(n + 1),\n voids: true\n });\n n++;\n }\n }\n } else {\n // If the child is not a text node, and doesn't have a `children` field,\n // then we have an invalid node that will upset slate.\n //\n // eg: `{ type: 'some_node' }`.\n //\n // To prevent slate from breaking, we can add the `children` field,\n // and now that it is valid, we can to many more operations easily,\n // such as extend normalizers to fix erronous structure.\n if (!Text.isText(_child) && !('children' in _child)) {\n var elementChild = _child;\n elementChild.children = [];\n }\n // Merge adjacent text nodes that are empty or match.\n if (prev != null && Text.isText(prev)) {\n if (Text.equals(_child, prev, {\n loose: true\n })) {\n Transforms.mergeNodes(editor, {\n at: path.concat(n),\n voids: true\n });\n n--;\n } else if (prev.text === '') {\n Transforms.removeNodes(editor, {\n at: path.concat(n - 1),\n voids: true\n });\n n--;\n } else if (_child.text === '') {\n Transforms.removeNodes(editor, {\n at: path.concat(n),\n voids: true\n });\n n--;\n }\n }\n }\n }\n};\n\nvar shouldNormalize = (editor, _ref) => {\n var {\n iteration,\n initialDirtyPathsLength\n } = _ref;\n var maxIterations = initialDirtyPathsLength * 42; // HACK: better way?\n if (iteration > maxIterations) {\n throw new Error(\"Could not completely normalize the editor after \".concat(maxIterations, \" iterations! This is usually due to incorrect normalization logic that leaves a node in an invalid state.\"));\n }\n return true;\n};\n\nvar above = function above(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n voids = false,\n mode = 'lowest',\n at = editor.selection,\n match\n } = options;\n if (!at) {\n return;\n }\n var path = Editor.path(editor, at);\n // If `at` is a Range that spans mulitple nodes, `path` will be their common ancestor.\n // Otherwise `path` will be a text node and/or the same as `at`, in which cases we want to start with its parent.\n if (!Range.isRange(at) || Path.equals(at.focus.path, at.anchor.path)) {\n if (path.length === 0) return;\n path = Path.parent(path);\n }\n var reverse = mode === 'lowest';\n var [firstMatch] = Editor.levels(editor, {\n at: path,\n voids,\n match,\n reverse\n });\n return firstMatch; // if nothing matches this returns undefined\n};\n\nfunction ownKeys$8(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$8(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$8(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$8(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar addMark = (editor, key, value) => {\n var {\n selection\n } = editor;\n if (selection) {\n var match = (node, path) => {\n if (!Text.isText(node)) {\n return false; // marks can only be applied to text\n }\n\n var [parentNode, parentPath] = Editor.parent(editor, path);\n return !editor.isVoid(parentNode) || editor.markableVoid(parentNode);\n };\n var expandedSelection = Range.isExpanded(selection);\n var markAcceptingVoidSelected = false;\n if (!expandedSelection) {\n var [selectedNode, selectedPath] = Editor.node(editor, selection);\n if (selectedNode && match(selectedNode, selectedPath)) {\n var [parentNode] = Editor.parent(editor, selectedPath);\n markAcceptingVoidSelected = parentNode && editor.markableVoid(parentNode);\n }\n }\n if (expandedSelection || markAcceptingVoidSelected) {\n Transforms.setNodes(editor, {\n [key]: value\n }, {\n match,\n split: true,\n voids: true\n });\n } else {\n var marks = _objectSpread$8(_objectSpread$8({}, Editor.marks(editor) || {}), {}, {\n [key]: value\n });\n editor.marks = marks;\n if (!FLUSHING.get(editor)) {\n editor.onChange();\n }\n }\n }\n};\n\nfunction ownKeys$7(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$7(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$7(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$7(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar after = function after(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var anchor = Editor.point(editor, at, {\n edge: 'end'\n });\n var focus = Editor.end(editor, []);\n var range = {\n anchor,\n focus\n };\n var {\n distance = 1\n } = options;\n var d = 0;\n var target;\n for (var p of Editor.positions(editor, _objectSpread$7(_objectSpread$7({}, options), {}, {\n at: range\n }))) {\n if (d > distance) {\n break;\n }\n if (d !== 0) {\n target = p;\n }\n d++;\n }\n return target;\n};\n\nfunction ownKeys$6(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$6(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$6(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar before = function before(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var anchor = Editor.start(editor, []);\n var focus = Editor.point(editor, at, {\n edge: 'start'\n });\n var range = {\n anchor,\n focus\n };\n var {\n distance = 1\n } = options;\n var d = 0;\n var target;\n for (var p of Editor.positions(editor, _objectSpread$6(_objectSpread$6({}, options), {}, {\n at: range,\n reverse: true\n }))) {\n if (d > distance) {\n break;\n }\n if (d !== 0) {\n target = p;\n }\n d++;\n }\n return target;\n};\n\nvar deleteBackward = (editor, unit) => {\n var {\n selection\n } = editor;\n if (selection && Range.isCollapsed(selection)) {\n Transforms.delete(editor, {\n unit,\n reverse: true\n });\n }\n};\n\nvar deleteForward = (editor, unit) => {\n var {\n selection\n } = editor;\n if (selection && Range.isCollapsed(selection)) {\n Transforms.delete(editor, {\n unit\n });\n }\n};\n\nvar deleteFragment = function deleteFragment(editor) {\n var {\n direction = 'forward'\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n selection\n } = editor;\n if (selection && Range.isExpanded(selection)) {\n Transforms.delete(editor, {\n reverse: direction === 'backward'\n });\n }\n};\n\nvar edges = (editor, at) => {\n return [Editor.start(editor, at), Editor.end(editor, at)];\n};\n\nfunction ownKeys$5(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$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar elementReadOnly = function elementReadOnly(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Editor.above(editor, _objectSpread$5(_objectSpread$5({}, options), {}, {\n match: n => Element.isElement(n) && Editor.isElementReadOnly(editor, n)\n }));\n};\n\nvar end = (editor, at) => {\n return Editor.point(editor, at, {\n edge: 'end'\n });\n};\n\nvar first = (editor, at) => {\n var path = Editor.path(editor, at, {\n edge: 'start'\n });\n return Editor.node(editor, path);\n};\n\nvar fragment = (editor, at) => {\n var range = Editor.range(editor, at);\n return Node.fragment(editor, range);\n};\n\nfunction ownKeys$4(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$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar getVoid = function getVoid(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Editor.above(editor, _objectSpread$4(_objectSpread$4({}, options), {}, {\n match: n => Element.isElement(n) && Editor.isVoid(editor, n)\n }));\n};\n\nvar hasBlocks = (editor, element) => {\n return element.children.some(n => Element.isElement(n) && Editor.isBlock(editor, n));\n};\n\nvar hasInlines = (editor, element) => {\n return element.children.some(n => Text.isText(n) || Editor.isInline(editor, n));\n};\n\nvar hasPath = (editor, path) => {\n return Node.has(editor, path);\n};\n\nvar hasTexts = (editor, element) => {\n return element.children.every(n => Text.isText(n));\n};\n\nvar insertBreak = editor => {\n Transforms.splitNodes(editor, {\n always: true\n });\n};\n\nvar insertNode = (editor, node, options) => {\n Transforms.insertNodes(editor, node, options);\n};\n\nvar insertSoftBreak = editor => {\n Transforms.splitNodes(editor, {\n always: true\n });\n};\n\nfunction ownKeys$3(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$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar insertText = function insertText(editor, text) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n selection,\n marks\n } = editor;\n if (selection) {\n if (marks) {\n var node = _objectSpread$3({\n text\n }, marks);\n Transforms.insertNodes(editor, node, {\n at: options.at,\n voids: options.voids\n });\n } else {\n Transforms.insertText(editor, text, options);\n }\n editor.marks = null;\n }\n};\n\nvar isBlock = (editor, value) => {\n return !editor.isInline(value);\n};\n\nvar isEdge = (editor, point, at) => {\n return Editor.isStart(editor, point, at) || Editor.isEnd(editor, point, at);\n};\n\nvar isEmpty = (editor, element) => {\n var {\n children\n } = element;\n var [first] = children;\n return children.length === 0 || children.length === 1 && Text.isText(first) && first.text === '' && !editor.isVoid(element);\n};\n\nvar isEnd = (editor, point, at) => {\n var end = Editor.end(editor, at);\n return Point.equals(point, end);\n};\n\nvar isNormalizing = editor => {\n var isNormalizing = NORMALIZING.get(editor);\n return isNormalizing === undefined ? true : isNormalizing;\n};\n\nvar isStart = (editor, point, at) => {\n // PERF: If the offset isn't `0` we know it's not the start.\n if (point.offset !== 0) {\n return false;\n }\n var start = Editor.start(editor, at);\n return Point.equals(point, start);\n};\n\nvar last = (editor, at) => {\n var path = Editor.path(editor, at, {\n edge: 'end'\n });\n return Editor.node(editor, path);\n};\n\nvar leaf = function leaf(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var path = Editor.path(editor, at, options);\n var node = Node.leaf(editor, path);\n return [node, path];\n};\n\nfunction levels(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function* () {\n var {\n at = editor.selection,\n reverse = false,\n voids = false\n } = options;\n var {\n match\n } = options;\n if (match == null) {\n match = () => true;\n }\n if (!at) {\n return;\n }\n var levels = [];\n var path = Editor.path(editor, at);\n for (var [n, p] of Node.levels(editor, path)) {\n if (!match(n, p)) {\n continue;\n }\n levels.push([n, p]);\n if (!voids && Element.isElement(n) && Editor.isVoid(editor, n)) {\n break;\n }\n }\n if (reverse) {\n levels.reverse();\n }\n yield* levels;\n }();\n}\n\nvar _excluded$1 = [\"text\"],\n _excluded2$1 = [\"text\"];\nvar marks = function marks(editor) {\n var {\n marks,\n selection\n } = editor;\n if (!selection) {\n return null;\n }\n var {\n anchor,\n focus\n } = selection;\n if (marks) {\n return marks;\n }\n if (Range.isExpanded(selection)) {\n var isBackward = Range.isBackward(selection);\n if (isBackward) {\n [focus, anchor] = [anchor, focus];\n }\n /**\n * COMPAT: Make sure hanging ranges (caused by double clicking in Firefox)\n * do not adversely affect the returned marks.\n */\n var isEnd = Editor.isEnd(editor, anchor, anchor.path);\n if (isEnd) {\n var after = Editor.after(editor, anchor);\n if (after) {\n anchor = after;\n }\n }\n var [match] = Editor.nodes(editor, {\n match: Text.isText,\n at: {\n anchor,\n focus\n }\n });\n if (match) {\n var [_node] = match;\n var _rest = _objectWithoutProperties(_node, _excluded$1);\n return _rest;\n } else {\n return {};\n }\n }\n var {\n path\n } = anchor;\n var [node] = Editor.leaf(editor, path);\n if (anchor.offset === 0) {\n var prev = Editor.previous(editor, {\n at: path,\n match: Text.isText\n });\n var markedVoid = Editor.above(editor, {\n match: n => Element.isElement(n) && Editor.isVoid(editor, n) && editor.markableVoid(n)\n });\n if (!markedVoid) {\n var block = Editor.above(editor, {\n match: n => Element.isElement(n) && Editor.isBlock(editor, n)\n });\n if (prev && block) {\n var [prevNode, prevPath] = prev;\n var [, blockPath] = block;\n if (Path.isAncestor(blockPath, prevPath)) {\n node = prevNode;\n }\n }\n }\n }\n var rest = _objectWithoutProperties(node, _excluded2$1);\n return rest;\n};\n\nvar next = function next(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n mode = 'lowest',\n voids = false\n } = options;\n var {\n match,\n at = editor.selection\n } = options;\n if (!at) {\n return;\n }\n var pointAfterLocation = Editor.after(editor, at, {\n voids\n });\n if (!pointAfterLocation) return;\n var [, to] = Editor.last(editor, []);\n var span = [pointAfterLocation.path, to];\n if (Path.isPath(at) && at.length === 0) {\n throw new Error(\"Cannot get the next node from the root node!\");\n }\n if (match == null) {\n if (Path.isPath(at)) {\n var [parent] = Editor.parent(editor, at);\n match = n => parent.children.includes(n);\n } else {\n match = () => true;\n }\n }\n var [next] = Editor.nodes(editor, {\n at: span,\n match,\n mode,\n voids\n });\n return next;\n};\n\nvar node = function node(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var path = Editor.path(editor, at, options);\n var node = Node.get(editor, path);\n return [node, path];\n};\n\nfunction nodes(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function* () {\n var {\n at = editor.selection,\n mode = 'all',\n universal = false,\n reverse = false,\n voids = false,\n pass: _pass\n } = options;\n var {\n match\n } = options;\n if (!match) {\n match = () => true;\n }\n if (!at) {\n return;\n }\n var from;\n var to;\n if (Span.isSpan(at)) {\n from = at[0];\n to = at[1];\n } else {\n var first = Editor.path(editor, at, {\n edge: 'start'\n });\n var last = Editor.path(editor, at, {\n edge: 'end'\n });\n from = reverse ? last : first;\n to = reverse ? first : last;\n }\n var nodeEntries = Node.nodes(editor, {\n reverse,\n from,\n to,\n pass: _ref => {\n var [node, path] = _ref;\n if (_pass && _pass([node, path])) return true;\n if (!Element.isElement(node)) return false;\n if (!voids && (Editor.isVoid(editor, node) || Editor.isElementReadOnly(editor, node))) return true;\n return false;\n }\n });\n var matches = [];\n var hit;\n for (var [node, path] of nodeEntries) {\n var isLower = hit && Path.compare(path, hit[1]) === 0;\n // In highest mode any node lower than the last hit is not a match.\n if (mode === 'highest' && isLower) {\n continue;\n }\n if (!match(node, path)) {\n // If we've arrived at a leaf text node that is not lower than the last\n // hit, then we've found a branch that doesn't include a match, which\n // means the match is not universal.\n if (universal && !isLower && Text.isText(node)) {\n return;\n } else {\n continue;\n }\n }\n // If there's a match and it's lower than the last, update the hit.\n if (mode === 'lowest' && isLower) {\n hit = [node, path];\n continue;\n }\n // In lowest mode we emit the last hit, once it's guaranteed lowest.\n var emit = mode === 'lowest' ? hit : [node, path];\n if (emit) {\n if (universal) {\n matches.push(emit);\n } else {\n yield emit;\n }\n }\n hit = [node, path];\n }\n // Since lowest is always emitting one behind, catch up at the end.\n if (mode === 'lowest' && hit) {\n if (universal) {\n matches.push(hit);\n } else {\n yield hit;\n }\n }\n // Universal defers to ensure that the match occurs in every branch, so we\n // yield all of the matches after iterating.\n if (universal) {\n yield* matches;\n }\n }();\n}\n\nvar normalize = function normalize(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n force = false,\n operation\n } = options;\n var getDirtyPaths = editor => {\n return DIRTY_PATHS.get(editor) || [];\n };\n var getDirtyPathKeys = editor => {\n return DIRTY_PATH_KEYS.get(editor) || new Set();\n };\n var popDirtyPath = editor => {\n var path = getDirtyPaths(editor).pop();\n var key = path.join(',');\n getDirtyPathKeys(editor).delete(key);\n return path;\n };\n if (!Editor.isNormalizing(editor)) {\n return;\n }\n if (force) {\n var allPaths = Array.from(Node.nodes(editor), _ref => {\n var [, p] = _ref;\n return p;\n });\n var allPathKeys = new Set(allPaths.map(p => p.join(',')));\n DIRTY_PATHS.set(editor, allPaths);\n DIRTY_PATH_KEYS.set(editor, allPathKeys);\n }\n if (getDirtyPaths(editor).length === 0) {\n return;\n }\n Editor.withoutNormalizing(editor, () => {\n /*\n Fix dirty elements with no children.\n editor.normalizeNode() does fix this, but some normalization fixes also require it to work.\n Running an initial pass avoids the catch-22 race condition.\n */\n for (var dirtyPath of getDirtyPaths(editor)) {\n if (Node.has(editor, dirtyPath)) {\n var entry = Editor.node(editor, dirtyPath);\n var [node, _] = entry;\n /*\n The default normalizer inserts an empty text node in this scenario, but it can be customised.\n So there is some risk here.\n As long as the normalizer only inserts child nodes for this case it is safe to do in any order;\n by definition adding children to an empty node can't cause other paths to change.\n */\n if (Element.isElement(node) && node.children.length === 0) {\n editor.normalizeNode(entry, {\n operation\n });\n }\n }\n }\n var dirtyPaths = getDirtyPaths(editor);\n var initialDirtyPathsLength = dirtyPaths.length;\n var iteration = 0;\n while (dirtyPaths.length !== 0) {\n if (!editor.shouldNormalize({\n dirtyPaths,\n iteration,\n initialDirtyPathsLength,\n operation\n })) {\n return;\n }\n var _dirtyPath = popDirtyPath(editor);\n // If the node doesn't exist in the tree, it does not need to be normalized.\n if (Node.has(editor, _dirtyPath)) {\n var _entry = Editor.node(editor, _dirtyPath);\n editor.normalizeNode(_entry, {\n operation\n });\n }\n iteration++;\n dirtyPaths = getDirtyPaths(editor);\n }\n });\n};\n\nvar parent = function parent(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var path = Editor.path(editor, at, options);\n var parentPath = Path.parent(path);\n var entry = Editor.node(editor, parentPath);\n return entry;\n};\n\nvar pathRef = function pathRef(editor, path) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n affinity = 'forward'\n } = options;\n var ref = {\n current: path,\n affinity,\n unref() {\n var {\n current\n } = ref;\n var pathRefs = Editor.pathRefs(editor);\n pathRefs.delete(ref);\n ref.current = null;\n return current;\n }\n };\n var refs = Editor.pathRefs(editor);\n refs.add(ref);\n return ref;\n};\n\nvar pathRefs = editor => {\n var refs = PATH_REFS.get(editor);\n if (!refs) {\n refs = new Set();\n PATH_REFS.set(editor, refs);\n }\n return refs;\n};\n\nvar path = function path(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n depth,\n edge\n } = options;\n if (Path.isPath(at)) {\n if (edge === 'start') {\n var [, firstPath] = Node.first(editor, at);\n at = firstPath;\n } else if (edge === 'end') {\n var [, lastPath] = Node.last(editor, at);\n at = lastPath;\n }\n }\n if (Range.isRange(at)) {\n if (edge === 'start') {\n at = Range.start(at);\n } else if (edge === 'end') {\n at = Range.end(at);\n } else {\n at = Path.common(at.anchor.path, at.focus.path);\n }\n }\n if (Point.isPoint(at)) {\n at = at.path;\n }\n if (depth != null) {\n at = at.slice(0, depth);\n }\n return at;\n};\n\nvar pointRef = function pointRef(editor, point) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n affinity = 'forward'\n } = options;\n var ref = {\n current: point,\n affinity,\n unref() {\n var {\n current\n } = ref;\n var pointRefs = Editor.pointRefs(editor);\n pointRefs.delete(ref);\n ref.current = null;\n return current;\n }\n };\n var refs = Editor.pointRefs(editor);\n refs.add(ref);\n return ref;\n};\n\nvar pointRefs = editor => {\n var refs = POINT_REFS.get(editor);\n if (!refs) {\n refs = new Set();\n POINT_REFS.set(editor, refs);\n }\n return refs;\n};\n\nvar point = function point(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n edge = 'start'\n } = options;\n if (Path.isPath(at)) {\n var path;\n if (edge === 'end') {\n var [, lastPath] = Node.last(editor, at);\n path = lastPath;\n } else {\n var [, firstPath] = Node.first(editor, at);\n path = firstPath;\n }\n var node = Node.get(editor, path);\n if (!Text.isText(node)) {\n throw new Error(\"Cannot get the \".concat(edge, \" point in the node at path [\").concat(at, \"] because it has no \").concat(edge, \" text node.\"));\n }\n return {\n path,\n offset: edge === 'end' ? node.text.length : 0\n };\n }\n if (Range.isRange(at)) {\n var [start, end] = Range.edges(at);\n return edge === 'start' ? start : end;\n }\n return at;\n};\n\nfunction positions(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function* () {\n var {\n at = editor.selection,\n unit = 'offset',\n reverse = false,\n voids = false\n } = options;\n if (!at) {\n return;\n }\n /**\n * Algorithm notes:\n *\n * Each step `distance` is dynamic depending on the underlying text\n * and the `unit` specified. Each step, e.g., a line or word, may\n * span multiple text nodes, so we iterate through the text both on\n * two levels in step-sync:\n *\n * `leafText` stores the text on a text leaf level, and is advanced\n * through using the counters `leafTextOffset` and `leafTextRemaining`.\n *\n * `blockText` stores the text on a block level, and is shortened\n * by `distance` every time it is advanced.\n *\n * We only maintain a window of one blockText and one leafText because\n * a block node always appears before all of its leaf nodes.\n */\n var range = Editor.range(editor, at);\n var [start, end] = Range.edges(range);\n var first = reverse ? end : start;\n var isNewBlock = false;\n var blockText = '';\n var distance = 0; // Distance for leafText to catch up to blockText.\n var leafTextRemaining = 0;\n var leafTextOffset = 0;\n var skippedPaths = [];\n // Iterate through all nodes in range, grabbing entire textual content\n // of block nodes in blockText, and text nodes in leafText.\n // Exploits the fact that nodes are sequenced in such a way that we first\n // encounter the block node, then all of its text nodes, so when iterating\n // through the blockText and leafText we just need to remember a window of\n // one block node and leaf node, respectively.\n var _loop = function* _loop(path) {\n // If the node is inside a skipped ancestor, do not return any points, but\n // still process its content so that the iteration state remains correct.\n var hasSkippedAncestor = skippedPaths.some(p => Path.isAncestor(p, path));\n function* maybeYield(point) {\n if (!hasSkippedAncestor) {\n yield point;\n }\n }\n /*\n * ELEMENT NODE - Yield position(s) for voids, collect blockText for blocks\n */\n if (Element.isElement(node)) {\n if (!editor.isSelectable(node)) {\n /**\n * If the node is not selectable, skip it and its descendants\n */\n skippedPaths.push(path);\n if (reverse) {\n if (Path.hasPrevious(path)) {\n yield* maybeYield(Editor.end(editor, Path.previous(path)));\n }\n return 0; // continue\n } else {\n var nextPath = Path.next(path);\n if (Editor.hasPath(editor, nextPath)) {\n yield* maybeYield(Editor.start(editor, nextPath));\n }\n return 0; // continue\n }\n }\n // Void nodes are a special case, so by default we will always\n // yield their first point. If the `voids` option is set to true,\n // then we will iterate over their content.\n if (!voids && (editor.isVoid(node) || editor.isElementReadOnly(node))) {\n yield* maybeYield(Editor.start(editor, path));\n return 0; // continue\n }\n // Inline element nodes are ignored as they don't themselves\n // contribute to `blockText` or `leafText` - their parent and\n // children do.\n if (editor.isInline(node)) return 0; // continue\n // Block element node - set `blockText` to its text content.\n if (Editor.hasInlines(editor, node)) {\n // We always exhaust block nodes before encountering a new one:\n // console.assert(blockText === '',\n // `blockText='${blockText}' - `+\n // `not exhausted before new block node`, path)\n // Ensure range considered is capped to `range`, in the\n // start/end edge cases where block extends beyond range.\n // Equivalent to this, but presumably more performant:\n // blockRange = Editor.range(editor, ...Editor.edges(editor, path))\n // blockRange = Range.intersection(range, blockRange) // intersect\n // blockText = Editor.string(editor, blockRange, { voids })\n var e = Path.isAncestor(path, end.path) ? end : Editor.end(editor, path);\n var s = Path.isAncestor(path, start.path) ? start : Editor.start(editor, path);\n blockText = Editor.string(editor, {\n anchor: s,\n focus: e\n }, {\n voids\n });\n isNewBlock = true;\n }\n }\n /*\n * TEXT LEAF NODE - Iterate through text content, yielding\n * positions every `distance` offset according to `unit`.\n */\n if (Text.isText(node)) {\n var isFirst = Path.equals(path, first.path);\n // Proof that we always exhaust text nodes before encountering a new one:\n // console.assert(leafTextRemaining <= 0,\n // `leafTextRemaining=${leafTextRemaining} - `+\n // `not exhausted before new leaf text node`, path)\n // Reset `leafText` counters for new text node.\n if (isFirst) {\n leafTextRemaining = reverse ? first.offset : node.text.length - first.offset;\n leafTextOffset = first.offset; // Works for reverse too.\n } else {\n leafTextRemaining = node.text.length;\n leafTextOffset = reverse ? leafTextRemaining : 0;\n }\n // Yield position at the start of node (potentially).\n if (isFirst || isNewBlock || unit === 'offset') {\n yield* maybeYield({\n path,\n offset: leafTextOffset\n });\n isNewBlock = false;\n }\n // Yield positions every (dynamically calculated) `distance` offset.\n while (true) {\n // If `leafText` has caught up with `blockText` (distance=0),\n // and if blockText is exhausted, break to get another block node,\n // otherwise advance blockText forward by the new `distance`.\n if (distance === 0) {\n if (blockText === '') break;\n distance = calcDistance(blockText, unit, reverse);\n // Split the string at the previously found distance and use the\n // remaining string for the next iteration.\n blockText = splitByCharacterDistance(blockText, distance, reverse)[1];\n }\n // Advance `leafText` by the current `distance`.\n leafTextOffset = reverse ? leafTextOffset - distance : leafTextOffset + distance;\n leafTextRemaining = leafTextRemaining - distance;\n // If `leafText` is exhausted, break to get a new leaf node\n // and set distance to the overflow amount, so we'll (maybe)\n // catch up to blockText in the next leaf text node.\n if (leafTextRemaining < 0) {\n distance = -leafTextRemaining;\n break;\n }\n // Successfully walked `distance` offsets through `leafText`\n // to catch up with `blockText`, so we can reset `distance`\n // and yield this position in this node.\n distance = 0;\n yield* maybeYield({\n path,\n offset: leafTextOffset\n });\n }\n }\n },\n _ret;\n for (var [node, path] of Editor.nodes(editor, {\n at,\n reverse,\n voids\n })) {\n _ret = yield* _loop(path);\n if (_ret === 0) continue;\n }\n // Proof that upon completion, we've exahusted both leaf and block text:\n // console.assert(leafTextRemaining <= 0, \"leafText wasn't exhausted\")\n // console.assert(blockText === '', \"blockText wasn't exhausted\")\n // Helper:\n // Return the distance in offsets for a step of size `unit` on given string.\n function calcDistance(text, unit, reverse) {\n if (unit === 'character') {\n return getCharacterDistance(text, reverse);\n } else if (unit === 'word') {\n return getWordDistance(text, reverse);\n } else if (unit === 'line' || unit === 'block') {\n return text.length;\n }\n return 1;\n }\n }();\n}\n\nvar previous = function previous(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n mode = 'lowest',\n voids = false\n } = options;\n var {\n match,\n at = editor.selection\n } = options;\n if (!at) {\n return;\n }\n var pointBeforeLocation = Editor.before(editor, at, {\n voids\n });\n if (!pointBeforeLocation) {\n return;\n }\n var [, to] = Editor.first(editor, []);\n // The search location is from the start of the document to the path of\n // the point before the location passed in\n var span = [pointBeforeLocation.path, to];\n if (Path.isPath(at) && at.length === 0) {\n throw new Error(\"Cannot get the previous node from the root node!\");\n }\n if (match == null) {\n if (Path.isPath(at)) {\n var [parent] = Editor.parent(editor, at);\n match = n => parent.children.includes(n);\n } else {\n match = () => true;\n }\n }\n var [previous] = Editor.nodes(editor, {\n reverse: true,\n at: span,\n match,\n mode,\n voids\n });\n return previous;\n};\n\nvar rangeRef = function rangeRef(editor, range) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n affinity = 'forward'\n } = options;\n var ref = {\n current: range,\n affinity,\n unref() {\n var {\n current\n } = ref;\n var rangeRefs = Editor.rangeRefs(editor);\n rangeRefs.delete(ref);\n ref.current = null;\n return current;\n }\n };\n var refs = Editor.rangeRefs(editor);\n refs.add(ref);\n return ref;\n};\n\nvar rangeRefs = editor => {\n var refs = RANGE_REFS.get(editor);\n if (!refs) {\n refs = new Set();\n RANGE_REFS.set(editor, refs);\n }\n return refs;\n};\n\nvar range = (editor, at, to) => {\n if (Range.isRange(at) && !to) {\n return at;\n }\n var start = Editor.start(editor, at);\n var end = Editor.end(editor, to || at);\n return {\n anchor: start,\n focus: end\n };\n};\n\nfunction ownKeys$2(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$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar removeMark = (editor, key) => {\n var {\n selection\n } = editor;\n if (selection) {\n var match = (node, path) => {\n if (!Text.isText(node)) {\n return false; // marks can only be applied to text\n }\n\n var [parentNode, parentPath] = Editor.parent(editor, path);\n return !editor.isVoid(parentNode) || editor.markableVoid(parentNode);\n };\n var expandedSelection = Range.isExpanded(selection);\n var markAcceptingVoidSelected = false;\n if (!expandedSelection) {\n var [selectedNode, selectedPath] = Editor.node(editor, selection);\n if (selectedNode && match(selectedNode, selectedPath)) {\n var [parentNode] = Editor.parent(editor, selectedPath);\n markAcceptingVoidSelected = parentNode && editor.markableVoid(parentNode);\n }\n }\n if (expandedSelection || markAcceptingVoidSelected) {\n Transforms.unsetNodes(editor, key, {\n match,\n split: true,\n voids: true\n });\n } else {\n var marks = _objectSpread$2({}, Editor.marks(editor) || {});\n delete marks[key];\n editor.marks = marks;\n if (!FLUSHING.get(editor)) {\n editor.onChange();\n }\n }\n }\n};\n\nvar setNormalizing = (editor, isNormalizing) => {\n NORMALIZING.set(editor, isNormalizing);\n};\n\nvar start = (editor, at) => {\n return Editor.point(editor, at, {\n edge: 'start'\n });\n};\n\nvar string = function string(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n voids = false\n } = options;\n var range = Editor.range(editor, at);\n var [start, end] = Range.edges(range);\n var text = '';\n for (var [node, path] of Editor.nodes(editor, {\n at: range,\n match: Text.isText,\n voids\n })) {\n var t = node.text;\n if (Path.equals(path, end.path)) {\n t = t.slice(0, end.offset);\n }\n if (Path.equals(path, start.path)) {\n t = t.slice(start.offset);\n }\n text += t;\n }\n return text;\n};\n\nvar unhangRange = function unhangRange(editor, range) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n voids = false\n } = options;\n var [start, end] = Range.edges(range);\n // PERF: exit early if we can guarantee that the range isn't hanging.\n if (start.offset !== 0 || end.offset !== 0 || Range.isCollapsed(range) || Path.hasPrevious(end.path)) {\n return range;\n }\n var endBlock = Editor.above(editor, {\n at: end,\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n voids\n });\n var blockPath = endBlock ? endBlock[1] : [];\n var first = Editor.start(editor, start);\n var before = {\n anchor: first,\n focus: end\n };\n var skip = true;\n for (var [node, path] of Editor.nodes(editor, {\n at: before,\n match: Text.isText,\n reverse: true,\n voids\n })) {\n if (skip) {\n skip = false;\n continue;\n }\n if (node.text !== '' || Path.isBefore(path, blockPath)) {\n end = {\n path,\n offset: node.text.length\n };\n break;\n }\n }\n return {\n anchor: start,\n focus: end\n };\n};\n\nvar withoutNormalizing = (editor, fn) => {\n var value = Editor.isNormalizing(editor);\n Editor.setNormalizing(editor, false);\n try {\n fn();\n } finally {\n Editor.setNormalizing(editor, value);\n }\n Editor.normalize(editor);\n};\n\nvar shouldMergeNodesRemovePrevNode = (editor, _ref, _ref2) => {\n var [prevNode, prevPath] = _ref;\n // If the target node that we're merging with is empty, remove it instead\n // of merging the two. This is a common rich text editor behavior to\n // prevent losing formatting when deleting entire nodes when you have a\n // hanging selection.\n // if prevNode is first child in parent,don't remove it.\n return Element.isElement(prevNode) && Editor.isEmpty(editor, prevNode) || Text.isText(prevNode) && prevNode.text === '' && prevPath[prevPath.length - 1] !== 0;\n};\n\nvar deleteText = function deleteText(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Editor.withoutNormalizing(editor, () => {\n var _Editor$void, _Editor$void2;\n var {\n reverse = false,\n unit = 'character',\n distance = 1,\n voids = false\n } = options;\n var {\n at = editor.selection,\n hanging = false\n } = options;\n if (!at) {\n return;\n }\n var isCollapsed = false;\n if (Range.isRange(at) && Range.isCollapsed(at)) {\n isCollapsed = true;\n at = at.anchor;\n }\n if (Point.isPoint(at)) {\n var furthestVoid = Editor.void(editor, {\n at,\n mode: 'highest'\n });\n if (!voids && furthestVoid) {\n var [, voidPath] = furthestVoid;\n at = voidPath;\n } else {\n var opts = {\n unit,\n distance\n };\n var target = reverse ? Editor.before(editor, at, opts) || Editor.start(editor, []) : Editor.after(editor, at, opts) || Editor.end(editor, []);\n at = {\n anchor: at,\n focus: target\n };\n hanging = true;\n }\n }\n if (Path.isPath(at)) {\n Transforms.removeNodes(editor, {\n at,\n voids\n });\n return;\n }\n if (Range.isCollapsed(at)) {\n return;\n }\n if (!hanging) {\n var [, _end] = Range.edges(at);\n var endOfDoc = Editor.end(editor, []);\n if (!Point.equals(_end, endOfDoc)) {\n at = Editor.unhangRange(editor, at, {\n voids\n });\n }\n }\n var [start, end] = Range.edges(at);\n var startBlock = Editor.above(editor, {\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n at: start,\n voids\n });\n var endBlock = Editor.above(editor, {\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n at: end,\n voids\n });\n var isAcrossBlocks = startBlock && endBlock && !Path.equals(startBlock[1], endBlock[1]);\n var isSingleText = Path.equals(start.path, end.path);\n var startNonEditable = voids ? null : (_Editor$void = Editor.void(editor, {\n at: start,\n mode: 'highest'\n })) !== null && _Editor$void !== void 0 ? _Editor$void : Editor.elementReadOnly(editor, {\n at: start,\n mode: 'highest'\n });\n var endNonEditable = voids ? null : (_Editor$void2 = Editor.void(editor, {\n at: end,\n mode: 'highest'\n })) !== null && _Editor$void2 !== void 0 ? _Editor$void2 : Editor.elementReadOnly(editor, {\n at: end,\n mode: 'highest'\n });\n // If the start or end points are inside an inline void, nudge them out.\n if (startNonEditable) {\n var before = Editor.before(editor, start);\n if (before && startBlock && Path.isAncestor(startBlock[1], before.path)) {\n start = before;\n }\n }\n if (endNonEditable) {\n var after = Editor.after(editor, end);\n if (after && endBlock && Path.isAncestor(endBlock[1], after.path)) {\n end = after;\n }\n }\n // Get the highest nodes that are completely inside the range, as well as\n // the start and end nodes.\n var matches = [];\n var lastPath;\n for (var entry of Editor.nodes(editor, {\n at,\n voids\n })) {\n var [node, path] = entry;\n if (lastPath && Path.compare(path, lastPath) === 0) {\n continue;\n }\n if (!voids && Element.isElement(node) && (Editor.isVoid(editor, node) || Editor.isElementReadOnly(editor, node)) || !Path.isCommon(path, start.path) && !Path.isCommon(path, end.path)) {\n matches.push(entry);\n lastPath = path;\n }\n }\n var pathRefs = Array.from(matches, _ref => {\n var [, p] = _ref;\n return Editor.pathRef(editor, p);\n });\n var startRef = Editor.pointRef(editor, start);\n var endRef = Editor.pointRef(editor, end);\n var removedText = '';\n if (!isSingleText && !startNonEditable) {\n var _point = startRef.current;\n var [_node] = Editor.leaf(editor, _point);\n var {\n path: _path\n } = _point;\n var {\n offset\n } = start;\n var text = _node.text.slice(offset);\n if (text.length > 0) {\n editor.apply({\n type: 'remove_text',\n path: _path,\n offset,\n text\n });\n removedText = text;\n }\n }\n pathRefs.reverse().map(r => r.unref()).filter(r => r !== null).forEach(p => Transforms.removeNodes(editor, {\n at: p,\n voids\n }));\n if (!endNonEditable) {\n var _point2 = endRef.current;\n var [_node2] = Editor.leaf(editor, _point2);\n var {\n path: _path2\n } = _point2;\n var _offset = isSingleText ? start.offset : 0;\n var _text = _node2.text.slice(_offset, end.offset);\n if (_text.length > 0) {\n editor.apply({\n type: 'remove_text',\n path: _path2,\n offset: _offset,\n text: _text\n });\n removedText = _text;\n }\n }\n if (!isSingleText && isAcrossBlocks && endRef.current && startRef.current) {\n Transforms.mergeNodes(editor, {\n at: endRef.current,\n hanging: true,\n voids\n });\n }\n // For certain scripts, deleting N character(s) backward should delete\n // N code point(s) instead of an entire grapheme cluster.\n // Therefore, the remaining code points should be inserted back.\n // Bengali: \\u0980-\\u09FF\n // Thai: \\u0E00-\\u0E7F\n // Burmese (Myanmar): \\u1000-\\u109F\n // Hindi (Devanagari): \\u0900-\\u097F\n // Khmer: \\u1780-\\u17FF\n // Malayalam: \\u0D00-\\u0D7F\n // Oriya: \\u0B00-\\u0B7F\n // Punjabi (Gurmukhi): \\u0A00-\\u0A7F\n // Tamil: \\u0B80-\\u0BFF\n // Telugu: \\u0C00-\\u0C7F\n if (isCollapsed && reverse && unit === 'character' && removedText.length > 1 && removedText.match(/[\\u0980-\\u09FF\\u0E00-\\u0E7F\\u1000-\\u109F\\u0900-\\u097F\\u1780-\\u17FF\\u0D00-\\u0D7F\\u0B00-\\u0B7F\\u0A00-\\u0A7F\\u0B80-\\u0BFF\\u0C00-\\u0C7F]+/)) {\n Transforms.insertText(editor, removedText.slice(0, removedText.length - distance));\n }\n var startUnref = startRef.unref();\n var endUnref = endRef.unref();\n var point = reverse ? startUnref || endUnref : endUnref || startUnref;\n if (options.at == null && point) {\n Transforms.select(editor, point);\n }\n });\n};\n\nvar insertFragment = function insertFragment(editor, fragment) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n hanging = false,\n voids = false\n } = options;\n var {\n at = getDefaultInsertLocation(editor),\n batchDirty = true\n } = options;\n if (!fragment.length) {\n return;\n }\n if (Range.isRange(at)) {\n if (!hanging) {\n at = Editor.unhangRange(editor, at, {\n voids\n });\n }\n if (Range.isCollapsed(at)) {\n at = at.anchor;\n } else {\n var [, end] = Range.edges(at);\n if (!voids && Editor.void(editor, {\n at: end\n })) {\n return;\n }\n var pointRef = Editor.pointRef(editor, end);\n Transforms.delete(editor, {\n at\n });\n at = pointRef.unref();\n }\n } else if (Path.isPath(at)) {\n at = Editor.start(editor, at);\n }\n if (!voids && Editor.void(editor, {\n at\n })) {\n return;\n }\n // If the insert point is at the edge of an inline node, move it outside\n // instead since it will need to be split otherwise.\n var inlineElementMatch = Editor.above(editor, {\n at,\n match: n => Element.isElement(n) && Editor.isInline(editor, n),\n mode: 'highest',\n voids\n });\n if (inlineElementMatch) {\n var [, _inlinePath] = inlineElementMatch;\n if (Editor.isEnd(editor, at, _inlinePath)) {\n var after = Editor.after(editor, _inlinePath);\n at = after;\n } else if (Editor.isStart(editor, at, _inlinePath)) {\n var before = Editor.before(editor, _inlinePath);\n at = before;\n }\n }\n var blockMatch = Editor.above(editor, {\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n at,\n voids\n });\n var [, blockPath] = blockMatch;\n var isBlockStart = Editor.isStart(editor, at, blockPath);\n var isBlockEnd = Editor.isEnd(editor, at, blockPath);\n var isBlockEmpty = isBlockStart && isBlockEnd;\n var [, firstLeafPath] = Node.first({\n children: fragment\n }, []);\n var [, lastLeafPath] = Node.last({\n children: fragment\n }, []);\n // For each node in the fragment, determine what level of wrapping should\n // be kept. At minimum, all text nodes will be inserted, but if\n // `shouldInsert` returns true for some ancestor of a particular text node,\n // then the entire ancestor will be inserted rather than inserting the text\n // nodes individually.\n var shouldInsert = _ref => {\n var [n, p] = _ref;\n var isRoot = p.length === 0;\n if (isRoot) {\n return false;\n }\n // If the destination block is empty, insert all top-level blocks of the\n // fragment.\n if (isBlockEmpty) {\n return true;\n }\n // Unless we're at the start of the destination block, unwrap any\n // non-void blocks that contain the first leaf node in the fragment.\n if (!isBlockStart && Path.isAncestor(p, firstLeafPath) && Element.isElement(n) && !editor.isVoid(n) && !editor.isInline(n)) {\n return false;\n }\n // Unless we're at the end of the destination block, unwrap any non-void\n // blocks that contain the last leaf node in the fragment.\n if (!isBlockEnd && Path.isAncestor(p, lastLeafPath) && Element.isElement(n) && !editor.isVoid(n) && !editor.isInline(n)) {\n return false;\n }\n // Always insert void nodes, inline elements and text nodes.\n return true;\n };\n // Whether the current node is in the first block of the fragment.\n var starting = true;\n // Inline nodes in the first block of the fragment, to be merged with the\n // destination block.\n var starts = [];\n // Blocks in the middle of the fragment.\n var middles = [];\n // Inline nodes in the last block of the fragment, to be merged with the\n // destination block. If the fragment contains only one block, this will be\n // empty.\n var ends = [];\n for (var entry of Node.nodes({\n children: fragment\n }, {\n pass: shouldInsert\n })) {\n var [node, path] = entry;\n // If we encounter a block that does not contain the first leaf, we're no\n // longer in the first block of the fragment.\n if (starting && Element.isElement(node) && !editor.isInline(node) && !Path.isAncestor(path, firstLeafPath)) {\n starting = false;\n }\n if (shouldInsert(entry)) {\n if (Element.isElement(node) && !editor.isInline(node)) {\n starting = false;\n middles.push(node);\n } else if (starting) {\n starts.push(node);\n } else {\n ends.push(node);\n }\n }\n }\n var [inlineMatch] = Editor.nodes(editor, {\n at,\n match: n => Text.isText(n) || Editor.isInline(editor, n),\n mode: 'highest',\n voids\n });\n var [, inlinePath] = inlineMatch;\n var isInlineStart = Editor.isStart(editor, at, inlinePath);\n var isInlineEnd = Editor.isEnd(editor, at, inlinePath);\n var middleRef = Editor.pathRef(editor, isBlockEnd && !ends.length ? Path.next(blockPath) : blockPath);\n var endRef = Editor.pathRef(editor, isInlineEnd ? Path.next(inlinePath) : inlinePath);\n // If the fragment contains inlines in multiple distinct blocks, split the\n // destination block.\n var splitBlock = ends.length > 0;\n Transforms.splitNodes(editor, {\n at,\n match: n => splitBlock ? Element.isElement(n) && Editor.isBlock(editor, n) : Text.isText(n) || Editor.isInline(editor, n),\n mode: splitBlock ? 'lowest' : 'highest',\n always: splitBlock && (!isBlockStart || starts.length > 0) && (!isBlockEnd || ends.length > 0),\n voids\n });\n var startRef = Editor.pathRef(editor, !isInlineStart || isInlineStart && isInlineEnd ? Path.next(inlinePath) : inlinePath);\n Transforms.insertNodes(editor, starts, {\n at: startRef.current,\n match: n => Text.isText(n) || Editor.isInline(editor, n),\n mode: 'highest',\n voids,\n batchDirty\n });\n if (isBlockEmpty && !starts.length && middles.length && !ends.length) {\n Transforms.delete(editor, {\n at: blockPath,\n voids\n });\n }\n Transforms.insertNodes(editor, middles, {\n at: middleRef.current,\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n mode: 'lowest',\n voids,\n batchDirty\n });\n Transforms.insertNodes(editor, ends, {\n at: endRef.current,\n match: n => Text.isText(n) || Editor.isInline(editor, n),\n mode: 'highest',\n voids,\n batchDirty\n });\n if (!options.at) {\n var _path;\n if (ends.length > 0 && endRef.current) {\n _path = Path.previous(endRef.current);\n } else if (middles.length > 0 && middleRef.current) {\n _path = Path.previous(middleRef.current);\n } else if (startRef.current) {\n _path = Path.previous(startRef.current);\n }\n if (_path) {\n var _end = Editor.end(editor, _path);\n Transforms.select(editor, _end);\n }\n }\n startRef.unref();\n middleRef.unref();\n endRef.unref();\n });\n};\n\nvar collapse = function collapse(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n edge = 'anchor'\n } = options;\n var {\n selection\n } = editor;\n if (!selection) {\n return;\n } else if (edge === 'anchor') {\n Transforms.select(editor, selection.anchor);\n } else if (edge === 'focus') {\n Transforms.select(editor, selection.focus);\n } else if (edge === 'start') {\n var [start] = Range.edges(selection);\n Transforms.select(editor, start);\n } else if (edge === 'end') {\n var [, end] = Range.edges(selection);\n Transforms.select(editor, end);\n }\n};\n\nvar deselect = editor => {\n var {\n selection\n } = editor;\n if (selection) {\n editor.apply({\n type: 'set_selection',\n properties: selection,\n newProperties: null\n });\n }\n};\n\nvar move = function move(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n selection\n } = editor;\n var {\n distance = 1,\n unit = 'character',\n reverse = false\n } = options;\n var {\n edge = null\n } = options;\n if (!selection) {\n return;\n }\n if (edge === 'start') {\n edge = Range.isBackward(selection) ? 'focus' : 'anchor';\n }\n if (edge === 'end') {\n edge = Range.isBackward(selection) ? 'anchor' : 'focus';\n }\n var {\n anchor,\n focus\n } = selection;\n var opts = {\n distance,\n unit\n };\n var props = {};\n if (edge == null || edge === 'anchor') {\n var point = reverse ? Editor.before(editor, anchor, opts) : Editor.after(editor, anchor, opts);\n if (point) {\n props.anchor = point;\n }\n }\n if (edge == null || edge === 'focus') {\n var _point = reverse ? Editor.before(editor, focus, opts) : Editor.after(editor, focus, opts);\n if (_point) {\n props.focus = _point;\n }\n }\n Transforms.setSelection(editor, props);\n};\n\nvar select = (editor, target) => {\n var {\n selection\n } = editor;\n target = Editor.range(editor, target);\n if (selection) {\n Transforms.setSelection(editor, target);\n return;\n }\n if (!Range.isRange(target)) {\n throw new Error(\"When setting the selection and the current selection is `null` you must provide at least an `anchor` and `focus`, but you passed: \".concat(Scrubber.stringify(target)));\n }\n editor.apply({\n type: 'set_selection',\n properties: selection,\n newProperties: target\n });\n};\n\nfunction ownKeys$1(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$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar setPoint = function setPoint(editor, props) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n selection\n } = editor;\n var {\n edge = 'both'\n } = options;\n if (!selection) {\n return;\n }\n if (edge === 'start') {\n edge = Range.isBackward(selection) ? 'focus' : 'anchor';\n }\n if (edge === 'end') {\n edge = Range.isBackward(selection) ? 'anchor' : 'focus';\n }\n var {\n anchor,\n focus\n } = selection;\n var point = edge === 'anchor' ? anchor : focus;\n Transforms.setSelection(editor, {\n [edge === 'anchor' ? 'anchor' : 'focus']: _objectSpread$1(_objectSpread$1({}, point), props)\n });\n};\n\nvar setSelection = (editor, props) => {\n var {\n selection\n } = editor;\n var oldProps = {};\n var newProps = {};\n if (!selection) {\n return;\n }\n for (var k in props) {\n if (k === 'anchor' && props.anchor != null && !Point.equals(props.anchor, selection.anchor) || k === 'focus' && props.focus != null && !Point.equals(props.focus, selection.focus) || k !== 'anchor' && k !== 'focus' && props[k] !== selection[k]) {\n oldProps[k] = selection[k];\n newProps[k] = props[k];\n }\n }\n if (Object.keys(oldProps).length > 0) {\n editor.apply({\n type: 'set_selection',\n properties: oldProps,\n newProperties: newProps\n });\n }\n};\n\nvar insertNodes = function insertNodes(editor, nodes) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n hanging = false,\n voids = false,\n mode = 'lowest',\n batchDirty = true\n } = options;\n var {\n at,\n match,\n select\n } = options;\n if (Node.isNode(nodes)) {\n nodes = [nodes];\n }\n if (nodes.length === 0) {\n return;\n }\n var [node] = nodes;\n if (!at) {\n at = getDefaultInsertLocation(editor);\n if (select !== false) {\n select = true;\n }\n }\n if (select == null) {\n select = false;\n }\n if (Range.isRange(at)) {\n if (!hanging) {\n at = Editor.unhangRange(editor, at, {\n voids\n });\n }\n if (Range.isCollapsed(at)) {\n at = at.anchor;\n } else {\n var [, end] = Range.edges(at);\n var pointRef = Editor.pointRef(editor, end);\n Transforms.delete(editor, {\n at\n });\n at = pointRef.unref();\n }\n }\n if (Point.isPoint(at)) {\n if (match == null) {\n if (Text.isText(node)) {\n match = n => Text.isText(n);\n } else if (editor.isInline(node)) {\n match = n => Text.isText(n) || Editor.isInline(editor, n);\n } else {\n match = n => Element.isElement(n) && Editor.isBlock(editor, n);\n }\n }\n var [entry] = Editor.nodes(editor, {\n at: at.path,\n match,\n mode,\n voids\n });\n if (entry) {\n var [, matchPath] = entry;\n var pathRef = Editor.pathRef(editor, matchPath);\n var isAtEnd = Editor.isEnd(editor, at, matchPath);\n Transforms.splitNodes(editor, {\n at,\n match,\n mode,\n voids\n });\n var path = pathRef.unref();\n at = isAtEnd ? Path.next(path) : path;\n } else {\n return;\n }\n }\n var parentPath = Path.parent(at);\n var index = at[at.length - 1];\n if (!voids && Editor.void(editor, {\n at: parentPath\n })) {\n return;\n }\n if (batchDirty) {\n // PERF: batch update dirty paths\n // batched ops used to transform existing dirty paths\n var batchedOps = [];\n var newDirtyPaths = Path.levels(parentPath);\n batchDirtyPaths(editor, () => {\n var _loop = function _loop() {\n var path = parentPath.concat(index);\n index++;\n var op = {\n type: 'insert_node',\n path,\n node: _node\n };\n editor.apply(op);\n at = Path.next(at);\n batchedOps.push(op);\n if (Text.isText(_node)) {\n newDirtyPaths.push(path);\n } else {\n newDirtyPaths.push(...Array.from(Node.nodes(_node), _ref => {\n var [, p] = _ref;\n return path.concat(p);\n }));\n }\n };\n for (var _node of nodes) {\n _loop();\n }\n }, () => {\n updateDirtyPaths(editor, newDirtyPaths, p => {\n var newPath = p;\n for (var op of batchedOps) {\n if (Path.operationCanTransformPath(op)) {\n newPath = Path.transform(newPath, op);\n if (!newPath) {\n return null;\n }\n }\n }\n return newPath;\n });\n });\n } else {\n for (var _node2 of nodes) {\n var _path = parentPath.concat(index);\n index++;\n editor.apply({\n type: 'insert_node',\n path: _path,\n node: _node2\n });\n at = Path.next(at);\n }\n }\n at = Path.previous(at);\n if (select) {\n var point = Editor.end(editor, at);\n if (point) {\n Transforms.select(editor, point);\n }\n }\n });\n};\n\nvar liftNodes = function liftNodes(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n at = editor.selection,\n mode = 'lowest',\n voids = false\n } = options;\n var {\n match\n } = options;\n if (match == null) {\n match = Path.isPath(at) ? matchPath(editor, at) : n => Element.isElement(n) && Editor.isBlock(editor, n);\n }\n if (!at) {\n return;\n }\n var matches = Editor.nodes(editor, {\n at,\n match,\n mode,\n voids\n });\n var pathRefs = Array.from(matches, _ref => {\n var [, p] = _ref;\n return Editor.pathRef(editor, p);\n });\n for (var pathRef of pathRefs) {\n var path = pathRef.unref();\n if (path.length < 2) {\n throw new Error(\"Cannot lift node at a path [\".concat(path, \"] because it has a depth of less than `2`.\"));\n }\n var parentNodeEntry = Editor.node(editor, Path.parent(path));\n var [parent, parentPath] = parentNodeEntry;\n var index = path[path.length - 1];\n var {\n length\n } = parent.children;\n if (length === 1) {\n var toPath = Path.next(parentPath);\n Transforms.moveNodes(editor, {\n at: path,\n to: toPath,\n voids\n });\n Transforms.removeNodes(editor, {\n at: parentPath,\n voids\n });\n } else if (index === 0) {\n Transforms.moveNodes(editor, {\n at: path,\n to: parentPath,\n voids\n });\n } else if (index === length - 1) {\n var _toPath = Path.next(parentPath);\n Transforms.moveNodes(editor, {\n at: path,\n to: _toPath,\n voids\n });\n } else {\n var splitPath = Path.next(path);\n var _toPath2 = Path.next(parentPath);\n Transforms.splitNodes(editor, {\n at: splitPath,\n voids\n });\n Transforms.moveNodes(editor, {\n at: path,\n to: _toPath2,\n voids\n });\n }\n }\n });\n};\n\nvar _excluded = [\"text\"],\n _excluded2 = [\"children\"];\nvar hasSingleChildNest = (editor, node) => {\n if (Element.isElement(node)) {\n var element = node;\n if (Editor.isVoid(editor, node)) {\n return true;\n } else if (element.children.length === 1) {\n return hasSingleChildNest(editor, element.children[0]);\n } else {\n return false;\n }\n } else if (Editor.isEditor(node)) {\n return false;\n } else {\n return true;\n }\n};\nvar mergeNodes = function mergeNodes(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n match,\n at = editor.selection\n } = options;\n var {\n hanging = false,\n voids = false,\n mode = 'lowest'\n } = options;\n if (!at) {\n return;\n }\n if (match == null) {\n if (Path.isPath(at)) {\n var [parent] = Editor.parent(editor, at);\n match = n => parent.children.includes(n);\n } else {\n match = n => Element.isElement(n) && Editor.isBlock(editor, n);\n }\n }\n if (!hanging && Range.isRange(at)) {\n at = Editor.unhangRange(editor, at, {\n voids\n });\n }\n if (Range.isRange(at)) {\n if (Range.isCollapsed(at)) {\n at = at.anchor;\n } else {\n var [, end] = Range.edges(at);\n var pointRef = Editor.pointRef(editor, end);\n Transforms.delete(editor, {\n at\n });\n at = pointRef.unref();\n if (options.at == null) {\n Transforms.select(editor, at);\n }\n }\n }\n var [current] = Editor.nodes(editor, {\n at,\n match,\n voids,\n mode\n });\n var prev = Editor.previous(editor, {\n at,\n match,\n voids,\n mode\n });\n if (!current || !prev) {\n return;\n }\n var [node, path] = current;\n var [prevNode, prevPath] = prev;\n if (path.length === 0 || prevPath.length === 0) {\n return;\n }\n var newPath = Path.next(prevPath);\n var commonPath = Path.common(path, prevPath);\n var isPreviousSibling = Path.isSibling(path, prevPath);\n var levels = Array.from(Editor.levels(editor, {\n at: path\n }), _ref => {\n var [n] = _ref;\n return n;\n }).slice(commonPath.length).slice(0, -1);\n // Determine if the merge will leave an ancestor of the path empty as a\n // result, in which case we'll want to remove it after merging.\n var emptyAncestor = Editor.above(editor, {\n at: path,\n mode: 'highest',\n match: n => levels.includes(n) && hasSingleChildNest(editor, n)\n });\n var emptyRef = emptyAncestor && Editor.pathRef(editor, emptyAncestor[1]);\n var properties;\n var position;\n // Ensure that the nodes are equivalent, and figure out what the position\n // and extra properties of the merge will be.\n if (Text.isText(node) && Text.isText(prevNode)) {\n var rest = _objectWithoutProperties(node, _excluded);\n position = prevNode.text.length;\n properties = rest;\n } else if (Element.isElement(node) && Element.isElement(prevNode)) {\n var rest = _objectWithoutProperties(node, _excluded2);\n position = prevNode.children.length;\n properties = rest;\n } else {\n throw new Error(\"Cannot merge the node at path [\".concat(path, \"] with the previous sibling because it is not the same kind: \").concat(Scrubber.stringify(node), \" \").concat(Scrubber.stringify(prevNode)));\n }\n // If the node isn't already the next sibling of the previous node, move\n // it so that it is before merging.\n if (!isPreviousSibling) {\n Transforms.moveNodes(editor, {\n at: path,\n to: newPath,\n voids\n });\n }\n // If there was going to be an empty ancestor of the node that was merged,\n // we remove it from the tree.\n if (emptyRef) {\n Transforms.removeNodes(editor, {\n at: emptyRef.current,\n voids\n });\n }\n if (Editor.shouldMergeNodesRemovePrevNode(editor, prev, current)) {\n Transforms.removeNodes(editor, {\n at: prevPath,\n voids\n });\n } else {\n editor.apply({\n type: 'merge_node',\n path: newPath,\n position,\n properties\n });\n }\n if (emptyRef) {\n emptyRef.unref();\n }\n });\n};\n\nvar moveNodes = (editor, options) => {\n Editor.withoutNormalizing(editor, () => {\n var {\n to,\n at = editor.selection,\n mode = 'lowest',\n voids = false\n } = options;\n var {\n match\n } = options;\n if (!at) {\n return;\n }\n if (match == null) {\n match = Path.isPath(at) ? matchPath(editor, at) : n => Element.isElement(n) && Editor.isBlock(editor, n);\n }\n var toRef = Editor.pathRef(editor, to);\n var targets = Editor.nodes(editor, {\n at,\n match,\n mode,\n voids\n });\n var pathRefs = Array.from(targets, _ref => {\n var [, p] = _ref;\n return Editor.pathRef(editor, p);\n });\n for (var pathRef of pathRefs) {\n var path = pathRef.unref();\n var newPath = toRef.current;\n if (path.length !== 0) {\n editor.apply({\n type: 'move_node',\n path,\n newPath\n });\n }\n if (toRef.current && Path.isSibling(newPath, path) && Path.isAfter(newPath, path)) {\n // When performing a sibling move to a later index, the path at the destination is shifted\n // to before the insertion point instead of after. To ensure our group of nodes are inserted\n // in the correct order we increment toRef to account for that\n toRef.current = Path.next(toRef.current);\n }\n }\n toRef.unref();\n });\n};\n\nvar removeNodes = function removeNodes(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n hanging = false,\n voids = false,\n mode = 'lowest'\n } = options;\n var {\n at = editor.selection,\n match\n } = options;\n if (!at) {\n return;\n }\n if (match == null) {\n match = Path.isPath(at) ? matchPath(editor, at) : n => Element.isElement(n) && Editor.isBlock(editor, n);\n }\n if (!hanging && Range.isRange(at)) {\n at = Editor.unhangRange(editor, at, {\n voids\n });\n }\n var depths = Editor.nodes(editor, {\n at,\n match,\n mode,\n voids\n });\n var pathRefs = Array.from(depths, _ref => {\n var [, p] = _ref;\n return Editor.pathRef(editor, p);\n });\n for (var pathRef of pathRefs) {\n var path = pathRef.unref();\n if (path) {\n var [node] = Editor.node(editor, path);\n editor.apply({\n type: 'remove_node',\n path,\n node\n });\n }\n }\n });\n};\n\nvar setNodes = function setNodes(editor, props) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n match,\n at = editor.selection,\n compare,\n merge\n } = options;\n var {\n hanging = false,\n mode = 'lowest',\n split = false,\n voids = false\n } = options;\n if (!at) {\n return;\n }\n if (match == null) {\n match = Path.isPath(at) ? matchPath(editor, at) : n => Element.isElement(n) && Editor.isBlock(editor, n);\n }\n if (!hanging && Range.isRange(at)) {\n at = Editor.unhangRange(editor, at, {\n voids\n });\n }\n if (split && Range.isRange(at)) {\n if (Range.isCollapsed(at) && Editor.leaf(editor, at.anchor)[0].text.length > 0) {\n // If the range is collapsed in a non-empty node and 'split' is true, there's nothing to\n // set that won't get normalized away\n return;\n }\n var rangeRef = Editor.rangeRef(editor, at, {\n affinity: 'inward'\n });\n var [start, end] = Range.edges(at);\n var splitMode = mode === 'lowest' ? 'lowest' : 'highest';\n var endAtEndOfNode = Editor.isEnd(editor, end, end.path);\n Transforms.splitNodes(editor, {\n at: end,\n match,\n mode: splitMode,\n voids,\n always: !endAtEndOfNode\n });\n var startAtStartOfNode = Editor.isStart(editor, start, start.path);\n Transforms.splitNodes(editor, {\n at: start,\n match,\n mode: splitMode,\n voids,\n always: !startAtStartOfNode\n });\n at = rangeRef.unref();\n if (options.at == null) {\n Transforms.select(editor, at);\n }\n }\n if (!compare) {\n compare = (prop, nodeProp) => prop !== nodeProp;\n }\n for (var [node, path] of Editor.nodes(editor, {\n at,\n match,\n mode,\n voids\n })) {\n var properties = {};\n // FIXME: is this correct?\n var newProperties = {};\n // You can't set properties on the editor node.\n if (path.length === 0) {\n continue;\n }\n var hasChanges = false;\n for (var k in props) {\n if (k === 'children' || k === 'text') {\n continue;\n }\n if (compare(props[k], node[k])) {\n hasChanges = true;\n // Omit new properties from the old properties list\n if (node.hasOwnProperty(k)) properties[k] = node[k];\n // Omit properties that have been removed from the new properties list\n if (merge) {\n if (props[k] != null) newProperties[k] = merge(node[k], props[k]);\n } else {\n if (props[k] != null) newProperties[k] = props[k];\n }\n }\n }\n if (hasChanges) {\n editor.apply({\n type: 'set_node',\n path,\n properties,\n newProperties\n });\n }\n }\n });\n};\n\n/**\n * Convert a range into a point by deleting it's content.\n */\nvar deleteRange = (editor, range) => {\n if (Range.isCollapsed(range)) {\n return range.anchor;\n } else {\n var [, end] = Range.edges(range);\n var pointRef = Editor.pointRef(editor, end);\n Transforms.delete(editor, {\n at: range\n });\n return pointRef.unref();\n }\n};\nvar splitNodes = function splitNodes(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n mode = 'lowest',\n voids = false\n } = options;\n var {\n match,\n at = editor.selection,\n height = 0,\n always = false\n } = options;\n if (match == null) {\n match = n => Element.isElement(n) && Editor.isBlock(editor, n);\n }\n if (Range.isRange(at)) {\n at = deleteRange(editor, at);\n }\n // If the target is a path, the default height-skipping and position\n // counters need to account for us potentially splitting at a non-leaf.\n if (Path.isPath(at)) {\n var path = at;\n var point = Editor.point(editor, path);\n var [parent] = Editor.parent(editor, path);\n match = n => n === parent;\n height = point.path.length - path.length + 1;\n at = point;\n always = true;\n }\n if (!at) {\n return;\n }\n var beforeRef = Editor.pointRef(editor, at, {\n affinity: 'backward'\n });\n var afterRef;\n try {\n var [highest] = Editor.nodes(editor, {\n at,\n match,\n mode,\n voids\n });\n if (!highest) {\n return;\n }\n var voidMatch = Editor.void(editor, {\n at,\n mode: 'highest'\n });\n var nudge = 0;\n if (!voids && voidMatch) {\n var [voidNode, voidPath] = voidMatch;\n if (Element.isElement(voidNode) && editor.isInline(voidNode)) {\n var after = Editor.after(editor, voidPath);\n if (!after) {\n var text = {\n text: ''\n };\n var afterPath = Path.next(voidPath);\n Transforms.insertNodes(editor, text, {\n at: afterPath,\n voids\n });\n after = Editor.point(editor, afterPath);\n }\n at = after;\n always = true;\n }\n var siblingHeight = at.path.length - voidPath.length;\n height = siblingHeight + 1;\n always = true;\n }\n afterRef = Editor.pointRef(editor, at);\n var depth = at.path.length - height;\n var [, highestPath] = highest;\n var lowestPath = at.path.slice(0, depth);\n var position = height === 0 ? at.offset : at.path[depth] + nudge;\n for (var [node, _path] of Editor.levels(editor, {\n at: lowestPath,\n reverse: true,\n voids\n })) {\n var split = false;\n if (_path.length < highestPath.length || _path.length === 0 || !voids && Element.isElement(node) && Editor.isVoid(editor, node)) {\n break;\n }\n var _point = beforeRef.current;\n var isEnd = Editor.isEnd(editor, _point, _path);\n if (always || !beforeRef || !Editor.isEdge(editor, _point, _path)) {\n split = true;\n var properties = Node.extractProps(node);\n editor.apply({\n type: 'split_node',\n path: _path,\n position,\n properties\n });\n }\n position = _path[_path.length - 1] + (split || isEnd ? 1 : 0);\n }\n if (options.at == null) {\n var _point2 = afterRef.current || Editor.end(editor, []);\n Transforms.select(editor, _point2);\n }\n } finally {\n var _afterRef;\n beforeRef.unref();\n (_afterRef = afterRef) === null || _afterRef === void 0 || _afterRef.unref();\n }\n });\n};\n\nvar unsetNodes = function unsetNodes(editor, props) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (!Array.isArray(props)) {\n props = [props];\n }\n var obj = {};\n for (var key of props) {\n obj[key] = null;\n }\n Transforms.setNodes(editor, obj, options);\n};\n\nvar unwrapNodes = function unwrapNodes(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n mode = 'lowest',\n split = false,\n voids = false\n } = options;\n var {\n at = editor.selection,\n match\n } = options;\n if (!at) {\n return;\n }\n if (match == null) {\n match = Path.isPath(at) ? matchPath(editor, at) : n => Element.isElement(n) && Editor.isBlock(editor, n);\n }\n if (Path.isPath(at)) {\n at = Editor.range(editor, at);\n }\n var rangeRef = Range.isRange(at) ? Editor.rangeRef(editor, at) : null;\n var matches = Editor.nodes(editor, {\n at,\n match,\n mode,\n voids\n });\n var pathRefs = Array.from(matches, _ref => {\n var [, p] = _ref;\n return Editor.pathRef(editor, p);\n }\n // unwrapNode will call liftNode which does not support splitting the node when nested.\n // If we do not reverse the order and call it from top to the bottom, it will remove all blocks\n // that wrap target node. So we reverse the order.\n ).reverse();\n var _loop = function _loop() {\n var path = pathRef.unref();\n var [node] = Editor.node(editor, path);\n var range = Editor.range(editor, path);\n if (split && rangeRef) {\n range = Range.intersection(rangeRef.current, range);\n }\n Transforms.liftNodes(editor, {\n at: range,\n match: n => Element.isAncestor(node) && node.children.includes(n),\n voids\n });\n };\n for (var pathRef of pathRefs) {\n _loop();\n }\n if (rangeRef) {\n rangeRef.unref();\n }\n });\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; }\nvar wrapNodes = function wrapNodes(editor, element) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n mode = 'lowest',\n split = false,\n voids = false\n } = options;\n var {\n match,\n at = editor.selection\n } = options;\n if (!at) {\n return;\n }\n if (match == null) {\n if (Path.isPath(at)) {\n match = matchPath(editor, at);\n } else if (editor.isInline(element)) {\n match = n => Element.isElement(n) && Editor.isInline(editor, n) || Text.isText(n);\n } else {\n match = n => Element.isElement(n) && Editor.isBlock(editor, n);\n }\n }\n if (split && Range.isRange(at)) {\n var [start, end] = Range.edges(at);\n var rangeRef = Editor.rangeRef(editor, at, {\n affinity: 'inward'\n });\n // Always split if we're in the middle of a block, to ensure that text\n // node boundaries are handled correctly.\n var isAtBlockEdge = point => {\n var blockAbove = Editor.above(editor, {\n at: point,\n match: n => Element.isElement(n) && Editor.isBlock(editor, n)\n });\n return blockAbove && Editor.isEdge(editor, point, blockAbove[1]);\n };\n Transforms.splitNodes(editor, {\n at: end,\n match,\n voids,\n always: !isAtBlockEdge(end)\n });\n Transforms.splitNodes(editor, {\n at: start,\n match,\n voids,\n always: !isAtBlockEdge(start)\n });\n at = rangeRef.unref();\n if (options.at == null) {\n Transforms.select(editor, at);\n }\n }\n var roots = Array.from(Editor.nodes(editor, {\n at,\n match: editor.isInline(element) ? n => Element.isElement(n) && Editor.isBlock(editor, n) : n => Editor.isEditor(n),\n mode: 'lowest',\n voids\n }));\n var _loop = function _loop() {\n var a = Range.isRange(at) ? Range.intersection(at, Editor.range(editor, rootPath)) : at;\n if (!a) {\n return 0; // continue\n }\n var matches = Array.from(Editor.nodes(editor, {\n at: a,\n match,\n mode,\n voids\n }));\n if (matches.length > 0) {\n var [first] = matches;\n var last = matches[matches.length - 1];\n var [, firstPath] = first;\n var [, lastPath] = last;\n if (firstPath.length === 0 && lastPath.length === 0) {\n // if there's no matching parent - usually means the node is an editor - don't do anything\n return 0; // continue\n }\n var commonPath = Path.equals(firstPath, lastPath) ? Path.parent(firstPath) : Path.common(firstPath, lastPath);\n var range = Editor.range(editor, firstPath, lastPath);\n var commonNodeEntry = Editor.node(editor, commonPath);\n var [commonNode] = commonNodeEntry;\n var depth = commonPath.length + 1;\n var wrapperPath = Path.next(lastPath.slice(0, depth));\n var wrapper = _objectSpread(_objectSpread({}, element), {}, {\n children: []\n });\n Transforms.insertNodes(editor, wrapper, {\n at: wrapperPath,\n voids\n });\n Transforms.moveNodes(editor, {\n at: range,\n match: n => Element.isAncestor(commonNode) && commonNode.children.includes(n),\n to: wrapperPath.concat(0),\n voids\n });\n }\n },\n _ret;\n for (var [, rootPath] of roots) {\n _ret = _loop();\n if (_ret === 0) continue;\n }\n });\n};\n\n/**\n * Create a new Slate `Editor` object.\n */\nvar createEditor = () => {\n var editor = {\n children: [],\n operations: [],\n selection: null,\n marks: null,\n isElementReadOnly: () => false,\n isInline: () => false,\n isSelectable: () => true,\n isVoid: () => false,\n markableVoid: () => false,\n onChange: () => {},\n // Core\n apply: function apply$1() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return apply(editor, ...args);\n },\n // Editor\n addMark: function addMark$1() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return addMark(editor, ...args);\n },\n deleteBackward: function deleteBackward$1() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return deleteBackward(editor, ...args);\n },\n deleteForward: function deleteForward$1() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return deleteForward(editor, ...args);\n },\n deleteFragment: function deleteFragment$1() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n return deleteFragment(editor, ...args);\n },\n getFragment: function getFragment$1() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n return getFragment(editor, ...args);\n },\n insertBreak: function insertBreak$1() {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n return insertBreak(editor, ...args);\n },\n insertSoftBreak: function insertSoftBreak$1() {\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n args[_key8] = arguments[_key8];\n }\n return insertSoftBreak(editor, ...args);\n },\n insertFragment: function insertFragment$1() {\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n return insertFragment(editor, ...args);\n },\n insertNode: function insertNode$1() {\n for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n args[_key10] = arguments[_key10];\n }\n return insertNode(editor, ...args);\n },\n insertText: function insertText$1() {\n for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\n args[_key11] = arguments[_key11];\n }\n return insertText(editor, ...args);\n },\n normalizeNode: function normalizeNode$1() {\n for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\n args[_key12] = arguments[_key12];\n }\n return normalizeNode(editor, ...args);\n },\n removeMark: function removeMark$1() {\n for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {\n args[_key13] = arguments[_key13];\n }\n return removeMark(editor, ...args);\n },\n getDirtyPaths: function getDirtyPaths$1() {\n for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {\n args[_key14] = arguments[_key14];\n }\n return getDirtyPaths(editor, ...args);\n },\n shouldNormalize: function shouldNormalize$1() {\n for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {\n args[_key15] = arguments[_key15];\n }\n return shouldNormalize(editor, ...args);\n },\n // Editor interface\n above: function above$1() {\n for (var _len16 = arguments.length, args = new Array(_len16), _key16 = 0; _key16 < _len16; _key16++) {\n args[_key16] = arguments[_key16];\n }\n return above(editor, ...args);\n },\n after: function after$1() {\n for (var _len17 = arguments.length, args = new Array(_len17), _key17 = 0; _key17 < _len17; _key17++) {\n args[_key17] = arguments[_key17];\n }\n return after(editor, ...args);\n },\n before: function before$1() {\n for (var _len18 = arguments.length, args = new Array(_len18), _key18 = 0; _key18 < _len18; _key18++) {\n args[_key18] = arguments[_key18];\n }\n return before(editor, ...args);\n },\n collapse: function collapse$1() {\n for (var _len19 = arguments.length, args = new Array(_len19), _key19 = 0; _key19 < _len19; _key19++) {\n args[_key19] = arguments[_key19];\n }\n return collapse(editor, ...args);\n },\n delete: function _delete() {\n for (var _len20 = arguments.length, args = new Array(_len20), _key20 = 0; _key20 < _len20; _key20++) {\n args[_key20] = arguments[_key20];\n }\n return deleteText(editor, ...args);\n },\n deselect: function deselect$1() {\n for (var _len21 = arguments.length, args = new Array(_len21), _key21 = 0; _key21 < _len21; _key21++) {\n args[_key21] = arguments[_key21];\n }\n return deselect(editor, ...args);\n },\n edges: function edges$1() {\n for (var _len22 = arguments.length, args = new Array(_len22), _key22 = 0; _key22 < _len22; _key22++) {\n args[_key22] = arguments[_key22];\n }\n return edges(editor, ...args);\n },\n elementReadOnly: function elementReadOnly$1() {\n for (var _len23 = arguments.length, args = new Array(_len23), _key23 = 0; _key23 < _len23; _key23++) {\n args[_key23] = arguments[_key23];\n }\n return elementReadOnly(editor, ...args);\n },\n end: function end$1() {\n for (var _len24 = arguments.length, args = new Array(_len24), _key24 = 0; _key24 < _len24; _key24++) {\n args[_key24] = arguments[_key24];\n }\n return end(editor, ...args);\n },\n first: function first$1() {\n for (var _len25 = arguments.length, args = new Array(_len25), _key25 = 0; _key25 < _len25; _key25++) {\n args[_key25] = arguments[_key25];\n }\n return first(editor, ...args);\n },\n fragment: function fragment$1() {\n for (var _len26 = arguments.length, args = new Array(_len26), _key26 = 0; _key26 < _len26; _key26++) {\n args[_key26] = arguments[_key26];\n }\n return fragment(editor, ...args);\n },\n getMarks: function getMarks() {\n for (var _len27 = arguments.length, args = new Array(_len27), _key27 = 0; _key27 < _len27; _key27++) {\n args[_key27] = arguments[_key27];\n }\n return marks(editor, ...args);\n },\n hasBlocks: function hasBlocks$1() {\n for (var _len28 = arguments.length, args = new Array(_len28), _key28 = 0; _key28 < _len28; _key28++) {\n args[_key28] = arguments[_key28];\n }\n return hasBlocks(editor, ...args);\n },\n hasInlines: function hasInlines$1() {\n for (var _len29 = arguments.length, args = new Array(_len29), _key29 = 0; _key29 < _len29; _key29++) {\n args[_key29] = arguments[_key29];\n }\n return hasInlines(editor, ...args);\n },\n hasPath: function hasPath$1() {\n for (var _len30 = arguments.length, args = new Array(_len30), _key30 = 0; _key30 < _len30; _key30++) {\n args[_key30] = arguments[_key30];\n }\n return hasPath(editor, ...args);\n },\n hasTexts: function hasTexts$1() {\n for (var _len31 = arguments.length, args = new Array(_len31), _key31 = 0; _key31 < _len31; _key31++) {\n args[_key31] = arguments[_key31];\n }\n return hasTexts(editor, ...args);\n },\n insertNodes: function insertNodes$1() {\n for (var _len32 = arguments.length, args = new Array(_len32), _key32 = 0; _key32 < _len32; _key32++) {\n args[_key32] = arguments[_key32];\n }\n return insertNodes(editor, ...args);\n },\n isBlock: function isBlock$1() {\n for (var _len33 = arguments.length, args = new Array(_len33), _key33 = 0; _key33 < _len33; _key33++) {\n args[_key33] = arguments[_key33];\n }\n return isBlock(editor, ...args);\n },\n isEdge: function isEdge$1() {\n for (var _len34 = arguments.length, args = new Array(_len34), _key34 = 0; _key34 < _len34; _key34++) {\n args[_key34] = arguments[_key34];\n }\n return isEdge(editor, ...args);\n },\n isEmpty: function isEmpty$1() {\n for (var _len35 = arguments.length, args = new Array(_len35), _key35 = 0; _key35 < _len35; _key35++) {\n args[_key35] = arguments[_key35];\n }\n return isEmpty(editor, ...args);\n },\n isEnd: function isEnd$1() {\n for (var _len36 = arguments.length, args = new Array(_len36), _key36 = 0; _key36 < _len36; _key36++) {\n args[_key36] = arguments[_key36];\n }\n return isEnd(editor, ...args);\n },\n isNormalizing: function isNormalizing$1() {\n for (var _len37 = arguments.length, args = new Array(_len37), _key37 = 0; _key37 < _len37; _key37++) {\n args[_key37] = arguments[_key37];\n }\n return isNormalizing(editor, ...args);\n },\n isStart: function isStart$1() {\n for (var _len38 = arguments.length, args = new Array(_len38), _key38 = 0; _key38 < _len38; _key38++) {\n args[_key38] = arguments[_key38];\n }\n return isStart(editor, ...args);\n },\n last: function last$1() {\n for (var _len39 = arguments.length, args = new Array(_len39), _key39 = 0; _key39 < _len39; _key39++) {\n args[_key39] = arguments[_key39];\n }\n return last(editor, ...args);\n },\n leaf: function leaf$1() {\n for (var _len40 = arguments.length, args = new Array(_len40), _key40 = 0; _key40 < _len40; _key40++) {\n args[_key40] = arguments[_key40];\n }\n return leaf(editor, ...args);\n },\n levels: function levels$1() {\n for (var _len41 = arguments.length, args = new Array(_len41), _key41 = 0; _key41 < _len41; _key41++) {\n args[_key41] = arguments[_key41];\n }\n return levels(editor, ...args);\n },\n liftNodes: function liftNodes$1() {\n for (var _len42 = arguments.length, args = new Array(_len42), _key42 = 0; _key42 < _len42; _key42++) {\n args[_key42] = arguments[_key42];\n }\n return liftNodes(editor, ...args);\n },\n mergeNodes: function mergeNodes$1() {\n for (var _len43 = arguments.length, args = new Array(_len43), _key43 = 0; _key43 < _len43; _key43++) {\n args[_key43] = arguments[_key43];\n }\n return mergeNodes(editor, ...args);\n },\n move: function move$1() {\n for (var _len44 = arguments.length, args = new Array(_len44), _key44 = 0; _key44 < _len44; _key44++) {\n args[_key44] = arguments[_key44];\n }\n return move(editor, ...args);\n },\n moveNodes: function moveNodes$1() {\n for (var _len45 = arguments.length, args = new Array(_len45), _key45 = 0; _key45 < _len45; _key45++) {\n args[_key45] = arguments[_key45];\n }\n return moveNodes(editor, ...args);\n },\n next: function next$1() {\n for (var _len46 = arguments.length, args = new Array(_len46), _key46 = 0; _key46 < _len46; _key46++) {\n args[_key46] = arguments[_key46];\n }\n return next(editor, ...args);\n },\n node: function node$1() {\n for (var _len47 = arguments.length, args = new Array(_len47), _key47 = 0; _key47 < _len47; _key47++) {\n args[_key47] = arguments[_key47];\n }\n return node(editor, ...args);\n },\n nodes: function nodes$1() {\n for (var _len48 = arguments.length, args = new Array(_len48), _key48 = 0; _key48 < _len48; _key48++) {\n args[_key48] = arguments[_key48];\n }\n return nodes(editor, ...args);\n },\n normalize: function normalize$1() {\n for (var _len49 = arguments.length, args = new Array(_len49), _key49 = 0; _key49 < _len49; _key49++) {\n args[_key49] = arguments[_key49];\n }\n return normalize(editor, ...args);\n },\n parent: function parent$1() {\n for (var _len50 = arguments.length, args = new Array(_len50), _key50 = 0; _key50 < _len50; _key50++) {\n args[_key50] = arguments[_key50];\n }\n return parent(editor, ...args);\n },\n path: function path$1() {\n for (var _len51 = arguments.length, args = new Array(_len51), _key51 = 0; _key51 < _len51; _key51++) {\n args[_key51] = arguments[_key51];\n }\n return path(editor, ...args);\n },\n pathRef: function pathRef$1() {\n for (var _len52 = arguments.length, args = new Array(_len52), _key52 = 0; _key52 < _len52; _key52++) {\n args[_key52] = arguments[_key52];\n }\n return pathRef(editor, ...args);\n },\n pathRefs: function pathRefs$1() {\n for (var _len53 = arguments.length, args = new Array(_len53), _key53 = 0; _key53 < _len53; _key53++) {\n args[_key53] = arguments[_key53];\n }\n return pathRefs(editor, ...args);\n },\n point: function point$1() {\n for (var _len54 = arguments.length, args = new Array(_len54), _key54 = 0; _key54 < _len54; _key54++) {\n args[_key54] = arguments[_key54];\n }\n return point(editor, ...args);\n },\n pointRef: function pointRef$1() {\n for (var _len55 = arguments.length, args = new Array(_len55), _key55 = 0; _key55 < _len55; _key55++) {\n args[_key55] = arguments[_key55];\n }\n return pointRef(editor, ...args);\n },\n pointRefs: function pointRefs$1() {\n for (var _len56 = arguments.length, args = new Array(_len56), _key56 = 0; _key56 < _len56; _key56++) {\n args[_key56] = arguments[_key56];\n }\n return pointRefs(editor, ...args);\n },\n positions: function positions$1() {\n for (var _len57 = arguments.length, args = new Array(_len57), _key57 = 0; _key57 < _len57; _key57++) {\n args[_key57] = arguments[_key57];\n }\n return positions(editor, ...args);\n },\n previous: function previous$1() {\n for (var _len58 = arguments.length, args = new Array(_len58), _key58 = 0; _key58 < _len58; _key58++) {\n args[_key58] = arguments[_key58];\n }\n return previous(editor, ...args);\n },\n range: function range$1() {\n for (var _len59 = arguments.length, args = new Array(_len59), _key59 = 0; _key59 < _len59; _key59++) {\n args[_key59] = arguments[_key59];\n }\n return range(editor, ...args);\n },\n rangeRef: function rangeRef$1() {\n for (var _len60 = arguments.length, args = new Array(_len60), _key60 = 0; _key60 < _len60; _key60++) {\n args[_key60] = arguments[_key60];\n }\n return rangeRef(editor, ...args);\n },\n rangeRefs: function rangeRefs$1() {\n for (var _len61 = arguments.length, args = new Array(_len61), _key61 = 0; _key61 < _len61; _key61++) {\n args[_key61] = arguments[_key61];\n }\n return rangeRefs(editor, ...args);\n },\n removeNodes: function removeNodes$1() {\n for (var _len62 = arguments.length, args = new Array(_len62), _key62 = 0; _key62 < _len62; _key62++) {\n args[_key62] = arguments[_key62];\n }\n return removeNodes(editor, ...args);\n },\n select: function select$1() {\n for (var _len63 = arguments.length, args = new Array(_len63), _key63 = 0; _key63 < _len63; _key63++) {\n args[_key63] = arguments[_key63];\n }\n return select(editor, ...args);\n },\n setNodes: function setNodes$1() {\n for (var _len64 = arguments.length, args = new Array(_len64), _key64 = 0; _key64 < _len64; _key64++) {\n args[_key64] = arguments[_key64];\n }\n return setNodes(editor, ...args);\n },\n setNormalizing: function setNormalizing$1() {\n for (var _len65 = arguments.length, args = new Array(_len65), _key65 = 0; _key65 < _len65; _key65++) {\n args[_key65] = arguments[_key65];\n }\n return setNormalizing(editor, ...args);\n },\n setPoint: function setPoint$1() {\n for (var _len66 = arguments.length, args = new Array(_len66), _key66 = 0; _key66 < _len66; _key66++) {\n args[_key66] = arguments[_key66];\n }\n return setPoint(editor, ...args);\n },\n setSelection: function setSelection$1() {\n for (var _len67 = arguments.length, args = new Array(_len67), _key67 = 0; _key67 < _len67; _key67++) {\n args[_key67] = arguments[_key67];\n }\n return setSelection(editor, ...args);\n },\n splitNodes: function splitNodes$1() {\n for (var _len68 = arguments.length, args = new Array(_len68), _key68 = 0; _key68 < _len68; _key68++) {\n args[_key68] = arguments[_key68];\n }\n return splitNodes(editor, ...args);\n },\n start: function start$1() {\n for (var _len69 = arguments.length, args = new Array(_len69), _key69 = 0; _key69 < _len69; _key69++) {\n args[_key69] = arguments[_key69];\n }\n return start(editor, ...args);\n },\n string: function string$1() {\n for (var _len70 = arguments.length, args = new Array(_len70), _key70 = 0; _key70 < _len70; _key70++) {\n args[_key70] = arguments[_key70];\n }\n return string(editor, ...args);\n },\n unhangRange: function unhangRange$1() {\n for (var _len71 = arguments.length, args = new Array(_len71), _key71 = 0; _key71 < _len71; _key71++) {\n args[_key71] = arguments[_key71];\n }\n return unhangRange(editor, ...args);\n },\n unsetNodes: function unsetNodes$1() {\n for (var _len72 = arguments.length, args = new Array(_len72), _key72 = 0; _key72 < _len72; _key72++) {\n args[_key72] = arguments[_key72];\n }\n return unsetNodes(editor, ...args);\n },\n unwrapNodes: function unwrapNodes$1() {\n for (var _len73 = arguments.length, args = new Array(_len73), _key73 = 0; _key73 < _len73; _key73++) {\n args[_key73] = arguments[_key73];\n }\n return unwrapNodes(editor, ...args);\n },\n void: function _void() {\n for (var _len74 = arguments.length, args = new Array(_len74), _key74 = 0; _key74 < _len74; _key74++) {\n args[_key74] = arguments[_key74];\n }\n return getVoid(editor, ...args);\n },\n withoutNormalizing: function withoutNormalizing$1() {\n for (var _len75 = arguments.length, args = new Array(_len75), _key75 = 0; _key75 < _len75; _key75++) {\n args[_key75] = arguments[_key75];\n }\n return withoutNormalizing(editor, ...args);\n },\n wrapNodes: function wrapNodes$1() {\n for (var _len76 = arguments.length, args = new Array(_len76), _key76 = 0; _key76 < _len76; _key76++) {\n args[_key76] = arguments[_key76];\n }\n return wrapNodes(editor, ...args);\n },\n shouldMergeNodesRemovePrevNode: function shouldMergeNodesRemovePrevNode$1() {\n for (var _len77 = arguments.length, args = new Array(_len77), _key77 = 0; _key77 < _len77; _key77++) {\n args[_key77] = arguments[_key77];\n }\n return shouldMergeNodesRemovePrevNode(editor, ...args);\n }\n };\n return editor;\n};\n\nexport { Editor, Element, Location, Node, Operation, Path, PathRef, Point, PointRef, Range, RangeRef, Scrubber, Span, Text, Transforms, above, addMark, after, apply, before, collapse, createEditor, deleteBackward, deleteForward, deleteFragment, deleteText, deselect, edges, elementReadOnly, end, first, fragment, getDirtyPaths, getFragment, getVoid, hasBlocks, hasInlines, hasPath, hasTexts, insertBreak, insertFragment, insertNode, insertNodes, insertSoftBreak, insertText, isBlock, isEdge, isEditor, isEmpty, isEnd, isNormalizing, isObject, isStart, last, leaf, levels, liftNodes, marks, mergeNodes, move, moveNodes, next, node, nodes, normalize, normalizeNode, parent, path, pathRef, pathRefs, point, pointRef, pointRefs, positions, previous, range, rangeRef, rangeRefs, removeMark, removeNodes, select, setNodes, setNormalizing, setPoint, setSelection, shouldMergeNodesRemovePrevNode, shouldNormalize, splitNodes, start, string, unhangRange, unsetNodes, unwrapNodes, withoutNormalizing, wrapNodes };\n//# sourceMappingURL=index.es.js.map\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n/**\n * Constants.\n */\n\nvar IS_MAC = typeof window != 'undefined' && /Mac|iPod|iPhone|iPad/.test(window.navigator.platform);\n\nvar MODIFIERS = {\n alt: 'altKey',\n control: 'ctrlKey',\n meta: 'metaKey',\n shift: 'shiftKey'\n};\n\nvar ALIASES = {\n add: '+',\n break: 'pause',\n cmd: 'meta',\n command: 'meta',\n ctl: 'control',\n ctrl: 'control',\n del: 'delete',\n down: 'arrowdown',\n esc: 'escape',\n ins: 'insert',\n left: 'arrowleft',\n mod: IS_MAC ? 'meta' : 'control',\n opt: 'alt',\n option: 'alt',\n return: 'enter',\n right: 'arrowright',\n space: ' ',\n spacebar: ' ',\n up: 'arrowup',\n win: 'meta',\n windows: 'meta'\n};\n\nvar CODES = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n control: 17,\n alt: 18,\n pause: 19,\n capslock: 20,\n escape: 27,\n ' ': 32,\n pageup: 33,\n pagedown: 34,\n end: 35,\n home: 36,\n arrowleft: 37,\n arrowup: 38,\n arrowright: 39,\n arrowdown: 40,\n insert: 45,\n delete: 46,\n meta: 91,\n numlock: 144,\n scrolllock: 145,\n ';': 186,\n '=': 187,\n ',': 188,\n '-': 189,\n '.': 190,\n '/': 191,\n '`': 192,\n '[': 219,\n '\\\\': 220,\n ']': 221,\n '\\'': 222\n};\n\nfor (var f = 1; f < 20; f++) {\n CODES['f' + f] = 111 + f;\n}\n\n/**\n * Is hotkey?\n */\n\nfunction isHotkey(hotkey, options, event) {\n if (options && !('byKey' in options)) {\n event = options;\n options = null;\n }\n\n if (!Array.isArray(hotkey)) {\n hotkey = [hotkey];\n }\n\n var array = hotkey.map(function (string) {\n return parseHotkey(string, options);\n });\n var check = function check(e) {\n return array.some(function (object) {\n return compareHotkey(object, e);\n });\n };\n var ret = event == null ? check : check(event);\n return ret;\n}\n\nfunction isCodeHotkey(hotkey, event) {\n return isHotkey(hotkey, event);\n}\n\nfunction isKeyHotkey(hotkey, event) {\n return isHotkey(hotkey, { byKey: true }, event);\n}\n\n/**\n * Parse.\n */\n\nfunction parseHotkey(hotkey, options) {\n var byKey = options && options.byKey;\n var ret = {};\n\n // Special case to handle the `+` key since we use it as a separator.\n hotkey = hotkey.replace('++', '+add');\n var values = hotkey.split('+');\n var length = values.length;\n\n // Ensure that all the modifiers are set to false unless the hotkey has them.\n\n for (var k in MODIFIERS) {\n ret[MODIFIERS[k]] = false;\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = values[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var value = _step.value;\n\n var optional = value.endsWith('?') && value.length > 1;\n\n if (optional) {\n value = value.slice(0, -1);\n }\n\n var name = toKeyName(value);\n var modifier = MODIFIERS[name];\n\n if (value.length > 1 && !modifier && !ALIASES[value] && !CODES[name]) {\n throw new TypeError('Unknown modifier: \"' + value + '\"');\n }\n\n if (length === 1 || !modifier) {\n if (byKey) {\n ret.key = name;\n } else {\n ret.which = toKeyCode(value);\n }\n }\n\n if (modifier) {\n ret[modifier] = optional ? null : true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return ret;\n}\n\n/**\n * Compare.\n */\n\nfunction compareHotkey(object, event) {\n for (var key in object) {\n var expected = object[key];\n var actual = void 0;\n\n if (expected == null) {\n continue;\n }\n\n if (key === 'key' && event.key != null) {\n actual = event.key.toLowerCase();\n } else if (key === 'which') {\n actual = expected === 91 && event.which === 93 ? 91 : event.which;\n } else {\n actual = event[key];\n }\n\n if (actual == null && expected === false) {\n continue;\n }\n\n if (actual !== expected) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Utils.\n */\n\nfunction toKeyCode(name) {\n name = toKeyName(name);\n var code = CODES[name] || name.toUpperCase().charCodeAt(0);\n return code;\n}\n\nfunction toKeyName(name) {\n name = name.toLowerCase();\n name = ALIASES[name] || name;\n return name;\n}\n\n/**\n * Export.\n */\n\nexports.default = isHotkey;\nexports.isHotkey = isHotkey;\nexports.isCodeHotkey = isCodeHotkey;\nexports.isKeyHotkey = isKeyHotkey;\nexports.parseHotkey = parseHotkey;\nexports.compareHotkey = compareHotkey;\nexports.toKeyCode = toKeyCode;\nexports.toKeyName = toKeyName;","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) && (\n// avoid lookbehind (buggy in safari < 16.4)\n!IS_CHROME || IS_CHROME_LEGACY); // wechat and low chrome is real wechat\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 // Return if no dom node is associated with the editor, which means the editor is not yet mounted\n // or has been unmounted. This can happen especially, while retrying to focus the editor.\n if (!EDITOR_TO_ELEMENT.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\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 === 'backward' || !searchDirection) {\n var _leafNodes$findLast;\n var _leafNodes = [...getLeafNodes(elementNode === null || elementNode === void 0 ? void 0 : elementNode.previousElementSibling), ...getLeafNodes(elementNode)];\n leafNode = (_leafNodes$findLast = _leafNodes.findLast(leaf => isBefore(nonEditableNode, leaf))) !== null && _leafNodes$findLast !== void 0 ? _leafNodes$findLast : null;\n }\n if (searchDirection === 'forward' || !searchDirection) {\n var _leafNodes2$find;\n var _leafNodes2 = [...getLeafNodes(elementNode), ...getLeafNodes(elementNode === null || elementNode === void 0 ? void 0 : elementNode.nextElementSibling)];\n leafNode = (_leafNodes2$find = _leafNodes2.find(leaf => isAfter(nonEditableNode, leaf))) !== null && _leafNodes2$find !== void 0 ? _leafNodes2$find : 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[left], parentRangeBoundary);\n};\n\nfunction ownKeys$1(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$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(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$1(_objectSpread$1({}, 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 case 'insert_text':\n case 'remove_text':\n case 'set_selection':\n {\n // FIXME: Rename to something like IS_DOM_EDITOR_DESYNCED\n // to better reflect reality, see #5792\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 `<div>/<span>` nodes will end up having it erased by\n // most browsers. (2018/04/27)\n if (startVoid) {\n attach = contents.querySelector('[data-slate-spacer]');\n }\n // Remove any zero-width space spans from the cloned DOM so that they don't\n // show up elsewhere when pasted.\n Array.from(contents.querySelectorAll('[data-slate-zero-width]')).forEach(zw => {\n var isNewline = zw.getAttribute('data-slate-zero-width') === 'n';\n zw.textContent = isNewline ? '\\n' : '';\n });\n // Set a `data-slate-fragment` attribute on a non-empty node, so it shows up\n // in the HTML, and can be used for intra-Slate pasting. If it's a text\n // node, wrap it in a `<span>` so we have something to set an attribute on.\n if (isDOMText(attach)) {\n var span = attach.ownerDocument.createElement('span');\n // COMPAT: In Chrome and Safari, if we don't add the `white-space` style\n // then leading and trailing spaces will be ignored. (2017/09/21)\n span.style.whiteSpace = 'pre';\n span.appendChild(attach);\n contents.appendChild(span);\n attach = span;\n }\n var fragment = e.getFragment();\n var string = JSON.stringify(fragment);\n var encoded = window.btoa(encodeURIComponent(string));\n attach.setAttribute('data-slate-fragment', encoded);\n data.setData(\"application/\".concat(clipboardFormatKey), encoded);\n // Add the content to a <div> so that we can get its inner HTML.\n var div = contents.ownerDocument.createElement('div');\n div.appendChild(contents);\n div.setAttribute('hidden', 'true');\n contents.ownerDocument.body.appendChild(div);\n data.setData('text/html', div.innerHTML);\n data.setData('text/plain', getPlainText(div));\n contents.ownerDocument.body.removeChild(div);\n return data;\n };\n e.insertData = data => {\n if (!e.insertFragmentData(data)) {\n e.insertTextData(data);\n }\n };\n e.insertFragmentData = data => {\n /**\n * Checking copied fragment from application/x-slate-fragment or data-slate-fragment\n */\n var fragment = data.getData(\"application/\".concat(clipboardFormatKey)) || getSlateFragmentAttribute(data);\n if (fragment) {\n var decoded = decodeURIComponent(window.atob(fragment));\n var parsed = JSON.parse(decoded);\n e.insertFragment(parsed);\n return true;\n }\n return false;\n };\n e.insertTextData = data => {\n var text = data.getData('text/plain');\n if (text) {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var split = false;\n for (var line of lines) {\n if (split) {\n Transforms.splitNodes(e, {\n always: true\n });\n }\n e.insertText(line);\n split = true;\n }\n return true;\n }\n return false;\n };\n e.onChange = options => {\n var onContextChange = EDITOR_TO_ON_CHANGE.get(e);\n if (onContextChange) {\n onContextChange(options);\n }\n onChange(options);\n };\n return e;\n};\nvar getMatches = (e, path) => {\n var matches = [];\n for (var [n, p] of Editor.levels(e, {\n at: path\n })) {\n var key = DOMEditor.findKey(e, n);\n matches.push([p, key]);\n }\n return matches;\n};\n\nvar TRIPLE_CLICK = 3;\n\n/**\n * Hotkey mappings for each platform.\n */\nvar HOTKEYS = {\n bold: 'mod+b',\n compose: ['down', 'left', 'right', 'up', 'backspace', 'enter'],\n moveBackward: 'left',\n moveForward: 'right',\n moveWordBackward: 'ctrl+left',\n moveWordForward: 'ctrl+right',\n deleteBackward: 'shift?+backspace',\n deleteForward: 'shift?+delete',\n extendBackward: 'shift+left',\n extendForward: 'shift+right',\n italic: 'mod+i',\n insertSoftBreak: 'shift+enter',\n splitBlock: 'enter',\n undo: 'mod+z'\n};\nvar APPLE_HOTKEYS = {\n moveLineBackward: 'opt+up',\n moveLineForward: 'opt+down',\n moveWordBackward: 'opt+left',\n moveWordForward: 'opt+right',\n deleteBackward: ['ctrl+backspace', 'ctrl+h'],\n deleteForward: ['ctrl+delete', 'ctrl+d'],\n deleteLineBackward: 'cmd+shift?+backspace',\n deleteLineForward: ['cmd+shift?+delete', 'ctrl+k'],\n deleteWordBackward: 'opt+shift?+backspace',\n deleteWordForward: 'opt+shift?+delete',\n extendLineBackward: 'opt+shift+up',\n extendLineForward: 'opt+shift+down',\n redo: 'cmd+shift+z',\n transposeCharacter: 'ctrl+t'\n};\nvar WINDOWS_HOTKEYS = {\n deleteWordBackward: 'ctrl+shift?+backspace',\n deleteWordForward: 'ctrl+shift?+delete',\n redo: ['ctrl+y', 'ctrl+shift+z']\n};\n/**\n * Create a platform-aware hotkey checker.\n */\nvar create = key => {\n var generic = HOTKEYS[key];\n var apple = APPLE_HOTKEYS[key];\n var windows = WINDOWS_HOTKEYS[key];\n var isGeneric = generic && isHotkey(generic);\n var isApple = apple && isHotkey(apple);\n var isWindows = windows && isHotkey(windows);\n return event => {\n if (isGeneric && isGeneric(event)) return true;\n if (IS_APPLE && isApple && isApple(event)) return true;\n if (!IS_APPLE && isWindows && isWindows(event)) return true;\n return false;\n };\n};\n/**\n * Hotkeys.\n */\nvar hotkeys = {\n isBold: create('bold'),\n isCompose: create('compose'),\n isMoveBackward: create('moveBackward'),\n isMoveForward: create('moveForward'),\n isDeleteBackward: create('deleteBackward'),\n isDeleteForward: create('deleteForward'),\n isDeleteLineBackward: create('deleteLineBackward'),\n isDeleteLineForward: create('deleteLineForward'),\n isDeleteWordBackward: create('deleteWordBackward'),\n isDeleteWordForward: create('deleteWordForward'),\n isExtendBackward: create('extendBackward'),\n isExtendForward: create('extendForward'),\n isExtendLineBackward: create('extendLineBackward'),\n isExtendLineForward: create('extendLineForward'),\n isItalic: create('italic'),\n isMoveLineBackward: create('moveLineBackward'),\n isMoveLineForward: create('moveLineForward'),\n isMoveWordBackward: create('moveWordBackward'),\n isMoveWordForward: create('moveWordForward'),\n isRedo: create('redo'),\n isSoftBreak: create('insertSoftBreak'),\n isSplitBlock: create('splitBlock'),\n isTransposeCharacter: create('transposeCharacter'),\n isUndo: create('undo')\n};\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\n\nvar _excluded = [\"anchor\", \"focus\"],\n _excluded2 = [\"anchor\", \"focus\"];\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; }\nvar shallowCompare = (obj1, obj2) => Object.keys(obj1).length === Object.keys(obj2).length && Object.keys(obj1).every(key => obj2.hasOwnProperty(key) && obj1[key] === obj2[key]);\nvar isDecorationFlagsEqual = (range, other) => {\n var rangeOwnProps = _objectWithoutProperties(range, _excluded);\n var otherOwnProps = _objectWithoutProperties(other, _excluded2);\n return range[PLACEHOLDER_SYMBOL] === other[PLACEHOLDER_SYMBOL] && shallowCompare(rangeOwnProps, otherOwnProps);\n};\n/**\n * Check if a list of decorator ranges are equal to another.\n *\n * PERF: this requires the two lists to also have the ranges inside them in the\n * same order, but this is an okay constraint for us since decorations are\n * kept in order, and the odd case where they aren't is okay to re-render for.\n */\nvar isElementDecorationsEqual = (list, another) => {\n if (list === another) {\n return true;\n }\n if (!list || !another) {\n return false;\n }\n if (list.length !== another.length) {\n return false;\n }\n for (var i = 0; i < list.length; i++) {\n var range = list[i];\n var other = another[i];\n if (!Range.equals(range, other) || !isDecorationFlagsEqual(range, other)) {\n return false;\n }\n }\n return true;\n};\n/**\n * Check if a list of decorator ranges are equal to another.\n *\n * PERF: this requires the two lists to also have the ranges inside them in the\n * same order, but this is an okay constraint for us since decorations are\n * kept in order, and the odd case where they aren't is okay to re-render for.\n */\nvar isTextDecorationsEqual = (list, another) => {\n if (list === another) {\n return true;\n }\n if (!list || !another) {\n return false;\n }\n if (list.length !== another.length) {\n return false;\n }\n for (var i = 0; i < list.length; i++) {\n var range = list[i];\n var other = another[i];\n // compare only offsets because paths doesn't matter for text\n if (range.anchor.offset !== other.anchor.offset || range.focus.offset !== other.focus.offset || !isDecorationFlagsEqual(range, other)) {\n return false;\n }\n }\n return true;\n};\n/**\n * Split and group decorations by each child of a node.\n *\n * @returns An array with length equal to that of `node.children`. Each index\n * corresponds to a child of `node`, and the value is an array of decorations\n * for that child.\n */\nvar splitDecorationsByChild = (editor, node, decorations) => {\n var decorationsByChild = Array.from(node.children, () => []);\n if (decorations.length === 0) {\n return decorationsByChild;\n }\n var path = DOMEditor.findPath(editor, node);\n var level = path.length;\n var ancestorRange = Editor.range(editor, path);\n var cachedChildRanges = new Array(node.children.length);\n var getChildRange = index => {\n var cachedRange = cachedChildRanges[index];\n if (cachedRange) return cachedRange;\n var childRange = Editor.range(editor, [...path, index]);\n cachedChildRanges[index] = childRange;\n return childRange;\n };\n for (var decoration of decorations) {\n var decorationRange = Range.intersection(ancestorRange, decoration);\n if (!decorationRange) continue;\n var [startPoint, endPoint] = Range.edges(decorationRange);\n var startIndex = startPoint.path[level];\n var endIndex = endPoint.path[level];\n for (var i = startIndex; i <= endIndex; i++) {\n var ds = decorationsByChild[i];\n if (!ds) continue;\n var childRange = getChildRange(i);\n var childDecorationRange = Range.intersection(childRange, decoration);\n if (!childDecorationRange) continue;\n ds.push(_objectSpread(_objectSpread({}, decoration), childDecorationRange));\n }\n }\n return decorationsByChild;\n};\n\nexport { CAN_USE_DOM, DOMEditor, DOMElement, DOMNode, DOMRange, DOMSelection, DOMStaticRange, DOMText, EDITOR_TO_ELEMENT, EDITOR_TO_FORCE_RENDER, EDITOR_TO_KEY_TO_ELEMENT, EDITOR_TO_ON_CHANGE, EDITOR_TO_PENDING_ACTION, EDITOR_TO_PENDING_DIFFS, EDITOR_TO_PENDING_INSERTION_MARKS, EDITOR_TO_PENDING_SELECTION, EDITOR_TO_PLACEHOLDER_ELEMENT, EDITOR_TO_SCHEDULE_FLUSH, EDITOR_TO_USER_MARKS, EDITOR_TO_USER_SELECTION, EDITOR_TO_WINDOW, ELEMENT_TO_NODE, HAS_BEFORE_INPUT_SUPPORT, hotkeys as Hotkeys, IS_ANDROID, IS_CHROME, IS_COMPOSING, IS_FIREFOX, IS_FIREFOX_LEGACY, IS_FOCUSED, IS_IOS, IS_NODE_MAP_DIRTY, IS_READ_ONLY, IS_UC_MOBILE, IS_WEBKIT, IS_WECHATBROWSER, Key, MARK_PLACEHOLDER_SYMBOL, NODE_TO_ELEMENT, NODE_TO_INDEX, NODE_TO_KEY, NODE_TO_PARENT, PLACEHOLDER_SYMBOL, TRIPLE_CLICK, applyStringDiff, getActiveElement, getDefaultView, getSelection, hasShadowRoot, isAfter, isBefore, isDOMElement, isDOMNode, isDOMSelection, isElementDecorationsEqual, isPlainTextOnlyPaste, isTextDecorationsEqual, isTrackedMutation, mergeStringDiffs, normalizeDOMPoint, normalizePoint, normalizeRange, normalizeStringDiff, splitDecorationsByChild, targetRange, verifyDiffState, withDOM };\n//# sourceMappingURL=index.es.js.map\n","var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","/**\n * @license React\n * react-dom.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction noop() {}\nvar Internals = {\n d: {\n f: noop,\n r: function () {\n throw Error(formatProdErrorMessage(522));\n },\n D: noop,\n C: noop,\n L: noop,\n m: noop,\n X: noop,\n S: noop,\n M: noop\n },\n p: 0,\n findDOMNode: null\n },\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\");\nfunction createPortal$1(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\nvar ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\nfunction getCrossOriginStringAs(as, input) {\n if (\"font\" === as) return \"\";\n if (\"string\" === typeof input)\n return \"use-credentials\" === input ? input : \"\";\n}\nexports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n Internals;\nexports.createPortal = function (children, container) {\n var key =\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n if (\n !container ||\n (1 !== container.nodeType &&\n 9 !== container.nodeType &&\n 11 !== container.nodeType)\n )\n throw Error(formatProdErrorMessage(299));\n return createPortal$1(children, container, null, key);\n};\nexports.flushSync = function (fn) {\n var previousTransition = ReactSharedInternals.T,\n previousUpdatePriority = Internals.p;\n try {\n if (((ReactSharedInternals.T = null), (Internals.p = 2), fn)) return fn();\n } finally {\n (ReactSharedInternals.T = previousTransition),\n (Internals.p = previousUpdatePriority),\n Internals.d.f();\n }\n};\nexports.preconnect = function (href, options) {\n \"string\" === typeof href &&\n (options\n ? ((options = options.crossOrigin),\n (options =\n \"string\" === typeof options\n ? \"use-credentials\" === options\n ? options\n : \"\"\n : void 0))\n : (options = null),\n Internals.d.C(href, options));\n};\nexports.prefetchDNS = function (href) {\n \"string\" === typeof href && Internals.d.D(href);\n};\nexports.preinit = function (href, options) {\n if (\"string\" === typeof href && options && \"string\" === typeof options.as) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n integrity =\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n fetchPriority =\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0;\n \"style\" === as\n ? Internals.d.S(\n href,\n \"string\" === typeof options.precedence ? options.precedence : void 0,\n {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority\n }\n )\n : \"script\" === as &&\n Internals.d.X(href, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n};\nexports.preinitModule = function (href, options) {\n if (\"string\" === typeof href)\n if (\"object\" === typeof options && null !== options) {\n if (null == options.as || \"script\" === options.as) {\n var crossOrigin = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n );\n Internals.d.M(href, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n } else null == options && Internals.d.M(href);\n};\nexports.preload = function (href, options) {\n if (\n \"string\" === typeof href &&\n \"object\" === typeof options &&\n null !== options &&\n \"string\" === typeof options.as\n ) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);\n Internals.d.L(href, as, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n type: \"string\" === typeof options.type ? options.type : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0,\n referrerPolicy:\n \"string\" === typeof options.referrerPolicy\n ? options.referrerPolicy\n : void 0,\n imageSrcSet:\n \"string\" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,\n imageSizes:\n \"string\" === typeof options.imageSizes ? options.imageSizes : void 0,\n media: \"string\" === typeof options.media ? options.media : void 0\n });\n }\n};\nexports.preloadModule = function (href, options) {\n if (\"string\" === typeof href)\n if (options) {\n var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);\n Internals.d.m(href, {\n as:\n \"string\" === typeof options.as && \"script\" !== options.as\n ? options.as\n : void 0,\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0\n });\n } else Internals.d.m(href);\n};\nexports.requestFormReset = function (form) {\n Internals.d.r(form);\n};\nexports.unstable_batchedUpdates = function (fn, a) {\n return fn(a);\n};\nexports.useFormState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useFormState(action, initialState, permalink);\n};\nexports.useFormStatus = function () {\n return ReactSharedInternals.H.useHostTransitionStatus();\n};\nexports.version = \"19.2.0\";\n","/**\n * @license React\n * react-dom.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function noop() {}\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function createPortal$1(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n try {\n testStringCoercion(key);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n JSCompiler_inline_result &&\n (console.error(\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n key[Symbol.toStringTag]) ||\n key.constructor.name ||\n \"Object\"\n ),\n testStringCoercion(key));\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n }\n function getCrossOriginStringAs(as, input) {\n if (\"font\" === as) return \"\";\n if (\"string\" === typeof input)\n return \"use-credentials\" === input ? input : \"\";\n }\n function getValueDescriptorExpectingObjectForWarning(thing) {\n return null === thing\n ? \"`null`\"\n : void 0 === thing\n ? \"`undefined`\"\n : \"\" === thing\n ? \"an empty string\"\n : 'something with type \"' + typeof thing + '\"';\n }\n function getValueDescriptorExpectingEnumForWarning(thing) {\n return null === thing\n ? \"`null`\"\n : void 0 === thing\n ? \"`undefined`\"\n : \"\" === thing\n ? \"an empty string\"\n : \"string\" === typeof thing\n ? JSON.stringify(thing)\n : \"number\" === typeof thing\n ? \"`\" + thing + \"`\"\n : 'something with type \"' + typeof thing + '\"';\n }\n function resolveDispatcher() {\n var dispatcher = ReactSharedInternals.H;\n null === dispatcher &&\n console.error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n return dispatcher;\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var React = require(\"react\"),\n Internals = {\n d: {\n f: noop,\n r: function () {\n throw Error(\n \"Invalid form element. requestFormReset must be passed a form that was rendered by React.\"\n );\n },\n D: noop,\n C: noop,\n L: noop,\n m: noop,\n X: noop,\n S: noop,\n M: noop\n },\n p: 0,\n findDOMNode: null\n },\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\n (\"function\" === typeof Map &&\n null != Map.prototype &&\n \"function\" === typeof Map.prototype.forEach &&\n \"function\" === typeof Set &&\n null != Set.prototype &&\n \"function\" === typeof Set.prototype.clear &&\n \"function\" === typeof Set.prototype.forEach) ||\n console.error(\n \"React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\"\n );\n exports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n Internals;\n exports.createPortal = function (children, container) {\n var key =\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n if (\n !container ||\n (1 !== container.nodeType &&\n 9 !== container.nodeType &&\n 11 !== container.nodeType)\n )\n throw Error(\"Target container is not a DOM element.\");\n return createPortal$1(children, container, null, key);\n };\n exports.flushSync = function (fn) {\n var previousTransition = ReactSharedInternals.T,\n previousUpdatePriority = Internals.p;\n try {\n if (((ReactSharedInternals.T = null), (Internals.p = 2), fn))\n return fn();\n } finally {\n (ReactSharedInternals.T = previousTransition),\n (Internals.p = previousUpdatePriority),\n Internals.d.f() &&\n console.error(\n \"flushSync was called from inside a lifecycle method. React cannot flush when React is already rendering. Consider moving this call to a scheduler task or micro task.\"\n );\n }\n };\n exports.preconnect = function (href, options) {\n \"string\" === typeof href && href\n ? null != options && \"object\" !== typeof options\n ? console.error(\n \"ReactDOM.preconnect(): Expected the `options` argument (second) to be an object but encountered %s instead. The only supported option at this time is `crossOrigin` which accepts a string.\",\n getValueDescriptorExpectingEnumForWarning(options)\n )\n : null != options &&\n \"string\" !== typeof options.crossOrigin &&\n console.error(\n \"ReactDOM.preconnect(): Expected the `crossOrigin` option (second argument) to be a string but encountered %s instead. Try removing this option or passing a string value instead.\",\n getValueDescriptorExpectingObjectForWarning(options.crossOrigin)\n )\n : console.error(\n \"ReactDOM.preconnect(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",\n getValueDescriptorExpectingObjectForWarning(href)\n );\n \"string\" === typeof href &&\n (options\n ? ((options = options.crossOrigin),\n (options =\n \"string\" === typeof options\n ? \"use-credentials\" === options\n ? options\n : \"\"\n : void 0))\n : (options = null),\n Internals.d.C(href, options));\n };\n exports.prefetchDNS = function (href) {\n if (\"string\" !== typeof href || !href)\n console.error(\n \"ReactDOM.prefetchDNS(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",\n getValueDescriptorExpectingObjectForWarning(href)\n );\n else if (1 < arguments.length) {\n var options = arguments[1];\n \"object\" === typeof options && options.hasOwnProperty(\"crossOrigin\")\n ? console.error(\n \"ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. It looks like the you are attempting to set a crossOrigin property for this DNS lookup hint. Browsers do not perform DNS queries using CORS and setting this attribute on the resource hint has no effect. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.\",\n getValueDescriptorExpectingEnumForWarning(options)\n )\n : console.error(\n \"ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.\",\n getValueDescriptorExpectingEnumForWarning(options)\n );\n }\n \"string\" === typeof href && Internals.d.D(href);\n };\n exports.preinit = function (href, options) {\n \"string\" === typeof href && href\n ? null == options || \"object\" !== typeof options\n ? console.error(\n \"ReactDOM.preinit(): Expected the `options` argument (second) to be an object with an `as` property describing the type of resource to be preinitialized but encountered %s instead.\",\n getValueDescriptorExpectingEnumForWarning(options)\n )\n : \"style\" !== options.as &&\n \"script\" !== options.as &&\n console.error(\n 'ReactDOM.preinit(): Expected the `as` property in the `options` argument (second) to contain a valid value describing the type of resource to be preinitialized but encountered %s instead. Valid values for `as` are \"style\" and \"script\".',\n getValueDescriptorExpectingEnumForWarning(options.as)\n )\n : console.error(\n \"ReactDOM.preinit(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",\n getValueDescriptorExpectingObjectForWarning(href)\n );\n if (\n \"string\" === typeof href &&\n options &&\n \"string\" === typeof options.as\n ) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n integrity =\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n fetchPriority =\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0;\n \"style\" === as\n ? Internals.d.S(\n href,\n \"string\" === typeof options.precedence\n ? options.precedence\n : void 0,\n {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority\n }\n )\n : \"script\" === as &&\n Internals.d.X(href, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n };\n exports.preinitModule = function (href, options) {\n var encountered = \"\";\n (\"string\" === typeof href && href) ||\n (encountered +=\n \" The `href` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(href) +\n \".\");\n void 0 !== options && \"object\" !== typeof options\n ? (encountered +=\n \" The `options` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options) +\n \".\")\n : options &&\n \"as\" in options &&\n \"script\" !== options.as &&\n (encountered +=\n \" The `as` option encountered was \" +\n getValueDescriptorExpectingEnumForWarning(options.as) +\n \".\");\n if (encountered)\n console.error(\n \"ReactDOM.preinitModule(): Expected up to two arguments, a non-empty `href` string and, optionally, an `options` object with a valid `as` property.%s\",\n encountered\n );\n else\n switch (\n ((encountered =\n options && \"string\" === typeof options.as ? options.as : \"script\"),\n encountered)\n ) {\n case \"script\":\n break;\n default:\n (encountered =\n getValueDescriptorExpectingEnumForWarning(encountered)),\n console.error(\n 'ReactDOM.preinitModule(): Currently the only supported \"as\" type for this function is \"script\" but received \"%s\" instead. This warning was generated for `href` \"%s\". In the future other module types will be supported, aligning with the import-attributes proposal. Learn more here: (https://github.com/tc39/proposal-import-attributes)',\n encountered,\n href\n );\n }\n if (\"string\" === typeof href)\n if (\"object\" === typeof options && null !== options) {\n if (null == options.as || \"script\" === options.as)\n (encountered = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n )),\n Internals.d.M(href, {\n crossOrigin: encountered,\n integrity:\n \"string\" === typeof options.integrity\n ? options.integrity\n : void 0,\n nonce:\n \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n } else null == options && Internals.d.M(href);\n };\n exports.preload = function (href, options) {\n var encountered = \"\";\n (\"string\" === typeof href && href) ||\n (encountered +=\n \" The `href` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(href) +\n \".\");\n null == options || \"object\" !== typeof options\n ? (encountered +=\n \" The `options` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options) +\n \".\")\n : (\"string\" === typeof options.as && options.as) ||\n (encountered +=\n \" The `as` option encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options.as) +\n \".\");\n encountered &&\n console.error(\n 'ReactDOM.preload(): Expected two arguments, a non-empty `href` string and an `options` object with an `as` property valid for a `<link rel=\"preload\" as=\"...\" />` tag.%s',\n encountered\n );\n if (\n \"string\" === typeof href &&\n \"object\" === typeof options &&\n null !== options &&\n \"string\" === typeof options.as\n ) {\n encountered = options.as;\n var crossOrigin = getCrossOriginStringAs(\n encountered,\n options.crossOrigin\n );\n Internals.d.L(href, encountered, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n type: \"string\" === typeof options.type ? options.type : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0,\n referrerPolicy:\n \"string\" === typeof options.referrerPolicy\n ? options.referrerPolicy\n : void 0,\n imageSrcSet:\n \"string\" === typeof options.imageSrcSet\n ? options.imageSrcSet\n : void 0,\n imageSizes:\n \"string\" === typeof options.imageSizes\n ? options.imageSizes\n : void 0,\n media: \"string\" === typeof options.media ? options.media : void 0\n });\n }\n };\n exports.preloadModule = function (href, options) {\n var encountered = \"\";\n (\"string\" === typeof href && href) ||\n (encountered +=\n \" The `href` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(href) +\n \".\");\n void 0 !== options && \"object\" !== typeof options\n ? (encountered +=\n \" The `options` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options) +\n \".\")\n : options &&\n \"as\" in options &&\n \"string\" !== typeof options.as &&\n (encountered +=\n \" The `as` option encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options.as) +\n \".\");\n encountered &&\n console.error(\n 'ReactDOM.preloadModule(): Expected two arguments, a non-empty `href` string and, optionally, an `options` object with an `as` property valid for a `<link rel=\"modulepreload\" as=\"...\" />` tag.%s',\n encountered\n );\n \"string\" === typeof href &&\n (options\n ? ((encountered = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n )),\n Internals.d.m(href, {\n as:\n \"string\" === typeof options.as && \"script\" !== options.as\n ? options.as\n : void 0,\n crossOrigin: encountered,\n integrity:\n \"string\" === typeof options.integrity\n ? options.integrity\n : void 0\n }))\n : Internals.d.m(href));\n };\n exports.requestFormReset = function (form) {\n Internals.d.r(form);\n };\n exports.unstable_batchedUpdates = function (fn, a) {\n return fn(a);\n };\n exports.useFormState = function (action, initialState, permalink) {\n return resolveDispatcher().useFormState(action, initialState, permalink);\n };\n exports.useFormStatus = function () {\n return resolveDispatcher().useHostTransitionStatus();\n };\n exports.version = \"19.2.0\";\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","import getDirection from 'direction';\nimport debounce from 'lodash/debounce';\nimport throttle from 'lodash/throttle';\nimport React, { createContext, useContext, useRef, useEffect, useLayoutEffect, useState, memo, forwardRef, useCallback, useReducer, useMemo, Fragment, Component } from 'react';\nimport scrollIntoView from 'scroll-into-view-if-needed';\nimport { Editor, Range, Transforms, Text as Text$1, Path, Node, Point, Element as Element$1, Scrubber } from 'slate';\nimport { DOMEditor, EDITOR_TO_USER_MARKS, EDITOR_TO_PENDING_DIFFS, EDITOR_TO_PENDING_ACTION, EDITOR_TO_PENDING_INSERTION_MARKS, targetRange, verifyDiffState, EDITOR_TO_PENDING_SELECTION, IS_COMPOSING, IS_NODE_MAP_DIRTY, applyStringDiff, isDOMSelection, isTrackedMutation, EDITOR_TO_FORCE_RENDER, normalizeRange, normalizePoint, EDITOR_TO_PLACEHOLDER_ELEMENT, normalizeStringDiff, mergeStringDiffs, CAN_USE_DOM, IS_ANDROID, EDITOR_TO_SCHEDULE_FLUSH, MARK_PLACEHOLDER_SYMBOL, PLACEHOLDER_SYMBOL, IS_WEBKIT, isTextDecorationsEqual, isElementDecorationsEqual, EDITOR_TO_KEY_TO_ELEMENT, NODE_TO_ELEMENT, ELEMENT_TO_NODE, NODE_TO_INDEX, NODE_TO_PARENT, Key, splitDecorationsByChild, IS_READ_ONLY, getActiveElement, getSelection, IS_FOCUSED, getDefaultView, EDITOR_TO_WINDOW, EDITOR_TO_ELEMENT, IS_FIREFOX, EDITOR_TO_USER_SELECTION, HAS_BEFORE_INPUT_SUPPORT, isDOMElement, isDOMNode, TRIPLE_CLICK, IS_FIREFOX_LEGACY, IS_IOS, IS_WECHATBROWSER, IS_UC_MOBILE, Hotkeys, IS_CHROME, isPlainTextOnlyPaste, EDITOR_TO_ON_CHANGE, withDOM } from 'slate-dom';\nexport { NODE_TO_INDEX, NODE_TO_PARENT } from 'slate-dom';\nimport { ResizeObserver } from '@juggle/resize-observer';\nimport ReactDOM from 'react-dom';\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\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 * A React context for sharing the editor object.\n */\nvar EditorContext = /*#__PURE__*/createContext(null);\n/**\n * Get the current editor object from the React context.\n */\nvar useSlateStatic = () => {\n var editor = useContext(EditorContext);\n if (!editor) {\n throw new Error(\"The `useSlateStatic` hook must be used inside the <Slate> component's context.\");\n }\n return editor;\n};\n\n// eslint-disable-next-line no-redeclare\nvar ReactEditor = DOMEditor;\n\nfunction ownKeys$7(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$7(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$7(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$7(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\n// https://github.com/facebook/draft-js/blob/main/src/component/handlers/composition/DraftEditorCompositionHandler.js#L41\n// When using keyboard English association function, conpositionEnd triggered too fast, resulting in after `insertText` still maintain association state.\nvar RESOLVE_DELAY = 25;\n// Time with no user interaction before the current user action is considered as done.\nvar FLUSH_DELAY = 200;\n// Replace with `const debug = console.log` to debug\nvar debug = function debug() {};\n// Type guard to check if a value is a DataTransfer\nvar isDataTransfer = value => (value === null || value === void 0 ? void 0 : value.constructor.name) === 'DataTransfer';\nfunction createAndroidInputManager(_ref) {\n var {\n editor,\n scheduleOnDOMSelectionChange,\n onDOMSelectionChange\n } = _ref;\n var flushing = false;\n var compositionEndTimeoutId = null;\n var flushTimeoutId = null;\n var actionTimeoutId = null;\n var idCounter = 0;\n var insertPositionHint = false;\n var applyPendingSelection = () => {\n var pendingSelection = EDITOR_TO_PENDING_SELECTION.get(editor);\n EDITOR_TO_PENDING_SELECTION.delete(editor);\n if (pendingSelection) {\n var {\n selection\n } = editor;\n var normalized = normalizeRange(editor, pendingSelection);\n if (normalized && (!selection || !Range.equals(normalized, selection))) {\n Transforms.select(editor, normalized);\n }\n }\n };\n var performAction = () => {\n var action = EDITOR_TO_PENDING_ACTION.get(editor);\n EDITOR_TO_PENDING_ACTION.delete(editor);\n if (!action) {\n return;\n }\n if (action.at) {\n var target = Point.isPoint(action.at) ? normalizePoint(editor, action.at) : normalizeRange(editor, action.at);\n if (!target) {\n return;\n }\n var _targetRange = Editor.range(editor, target);\n if (!editor.selection || !Range.equals(editor.selection, _targetRange)) {\n Transforms.select(editor, target);\n }\n }\n action.run();\n };\n var flush = () => {\n if (flushTimeoutId) {\n clearTimeout(flushTimeoutId);\n flushTimeoutId = null;\n }\n if (actionTimeoutId) {\n clearTimeout(actionTimeoutId);\n actionTimeoutId = null;\n }\n if (!hasPendingDiffs() && !hasPendingAction()) {\n applyPendingSelection();\n return;\n }\n if (!flushing) {\n flushing = true;\n setTimeout(() => flushing = false);\n }\n if (hasPendingAction()) {\n flushing = 'action';\n }\n var selectionRef = editor.selection && Editor.rangeRef(editor, editor.selection, {\n affinity: 'forward'\n });\n EDITOR_TO_USER_MARKS.set(editor, editor.marks);\n debug('flush', EDITOR_TO_PENDING_ACTION.get(editor), EDITOR_TO_PENDING_DIFFS.get(editor));\n var scheduleSelectionChange = hasPendingDiffs();\n var diff;\n while (diff = (_EDITOR_TO_PENDING_DI = EDITOR_TO_PENDING_DIFFS.get(editor)) === null || _EDITOR_TO_PENDING_DI === void 0 ? void 0 : _EDITOR_TO_PENDING_DI[0]) {\n var _EDITOR_TO_PENDING_DI, _EDITOR_TO_PENDING_DI2;\n var pendingMarks = EDITOR_TO_PENDING_INSERTION_MARKS.get(editor);\n if (pendingMarks !== undefined) {\n EDITOR_TO_PENDING_INSERTION_MARKS.delete(editor);\n editor.marks = pendingMarks;\n }\n if (pendingMarks && insertPositionHint === false) {\n insertPositionHint = null;\n }\n var range = targetRange(diff);\n if (!editor.selection || !Range.equals(editor.selection, range)) {\n Transforms.select(editor, range);\n }\n if (diff.diff.text) {\n Editor.insertText(editor, diff.diff.text);\n } else {\n Editor.deleteFragment(editor);\n }\n // Remove diff only after we have applied it to account for it when transforming\n // pending ranges.\n EDITOR_TO_PENDING_DIFFS.set(editor, (_EDITOR_TO_PENDING_DI2 = EDITOR_TO_PENDING_DIFFS.get(editor)) === null || _EDITOR_TO_PENDING_DI2 === void 0 ? void 0 : _EDITOR_TO_PENDING_DI2.filter(_ref2 => {\n var {\n id\n } = _ref2;\n return id !== diff.id;\n }));\n if (!verifyDiffState(editor, diff)) {\n scheduleSelectionChange = false;\n EDITOR_TO_PENDING_ACTION.delete(editor);\n EDITOR_TO_USER_MARKS.delete(editor);\n flushing = 'action';\n // Ensure we don't restore the pending user (dom) selection\n // since the document and dom state do not match.\n EDITOR_TO_PENDING_SELECTION.delete(editor);\n scheduleOnDOMSelectionChange.cancel();\n onDOMSelectionChange.cancel();\n selectionRef === null || selectionRef === void 0 || selectionRef.unref();\n }\n }\n var selection = selectionRef === null || selectionRef === void 0 ? void 0 : selectionRef.unref();\n if (selection && !EDITOR_TO_PENDING_SELECTION.get(editor) && (!editor.selection || !Range.equals(selection, editor.selection))) {\n Transforms.select(editor, selection);\n }\n if (hasPendingAction()) {\n performAction();\n return;\n }\n // COMPAT: The selectionChange event is fired after the action is performed,\n // so we have to manually schedule it to ensure we don't 'throw away' the selection\n // while rendering if we have pending changes.\n if (scheduleSelectionChange) {\n scheduleOnDOMSelectionChange();\n }\n scheduleOnDOMSelectionChange.flush();\n onDOMSelectionChange.flush();\n applyPendingSelection();\n var userMarks = EDITOR_TO_USER_MARKS.get(editor);\n EDITOR_TO_USER_MARKS.delete(editor);\n if (userMarks !== undefined) {\n editor.marks = userMarks;\n editor.onChange();\n }\n };\n var handleCompositionEnd = _event => {\n if (compositionEndTimeoutId) {\n clearTimeout(compositionEndTimeoutId);\n }\n compositionEndTimeoutId = setTimeout(() => {\n IS_COMPOSING.set(editor, false);\n flush();\n }, RESOLVE_DELAY);\n };\n var handleCompositionStart = _event => {\n IS_COMPOSING.set(editor, true);\n if (compositionEndTimeoutId) {\n clearTimeout(compositionEndTimeoutId);\n compositionEndTimeoutId = null;\n }\n };\n var updatePlaceholderVisibility = function updatePlaceholderVisibility() {\n var forceHide = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var placeholderElement = EDITOR_TO_PLACEHOLDER_ELEMENT.get(editor);\n if (!placeholderElement) {\n return;\n }\n if (hasPendingDiffs() || forceHide) {\n placeholderElement.style.display = 'none';\n return;\n }\n placeholderElement.style.removeProperty('display');\n };\n var storeDiff = (path, diff) => {\n var _EDITOR_TO_PENDING_DI3;\n var pendingDiffs = (_EDITOR_TO_PENDING_DI3 = EDITOR_TO_PENDING_DIFFS.get(editor)) !== null && _EDITOR_TO_PENDING_DI3 !== void 0 ? _EDITOR_TO_PENDING_DI3 : [];\n EDITOR_TO_PENDING_DIFFS.set(editor, pendingDiffs);\n var target = Node.leaf(editor, path);\n var idx = pendingDiffs.findIndex(change => Path.equals(change.path, path));\n if (idx < 0) {\n var normalized = normalizeStringDiff(target.text, diff);\n if (normalized) {\n pendingDiffs.push({\n path,\n diff,\n id: idCounter++\n });\n }\n updatePlaceholderVisibility();\n return;\n }\n var merged = mergeStringDiffs(target.text, pendingDiffs[idx].diff, diff);\n if (!merged) {\n pendingDiffs.splice(idx, 1);\n updatePlaceholderVisibility();\n return;\n }\n pendingDiffs[idx] = _objectSpread$7(_objectSpread$7({}, pendingDiffs[idx]), {}, {\n diff: merged\n });\n };\n var scheduleAction = function scheduleAction(run) {\n var {\n at\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n insertPositionHint = false;\n EDITOR_TO_PENDING_SELECTION.delete(editor);\n scheduleOnDOMSelectionChange.cancel();\n onDOMSelectionChange.cancel();\n if (hasPendingAction()) {\n flush();\n }\n EDITOR_TO_PENDING_ACTION.set(editor, {\n at,\n run\n });\n // COMPAT: When deleting before a non-contenteditable element chrome only fires a beforeinput,\n // (no input) and doesn't perform any dom mutations. Without a flush timeout we would never flush\n // in this case and thus never actually perform the action.\n actionTimeoutId = setTimeout(flush);\n };\n var handleDOMBeforeInput = event => {\n var _targetRange2;\n if (flushTimeoutId) {\n clearTimeout(flushTimeoutId);\n flushTimeoutId = null;\n }\n if (IS_NODE_MAP_DIRTY.get(editor)) {\n return;\n }\n var {\n inputType: type\n } = event;\n var targetRange = null;\n var data = event.dataTransfer || event.data || undefined;\n if (insertPositionHint !== false && type !== 'insertText' && type !== 'insertCompositionText') {\n insertPositionHint = false;\n }\n var [nativeTargetRange] = event.getTargetRanges();\n if (nativeTargetRange) {\n targetRange = ReactEditor.toSlateRange(editor, nativeTargetRange, {\n exactMatch: false,\n suppressThrow: true\n });\n }\n // COMPAT: SelectionChange event is fired after the action is performed, so we\n // have to manually get the selection here to ensure it's up-to-date.\n var window = ReactEditor.getWindow(editor);\n var domSelection = window.getSelection();\n if (!targetRange && domSelection) {\n nativeTargetRange = domSelection;\n targetRange = ReactEditor.toSlateRange(editor, domSelection, {\n exactMatch: false,\n suppressThrow: true\n });\n }\n targetRange = (_targetRange2 = targetRange) !== null && _targetRange2 !== void 0 ? _targetRange2 : editor.selection;\n if (!targetRange) {\n return;\n }\n // By default, the input manager tries to store text diffs so that we can\n // defer flushing them at a later point in time. We don't want to flush\n // for every input event as this can be expensive. However, there are some\n // scenarios where we cannot safely store the text diff and must instead\n // schedule an action to let Slate normalize the editor state.\n var canStoreDiff = true;\n if (type.startsWith('delete')) {\n var direction = type.endsWith('Backward') ? 'backward' : 'forward';\n var [start, end] = Range.edges(targetRange);\n var [leaf, path] = Editor.leaf(editor, start.path);\n if (Range.isExpanded(targetRange)) {\n if (leaf.text.length === start.offset && end.offset === 0) {\n var next = Editor.next(editor, {\n at: start.path,\n match: Text$1.isText\n });\n if (next && Path.equals(next[1], end.path)) {\n // when deleting a linebreak, targetRange will span across the break (ie start in the node before and end in the node after)\n // if the node before is empty, this will look like a hanging range and get unhung later--which will take the break we want to remove out of the range\n // so to avoid this we collapse the target range to default to single character deletion\n if (direction === 'backward') {\n targetRange = {\n anchor: end,\n focus: end\n };\n start = end;\n [leaf, path] = next;\n } else {\n targetRange = {\n anchor: start,\n focus: start\n };\n end = start;\n }\n }\n }\n }\n var diff = {\n text: '',\n start: start.offset,\n end: end.offset\n };\n var pendingDiffs = EDITOR_TO_PENDING_DIFFS.get(editor);\n var relevantPendingDiffs = pendingDiffs === null || pendingDiffs === void 0 ? void 0 : pendingDiffs.find(change => Path.equals(change.path, path));\n var diffs = relevantPendingDiffs ? [relevantPendingDiffs.diff, diff] : [diff];\n var text = applyStringDiff(leaf.text, ...diffs);\n if (text.length === 0) {\n // Text leaf will be removed, so we need to schedule an\n // action to remove it so that Slate can normalize instead\n // of storing as a diff\n canStoreDiff = false;\n }\n if (Range.isExpanded(targetRange)) {\n if (canStoreDiff && Path.equals(targetRange.anchor.path, targetRange.focus.path)) {\n var point = {\n path: targetRange.anchor.path,\n offset: start.offset\n };\n var range = Editor.range(editor, point, point);\n handleUserSelect(range);\n return storeDiff(targetRange.anchor.path, {\n text: '',\n end: end.offset,\n start: start.offset\n });\n }\n return scheduleAction(() => Editor.deleteFragment(editor, {\n direction\n }), {\n at: targetRange\n });\n }\n }\n switch (type) {\n case 'deleteByComposition':\n case 'deleteByCut':\n case 'deleteByDrag':\n {\n return scheduleAction(() => Editor.deleteFragment(editor), {\n at: targetRange\n });\n }\n case 'deleteContent':\n case 'deleteContentForward':\n {\n var {\n anchor\n } = targetRange;\n if (canStoreDiff && Range.isCollapsed(targetRange)) {\n var targetNode = Node.leaf(editor, anchor.path);\n if (anchor.offset < targetNode.text.length) {\n return storeDiff(anchor.path, {\n text: '',\n start: anchor.offset,\n end: anchor.offset + 1\n });\n }\n }\n return scheduleAction(() => Editor.deleteForward(editor), {\n at: targetRange\n });\n }\n case 'deleteContentBackward':\n {\n var _nativeTargetRange;\n var {\n anchor: _anchor\n } = targetRange;\n // If we have a mismatch between the native and slate selection being collapsed\n // we are most likely deleting a zero-width placeholder and thus should perform it\n // as an action to ensure correct behavior (mostly happens with mark placeholders)\n var nativeCollapsed = isDOMSelection(nativeTargetRange) ? nativeTargetRange.isCollapsed : !!((_nativeTargetRange = nativeTargetRange) !== null && _nativeTargetRange !== void 0 && _nativeTargetRange.collapsed);\n if (canStoreDiff && nativeCollapsed && Range.isCollapsed(targetRange) && _anchor.offset > 0) {\n return storeDiff(_anchor.path, {\n text: '',\n start: _anchor.offset - 1,\n end: _anchor.offset\n });\n }\n return scheduleAction(() => Editor.deleteBackward(editor), {\n at: targetRange\n });\n }\n case 'deleteEntireSoftLine':\n {\n return scheduleAction(() => {\n Editor.deleteBackward(editor, {\n unit: 'line'\n });\n Editor.deleteForward(editor, {\n unit: 'line'\n });\n }, {\n at: targetRange\n });\n }\n case 'deleteHardLineBackward':\n {\n return scheduleAction(() => Editor.deleteBackward(editor, {\n unit: 'block'\n }), {\n at: targetRange\n });\n }\n case 'deleteSoftLineBackward':\n {\n return scheduleAction(() => Editor.deleteBackward(editor, {\n unit: 'line'\n }), {\n at: targetRange\n });\n }\n case 'deleteHardLineForward':\n {\n return scheduleAction(() => Editor.deleteForward(editor, {\n unit: 'block'\n }), {\n at: targetRange\n });\n }\n case 'deleteSoftLineForward':\n {\n return scheduleAction(() => Editor.deleteForward(editor, {\n unit: 'line'\n }), {\n at: targetRange\n });\n }\n case 'deleteWordBackward':\n {\n return scheduleAction(() => Editor.deleteBackward(editor, {\n unit: 'word'\n }), {\n at: targetRange\n });\n }\n case 'deleteWordForward':\n {\n return scheduleAction(() => Editor.deleteForward(editor, {\n unit: 'word'\n }), {\n at: targetRange\n });\n }\n case 'insertLineBreak':\n {\n return scheduleAction(() => Editor.insertSoftBreak(editor), {\n at: targetRange\n });\n }\n case 'insertParagraph':\n {\n return scheduleAction(() => Editor.insertBreak(editor), {\n at: targetRange\n });\n }\n case 'insertCompositionText':\n case 'deleteCompositionText':\n case 'insertFromComposition':\n case 'insertFromDrop':\n case 'insertFromPaste':\n case 'insertFromYank':\n case 'insertReplacementText':\n case 'insertText':\n {\n if (isDataTransfer(data)) {\n return scheduleAction(() => ReactEditor.insertData(editor, data), {\n at: targetRange\n });\n }\n var _text = data !== null && data !== void 0 ? data : '';\n // COMPAT: If we are writing inside a placeholder, the ime inserts the text inside\n // the placeholder itself and thus includes the zero-width space inside edit events.\n if (EDITOR_TO_PENDING_INSERTION_MARKS.get(editor)) {\n _text = _text.replace('\\uFEFF', '');\n }\n // Pastes from the Android clipboard will generate `insertText` events.\n // If the copied text contains any newlines, Android will append an\n // extra newline to the end of the copied text.\n if (type === 'insertText' && /.*\\n.*\\n$/.test(_text)) {\n _text = _text.slice(0, -1);\n }\n // If the text includes a newline, split it at newlines and paste each component\n // string, with soft breaks in between each.\n if (_text.includes('\\n')) {\n return scheduleAction(() => {\n var parts = _text.split('\\n');\n parts.forEach((line, i) => {\n if (line) {\n Editor.insertText(editor, line);\n }\n if (i !== parts.length - 1) {\n Editor.insertSoftBreak(editor);\n }\n });\n }, {\n at: targetRange\n });\n }\n if (Path.equals(targetRange.anchor.path, targetRange.focus.path)) {\n var [_start, _end] = Range.edges(targetRange);\n var _diff = {\n start: _start.offset,\n end: _end.offset,\n text: _text\n };\n // COMPAT: Swiftkey has a weird bug where the target range of the 2nd word\n // inserted after a mark placeholder is inserted with an anchor offset off by 1.\n // So writing 'some text' will result in 'some ttext'. Luckily all 'normal' insert\n // text events are fired with the correct target ranges, only the final 'insertComposition'\n // isn't, so we can adjust the target range start offset if we are confident this is the\n // swiftkey insert causing the issue.\n if (_text && insertPositionHint && type === 'insertCompositionText') {\n var hintPosition = insertPositionHint.start + insertPositionHint.text.search(/\\S|$/);\n var diffPosition = _diff.start + _diff.text.search(/\\S|$/);\n if (diffPosition === hintPosition + 1 && _diff.end === insertPositionHint.start + insertPositionHint.text.length) {\n _diff.start -= 1;\n insertPositionHint = null;\n scheduleFlush();\n } else {\n insertPositionHint = false;\n }\n } else if (type === 'insertText') {\n if (insertPositionHint === null) {\n insertPositionHint = _diff;\n } else if (insertPositionHint && Range.isCollapsed(targetRange) && insertPositionHint.end + insertPositionHint.text.length === _start.offset) {\n insertPositionHint = _objectSpread$7(_objectSpread$7({}, insertPositionHint), {}, {\n text: insertPositionHint.text + _text\n });\n } else {\n insertPositionHint = false;\n }\n } else {\n insertPositionHint = false;\n }\n if (canStoreDiff) {\n var currentSelection = editor.selection;\n storeDiff(_start.path, _diff);\n if (currentSelection) {\n var newPoint = {\n path: _start.path,\n offset: _start.offset + _text.length\n };\n scheduleAction(() => {\n Transforms.select(editor, {\n anchor: newPoint,\n focus: newPoint\n });\n }, {\n at: newPoint\n });\n }\n return;\n }\n }\n return scheduleAction(() => Editor.insertText(editor, _text), {\n at: targetRange\n });\n }\n }\n };\n var hasPendingAction = () => {\n return !!EDITOR_TO_PENDING_ACTION.get(editor);\n };\n var hasPendingDiffs = () => {\n var _EDITOR_TO_PENDING_DI4;\n return !!((_EDITOR_TO_PENDING_DI4 = EDITOR_TO_PENDING_DIFFS.get(editor)) !== null && _EDITOR_TO_PENDING_DI4 !== void 0 && _EDITOR_TO_PENDING_DI4.length);\n };\n var hasPendingChanges = () => {\n return hasPendingAction() || hasPendingDiffs();\n };\n var isFlushing = () => {\n return flushing;\n };\n var handleUserSelect = range => {\n EDITOR_TO_PENDING_SELECTION.set(editor, range);\n if (flushTimeoutId) {\n clearTimeout(flushTimeoutId);\n flushTimeoutId = null;\n }\n var {\n selection\n } = editor;\n if (!range) {\n return;\n }\n var pathChanged = !selection || !Path.equals(selection.anchor.path, range.anchor.path);\n var parentPathChanged = !selection || !Path.equals(selection.anchor.path.slice(0, -1), range.anchor.path.slice(0, -1));\n if (pathChanged && insertPositionHint || parentPathChanged) {\n insertPositionHint = false;\n }\n if (pathChanged || hasPendingDiffs()) {\n flushTimeoutId = setTimeout(flush, FLUSH_DELAY);\n }\n };\n var handleInput = () => {\n if (hasPendingAction() || !hasPendingDiffs()) {\n flush();\n }\n };\n var handleKeyDown = _ => {\n // COMPAT: Swiftkey closes the keyboard when typing inside a empty node\n // directly next to a non-contenteditable element (= the placeholder).\n // The only event fired soon enough for us to allow hiding the placeholder\n // without swiftkey picking it up is the keydown event, so we have to hide it\n // here. See https://github.com/ianstormtaylor/slate/pull/4988#issuecomment-1201050535\n if (!hasPendingDiffs()) {\n updatePlaceholderVisibility(true);\n setTimeout(updatePlaceholderVisibility);\n }\n };\n var scheduleFlush = () => {\n if (!hasPendingAction()) {\n actionTimeoutId = setTimeout(flush);\n }\n };\n var handleDomMutations = mutations => {\n if (hasPendingDiffs() || hasPendingAction()) {\n return;\n }\n if (mutations.some(mutation => isTrackedMutation(editor, mutation, mutations))) {\n var _EDITOR_TO_FORCE_REND;\n // Cause a re-render to restore the dom state if we encounter tracked mutations without\n // a corresponding pending action.\n (_EDITOR_TO_FORCE_REND = EDITOR_TO_FORCE_RENDER.get(editor)) === null || _EDITOR_TO_FORCE_REND === void 0 || _EDITOR_TO_FORCE_REND();\n }\n };\n return {\n flush,\n scheduleFlush,\n hasPendingDiffs,\n hasPendingAction,\n hasPendingChanges,\n isFlushing,\n handleUserSelect,\n handleCompositionEnd,\n handleCompositionStart,\n handleDOMBeforeInput,\n handleKeyDown,\n handleDomMutations,\n handleInput\n };\n}\n\nfunction useIsMounted() {\n var isMountedRef = useRef(false);\n useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n return isMountedRef.current;\n}\n\n/**\n * Prevent warning on SSR by falling back to useEffect when DOM isn't available\n */\nvar useIsomorphicLayoutEffect = CAN_USE_DOM ? useLayoutEffect : useEffect;\n\nfunction useMutationObserver(node, callback, options) {\n var [mutationObserver] = useState(() => new MutationObserver(callback));\n useIsomorphicLayoutEffect(() => {\n // Discard mutations caused during render phase. This works due to react calling\n // useLayoutEffect synchronously after the render phase before the next tick.\n mutationObserver.takeRecords();\n });\n useEffect(() => {\n if (!node.current) {\n throw new Error('Failed to attach MutationObserver, `node` is undefined');\n }\n mutationObserver.observe(node.current, options);\n return () => mutationObserver.disconnect();\n }, [mutationObserver, node, options]);\n}\n\nvar _excluded$2 = [\"node\"];\nfunction ownKeys$6(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$6(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$6(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar MUTATION_OBSERVER_CONFIG$1 = {\n subtree: true,\n childList: true,\n characterData: true\n};\nvar useAndroidInputManager = !IS_ANDROID ? () => null : _ref => {\n var {\n node\n } = _ref,\n options = _objectWithoutProperties(_ref, _excluded$2);\n if (!IS_ANDROID) {\n return null;\n }\n var editor = useSlateStatic();\n var isMounted = useIsMounted();\n var [inputManager] = useState(() => createAndroidInputManager(_objectSpread$6({\n editor\n }, options)));\n useMutationObserver(node, inputManager.handleDomMutations, MUTATION_OBSERVER_CONFIG$1);\n EDITOR_TO_SCHEDULE_FLUSH.set(editor, inputManager.scheduleFlush);\n if (isMounted) {\n inputManager.flush();\n }\n return inputManager;\n};\n\nfunction ownKeys$5(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$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\n/**\n * Leaf content strings.\n */\nvar String$1 = props => {\n var {\n isLast,\n leaf,\n parent,\n text\n } = props;\n var editor = useSlateStatic();\n var path = ReactEditor.findPath(editor, text);\n var parentPath = Path.parent(path);\n var isMarkPlaceholder = Boolean(leaf[MARK_PLACEHOLDER_SYMBOL]);\n // COMPAT: Render text inside void nodes with a zero-width space.\n // So the node can contain selection but the text is not visible.\n if (editor.isVoid(parent)) {\n return /*#__PURE__*/React.createElement(ZeroWidthString, {\n length: Node.string(parent).length\n });\n }\n // COMPAT: If this is the last text node in an empty block, render a zero-\n // width space that will convert into a line break when copying and pasting\n // to support expected plain text.\n if (leaf.text === '' && parent.children[parent.children.length - 1] === text && !editor.isInline(parent) && Editor.string(editor, parentPath) === '') {\n return /*#__PURE__*/React.createElement(ZeroWidthString, {\n isLineBreak: true,\n isMarkPlaceholder: isMarkPlaceholder\n });\n }\n // COMPAT: If the text is empty, it's because it's on the edge of an inline\n // node, so we render a zero-width space so that the selection can be\n // inserted next to it still.\n if (leaf.text === '') {\n return /*#__PURE__*/React.createElement(ZeroWidthString, {\n isMarkPlaceholder: isMarkPlaceholder\n });\n }\n // COMPAT: Browsers will collapse trailing new lines at the end of blocks,\n // so we need to add an extra trailing new lines to prevent that.\n if (isLast && leaf.text.slice(-1) === '\\n') {\n return /*#__PURE__*/React.createElement(TextString, {\n isTrailing: true,\n text: leaf.text\n });\n }\n return /*#__PURE__*/React.createElement(TextString, {\n text: leaf.text\n });\n};\n/**\n * Leaf strings with text in them.\n */\nvar TextString = props => {\n var {\n text,\n isTrailing = false\n } = props;\n var ref = useRef(null);\n var getTextContent = () => {\n return \"\".concat(text !== null && text !== void 0 ? text : '').concat(isTrailing ? '\\n' : '');\n };\n var [initialText] = useState(getTextContent);\n // This is the actual text rendering boundary where we interface with the DOM\n // The text is not rendered as part of the virtual DOM, as since we handle basic character insertions natively,\n // updating the DOM is not a one way dataflow anymore. What we need here is not reconciliation and diffing\n // with previous version of the virtual DOM, but rather diffing with the actual DOM element, and replace the DOM <span> content\n // exactly if and only if its current content does not match our current virtual DOM.\n // Otherwise the DOM TextNode would always be replaced by React as the user types, which interferes with native text features,\n // eg makes native spellcheck opt out from checking the text node.\n // useLayoutEffect: updating our span before browser paint\n useIsomorphicLayoutEffect(() => {\n // null coalescing text to make sure we're not outputing \"null\" as a string in the extreme case it is nullish at runtime\n var textWithTrailing = getTextContent();\n if (ref.current && ref.current.textContent !== textWithTrailing) {\n ref.current.textContent = textWithTrailing;\n }\n // intentionally not specifying dependencies, so that this effect runs on every render\n // as this effectively replaces \"specifying the text in the virtual DOM under the <span> below\" on each render\n });\n // We intentionally render a memoized <span> that only receives the initial text content when the component is mounted.\n // We defer to the layout effect above to update the `textContent` of the span element when needed.\n return /*#__PURE__*/React.createElement(MemoizedText$1, {\n ref: ref\n }, initialText);\n};\nvar MemoizedText$1 = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((props, ref) => {\n return /*#__PURE__*/React.createElement(\"span\", {\n \"data-slate-string\": true,\n ref: ref\n }, props.children);\n}));\n/**\n * Leaf strings without text, render as zero-width strings.\n */\nvar ZeroWidthString = props => {\n var {\n length = 0,\n isLineBreak = false,\n isMarkPlaceholder = false\n } = props;\n var attributes = {\n 'data-slate-zero-width': isLineBreak ? 'n' : 'z',\n 'data-slate-length': length\n };\n if (isMarkPlaceholder) {\n attributes['data-slate-mark-placeholder'] = true;\n }\n // FIXME: Inserting the \\uFEFF on iOS breaks capitalization at the start of an\n // empty editor (https://github.com/ianstormtaylor/slate/issues/5199).\n //\n // However, not inserting the \\uFEFF on iOS causes the editor to crash when\n // inserting any text using an IME at the start of a block. This appears to\n // be because accepting an IME suggestion when at the start of a block (no\n // preceding \\uFEFF) removes one or more DOM elements that `toSlateRange`\n // depends on. (https://github.com/ianstormtaylor/slate/issues/5703)\n return /*#__PURE__*/React.createElement(\"span\", _objectSpread$5({}, attributes), !IS_ANDROID || !isLineBreak ? '\\uFEFF' : null, isLineBreak ? /*#__PURE__*/React.createElement(\"br\", null) : null);\n};\n\nfunction ownKeys$4(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$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\n// Delay the placeholder on Android to prevent the keyboard from closing.\n// (https://github.com/ianstormtaylor/slate/pull/5368)\nvar PLACEHOLDER_DELAY = IS_ANDROID ? 300 : 0;\nfunction disconnectPlaceholderResizeObserver(placeholderResizeObserver, releaseObserver) {\n if (placeholderResizeObserver.current) {\n placeholderResizeObserver.current.disconnect();\n if (releaseObserver) {\n placeholderResizeObserver.current = null;\n }\n }\n}\nfunction clearTimeoutRef(timeoutRef) {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n}\nvar defaultRenderLeaf = props => /*#__PURE__*/React.createElement(DefaultLeaf, _objectSpread$4({}, props));\n/**\n * Individual leaves in a text node with unique formatting.\n */\nvar Leaf = props => {\n var {\n leaf,\n isLast,\n text,\n parent,\n renderPlaceholder,\n renderLeaf = defaultRenderLeaf,\n leafPosition\n } = props;\n var editor = useSlateStatic();\n var placeholderResizeObserver = useRef(null);\n var placeholderRef = useRef(null);\n var [showPlaceholder, setShowPlaceholder] = useState(false);\n var showPlaceholderTimeoutRef = useRef(null);\n var callbackPlaceholderRef = useCallback(placeholderEl => {\n disconnectPlaceholderResizeObserver(placeholderResizeObserver, placeholderEl == null);\n if (placeholderEl == null) {\n var _leaf$onPlaceholderRe;\n EDITOR_TO_PLACEHOLDER_ELEMENT.delete(editor);\n (_leaf$onPlaceholderRe = leaf.onPlaceholderResize) === null || _leaf$onPlaceholderRe === void 0 || _leaf$onPlaceholderRe.call(leaf, null);\n } else {\n EDITOR_TO_PLACEHOLDER_ELEMENT.set(editor, placeholderEl);\n if (!placeholderResizeObserver.current) {\n // Create a new observer and observe the placeholder element.\n var ResizeObserver$1 = window.ResizeObserver || ResizeObserver;\n placeholderResizeObserver.current = new ResizeObserver$1(() => {\n var _leaf$onPlaceholderRe2;\n (_leaf$onPlaceholderRe2 = leaf.onPlaceholderResize) === null || _leaf$onPlaceholderRe2 === void 0 || _leaf$onPlaceholderRe2.call(leaf, placeholderEl);\n });\n }\n placeholderResizeObserver.current.observe(placeholderEl);\n placeholderRef.current = placeholderEl;\n }\n }, [placeholderRef, leaf, editor]);\n var children = /*#__PURE__*/React.createElement(String$1, {\n isLast: isLast,\n leaf: leaf,\n parent: parent,\n text: text\n });\n var leafIsPlaceholder = Boolean(leaf[PLACEHOLDER_SYMBOL]);\n useEffect(() => {\n if (leafIsPlaceholder) {\n if (!showPlaceholderTimeoutRef.current) {\n // Delay the placeholder, so it will not render in a selection\n showPlaceholderTimeoutRef.current = setTimeout(() => {\n setShowPlaceholder(true);\n showPlaceholderTimeoutRef.current = null;\n }, PLACEHOLDER_DELAY);\n }\n } else {\n clearTimeoutRef(showPlaceholderTimeoutRef);\n setShowPlaceholder(false);\n }\n return () => clearTimeoutRef(showPlaceholderTimeoutRef);\n }, [leafIsPlaceholder, setShowPlaceholder]);\n if (leafIsPlaceholder && showPlaceholder) {\n var placeholderProps = {\n children: leaf.placeholder,\n attributes: {\n 'data-slate-placeholder': true,\n style: {\n position: 'absolute',\n top: 0,\n pointerEvents: 'none',\n width: '100%',\n maxWidth: '100%',\n display: 'block',\n opacity: '0.333',\n userSelect: 'none',\n textDecoration: 'none',\n // Fixes https://github.com/udecode/plate/issues/2315\n WebkitUserModify: IS_WEBKIT ? 'inherit' : undefined\n },\n contentEditable: false,\n ref: callbackPlaceholderRef\n }\n };\n children = /*#__PURE__*/React.createElement(React.Fragment, null, children, renderPlaceholder(placeholderProps));\n }\n // COMPAT: Having the `data-` attributes on these leaf elements ensures that\n // in certain misbehaving browsers they aren't weirdly cloned/destroyed by\n // contenteditable behaviors. (2019/05/08)\n var attributes = {\n 'data-slate-leaf': true\n };\n return renderLeaf({\n attributes,\n children,\n leaf,\n text,\n leafPosition\n });\n};\nvar MemoizedLeaf = /*#__PURE__*/React.memo(Leaf, (prev, next) => {\n return next.parent === prev.parent && next.isLast === prev.isLast && next.renderLeaf === prev.renderLeaf && next.renderPlaceholder === prev.renderPlaceholder && next.text === prev.text && Text$1.equals(next.leaf, prev.leaf) && next.leaf[PLACEHOLDER_SYMBOL] === prev.leaf[PLACEHOLDER_SYMBOL];\n});\nvar DefaultLeaf = props => {\n var {\n attributes,\n children\n } = props;\n return /*#__PURE__*/React.createElement(\"span\", _objectSpread$4({}, attributes), children);\n};\n\n/**\n * Create a selector that updates when an `update` function is called, and\n * which only causes the component to render when the result of `selector`\n * differs from the previous result according to `equalityFn`.\n *\n * If `selector` is memoized using `useCallback`, then it will only be called\n * when it changes or when `update` is called. Otherwise, `selector` will be\n * called every time the component renders.\n *\n * @example\n * const [state, update] = useGenericSelector(selector, equalityFn)\n *\n * useIsomorphicLayoutEffect(() => {\n * return addEventListener(update)\n * }, [addEventListener, update])\n *\n * return state\n */\nfunction useGenericSelector(selector, equalityFn) {\n var [, forceRender] = useReducer(s => s + 1, 0);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef(() => null);\n var latestSelectedState = useRef(null);\n var selectedState;\n try {\n if (selector !== latestSelector.current || latestSubscriptionCallbackError.current) {\n var selectorResult = selector();\n if (equalityFn(latestSelectedState.current, selectorResult)) {\n selectedState = latestSelectedState.current;\n } else {\n selectedState = selectorResult;\n }\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current && isError(err)) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\".concat(latestSubscriptionCallbackError.current.stack, \"\\n\\n\");\n }\n throw err;\n }\n latestSelector.current = selector;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n var update = useCallback(() => {\n try {\n var newSelectedState = latestSelector.current();\n if (equalityFn(latestSelectedState.current, newSelectedState)) {\n return;\n }\n latestSelectedState.current = newSelectedState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n if (err instanceof Error) {\n latestSubscriptionCallbackError.current = err;\n } else {\n latestSubscriptionCallbackError.current = new Error(String(err));\n }\n }\n forceRender();\n // don't rerender on equalityFn change since we want to be able to define it inline\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return [selectedState, update];\n}\nfunction isError(error) {\n return error instanceof Error;\n}\n\n/**\n * A React context for sharing the `decorate` prop of the editable and\n * subscribing to changes on this prop.\n */\nvar DecorateContext = /*#__PURE__*/createContext({});\nvar useDecorations = (node, parentDecorations) => {\n var editor = useSlateStatic();\n var {\n decorate,\n addEventListener\n } = useContext(DecorateContext);\n // Not memoized since we want nodes to be decorated on each render\n var selector = () => {\n var path = ReactEditor.findPath(editor, node);\n return decorate([node, path]);\n };\n var equalityFn = Text$1.isText(node) ? isTextDecorationsEqual : isElementDecorationsEqual;\n var [decorations, update] = useGenericSelector(selector, equalityFn);\n useIsomorphicLayoutEffect(() => {\n var unsubscribe = addEventListener(update);\n update();\n return unsubscribe;\n }, [addEventListener, update]);\n return useMemo(() => [...decorations, ...parentDecorations], [decorations, parentDecorations]);\n};\nvar useDecorateContext = decorateProp => {\n var eventListeners = useRef(new Set());\n var latestDecorate = useRef(decorateProp);\n useIsomorphicLayoutEffect(() => {\n latestDecorate.current = decorateProp;\n eventListeners.current.forEach(listener => listener());\n }, [decorateProp]);\n var decorate = useCallback(entry => latestDecorate.current(entry), []);\n var addEventListener = useCallback(callback => {\n eventListeners.current.add(callback);\n return () => {\n eventListeners.current.delete(callback);\n };\n }, []);\n return useMemo(() => ({\n decorate,\n addEventListener\n }), [decorate, addEventListener]);\n};\n\nfunction ownKeys$3(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$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar defaultRenderText = props => /*#__PURE__*/React.createElement(DefaultText, _objectSpread$3({}, props));\n/**\n * Text.\n */\nvar Text = props => {\n var {\n decorations: parentDecorations,\n isLast,\n parent,\n renderPlaceholder,\n renderLeaf,\n renderText = defaultRenderText,\n text\n } = props;\n var editor = useSlateStatic();\n var ref = useRef(null);\n var decorations = useDecorations(text, parentDecorations);\n var decoratedLeaves = Text$1.decorations(text, decorations);\n var key = ReactEditor.findKey(editor, text);\n var children = [];\n for (var i = 0; i < decoratedLeaves.length; i++) {\n var {\n leaf,\n position\n } = decoratedLeaves[i];\n children.push( /*#__PURE__*/React.createElement(MemoizedLeaf, {\n isLast: isLast && i === decoratedLeaves.length - 1,\n key: \"\".concat(key.id, \"-\").concat(i),\n renderPlaceholder: renderPlaceholder,\n leaf: leaf,\n leafPosition: position,\n text: text,\n parent: parent,\n renderLeaf: renderLeaf\n }));\n }\n // Update element-related weak maps with the DOM element ref.\n var callbackRef = useCallback(span => {\n var KEY_TO_ELEMENT = EDITOR_TO_KEY_TO_ELEMENT.get(editor);\n if (span) {\n KEY_TO_ELEMENT === null || KEY_TO_ELEMENT === void 0 || KEY_TO_ELEMENT.set(key, span);\n NODE_TO_ELEMENT.set(text, span);\n ELEMENT_TO_NODE.set(span, text);\n } else {\n KEY_TO_ELEMENT === null || KEY_TO_ELEMENT === void 0 || KEY_TO_ELEMENT.delete(key);\n NODE_TO_ELEMENT.delete(text);\n if (ref.current) {\n ELEMENT_TO_NODE.delete(ref.current);\n }\n }\n ref.current = span;\n }, [ref, editor, key, text]);\n var attributes = {\n 'data-slate-node': 'text',\n ref: callbackRef\n };\n return renderText({\n text,\n children,\n attributes\n });\n};\nvar MemoizedText = /*#__PURE__*/React.memo(Text, (prev, next) => {\n return next.parent === prev.parent && next.isLast === prev.isLast && next.renderText === prev.renderText && next.renderLeaf === prev.renderLeaf && next.renderPlaceholder === prev.renderPlaceholder && next.text === prev.text && isTextDecorationsEqual(next.decorations, prev.decorations);\n});\nvar DefaultText = props => {\n var {\n attributes,\n children\n } = props;\n return /*#__PURE__*/React.createElement(\"span\", _objectSpread$3({}, attributes), children);\n};\n\nfunction ownKeys$2(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$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar defaultRenderElement = props => /*#__PURE__*/React.createElement(DefaultElement, _objectSpread$2({}, props));\n/**\n * Element.\n */\nvar Element = props => {\n var {\n decorations: parentDecorations,\n element,\n renderElement = defaultRenderElement,\n renderChunk,\n renderPlaceholder,\n renderLeaf,\n renderText\n } = props;\n var editor = useSlateStatic();\n var readOnly = useReadOnly();\n var isInline = editor.isInline(element);\n var decorations = useDecorations(element, parentDecorations);\n var key = ReactEditor.findKey(editor, element);\n var ref = useCallback(ref => {\n // Update element-related weak maps with the DOM element ref.\n var KEY_TO_ELEMENT = EDITOR_TO_KEY_TO_ELEMENT.get(editor);\n if (ref) {\n KEY_TO_ELEMENT === null || KEY_TO_ELEMENT === void 0 || KEY_TO_ELEMENT.set(key, ref);\n NODE_TO_ELEMENT.set(element, ref);\n ELEMENT_TO_NODE.set(ref, element);\n } else {\n KEY_TO_ELEMENT === null || KEY_TO_ELEMENT === void 0 || KEY_TO_ELEMENT.delete(key);\n NODE_TO_ELEMENT.delete(element);\n }\n }, [editor, key, element]);\n var children = useChildren({\n decorations,\n node: element,\n renderElement,\n renderChunk,\n renderPlaceholder,\n renderLeaf,\n renderText\n });\n // Attributes that the developer must mix into the element in their\n // custom node renderer component.\n var attributes = {\n 'data-slate-node': 'element',\n ref\n };\n if (isInline) {\n attributes['data-slate-inline'] = true;\n }\n // If it's a block node with inline children, add the proper `dir` attribute\n // for text direction.\n if (!isInline && Editor.hasInlines(editor, element)) {\n var text = Node.string(element);\n var dir = getDirection(text);\n if (dir === 'rtl') {\n attributes.dir = dir;\n }\n }\n // If it's a void node, wrap the children in extra void-specific elements.\n if (Editor.isVoid(editor, element)) {\n attributes['data-slate-void'] = true;\n if (!readOnly && isInline) {\n attributes.contentEditable = false;\n }\n var Tag = isInline ? 'span' : 'div';\n var [[_text]] = Node.texts(element);\n children = /*#__PURE__*/React.createElement(Tag, {\n \"data-slate-spacer\": true,\n style: {\n height: '0',\n color: 'transparent',\n outline: 'none',\n position: 'absolute'\n }\n }, /*#__PURE__*/React.createElement(MemoizedText, {\n renderPlaceholder: renderPlaceholder,\n decorations: [],\n isLast: false,\n parent: element,\n text: _text\n }));\n NODE_TO_INDEX.set(_text, 0);\n NODE_TO_PARENT.set(_text, element);\n }\n return renderElement({\n attributes,\n children,\n element\n });\n};\nvar MemoizedElement = /*#__PURE__*/React.memo(Element, (prev, next) => {\n return prev.element === next.element && prev.renderElement === next.renderElement && prev.renderChunk === next.renderChunk && prev.renderText === next.renderText && prev.renderLeaf === next.renderLeaf && prev.renderPlaceholder === next.renderPlaceholder && isElementDecorationsEqual(prev.decorations, next.decorations);\n});\n/**\n * The default element renderer.\n */\nvar DefaultElement = props => {\n var {\n attributes,\n children,\n element\n } = props;\n var editor = useSlateStatic();\n var Tag = editor.isInline(element) ? 'span' : 'div';\n return /*#__PURE__*/React.createElement(Tag, _objectSpread$2(_objectSpread$2({}, attributes), {}, {\n style: {\n position: 'relative'\n }\n }), children);\n};\n\n/**\n * Traverse and modify a chunk tree\n */\nclass ChunkTreeHelper {\n constructor(chunkTree, _ref) {\n var {\n chunkSize,\n debug\n } = _ref;\n /**\n * The root of the chunk tree\n */\n _defineProperty(this, \"root\", void 0);\n /**\n * The ideal size of a chunk\n */\n _defineProperty(this, \"chunkSize\", void 0);\n /**\n * Whether debug mode is enabled\n *\n * If enabled, the pointer state will be checked for internal consistency\n * after each mutating operation.\n */\n _defineProperty(this, \"debug\", void 0);\n /**\n * Whether the traversal has reached the end of the chunk tree\n *\n * When this is true, the pointerChunk and pointerIndex point to the last\n * top-level node in the chunk tree, although pointerNode returns null.\n */\n _defineProperty(this, \"reachedEnd\", void 0);\n /**\n * The chunk containing the current node\n */\n _defineProperty(this, \"pointerChunk\", void 0);\n /**\n * The index of the current node within pointerChunk\n *\n * Can be -1 to indicate that the pointer is before the start of the tree.\n */\n _defineProperty(this, \"pointerIndex\", void 0);\n /**\n * Similar to a Slate path; tracks the path of pointerChunk relative to the\n * root.\n *\n * Used to move the pointer from the current chunk to the parent chunk more\n * efficiently.\n */\n _defineProperty(this, \"pointerIndexStack\", void 0);\n /**\n * Indexing the current chunk's children has a slight time cost, which adds up\n * when traversing very large trees, so the current node is cached.\n *\n * A value of undefined means that the current node is not cached. This\n * property must be set to undefined whenever the pointer is moved, unless\n * the pointer is guaranteed to point to the same node that it did previously.\n */\n _defineProperty(this, \"cachedPointerNode\", void 0);\n this.root = chunkTree;\n this.chunkSize = chunkSize;\n // istanbul ignore next\n this.debug = debug !== null && debug !== void 0 ? debug : false;\n this.pointerChunk = chunkTree;\n this.pointerIndex = -1;\n this.pointerIndexStack = [];\n this.reachedEnd = false;\n this.validateState();\n }\n /**\n * Move the pointer to the next leaf in the chunk tree\n */\n readLeaf() {\n // istanbul ignore next\n if (this.reachedEnd) return null;\n // Get the next sibling or aunt node\n while (true) {\n if (this.pointerIndex + 1 < this.pointerSiblings.length) {\n this.pointerIndex++;\n this.cachedPointerNode = undefined;\n break;\n } else if (this.pointerChunk.type === 'root') {\n this.reachedEnd = true;\n return null;\n } else {\n this.exitChunk();\n }\n }\n this.validateState();\n // If the next sibling or aunt is a chunk, descend into it\n this.enterChunkUntilLeaf(false);\n return this.pointerNode;\n }\n /**\n * Move the pointer to the previous leaf in the chunk tree\n */\n returnToPreviousLeaf() {\n // If we were at the end of the tree, descend into the end of the last\n // chunk in the tree\n if (this.reachedEnd) {\n this.reachedEnd = false;\n this.enterChunkUntilLeaf(true);\n return;\n }\n // Get the previous sibling or aunt node\n while (true) {\n if (this.pointerIndex >= 1) {\n this.pointerIndex--;\n this.cachedPointerNode = undefined;\n break;\n } else if (this.pointerChunk.type === 'root') {\n this.pointerIndex = -1;\n return;\n } else {\n this.exitChunk();\n }\n }\n this.validateState();\n // If the previous sibling or aunt is a chunk, descend into it\n this.enterChunkUntilLeaf(true);\n }\n /**\n * Insert leaves before the current leaf, leaving the pointer unchanged\n */\n insertBefore(leaves) {\n this.returnToPreviousLeaf();\n this.insertAfter(leaves);\n this.readLeaf();\n }\n /**\n * Insert leaves after the current leaf, leaving the pointer on the last\n * inserted leaf\n *\n * The insertion algorithm first checks for any chunk we're currently at the\n * end of that can receive additional leaves. Next, it tries to insert leaves\n * at the starts of any subsequent chunks.\n *\n * Any remaining leaves are passed to rawInsertAfter to be chunked and\n * inserted at the highest possible level.\n */\n insertAfter(leaves) {\n // istanbul ignore next\n if (leaves.length === 0) return;\n var beforeDepth = 0;\n var afterDepth = 0;\n // While at the end of a chunk, insert any leaves that will fit, and then\n // exit the chunk\n while (this.pointerChunk.type === 'chunk' && this.pointerIndex === this.pointerSiblings.length - 1) {\n var remainingCapacity = this.chunkSize - this.pointerSiblings.length;\n var toInsertCount = Math.min(remainingCapacity, leaves.length);\n if (toInsertCount > 0) {\n var leavesToInsert = leaves.splice(0, toInsertCount);\n this.rawInsertAfter(leavesToInsert, beforeDepth);\n }\n this.exitChunk();\n beforeDepth++;\n }\n if (leaves.length === 0) return;\n // Save the pointer so that we can come back here after inserting leaves\n // into the starts of subsequent blocks\n var rawInsertPointer = this.savePointer();\n // If leaves are inserted into the start of a subsequent block, then we\n // eventually need to restore the pointer to the last such inserted leaf\n var finalPointer = null;\n // Move the pointer into the chunk containing the next leaf, if it exists\n if (this.readLeaf()) {\n // While at the start of a chunk, insert any leaves that will fit, and\n // then exit the chunk\n while (this.pointerChunk.type === 'chunk' && this.pointerIndex === 0) {\n var _remainingCapacity = this.chunkSize - this.pointerSiblings.length;\n var _toInsertCount = Math.min(_remainingCapacity, leaves.length);\n if (_toInsertCount > 0) {\n var _leavesToInsert = leaves.splice(-_toInsertCount, _toInsertCount);\n // Insert the leaves at the start of the chunk\n this.pointerIndex = -1;\n this.cachedPointerNode = undefined;\n this.rawInsertAfter(_leavesToInsert, afterDepth);\n // If this is the first batch of insertions at the start of a\n // subsequent chunk, set the final pointer to the last inserted leaf\n if (!finalPointer) {\n finalPointer = this.savePointer();\n }\n }\n this.exitChunk();\n afterDepth++;\n }\n }\n this.restorePointer(rawInsertPointer);\n // If there are leaves left to insert, insert them between the end of the\n // previous chunk and the start of the first subsequent chunk, or wherever\n // the pointer ended up after the first batch of insertions\n var minDepth = Math.max(beforeDepth, afterDepth);\n this.rawInsertAfter(leaves, minDepth);\n if (finalPointer) {\n this.restorePointer(finalPointer);\n }\n this.validateState();\n }\n /**\n * Remove the current node and decrement the pointer, deleting any ancestor\n * chunk that becomes empty as a result\n */\n remove() {\n this.pointerSiblings.splice(this.pointerIndex--, 1);\n this.cachedPointerNode = undefined;\n if (this.pointerSiblings.length === 0 && this.pointerChunk.type === 'chunk') {\n this.exitChunk();\n this.remove();\n } else {\n this.invalidateChunk();\n }\n this.validateState();\n }\n /**\n * Add the current chunk and all ancestor chunks to the list of modified\n * chunks\n */\n invalidateChunk() {\n for (var c = this.pointerChunk; c.type === 'chunk'; c = c.parent) {\n this.root.modifiedChunks.add(c);\n }\n }\n /**\n * Whether the pointer is at the start of the tree\n */\n get atStart() {\n return this.pointerChunk.type === 'root' && this.pointerIndex === -1;\n }\n /**\n * The siblings of the current node\n */\n get pointerSiblings() {\n return this.pointerChunk.children;\n }\n /**\n * Get the current node (uncached)\n *\n * If the pointer is at the start or end of the document, returns null.\n *\n * Usually, the current node is a chunk leaf, although it can be a chunk\n * while insertions are in progress.\n */\n getPointerNode() {\n if (this.reachedEnd || this.pointerIndex === -1) {\n return null;\n }\n return this.pointerSiblings[this.pointerIndex];\n }\n /**\n * Cached getter for the current node\n */\n get pointerNode() {\n if (this.cachedPointerNode !== undefined) return this.cachedPointerNode;\n var pointerNode = this.getPointerNode();\n this.cachedPointerNode = pointerNode;\n return pointerNode;\n }\n /**\n * Get the path of a chunk relative to the root, returning null if the chunk\n * is not connected to the root\n */\n getChunkPath(chunk) {\n var path = [];\n for (var c = chunk; c.type === 'chunk'; c = c.parent) {\n var index = c.parent.children.indexOf(c);\n // istanbul ignore next\n if (index === -1) {\n return null;\n }\n path.unshift(index);\n }\n return path;\n }\n /**\n * Save the current pointer to be restored later\n */\n savePointer() {\n if (this.atStart) return 'start';\n // istanbul ignore next\n if (!this.pointerNode) {\n throw new Error('Cannot save pointer when pointerNode is null');\n }\n return {\n chunk: this.pointerChunk,\n node: this.pointerNode\n };\n }\n /**\n * Restore the pointer to a previous state\n */\n restorePointer(savedPointer) {\n if (savedPointer === 'start') {\n this.pointerChunk = this.root;\n this.pointerIndex = -1;\n this.pointerIndexStack = [];\n this.reachedEnd = false;\n this.cachedPointerNode = undefined;\n return;\n }\n // Since nodes may have been inserted or removed prior to the saved\n // pointer since it was saved, the index and index stack must be\n // recomputed. This is slow, but this is fine since restoring a pointer is\n // not a frequent operation.\n var {\n chunk,\n node\n } = savedPointer;\n var index = chunk.children.indexOf(node);\n // istanbul ignore next\n if (index === -1) {\n throw new Error('Cannot restore point because saved node is no longer in saved chunk');\n }\n var indexStack = this.getChunkPath(chunk);\n // istanbul ignore next\n if (!indexStack) {\n throw new Error('Cannot restore point because saved chunk is no longer connected to root');\n }\n this.pointerChunk = chunk;\n this.pointerIndex = index;\n this.pointerIndexStack = indexStack;\n this.reachedEnd = false;\n this.cachedPointerNode = node;\n this.validateState();\n }\n /**\n * Assuming the current node is a chunk, move the pointer into that chunk\n *\n * @param end If true, place the pointer on the last node of the chunk.\n * Otherwise, place the pointer on the first node.\n */\n enterChunk(end) {\n var _this$pointerNode;\n // istanbul ignore next\n if (((_this$pointerNode = this.pointerNode) === null || _this$pointerNode === void 0 ? void 0 : _this$pointerNode.type) !== 'chunk') {\n throw new Error('Cannot enter non-chunk');\n }\n this.pointerIndexStack.push(this.pointerIndex);\n this.pointerChunk = this.pointerNode;\n this.pointerIndex = end ? this.pointerSiblings.length - 1 : 0;\n this.cachedPointerNode = undefined;\n this.validateState();\n // istanbul ignore next\n if (this.pointerChunk.children.length === 0) {\n throw new Error('Cannot enter empty chunk');\n }\n }\n /**\n * Assuming the current node is a chunk, move the pointer into that chunk\n * repeatedly until the current node is a leaf\n *\n * @param end If true, place the pointer on the last node of the chunk.\n * Otherwise, place the pointer on the first node.\n */\n enterChunkUntilLeaf(end) {\n while (((_this$pointerNode2 = this.pointerNode) === null || _this$pointerNode2 === void 0 ? void 0 : _this$pointerNode2.type) === 'chunk') {\n var _this$pointerNode2;\n this.enterChunk(end);\n }\n }\n /**\n * Move the pointer to the parent chunk\n */\n exitChunk() {\n // istanbul ignore next\n if (this.pointerChunk.type === 'root') {\n throw new Error('Cannot exit root');\n }\n var previousPointerChunk = this.pointerChunk;\n this.pointerChunk = previousPointerChunk.parent;\n this.pointerIndex = this.pointerIndexStack.pop();\n this.cachedPointerNode = undefined;\n this.validateState();\n }\n /**\n * Insert leaves immediately after the current node, leaving the pointer on\n * the last inserted leaf\n *\n * Leaves are chunked according to the number of nodes already in the parent\n * plus the number of nodes being inserted, or the minimum depth if larger\n */\n rawInsertAfter(leaves, minDepth) {\n if (leaves.length === 0) return;\n var groupIntoChunks = (leaves, parent, perChunk) => {\n if (perChunk === 1) return leaves;\n var chunks = [];\n for (var i = 0; i < this.chunkSize; i++) {\n var chunkNodes = leaves.slice(i * perChunk, (i + 1) * perChunk);\n if (chunkNodes.length === 0) break;\n var chunk = {\n type: 'chunk',\n key: new Key(),\n parent,\n children: []\n };\n chunk.children = groupIntoChunks(chunkNodes, chunk, perChunk / this.chunkSize);\n chunks.push(chunk);\n }\n return chunks;\n };\n // Determine the chunking depth based on the number of existing nodes in\n // the chunk and the number of nodes being inserted\n var newTotal = this.pointerSiblings.length + leaves.length;\n var depthForTotal = 0;\n for (var i = this.chunkSize; i < newTotal; i *= this.chunkSize) {\n depthForTotal++;\n }\n // A depth of 0 means no chunking\n var depth = Math.max(depthForTotal, minDepth);\n var perTopLevelChunk = Math.pow(this.chunkSize, depth);\n var chunks = groupIntoChunks(leaves, this.pointerChunk, perTopLevelChunk);\n this.pointerSiblings.splice(this.pointerIndex + 1, 0, ...chunks);\n this.pointerIndex += chunks.length;\n this.cachedPointerNode = undefined;\n this.invalidateChunk();\n this.validateState();\n }\n /**\n * If debug mode is enabled, ensure that the state is internally consistent\n */\n // istanbul ignore next\n validateState() {\n if (!this.debug) return;\n var validateDescendant = node => {\n if (node.type === 'chunk') {\n var {\n parent,\n children\n } = node;\n if (!parent.children.includes(node)) {\n throw new Error(\"Debug: Chunk \".concat(node.key.id, \" has an incorrect parent property\"));\n }\n children.forEach(validateDescendant);\n }\n };\n this.root.children.forEach(validateDescendant);\n if (this.cachedPointerNode !== undefined && this.cachedPointerNode !== this.getPointerNode()) {\n throw new Error('Debug: The cached pointer is incorrect and has not been invalidated');\n }\n var actualIndexStack = this.getChunkPath(this.pointerChunk);\n if (!actualIndexStack) {\n throw new Error('Debug: The pointer chunk is not connected to the root');\n }\n if (!Path.equals(this.pointerIndexStack, actualIndexStack)) {\n throw new Error(\"Debug: The cached index stack [\".concat(this.pointerIndexStack.join(', '), \"] does not match the path of the pointer chunk [\").concat(actualIndexStack.join(', '), \"]\"));\n }\n }\n}\n\n/**\n * Traverse an array of children, providing helpers useful for reconciling the\n * children array with a chunk tree\n */\nclass ChildrenHelper {\n constructor(editor, children) {\n _defineProperty(this, \"editor\", void 0);\n _defineProperty(this, \"children\", void 0);\n /**\n * Sparse array of Slate node keys, each index corresponding to an index in\n * the children array\n *\n * Fetching the key for a Slate node is expensive, so we cache them here.\n */\n _defineProperty(this, \"cachedKeys\", void 0);\n /**\n * The index of the next node to be read in the children array\n */\n _defineProperty(this, \"pointerIndex\", void 0);\n this.editor = editor;\n this.children = children;\n this.cachedKeys = new Array(children.length);\n this.pointerIndex = 0;\n }\n /**\n * Read a given number of nodes, advancing the pointer by that amount\n */\n read(n) {\n // PERF: If only one child was requested (the most common case), use array\n // indexing instead of slice\n if (n === 1) {\n return [this.children[this.pointerIndex++]];\n }\n var slicedChildren = this.remaining(n);\n this.pointerIndex += n;\n return slicedChildren;\n }\n /**\n * Get the remaining children without advancing the pointer\n *\n * @param [maxChildren] Limit the number of children returned.\n */\n remaining(maxChildren) {\n if (maxChildren === undefined) {\n return this.children.slice(this.pointerIndex);\n }\n return this.children.slice(this.pointerIndex, this.pointerIndex + maxChildren);\n }\n /**\n * Whether all children have been read\n */\n get reachedEnd() {\n return this.pointerIndex >= this.children.length;\n }\n /**\n * Determine whether a node with a given key appears in the unread part of the\n * children array, and return its index relative to the current pointer if so\n *\n * Searching for the node object itself using indexOf is most efficient, but\n * will fail to locate nodes that have been modified. In this case, nodes\n * should be identified by their keys instead.\n *\n * Searching an array of keys using indexOf is very inefficient since fetching\n * the keys for all children in advance is very slow. Insead, if the node\n * search fails to return a value, fetch the keys of each remaining child one\n * by one and compare it to the known key.\n */\n lookAhead(node, key) {\n var elementResult = this.children.indexOf(node, this.pointerIndex);\n if (elementResult > -1) return elementResult - this.pointerIndex;\n for (var i = this.pointerIndex; i < this.children.length; i++) {\n var candidateNode = this.children[i];\n var candidateKey = this.findKey(candidateNode, i);\n if (candidateKey === key) return i - this.pointerIndex;\n }\n return -1;\n }\n /**\n * Convert an array of Slate nodes to an array of chunk leaves, each\n * containing the node and its key\n */\n toChunkLeaves(nodes, startIndex) {\n return nodes.map((node, i) => ({\n type: 'leaf',\n node,\n key: this.findKey(node, startIndex + i),\n index: startIndex + i\n }));\n }\n /**\n * Get the key for a Slate node, cached using the node's index\n */\n findKey(node, index) {\n var cachedKey = this.cachedKeys[index];\n if (cachedKey) return cachedKey;\n var key = ReactEditor.findKey(this.editor, node);\n this.cachedKeys[index] = key;\n return key;\n }\n}\n\n/**\n * Update the chunk tree to match the children array, inserting, removing and\n * updating differing nodes\n */\nvar reconcileChildren = (editor, _ref) => {\n var {\n chunkTree,\n children,\n chunkSize,\n rerenderChildren = [],\n onInsert,\n onUpdate,\n onIndexChange,\n debug\n } = _ref;\n chunkTree.modifiedChunks.clear();\n var chunkTreeHelper = new ChunkTreeHelper(chunkTree, {\n chunkSize,\n debug\n });\n var childrenHelper = new ChildrenHelper(editor, children);\n var treeLeaf;\n // Read leaves from the tree one by one, each one representing a single Slate\n // node. Each leaf from the tree is compared to the current node in the\n // children array to determine whether nodes have been inserted, removed or\n // updated.\n var _loop = function _loop() {\n // Check where the tree node appears in the children array. In the most\n // common case (where no insertions or removals have occurred), this will be\n // 0. If the node has been removed, this will be -1. If new nodes have been\n // inserted before the node, or if the node has been moved to a later\n // position in the same children array, this will be a positive number.\n var lookAhead = childrenHelper.lookAhead(treeLeaf.node, treeLeaf.key);\n // If the node was moved, we want to remove it and insert it later, rather\n // then re-inserting all intermediate nodes before it.\n var wasMoved = lookAhead > 0 && chunkTree.movedNodeKeys.has(treeLeaf.key);\n // If the tree leaf was moved or removed, remove it\n if (lookAhead === -1 || wasMoved) {\n chunkTreeHelper.remove();\n return 1; // continue\n }\n // Get the matching Slate node and any nodes that may have been inserted\n // prior to it. Insert these into the chunk tree.\n var insertedChildrenStartIndex = childrenHelper.pointerIndex;\n var insertedChildren = childrenHelper.read(lookAhead + 1);\n var matchingChild = insertedChildren.pop();\n if (insertedChildren.length) {\n var _leavesToInsert = childrenHelper.toChunkLeaves(insertedChildren, insertedChildrenStartIndex);\n chunkTreeHelper.insertBefore(_leavesToInsert);\n insertedChildren.forEach((node, relativeIndex) => {\n onInsert === null || onInsert === void 0 || onInsert(node, insertedChildrenStartIndex + relativeIndex);\n });\n }\n var matchingChildIndex = childrenHelper.pointerIndex - 1;\n // Make sure the chunk tree contains the most recent version of the Slate\n // node\n if (treeLeaf.node !== matchingChild) {\n treeLeaf.node = matchingChild;\n chunkTreeHelper.invalidateChunk();\n onUpdate === null || onUpdate === void 0 || onUpdate(matchingChild, matchingChildIndex);\n }\n // Update the index if it has changed\n if (treeLeaf.index !== matchingChildIndex) {\n treeLeaf.index = matchingChildIndex;\n onIndexChange === null || onIndexChange === void 0 || onIndexChange(matchingChild, matchingChildIndex);\n }\n // Manually invalidate chunks containing specific children that we want to\n // re-render\n if (rerenderChildren.includes(matchingChildIndex)) {\n chunkTreeHelper.invalidateChunk();\n }\n };\n while (treeLeaf = chunkTreeHelper.readLeaf()) {\n if (_loop()) continue;\n }\n // If there are still Slate nodes remaining from the children array that were\n // not matched to nodes in the tree, insert them at the end of the tree\n if (!childrenHelper.reachedEnd) {\n var remainingChildren = childrenHelper.remaining();\n var leavesToInsert = childrenHelper.toChunkLeaves(remainingChildren, childrenHelper.pointerIndex);\n // Move the pointer back to the final leaf in the tree, or the start of the\n // tree if the tree is currently empty\n chunkTreeHelper.returnToPreviousLeaf();\n chunkTreeHelper.insertAfter(leavesToInsert);\n remainingChildren.forEach((node, relativeIndex) => {\n onInsert === null || onInsert === void 0 || onInsert(node, childrenHelper.pointerIndex + relativeIndex);\n });\n }\n chunkTree.movedNodeKeys.clear();\n};\n\nfunction ownKeys$1(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$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar KEY_TO_CHUNK_TREE = new WeakMap();\n/**\n * Get or create the chunk tree for a Slate node\n *\n * If the reconcile option is provided, the chunk tree will be updated to\n * match the current children of the node. The children are chunked\n * automatically using the given chunk size.\n */\nvar getChunkTreeForNode = function getChunkTreeForNode(editor, node) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var key = ReactEditor.findKey(editor, node);\n var chunkTree = KEY_TO_CHUNK_TREE.get(key);\n if (!chunkTree) {\n chunkTree = {\n type: 'root',\n movedNodeKeys: new Set(),\n modifiedChunks: new Set(),\n children: []\n };\n KEY_TO_CHUNK_TREE.set(key, chunkTree);\n }\n if (options.reconcile) {\n reconcileChildren(editor, _objectSpread$1({\n chunkTree,\n children: node.children\n }, options.reconcile));\n }\n return chunkTree;\n};\n\nvar defaultRenderChunk = _ref => {\n var {\n children\n } = _ref;\n return children;\n};\nvar ChunkAncestor = props => {\n var {\n root,\n ancestor,\n renderElement,\n renderChunk = defaultRenderChunk\n } = props;\n return ancestor.children.map(chunkNode => {\n if (chunkNode.type === 'chunk') {\n var key = chunkNode.key.id;\n var renderedChunk = renderChunk({\n highest: ancestor === root,\n lowest: chunkNode.children.some(c => c.type === 'leaf'),\n attributes: {\n 'data-slate-chunk': true\n },\n children: /*#__PURE__*/React.createElement(MemoizedChunk, {\n root: root,\n ancestor: chunkNode,\n renderElement: renderElement,\n renderChunk: renderChunk\n })\n });\n return /*#__PURE__*/React.createElement(Fragment, {\n key: key\n }, renderedChunk);\n }\n // Only blocks containing no inlines are chunked\n var element = chunkNode.node;\n return renderElement(element, chunkNode.index, chunkNode.key);\n });\n};\nvar ChunkTree = ChunkAncestor;\nvar MemoizedChunk = /*#__PURE__*/React.memo(ChunkAncestor, (prev, next) => prev.root === next.root && prev.renderElement === next.renderElement && prev.renderChunk === next.renderChunk && !next.root.modifiedChunks.has(next.ancestor));\n\nvar ElementContext = /*#__PURE__*/createContext(null);\n/**\n * Get the current element.\n */\nvar useElement = () => {\n var context = useContext(ElementContext);\n if (!context) {\n throw new Error('The `useElement` hook must be used inside `renderElement`.');\n }\n return context;\n};\n/**\n * Get the current element, or return null if not inside `renderElement`.\n */\nvar useElementIf = () => useContext(ElementContext);\n\n/**\n * Children.\n */\nvar useChildren = props => {\n var {\n decorations,\n node,\n renderElement,\n renderChunk,\n renderPlaceholder,\n renderText,\n renderLeaf\n } = props;\n var editor = useSlateStatic();\n IS_NODE_MAP_DIRTY.set(editor, false);\n var isEditor = Editor.isEditor(node);\n var isBlock = !isEditor && Element$1.isElement(node) && !editor.isInline(node);\n var isLeafBlock = isBlock && Editor.hasInlines(editor, node);\n var chunkSize = isLeafBlock ? null : editor.getChunkSize(node);\n var chunking = !!chunkSize;\n var {\n decorationsByChild,\n childrenToRedecorate\n } = useDecorationsByChild(editor, node, decorations);\n // Update the index and parent of each child.\n // PERF: If chunking is enabled, this is done while traversing the chunk tree\n // instead to eliminate unnecessary weak map operations.\n if (!chunking) {\n node.children.forEach((n, i) => {\n NODE_TO_INDEX.set(n, i);\n NODE_TO_PARENT.set(n, node);\n });\n }\n var renderElementComponent = useCallback((n, i, cachedKey) => {\n var key = cachedKey !== null && cachedKey !== void 0 ? cachedKey : ReactEditor.findKey(editor, n);\n return /*#__PURE__*/React.createElement(ElementContext.Provider, {\n key: \"provider-\".concat(key.id),\n value: n\n }, /*#__PURE__*/React.createElement(MemoizedElement, {\n decorations: decorationsByChild[i],\n element: n,\n key: key.id,\n renderElement: renderElement,\n renderChunk: renderChunk,\n renderPlaceholder: renderPlaceholder,\n renderLeaf: renderLeaf,\n renderText: renderText\n }));\n }, [editor, decorationsByChild, renderElement, renderChunk, renderPlaceholder, renderLeaf, renderText]);\n var renderTextComponent = (n, i) => {\n var key = ReactEditor.findKey(editor, n);\n return /*#__PURE__*/React.createElement(MemoizedText, {\n decorations: decorationsByChild[i],\n key: key.id,\n isLast: i === node.children.length - 1,\n parent: node,\n renderPlaceholder: renderPlaceholder,\n renderLeaf: renderLeaf,\n renderText: renderText,\n text: n\n });\n };\n if (!chunking) {\n return node.children.map((n, i) => Text$1.isText(n) ? renderTextComponent(n, i) : renderElementComponent(n, i));\n }\n var chunkTree = getChunkTreeForNode(editor, node, {\n reconcile: {\n chunkSize,\n rerenderChildren: childrenToRedecorate,\n onInsert: (n, i) => {\n NODE_TO_INDEX.set(n, i);\n NODE_TO_PARENT.set(n, node);\n },\n onUpdate: (n, i) => {\n NODE_TO_INDEX.set(n, i);\n NODE_TO_PARENT.set(n, node);\n },\n onIndexChange: (n, i) => {\n NODE_TO_INDEX.set(n, i);\n }\n }\n });\n return /*#__PURE__*/React.createElement(ChunkTree, {\n root: chunkTree,\n ancestor: chunkTree,\n renderElement: renderElementComponent,\n renderChunk: renderChunk\n });\n};\nvar useDecorationsByChild = (editor, node, decorations) => {\n var decorationsByChild = splitDecorationsByChild(editor, node, decorations);\n // The value we return is a mutable array of `DecoratedRange[]` arrays. This\n // lets us avoid passing an immutable array of decorations for each child into\n // `ChunkTree` using props. Each `DecoratedRange[]` is only updated if the\n // decorations at that index have changed, which speeds up the equality check\n // for the `decorations` prop in the memoized `Element` and `Text` components.\n var mutableDecorationsByChild = useRef(decorationsByChild).current;\n // Track the list of child indices whose decorations have changed, so that we\n // can tell the chunk tree to re-render these children.\n var childrenToRedecorate = [];\n // Resize the mutable array to match the latest result\n mutableDecorationsByChild.length = decorationsByChild.length;\n for (var i = 0; i < decorationsByChild.length; i++) {\n var _mutableDecorationsBy;\n var _decorations = decorationsByChild[i];\n var previousDecorations = (_mutableDecorationsBy = mutableDecorationsByChild[i]) !== null && _mutableDecorationsBy !== void 0 ? _mutableDecorationsBy : null;\n if (!isElementDecorationsEqual(previousDecorations, _decorations)) {\n mutableDecorationsByChild[i] = _decorations;\n childrenToRedecorate.push(i);\n }\n }\n return {\n decorationsByChild: mutableDecorationsByChild,\n childrenToRedecorate\n };\n};\n\n/**\n * A React context for sharing the `readOnly` state of the editor.\n */\nvar ReadOnlyContext = /*#__PURE__*/createContext(false);\n/**\n * Get the current `readOnly` state of the editor.\n */\nvar useReadOnly = () => {\n return useContext(ReadOnlyContext);\n};\n\n/**\n * A React context for sharing the editor selector context in a way to control\n * re-renders.\n */\nvar SlateSelectorContext = /*#__PURE__*/createContext({});\nvar refEquality = (a, b) => a === b;\n/**\n * Use redux style selectors to prevent re-rendering on every keystroke.\n *\n * Bear in mind re-rendering can only prevented if the returned value is a value\n * type or for reference types (e.g. objects and arrays) add a custom equality\n * function.\n *\n * If `selector` is memoized using `useCallback`, then it will only be called\n * when it or the editor state changes. Otherwise, `selector` will be called\n * every time the component renders.\n *\n * @example\n * const isSelectionActive = useSlateSelector(editor => Boolean(editor.selection))\n */\nfunction useSlateSelector(selector) {\n var equalityFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : refEquality;\n var {\n deferred\n } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var context = useContext(SlateSelectorContext);\n if (!context) {\n throw new Error(\"The `useSlateSelector` hook must be used inside the <Slate> component's context.\");\n }\n var {\n addEventListener\n } = context;\n var editor = useSlateStatic();\n var genericSelector = useCallback(() => selector(editor), [editor, selector]);\n var [selectedState, update] = useGenericSelector(genericSelector, equalityFn);\n useIsomorphicLayoutEffect(() => {\n var unsubscribe = addEventListener(update, {\n deferred\n });\n update();\n return unsubscribe;\n }, [addEventListener, update, deferred]);\n return selectedState;\n}\n/**\n * Create selector context with editor updating on every editor change\n */\nfunction useSelectorContext() {\n var eventListeners = useRef(new Set());\n var deferredEventListeners = useRef(new Set());\n var onChange = useCallback(() => {\n eventListeners.current.forEach(listener => listener());\n }, []);\n var flushDeferred = useCallback(() => {\n deferredEventListeners.current.forEach(listener => listener());\n deferredEventListeners.current.clear();\n }, []);\n var addEventListener = useCallback(function (callbackProp) {\n var {\n deferred = false\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var callback = deferred ? () => deferredEventListeners.current.add(callbackProp) : callbackProp;\n eventListeners.current.add(callback);\n return () => {\n eventListeners.current.delete(callback);\n };\n }, []);\n var selectorContext = useMemo(() => ({\n addEventListener,\n flushDeferred\n }), [addEventListener, flushDeferred]);\n return {\n selectorContext,\n onChange\n };\n}\nfunction useFlushDeferredSelectorsOnRender() {\n var {\n flushDeferred\n } = useContext(SlateSelectorContext);\n useIsomorphicLayoutEffect(flushDeferred);\n}\n\n/**\n * Get the current editor object and re-render whenever it changes.\n */\nvar useSlate = () => {\n var {\n addEventListener\n } = useContext(SlateSelectorContext);\n var [, forceRender] = useReducer(s => s + 1, 0);\n if (!addEventListener) {\n throw new Error(\"The `useSlate` hook must be used inside the <Slate> component's context.\");\n }\n useIsomorphicLayoutEffect(() => addEventListener(forceRender), [addEventListener]);\n return useSlateStatic();\n};\nvar EDITOR_TO_V = new WeakMap();\nvar getEditorVersionRef = editor => {\n var v = EDITOR_TO_V.get(editor);\n if (v) {\n return v;\n }\n v = {\n current: 0\n };\n EDITOR_TO_V.set(editor, v);\n // Register the `onChange` handler exactly once per editor\n var {\n onChange\n } = editor;\n editor.onChange = options => {\n v.current++;\n onChange(options);\n };\n return v;\n};\n/**\n * Get the current editor object and its version, which increments on every\n * change.\n *\n * @deprecated The `v` counter is no longer used except for this hook, and may\n * be removed in a future version.\n */\nvar useSlateWithV = () => {\n var editor = useSlate();\n var vRef = useMemo(() => getEditorVersionRef(editor), [editor]);\n return {\n editor,\n v: vRef.current\n };\n};\n\nfunction useTrackUserInput() {\n var editor = useSlateStatic();\n var receivedUserInput = useRef(false);\n var animationFrameIdRef = useRef(0);\n var onUserInput = useCallback(() => {\n if (receivedUserInput.current) {\n return;\n }\n receivedUserInput.current = true;\n var window = ReactEditor.getWindow(editor);\n window.cancelAnimationFrame(animationFrameIdRef.current);\n animationFrameIdRef.current = window.requestAnimationFrame(() => {\n receivedUserInput.current = false;\n });\n }, [editor]);\n useEffect(() => () => cancelAnimationFrame(animationFrameIdRef.current), []);\n return {\n receivedUserInput,\n onUserInput\n };\n}\n\nvar createRestoreDomManager = (editor, receivedUserInput) => {\n var bufferedMutations = [];\n var clear = () => {\n bufferedMutations = [];\n };\n var registerMutations = mutations => {\n if (!receivedUserInput.current) {\n return;\n }\n var trackedMutations = mutations.filter(mutation => isTrackedMutation(editor, mutation, mutations));\n bufferedMutations.push(...trackedMutations);\n };\n function restoreDOM() {\n if (bufferedMutations.length > 0) {\n bufferedMutations.reverse().forEach(mutation => {\n if (mutation.type === 'characterData') {\n // We don't want to restore the DOM for characterData mutations\n // because this interrupts the composition.\n return;\n }\n mutation.removedNodes.forEach(node => {\n mutation.target.insertBefore(node, mutation.nextSibling);\n });\n mutation.addedNodes.forEach(node => {\n mutation.target.removeChild(node);\n });\n });\n // Clear buffered mutations to ensure we don't undo them twice\n clear();\n }\n }\n return {\n registerMutations,\n restoreDOM,\n clear\n };\n};\n\nvar MUTATION_OBSERVER_CONFIG = {\n subtree: true,\n childList: true,\n characterData: true,\n characterDataOldValue: true\n};\n// We have to use a class component here since we rely on `getSnapshotBeforeUpdate` which has no FC equivalent\n// to run code synchronously immediately before react commits the component update to the DOM.\nclass RestoreDOMComponent extends Component {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"context\", null);\n _defineProperty(this, \"manager\", null);\n _defineProperty(this, \"mutationObserver\", null);\n }\n observe() {\n var _this$mutationObserve;\n var {\n node\n } = this.props;\n if (!node.current) {\n throw new Error('Failed to attach MutationObserver, `node` is undefined');\n }\n (_this$mutationObserve = this.mutationObserver) === null || _this$mutationObserve === void 0 || _this$mutationObserve.observe(node.current, MUTATION_OBSERVER_CONFIG);\n }\n componentDidMount() {\n var {\n receivedUserInput\n } = this.props;\n var editor = this.context;\n this.manager = createRestoreDomManager(editor, receivedUserInput);\n this.mutationObserver = new MutationObserver(this.manager.registerMutations);\n this.observe();\n }\n getSnapshotBeforeUpdate() {\n var _this$mutationObserve2, _this$mutationObserve3, _this$manager2;\n var pendingMutations = (_this$mutationObserve2 = this.mutationObserver) === null || _this$mutationObserve2 === void 0 ? void 0 : _this$mutationObserve2.takeRecords();\n if (pendingMutations !== null && pendingMutations !== void 0 && pendingMutations.length) {\n var _this$manager;\n (_this$manager = this.manager) === null || _this$manager === void 0 || _this$manager.registerMutations(pendingMutations);\n }\n (_this$mutationObserve3 = this.mutationObserver) === null || _this$mutationObserve3 === void 0 || _this$mutationObserve3.disconnect();\n (_this$manager2 = this.manager) === null || _this$manager2 === void 0 || _this$manager2.restoreDOM();\n return null;\n }\n componentDidUpdate() {\n var _this$manager3;\n (_this$manager3 = this.manager) === null || _this$manager3 === void 0 || _this$manager3.clear();\n this.observe();\n }\n componentWillUnmount() {\n var _this$mutationObserve4;\n (_this$mutationObserve4 = this.mutationObserver) === null || _this$mutationObserve4 === void 0 || _this$mutationObserve4.disconnect();\n }\n render() {\n return this.props.children;\n }\n}\n_defineProperty(RestoreDOMComponent, \"contextType\", EditorContext);\nvar RestoreDOM = IS_ANDROID ? RestoreDOMComponent : _ref => {\n var {\n children\n } = _ref;\n return /*#__PURE__*/React.createElement(React.Fragment, null, children);\n};\n\n/**\n * A React context for sharing the `composing` state of the editor.\n */\nvar ComposingContext = /*#__PURE__*/createContext(false);\n/**\n * Get the current `composing` state of the editor.\n */\nvar useComposing = () => {\n return useContext(ComposingContext);\n};\n\nvar _excluded$1 = [\"autoFocus\", \"decorate\", \"onDOMBeforeInput\", \"placeholder\", \"readOnly\", \"renderElement\", \"renderChunk\", \"renderLeaf\", \"renderText\", \"renderPlaceholder\", \"scrollSelectionIntoView\", \"style\", \"as\", \"disableDefaultStyles\"],\n _excluded2 = [\"text\"];\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; }\nvar Children = props => /*#__PURE__*/React.createElement(React.Fragment, null, useChildren(props));\n/**\n * Editable.\n */\nvar Editable = /*#__PURE__*/forwardRef((props, forwardedRef) => {\n var defaultRenderPlaceholder = useCallback(props => /*#__PURE__*/React.createElement(DefaultPlaceholder, _objectSpread({}, props)), []);\n var {\n autoFocus,\n decorate = defaultDecorate,\n onDOMBeforeInput: propsOnDOMBeforeInput,\n placeholder,\n readOnly = false,\n renderElement,\n renderChunk,\n renderLeaf,\n renderText,\n renderPlaceholder = defaultRenderPlaceholder,\n scrollSelectionIntoView = defaultScrollSelectionIntoView,\n style: userStyle = {},\n as: Component = 'div',\n disableDefaultStyles = false\n } = props,\n attributes = _objectWithoutProperties(props, _excluded$1);\n var editor = useSlate();\n // Rerender editor when composition status changed\n var [isComposing, setIsComposing] = useState(false);\n var ref = useRef(null);\n var deferredOperations = useRef([]);\n var [placeholderHeight, setPlaceholderHeight] = useState();\n var processing = useRef(false);\n var {\n onUserInput,\n receivedUserInput\n } = useTrackUserInput();\n var [, forceRender] = useReducer(s => s + 1, 0);\n EDITOR_TO_FORCE_RENDER.set(editor, forceRender);\n // Update internal state on each render.\n IS_READ_ONLY.set(editor, readOnly);\n // Keep track of some state for the event handler logic.\n var state = useMemo(() => ({\n isDraggingInternally: false,\n isUpdatingSelection: false,\n latestElement: null,\n hasMarkPlaceholder: false\n }), []);\n // The autoFocus TextareaHTMLAttribute doesn't do anything on a div, so it\n // needs to be manually focused.\n //\n // If this stops working in Firefox, make sure nothing is causing this\n // component to re-render during the initial mount. If the DOM selection is\n // set by `useIsomorphicLayoutEffect` before `onDOMSelectionChange` updates\n // `editor.selection`, the DOM selection can be removed accidentally.\n useEffect(() => {\n if (ref.current && autoFocus) {\n ref.current.focus();\n }\n }, [autoFocus]);\n /**\n * The AndroidInputManager object has a cyclical dependency on onDOMSelectionChange\n *\n * It is defined as a reference to simplify hook dependencies and clarify that\n * it needs to be initialized.\n */\n var androidInputManagerRef = useRef();\n // Listen on the native `selectionchange` event to be able to update any time\n // the selection changes. This is required because React's `onSelect` is leaky\n // and non-standard so it doesn't fire until after a selection has been\n // released. This causes issues in situations where another change happens\n // while a selection is being dragged.\n var onDOMSelectionChange = useMemo(() => throttle(() => {\n if (IS_NODE_MAP_DIRTY.get(editor)) {\n onDOMSelectionChange();\n return;\n }\n var el = ReactEditor.toDOMNode(editor, editor);\n var root = el.getRootNode();\n if (!processing.current && IS_WEBKIT && root instanceof ShadowRoot) {\n processing.current = true;\n var active = getActiveElement();\n if (active) {\n document.execCommand('indent');\n } else {\n Transforms.deselect(editor);\n }\n processing.current = false;\n return;\n }\n var androidInputManager = androidInputManagerRef.current;\n if ((IS_ANDROID || !ReactEditor.isComposing(editor)) && (!state.isUpdatingSelection || androidInputManager !== null && androidInputManager !== void 0 && androidInputManager.isFlushing()) && !state.isDraggingInternally) {\n var _root = ReactEditor.findDocumentOrShadowRoot(editor);\n var {\n activeElement\n } = _root;\n var _el = ReactEditor.toDOMNode(editor, editor);\n var domSelection = getSelection(_root);\n if (activeElement === _el) {\n state.latestElement = activeElement;\n IS_FOCUSED.set(editor, true);\n } else {\n IS_FOCUSED.delete(editor);\n }\n if (!domSelection) {\n return Transforms.deselect(editor);\n }\n var {\n anchorNode,\n focusNode\n } = domSelection;\n var anchorNodeSelectable = ReactEditor.hasEditableTarget(editor, anchorNode) || ReactEditor.isTargetInsideNonReadonlyVoid(editor, anchorNode);\n var focusNodeInEditor = ReactEditor.hasTarget(editor, focusNode);\n if (anchorNodeSelectable && focusNodeInEditor) {\n var range = ReactEditor.toSlateRange(editor, domSelection, {\n exactMatch: false,\n suppressThrow: true\n });\n if (range) {\n if (!ReactEditor.isComposing(editor) && !(androidInputManager !== null && androidInputManager !== void 0 && androidInputManager.hasPendingChanges()) && !(androidInputManager !== null && androidInputManager !== void 0 && androidInputManager.isFlushing())) {\n Transforms.select(editor, range);\n } else {\n androidInputManager === null || androidInputManager === void 0 || androidInputManager.handleUserSelect(range);\n }\n }\n }\n // Deselect the editor if the dom selection is not selectable in readonly mode\n if (readOnly && (!anchorNodeSelectable || !focusNodeInEditor)) {\n Transforms.deselect(editor);\n }\n }\n }, 100), [editor, readOnly, state]);\n var scheduleOnDOMSelectionChange = useMemo(() => debounce(onDOMSelectionChange, 0), [onDOMSelectionChange]);\n androidInputManagerRef.current = useAndroidInputManager({\n node: ref,\n onDOMSelectionChange,\n scheduleOnDOMSelectionChange\n });\n useIsomorphicLayoutEffect(() => {\n var _androidInputManagerR, _androidInputManagerR2;\n // Update element-related weak maps with the DOM element ref.\n var window;\n if (ref.current && (window = getDefaultView(ref.current))) {\n EDITOR_TO_WINDOW.set(editor, window);\n EDITOR_TO_ELEMENT.set(editor, ref.current);\n NODE_TO_ELEMENT.set(editor, ref.current);\n ELEMENT_TO_NODE.set(ref.current, editor);\n } else {\n NODE_TO_ELEMENT.delete(editor);\n }\n // Make sure the DOM selection state is in sync.\n var {\n selection\n } = editor;\n var root = ReactEditor.findDocumentOrShadowRoot(editor);\n var domSelection = getSelection(root);\n if (!domSelection || !ReactEditor.isFocused(editor) || (_androidInputManagerR = androidInputManagerRef.current) !== null && _androidInputManagerR !== void 0 && _androidInputManagerR.hasPendingAction()) {\n return;\n }\n var setDomSelection = forceChange => {\n var hasDomSelection = domSelection.type !== 'None';\n // If the DOM selection is properly unset, we're done.\n if (!selection && !hasDomSelection) {\n return;\n }\n // Get anchorNode and focusNode\n var focusNode = domSelection.focusNode;\n var anchorNode;\n // COMPAT: In firefox the normal selection way does not work\n // (https://github.com/ianstormtaylor/slate/pull/5486#issue-1820720223)\n if (IS_FIREFOX && domSelection.rangeCount > 1) {\n var firstRange = domSelection.getRangeAt(0);\n var lastRange = domSelection.getRangeAt(domSelection.rangeCount - 1);\n // Right to left\n if (firstRange.startContainer === focusNode) {\n anchorNode = lastRange.endContainer;\n } else {\n // Left to right\n anchorNode = firstRange.startContainer;\n }\n } else {\n anchorNode = domSelection.anchorNode;\n }\n // verify that the dom selection is in the editor\n var editorElement = EDITOR_TO_ELEMENT.get(editor);\n var hasDomSelectionInEditor = false;\n if (editorElement.contains(anchorNode) && editorElement.contains(focusNode)) {\n hasDomSelectionInEditor = true;\n }\n // If the DOM selection is in the editor and the editor selection is already correct, we're done.\n if (hasDomSelection && hasDomSelectionInEditor && selection && !forceChange) {\n var slateRange = ReactEditor.toSlateRange(editor, domSelection, {\n exactMatch: true,\n // domSelection is not necessarily a valid Slate range\n // (e.g. when clicking on contentEditable:false element)\n suppressThrow: true\n });\n if (slateRange && Range.equals(slateRange, selection)) {\n var _anchorNode;\n if (!state.hasMarkPlaceholder) {\n return;\n }\n // Ensure selection is inside the mark placeholder\n if ((_anchorNode = anchorNode) !== null && _anchorNode !== void 0 && (_anchorNode = _anchorNode.parentElement) !== null && _anchorNode !== void 0 && _anchorNode.hasAttribute('data-slate-mark-placeholder')) {\n return;\n }\n }\n }\n // when <Editable/> is being controlled through external value\n // then its children might just change - DOM responds to it on its own\n // but Slate's value is not being updated through any operation\n // and thus it doesn't transform selection on its own\n if (selection && !ReactEditor.hasRange(editor, selection)) {\n editor.selection = ReactEditor.toSlateRange(editor, domSelection, {\n exactMatch: false,\n suppressThrow: true\n });\n return;\n }\n // Otherwise the DOM selection is out of sync, so update it.\n state.isUpdatingSelection = true;\n var newDomRange = null;\n try {\n newDomRange = selection && ReactEditor.toDOMRange(editor, selection);\n } catch (e) {\n // Ignore, dom and state might be out of sync\n }\n if (newDomRange) {\n if (ReactEditor.isComposing(editor) && !IS_ANDROID) {\n domSelection.collapseToEnd();\n } else if (Range.isBackward(selection)) {\n domSelection.setBaseAndExtent(newDomRange.endContainer, newDomRange.endOffset, newDomRange.startContainer, newDomRange.startOffset);\n } else {\n domSelection.setBaseAndExtent(newDomRange.startContainer, newDomRange.startOffset, newDomRange.endContainer, newDomRange.endOffset);\n }\n scrollSelectionIntoView(editor, newDomRange);\n } else {\n domSelection.removeAllRanges();\n }\n return newDomRange;\n };\n // In firefox if there is more then 1 range and we call setDomSelection we remove the ability to select more cells in a table\n if (domSelection.rangeCount <= 1) {\n setDomSelection();\n }\n var ensureSelection = ((_androidInputManagerR2 = androidInputManagerRef.current) === null || _androidInputManagerR2 === void 0 ? void 0 : _androidInputManagerR2.isFlushing()) === 'action';\n if (!IS_ANDROID || !ensureSelection) {\n setTimeout(() => {\n state.isUpdatingSelection = false;\n });\n return;\n }\n var timeoutId = null;\n var animationFrameId = requestAnimationFrame(() => {\n if (ensureSelection) {\n var ensureDomSelection = forceChange => {\n try {\n var el = ReactEditor.toDOMNode(editor, editor);\n el.focus();\n setDomSelection(forceChange);\n } catch (e) {\n // Ignore, dom and state might be out of sync\n }\n };\n // Compat: Android IMEs try to force their selection by manually re-applying it even after we set it.\n // This essentially would make setting the slate selection during an update meaningless, so we force it\n // again here. We can't only do it in the setTimeout after the animation frame since that would cause a\n // visible flicker.\n ensureDomSelection();\n timeoutId = setTimeout(() => {\n // COMPAT: While setting the selection in an animation frame visually correctly sets the selection,\n // it doesn't update GBoards spellchecker state. We have to manually trigger a selection change after\n // the animation frame to ensure it displays the correct state.\n ensureDomSelection(true);\n state.isUpdatingSelection = false;\n });\n }\n });\n return () => {\n cancelAnimationFrame(animationFrameId);\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n };\n });\n // Listen on the native `beforeinput` event to get real \"Level 2\" events. This\n // is required because React's `beforeinput` is fake and never really attaches\n // to the real event sadly. (2019/11/01)\n // https://github.com/facebook/react/issues/11211\n var onDOMBeforeInput = useCallback(event => {\n handleNativeHistoryEvents(editor, event);\n var el = ReactEditor.toDOMNode(editor, editor);\n var root = el.getRootNode();\n if (processing !== null && processing !== void 0 && processing.current && IS_WEBKIT && root instanceof ShadowRoot) {\n var ranges = event.getTargetRanges();\n var range = ranges[0];\n var newRange = new window.Range();\n newRange.setStart(range.startContainer, range.startOffset);\n newRange.setEnd(range.endContainer, range.endOffset);\n // Translate the DOM Range into a Slate Range\n var slateRange = ReactEditor.toSlateRange(editor, newRange, {\n exactMatch: false,\n suppressThrow: false\n });\n Transforms.select(editor, slateRange);\n event.preventDefault();\n event.stopImmediatePropagation();\n return;\n }\n onUserInput();\n if (!readOnly && ReactEditor.hasEditableTarget(editor, event.target) && !isDOMEventHandled(event, propsOnDOMBeforeInput)) {\n var _EDITOR_TO_USER_SELEC;\n // COMPAT: BeforeInput events aren't cancelable on android, so we have to handle them differently using the android input manager.\n if (androidInputManagerRef.current) {\n return androidInputManagerRef.current.handleDOMBeforeInput(event);\n }\n // Some IMEs/Chrome extensions like e.g. Grammarly set the selection immediately before\n // triggering a `beforeinput` expecting the change to be applied to the immediately before\n // set selection.\n scheduleOnDOMSelectionChange.flush();\n onDOMSelectionChange.flush();\n var {\n selection\n } = editor;\n var {\n inputType: type\n } = event;\n var data = event.dataTransfer || event.data || undefined;\n var isCompositionChange = type === 'insertCompositionText' || type === 'deleteCompositionText';\n // COMPAT: use composition change events as a hint to where we should insert\n // composition text if we aren't composing to work around https://github.com/ianstormtaylor/slate/issues/5038\n if (isCompositionChange && ReactEditor.isComposing(editor)) {\n return;\n }\n var native = false;\n if (type === 'insertText' && selection && Range.isCollapsed(selection) &&\n // Only use native character insertion for single characters a-z or space for now.\n // Long-press events (hold a + press 4 = ä) to choose a special character otherwise\n // causes duplicate inserts.\n event.data && event.data.length === 1 && /[a-z ]/i.test(event.data) &&\n // Chrome has issues correctly editing the start of nodes: https://bugs.chromium.org/p/chromium/issues/detail?id=1249405\n // When there is an inline element, e.g. a link, and you select\n // right after it (the start of the next node).\n selection.anchor.offset !== 0) {\n native = true;\n // Skip native if there are marks, as\n // `insertText` will insert a node, not just text.\n if (editor.marks) {\n native = false;\n }\n // If the NODE_MAP is dirty, we can't trust the selection anchor (eg ReactEditor.toDOMPoint)\n if (!IS_NODE_MAP_DIRTY.get(editor)) {\n var _node$parentElement, _window$getComputedSt;\n // Chrome also has issues correctly editing the end of anchor elements: https://bugs.chromium.org/p/chromium/issues/detail?id=1259100\n // Therefore we don't allow native events to insert text at the end of anchor nodes.\n var {\n anchor\n } = selection;\n var [node, offset] = ReactEditor.toDOMPoint(editor, anchor);\n var anchorNode = (_node$parentElement = node.parentElement) === null || _node$parentElement === void 0 ? void 0 : _node$parentElement.closest('a');\n var _window = ReactEditor.getWindow(editor);\n if (native && anchorNode && ReactEditor.hasDOMNode(editor, anchorNode)) {\n var _lastText$textContent;\n // Find the last text node inside the anchor.\n var lastText = _window === null || _window === void 0 ? void 0 : _window.document.createTreeWalker(anchorNode, NodeFilter.SHOW_TEXT).lastChild();\n if (lastText === node && ((_lastText$textContent = lastText.textContent) === null || _lastText$textContent === void 0 ? void 0 : _lastText$textContent.length) === offset) {\n native = false;\n }\n }\n // Chrome has issues with the presence of tab characters inside elements with whiteSpace = 'pre'\n // causing abnormal insert behavior: https://bugs.chromium.org/p/chromium/issues/detail?id=1219139\n if (native && node.parentElement && (_window === null || _window === void 0 || (_window$getComputedSt = _window.getComputedStyle(node.parentElement)) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.whiteSpace) === 'pre') {\n var block = Editor.above(editor, {\n at: anchor.path,\n match: n => Element$1.isElement(n) && Editor.isBlock(editor, n)\n });\n if (block && Node.string(block[0]).includes('\\t')) {\n native = false;\n }\n }\n }\n }\n // COMPAT: For the deleting forward/backward input types we don't want\n // to change the selection because it is the range that will be deleted,\n // and those commands determine that for themselves.\n // If the NODE_MAP is dirty, we can't trust the selection anchor (eg ReactEditor.toDOMPoint via ReactEditor.toSlateRange)\n if ((!type.startsWith('delete') || type.startsWith('deleteBy')) && !IS_NODE_MAP_DIRTY.get(editor)) {\n var [targetRange] = event.getTargetRanges();\n if (targetRange) {\n var _range = ReactEditor.toSlateRange(editor, targetRange, {\n exactMatch: false,\n suppressThrow: false\n });\n var flippedRange = {\n anchor: _range.focus,\n focus: _range.anchor\n };\n if (!selection || !(Range.equals(selection, _range) || Range.equals(selection, flippedRange))) {\n native = false;\n var selectionRef = !isCompositionChange && editor.selection && Editor.rangeRef(editor, editor.selection);\n Transforms.select(editor, _range);\n if (selectionRef) {\n EDITOR_TO_USER_SELECTION.set(editor, selectionRef);\n }\n }\n }\n }\n // Composition change types occur while a user is composing text and can't be\n // cancelled. Let them through and wait for the composition to end.\n if (isCompositionChange) {\n return;\n }\n if (!native) {\n event.preventDefault();\n }\n // COMPAT: If the selection is expanded, even if the command seems like\n // a delete forward/backward command it should delete the selection.\n if (selection && Range.isExpanded(selection) && type.startsWith('delete')) {\n var direction = type.endsWith('Backward') ? 'backward' : 'forward';\n Editor.deleteFragment(editor, {\n direction\n });\n return;\n }\n switch (type) {\n case 'deleteByComposition':\n case 'deleteByCut':\n case 'deleteByDrag':\n {\n Editor.deleteFragment(editor);\n break;\n }\n case 'deleteContent':\n case 'deleteContentForward':\n {\n Editor.deleteForward(editor);\n break;\n }\n case 'deleteContentBackward':\n {\n Editor.deleteBackward(editor);\n break;\n }\n case 'deleteEntireSoftLine':\n {\n Editor.deleteBackward(editor, {\n unit: 'line'\n });\n Editor.deleteForward(editor, {\n unit: 'line'\n });\n break;\n }\n case 'deleteHardLineBackward':\n {\n Editor.deleteBackward(editor, {\n unit: 'block'\n });\n break;\n }\n case 'deleteSoftLineBackward':\n {\n Editor.deleteBackward(editor, {\n unit: 'line'\n });\n break;\n }\n case 'deleteHardLineForward':\n {\n Editor.deleteForward(editor, {\n unit: 'block'\n });\n break;\n }\n case 'deleteSoftLineForward':\n {\n Editor.deleteForward(editor, {\n unit: 'line'\n });\n break;\n }\n case 'deleteWordBackward':\n {\n Editor.deleteBackward(editor, {\n unit: 'word'\n });\n break;\n }\n case 'deleteWordForward':\n {\n Editor.deleteForward(editor, {\n unit: 'word'\n });\n break;\n }\n case 'insertLineBreak':\n Editor.insertSoftBreak(editor);\n break;\n case 'insertParagraph':\n {\n Editor.insertBreak(editor);\n break;\n }\n case 'insertFromComposition':\n case 'insertFromDrop':\n case 'insertFromPaste':\n case 'insertFromYank':\n case 'insertReplacementText':\n case 'insertText':\n {\n if (type === 'insertFromComposition') {\n // COMPAT: in Safari, `compositionend` is dispatched after the\n // `beforeinput` for \"insertFromComposition\". But if we wait for it\n // then we will abort because we're still composing and the selection\n // won't be updated properly.\n // https://www.w3.org/TR/input-events-2/\n if (ReactEditor.isComposing(editor)) {\n setIsComposing(false);\n IS_COMPOSING.set(editor, false);\n }\n }\n // use a weak comparison instead of 'instanceof' to allow\n // programmatic access of paste events coming from external windows\n // like cypress where cy.window does not work realibly\n if ((data === null || data === void 0 ? void 0 : data.constructor.name) === 'DataTransfer') {\n ReactEditor.insertData(editor, data);\n } else if (typeof data === 'string') {\n // Only insertText operations use the native functionality, for now.\n // Potentially expand to single character deletes, as well.\n if (native) {\n deferredOperations.current.push(() => Editor.insertText(editor, data));\n } else {\n Editor.insertText(editor, data);\n }\n }\n break;\n }\n }\n // Restore the actual user section if nothing manually set it.\n var toRestore = (_EDITOR_TO_USER_SELEC = EDITOR_TO_USER_SELECTION.get(editor)) === null || _EDITOR_TO_USER_SELEC === void 0 ? void 0 : _EDITOR_TO_USER_SELEC.unref();\n EDITOR_TO_USER_SELECTION.delete(editor);\n if (toRestore && (!editor.selection || !Range.equals(editor.selection, toRestore))) {\n Transforms.select(editor, toRestore);\n }\n }\n }, [editor, onDOMSelectionChange, onUserInput, propsOnDOMBeforeInput, readOnly, scheduleOnDOMSelectionChange]);\n var callbackRef = useCallback(node => {\n if (node == null) {\n onDOMSelectionChange.cancel();\n scheduleOnDOMSelectionChange.cancel();\n EDITOR_TO_ELEMENT.delete(editor);\n NODE_TO_ELEMENT.delete(editor);\n if (ref.current && HAS_BEFORE_INPUT_SUPPORT) {\n // @ts-ignore The `beforeinput` event isn't recognized.\n ref.current.removeEventListener('beforeinput', onDOMBeforeInput);\n }\n } else {\n // Attach a native DOM event handler for `beforeinput` events, because React's\n // built-in `onBeforeInput` is actually a leaky polyfill that doesn't expose\n // real `beforeinput` events sadly... (2019/11/04)\n // https://github.com/facebook/react/issues/11211\n if (HAS_BEFORE_INPUT_SUPPORT) {\n // @ts-ignore The `beforeinput` event isn't recognized.\n node.addEventListener('beforeinput', onDOMBeforeInput);\n }\n }\n ref.current = node;\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n }, [onDOMSelectionChange, scheduleOnDOMSelectionChange, editor, onDOMBeforeInput, forwardedRef]);\n useIsomorphicLayoutEffect(() => {\n var window = ReactEditor.getWindow(editor);\n // COMPAT: In Chrome, `selectionchange` events can fire when <input> and\n // <textarea> elements are appended to the DOM, causing\n // `editor.selection` to be overwritten in some circumstances.\n // (2025/01/16) https://issues.chromium.org/issues/389368412\n var onSelectionChange = _ref => {\n var {\n target\n } = _ref;\n var targetElement = target instanceof HTMLElement ? target : null;\n var targetTagName = targetElement === null || targetElement === void 0 ? void 0 : targetElement.tagName;\n if (targetTagName === 'INPUT' || targetTagName === 'TEXTAREA') {\n return;\n }\n scheduleOnDOMSelectionChange();\n };\n // Attach a native DOM event handler for `selectionchange`, because React's\n // built-in `onSelect` handler doesn't fire for all selection changes. It's\n // a leaky polyfill that only fires on keypresses or clicks. Instead, we\n // want to fire for any change to the selection inside the editor.\n // (2019/11/04) https://github.com/facebook/react/issues/5785\n window.document.addEventListener('selectionchange', onSelectionChange);\n // Listen for dragend and drop globally. In Firefox, if a drop handler\n // initiates an operation that causes the originally dragged element to\n // unmount, that element will not emit a dragend event. (2024/06/21)\n var stoppedDragging = () => {\n state.isDraggingInternally = false;\n };\n window.document.addEventListener('dragend', stoppedDragging);\n window.document.addEventListener('drop', stoppedDragging);\n return () => {\n window.document.removeEventListener('selectionchange', onSelectionChange);\n window.document.removeEventListener('dragend', stoppedDragging);\n window.document.removeEventListener('drop', stoppedDragging);\n };\n }, [scheduleOnDOMSelectionChange, state]);\n var decorations = decorate([editor, []]);\n var decorateContext = useDecorateContext(decorate);\n var showPlaceholder = placeholder && editor.children.length === 1 && Array.from(Node.texts(editor)).length === 1 && Node.string(editor) === '' && !isComposing;\n var placeHolderResizeHandler = useCallback(placeholderEl => {\n if (placeholderEl && showPlaceholder) {\n var _placeholderEl$getBou;\n setPlaceholderHeight((_placeholderEl$getBou = placeholderEl.getBoundingClientRect()) === null || _placeholderEl$getBou === void 0 ? void 0 : _placeholderEl$getBou.height);\n } else {\n setPlaceholderHeight(undefined);\n }\n }, [showPlaceholder]);\n if (showPlaceholder) {\n var start = Editor.start(editor, []);\n decorations.push({\n [PLACEHOLDER_SYMBOL]: true,\n placeholder,\n onPlaceholderResize: placeHolderResizeHandler,\n anchor: start,\n focus: start\n });\n }\n var {\n marks\n } = editor;\n state.hasMarkPlaceholder = false;\n if (editor.selection && Range.isCollapsed(editor.selection) && marks) {\n var {\n anchor\n } = editor.selection;\n var leaf = Node.leaf(editor, anchor.path);\n var rest = _objectWithoutProperties(leaf, _excluded2);\n // While marks isn't a 'complete' text, we can still use loose Text.equals\n // here which only compares marks anyway.\n if (!Text$1.equals(leaf, marks, {\n loose: true\n })) {\n state.hasMarkPlaceholder = true;\n var unset = Object.fromEntries(Object.keys(rest).map(mark => [mark, null]));\n decorations.push(_objectSpread(_objectSpread(_objectSpread({\n [MARK_PLACEHOLDER_SYMBOL]: true\n }, unset), marks), {}, {\n anchor,\n focus: anchor\n }));\n }\n }\n // Update EDITOR_TO_MARK_PLACEHOLDER_MARKS in setTimeout useEffect to ensure we don't set it\n // before we receive the composition end event.\n useEffect(() => {\n setTimeout(() => {\n var {\n selection\n } = editor;\n if (selection) {\n var {\n anchor: _anchor\n } = selection;\n var _text = Node.leaf(editor, _anchor.path);\n // While marks isn't a 'complete' text, we can still use loose Text.equals\n // here which only compares marks anyway.\n if (marks && !Text$1.equals(_text, marks, {\n loose: true\n })) {\n EDITOR_TO_PENDING_INSERTION_MARKS.set(editor, marks);\n return;\n }\n }\n EDITOR_TO_PENDING_INSERTION_MARKS.delete(editor);\n });\n });\n useFlushDeferredSelectorsOnRender();\n return /*#__PURE__*/React.createElement(ReadOnlyContext.Provider, {\n value: readOnly\n }, /*#__PURE__*/React.createElement(ComposingContext.Provider, {\n value: isComposing\n }, /*#__PURE__*/React.createElement(DecorateContext.Provider, {\n value: decorateContext\n }, /*#__PURE__*/React.createElement(RestoreDOM, {\n node: ref,\n receivedUserInput: receivedUserInput\n }, /*#__PURE__*/React.createElement(Component, _objectSpread(_objectSpread({\n role: readOnly ? undefined : 'textbox',\n \"aria-multiline\": readOnly ? undefined : true,\n translate: \"no\"\n }, attributes), {}, {\n // COMPAT: Certain browsers don't support the `beforeinput` event, so we'd\n // have to use hacks to make these replacement-based features work.\n // For SSR situations HAS_BEFORE_INPUT_SUPPORT is false and results in prop\n // mismatch warning app moves to browser. Pass-through consumer props when\n // not CAN_USE_DOM (SSR) and default to falsy value\n spellCheck: HAS_BEFORE_INPUT_SUPPORT || !CAN_USE_DOM ? attributes.spellCheck : false,\n autoCorrect: HAS_BEFORE_INPUT_SUPPORT || !CAN_USE_DOM ? attributes.autoCorrect : 'false',\n autoCapitalize: HAS_BEFORE_INPUT_SUPPORT || !CAN_USE_DOM ? attributes.autoCapitalize : 'false',\n \"data-slate-editor\": true,\n \"data-slate-node\": \"value\",\n // explicitly set this\n contentEditable: !readOnly,\n // in some cases, a decoration needs access to the range / selection to decorate a text node,\n // then you will select the whole text node when you select part the of text\n // this magic zIndex=\"-1\" will fix it\n zindex: -1,\n suppressContentEditableWarning: true,\n ref: callbackRef,\n style: _objectSpread(_objectSpread({}, disableDefaultStyles ? {} : _objectSpread({\n // Allow positioning relative to the editable element.\n position: 'relative',\n // Preserve adjacent whitespace and new lines.\n whiteSpace: 'pre-wrap',\n // Allow words to break if they are too long.\n wordWrap: 'break-word'\n }, placeholderHeight ? {\n minHeight: placeholderHeight\n } : {})), userStyle),\n onBeforeInput: useCallback(event => {\n // COMPAT: Certain browsers don't support the `beforeinput` event, so we\n // fall back to React's leaky polyfill instead just for it. It\n // only works for the `insertText` input type.\n if (!HAS_BEFORE_INPUT_SUPPORT && !readOnly && !isEventHandled(event, attributes.onBeforeInput) && ReactEditor.hasSelectableTarget(editor, event.target)) {\n event.preventDefault();\n if (!ReactEditor.isComposing(editor)) {\n var _text2 = event.data;\n Editor.insertText(editor, _text2);\n }\n }\n }, [attributes.onBeforeInput, editor, readOnly]),\n onInput: useCallback(event => {\n if (isEventHandled(event, attributes.onInput)) {\n return;\n }\n if (androidInputManagerRef.current) {\n androidInputManagerRef.current.handleInput();\n return;\n }\n // Flush native operations, as native events will have propogated\n // and we can correctly compare DOM text values in components\n // to stop rendering, so that browser functions like autocorrect\n // and spellcheck work as expected.\n for (var op of deferredOperations.current) {\n op();\n }\n deferredOperations.current = [];\n // COMPAT: Since `beforeinput` doesn't fully `preventDefault`,\n // there's a chance that content might be placed in the browser's undo stack.\n // This means undo can be triggered even when the div is not focused,\n // and it only triggers the input event for the node. (2024/10/09)\n if (!ReactEditor.isFocused(editor)) {\n handleNativeHistoryEvents(editor, event.nativeEvent);\n }\n }, [attributes.onInput, editor]),\n onBlur: useCallback(event => {\n if (readOnly || state.isUpdatingSelection || !ReactEditor.hasSelectableTarget(editor, event.target) || isEventHandled(event, attributes.onBlur)) {\n return;\n }\n // COMPAT: If the current `activeElement` is still the previous\n // one, this is due to the window being blurred when the tab\n // itself becomes unfocused, so we want to abort early to allow to\n // editor to stay focused when the tab becomes focused again.\n var root = ReactEditor.findDocumentOrShadowRoot(editor);\n if (state.latestElement === root.activeElement) {\n return;\n }\n var {\n relatedTarget\n } = event;\n var el = ReactEditor.toDOMNode(editor, editor);\n // COMPAT: The event should be ignored if the focus is returning\n // to the editor from an embedded editable element (eg. an <input>\n // element inside a void node).\n if (relatedTarget === el) {\n return;\n }\n // COMPAT: The event should be ignored if the focus is moving from\n // the editor to inside a void node's spacer element.\n if (isDOMElement(relatedTarget) && relatedTarget.hasAttribute('data-slate-spacer')) {\n return;\n }\n // COMPAT: The event should be ignored if the focus is moving to a\n // non- editable section of an element that isn't a void node (eg.\n // a list item of the check list example).\n if (relatedTarget != null && isDOMNode(relatedTarget) && ReactEditor.hasDOMNode(editor, relatedTarget)) {\n var node = ReactEditor.toSlateNode(editor, relatedTarget);\n if (Element$1.isElement(node) && !editor.isVoid(node)) {\n return;\n }\n }\n // COMPAT: Safari doesn't always remove the selection even if the content-\n // editable element no longer has focus. Refer to:\n // https://stackoverflow.com/questions/12353247/force-contenteditable-div-to-stop-accepting-input-after-it-loses-focus-under-web\n if (IS_WEBKIT) {\n var domSelection = getSelection(root);\n domSelection === null || domSelection === void 0 || domSelection.removeAllRanges();\n }\n IS_FOCUSED.delete(editor);\n }, [readOnly, state.isUpdatingSelection, state.latestElement, editor, attributes.onBlur]),\n onClick: useCallback(event => {\n if (ReactEditor.hasTarget(editor, event.target) && !isEventHandled(event, attributes.onClick) && isDOMNode(event.target)) {\n var node = ReactEditor.toSlateNode(editor, event.target);\n var path = ReactEditor.findPath(editor, node);\n // At this time, the Slate document may be arbitrarily different,\n // because onClick handlers can change the document before we get here.\n // Therefore we must check that this path actually exists,\n // and that it still refers to the same node.\n if (!Editor.hasPath(editor, path) || Node.get(editor, path) !== node) {\n return;\n }\n if (event.detail === TRIPLE_CLICK && path.length >= 1) {\n var blockPath = path;\n if (!(Element$1.isElement(node) && Editor.isBlock(editor, node))) {\n var _block$;\n var block = Editor.above(editor, {\n match: n => Element$1.isElement(n) && Editor.isBlock(editor, n),\n at: path\n });\n blockPath = (_block$ = block === null || block === void 0 ? void 0 : block[1]) !== null && _block$ !== void 0 ? _block$ : path.slice(0, 1);\n }\n var range = Editor.range(editor, blockPath);\n Transforms.select(editor, range);\n return;\n }\n if (readOnly) {\n return;\n }\n var _start = Editor.start(editor, path);\n var end = Editor.end(editor, path);\n var startVoid = Editor.void(editor, {\n at: _start\n });\n var endVoid = Editor.void(editor, {\n at: end\n });\n if (startVoid && endVoid && Path.equals(startVoid[1], endVoid[1])) {\n var _range2 = Editor.range(editor, _start);\n Transforms.select(editor, _range2);\n }\n }\n }, [editor, attributes.onClick, readOnly]),\n onCompositionEnd: useCallback(event => {\n if (isDOMEventTargetInput(event)) {\n return;\n }\n if (ReactEditor.hasSelectableTarget(editor, event.target)) {\n var _androidInputManagerR3;\n if (ReactEditor.isComposing(editor)) {\n Promise.resolve().then(() => {\n setIsComposing(false);\n IS_COMPOSING.set(editor, false);\n });\n }\n (_androidInputManagerR3 = androidInputManagerRef.current) === null || _androidInputManagerR3 === void 0 || _androidInputManagerR3.handleCompositionEnd(event);\n if (isEventHandled(event, attributes.onCompositionEnd) || IS_ANDROID) {\n return;\n }\n // COMPAT: In Chrome, `beforeinput` events for compositions\n // aren't correct and never fire the \"insertFromComposition\"\n // type that we need. So instead, insert whenever a composition\n // ends since it will already have been committed to the DOM.\n if (!IS_WEBKIT && !IS_FIREFOX_LEGACY && !IS_IOS && !IS_WECHATBROWSER && !IS_UC_MOBILE && event.data) {\n var placeholderMarks = EDITOR_TO_PENDING_INSERTION_MARKS.get(editor);\n EDITOR_TO_PENDING_INSERTION_MARKS.delete(editor);\n // Ensure we insert text with the marks the user was actually seeing\n if (placeholderMarks !== undefined) {\n EDITOR_TO_USER_MARKS.set(editor, editor.marks);\n editor.marks = placeholderMarks;\n }\n Editor.insertText(editor, event.data);\n var userMarks = EDITOR_TO_USER_MARKS.get(editor);\n EDITOR_TO_USER_MARKS.delete(editor);\n if (userMarks !== undefined) {\n editor.marks = userMarks;\n }\n }\n }\n }, [attributes.onCompositionEnd, editor]),\n onCompositionUpdate: useCallback(event => {\n if (ReactEditor.hasSelectableTarget(editor, event.target) && !isEventHandled(event, attributes.onCompositionUpdate) && !isDOMEventTargetInput(event)) {\n if (!ReactEditor.isComposing(editor)) {\n setIsComposing(true);\n IS_COMPOSING.set(editor, true);\n }\n }\n }, [attributes.onCompositionUpdate, editor]),\n onCompositionStart: useCallback(event => {\n if (isDOMEventTargetInput(event)) {\n return;\n }\n if (ReactEditor.hasSelectableTarget(editor, event.target)) {\n var _androidInputManagerR4;\n (_androidInputManagerR4 = androidInputManagerRef.current) === null || _androidInputManagerR4 === void 0 || _androidInputManagerR4.handleCompositionStart(event);\n if (isEventHandled(event, attributes.onCompositionStart) || IS_ANDROID) {\n return;\n }\n setIsComposing(true);\n var {\n selection\n } = editor;\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor);\n return;\n }\n }\n }, [attributes.onCompositionStart, editor]),\n onCopy: useCallback(event => {\n if (ReactEditor.hasSelectableTarget(editor, event.target) && !isEventHandled(event, attributes.onCopy) && !isDOMEventTargetInput(event)) {\n event.preventDefault();\n ReactEditor.setFragmentData(editor, event.clipboardData, 'copy');\n }\n }, [attributes.onCopy, editor]),\n onCut: useCallback(event => {\n if (!readOnly && ReactEditor.hasSelectableTarget(editor, event.target) && !isEventHandled(event, attributes.onCut) && !isDOMEventTargetInput(event)) {\n event.preventDefault();\n ReactEditor.setFragmentData(editor, event.clipboardData, 'cut');\n var {\n selection\n } = editor;\n if (selection) {\n if (Range.isExpanded(selection)) {\n Editor.deleteFragment(editor);\n } else {\n var node = Node.parent(editor, selection.anchor.path);\n if (Editor.isVoid(editor, node)) {\n Transforms.delete(editor);\n }\n }\n }\n }\n }, [readOnly, editor, attributes.onCut]),\n onDragOver: useCallback(event => {\n if (ReactEditor.hasTarget(editor, event.target) && !isEventHandled(event, attributes.onDragOver)) {\n // Only when the target is void, call `preventDefault` to signal\n // that drops are allowed. Editable content is droppable by\n // default, and calling `preventDefault` hides the cursor.\n var node = ReactEditor.toSlateNode(editor, event.target);\n if (Element$1.isElement(node) && Editor.isVoid(editor, node)) {\n event.preventDefault();\n }\n }\n }, [attributes.onDragOver, editor]),\n onDragStart: useCallback(event => {\n if (!readOnly && ReactEditor.hasTarget(editor, event.target) && !isEventHandled(event, attributes.onDragStart)) {\n var node = ReactEditor.toSlateNode(editor, event.target);\n var path = ReactEditor.findPath(editor, node);\n var voidMatch = Element$1.isElement(node) && Editor.isVoid(editor, node) || Editor.void(editor, {\n at: path,\n voids: true\n });\n // If starting a drag on a void node, make sure it is selected\n // so that it shows up in the selection's fragment.\n if (voidMatch) {\n var range = Editor.range(editor, path);\n Transforms.select(editor, range);\n }\n state.isDraggingInternally = true;\n ReactEditor.setFragmentData(editor, event.dataTransfer, 'drag');\n }\n }, [readOnly, editor, attributes.onDragStart, state]),\n onDrop: useCallback(event => {\n if (!readOnly && ReactEditor.hasTarget(editor, event.target) && !isEventHandled(event, attributes.onDrop)) {\n event.preventDefault();\n // Keep a reference to the dragged range before updating selection\n var draggedRange = editor.selection;\n // Find the range where the drop happened\n var range = ReactEditor.findEventRange(editor, event);\n var data = event.dataTransfer;\n Transforms.select(editor, range);\n if (state.isDraggingInternally) {\n if (draggedRange && !Range.equals(draggedRange, range) && !Editor.void(editor, {\n at: range,\n voids: true\n })) {\n Transforms.delete(editor, {\n at: draggedRange\n });\n }\n }\n ReactEditor.insertData(editor, data);\n // When dragging from another source into the editor, it's possible\n // that the current editor does not have focus.\n if (!ReactEditor.isFocused(editor)) {\n ReactEditor.focus(editor);\n }\n }\n }, [readOnly, editor, attributes.onDrop, state]),\n onDragEnd: useCallback(event => {\n if (!readOnly && state.isDraggingInternally && attributes.onDragEnd && ReactEditor.hasTarget(editor, event.target)) {\n attributes.onDragEnd(event);\n }\n }, [readOnly, state, attributes, editor]),\n onFocus: useCallback(event => {\n if (!readOnly && !state.isUpdatingSelection && ReactEditor.hasEditableTarget(editor, event.target) && !isEventHandled(event, attributes.onFocus)) {\n var el = ReactEditor.toDOMNode(editor, editor);\n var root = ReactEditor.findDocumentOrShadowRoot(editor);\n state.latestElement = root.activeElement;\n // COMPAT: If the editor has nested editable elements, the focus\n // can go to them. In Firefox, this must be prevented because it\n // results in issues with keyboard navigation. (2017/03/30)\n if (IS_FIREFOX && event.target !== el) {\n el.focus();\n return;\n }\n IS_FOCUSED.set(editor, true);\n }\n }, [readOnly, state, editor, attributes.onFocus]),\n onKeyDown: useCallback(event => {\n if (!readOnly && ReactEditor.hasEditableTarget(editor, event.target)) {\n var _androidInputManagerR5;\n (_androidInputManagerR5 = androidInputManagerRef.current) === null || _androidInputManagerR5 === void 0 || _androidInputManagerR5.handleKeyDown(event);\n var {\n nativeEvent\n } = event;\n // COMPAT: The composition end event isn't fired reliably in all browsers,\n // so we sometimes might end up stuck in a composition state even though we\n // aren't composing any more.\n if (ReactEditor.isComposing(editor) && nativeEvent.isComposing === false) {\n IS_COMPOSING.set(editor, false);\n setIsComposing(false);\n }\n if (isEventHandled(event, attributes.onKeyDown) || ReactEditor.isComposing(editor)) {\n return;\n }\n var {\n selection\n } = editor;\n var element = editor.children[selection !== null ? selection.focus.path[0] : 0];\n var isRTL = getDirection(Node.string(element)) === 'rtl';\n // COMPAT: Since we prevent the default behavior on\n // `beforeinput` events, the browser doesn't think there's ever\n // any history stack to undo or redo, so we have to manage these\n // hotkeys ourselves. (2019/11/06)\n if (Hotkeys.isRedo(nativeEvent)) {\n event.preventDefault();\n var maybeHistoryEditor = editor;\n if (typeof maybeHistoryEditor.redo === 'function') {\n maybeHistoryEditor.redo();\n }\n return;\n }\n if (Hotkeys.isUndo(nativeEvent)) {\n event.preventDefault();\n var _maybeHistoryEditor = editor;\n if (typeof _maybeHistoryEditor.undo === 'function') {\n _maybeHistoryEditor.undo();\n }\n return;\n }\n // COMPAT: Certain browsers don't handle the selection updates\n // properly. In Chrome, the selection isn't properly extended.\n // And in Firefox, the selection isn't properly collapsed.\n // (2017/10/17)\n if (Hotkeys.isMoveLineBackward(nativeEvent)) {\n event.preventDefault();\n Transforms.move(editor, {\n unit: 'line',\n reverse: true\n });\n return;\n }\n if (Hotkeys.isMoveLineForward(nativeEvent)) {\n event.preventDefault();\n Transforms.move(editor, {\n unit: 'line'\n });\n return;\n }\n if (Hotkeys.isExtendLineBackward(nativeEvent)) {\n event.preventDefault();\n Transforms.move(editor, {\n unit: 'line',\n edge: 'focus',\n reverse: true\n });\n return;\n }\n if (Hotkeys.isExtendLineForward(nativeEvent)) {\n event.preventDefault();\n Transforms.move(editor, {\n unit: 'line',\n edge: 'focus'\n });\n return;\n }\n // COMPAT: If a void node is selected, or a zero-width text node\n // adjacent to an inline is selected, we need to handle these\n // hotkeys manually because browsers won't be able to skip over\n // the void node with the zero-width space not being an empty\n // string.\n if (Hotkeys.isMoveBackward(nativeEvent)) {\n event.preventDefault();\n if (selection && Range.isCollapsed(selection)) {\n Transforms.move(editor, {\n reverse: !isRTL\n });\n } else {\n Transforms.collapse(editor, {\n edge: isRTL ? 'end' : 'start'\n });\n }\n return;\n }\n if (Hotkeys.isMoveForward(nativeEvent)) {\n event.preventDefault();\n if (selection && Range.isCollapsed(selection)) {\n Transforms.move(editor, {\n reverse: isRTL\n });\n } else {\n Transforms.collapse(editor, {\n edge: isRTL ? 'start' : 'end'\n });\n }\n return;\n }\n if (Hotkeys.isMoveWordBackward(nativeEvent)) {\n event.preventDefault();\n if (selection && Range.isExpanded(selection)) {\n Transforms.collapse(editor, {\n edge: 'focus'\n });\n }\n Transforms.move(editor, {\n unit: 'word',\n reverse: !isRTL\n });\n return;\n }\n if (Hotkeys.isMoveWordForward(nativeEvent)) {\n event.preventDefault();\n if (selection && Range.isExpanded(selection)) {\n Transforms.collapse(editor, {\n edge: 'focus'\n });\n }\n Transforms.move(editor, {\n unit: 'word',\n reverse: isRTL\n });\n return;\n }\n // COMPAT: Certain browsers don't support the `beforeinput` event, so we\n // fall back to guessing at the input intention for hotkeys.\n // COMPAT: In iOS, some of these hotkeys are handled in the\n if (!HAS_BEFORE_INPUT_SUPPORT) {\n // We don't have a core behavior for these, but they change the\n // DOM if we don't prevent them, so we have to.\n if (Hotkeys.isBold(nativeEvent) || Hotkeys.isItalic(nativeEvent) || Hotkeys.isTransposeCharacter(nativeEvent)) {\n event.preventDefault();\n return;\n }\n if (Hotkeys.isSoftBreak(nativeEvent)) {\n event.preventDefault();\n Editor.insertSoftBreak(editor);\n return;\n }\n if (Hotkeys.isSplitBlock(nativeEvent)) {\n event.preventDefault();\n Editor.insertBreak(editor);\n return;\n }\n if (Hotkeys.isDeleteBackward(nativeEvent)) {\n event.preventDefault();\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, {\n direction: 'backward'\n });\n } else {\n Editor.deleteBackward(editor);\n }\n return;\n }\n if (Hotkeys.isDeleteForward(nativeEvent)) {\n event.preventDefault();\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, {\n direction: 'forward'\n });\n } else {\n Editor.deleteForward(editor);\n }\n return;\n }\n if (Hotkeys.isDeleteLineBackward(nativeEvent)) {\n event.preventDefault();\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, {\n direction: 'backward'\n });\n } else {\n Editor.deleteBackward(editor, {\n unit: 'line'\n });\n }\n return;\n }\n if (Hotkeys.isDeleteLineForward(nativeEvent)) {\n event.preventDefault();\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, {\n direction: 'forward'\n });\n } else {\n Editor.deleteForward(editor, {\n unit: 'line'\n });\n }\n return;\n }\n if (Hotkeys.isDeleteWordBackward(nativeEvent)) {\n event.preventDefault();\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, {\n direction: 'backward'\n });\n } else {\n Editor.deleteBackward(editor, {\n unit: 'word'\n });\n }\n return;\n }\n if (Hotkeys.isDeleteWordForward(nativeEvent)) {\n event.preventDefault();\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, {\n direction: 'forward'\n });\n } else {\n Editor.deleteForward(editor, {\n unit: 'word'\n });\n }\n return;\n }\n } else {\n if (IS_CHROME || IS_WEBKIT) {\n // COMPAT: Chrome and Safari support `beforeinput` event but do not fire\n // an event when deleting backwards in a selected void inline node\n if (selection && (Hotkeys.isDeleteBackward(nativeEvent) || Hotkeys.isDeleteForward(nativeEvent)) && Range.isCollapsed(selection)) {\n var currentNode = Node.parent(editor, selection.anchor.path);\n if (Element$1.isElement(currentNode) && Editor.isVoid(editor, currentNode) && (Editor.isInline(editor, currentNode) || Editor.isBlock(editor, currentNode))) {\n event.preventDefault();\n Editor.deleteBackward(editor, {\n unit: 'block'\n });\n return;\n }\n }\n }\n }\n }\n }, [readOnly, editor, attributes.onKeyDown]),\n onPaste: useCallback(event => {\n if (!readOnly && ReactEditor.hasEditableTarget(editor, event.target) && !isEventHandled(event, attributes.onPaste)) {\n // COMPAT: Certain browsers don't support the `beforeinput` event, so we\n // fall back to React's `onPaste` here instead.\n // COMPAT: Firefox, Chrome and Safari don't emit `beforeinput` events\n // when \"paste without formatting\" is used, so fallback. (2020/02/20)\n // COMPAT: Safari InputEvents generated by pasting won't include\n // application/x-slate-fragment items, so use the\n // ClipboardEvent here. (2023/03/15)\n if (!HAS_BEFORE_INPUT_SUPPORT || isPlainTextOnlyPaste(event.nativeEvent) || IS_WEBKIT) {\n event.preventDefault();\n ReactEditor.insertData(editor, event.clipboardData);\n }\n }\n }, [readOnly, editor, attributes.onPaste])\n }), /*#__PURE__*/React.createElement(Children, {\n decorations: decorations,\n node: editor,\n renderElement: renderElement,\n renderChunk: renderChunk,\n renderPlaceholder: renderPlaceholder,\n renderLeaf: renderLeaf,\n renderText: renderText\n }))))));\n});\n/**\n * The default placeholder element\n */\nvar DefaultPlaceholder = _ref2 => {\n var {\n attributes,\n children\n } = _ref2;\n return (\n /*#__PURE__*/\n // COMPAT: Artificially add a line-break to the end on the placeholder element\n // to prevent Android IMEs to pick up its content in autocorrect and to auto-capitalize the first letter\n React.createElement(\"span\", _objectSpread({}, attributes), children, IS_ANDROID && /*#__PURE__*/React.createElement(\"br\", null))\n );\n};\n/**\n * A default memoized decorate function.\n */\nvar defaultDecorate = () => [];\n/**\n * A default implement to scroll dom range into view.\n */\nvar defaultScrollSelectionIntoView = (editor, domRange) => {\n // This was affecting the selection of multiple blocks and dragging behavior,\n // so enabled only if the selection has been collapsed.\n if (domRange.getBoundingClientRect && (!editor.selection || editor.selection && Range.isCollapsed(editor.selection))) {\n var leafEl = domRange.startContainer.parentElement;\n // COMPAT: In Chrome, domRange.getBoundingClientRect() can return zero dimensions for valid ranges (e.g. line breaks).\n // When this happens, do not scroll like most editors do.\n var domRect = domRange.getBoundingClientRect();\n var isZeroDimensionRect = domRect.width === 0 && domRect.height === 0 && domRect.x === 0 && domRect.y === 0;\n if (isZeroDimensionRect) {\n var leafRect = leafEl.getBoundingClientRect();\n var leafHasDimensions = leafRect.width > 0 || leafRect.height > 0;\n if (leafHasDimensions) {\n return;\n }\n }\n // Default behavior: use domRange's getBoundingClientRect\n leafEl.getBoundingClientRect = domRange.getBoundingClientRect.bind(domRange);\n scrollIntoView(leafEl, {\n scrollMode: 'if-needed'\n });\n // @ts-expect-error an unorthodox delete D:\n delete leafEl.getBoundingClientRect;\n }\n};\n/**\n * Check if an event is overrided by a handler.\n */\nvar isEventHandled = (event, handler) => {\n if (!handler) {\n return false;\n }\n // The custom event handler may return a boolean to specify whether the event\n // shall be treated as being handled or not.\n var shouldTreatEventAsHandled = handler(event);\n if (shouldTreatEventAsHandled != null) {\n return shouldTreatEventAsHandled;\n }\n return event.isDefaultPrevented() || event.isPropagationStopped();\n};\n/**\n * Check if the event's target is an input element\n */\nvar isDOMEventTargetInput = event => {\n return isDOMNode(event.target) && (event.target instanceof HTMLInputElement || event.target instanceof HTMLTextAreaElement);\n};\n/**\n * Check if a DOM event is overrided by a handler.\n */\nvar isDOMEventHandled = (event, handler) => {\n if (!handler) {\n return false;\n }\n // The custom event handler may return a boolean to specify whether the event\n // shall be treated as being handled or not.\n var shouldTreatEventAsHandled = handler(event);\n if (shouldTreatEventAsHandled != null) {\n return shouldTreatEventAsHandled;\n }\n return event.defaultPrevented;\n};\nvar handleNativeHistoryEvents = (editor, event) => {\n var maybeHistoryEditor = editor;\n if (event.inputType === 'historyUndo' && typeof maybeHistoryEditor.undo === 'function') {\n maybeHistoryEditor.undo();\n return;\n }\n if (event.inputType === 'historyRedo' && typeof maybeHistoryEditor.redo === 'function') {\n maybeHistoryEditor.redo();\n return;\n }\n};\n\n/**\n * A React context for sharing the `focused` state of the editor.\n */\nvar FocusedContext = /*#__PURE__*/createContext(false);\n/**\n * Get the current `focused` state of the editor.\n */\nvar useFocused = () => {\n return useContext(FocusedContext);\n};\n\nvar REACT_MAJOR_VERSION = parseInt(React.version.split('.')[0], 10);\n\nvar _excluded = [\"editor\", \"children\", \"onChange\", \"onSelectionChange\", \"onValueChange\", \"initialValue\"];\n/**\n * A wrapper around the provider to handle `onChange` events, because the editor\n * is a mutable singleton so it won't ever register as \"changed\" otherwise.\n */\nvar Slate = props => {\n var {\n editor,\n children,\n onChange,\n onSelectionChange,\n onValueChange,\n initialValue\n } = props,\n rest = _objectWithoutProperties(props, _excluded);\n // Run once on first mount, but before `useEffect` or render\n React.useState(() => {\n if (!Node.isNodeList(initialValue)) {\n throw new Error(\"[Slate] initialValue is invalid! Expected a list of elements but got: \".concat(Scrubber.stringify(initialValue)));\n }\n if (!Editor.isEditor(editor)) {\n throw new Error(\"[Slate] editor is invalid! You passed: \".concat(Scrubber.stringify(editor)));\n }\n editor.children = initialValue;\n Object.assign(editor, rest);\n });\n var {\n selectorContext,\n onChange: handleSelectorChange\n } = useSelectorContext();\n var onContextChange = useCallback(options => {\n var _options$operation;\n if (onChange) {\n onChange(editor.children);\n }\n switch (options === null || options === void 0 || (_options$operation = options.operation) === null || _options$operation === void 0 ? void 0 : _options$operation.type) {\n case 'set_selection':\n onSelectionChange === null || onSelectionChange === void 0 || onSelectionChange(editor.selection);\n break;\n default:\n onValueChange === null || onValueChange === void 0 || onValueChange(editor.children);\n }\n handleSelectorChange();\n }, [editor, handleSelectorChange, onChange, onSelectionChange, onValueChange]);\n useEffect(() => {\n EDITOR_TO_ON_CHANGE.set(editor, onContextChange);\n return () => {\n EDITOR_TO_ON_CHANGE.set(editor, () => {});\n };\n }, [editor, onContextChange]);\n var [isFocused, setIsFocused] = useState(ReactEditor.isFocused(editor));\n useEffect(() => {\n setIsFocused(ReactEditor.isFocused(editor));\n }, [editor]);\n useIsomorphicLayoutEffect(() => {\n var fn = () => setIsFocused(ReactEditor.isFocused(editor));\n if (REACT_MAJOR_VERSION >= 17) {\n // In React >= 17 onFocus and onBlur listen to the focusin and focusout events during the bubbling phase.\n // Therefore in order for <Editable />'s handlers to run first, which is necessary for ReactEditor.isFocused(editor)\n // to return the correct value, we have to listen to the focusin and focusout events without useCapture here.\n document.addEventListener('focusin', fn);\n document.addEventListener('focusout', fn);\n return () => {\n document.removeEventListener('focusin', fn);\n document.removeEventListener('focusout', fn);\n };\n } else {\n document.addEventListener('focus', fn, true);\n document.addEventListener('blur', fn, true);\n return () => {\n document.removeEventListener('focus', fn, true);\n document.removeEventListener('blur', fn, true);\n };\n }\n }, []);\n return /*#__PURE__*/React.createElement(SlateSelectorContext.Provider, {\n value: selectorContext\n }, /*#__PURE__*/React.createElement(EditorContext.Provider, {\n value: editor\n }, /*#__PURE__*/React.createElement(FocusedContext.Provider, {\n value: isFocused\n }, children)));\n};\n\n/**\n * Get the current editor object from the React context.\n * @deprecated Use useSlateStatic instead.\n */\nvar useEditor = () => {\n var editor = useContext(EditorContext);\n if (!editor) {\n throw new Error(\"The `useEditor` hook must be used inside the <Slate> component's context.\");\n }\n return editor;\n};\n\n/**\n * Get the current `selected` state of an element.\n */\nvar useSelected = () => {\n var element = useElementIf();\n // Breaking the rules of hooks is fine here since `!element` will remain true\n // or false for the entire lifetime of the component this hook is called from.\n // TODO: Decide if we want to throw an error instead when calling\n // `useSelected` outside of an element (potentially a breaking change).\n if (!element) return false;\n // eslint-disable-next-line react-hooks/rules-of-hooks\n var selector = useCallback(editor => {\n if (!editor.selection) return false;\n var path = ReactEditor.findPath(editor, element);\n var range = Editor.range(editor, path);\n return !!Range.intersection(range, editor.selection);\n }, [element]);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useSlateSelector(selector, undefined, {\n // Defer the selector until after `Editable` has rendered so that the path\n // will be accurate.\n deferred: true\n });\n};\n\n/**\n * Get the current slate selection.\n * Only triggers a rerender when the selection actually changes\n */\nvar useSlateSelection = () => {\n return useSlateSelector(editor => editor.selection, isSelectionEqual);\n};\nvar isSelectionEqual = (a, b) => {\n if (!a && !b) return true;\n if (!a || !b) return false;\n return Range.equals(a, b);\n};\n\n/**\n * `withReact` adds React and 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 withReact = function withReact(editor) {\n var clipboardFormatKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'x-slate-fragment';\n var e = editor;\n e = withDOM(e, clipboardFormatKey);\n var {\n onChange,\n apply,\n insertText\n } = e;\n e.getChunkSize = () => null;\n if (IS_ANDROID) {\n e.insertText = (text, options) => {\n // COMPAT: Android devices, specifically Samsung devices, experience cursor jumping.\n // This issue occurs when the ⁠insertText function is called immediately after typing.\n // The problem arises because typing schedules a selection change.\n // However, this selection change is only executed after the ⁠insertText function.\n // As a result, the already obsolete selection is applied, leading to incorrect\n // final cursor position.\n EDITOR_TO_PENDING_SELECTION.delete(e);\n return insertText(text, options);\n };\n }\n e.onChange = options => {\n // COMPAT: React < 18 doesn't batch `setState` hook calls, which means\n // that the children and selection can get out of sync for one render\n // pass. So we have to use this unstable API to ensure it batches them.\n // (2019/12/03)\n // https://github.com/facebook/react/issues/14259#issuecomment-439702367\n var maybeBatchUpdates = REACT_MAJOR_VERSION < 18 ? ReactDOM.unstable_batchedUpdates : callback => callback();\n maybeBatchUpdates(() => {\n onChange(options);\n });\n };\n // On move_node, if the chunking optimization is enabled for the parent of the\n // node being moved, add the moved node to the movedNodeKeys set of the\n // parent's chunk tree.\n e.apply = operation => {\n if (operation.type === 'move_node') {\n var parent = Node.parent(e, operation.path);\n var chunking = !!e.getChunkSize(parent);\n if (chunking) {\n var node = Node.get(e, operation.path);\n var chunkTree = getChunkTreeForNode(e, parent);\n var key = ReactEditor.findKey(e, node);\n chunkTree.movedNodeKeys.add(key);\n }\n }\n apply(operation);\n };\n return e;\n};\n\nexport { DefaultElement, DefaultLeaf, DefaultPlaceholder, DefaultText, Editable, ReactEditor, Slate, defaultScrollSelectionIntoView, useComposing, useEditor, useElement, useElementIf, useFocused, useReadOnly, useSelected, useSlate, useSlateSelection, useSlateSelector, useSlateStatic, useSlateWithV, withReact };\n//# sourceMappingURL=index.es.js.map\n","/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexport { isPlainObject };\n","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 try {\n fn();\n } finally {\n SAVING.set(editor, prev);\n }\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",null,null,null,null,"var isDevelopment = false;\n\n/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n } // this function should always return with a value\n // TS can't understand it though so we make it stop complaining here\n\n\n return undefined;\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? !isDevelopment : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n this.tags.forEach(function (tag) {\n var _tag$parentNode;\n\n return (_tag$parentNode = tag.parentNode) == null ? void 0 : _tag$parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","var weakMemoize = function weakMemoize(func) {\n var cache = new WeakMap();\n return function (arg) {\n if (cache.has(arg)) {\n // Use non-null assertion because we just checked that the cache `has` it\n // This allows us to remove `undefined` from the return value\n return cache.get(arg);\n }\n\n var ret = func(arg);\n cache.set(arg, ret);\n return ret;\n };\n};\n\nexport { weakMemoize as default };\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, rulesheet, middleware, compile } from 'stylis';\nimport weakMemoize from '@emotion/weak-memoize';\nimport memoize from '@emotion/memoize';\n\nvar isBrowser = typeof document !== 'undefined';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value;\n var parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar getServerStylisCache = isBrowser ? undefined : weakMemoize(function () {\n return memoize(function () {\n return {};\n });\n});\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (isBrowser && key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n if (isBrowser) {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' ');\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (!getServerStylisCache) {\n var currentSheet;\n var finalizingPlugins = [stringify, rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n } else {\n var _finalizingPlugins = [stringify];\n\n var _serializer = middleware(omnipresentPlugins.concat(stylisPlugins, _finalizingPlugins));\n\n var _stylis = function _stylis(styles) {\n return serialize(compile(styles), _serializer);\n };\n\n var serverStylisCache = getServerStylisCache(stylisPlugins)(key);\n\n var getRules = function getRules(selector, serialized) {\n var name = serialized.name;\n\n if (serverStylisCache[name] === undefined) {\n serverStylisCache[name] = _stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n }\n\n return serverStylisCache[name];\n };\n\n _insert = function _insert(selector, serialized, sheet, shouldCache) {\n var name = serialized.name;\n var rules = getRules(selector, serialized);\n\n if (cache.compat === undefined) {\n // in regular mode, we don't set the styles on the inserted cache\n // since we don't need to and that would be wasting memory\n // we return them so that they are rendered in a style tag\n if (shouldCache) {\n cache.inserted[name] = true;\n }\n\n return rules;\n } else {\n // in compat mode, we put the styles on the inserted cache so\n // that emotion-server can pull out the styles\n // except when we don't want to cache it which was in Global but now\n // is nowhere but we don't want to do a major right now\n // and just in case we're going to leave the case here\n // it's also not affecting client side bundle size\n // so it's really not a big deal\n if (shouldCache) {\n cache.inserted[name] = rules;\n } else {\n return rules;\n }\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n scale: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar isDevelopment = false;\n\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n var componentSelector = interpolation;\n\n if (componentSelector.__emotion_styles !== undefined) {\n\n return componentSelector;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n var keyframes = interpolation;\n\n if (keyframes.anim === 1) {\n cursor = {\n name: keyframes.name,\n styles: keyframes.styles,\n next: cursor\n };\n return keyframes.name;\n }\n\n var serializedStyles = interpolation;\n\n if (serializedStyles.styles !== undefined) {\n var next = serializedStyles.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = serializedStyles.styles + \";\";\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n }\n\n break;\n }\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n var asString = interpolation;\n\n if (registered == null) {\n return asString;\n }\n\n var cached = registered[asString];\n return cached !== undefined ? cached : asString;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var key in obj) {\n var value = obj[key];\n\n if (typeof value !== 'object') {\n var asString = value;\n\n if (registered != null && registered[asString] !== undefined) {\n string += key + \"{\" + registered[asString] + \"}\";\n } else if (isProcessableValue(asString)) {\n string += processStyleName(key) + \":\" + processStyleValue(key, asString) + \";\";\n }\n } else {\n if (key === 'NO_COMPONENT_SELECTOR' && isDevelopment) {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(key) + \":\" + processStyleValue(key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n\n string += key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;{]+)\\s*(;|$)/g; // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\nvar cursor;\nfunction serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n var asTemplateStringsArr = strings;\n\n styles += asTemplateStringsArr[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n var templateStringsArr = strings;\n\n styles += templateStringsArr[i];\n }\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n}\n\nexport { serializeStyles };\n","var isBrowser = typeof document !== 'undefined';\n\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else if (className) {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false && cache.compat !== undefined) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var stylesForSSR = '';\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n if (!isBrowser && maybeStyles !== undefined) {\n stylesForSSR += maybeStyles;\n }\n\n current = current.next;\n } while (current !== undefined);\n\n if (!isBrowser && stylesForSSR.length !== 0) {\n return stylesForSSR;\n }\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","import createCache from '@emotion/cache';\nimport { serializeStyles } from '@emotion/serialize';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\n\nfunction insertWithoutScoping(cache, serialized) {\n if (cache.inserted[serialized.name] === undefined) {\n return cache.insert('', serialized, cache.sheet, true);\n }\n}\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar createEmotion = function createEmotion(options) {\n var cache = createCache(options);\n\n cache.sheet.speedy = function (value) {\n\n this.isSpeedy = value;\n };\n\n cache.compat = true;\n\n var css = function css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered, undefined);\n insertStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var keyframes = function keyframes() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n var animation = \"animation-\" + serialized.name;\n insertWithoutScoping(cache, {\n name: serialized.name,\n styles: \"@keyframes \" + animation + \"{\" + serialized.styles + \"}\"\n });\n return animation;\n };\n\n var injectGlobal = function injectGlobal() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n insertWithoutScoping(cache, serialized);\n };\n\n var cx = function cx() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n return {\n css: css,\n cx: cx,\n injectGlobal: injectGlobal,\n keyframes: keyframes,\n hydrate: function hydrate(ids) {\n ids.forEach(function (key) {\n cache.inserted[key] = true;\n });\n },\n flush: function flush() {\n cache.registered = {};\n cache.inserted = {};\n cache.sheet.flush();\n },\n sheet: cache.sheet,\n cache: cache,\n getRegisteredStyles: getRegisteredStyles.bind(null, cache.registered),\n merge: merge.bind(null, cache.registered, css)\n };\n};\n\nvar classnames = function classnames(args) {\n var cls = '';\n\n for (var i = 0; i < args.length; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nexport { createEmotion as default };\n","import createEmotion from '../create-instance/dist/emotion-css-create-instance.esm.js';\nimport '@emotion/cache';\nimport '@emotion/serialize';\nimport '@emotion/utils';\n\nvar _createEmotion = createEmotion({\n key: 'css'\n}),\n flush = _createEmotion.flush,\n hydrate = _createEmotion.hydrate,\n cx = _createEmotion.cx,\n merge = _createEmotion.merge,\n getRegisteredStyles = _createEmotion.getRegisteredStyles,\n injectGlobal = _createEmotion.injectGlobal,\n keyframes = _createEmotion.keyframes,\n css = _createEmotion.css,\n sheet = _createEmotion.sheet,\n cache = _createEmotion.cache;\n\nexport { cache, css, cx, flush, getRegisteredStyles, hydrate, injectGlobal, keyframes, merge, sheet };\n",null,"\n/* **********************************************\n Begin prism-core.js\n********************************************** */\n\n/// <reference lib=\"WebWorker\"/>\n\nvar _self = (typeof window !== 'undefined')\n\t? window // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t\t? self // if in worker\n\t\t\t: {} // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT <https://opensource.org/licenses/MIT>\n * @author Lea Verou <https://lea.verou.me>\n * @namespace\n * @public\n */\nvar Prism = (function (_self) {\n\n\t// Private helper vars\n\tvar lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n\tvar uniqueId = 0;\n\n\t// The grammar object for plaintext\n\tvar plainTextGrammar = {};\n\n\n\tvar _ = {\n\t\t/**\n\t\t * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n\t\t * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n\t\t * additional languages or plugins yourself.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n\t\t *\n\t\t * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.manual = true;\n\t\t * // add a new <script> to load Prism's script\n\t\t * ```\n\t\t *\n\t\t * @default false\n\t\t * @type {boolean}\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tmanual: _self.Prism && _self.Prism.manual,\n\t\t/**\n\t\t * By default, if Prism is in a web worker, it assumes that it is in a worker it created itself, so it uses\n\t\t * `addEventListener` to communicate with its parent instance. However, if you're using Prism manually in your\n\t\t * own worker, you don't want it to do this.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not add its own listeners to the worker.\n\t\t *\n\t\t * You obviously have to change this value before Prism executes. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.disableWorkerMessageHandler = true;\n\t\t * // Load Prism's script\n\t\t * ```\n\t\t *\n\t\t * @default false\n\t\t * @type {boolean}\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tdisableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,\n\n\t\t/**\n\t\t * A namespace for utility methods.\n\t\t *\n\t\t * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n\t\t * change or disappear at any time.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t */\n\t\tutil: {\n\t\t\tencode: function encode(tokens) {\n\t\t\t\tif (tokens instanceof Token) {\n\t\t\t\t\treturn new Token(tokens.type, encode(tokens.content), tokens.alias);\n\t\t\t\t} else if (Array.isArray(tokens)) {\n\t\t\t\t\treturn tokens.map(encode);\n\t\t\t\t} else {\n\t\t\t\t\treturn tokens.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/\\u00a0/g, ' ');\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the name of the type of the given value.\n\t\t\t *\n\t\t\t * @param {any} o\n\t\t\t * @returns {string}\n\t\t\t * @example\n\t\t\t * type(null) === 'Null'\n\t\t\t * type(undefined) === 'Undefined'\n\t\t\t * type(123) === 'Number'\n\t\t\t * type('foo') === 'String'\n\t\t\t * type(true) === 'Boolean'\n\t\t\t * type([1, 2]) === 'Array'\n\t\t\t * type({}) === 'Object'\n\t\t\t * type(String) === 'Function'\n\t\t\t * type(/abc+/) === 'RegExp'\n\t\t\t */\n\t\t\ttype: function (o) {\n\t\t\t\treturn Object.prototype.toString.call(o).slice(8, -1);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns a unique number for the given object. Later calls will still return the same number.\n\t\t\t *\n\t\t\t * @param {Object} obj\n\t\t\t * @returns {number}\n\t\t\t */\n\t\t\tobjId: function (obj) {\n\t\t\t\tif (!obj['__id']) {\n\t\t\t\t\tObject.defineProperty(obj, '__id', { value: ++uniqueId });\n\t\t\t\t}\n\t\t\t\treturn obj['__id'];\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Creates a deep clone of the given object.\n\t\t\t *\n\t\t\t * The main intended use of this function is to clone language definitions.\n\t\t\t *\n\t\t\t * @param {T} o\n\t\t\t * @param {Record<number, any>} [visited]\n\t\t\t * @returns {T}\n\t\t\t * @template T\n\t\t\t */\n\t\t\tclone: function deepClone(o, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar clone; var id;\n\t\t\t\tswitch (_.util.type(o)) {\n\t\t\t\t\tcase 'Object':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = /** @type {Record<string, any>} */ ({});\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\tfor (var key in o) {\n\t\t\t\t\t\t\tif (o.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tclone[key] = deepClone(o[key], visited);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tcase 'Array':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\t(/** @type {Array} */(/** @type {any} */(o))).forEach(function (v, i) {\n\t\t\t\t\t\t\tclone[i] = deepClone(v, visited);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn o;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n\t\t\t *\n\t\t\t * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @returns {string}\n\t\t\t */\n\t\t\tgetLanguage: function (element) {\n\t\t\t\twhile (element) {\n\t\t\t\t\tvar m = lang.exec(element.className);\n\t\t\t\t\tif (m) {\n\t\t\t\t\t\treturn m[1].toLowerCase();\n\t\t\t\t\t}\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\treturn 'none';\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Sets the Prism `language-xxxx` class of the given element.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @param {string} language\n\t\t\t * @returns {void}\n\t\t\t */\n\t\t\tsetLanguage: function (element, language) {\n\t\t\t\t// remove all `language-xxxx` classes\n\t\t\t\t// (this might leave behind a leading space)\n\t\t\t\telement.className = element.className.replace(RegExp(lang, 'gi'), '');\n\n\t\t\t\t// add the new `language-xxxx` class\n\t\t\t\t// (using `classList` will automatically clean up spaces for us)\n\t\t\t\telement.classList.add('language-' + language);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the script element that is currently executing.\n\t\t\t *\n\t\t\t * This does __not__ work for line script element.\n\t\t\t *\n\t\t\t * @returns {HTMLScriptElement | null}\n\t\t\t */\n\t\t\tcurrentScript: function () {\n\t\t\t\tif (typeof document === 'undefined') {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tif (document.currentScript && document.currentScript.tagName === 'SCRIPT' && 1 < 2 /* hack to trip TS' flow analysis */) {\n\t\t\t\t\treturn /** @type {any} */ (document.currentScript);\n\t\t\t\t}\n\n\t\t\t\t// IE11 workaround\n\t\t\t\t// we'll get the src of the current script by parsing IE11's error stack trace\n\t\t\t\t// this will not work for inline scripts\n\n\t\t\t\ttry {\n\t\t\t\t\tthrow new Error();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// Get file src url from stack. Specifically works with the format of stack traces in IE.\n\t\t\t\t\t// A stack will look like this:\n\t\t\t\t\t//\n\t\t\t\t\t// Error\n\t\t\t\t\t// at _.util.currentScript (http://localhost/components/prism-core.js:119:5)\n\t\t\t\t\t// at Global code (http://localhost/components/prism-core.js:606:1)\n\n\t\t\t\t\tvar src = (/at [^(\\r\\n]*\\((.*):[^:]+:[^:]+\\)$/i.exec(err.stack) || [])[1];\n\t\t\t\t\tif (src) {\n\t\t\t\t\t\tvar scripts = document.getElementsByTagName('script');\n\t\t\t\t\t\tfor (var i in scripts) {\n\t\t\t\t\t\t\tif (scripts[i].src == src) {\n\t\t\t\t\t\t\t\treturn scripts[i];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns whether a given class is active for `element`.\n\t\t\t *\n\t\t\t * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n\t\t\t * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n\t\t\t * given class is just the given class with a `no-` prefix.\n\t\t\t *\n\t\t\t * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n\t\t\t * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n\t\t\t * ancestors have the given class or the negated version of it, then the default activation will be returned.\n\t\t\t *\n\t\t\t * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n\t\t\t * version of it, the class is considered active.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @param {string} className\n\t\t\t * @param {boolean} [defaultActivation=false]\n\t\t\t * @returns {boolean}\n\t\t\t */\n\t\t\tisActive: function (element, className, defaultActivation) {\n\t\t\t\tvar no = 'no-' + className;\n\n\t\t\t\twhile (element) {\n\t\t\t\t\tvar classList = element.classList;\n\t\t\t\t\tif (classList.contains(className)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tif (classList.contains(no)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\treturn !!defaultActivation;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tlanguages: {\n\t\t\t/**\n\t\t\t * The grammar for plain, unformatted text.\n\t\t\t */\n\t\t\tplain: plainTextGrammar,\n\t\t\tplaintext: plainTextGrammar,\n\t\t\ttext: plainTextGrammar,\n\t\t\ttxt: plainTextGrammar,\n\n\t\t\t/**\n\t\t\t * Creates a deep copy of the language with the given id and appends the given tokens.\n\t\t\t *\n\t\t\t * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n\t\t\t * will be overwritten at its original position.\n\t\t\t *\n\t\t\t * ## Best practices\n\t\t\t *\n\t\t\t * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n\t\t\t * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n\t\t\t * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n\t\t\t *\n\t\t\t * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n\t\t\t * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n\t\t\t *\n\t\t\t * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n\t\t\t * @param {Grammar} redef The new tokens to append.\n\t\t\t * @returns {Grammar} The new language created.\n\t\t\t * @public\n\t\t\t * @example\n\t\t\t * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n\t\t\t * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n\t\t\t * // at its original position\n\t\t\t * 'comment': { ... },\n\t\t\t * // CSS doesn't have a 'color' token, so this token will be appended\n\t\t\t * 'color': /\\b(?:red|green|blue)\\b/\n\t\t\t * });\n\t\t\t */\n\t\t\textend: function (id, redef) {\n\t\t\t\tvar lang = _.util.clone(_.languages[id]);\n\n\t\t\t\tfor (var key in redef) {\n\t\t\t\t\tlang[key] = redef[key];\n\t\t\t\t}\n\n\t\t\t\treturn lang;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Inserts tokens _before_ another token in a language definition or any other grammar.\n\t\t\t *\n\t\t\t * ## Usage\n\t\t\t *\n\t\t\t * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n\t\t\t * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n\t\t\t * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n\t\t\t * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n\t\t\t * this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.markup.style = {\n\t\t\t * // token\n\t\t\t * };\n\t\t\t * ```\n\t\t\t *\n\t\t\t * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n\t\t\t * before existing tokens. For the CSS example above, you would use it like this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'cdata', {\n\t\t\t * 'style': {\n\t\t\t * // token\n\t\t\t * }\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Special cases\n\t\t\t *\n\t\t\t * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n\t\t\t * will be ignored.\n\t\t\t *\n\t\t\t * This behavior can be used to insert tokens after `before`:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'comment', {\n\t\t\t * 'comment': Prism.languages.markup.comment,\n\t\t\t * // tokens after 'comment'\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Limitations\n\t\t\t *\n\t\t\t * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n\t\t\t * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n\t\t\t * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n\t\t\t * deleting properties which is necessary to insert at arbitrary positions.\n\t\t\t *\n\t\t\t * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n\t\t\t * Instead, it will create a new object and replace all references to the target object with the new one. This\n\t\t\t * can be done without temporarily deleting properties, so the iteration order is well-defined.\n\t\t\t *\n\t\t\t * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n\t\t\t * you hold the target object in a variable, then the value of the variable will not change.\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * var oldMarkup = Prism.languages.markup;\n\t\t\t * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n\t\t\t *\n\t\t\t * assert(oldMarkup !== Prism.languages.markup);\n\t\t\t * assert(newMarkup === Prism.languages.markup);\n\t\t\t * ```\n\t\t\t *\n\t\t\t * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n\t\t\t * object to be modified.\n\t\t\t * @param {string} before The key to insert before.\n\t\t\t * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n\t\t\t * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n\t\t\t * object to be modified.\n\t\t\t *\n\t\t\t * Defaults to `Prism.languages`.\n\t\t\t * @returns {Grammar} The new grammar object.\n\t\t\t * @public\n\t\t\t */\n\t\t\tinsertBefore: function (inside, before, insert, root) {\n\t\t\t\troot = root || /** @type {any} */ (_.languages);\n\t\t\t\tvar grammar = root[inside];\n\t\t\t\t/** @type {Grammar} */\n\t\t\t\tvar ret = {};\n\n\t\t\t\tfor (var token in grammar) {\n\t\t\t\t\tif (grammar.hasOwnProperty(token)) {\n\n\t\t\t\t\t\tif (token == before) {\n\t\t\t\t\t\t\tfor (var newToken in insert) {\n\t\t\t\t\t\t\t\tif (insert.hasOwnProperty(newToken)) {\n\t\t\t\t\t\t\t\t\tret[newToken] = insert[newToken];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Do not insert token which also occur in insert. See #1525\n\t\t\t\t\t\tif (!insert.hasOwnProperty(token)) {\n\t\t\t\t\t\t\tret[token] = grammar[token];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar old = root[inside];\n\t\t\t\troot[inside] = ret;\n\n\t\t\t\t// Update references in other language definitions\n\t\t\t\t_.languages.DFS(_.languages, function (key, value) {\n\t\t\t\t\tif (value === old && key != inside) {\n\t\t\t\t\t\tthis[key] = ret;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn ret;\n\t\t\t},\n\n\t\t\t// Traverse a language definition with Depth First Search\n\t\t\tDFS: function DFS(o, callback, type, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar objId = _.util.objId;\n\n\t\t\t\tfor (var i in o) {\n\t\t\t\t\tif (o.hasOwnProperty(i)) {\n\t\t\t\t\t\tcallback.call(o, i, o[i], type || i);\n\n\t\t\t\t\t\tvar property = o[i];\n\t\t\t\t\t\tvar propertyType = _.util.type(property);\n\n\t\t\t\t\t\tif (propertyType === 'Object' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, null, visited);\n\t\t\t\t\t\t} else if (propertyType === 'Array' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, i, visited);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tplugins: {},\n\n\t\t/**\n\t\t * This is the most high-level function in Prism’s API.\n\t\t * It fetches all the elements that have a `.language-xxxx` class and then calls {@link Prism.highlightElement} on\n\t\t * each one of them.\n\t\t *\n\t\t * This is equivalent to `Prism.highlightAllUnder(document, async, callback)`.\n\t\t *\n\t\t * @param {boolean} [async=false] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @param {HighlightCallback} [callback] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAll: function (async, callback) {\n\t\t\t_.highlightAllUnder(document, async, callback);\n\t\t},\n\n\t\t/**\n\t\t * Fetches all the descendants of `container` that have a `.language-xxxx` class and then calls\n\t\t * {@link Prism.highlightElement} on each one of them.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-highlightall`\n\t\t * 2. `before-all-elements-highlight`\n\t\t * 3. All hooks of {@link Prism.highlightElement} for each element.\n\t\t *\n\t\t * @param {ParentNode} container The root element, whose descendants that have a `.language-xxxx` class will be highlighted.\n\t\t * @param {boolean} [async=false] Whether each element is to be highlighted asynchronously using Web Workers.\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked on each element after its highlighting is done.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAllUnder: function (container, async, callback) {\n\t\t\tvar env = {\n\t\t\t\tcallback: callback,\n\t\t\t\tcontainer: container,\n\t\t\t\tselector: 'code[class*=\"language-\"], [class*=\"language-\"] code, code[class*=\"lang-\"], [class*=\"lang-\"] code'\n\t\t\t};\n\n\t\t\t_.hooks.run('before-highlightall', env);\n\n\t\t\tenv.elements = Array.prototype.slice.apply(env.container.querySelectorAll(env.selector));\n\n\t\t\t_.hooks.run('before-all-elements-highlight', env);\n\n\t\t\tfor (var i = 0, element; (element = env.elements[i++]);) {\n\t\t\t\t_.highlightElement(element, async === true, env.callback);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Highlights the code inside a single element.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-sanity-check`\n\t\t * 2. `before-highlight`\n\t\t * 3. All hooks of {@link Prism.highlight}. These hooks will be run by an asynchronous worker if `async` is `true`.\n\t\t * 4. `before-insert`\n\t\t * 5. `after-highlight`\n\t\t * 6. `complete`\n\t\t *\n\t\t * Some the above hooks will be skipped if the element doesn't contain any text or there is no grammar loaded for\n\t\t * the element's language.\n\t\t *\n\t\t * @param {Element} element The element containing the code.\n\t\t * It must have a class of `language-xxxx` to be processed, where `xxxx` is a valid language identifier.\n\t\t * @param {boolean} [async=false] Whether the element is to be highlighted asynchronously using Web Workers\n\t\t * to improve performance and avoid blocking the UI when highlighting very large chunks of code. This option is\n\t\t * [disabled by default](https://prismjs.com/faq.html#why-is-asynchronous-highlighting-disabled-by-default).\n\t\t *\n\t\t * Note: All language definitions required to highlight the code must be included in the main `prism.js` file for\n\t\t * asynchronous highlighting to work. You can build your own bundle on the\n\t\t * [Download page](https://prismjs.com/download.html).\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked after the highlighting is done.\n\t\t * Mostly useful when `async` is `true`, since in that case, the highlighting is done asynchronously.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightElement: function (element, async, callback) {\n\t\t\t// Find language\n\t\t\tvar language = _.util.getLanguage(element);\n\t\t\tvar grammar = _.languages[language];\n\n\t\t\t// Set language on the element, if not present\n\t\t\t_.util.setLanguage(element, language);\n\n\t\t\t// Set language on the parent, for styling\n\t\t\tvar parent = element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre') {\n\t\t\t\t_.util.setLanguage(parent, language);\n\t\t\t}\n\n\t\t\tvar code = element.textContent;\n\n\t\t\tvar env = {\n\t\t\t\telement: element,\n\t\t\t\tlanguage: language,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tcode: code\n\t\t\t};\n\n\t\t\tfunction insertHighlightedCode(highlightedCode) {\n\t\t\t\tenv.highlightedCode = highlightedCode;\n\n\t\t\t\t_.hooks.run('before-insert', env);\n\n\t\t\t\tenv.element.innerHTML = env.highlightedCode;\n\n\t\t\t\t_.hooks.run('after-highlight', env);\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t}\n\n\t\t\t_.hooks.run('before-sanity-check', env);\n\n\t\t\t// plugins may change/add the parent/element\n\t\t\tparent = env.element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre' && !parent.hasAttribute('tabindex')) {\n\t\t\t\tparent.setAttribute('tabindex', '0');\n\t\t\t}\n\n\t\t\tif (!env.code) {\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_.hooks.run('before-highlight', env);\n\n\t\t\tif (!env.grammar) {\n\t\t\t\tinsertHighlightedCode(_.util.encode(env.code));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (async && _self.Worker) {\n\t\t\t\tvar worker = new Worker(_.filename);\n\n\t\t\t\tworker.onmessage = function (evt) {\n\t\t\t\t\tinsertHighlightedCode(evt.data);\n\t\t\t\t};\n\n\t\t\t\tworker.postMessage(JSON.stringify({\n\t\t\t\t\tlanguage: env.language,\n\t\t\t\t\tcode: env.code,\n\t\t\t\t\timmediateClose: true\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tinsertHighlightedCode(_.highlight(env.code, env.grammar, env.language));\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Low-level function, only use if you know what you’re doing. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns a string with the HTML produced.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-tokenize`\n\t\t * 2. `after-tokenize`\n\t\t * 3. `wrap`: On each {@link Token}.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @param {string} language The name of the language definition passed to `grammar`.\n\t\t * @returns {string} The highlighted HTML.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n\t\t */\n\t\thighlight: function (text, grammar, language) {\n\t\t\tvar env = {\n\t\t\t\tcode: text,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tlanguage: language\n\t\t\t};\n\t\t\t_.hooks.run('before-tokenize', env);\n\t\t\tif (!env.grammar) {\n\t\t\t\tthrow new Error('The language \"' + env.language + '\" has no grammar.');\n\t\t\t}\n\t\t\tenv.tokens = _.tokenize(env.code, env.grammar);\n\t\t\t_.hooks.run('after-tokenize', env);\n\t\t\treturn Token.stringify(_.util.encode(env.tokens), env.language);\n\t\t},\n\n\t\t/**\n\t\t * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns an array with the tokenized code.\n\t\t *\n\t\t * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n\t\t *\n\t\t * This method could be useful in other contexts as well, as a very crude parser.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @returns {TokenStream} An array of strings and tokens, a token stream.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * let code = `var foo = 0;`;\n\t\t * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n\t\t * tokens.forEach(token => {\n\t\t * if (token instanceof Prism.Token && token.type === 'number') {\n\t\t * console.log(`Found numeric literal: ${token.content}`);\n\t\t * }\n\t\t * });\n\t\t */\n\t\ttokenize: function (text, grammar) {\n\t\t\tvar rest = grammar.rest;\n\t\t\tif (rest) {\n\t\t\t\tfor (var token in rest) {\n\t\t\t\t\tgrammar[token] = rest[token];\n\t\t\t\t}\n\n\t\t\t\tdelete grammar.rest;\n\t\t\t}\n\n\t\t\tvar tokenList = new LinkedList();\n\t\t\taddAfter(tokenList, tokenList.head, text);\n\n\t\t\tmatchGrammar(text, tokenList, grammar, tokenList.head, 0);\n\n\t\t\treturn toArray(tokenList);\n\t\t},\n\n\t\t/**\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thooks: {\n\t\t\tall: {},\n\n\t\t\t/**\n\t\t\t * Adds the given callback to the list of callbacks for the given hook.\n\t\t\t *\n\t\t\t * The callback will be invoked when the hook it is registered for is run.\n\t\t\t * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n\t\t\t *\n\t\t\t * One callback function can be registered to multiple hooks and the same hook multiple times.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {HookCallback} callback The callback function which is given environment variables.\n\t\t\t * @public\n\t\t\t */\n\t\t\tadd: function (name, callback) {\n\t\t\t\tvar hooks = _.hooks.all;\n\n\t\t\t\thooks[name] = hooks[name] || [];\n\n\t\t\t\thooks[name].push(callback);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Runs a hook invoking all registered callbacks with the given environment variables.\n\t\t\t *\n\t\t\t * Callbacks will be invoked synchronously and in the order in which they were registered.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n\t\t\t * @public\n\t\t\t */\n\t\t\trun: function (name, env) {\n\t\t\t\tvar callbacks = _.hooks.all[name];\n\n\t\t\t\tif (!callbacks || !callbacks.length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfor (var i = 0, callback; (callback = callbacks[i++]);) {\n\t\t\t\t\tcallback(env);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tToken: Token\n\t};\n\t_self.Prism = _;\n\n\n\t// Typescript note:\n\t// The following can be used to import the Token type in JSDoc:\n\t//\n\t// @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n\n\t/**\n\t * Creates a new token.\n\t *\n\t * @param {string} type See {@link Token#type type}\n\t * @param {string | TokenStream} content See {@link Token#content content}\n\t * @param {string|string[]} [alias] The alias(es) of the token.\n\t * @param {string} [matchedStr=\"\"] A copy of the full string this token was created from.\n\t * @class\n\t * @global\n\t * @public\n\t */\n\tfunction Token(type, content, alias, matchedStr) {\n\t\t/**\n\t\t * The type of the token.\n\t\t *\n\t\t * This is usually the key of a pattern in a {@link Grammar}.\n\t\t *\n\t\t * @type {string}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.type = type;\n\t\t/**\n\t\t * The strings or tokens contained by this token.\n\t\t *\n\t\t * This will be a token stream if the pattern matched also defined an `inside` grammar.\n\t\t *\n\t\t * @type {string | TokenStream}\n\t\t * @public\n\t\t */\n\t\tthis.content = content;\n\t\t/**\n\t\t * The alias(es) of the token.\n\t\t *\n\t\t * @type {string|string[]}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.alias = alias;\n\t\t// Copy of the full string this token was created from\n\t\tthis.length = (matchedStr || '').length | 0;\n\t}\n\n\t/**\n\t * A token stream is an array of strings and {@link Token Token} objects.\n\t *\n\t * Token streams have to fulfill a few properties that are assumed by most functions (mostly internal ones) that process\n\t * them.\n\t *\n\t * 1. No adjacent strings.\n\t * 2. No empty strings.\n\t *\n\t * The only exception here is the token stream that only contains the empty string and nothing else.\n\t *\n\t * @typedef {Array<string | Token>} TokenStream\n\t * @global\n\t * @public\n\t */\n\n\t/**\n\t * Converts the given token or token stream to an HTML representation.\n\t *\n\t * The following hooks will be run:\n\t * 1. `wrap`: On each {@link Token}.\n\t *\n\t * @param {string | Token | TokenStream} o The token or token stream to be converted.\n\t * @param {string} language The name of current language.\n\t * @returns {string} The HTML representation of the token or token stream.\n\t * @memberof Token\n\t * @static\n\t */\n\tToken.stringify = function stringify(o, language) {\n\t\tif (typeof o == 'string') {\n\t\t\treturn o;\n\t\t}\n\t\tif (Array.isArray(o)) {\n\t\t\tvar s = '';\n\t\t\to.forEach(function (e) {\n\t\t\t\ts += stringify(e, language);\n\t\t\t});\n\t\t\treturn s;\n\t\t}\n\n\t\tvar env = {\n\t\t\ttype: o.type,\n\t\t\tcontent: stringify(o.content, language),\n\t\t\ttag: 'span',\n\t\t\tclasses: ['token', o.type],\n\t\t\tattributes: {},\n\t\t\tlanguage: language\n\t\t};\n\n\t\tvar aliases = o.alias;\n\t\tif (aliases) {\n\t\t\tif (Array.isArray(aliases)) {\n\t\t\t\tArray.prototype.push.apply(env.classes, aliases);\n\t\t\t} else {\n\t\t\t\tenv.classes.push(aliases);\n\t\t\t}\n\t\t}\n\n\t\t_.hooks.run('wrap', env);\n\n\t\tvar attributes = '';\n\t\tfor (var name in env.attributes) {\n\t\t\tattributes += ' ' + name + '=\"' + (env.attributes[name] || '').replace(/\"/g, '&quot;') + '\"';\n\t\t}\n\n\t\treturn '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + attributes + '>' + env.content + '</' + env.tag + '>';\n\t};\n\n\t/**\n\t * @param {RegExp} pattern\n\t * @param {number} pos\n\t * @param {string} text\n\t * @param {boolean} lookbehind\n\t * @returns {RegExpExecArray | null}\n\t */\n\tfunction matchPattern(pattern, pos, text, lookbehind) {\n\t\tpattern.lastIndex = pos;\n\t\tvar match = pattern.exec(text);\n\t\tif (match && lookbehind && match[1]) {\n\t\t\t// change the match to remove the text matched by the Prism lookbehind group\n\t\t\tvar lookbehindLength = match[1].length;\n\t\t\tmatch.index += lookbehindLength;\n\t\t\tmatch[0] = match[0].slice(lookbehindLength);\n\t\t}\n\t\treturn match;\n\t}\n\n\t/**\n\t * @param {string} text\n\t * @param {LinkedList<string | Token>} tokenList\n\t * @param {any} grammar\n\t * @param {LinkedListNode<string | Token>} startNode\n\t * @param {number} startPos\n\t * @param {RematchOptions} [rematch]\n\t * @returns {void}\n\t * @private\n\t *\n\t * @typedef RematchOptions\n\t * @property {string} cause\n\t * @property {number} reach\n\t */\n\tfunction matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n\t\tfor (var token in grammar) {\n\t\t\tif (!grammar.hasOwnProperty(token) || !grammar[token]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tvar patterns = grammar[token];\n\t\t\tpatterns = Array.isArray(patterns) ? patterns : [patterns];\n\n\t\t\tfor (var j = 0; j < patterns.length; ++j) {\n\t\t\t\tif (rematch && rematch.cause == token + ',' + j) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar patternObj = patterns[j];\n\t\t\t\tvar inside = patternObj.inside;\n\t\t\t\tvar lookbehind = !!patternObj.lookbehind;\n\t\t\t\tvar greedy = !!patternObj.greedy;\n\t\t\t\tvar alias = patternObj.alias;\n\n\t\t\t\tif (greedy && !patternObj.pattern.global) {\n\t\t\t\t\t// Without the global flag, lastIndex won't work\n\t\t\t\t\tvar flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];\n\t\t\t\t\tpatternObj.pattern = RegExp(patternObj.pattern.source, flags + 'g');\n\t\t\t\t}\n\n\t\t\t\t/** @type {RegExp} */\n\t\t\t\tvar pattern = patternObj.pattern || patternObj;\n\n\t\t\t\tfor ( // iterate the token list and keep track of the current token/string position\n\t\t\t\t\tvar currentNode = startNode.next, pos = startPos;\n\t\t\t\t\tcurrentNode !== tokenList.tail;\n\t\t\t\t\tpos += currentNode.value.length, currentNode = currentNode.next\n\t\t\t\t) {\n\n\t\t\t\t\tif (rematch && pos >= rematch.reach) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar str = currentNode.value;\n\n\t\t\t\t\tif (tokenList.length > text.length) {\n\t\t\t\t\t\t// Something went terribly wrong, ABORT, ABORT!\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (str instanceof Token) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeCount = 1; // this is the to parameter of removeBetween\n\t\t\t\t\tvar match;\n\n\t\t\t\t\tif (greedy) {\n\t\t\t\t\t\tmatch = matchPattern(pattern, pos, text, lookbehind);\n\t\t\t\t\t\tif (!match || match.index >= text.length) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar from = match.index;\n\t\t\t\t\t\tvar to = match.index + match[0].length;\n\t\t\t\t\t\tvar p = pos;\n\n\t\t\t\t\t\t// find the node that contains the match\n\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\twhile (from >= p) {\n\t\t\t\t\t\t\tcurrentNode = currentNode.next;\n\t\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// adjust pos (and p)\n\t\t\t\t\t\tp -= currentNode.value.length;\n\t\t\t\t\t\tpos = p;\n\n\t\t\t\t\t\t// the current node is a Token, then the match starts inside another Token, which is invalid\n\t\t\t\t\t\tif (currentNode.value instanceof Token) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// find the last node which is affected by this match\n\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\tvar k = currentNode;\n\t\t\t\t\t\t\tk !== tokenList.tail && (p < to || typeof k.value === 'string');\n\t\t\t\t\t\t\tk = k.next\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveCount++;\n\t\t\t\t\t\t\tp += k.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tremoveCount--;\n\n\t\t\t\t\t\t// replace with the new match\n\t\t\t\t\t\tstr = text.slice(pos, p);\n\t\t\t\t\t\tmatch.index -= pos;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatch = matchPattern(pattern, 0, str, lookbehind);\n\t\t\t\t\t\tif (!match) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// eslint-disable-next-line no-redeclare\n\t\t\t\t\tvar from = match.index;\n\t\t\t\t\tvar matchStr = match[0];\n\t\t\t\t\tvar before = str.slice(0, from);\n\t\t\t\t\tvar after = str.slice(from + matchStr.length);\n\n\t\t\t\t\tvar reach = pos + str.length;\n\t\t\t\t\tif (rematch && reach > rematch.reach) {\n\t\t\t\t\t\trematch.reach = reach;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeFrom = currentNode.prev;\n\n\t\t\t\t\tif (before) {\n\t\t\t\t\t\tremoveFrom = addAfter(tokenList, removeFrom, before);\n\t\t\t\t\t\tpos += before.length;\n\t\t\t\t\t}\n\n\t\t\t\t\tremoveRange(tokenList, removeFrom, removeCount);\n\n\t\t\t\t\tvar wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);\n\t\t\t\t\tcurrentNode = addAfter(tokenList, removeFrom, wrapped);\n\n\t\t\t\t\tif (after) {\n\t\t\t\t\t\taddAfter(tokenList, currentNode, after);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (removeCount > 1) {\n\t\t\t\t\t\t// at least one Token object was removed, so we have to do some rematching\n\t\t\t\t\t\t// this can only happen if the current pattern is greedy\n\n\t\t\t\t\t\t/** @type {RematchOptions} */\n\t\t\t\t\t\tvar nestedRematch = {\n\t\t\t\t\t\t\tcause: token + ',' + j,\n\t\t\t\t\t\t\treach: reach\n\t\t\t\t\t\t};\n\t\t\t\t\t\tmatchGrammar(text, tokenList, grammar, currentNode.prev, pos, nestedRematch);\n\n\t\t\t\t\t\t// the reach might have been extended because of the rematching\n\t\t\t\t\t\tif (rematch && nestedRematch.reach > rematch.reach) {\n\t\t\t\t\t\t\trematch.reach = nestedRematch.reach;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @typedef LinkedListNode\n\t * @property {T} value\n\t * @property {LinkedListNode<T> | null} prev The previous node.\n\t * @property {LinkedListNode<T> | null} next The next node.\n\t * @template T\n\t * @private\n\t */\n\n\t/**\n\t * @template T\n\t * @private\n\t */\n\tfunction LinkedList() {\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar head = { value: null, prev: null, next: null };\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar tail = { value: null, prev: head, next: null };\n\t\thead.next = tail;\n\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.head = head;\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.tail = tail;\n\t\tthis.length = 0;\n\t}\n\n\t/**\n\t * Adds a new node with the given value to the list.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {T} value\n\t * @returns {LinkedListNode<T>} The added node.\n\t * @template T\n\t */\n\tfunction addAfter(list, node, value) {\n\t\t// assumes that node != list.tail && values.length >= 0\n\t\tvar next = node.next;\n\n\t\tvar newNode = { value: value, prev: node, next: next };\n\t\tnode.next = newNode;\n\t\tnext.prev = newNode;\n\t\tlist.length++;\n\n\t\treturn newNode;\n\t}\n\t/**\n\t * Removes `count` nodes after the given node. The given node will not be removed.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {number} count\n\t * @template T\n\t */\n\tfunction removeRange(list, node, count) {\n\t\tvar next = node.next;\n\t\tfor (var i = 0; i < count && next !== list.tail; i++) {\n\t\t\tnext = next.next;\n\t\t}\n\t\tnode.next = next;\n\t\tnext.prev = node;\n\t\tlist.length -= i;\n\t}\n\t/**\n\t * @param {LinkedList<T>} list\n\t * @returns {T[]}\n\t * @template T\n\t */\n\tfunction toArray(list) {\n\t\tvar array = [];\n\t\tvar node = list.head.next;\n\t\twhile (node !== list.tail) {\n\t\t\tarray.push(node.value);\n\t\t\tnode = node.next;\n\t\t}\n\t\treturn array;\n\t}\n\n\n\tif (!_self.document) {\n\t\tif (!_self.addEventListener) {\n\t\t\t// in Node.js\n\t\t\treturn _;\n\t\t}\n\n\t\tif (!_.disableWorkerMessageHandler) {\n\t\t\t// In worker\n\t\t\t_self.addEventListener('message', function (evt) {\n\t\t\t\tvar message = JSON.parse(evt.data);\n\t\t\t\tvar lang = message.language;\n\t\t\t\tvar code = message.code;\n\t\t\t\tvar immediateClose = message.immediateClose;\n\n\t\t\t\t_self.postMessage(_.highlight(code, _.languages[lang], lang));\n\t\t\t\tif (immediateClose) {\n\t\t\t\t\t_self.close();\n\t\t\t\t}\n\t\t\t}, false);\n\t\t}\n\n\t\treturn _;\n\t}\n\n\t// Get current script and highlight\n\tvar script = _.util.currentScript();\n\n\tif (script) {\n\t\t_.filename = script.src;\n\n\t\tif (script.hasAttribute('data-manual')) {\n\t\t\t_.manual = true;\n\t\t}\n\t}\n\n\tfunction highlightAutomaticallyCallback() {\n\t\tif (!_.manual) {\n\t\t\t_.highlightAll();\n\t\t}\n\t}\n\n\tif (!_.manual) {\n\t\t// If the document state is \"loading\", then we'll use DOMContentLoaded.\n\t\t// If the document state is \"interactive\" and the prism.js script is deferred, then we'll also use the\n\t\t// DOMContentLoaded event because there might be some plugins or languages which have also been deferred and they\n\t\t// might take longer one animation frame to execute which can create a race condition where only some plugins have\n\t\t// been loaded when Prism.highlightAll() is executed, depending on how fast resources are loaded.\n\t\t// See https://github.com/PrismJS/prism/issues/2102\n\t\tvar readyState = document.readyState;\n\t\tif (readyState === 'loading' || readyState === 'interactive' && script && script.defer) {\n\t\t\tdocument.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback);\n\t\t} else {\n\t\t\tif (window.requestAnimationFrame) {\n\t\t\t\twindow.requestAnimationFrame(highlightAutomaticallyCallback);\n\t\t\t} else {\n\t\t\t\twindow.setTimeout(highlightAutomaticallyCallback, 16);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn _;\n\n}(_self));\n\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = Prism;\n}\n\n// hack for components to work correctly in node.js\nif (typeof global !== 'undefined') {\n\tglobal.Prism = Prism;\n}\n\n// some additional documentation/types\n\n/**\n * The expansion of a simple `RegExp` literal to support additional properties.\n *\n * @typedef GrammarToken\n * @property {RegExp} pattern The regular expression of the token.\n * @property {boolean} [lookbehind=false] If `true`, then the first capturing group of `pattern` will (effectively)\n * behave as a lookbehind group meaning that the captured text will not be part of the matched text of the new token.\n * @property {boolean} [greedy=false] Whether the token is greedy.\n * @property {string|string[]} [alias] An optional alias or list of aliases.\n * @property {Grammar} [inside] The nested grammar of this token.\n *\n * The `inside` grammar will be used to tokenize the text value of each token of this kind.\n *\n * This can be used to make nested and even recursive language definitions.\n *\n * Note: This can cause infinite recursion. Be careful when you embed different languages or even the same language into\n * each another.\n * @global\n * @public\n */\n\n/**\n * @typedef Grammar\n * @type {Object<string, RegExp | GrammarToken | Array<RegExp | GrammarToken>>}\n * @property {Grammar} [rest] An optional grammar object that will be appended to this grammar.\n * @global\n * @public\n */\n\n/**\n * A function which will invoked after an element was successfully highlighted.\n *\n * @callback HighlightCallback\n * @param {Element} element The element successfully highlighted.\n * @returns {void}\n * @global\n * @public\n */\n\n/**\n * @callback HookCallback\n * @param {Object<string, any>} env The environment variables of the hook.\n * @returns {void}\n * @global\n * @public\n */\n\n\n/* **********************************************\n Begin prism-markup.js\n********************************************** */\n\nPrism.languages.markup = {\n\t'comment': {\n\t\tpattern: /<!--(?:(?!<!--)[\\s\\S])*?-->/,\n\t\tgreedy: true\n\t},\n\t'prolog': {\n\t\tpattern: /<\\?[\\s\\S]+?\\?>/,\n\t\tgreedy: true\n\t},\n\t'doctype': {\n\t\t// https://www.w3.org/TR/xml/#NT-doctypedecl\n\t\tpattern: /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'internal-subset': {\n\t\t\t\tpattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: null // see below\n\t\t\t},\n\t\t\t'string': {\n\t\t\t\tpattern: /\"[^\"]*\"|'[^']*'/,\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t'punctuation': /^<!|>$|[[\\]]/,\n\t\t\t'doctype-tag': /^DOCTYPE/i,\n\t\t\t'name': /[^\\s<>'\"]+/\n\t\t}\n\t},\n\t'cdata': {\n\t\tpattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n\t\tgreedy: true\n\t},\n\t'tag': {\n\t\tpattern: /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'tag': {\n\t\t\t\tpattern: /^<\\/?[^\\s>\\/]+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /^<\\/?/,\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'special-attr': [],\n\t\t\t'attr-value': {\n\t\t\t\tpattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /^=/,\n\t\t\t\t\t\t\talias: 'attr-equals'\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /^(\\s*)[\"']|[\"']$/,\n\t\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t'punctuation': /\\/?>/,\n\t\t\t'attr-name': {\n\t\t\t\tpattern: /[^\\s>\\/]+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t},\n\t'entity': [\n\t\t{\n\t\t\tpattern: /&[\\da-z]{1,8};/i,\n\t\t\talias: 'named-entity'\n\t\t},\n\t\t/&#x?[\\da-f]{1,8};/i\n\t]\n};\n\nPrism.languages.markup['tag'].inside['attr-value'].inside['entity'] =\n\tPrism.languages.markup['entity'];\nPrism.languages.markup['doctype'].inside['internal-subset'].inside = Prism.languages.markup;\n\n// Plugin to make entity title show the real entity, idea by Roman Komarov\nPrism.hooks.add('wrap', function (env) {\n\n\tif (env.type === 'entity') {\n\t\tenv.attributes['title'] = env.content.replace(/&amp;/, '&');\n\t}\n});\n\nObject.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n\t/**\n\t * Adds an inlined language to markup.\n\t *\n\t * An example of an inlined language is CSS with `<style>` tags.\n\t *\n\t * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as\n\t * case insensitive.\n\t * @param {string} lang The language key.\n\t * @example\n\t * addInlined('style', 'css');\n\t */\n\tvalue: function addInlined(tagName, lang) {\n\t\tvar includedCdataInside = {};\n\t\tincludedCdataInside['language-' + lang] = {\n\t\t\tpattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages[lang]\n\t\t};\n\t\tincludedCdataInside['cdata'] = /^<!\\[CDATA\\[|\\]\\]>$/i;\n\n\t\tvar inside = {\n\t\t\t'included-cdata': {\n\t\t\t\tpattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n\t\t\t\tinside: includedCdataInside\n\t\t\t}\n\t\t};\n\t\tinside['language-' + lang] = {\n\t\t\tpattern: /[\\s\\S]+/,\n\t\t\tinside: Prism.languages[lang]\n\t\t};\n\n\t\tvar def = {};\n\t\tdef[tagName] = {\n\t\t\tpattern: RegExp(/(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(/__/g, function () { return tagName; }), 'i'),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: inside\n\t\t};\n\n\t\tPrism.languages.insertBefore('markup', 'cdata', def);\n\t}\n});\nObject.defineProperty(Prism.languages.markup.tag, 'addAttribute', {\n\t/**\n\t * Adds an pattern to highlight languages embedded in HTML attributes.\n\t *\n\t * An example of an inlined language is CSS with `style` attributes.\n\t *\n\t * @param {string} attrName The name of the tag that contains the inlined language. This name will be treated as\n\t * case insensitive.\n\t * @param {string} lang The language key.\n\t * @example\n\t * addAttribute('style', 'css');\n\t */\n\tvalue: function (attrName, lang) {\n\t\tPrism.languages.markup.tag.inside['special-attr'].push({\n\t\t\tpattern: RegExp(\n\t\t\t\t/(^|[\"'\\s])/.source + '(?:' + attrName + ')' + /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source,\n\t\t\t\t'i'\n\t\t\t),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'attr-name': /^[^\\s=]+/,\n\t\t\t\t'attr-value': {\n\t\t\t\t\tpattern: /=[\\s\\S]+/,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'value': {\n\t\t\t\t\t\t\tpattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/,\n\t\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\t\talias: [lang, 'language-' + lang],\n\t\t\t\t\t\t\tinside: Prism.languages[lang]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'punctuation': [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tpattern: /^=/,\n\t\t\t\t\t\t\t\talias: 'attr-equals'\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t/\"|'/\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n});\n\nPrism.languages.html = Prism.languages.markup;\nPrism.languages.mathml = Prism.languages.markup;\nPrism.languages.svg = Prism.languages.markup;\n\nPrism.languages.xml = Prism.languages.extend('markup', {});\nPrism.languages.ssml = Prism.languages.xml;\nPrism.languages.atom = Prism.languages.xml;\nPrism.languages.rss = Prism.languages.xml;\n\n\n/* **********************************************\n Begin prism-css.js\n********************************************** */\n\n(function (Prism) {\n\n\tvar string = /(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/;\n\n\tPrism.languages.css = {\n\t\t'comment': /\\/\\*[\\s\\S]*?\\*\\//,\n\t\t'atrule': {\n\t\t\tpattern: RegExp('@[\\\\w-](?:' + /[^;{\\s\"']|\\s+(?!\\s)/.source + '|' + string.source + ')*?' + /(?:;|(?=\\s*\\{))/.source),\n\t\t\tinside: {\n\t\t\t\t'rule': /^@[\\w-]+/,\n\t\t\t\t'selector-function-argument': {\n\t\t\t\t\tpattern: /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'selector'\n\t\t\t\t},\n\t\t\t\t'keyword': {\n\t\t\t\t\tpattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t}\n\t\t\t\t// See rest below\n\t\t\t}\n\t\t},\n\t\t'url': {\n\t\t\t// https://drafts.csswg.org/css-values-3/#urls\n\t\t\tpattern: RegExp('\\\\burl\\\\((?:' + string.source + '|' + /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source + ')\\\\)', 'i'),\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'function': /^url/i,\n\t\t\t\t'punctuation': /^\\(|\\)$/,\n\t\t\t\t'string': {\n\t\t\t\t\tpattern: RegExp('^' + string.source + '$'),\n\t\t\t\t\talias: 'url'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'selector': {\n\t\t\tpattern: RegExp('(^|[{}\\\\s])[^{}\\\\s](?:[^{};\"\\'\\\\s]|\\\\s+(?![\\\\s{])|' + string.source + ')*(?=\\\\s*\\\\{)'),\n\t\t\tlookbehind: true\n\t\t},\n\t\t'string': {\n\t\t\tpattern: string,\n\t\t\tgreedy: true\n\t\t},\n\t\t'property': {\n\t\t\tpattern: /(^|[^-\\w\\xA0-\\uFFFF])(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'important': /!important\\b/i,\n\t\t'function': {\n\t\t\tpattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\\()/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'punctuation': /[(){};:,]/\n\t};\n\n\tPrism.languages.css['atrule'].inside.rest = Prism.languages.css;\n\n\tvar markup = Prism.languages.markup;\n\tif (markup) {\n\t\tmarkup.tag.addInlined('style', 'css');\n\t\tmarkup.tag.addAttribute('style', 'css');\n\t}\n\n}(Prism));\n\n\n/* **********************************************\n Begin prism-clike.js\n********************************************** */\n\nPrism.languages.clike = {\n\t'comment': [\n\t\t{\n\t\t\tpattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^\\\\:])\\/\\/.*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\t'string': {\n\t\tpattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\t'class-name': {\n\t\tpattern: /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'punctuation': /[.\\\\]/\n\t\t}\n\t},\n\t'keyword': /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/,\n\t'boolean': /\\b(?:false|true)\\b/,\n\t'function': /\\b\\w+(?=\\()/,\n\t'number': /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n\t'operator': /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n\t'punctuation': /[{}[\\];(),.:]/\n};\n\n\n/* **********************************************\n Begin prism-javascript.js\n********************************************** */\n\nPrism.languages.javascript = Prism.languages.extend('clike', {\n\t'class-name': [\n\t\tPrism.languages.clike['class-name'],\n\t\t{\n\t\t\tpattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'keyword': [\n\t\t{\n\t\t\tpattern: /((?:^|\\})\\s*)catch\\b/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,\n\t\t\tlookbehind: true\n\t\t},\n\t],\n\t// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n\t'function': /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n\t'number': {\n\t\tpattern: RegExp(\n\t\t\t/(^|[^\\w$])/.source +\n\t\t\t'(?:' +\n\t\t\t(\n\t\t\t\t// constant\n\t\t\t\t/NaN|Infinity/.source +\n\t\t\t\t'|' +\n\t\t\t\t// binary integer\n\t\t\t\t/0[bB][01]+(?:_[01]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// octal integer\n\t\t\t\t/0[oO][0-7]+(?:_[0-7]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// hexadecimal integer\n\t\t\t\t/0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// decimal bigint\n\t\t\t\t/\\d+(?:_\\d+)*n/.source +\n\t\t\t\t'|' +\n\t\t\t\t// decimal number (integer or float) but no bigint\n\t\t\t\t/(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/.source\n\t\t\t) +\n\t\t\t')' +\n\t\t\t/(?![\\w$])/.source\n\t\t),\n\t\tlookbehind: true\n\t},\n\t'operator': /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n});\n\nPrism.languages.javascript['class-name'][0].pattern = /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/;\n\nPrism.languages.insertBefore('javascript', 'keyword', {\n\t'regex': {\n\t\tpattern: RegExp(\n\t\t\t// lookbehind\n\t\t\t// eslint-disable-next-line regexp/no-dupe-characters-character-class\n\t\t\t/((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/.source +\n\t\t\t// Regex pattern:\n\t\t\t// There are 2 regex patterns here. The RegExp set notation proposal added support for nested character\n\t\t\t// classes if the `v` flag is present. Unfortunately, nested CCs are both context-free and incompatible\n\t\t\t// with the only syntax, so we have to define 2 different regex patterns.\n\t\t\t/\\//.source +\n\t\t\t'(?:' +\n\t\t\t/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}/.source +\n\t\t\t'|' +\n\t\t\t// `v` flag syntax. This supports 3 levels of nested character classes.\n\t\t\t/(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source +\n\t\t\t')' +\n\t\t\t// lookahead\n\t\t\t/(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/.source\n\t\t),\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'regex-source': {\n\t\t\t\tpattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'language-regex',\n\t\t\t\tinside: Prism.languages.regex\n\t\t\t},\n\t\t\t'regex-delimiter': /^\\/|\\/$/,\n\t\t\t'regex-flags': /^[a-z]+$/,\n\t\t}\n\t},\n\t// This must be declared before keyword because we use \"function\" inside the look-forward\n\t'function-variable': {\n\t\tpattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n\t\talias: 'function'\n\t},\n\t'parameter': [\n\t\t{\n\t\t\tpattern: /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t}\n\t],\n\t'constant': /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n});\n\nPrism.languages.insertBefore('javascript', 'string', {\n\t'hashbang': {\n\t\tpattern: /^#!.*/,\n\t\tgreedy: true,\n\t\talias: 'comment'\n\t},\n\t'template-string': {\n\t\tpattern: /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'template-punctuation': {\n\t\t\t\tpattern: /^`|`$/,\n\t\t\t\talias: 'string'\n\t\t\t},\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation-punctuation': {\n\t\t\t\t\t\tpattern: /^\\$\\{|\\}$/,\n\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t},\n\t\t\t\t\trest: Prism.languages.javascript\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t},\n\t'string-property': {\n\t\tpattern: /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m,\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\talias: 'property'\n\t}\n});\n\nPrism.languages.insertBefore('javascript', 'operator', {\n\t'literal-property': {\n\t\tpattern: /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m,\n\t\tlookbehind: true,\n\t\talias: 'property'\n\t},\n});\n\nif (Prism.languages.markup) {\n\tPrism.languages.markup.tag.addInlined('script', 'javascript');\n\n\t// add attribute support for all DOM events.\n\t// https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events\n\tPrism.languages.markup.tag.addAttribute(\n\t\t/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,\n\t\t'javascript'\n\t);\n}\n\nPrism.languages.js = Prism.languages.javascript;\n\n\n/* **********************************************\n Begin prism-file-highlight.js\n********************************************** */\n\n(function () {\n\n\tif (typeof Prism === 'undefined' || typeof document === 'undefined') {\n\t\treturn;\n\t}\n\n\t// https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\n\tif (!Element.prototype.matches) {\n\t\tElement.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n\t}\n\n\tvar LOADING_MESSAGE = 'Loading…';\n\tvar FAILURE_MESSAGE = function (status, message) {\n\t\treturn '✖ Error ' + status + ' while fetching file: ' + message;\n\t};\n\tvar FAILURE_EMPTY_MESSAGE = '✖ Error: File does not exist or is empty';\n\n\tvar EXTENSIONS = {\n\t\t'js': 'javascript',\n\t\t'py': 'python',\n\t\t'rb': 'ruby',\n\t\t'ps1': 'powershell',\n\t\t'psm1': 'powershell',\n\t\t'sh': 'bash',\n\t\t'bat': 'batch',\n\t\t'h': 'c',\n\t\t'tex': 'latex'\n\t};\n\n\tvar STATUS_ATTR = 'data-src-status';\n\tvar STATUS_LOADING = 'loading';\n\tvar STATUS_LOADED = 'loaded';\n\tvar STATUS_FAILED = 'failed';\n\n\tvar SELECTOR = 'pre[data-src]:not([' + STATUS_ATTR + '=\"' + STATUS_LOADED + '\"])'\n\t\t+ ':not([' + STATUS_ATTR + '=\"' + STATUS_LOADING + '\"])';\n\n\t/**\n\t * Loads the given file.\n\t *\n\t * @param {string} src The URL or path of the source file to load.\n\t * @param {(result: string) => void} success\n\t * @param {(reason: string) => void} error\n\t */\n\tfunction loadFile(src, success, error) {\n\t\tvar xhr = new XMLHttpRequest();\n\t\txhr.open('GET', src, true);\n\t\txhr.onreadystatechange = function () {\n\t\t\tif (xhr.readyState == 4) {\n\t\t\t\tif (xhr.status < 400 && xhr.responseText) {\n\t\t\t\t\tsuccess(xhr.responseText);\n\t\t\t\t} else {\n\t\t\t\t\tif (xhr.status >= 400) {\n\t\t\t\t\t\terror(FAILURE_MESSAGE(xhr.status, xhr.statusText));\n\t\t\t\t\t} else {\n\t\t\t\t\t\terror(FAILURE_EMPTY_MESSAGE);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\txhr.send(null);\n\t}\n\n\t/**\n\t * Parses the given range.\n\t *\n\t * This returns a range with inclusive ends.\n\t *\n\t * @param {string | null | undefined} range\n\t * @returns {[number, number | undefined] | undefined}\n\t */\n\tfunction parseRange(range) {\n\t\tvar m = /^\\s*(\\d+)\\s*(?:(,)\\s*(?:(\\d+)\\s*)?)?$/.exec(range || '');\n\t\tif (m) {\n\t\t\tvar start = Number(m[1]);\n\t\t\tvar comma = m[2];\n\t\t\tvar end = m[3];\n\n\t\t\tif (!comma) {\n\t\t\t\treturn [start, start];\n\t\t\t}\n\t\t\tif (!end) {\n\t\t\t\treturn [start, undefined];\n\t\t\t}\n\t\t\treturn [start, Number(end)];\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tPrism.hooks.add('before-highlightall', function (env) {\n\t\tenv.selector += ', ' + SELECTOR;\n\t});\n\n\tPrism.hooks.add('before-sanity-check', function (env) {\n\t\tvar pre = /** @type {HTMLPreElement} */ (env.element);\n\t\tif (pre.matches(SELECTOR)) {\n\t\t\tenv.code = ''; // fast-path the whole thing and go to complete\n\n\t\t\tpre.setAttribute(STATUS_ATTR, STATUS_LOADING); // mark as loading\n\n\t\t\t// add code element with loading message\n\t\t\tvar code = pre.appendChild(document.createElement('CODE'));\n\t\t\tcode.textContent = LOADING_MESSAGE;\n\n\t\t\tvar src = pre.getAttribute('data-src');\n\n\t\t\tvar language = env.language;\n\t\t\tif (language === 'none') {\n\t\t\t\t// the language might be 'none' because there is no language set;\n\t\t\t\t// in this case, we want to use the extension as the language\n\t\t\t\tvar extension = (/\\.(\\w+)$/.exec(src) || [, 'none'])[1];\n\t\t\t\tlanguage = EXTENSIONS[extension] || extension;\n\t\t\t}\n\n\t\t\t// set language classes\n\t\t\tPrism.util.setLanguage(code, language);\n\t\t\tPrism.util.setLanguage(pre, language);\n\n\t\t\t// preload the language\n\t\t\tvar autoloader = Prism.plugins.autoloader;\n\t\t\tif (autoloader) {\n\t\t\t\tautoloader.loadLanguages(language);\n\t\t\t}\n\n\t\t\t// load file\n\t\t\tloadFile(\n\t\t\t\tsrc,\n\t\t\t\tfunction (text) {\n\t\t\t\t\t// mark as loaded\n\t\t\t\t\tpre.setAttribute(STATUS_ATTR, STATUS_LOADED);\n\n\t\t\t\t\t// handle data-range\n\t\t\t\t\tvar range = parseRange(pre.getAttribute('data-range'));\n\t\t\t\t\tif (range) {\n\t\t\t\t\t\tvar lines = text.split(/\\r\\n?|\\n/g);\n\n\t\t\t\t\t\t// the range is one-based and inclusive on both ends\n\t\t\t\t\t\tvar start = range[0];\n\t\t\t\t\t\tvar end = range[1] == null ? lines.length : range[1];\n\n\t\t\t\t\t\tif (start < 0) { start += lines.length; }\n\t\t\t\t\t\tstart = Math.max(0, Math.min(start - 1, lines.length));\n\t\t\t\t\t\tif (end < 0) { end += lines.length; }\n\t\t\t\t\t\tend = Math.max(0, Math.min(end, lines.length));\n\n\t\t\t\t\t\ttext = lines.slice(start, end).join('\\n');\n\n\t\t\t\t\t\t// add data-start for line numbers\n\t\t\t\t\t\tif (!pre.hasAttribute('data-start')) {\n\t\t\t\t\t\t\tpre.setAttribute('data-start', String(start + 1));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// highlight code\n\t\t\t\t\tcode.textContent = text;\n\t\t\t\t\tPrism.highlightElement(code);\n\t\t\t\t},\n\t\t\t\tfunction (error) {\n\t\t\t\t\t// mark as failed\n\t\t\t\t\tpre.setAttribute(STATUS_ATTR, STATUS_FAILED);\n\n\t\t\t\t\tcode.textContent = error;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t});\n\n\tPrism.plugins.fileHighlight = {\n\t\t/**\n\t\t * Executes the File Highlight plugin for all matching `pre` elements under the given container.\n\t\t *\n\t\t * Note: Elements which are already loaded or currently loading will not be touched by this method.\n\t\t *\n\t\t * @param {ParentNode} [container=document]\n\t\t */\n\t\thighlight: function highlight(container) {\n\t\t\tvar elements = (container || document).querySelectorAll(SELECTOR);\n\n\t\t\tfor (var i = 0, element; (element = elements[i++]);) {\n\t\t\t\tPrism.highlightElement(element);\n\t\t\t}\n\t\t}\n\t};\n\n\tvar logged = false;\n\t/** @deprecated Use `Prism.plugins.fileHighlight.highlight` instead. */\n\tPrism.fileHighlight = function () {\n\t\tif (!logged) {\n\t\t\tconsole.warn('Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead.');\n\t\t\tlogged = true;\n\t\t}\n\t\tPrism.plugins.fileHighlight.highlight.apply(this, arguments);\n\t};\n\n}());\n","(function (Prism) {\n\n\t/**\n\t * Returns the placeholder for the given language id and index.\n\t *\n\t * @param {string} language\n\t * @param {string|number} index\n\t * @returns {string}\n\t */\n\tfunction getPlaceholder(language, index) {\n\t\treturn '___' + language.toUpperCase() + index + '___';\n\t}\n\n\tObject.defineProperties(Prism.languages['markup-templating'] = {}, {\n\t\tbuildPlaceholders: {\n\t\t\t/**\n\t\t\t * Tokenize all inline templating expressions matching `placeholderPattern`.\n\t\t\t *\n\t\t\t * If `replaceFilter` is provided, only matches of `placeholderPattern` for which `replaceFilter` returns\n\t\t\t * `true` will be replaced.\n\t\t\t *\n\t\t\t * @param {object} env The environment of the `before-tokenize` hook.\n\t\t\t * @param {string} language The language id.\n\t\t\t * @param {RegExp} placeholderPattern The matches of this pattern will be replaced by placeholders.\n\t\t\t * @param {(match: string) => boolean} [replaceFilter]\n\t\t\t */\n\t\t\tvalue: function (env, language, placeholderPattern, replaceFilter) {\n\t\t\t\tif (env.language !== language) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar tokenStack = env.tokenStack = [];\n\n\t\t\t\tenv.code = env.code.replace(placeholderPattern, function (match) {\n\t\t\t\t\tif (typeof replaceFilter === 'function' && !replaceFilter(match)) {\n\t\t\t\t\t\treturn match;\n\t\t\t\t\t}\n\t\t\t\t\tvar i = tokenStack.length;\n\t\t\t\t\tvar placeholder;\n\n\t\t\t\t\t// Check for existing strings\n\t\t\t\t\twhile (env.code.indexOf(placeholder = getPlaceholder(language, i)) !== -1) {\n\t\t\t\t\t\t++i;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Create a sparse array\n\t\t\t\t\ttokenStack[i] = match;\n\n\t\t\t\t\treturn placeholder;\n\t\t\t\t});\n\n\t\t\t\t// Switch the grammar to markup\n\t\t\t\tenv.grammar = Prism.languages.markup;\n\t\t\t}\n\t\t},\n\t\ttokenizePlaceholders: {\n\t\t\t/**\n\t\t\t * Replace placeholders with proper tokens after tokenizing.\n\t\t\t *\n\t\t\t * @param {object} env The environment of the `after-tokenize` hook.\n\t\t\t * @param {string} language The language id.\n\t\t\t */\n\t\t\tvalue: function (env, language) {\n\t\t\t\tif (env.language !== language || !env.tokenStack) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Switch the grammar back\n\t\t\t\tenv.grammar = Prism.languages[language];\n\n\t\t\t\tvar j = 0;\n\t\t\t\tvar keys = Object.keys(env.tokenStack);\n\n\t\t\t\tfunction walkTokens(tokens) {\n\t\t\t\t\tfor (var i = 0; i < tokens.length; i++) {\n\t\t\t\t\t\t// all placeholders are replaced already\n\t\t\t\t\t\tif (j >= keys.length) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar token = tokens[i];\n\t\t\t\t\t\tif (typeof token === 'string' || (token.content && typeof token.content === 'string')) {\n\t\t\t\t\t\t\tvar k = keys[j];\n\t\t\t\t\t\t\tvar t = env.tokenStack[k];\n\t\t\t\t\t\t\tvar s = typeof token === 'string' ? token : token.content;\n\t\t\t\t\t\t\tvar placeholder = getPlaceholder(language, k);\n\n\t\t\t\t\t\t\tvar index = s.indexOf(placeholder);\n\t\t\t\t\t\t\tif (index > -1) {\n\t\t\t\t\t\t\t\t++j;\n\n\t\t\t\t\t\t\t\tvar before = s.substring(0, index);\n\t\t\t\t\t\t\t\tvar middle = new Prism.Token(language, Prism.tokenize(t, env.grammar), 'language-' + language, t);\n\t\t\t\t\t\t\t\tvar after = s.substring(index + placeholder.length);\n\n\t\t\t\t\t\t\t\tvar replacement = [];\n\t\t\t\t\t\t\t\tif (before) {\n\t\t\t\t\t\t\t\t\treplacement.push.apply(replacement, walkTokens([before]));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treplacement.push(middle);\n\t\t\t\t\t\t\t\tif (after) {\n\t\t\t\t\t\t\t\t\treplacement.push.apply(replacement, walkTokens([after]));\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (typeof token === 'string') {\n\t\t\t\t\t\t\t\t\ttokens.splice.apply(tokens, [i, 1].concat(replacement));\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ttoken.content = replacement;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (token.content /* && typeof token.content !== 'string' */) {\n\t\t\t\t\t\t\twalkTokens(token.content);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn tokens;\n\t\t\t\t}\n\n\t\t\t\twalkTokens(env.tokens);\n\t\t\t}\n\t\t}\n\t});\n\n}(Prism));\n","Prism.languages.markup = {\n\t'comment': {\n\t\tpattern: /<!--(?:(?!<!--)[\\s\\S])*?-->/,\n\t\tgreedy: true\n\t},\n\t'prolog': {\n\t\tpattern: /<\\?[\\s\\S]+?\\?>/,\n\t\tgreedy: true\n\t},\n\t'doctype': {\n\t\t// https://www.w3.org/TR/xml/#NT-doctypedecl\n\t\tpattern: /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'internal-subset': {\n\t\t\t\tpattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: null // see below\n\t\t\t},\n\t\t\t'string': {\n\t\t\t\tpattern: /\"[^\"]*\"|'[^']*'/,\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t'punctuation': /^<!|>$|[[\\]]/,\n\t\t\t'doctype-tag': /^DOCTYPE/i,\n\t\t\t'name': /[^\\s<>'\"]+/\n\t\t}\n\t},\n\t'cdata': {\n\t\tpattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n\t\tgreedy: true\n\t},\n\t'tag': {\n\t\tpattern: /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'tag': {\n\t\t\t\tpattern: /^<\\/?[^\\s>\\/]+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /^<\\/?/,\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'special-attr': [],\n\t\t\t'attr-value': {\n\t\t\t\tpattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /^=/,\n\t\t\t\t\t\t\talias: 'attr-equals'\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /^(\\s*)[\"']|[\"']$/,\n\t\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t'punctuation': /\\/?>/,\n\t\t\t'attr-name': {\n\t\t\t\tpattern: /[^\\s>\\/]+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t},\n\t'entity': [\n\t\t{\n\t\t\tpattern: /&[\\da-z]{1,8};/i,\n\t\t\talias: 'named-entity'\n\t\t},\n\t\t/&#x?[\\da-f]{1,8};/i\n\t]\n};\n\nPrism.languages.markup['tag'].inside['attr-value'].inside['entity'] =\n\tPrism.languages.markup['entity'];\nPrism.languages.markup['doctype'].inside['internal-subset'].inside = Prism.languages.markup;\n\n// Plugin to make entity title show the real entity, idea by Roman Komarov\nPrism.hooks.add('wrap', function (env) {\n\n\tif (env.type === 'entity') {\n\t\tenv.attributes['title'] = env.content.replace(/&amp;/, '&');\n\t}\n});\n\nObject.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n\t/**\n\t * Adds an inlined language to markup.\n\t *\n\t * An example of an inlined language is CSS with `<style>` tags.\n\t *\n\t * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as\n\t * case insensitive.\n\t * @param {string} lang The language key.\n\t * @example\n\t * addInlined('style', 'css');\n\t */\n\tvalue: function addInlined(tagName, lang) {\n\t\tvar includedCdataInside = {};\n\t\tincludedCdataInside['language-' + lang] = {\n\t\t\tpattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages[lang]\n\t\t};\n\t\tincludedCdataInside['cdata'] = /^<!\\[CDATA\\[|\\]\\]>$/i;\n\n\t\tvar inside = {\n\t\t\t'included-cdata': {\n\t\t\t\tpattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n\t\t\t\tinside: includedCdataInside\n\t\t\t}\n\t\t};\n\t\tinside['language-' + lang] = {\n\t\t\tpattern: /[\\s\\S]+/,\n\t\t\tinside: Prism.languages[lang]\n\t\t};\n\n\t\tvar def = {};\n\t\tdef[tagName] = {\n\t\t\tpattern: RegExp(/(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(/__/g, function () { return tagName; }), 'i'),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: inside\n\t\t};\n\n\t\tPrism.languages.insertBefore('markup', 'cdata', def);\n\t}\n});\nObject.defineProperty(Prism.languages.markup.tag, 'addAttribute', {\n\t/**\n\t * Adds an pattern to highlight languages embedded in HTML attributes.\n\t *\n\t * An example of an inlined language is CSS with `style` attributes.\n\t *\n\t * @param {string} attrName The name of the tag that contains the inlined language. This name will be treated as\n\t * case insensitive.\n\t * @param {string} lang The language key.\n\t * @example\n\t * addAttribute('style', 'css');\n\t */\n\tvalue: function (attrName, lang) {\n\t\tPrism.languages.markup.tag.inside['special-attr'].push({\n\t\t\tpattern: RegExp(\n\t\t\t\t/(^|[\"'\\s])/.source + '(?:' + attrName + ')' + /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source,\n\t\t\t\t'i'\n\t\t\t),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'attr-name': /^[^\\s=]+/,\n\t\t\t\t'attr-value': {\n\t\t\t\t\tpattern: /=[\\s\\S]+/,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'value': {\n\t\t\t\t\t\t\tpattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/,\n\t\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\t\talias: [lang, 'language-' + lang],\n\t\t\t\t\t\t\tinside: Prism.languages[lang]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'punctuation': [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tpattern: /^=/,\n\t\t\t\t\t\t\t\talias: 'attr-equals'\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t/\"|'/\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n});\n\nPrism.languages.html = Prism.languages.markup;\nPrism.languages.mathml = Prism.languages.markup;\nPrism.languages.svg = Prism.languages.markup;\n\nPrism.languages.xml = Prism.languages.extend('markup', {});\nPrism.languages.ssml = Prism.languages.xml;\nPrism.languages.atom = Prism.languages.xml;\nPrism.languages.rss = Prism.languages.xml;\n","(function (Prism) {\n\n\tvar string = /(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/;\n\n\tPrism.languages.css = {\n\t\t'comment': /\\/\\*[\\s\\S]*?\\*\\//,\n\t\t'atrule': {\n\t\t\tpattern: RegExp('@[\\\\w-](?:' + /[^;{\\s\"']|\\s+(?!\\s)/.source + '|' + string.source + ')*?' + /(?:;|(?=\\s*\\{))/.source),\n\t\t\tinside: {\n\t\t\t\t'rule': /^@[\\w-]+/,\n\t\t\t\t'selector-function-argument': {\n\t\t\t\t\tpattern: /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'selector'\n\t\t\t\t},\n\t\t\t\t'keyword': {\n\t\t\t\t\tpattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t}\n\t\t\t\t// See rest below\n\t\t\t}\n\t\t},\n\t\t'url': {\n\t\t\t// https://drafts.csswg.org/css-values-3/#urls\n\t\t\tpattern: RegExp('\\\\burl\\\\((?:' + string.source + '|' + /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source + ')\\\\)', 'i'),\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'function': /^url/i,\n\t\t\t\t'punctuation': /^\\(|\\)$/,\n\t\t\t\t'string': {\n\t\t\t\t\tpattern: RegExp('^' + string.source + '$'),\n\t\t\t\t\talias: 'url'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'selector': {\n\t\t\tpattern: RegExp('(^|[{}\\\\s])[^{}\\\\s](?:[^{};\"\\'\\\\s]|\\\\s+(?![\\\\s{])|' + string.source + ')*(?=\\\\s*\\\\{)'),\n\t\t\tlookbehind: true\n\t\t},\n\t\t'string': {\n\t\t\tpattern: string,\n\t\t\tgreedy: true\n\t\t},\n\t\t'property': {\n\t\t\tpattern: /(^|[^-\\w\\xA0-\\uFFFF])(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'important': /!important\\b/i,\n\t\t'function': {\n\t\t\tpattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\\()/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'punctuation': /[(){};:,]/\n\t};\n\n\tPrism.languages.css['atrule'].inside.rest = Prism.languages.css;\n\n\tvar markup = Prism.languages.markup;\n\tif (markup) {\n\t\tmarkup.tag.addInlined('style', 'css');\n\t\tmarkup.tag.addAttribute('style', 'css');\n\t}\n\n}(Prism));\n","(function (Prism) {\n\n\tvar keywords = /\\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\\s*[(){}[\\]<>=%~.:,;?+\\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\\b/;\n\n\t// full package (optional) + parent classes (optional)\n\tvar classNamePrefix = /(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*/.source;\n\n\t// based on the java naming conventions\n\tvar className = {\n\t\tpattern: RegExp(/(^|[^\\w.])/.source + classNamePrefix + /[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b/.source),\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'namespace': {\n\t\t\t\tpattern: /^[a-z]\\w*(?:\\s*\\.\\s*[a-z]\\w*)*(?:\\s*\\.)?/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\./\n\t\t\t\t}\n\t\t\t},\n\t\t\t'punctuation': /\\./\n\t\t}\n\t};\n\n\tPrism.languages.java = Prism.languages.extend('clike', {\n\t\t'string': {\n\t\t\tpattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t},\n\t\t'class-name': [\n\t\t\tclassName,\n\t\t\t{\n\t\t\t\t// variables, parameters, and constructor references\n\t\t\t\t// this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n\t\t\t\tpattern: RegExp(/(^|[^\\w.])/.source + classNamePrefix + /[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)/.source),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: className.inside\n\t\t\t},\n\t\t\t{\n\t\t\t\t// class names based on keyword\n\t\t\t\t// this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n\t\t\t\tpattern: RegExp(/(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)/.source + classNamePrefix + /[A-Z]\\w*\\b/.source),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: className.inside\n\t\t\t}\n\t\t],\n\t\t'keyword': keywords,\n\t\t'function': [\n\t\t\tPrism.languages.clike.function,\n\t\t\t{\n\t\t\t\tpattern: /(::\\s*)[a-z_]\\w*/,\n\t\t\t\tlookbehind: true\n\t\t\t}\n\t\t],\n\t\t'number': /\\b0b[01][01_]*L?\\b|\\b0x(?:\\.[\\da-f_p+-]+|[\\da-f_]+(?:\\.[\\da-f_p+-]+)?)\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[dfl]?/i,\n\t\t'operator': {\n\t\t\tpattern: /(^|[^.])(?:<<=?|>>>?=?|->|--|\\+\\+|&&|\\|\\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'constant': /\\b[A-Z][A-Z_\\d]+\\b/\n\t});\n\n\tPrism.languages.insertBefore('java', 'string', {\n\t\t'triple-quoted-string': {\n\t\t\t// http://openjdk.java.net/jeps/355#Description\n\t\t\tpattern: /\"\"\"[ \\t]*[\\r\\n](?:(?:\"|\"\")?(?:\\\\.|[^\"\\\\]))*\"\"\"/,\n\t\t\tgreedy: true,\n\t\t\talias: 'string'\n\t\t},\n\t\t'char': {\n\t\t\tpattern: /'(?:\\\\.|[^'\\\\\\r\\n]){1,6}'/,\n\t\t\tgreedy: true\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('java', 'class-name', {\n\t\t'annotation': {\n\t\t\tpattern: /(^|[^.])@\\w+(?:\\s*\\.\\s*\\w+)*/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'generics': {\n\t\t\tpattern: /<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&))*>)*>)*>)*>/,\n\t\t\tinside: {\n\t\t\t\t'class-name': className,\n\t\t\t\t'keyword': keywords,\n\t\t\t\t'punctuation': /[<>(),.:]/,\n\t\t\t\t'operator': /[?&|]/\n\t\t\t}\n\t\t},\n\t\t'import': [\n\t\t\t{\n\t\t\t\tpattern: RegExp(/(\\bimport\\s+)/.source + classNamePrefix + /(?:[A-Z]\\w*|\\*)(?=\\s*;)/.source),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'namespace': className.inside.namespace,\n\t\t\t\t\t'punctuation': /\\./,\n\t\t\t\t\t'operator': /\\*/,\n\t\t\t\t\t'class-name': /\\w+/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: RegExp(/(\\bimport\\s+static\\s+)/.source + classNamePrefix + /(?:\\w+|\\*)(?=\\s*;)/.source),\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'static',\n\t\t\t\tinside: {\n\t\t\t\t\t'namespace': className.inside.namespace,\n\t\t\t\t\t'static': /\\b\\w+$/,\n\t\t\t\t\t'punctuation': /\\./,\n\t\t\t\t\t'operator': /\\*/,\n\t\t\t\t\t'class-name': /\\w+/\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\t'namespace': {\n\t\t\tpattern: RegExp(\n\t\t\t\t/(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!<keyword>)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?/\n\t\t\t\t\t.source.replace(/<keyword>/g, function () { return keywords.source; })),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /\\./,\n\t\t\t}\n\t\t}\n\t});\n}(Prism));\n","(function (Prism) {\n\t// $ set | grep '^[A-Z][^[:space:]]*=' | cut -d= -f1 | tr '\\n' '|'\n\t// + LC_ALL, RANDOM, REPLY, SECONDS.\n\t// + make sure PS1..4 are here as they are not always set,\n\t// - some useless things.\n\tvar envVars = '\\\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\\\b';\n\n\tvar commandAfterHeredoc = {\n\t\tpattern: /(^([\"']?)\\w+\\2)[ \\t]+\\S.*/,\n\t\tlookbehind: true,\n\t\talias: 'punctuation', // this looks reasonably well in all themes\n\t\tinside: null // see below\n\t};\n\n\tvar insideString = {\n\t\t'bash': commandAfterHeredoc,\n\t\t'environment': {\n\t\t\tpattern: RegExp('\\\\$' + envVars),\n\t\t\talias: 'constant'\n\t\t},\n\t\t'variable': [\n\t\t\t// [0]: Arithmetic Environment\n\t\t\t{\n\t\t\t\tpattern: /\\$?\\(\\([\\s\\S]+?\\)\\)/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t// If there is a $ sign at the beginning highlight $(( and )) as variable\n\t\t\t\t\t'variable': [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /(^\\$\\(\\([\\s\\S]+)\\)\\)/,\n\t\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t\t},\n\t\t\t\t\t\t/^\\$\\(\\(/\n\t\t\t\t\t],\n\t\t\t\t\t'number': /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n\t\t\t\t\t// Operators according to https://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic\n\t\t\t\t\t'operator': /--|\\+\\+|\\*\\*=?|<<=?|>>=?|&&|\\|\\||[=!+\\-*/%<>^&|]=?|[?~:]/,\n\t\t\t\t\t// If there is no $ sign at the beginning highlight (( and )) as punctuation\n\t\t\t\t\t'punctuation': /\\(\\(?|\\)\\)?|,|;/\n\t\t\t\t}\n\t\t\t},\n\t\t\t// [1]: Command Substitution\n\t\t\t{\n\t\t\t\tpattern: /\\$\\((?:\\([^)]+\\)|[^()])+\\)|`[^`]+`/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'variable': /^\\$\\(|^`|\\)$|`$/\n\t\t\t\t}\n\t\t\t},\n\t\t\t// [2]: Brace expansion\n\t\t\t{\n\t\t\t\tpattern: /\\$\\{[^}]+\\}/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'operator': /:[-=?+]?|[!\\/]|##?|%%?|\\^\\^?|,,?/,\n\t\t\t\t\t'punctuation': /[\\[\\]]/,\n\t\t\t\t\t'environment': {\n\t\t\t\t\t\tpattern: RegExp('(\\\\{)' + envVars),\n\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\talias: 'constant'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t/\\$(?:\\w+|[#?*!@$])/\n\t\t],\n\t\t// Escape sequences from echo and printf's manuals, and escaped quotes.\n\t\t'entity': /\\\\(?:[abceEfnrtv\\\\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/\n\t};\n\n\tPrism.languages.bash = {\n\t\t'shebang': {\n\t\t\tpattern: /^#!\\s*\\/.*/,\n\t\t\talias: 'important'\n\t\t},\n\t\t'comment': {\n\t\t\tpattern: /(^|[^\"{\\\\$])#.*/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'function-name': [\n\t\t\t// a) function foo {\n\t\t\t// b) foo() {\n\t\t\t// c) function foo() {\n\t\t\t// but not “foo {”\n\t\t\t{\n\t\t\t\t// a) and c)\n\t\t\t\tpattern: /(\\bfunction\\s+)[\\w-]+(?=(?:\\s*\\(?:\\s*\\))?\\s*\\{)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'function'\n\t\t\t},\n\t\t\t{\n\t\t\t\t// b)\n\t\t\t\tpattern: /\\b[\\w-]+(?=\\s*\\(\\s*\\)\\s*\\{)/,\n\t\t\t\talias: 'function'\n\t\t\t}\n\t\t],\n\t\t// Highlight variable names as variables in for and select beginnings.\n\t\t'for-or-select': {\n\t\t\tpattern: /(\\b(?:for|select)\\s+)\\w+(?=\\s+in\\s)/,\n\t\t\talias: 'variable',\n\t\t\tlookbehind: true\n\t\t},\n\t\t// Highlight variable names as variables in the left-hand part\n\t\t// of assignments (“=” and “+=”).\n\t\t'assign-left': {\n\t\t\tpattern: /(^|[\\s;|&]|[<>]\\()\\w+(?:\\.\\w+)*(?=\\+?=)/,\n\t\t\tinside: {\n\t\t\t\t'environment': {\n\t\t\t\t\tpattern: RegExp('(^|[\\\\s;|&]|[<>]\\\\()' + envVars),\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'constant'\n\t\t\t\t}\n\t\t\t},\n\t\t\talias: 'variable',\n\t\t\tlookbehind: true\n\t\t},\n\t\t// Highlight parameter names as variables\n\t\t'parameter': {\n\t\t\tpattern: /(^|\\s)-{1,2}(?:\\w+:[+-]?)?\\w+(?:\\.\\w+)*(?=[=\\s]|$)/,\n\t\t\talias: 'variable',\n\t\t\tlookbehind: true\n\t\t},\n\t\t'string': [\n\t\t\t// Support for Here-documents https://en.wikipedia.org/wiki/Here_document\n\t\t\t{\n\t\t\t\tpattern: /((?:^|[^<])<<-?\\s*)(\\w+)\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\2/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: insideString\n\t\t\t},\n\t\t\t// Here-document with quotes around the tag\n\t\t\t// → No expansion (so no “inside”).\n\t\t\t{\n\t\t\t\tpattern: /((?:^|[^<])<<-?\\s*)([\"'])(\\w+)\\2\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\3/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'bash': commandAfterHeredoc\n\t\t\t\t}\n\t\t\t},\n\t\t\t// “Normal” string\n\t\t\t{\n\t\t\t\t// https://www.gnu.org/software/bash/manual/html_node/Double-Quotes.html\n\t\t\t\tpattern: /(^|[^\\\\](?:\\\\\\\\)*)\"(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|[^\"\\\\`$])*\"/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: insideString\n\t\t\t},\n\t\t\t{\n\t\t\t\t// https://www.gnu.org/software/bash/manual/html_node/Single-Quotes.html\n\t\t\t\tpattern: /(^|[^$\\\\])'[^']*'/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t{\n\t\t\t\t// https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html\n\t\t\t\tpattern: /\\$'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'entity': insideString.entity\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\t'environment': {\n\t\t\tpattern: RegExp('\\\\$?' + envVars),\n\t\t\talias: 'constant'\n\t\t},\n\t\t'variable': insideString.variable,\n\t\t'function': {\n\t\t\tpattern: /(^|[\\s;|&]|[<>]\\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\\s;|&])/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'keyword': {\n\t\t\tpattern: /(^|[\\s;|&]|[<>]\\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\\s;|&])/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t// https://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n\t\t'builtin': {\n\t\t\tpattern: /(^|[\\s;|&]|[<>]\\()(?:\\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\\s;|&])/,\n\t\t\tlookbehind: true,\n\t\t\t// Alias added to make those easier to distinguish from strings.\n\t\t\talias: 'class-name'\n\t\t},\n\t\t'boolean': {\n\t\t\tpattern: /(^|[\\s;|&]|[<>]\\()(?:false|true)(?=$|[)\\s;|&])/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'file-descriptor': {\n\t\t\tpattern: /\\B&\\d\\b/,\n\t\t\talias: 'important'\n\t\t},\n\t\t'operator': {\n\t\t\t// Lots of redirections here, but not just that.\n\t\t\tpattern: /\\d?<>|>\\||\\+=|=[=~]?|!=?|<<[<-]?|[&\\d]?>>|\\d[<>]&?|[<>][&=]?|&[>&]?|\\|[&|]?/,\n\t\t\tinside: {\n\t\t\t\t'file-descriptor': {\n\t\t\t\t\tpattern: /^\\d/,\n\t\t\t\t\talias: 'important'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'punctuation': /\\$?\\(\\(?|\\)\\)?|\\.\\.|[{}[\\];\\\\]/,\n\t\t'number': {\n\t\t\tpattern: /(^|\\s)(?:[1-9]\\d*|0)(?:[.,]\\d+)?\\b/,\n\t\t\tlookbehind: true\n\t\t}\n\t};\n\n\tcommandAfterHeredoc.inside = Prism.languages.bash;\n\n\t/* Patterns in command substitution. */\n\tvar toBeCopied = [\n\t\t'comment',\n\t\t'function-name',\n\t\t'for-or-select',\n\t\t'assign-left',\n\t\t'parameter',\n\t\t'string',\n\t\t'environment',\n\t\t'function',\n\t\t'keyword',\n\t\t'builtin',\n\t\t'boolean',\n\t\t'file-descriptor',\n\t\t'operator',\n\t\t'punctuation',\n\t\t'number'\n\t];\n\tvar inside = insideString.variable[1].inside;\n\tfor (var i = 0; i < toBeCopied.length; i++) {\n\t\tinside[toBeCopied[i]] = Prism.languages.bash[toBeCopied[i]];\n\t}\n\n\tPrism.languages.sh = Prism.languages.bash;\n\tPrism.languages.shell = Prism.languages.bash;\n}(Prism));\n","Prism.languages.go = Prism.languages.extend('clike', {\n\t'string': {\n\t\tpattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|`[^`]*`/,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t'keyword': /\\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\\b/,\n\t'boolean': /\\b(?:_|false|iota|nil|true)\\b/,\n\t'number': [\n\t\t// binary and octal integers\n\t\t/\\b0(?:b[01_]+|o[0-7_]+)i?\\b/i,\n\t\t// hexadecimal integers and floats\n\t\t/\\b0x(?:[a-f\\d_]+(?:\\.[a-f\\d_]*)?|\\.[a-f\\d_]+)(?:p[+-]?\\d+(?:_\\d+)*)?i?(?!\\w)/i,\n\t\t// decimal integers and floats\n\t\t/(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?[\\d_]+)?i?(?!\\w)/i\n\t],\n\t'operator': /[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\./,\n\t'builtin': /\\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\\b/\n});\n\nPrism.languages.insertBefore('go', 'string', {\n\t'char': {\n\t\tpattern: /'(?:\\\\.|[^'\\\\\\r\\n]){0,10}'/,\n\t\tgreedy: true\n\t}\n});\n\ndelete Prism.languages.go['class-name'];\n","Prism.languages.c = Prism.languages.extend('clike', {\n\t'comment': {\n\t\tpattern: /\\/\\/(?:[^\\r\\n\\\\]|\\\\(?:\\r\\n?|\\n|(?![\\r\\n])))*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t\tgreedy: true\n\t},\n\t'string': {\n\t\t// https://en.cppreference.com/w/c/language/string_literal\n\t\tpattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n\t\tgreedy: true\n\t},\n\t'class-name': {\n\t\tpattern: /(\\b(?:enum|struct)\\s+(?:__attribute__\\s*\\(\\([\\s\\S]*?\\)\\)\\s*)?)\\w+|\\b[a-z]\\w*_t\\b/,\n\t\tlookbehind: true\n\t},\n\t'keyword': /\\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b/,\n\t'function': /\\b[a-z_]\\w*(?=\\s*\\()/i,\n\t'number': /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ful]{0,4}/i,\n\t'operator': />>=?|<<=?|->|([-+&|:])\\1|[?:~]|[-+*/%&|^!=<>]=?/\n});\n\nPrism.languages.insertBefore('c', 'string', {\n\t'char': {\n\t\t// https://en.cppreference.com/w/c/language/character_constant\n\t\tpattern: /'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n]){0,32}'/,\n\t\tgreedy: true\n\t}\n});\n\nPrism.languages.insertBefore('c', 'string', {\n\t'macro': {\n\t\t// allow for multiline macro definitions\n\t\t// spaces after the # character compile fine with gcc\n\t\tpattern: /(^[\\t ]*)#\\s*[a-z](?:[^\\r\\n\\\\/]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\\\\(?:\\r\\n|[\\s\\S]))*/im,\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\talias: 'property',\n\t\tinside: {\n\t\t\t'string': [\n\t\t\t\t{\n\t\t\t\t\t// highlight the path of the include statement as a string\n\t\t\t\t\tpattern: /^(#\\s*include\\s*)<[^>]+>/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\tPrism.languages.c['string']\n\t\t\t],\n\t\t\t'char': Prism.languages.c['char'],\n\t\t\t'comment': Prism.languages.c['comment'],\n\t\t\t'macro-name': [\n\t\t\t\t{\n\t\t\t\t\tpattern: /(^#\\s*define\\s+)\\w+\\b(?!\\()/i,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpattern: /(^#\\s*define\\s+)\\w+\\b(?=\\()/i,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'function'\n\t\t\t\t}\n\t\t\t],\n\t\t\t// highlight macro directives as keywords\n\t\t\t'directive': {\n\t\t\t\tpattern: /^(#\\s*)[a-z]+/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'keyword'\n\t\t\t},\n\t\t\t'directive-hash': /^#/,\n\t\t\t'punctuation': /##|\\\\(?=[\\r\\n])/,\n\t\t\t'expression': {\n\t\t\t\tpattern: /\\S[\\s\\S]*/,\n\t\t\t\tinside: Prism.languages.c\n\t\t\t}\n\t\t}\n\t}\n});\n\nPrism.languages.insertBefore('c', 'function', {\n\t// highlight predefined macros as constants\n\t'constant': /\\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\\b/\n});\n\ndelete Prism.languages.c['boolean'];\n","(function (Prism) {\n\n\tvar keyword = /\\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\\b/;\n\tvar modName = /\\b(?!<keyword>)\\w+(?:\\s*\\.\\s*\\w+)*\\b/.source.replace(/<keyword>/g, function () { return keyword.source; });\n\n\tPrism.languages.cpp = Prism.languages.extend('c', {\n\t\t'class-name': [\n\t\t\t{\n\t\t\t\tpattern: RegExp(/(\\b(?:class|concept|enum|struct|typename)\\s+)(?!<keyword>)\\w+/.source\n\t\t\t\t\t.replace(/<keyword>/g, function () { return keyword.source; })),\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t// This is intended to capture the class name of method implementations like:\n\t\t\t// void foo::bar() const {}\n\t\t\t// However! The `foo` in the above example could also be a namespace, so we only capture the class name if\n\t\t\t// it starts with an uppercase letter. This approximation should give decent results.\n\t\t\t/\\b[A-Z]\\w*(?=\\s*::\\s*\\w+\\s*\\()/,\n\t\t\t// This will capture the class name before destructors like:\n\t\t\t// Foo::~Foo() {}\n\t\t\t/\\b[A-Z_]\\w*(?=\\s*::\\s*~\\w+\\s*\\()/i,\n\t\t\t// This also intends to capture the class name of method implementations but here the class has template\n\t\t\t// parameters, so it can't be a namespace (until C++ adds generic namespaces).\n\t\t\t/\\b\\w+(?=\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\\s*::\\s*\\w+\\s*\\()/\n\t\t],\n\t\t'keyword': keyword,\n\t\t'number': {\n\t\t\tpattern: /(?:\\b0b[01']+|\\b0x(?:[\\da-f']+(?:\\.[\\da-f']*)?|\\.[\\da-f']+)(?:p[+-]?[\\d']+)?|(?:\\b[\\d']+(?:\\.[\\d']*)?|\\B\\.[\\d']+)(?:e[+-]?[\\d']+)?)[ful]{0,4}/i,\n\t\t\tgreedy: true\n\t\t},\n\t\t'operator': />>=?|<<=?|->|--|\\+\\+|&&|\\|\\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\\b/,\n\t\t'boolean': /\\b(?:false|true)\\b/\n\t});\n\n\tPrism.languages.insertBefore('cpp', 'string', {\n\t\t'module': {\n\t\t\t// https://en.cppreference.com/w/cpp/language/modules\n\t\t\tpattern: RegExp(\n\t\t\t\t/(\\b(?:import|module)\\s+)/.source +\n\t\t\t\t'(?:' +\n\t\t\t\t// header-name\n\t\t\t\t/\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|<[^<>\\r\\n]*>/.source +\n\t\t\t\t'|' +\n\t\t\t\t// module name or partition or both\n\t\t\t\t/<mod-name>(?:\\s*:\\s*<mod-name>)?|:\\s*<mod-name>/.source.replace(/<mod-name>/g, function () { return modName; }) +\n\t\t\t\t')'\n\t\t\t),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'string': /^[<\"][\\s\\S]+/,\n\t\t\t\t'operator': /:/,\n\t\t\t\t'punctuation': /\\./\n\t\t\t}\n\t\t},\n\t\t'raw-string': {\n\t\t\tpattern: /R\"([^()\\\\ ]{0,16})\\([\\s\\S]*?\\)\\1\"/,\n\t\t\talias: 'string',\n\t\t\tgreedy: true\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('cpp', 'keyword', {\n\t\t'generic-function': {\n\t\t\tpattern: /\\b(?!operator\\b)[a-z_]\\w*\\s*<(?:[^<>]|<[^<>]*>)*>(?=\\s*\\()/i,\n\t\t\tinside: {\n\t\t\t\t'function': /^\\w+/,\n\t\t\t\t'generic': {\n\t\t\t\t\tpattern: /<[\\s\\S]+/,\n\t\t\t\t\talias: 'class-name',\n\t\t\t\t\tinside: Prism.languages.cpp\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('cpp', 'operator', {\n\t\t'double-colon': {\n\t\t\tpattern: /::/,\n\t\t\talias: 'punctuation'\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('cpp', 'class-name', {\n\t\t// the base clause is an optional list of parent classes\n\t\t// https://en.cppreference.com/w/cpp/language/class\n\t\t'base-clause': {\n\t\t\tpattern: /(\\b(?:class|struct)\\s+\\w+\\s*:\\s*)[^;{}\"'\\s]+(?:\\s+[^;{}\"'\\s]+)*(?=\\s*[;{])/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: Prism.languages.extend('cpp', {})\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('inside', 'double-colon', {\n\t\t// All untokenized words that are not namespaces should be class names\n\t\t'class-name': /\\b[a-z_]\\w*\\b(?!\\s*::)/i\n\t}, Prism.languages.cpp['base-clause']);\n\n}(Prism));\n","(function (Prism) {\n\n\t/**\n\t * Replaces all placeholders \"<<n>>\" of given pattern with the n-th replacement (zero based).\n\t *\n\t * Note: This is a simple text based replacement. Be careful when using backreferences!\n\t *\n\t * @param {string} pattern the given pattern.\n\t * @param {string[]} replacements a list of replacement which can be inserted into the given pattern.\n\t * @returns {string} the pattern with all placeholders replaced with their corresponding replacements.\n\t * @example replace(/a<<0>>a/.source, [/b+/.source]) === /a(?:b+)a/.source\n\t */\n\tfunction replace(pattern, replacements) {\n\t\treturn pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n\t\t\treturn '(?:' + replacements[+index] + ')';\n\t\t});\n\t}\n\t/**\n\t * @param {string} pattern\n\t * @param {string[]} replacements\n\t * @param {string} [flags]\n\t * @returns {RegExp}\n\t */\n\tfunction re(pattern, replacements, flags) {\n\t\treturn RegExp(replace(pattern, replacements), flags || '');\n\t}\n\n\t/**\n\t * Creates a nested pattern where all occurrences of the string `<<self>>` are replaced with the pattern itself.\n\t *\n\t * @param {string} pattern\n\t * @param {number} depthLog2\n\t * @returns {string}\n\t */\n\tfunction nested(pattern, depthLog2) {\n\t\tfor (var i = 0; i < depthLog2; i++) {\n\t\t\tpattern = pattern.replace(/<<self>>/g, function () { return '(?:' + pattern + ')'; });\n\t\t}\n\t\treturn pattern.replace(/<<self>>/g, '[^\\\\s\\\\S]');\n\t}\n\n\t// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/\n\tvar keywordKinds = {\n\t\t// keywords which represent a return or variable type\n\t\ttype: 'bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void',\n\t\t// keywords which are used to declare a type\n\t\ttypeDeclaration: 'class enum interface record struct',\n\t\t// contextual keywords\n\t\t// (\"var\" and \"dynamic\" are missing because they are used like types)\n\t\tcontextual: 'add alias and ascending async await by descending from(?=\\\\s*(?:\\\\w|$)) get global group into init(?=\\\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\\\s*{)',\n\t\t// all other keywords\n\t\tother: 'abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield'\n\t};\n\n\t// keywords\n\tfunction keywordsToPattern(words) {\n\t\treturn '\\\\b(?:' + words.trim().replace(/ /g, '|') + ')\\\\b';\n\t}\n\tvar typeDeclarationKeywords = keywordsToPattern(keywordKinds.typeDeclaration);\n\tvar keywords = RegExp(keywordsToPattern(keywordKinds.type + ' ' + keywordKinds.typeDeclaration + ' ' + keywordKinds.contextual + ' ' + keywordKinds.other));\n\tvar nonTypeKeywords = keywordsToPattern(keywordKinds.typeDeclaration + ' ' + keywordKinds.contextual + ' ' + keywordKinds.other);\n\tvar nonContextualKeywords = keywordsToPattern(keywordKinds.type + ' ' + keywordKinds.typeDeclaration + ' ' + keywordKinds.other);\n\n\t// types\n\tvar generic = nested(/<(?:[^<>;=+\\-*/%&|^]|<<self>>)*>/.source, 2); // the idea behind the other forbidden characters is to prevent false positives. Same for tupleElement.\n\tvar nestedRound = nested(/\\((?:[^()]|<<self>>)*\\)/.source, 2);\n\tvar name = /@?\\b[A-Za-z_]\\w*\\b/.source;\n\tvar genericName = replace(/<<0>>(?:\\s*<<1>>)?/.source, [name, generic]);\n\tvar identifier = replace(/(?!<<0>>)<<1>>(?:\\s*\\.\\s*<<1>>)*/.source, [nonTypeKeywords, genericName]);\n\tvar array = /\\[\\s*(?:,\\s*)*\\]/.source;\n\tvar typeExpressionWithoutTuple = replace(/<<0>>(?:\\s*(?:\\?\\s*)?<<1>>)*(?:\\s*\\?)?/.source, [identifier, array]);\n\tvar tupleElement = replace(/[^,()<>[\\];=+\\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source, [generic, nestedRound, array]);\n\tvar tuple = replace(/\\(<<0>>+(?:,<<0>>+)+\\)/.source, [tupleElement]);\n\tvar typeExpression = replace(/(?:<<0>>|<<1>>)(?:\\s*(?:\\?\\s*)?<<2>>)*(?:\\s*\\?)?/.source, [tuple, identifier, array]);\n\n\tvar typeInside = {\n\t\t'keyword': keywords,\n\t\t'punctuation': /[<>()?,.:[\\]]/\n\t};\n\n\t// strings & characters\n\t// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#character-literals\n\t// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#string-literals\n\tvar character = /'(?:[^\\r\\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'/.source; // simplified pattern\n\tvar regularString = /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/.source;\n\tvar verbatimString = /@\"(?:\"\"|\\\\[\\s\\S]|[^\\\\\"])*\"(?!\")/.source;\n\n\n\tPrism.languages.csharp = Prism.languages.extend('clike', {\n\t\t'string': [\n\t\t\t{\n\t\t\t\tpattern: re(/(^|[^$\\\\])<<0>>/.source, [verbatimString]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: re(/(^|[^@$\\\\])<<0>>/.source, [regularString]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true\n\t\t\t}\n\t\t],\n\t\t'class-name': [\n\t\t\t{\n\t\t\t\t// Using static\n\t\t\t\t// using static System.Math;\n\t\t\t\tpattern: re(/(\\busing\\s+static\\s+)<<0>>(?=\\s*;)/.source, [identifier]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: typeInside\n\t\t\t},\n\t\t\t{\n\t\t\t\t// Using alias (type)\n\t\t\t\t// using Project = PC.MyCompany.Project;\n\t\t\t\tpattern: re(/(\\busing\\s+<<0>>\\s*=\\s*)<<1>>(?=\\s*;)/.source, [name, typeExpression]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: typeInside\n\t\t\t},\n\t\t\t{\n\t\t\t\t// Using alias (alias)\n\t\t\t\t// using Project = PC.MyCompany.Project;\n\t\t\t\tpattern: re(/(\\busing\\s+)<<0>>(?=\\s*=)/.source, [name]),\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\t// Type declarations\n\t\t\t\t// class Foo<A, B>\n\t\t\t\t// interface Foo<out A, B>\n\t\t\t\tpattern: re(/(\\b<<0>>\\s+)<<1>>/.source, [typeDeclarationKeywords, genericName]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: typeInside\n\t\t\t},\n\t\t\t{\n\t\t\t\t// Single catch exception declaration\n\t\t\t\t// catch(Foo)\n\t\t\t\t// (things like catch(Foo e) is covered by variable declaration)\n\t\t\t\tpattern: re(/(\\bcatch\\s*\\(\\s*)<<0>>/.source, [identifier]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: typeInside\n\t\t\t},\n\t\t\t{\n\t\t\t\t// Name of the type parameter of generic constraints\n\t\t\t\t// where Foo : class\n\t\t\t\tpattern: re(/(\\bwhere\\s+)<<0>>/.source, [name]),\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\t// Casts and checks via as and is.\n\t\t\t\t// as Foo<A>, is Bar<B>\n\t\t\t\t// (things like if(a is Foo b) is covered by variable declaration)\n\t\t\t\tpattern: re(/(\\b(?:is(?:\\s+not)?|as)\\s+)<<0>>/.source, [typeExpressionWithoutTuple]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: typeInside\n\t\t\t},\n\t\t\t{\n\t\t\t\t// Variable, field and parameter declaration\n\t\t\t\t// (Foo bar, Bar baz, Foo[,,] bay, Foo<Bar, FooBar<Bar>> bax)\n\t\t\t\tpattern: re(/\\b<<0>>(?=\\s+(?!<<1>>|with\\s*\\{)<<2>>(?:\\s*[=,;:{)\\]]|\\s+(?:in|when)\\b))/.source, [typeExpression, nonContextualKeywords, name]),\n\t\t\t\tinside: typeInside\n\t\t\t}\n\t\t],\n\t\t'keyword': keywords,\n\t\t// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#literals\n\t\t'number': /(?:\\b0(?:x[\\da-f_]*[\\da-f]|b[01_]*[01])|(?:\\B\\.\\d+(?:_+\\d+)*|\\b\\d+(?:_+\\d+)*(?:\\.\\d+(?:_+\\d+)*)?)(?:e[-+]?\\d+(?:_+\\d+)*)?)(?:[dflmu]|lu|ul)?\\b/i,\n\t\t'operator': />>=?|<<=?|[-=]>|([-+&|])\\1|~|\\?\\?=?|[-+*/%&|^!=<>]=?/,\n\t\t'punctuation': /\\?\\.?|::|[{}[\\];(),.:]/\n\t});\n\n\tPrism.languages.insertBefore('csharp', 'number', {\n\t\t'range': {\n\t\t\tpattern: /\\.\\./,\n\t\t\talias: 'operator'\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('csharp', 'punctuation', {\n\t\t'named-parameter': {\n\t\t\tpattern: re(/([(,]\\s*)<<0>>(?=\\s*:)/.source, [name]),\n\t\t\tlookbehind: true,\n\t\t\talias: 'punctuation'\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('csharp', 'class-name', {\n\t\t'namespace': {\n\t\t\t// namespace Foo.Bar {}\n\t\t\t// using Foo.Bar;\n\t\t\tpattern: re(/(\\b(?:namespace|using)\\s+)<<0>>(?:\\s*\\.\\s*<<0>>)*(?=\\s*[;{])/.source, [name]),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /\\./\n\t\t\t}\n\t\t},\n\t\t'type-expression': {\n\t\t\t// default(Foo), typeof(Foo<Bar>), sizeof(int)\n\t\t\tpattern: re(/(\\b(?:default|sizeof|typeof)\\s*\\(\\s*(?!\\s))(?:[^()\\s]|\\s(?!\\s)|<<0>>)*(?=\\s*\\))/.source, [nestedRound]),\n\t\t\tlookbehind: true,\n\t\t\talias: 'class-name',\n\t\t\tinside: typeInside\n\t\t},\n\t\t'return-type': {\n\t\t\t// Foo<Bar> ForBar(); Foo IFoo.Bar() => 0\n\t\t\t// int this[int index] => 0; T IReadOnlyList<T>.this[int index] => this[index];\n\t\t\t// int Foo => 0; int Foo { get; set } = 0;\n\t\t\tpattern: re(/<<0>>(?=\\s+(?:<<1>>\\s*(?:=>|[({]|\\.\\s*this\\s*\\[)|this\\s*\\[))/.source, [typeExpression, identifier]),\n\t\t\tinside: typeInside,\n\t\t\talias: 'class-name'\n\t\t},\n\t\t'constructor-invocation': {\n\t\t\t// new List<Foo<Bar[]>> { }\n\t\t\tpattern: re(/(\\bnew\\s+)<<0>>(?=\\s*[[({])/.source, [typeExpression]),\n\t\t\tlookbehind: true,\n\t\t\tinside: typeInside,\n\t\t\talias: 'class-name'\n\t\t},\n\t\t/*'explicit-implementation': {\n\t\t\t// int IFoo<Foo>.Bar => 0; void IFoo<Foo<Foo>>.Foo<T>();\n\t\t\tpattern: replace(/\\b<<0>>(?=\\.<<1>>)/, className, methodOrPropertyDeclaration),\n\t\t\tinside: classNameInside,\n\t\t\talias: 'class-name'\n\t\t},*/\n\t\t'generic-method': {\n\t\t\t// foo<Bar>()\n\t\t\tpattern: re(/<<0>>\\s*<<1>>(?=\\s*\\()/.source, [name, generic]),\n\t\t\tinside: {\n\t\t\t\t'function': re(/^<<0>>/.source, [name]),\n\t\t\t\t'generic': {\n\t\t\t\t\tpattern: RegExp(generic),\n\t\t\t\t\talias: 'class-name',\n\t\t\t\t\tinside: typeInside\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'type-list': {\n\t\t\t// The list of types inherited or of generic constraints\n\t\t\t// class Foo<F> : Bar, IList<FooBar>\n\t\t\t// where F : Bar, IList<int>\n\t\t\tpattern: re(\n\t\t\t\t/\\b((?:<<0>>\\s+<<1>>|record\\s+<<1>>\\s*<<5>>|where\\s+<<2>>)\\s*:\\s*)(?:<<3>>|<<4>>|<<1>>\\s*<<5>>|<<6>>)(?:\\s*,\\s*(?:<<3>>|<<4>>|<<6>>))*(?=\\s*(?:where|[{;]|=>|$))/.source,\n\t\t\t\t[typeDeclarationKeywords, genericName, name, typeExpression, keywords.source, nestedRound, /\\bnew\\s*\\(\\s*\\)/.source]\n\t\t\t),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'record-arguments': {\n\t\t\t\t\tpattern: re(/(^(?!new\\s*\\()<<0>>\\s*)<<1>>/.source, [genericName, nestedRound]),\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tgreedy: true,\n\t\t\t\t\tinside: Prism.languages.csharp\n\t\t\t\t},\n\t\t\t\t'keyword': keywords,\n\t\t\t\t'class-name': {\n\t\t\t\t\tpattern: RegExp(typeExpression),\n\t\t\t\t\tgreedy: true,\n\t\t\t\t\tinside: typeInside\n\t\t\t\t},\n\t\t\t\t'punctuation': /[,()]/\n\t\t\t}\n\t\t},\n\t\t'preprocessor': {\n\t\t\tpattern: /(^[\\t ]*)#.*/m,\n\t\t\tlookbehind: true,\n\t\t\talias: 'property',\n\t\t\tinside: {\n\t\t\t\t// highlight preprocessor directives as keywords\n\t\t\t\t'directive': {\n\t\t\t\t\tpattern: /(#)\\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\\b/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'keyword'\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\t// attributes\n\tvar regularStringOrCharacter = regularString + '|' + character;\n\tvar regularStringCharacterOrComment = replace(/\\/(?![*/])|\\/\\/[^\\r\\n]*[\\r\\n]|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>/.source, [regularStringOrCharacter]);\n\tvar roundExpression = nested(replace(/[^\"'/()]|<<0>>|\\(<<self>>*\\)/.source, [regularStringCharacterOrComment]), 2);\n\n\t// https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/#attribute-targets\n\tvar attrTarget = /\\b(?:assembly|event|field|method|module|param|property|return|type)\\b/.source;\n\tvar attr = replace(/<<0>>(?:\\s*\\(<<1>>*\\))?/.source, [identifier, roundExpression]);\n\n\tPrism.languages.insertBefore('csharp', 'class-name', {\n\t\t'attribute': {\n\t\t\t// Attributes\n\t\t\t// [Foo], [Foo(1), Bar(2, Prop = \"foo\")], [return: Foo(1), Bar(2)], [assembly: Foo(Bar)]\n\t\t\tpattern: re(/((?:^|[^\\s\\w>)?])\\s*\\[\\s*)(?:<<0>>\\s*:\\s*)?<<1>>(?:\\s*,\\s*<<1>>)*(?=\\s*\\])/.source, [attrTarget, attr]),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'target': {\n\t\t\t\t\tpattern: re(/^<<0>>(?=\\s*:)/.source, [attrTarget]),\n\t\t\t\t\talias: 'keyword'\n\t\t\t\t},\n\t\t\t\t'attribute-arguments': {\n\t\t\t\t\tpattern: re(/\\(<<0>>*\\)/.source, [roundExpression]),\n\t\t\t\t\tinside: Prism.languages.csharp\n\t\t\t\t},\n\t\t\t\t'class-name': {\n\t\t\t\t\tpattern: RegExp(identifier),\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'punctuation': /\\./\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'punctuation': /[:,]/\n\t\t\t}\n\t\t}\n\t});\n\n\n\t// string interpolation\n\tvar formatString = /:[^}\\r\\n]+/.source;\n\t// multi line\n\tvar mInterpolationRound = nested(replace(/[^\"'/()]|<<0>>|\\(<<self>>*\\)/.source, [regularStringCharacterOrComment]), 2);\n\tvar mInterpolation = replace(/\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}/.source, [mInterpolationRound, formatString]);\n\t// single line\n\tvar sInterpolationRound = nested(replace(/[^\"'/()]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>|\\(<<self>>*\\)/.source, [regularStringOrCharacter]), 2);\n\tvar sInterpolation = replace(/\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}/.source, [sInterpolationRound, formatString]);\n\n\tfunction createInterpolationInside(interpolation, interpolationRound) {\n\t\treturn {\n\t\t\t'interpolation': {\n\t\t\t\tpattern: re(/((?:^|[^{])(?:\\{\\{)*)<<0>>/.source, [interpolation]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'format-string': {\n\t\t\t\t\t\tpattern: re(/(^\\{(?:(?![}:])<<0>>)*)<<1>>(?=\\}$)/.source, [interpolationRound, formatString]),\n\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\tinside: {\n\t\t\t\t\t\t\t'punctuation': /^:/\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t'punctuation': /^\\{|\\}$/,\n\t\t\t\t\t'expression': {\n\t\t\t\t\t\tpattern: /[\\s\\S]+/,\n\t\t\t\t\t\talias: 'language-csharp',\n\t\t\t\t\t\tinside: Prism.languages.csharp\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t};\n\t}\n\n\tPrism.languages.insertBefore('csharp', 'string', {\n\t\t'interpolation-string': [\n\t\t\t{\n\t\t\t\tpattern: re(/(^|[^\\\\])(?:\\$@|@\\$)\"(?:\"\"|\\\\[\\s\\S]|\\{\\{|<<0>>|[^\\\\{\"])*\"/.source, [mInterpolation]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: createInterpolationInside(mInterpolation, mInterpolationRound),\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: re(/(^|[^@\\\\])\\$\"(?:\\\\.|\\{\\{|<<0>>|[^\\\\\"{])*\"/.source, [sInterpolation]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: createInterpolationInside(sInterpolation, sInterpolationRound),\n\t\t\t}\n\t\t],\n\t\t'char': {\n\t\t\tpattern: RegExp(character),\n\t\t\tgreedy: true\n\t\t}\n\t});\n\n\tPrism.languages.dotnet = Prism.languages.cs = Prism.languages.csharp;\n\n}(Prism));\n","(function (Prism) {\n\n\t// Allow only one line break\n\tvar inner = /(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?![\\r\\n]))/.source;\n\n\t/**\n\t * This function is intended for the creation of the bold or italic pattern.\n\t *\n\t * This also adds a lookbehind group to the given pattern to ensure that the pattern is not backslash-escaped.\n\t *\n\t * _Note:_ Keep in mind that this adds a capturing group.\n\t *\n\t * @param {string} pattern\n\t * @returns {RegExp}\n\t */\n\tfunction createInline(pattern) {\n\t\tpattern = pattern.replace(/<inner>/g, function () { return inner; });\n\t\treturn RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + '(?:' + pattern + ')');\n\t}\n\n\n\tvar tableCell = /(?:\\\\.|``(?:[^`\\r\\n]|`(?!`))+``|`[^`\\r\\n]+`|[^\\\\|\\r\\n`])+/.source;\n\tvar tableRow = /\\|?__(?:\\|__)+\\|?(?:(?:\\n|\\r\\n?)|(?![\\s\\S]))/.source.replace(/__/g, function () { return tableCell; });\n\tvar tableLine = /\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?(?:\\n|\\r\\n?)/.source;\n\n\n\tPrism.languages.markdown = Prism.languages.extend('markup', {});\n\tPrism.languages.insertBefore('markdown', 'prolog', {\n\t\t'front-matter-block': {\n\t\t\tpattern: /(^(?:\\s*[\\r\\n])?)---(?!.)[\\s\\S]*?[\\r\\n]---(?!.)/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /^---|---$/,\n\t\t\t\t'front-matter': {\n\t\t\t\t\tpattern: /\\S+(?:\\s+\\S+)*/,\n\t\t\t\t\talias: ['yaml', 'language-yaml'],\n\t\t\t\t\tinside: Prism.languages.yaml\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'blockquote': {\n\t\t\t// > ...\n\t\t\tpattern: /^>(?:[\\t ]*>)*/m,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'table': {\n\t\t\tpattern: RegExp('^' + tableRow + tableLine + '(?:' + tableRow + ')*', 'm'),\n\t\t\tinside: {\n\t\t\t\t'table-data-rows': {\n\t\t\t\t\tpattern: RegExp('^(' + tableRow + tableLine + ')(?:' + tableRow + ')*$'),\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'table-data': {\n\t\t\t\t\t\t\tpattern: RegExp(tableCell),\n\t\t\t\t\t\t\tinside: Prism.languages.markdown\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'punctuation': /\\|/\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'table-line': {\n\t\t\t\t\tpattern: RegExp('^(' + tableRow + ')' + tableLine + '$'),\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'punctuation': /\\||:?-{3,}:?/\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'table-header-row': {\n\t\t\t\t\tpattern: RegExp('^' + tableRow + '$'),\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'table-header': {\n\t\t\t\t\t\t\tpattern: RegExp(tableCell),\n\t\t\t\t\t\t\talias: 'important',\n\t\t\t\t\t\t\tinside: Prism.languages.markdown\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'punctuation': /\\|/\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'code': [\n\t\t\t{\n\t\t\t\t// Prefixed by 4 spaces or 1 tab and preceded by an empty line\n\t\t\t\tpattern: /((?:^|\\n)[ \\t]*\\n|(?:^|\\r\\n?)[ \\t]*\\r\\n?)(?: {4}|\\t).+(?:(?:\\n|\\r\\n?)(?: {4}|\\t).+)*/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'keyword'\n\t\t\t},\n\t\t\t{\n\t\t\t\t// ```optional language\n\t\t\t\t// code block\n\t\t\t\t// ```\n\t\t\t\tpattern: /^```[\\s\\S]*?^```$/m,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'code-block': {\n\t\t\t\t\t\tpattern: /^(```.*(?:\\n|\\r\\n?))[\\s\\S]+?(?=(?:\\n|\\r\\n?)^```$)/m,\n\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t},\n\t\t\t\t\t'code-language': {\n\t\t\t\t\t\tpattern: /^(```).+/,\n\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t},\n\t\t\t\t\t'punctuation': /```/\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\t'title': [\n\t\t\t{\n\t\t\t\t// title 1\n\t\t\t\t// =======\n\n\t\t\t\t// title 2\n\t\t\t\t// -------\n\t\t\t\tpattern: /\\S.*(?:\\n|\\r\\n?)(?:==+|--+)(?=[ \\t]*$)/m,\n\t\t\t\talias: 'important',\n\t\t\t\tinside: {\n\t\t\t\t\tpunctuation: /==+$|--+$/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t// # title 1\n\t\t\t\t// ###### title 6\n\t\t\t\tpattern: /(^\\s*)#.+/m,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'important',\n\t\t\t\tinside: {\n\t\t\t\t\tpunctuation: /^#+|#+$/\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\t'hr': {\n\t\t\t// ***\n\t\t\t// ---\n\t\t\t// * * *\n\t\t\t// -----------\n\t\t\tpattern: /(^\\s*)([*-])(?:[\\t ]*\\2){2,}(?=\\s*$)/m,\n\t\t\tlookbehind: true,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'list': {\n\t\t\t// * item\n\t\t\t// + item\n\t\t\t// - item\n\t\t\t// 1. item\n\t\t\tpattern: /(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m,\n\t\t\tlookbehind: true,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'url-reference': {\n\t\t\t// [id]: http://example.com \"Optional title\"\n\t\t\t// [id]: http://example.com 'Optional title'\n\t\t\t// [id]: http://example.com (Optional title)\n\t\t\t// [id]: <http://example.com> \"Optional title\"\n\t\t\tpattern: /!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/,\n\t\t\tinside: {\n\t\t\t\t'variable': {\n\t\t\t\t\tpattern: /^(!?\\[)[^\\]]+/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t'string': /(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/,\n\t\t\t\t'punctuation': /^[\\[\\]!:]|[<>]/\n\t\t\t},\n\t\t\talias: 'url'\n\t\t},\n\t\t'bold': {\n\t\t\t// **strong**\n\t\t\t// __strong__\n\n\t\t\t// allow one nested instance of italic text using the same delimiter\n\t\t\tpattern: createInline(/\\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\\b|\\*\\*(?:(?!\\*)<inner>|\\*(?:(?!\\*)<inner>)+\\*)+\\*\\*/.source),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'content': {\n\t\t\t\t\tpattern: /(^..)[\\s\\S]+(?=..$)/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {} // see below\n\t\t\t\t},\n\t\t\t\t'punctuation': /\\*\\*|__/\n\t\t\t}\n\t\t},\n\t\t'italic': {\n\t\t\t// *em*\n\t\t\t// _em_\n\n\t\t\t// allow one nested instance of bold text using the same delimiter\n\t\t\tpattern: createInline(/\\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\\b|\\*(?:(?!\\*)<inner>|\\*\\*(?:(?!\\*)<inner>)+\\*\\*)+\\*/.source),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'content': {\n\t\t\t\t\tpattern: /(^.)[\\s\\S]+(?=.$)/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {} // see below\n\t\t\t\t},\n\t\t\t\t'punctuation': /[*_]/\n\t\t\t}\n\t\t},\n\t\t'strike': {\n\t\t\t// ~~strike through~~\n\t\t\t// ~strike~\n\t\t\t// eslint-disable-next-line regexp/strict\n\t\t\tpattern: createInline(/(~~?)(?:(?!~)<inner>)+\\2/.source),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'content': {\n\t\t\t\t\tpattern: /(^~~?)[\\s\\S]+(?=\\1$)/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {} // see below\n\t\t\t\t},\n\t\t\t\t'punctuation': /~~?/\n\t\t\t}\n\t\t},\n\t\t'code-snippet': {\n\t\t\t// `code`\n\t\t\t// ``code``\n\t\t\tpattern: /(^|[^\\\\`])(?:``[^`\\r\\n]+(?:`[^`\\r\\n]+)*``(?!`)|`[^`\\r\\n]+`(?!`))/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\talias: ['code', 'keyword']\n\t\t},\n\t\t'url': {\n\t\t\t// [example](http://example.com \"Optional title\")\n\t\t\t// [example][id]\n\t\t\t// [example] [id]\n\t\t\tpattern: createInline(/!?\\[(?:(?!\\])<inner>)+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)|[ \\t]?\\[(?:(?!\\])<inner>)+\\])/.source),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'operator': /^!/,\n\t\t\t\t'content': {\n\t\t\t\t\tpattern: /(^\\[)[^\\]]+(?=\\])/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {} // see below\n\t\t\t\t},\n\t\t\t\t'variable': {\n\t\t\t\t\tpattern: /(^\\][ \\t]?\\[)[^\\]]+(?=\\]$)/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t'url': {\n\t\t\t\t\tpattern: /(^\\]\\()[^\\s)]+/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t'string': {\n\t\t\t\t\tpattern: /(^[ \\t]+)\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\t['url', 'bold', 'italic', 'strike'].forEach(function (token) {\n\t\t['url', 'bold', 'italic', 'strike', 'code-snippet'].forEach(function (inside) {\n\t\t\tif (token !== inside) {\n\t\t\t\tPrism.languages.markdown[token].inside.content.inside[inside] = Prism.languages.markdown[inside];\n\t\t\t}\n\t\t});\n\t});\n\n\tPrism.hooks.add('after-tokenize', function (env) {\n\t\tif (env.language !== 'markdown' && env.language !== 'md') {\n\t\t\treturn;\n\t\t}\n\n\t\tfunction walkTokens(tokens) {\n\t\t\tif (!tokens || typeof tokens === 'string') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (var i = 0, l = tokens.length; i < l; i++) {\n\t\t\t\tvar token = tokens[i];\n\n\t\t\t\tif (token.type !== 'code') {\n\t\t\t\t\twalkTokens(token.content);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t/*\n\t\t\t\t * Add the correct `language-xxxx` class to this code block. Keep in mind that the `code-language` token\n\t\t\t\t * is optional. But the grammar is defined so that there is only one case we have to handle:\n\t\t\t\t *\n\t\t\t\t * token.content = [\n\t\t\t\t * <span class=\"punctuation\">```</span>,\n\t\t\t\t * <span class=\"code-language\">xxxx</span>,\n\t\t\t\t * '\\n', // exactly one new lines (\\r or \\n or \\r\\n)\n\t\t\t\t * <span class=\"code-block\">...</span>,\n\t\t\t\t * '\\n', // exactly one new lines again\n\t\t\t\t * <span class=\"punctuation\">```</span>\n\t\t\t\t * ];\n\t\t\t\t */\n\n\t\t\t\tvar codeLang = token.content[1];\n\t\t\t\tvar codeBlock = token.content[3];\n\n\t\t\t\tif (codeLang && codeBlock &&\n\t\t\t\t\tcodeLang.type === 'code-language' && codeBlock.type === 'code-block' &&\n\t\t\t\t\ttypeof codeLang.content === 'string') {\n\n\t\t\t\t\t// this might be a language that Prism does not support\n\n\t\t\t\t\t// do some replacements to support C++, C#, and F#\n\t\t\t\t\tvar lang = codeLang.content.replace(/\\b#/g, 'sharp').replace(/\\b\\+\\+/g, 'pp');\n\t\t\t\t\t// only use the first word\n\t\t\t\t\tlang = (/[a-z][\\w-]*/i.exec(lang) || [''])[0].toLowerCase();\n\t\t\t\t\tvar alias = 'language-' + lang;\n\n\t\t\t\t\t// add alias\n\t\t\t\t\tif (!codeBlock.alias) {\n\t\t\t\t\t\tcodeBlock.alias = [alias];\n\t\t\t\t\t} else if (typeof codeBlock.alias === 'string') {\n\t\t\t\t\t\tcodeBlock.alias = [codeBlock.alias, alias];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcodeBlock.alias.push(alias);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twalkTokens(env.tokens);\n\t});\n\n\tPrism.hooks.add('wrap', function (env) {\n\t\tif (env.type !== 'code-block') {\n\t\t\treturn;\n\t\t}\n\n\t\tvar codeLang = '';\n\t\tfor (var i = 0, l = env.classes.length; i < l; i++) {\n\t\t\tvar cls = env.classes[i];\n\t\t\tvar match = /language-(.+)/.exec(cls);\n\t\t\tif (match) {\n\t\t\t\tcodeLang = match[1];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tvar grammar = Prism.languages[codeLang];\n\n\t\tif (!grammar) {\n\t\t\tif (codeLang && codeLang !== 'none' && Prism.plugins.autoloader) {\n\t\t\t\tvar id = 'md-' + new Date().valueOf() + '-' + Math.floor(Math.random() * 1e16);\n\t\t\t\tenv.attributes['id'] = id;\n\n\t\t\t\tPrism.plugins.autoloader.loadLanguages(codeLang, function () {\n\t\t\t\t\tvar ele = document.getElementById(id);\n\t\t\t\t\tif (ele) {\n\t\t\t\t\t\tele.innerHTML = Prism.highlight(ele.textContent, Prism.languages[codeLang], codeLang);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tenv.content = Prism.highlight(textContent(env.content), grammar, codeLang);\n\t\t}\n\t});\n\n\tvar tagPattern = RegExp(Prism.languages.markup.tag.pattern.source, 'gi');\n\n\t/**\n\t * A list of known entity names.\n\t *\n\t * This will always be incomplete to save space. The current list is the one used by lowdash's unescape function.\n\t *\n\t * @see {@link https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/unescape.js#L2}\n\t */\n\tvar KNOWN_ENTITY_NAMES = {\n\t\t'amp': '&',\n\t\t'lt': '<',\n\t\t'gt': '>',\n\t\t'quot': '\"',\n\t};\n\n\t// IE 11 doesn't support `String.fromCodePoint`\n\tvar fromCodePoint = String.fromCodePoint || String.fromCharCode;\n\n\t/**\n\t * Returns the text content of a given HTML source code string.\n\t *\n\t * @param {string} html\n\t * @returns {string}\n\t */\n\tfunction textContent(html) {\n\t\t// remove all tags\n\t\tvar text = html.replace(tagPattern, '');\n\n\t\t// decode known entities\n\t\ttext = text.replace(/&(\\w{1,8}|#x?[\\da-f]{1,8});/gi, function (m, code) {\n\t\t\tcode = code.toLowerCase();\n\n\t\t\tif (code[0] === '#') {\n\t\t\t\tvar value;\n\t\t\t\tif (code[1] === 'x') {\n\t\t\t\t\tvalue = parseInt(code.slice(2), 16);\n\t\t\t\t} else {\n\t\t\t\t\tvalue = Number(code.slice(1));\n\t\t\t\t}\n\n\t\t\t\treturn fromCodePoint(value);\n\t\t\t} else {\n\t\t\t\tvar known = KNOWN_ENTITY_NAMES[code];\n\t\t\t\tif (known) {\n\t\t\t\t\treturn known;\n\t\t\t\t}\n\n\t\t\t\t// unable to decode\n\t\t\t\treturn m;\n\t\t\t}\n\t\t});\n\n\t\treturn text;\n\t}\n\n\tPrism.languages.md = Prism.languages.markdown;\n\n}(Prism));\n","(function (Prism) {\n\tPrism.languages.kotlin = Prism.languages.extend('clike', {\n\t\t'keyword': {\n\t\t\t// The lookbehind prevents wrong highlighting of e.g. kotlin.properties.get\n\t\t\tpattern: /(^|[^.])\\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\\b/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'function': [\n\t\t\t{\n\t\t\t\tpattern: /(?:`[^\\r\\n`]+`|\\b\\w+)(?=\\s*\\()/,\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(\\.)(?:`[^\\r\\n`]+`|\\w+)(?=\\s*\\{)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true\n\t\t\t}\n\t\t],\n\t\t'number': /\\b(?:0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?[fFL]?)\\b/,\n\t\t'operator': /\\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\\/*%<>]=?|[?:]:?|\\.\\.|&&|\\|\\||\\b(?:and|inv|or|shl|shr|ushr|xor)\\b/\n\t});\n\n\tdelete Prism.languages.kotlin['class-name'];\n\n\tvar interpolationInside = {\n\t\t'interpolation-punctuation': {\n\t\t\tpattern: /^\\$\\{?|\\}$/,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'expression': {\n\t\t\tpattern: /[\\s\\S]+/,\n\t\t\tinside: Prism.languages.kotlin\n\t\t}\n\t};\n\n\tPrism.languages.insertBefore('kotlin', 'string', {\n\t\t// https://kotlinlang.org/spec/expressions.html#string-interpolation-expressions\n\t\t'string-literal': [\n\t\t\t{\n\t\t\t\tpattern: /\"\"\"(?:[^$]|\\$(?:(?!\\{)|\\{[^{}]*\\}))*?\"\"\"/,\n\t\t\t\talias: 'multiline',\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation': {\n\t\t\t\t\t\tpattern: /\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i,\n\t\t\t\t\t\tinside: interpolationInside\n\t\t\t\t\t},\n\t\t\t\t\t'string': /[\\s\\S]+/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /\"(?:[^\"\\\\\\r\\n$]|\\\\.|\\$(?:(?!\\{)|\\{[^{}]*\\}))*\"/,\n\t\t\t\talias: 'singleline',\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation': {\n\t\t\t\t\t\tpattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i,\n\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\tinside: interpolationInside\n\t\t\t\t\t},\n\t\t\t\t\t'string': /[\\s\\S]+/\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\t'char': {\n\t\t\t// https://kotlinlang.org/spec/expressions.html#character-literals\n\t\t\tpattern: /'(?:[^'\\\\\\r\\n]|\\\\(?:.|u[a-fA-F0-9]{0,4}))'/,\n\t\t\tgreedy: true\n\t\t}\n\t});\n\n\tdelete Prism.languages.kotlin['string'];\n\n\tPrism.languages.insertBefore('kotlin', 'keyword', {\n\t\t'annotation': {\n\t\t\tpattern: /\\B@(?:\\w+:)?(?:[A-Z]\\w*|\\[[^\\]]+\\])/,\n\t\t\talias: 'builtin'\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('kotlin', 'function', {\n\t\t'label': {\n\t\t\tpattern: /\\b\\w+@|@\\w+\\b/,\n\t\t\talias: 'symbol'\n\t\t}\n\t});\n\n\tPrism.languages.kt = Prism.languages.kotlin;\n\tPrism.languages.kts = Prism.languages.kotlin;\n}(Prism));\n","// https://www.json.org/json-en.html\nPrism.languages.json = {\n\t'property': {\n\t\tpattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t'string': {\n\t\tpattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?!\\s*:)/,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t'comment': {\n\t\tpattern: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t\tgreedy: true\n\t},\n\t'number': /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n\t'punctuation': /[{}[\\],]/,\n\t'operator': /:/,\n\t'boolean': /\\b(?:false|true)\\b/,\n\t'null': {\n\t\tpattern: /\\bnull\\b/,\n\t\talias: 'keyword'\n\t}\n};\n\nPrism.languages.webmanifest = Prism.languages.json;\n","(function (Prism) {\n\n\tvar multilineComment = /\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|<self>)*\\*\\//.source;\n\tfor (var i = 0; i < 2; i++) {\n\t\t// support 4 levels of nested comments\n\t\tmultilineComment = multilineComment.replace(/<self>/g, function () { return multilineComment; });\n\t}\n\tmultilineComment = multilineComment.replace(/<self>/g, function () { return /[^\\s\\S]/.source; });\n\n\n\tPrism.languages.rust = {\n\t\t'comment': [\n\t\t\t{\n\t\t\t\tpattern: RegExp(/(^|[^\\\\])/.source + multilineComment),\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(^|[^\\\\:])\\/\\/.*/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true\n\t\t\t}\n\t\t],\n\t\t'string': {\n\t\t\tpattern: /b?\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|b?r(#*)\"(?:[^\"]|\"(?!\\1))*\"\\1/,\n\t\t\tgreedy: true\n\t\t},\n\t\t'char': {\n\t\t\tpattern: /b?'(?:\\\\(?:x[0-7][\\da-fA-F]|u\\{(?:[\\da-fA-F]_*){1,6}\\}|.)|[^\\\\\\r\\n\\t'])'/,\n\t\t\tgreedy: true\n\t\t},\n\t\t'attribute': {\n\t\t\tpattern: /#!?\\[(?:[^\\[\\]\"]|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")*\\]/,\n\t\t\tgreedy: true,\n\t\t\talias: 'attr-name',\n\t\t\tinside: {\n\t\t\t\t'string': null // see below\n\t\t\t}\n\t\t},\n\n\t\t// Closure params should not be confused with bitwise OR |\n\t\t'closure-params': {\n\t\t\tpattern: /([=(,:]\\s*|\\bmove\\s*)\\|[^|]*\\||\\|[^|]*\\|(?=\\s*(?:\\{|->))/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'closure-punctuation': {\n\t\t\t\t\tpattern: /^\\||\\|$/,\n\t\t\t\t\talias: 'punctuation'\n\t\t\t\t},\n\t\t\t\trest: null // see below\n\t\t\t}\n\t\t},\n\n\t\t'lifetime-annotation': {\n\t\t\tpattern: /'\\w+/,\n\t\t\talias: 'symbol'\n\t\t},\n\n\t\t'fragment-specifier': {\n\t\t\tpattern: /(\\$\\w+:)[a-z]+/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'variable': /\\$\\w+/,\n\n\t\t'function-definition': {\n\t\t\tpattern: /(\\bfn\\s+)\\w+/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'function'\n\t\t},\n\t\t'type-definition': {\n\t\t\tpattern: /(\\b(?:enum|struct|trait|type|union)\\s+)\\w+/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'class-name'\n\t\t},\n\t\t'module-declaration': [\n\t\t\t{\n\t\t\t\tpattern: /(\\b(?:crate|mod)\\s+)[a-z][a-z_\\d]*/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'namespace'\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(\\b(?:crate|self|super)\\s*)::\\s*[a-z][a-z_\\d]*\\b(?:\\s*::(?:\\s*[a-z][a-z_\\d]*\\s*::)*)?/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'namespace',\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /::/\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\t'keyword': [\n\t\t\t// https://github.com/rust-lang/reference/blob/master/src/keywords.md\n\t\t\t/\\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\\b/,\n\t\t\t// primitives and str\n\t\t\t// https://doc.rust-lang.org/stable/rust-by-example/primitives.html\n\t\t\t/\\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\\b/\n\t\t],\n\n\t\t// functions can technically start with an upper-case letter, but this will introduce a lot of false positives\n\t\t// and Rust's naming conventions recommend snake_case anyway.\n\t\t// https://doc.rust-lang.org/1.0.0/style/style/naming/README.html\n\t\t'function': /\\b[a-z_]\\w*(?=\\s*(?:::\\s*<|\\())/,\n\t\t'macro': {\n\t\t\tpattern: /\\b\\w+!/,\n\t\t\talias: 'property'\n\t\t},\n\t\t'constant': /\\b[A-Z_][A-Z_\\d]+\\b/,\n\t\t'class-name': /\\b[A-Z]\\w*\\b/,\n\n\t\t'namespace': {\n\t\t\tpattern: /(?:\\b[a-z][a-z_\\d]*\\s*::\\s*)*\\b[a-z][a-z_\\d]*\\s*::(?!\\s*<)/,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /::/\n\t\t\t}\n\t\t},\n\n\t\t// Hex, oct, bin, dec numbers with visual separators and type suffix\n\t\t'number': /\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\\d(?:_?\\d)*)?\\.)?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\\b/,\n\t\t'boolean': /\\b(?:false|true)\\b/,\n\t\t'punctuation': /->|\\.\\.=|\\.{1,3}|::|[{}[\\];(),:]/,\n\t\t'operator': /[-+*\\/%!^]=?|=[=>]?|&[&=]?|\\|[|=]?|<<?=?|>>?=?|[@?]/\n\t};\n\n\tPrism.languages.rust['closure-params'].inside.rest = Prism.languages.rust;\n\tPrism.languages.rust['attribute'].inside['string'] = Prism.languages.rust['string'];\n\n}(Prism));\n","Prism.languages.python = {\n\t'comment': {\n\t\tpattern: /(^|[^\\\\])#.*/,\n\t\tlookbehind: true,\n\t\tgreedy: true\n\t},\n\t'string-interpolation': {\n\t\tpattern: /(?:f|fr|rf)(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2)/i,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'interpolation': {\n\t\t\t\t// \"{\" <expression> <optional \"!s\", \"!r\", or \"!a\"> <optional \":\" format specifier> \"}\"\n\t\t\t\tpattern: /((?:^|[^{])(?:\\{\\{)*)\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}])+\\})+\\})+\\}/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'format-spec': {\n\t\t\t\t\t\tpattern: /(:)[^:(){}]+(?=\\}$)/,\n\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t},\n\t\t\t\t\t'conversion-option': {\n\t\t\t\t\t\tpattern: /![sra](?=[:}]$)/,\n\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t},\n\t\t\t\t\trest: null\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t},\n\t'triple-quoted-string': {\n\t\tpattern: /(?:[rub]|br|rb)?(\"\"\"|''')[\\s\\S]*?\\1/i,\n\t\tgreedy: true,\n\t\talias: 'string'\n\t},\n\t'string': {\n\t\tpattern: /(?:[rub]|br|rb)?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/i,\n\t\tgreedy: true\n\t},\n\t'function': {\n\t\tpattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g,\n\t\tlookbehind: true\n\t},\n\t'class-name': {\n\t\tpattern: /(\\bclass\\s+)\\w+/i,\n\t\tlookbehind: true\n\t},\n\t'decorator': {\n\t\tpattern: /(^[\\t ]*)@\\w+(?:\\.\\w+)*/m,\n\t\tlookbehind: true,\n\t\talias: ['annotation', 'punctuation'],\n\t\tinside: {\n\t\t\t'punctuation': /\\./\n\t\t}\n\t},\n\t'keyword': /\\b(?:_(?=\\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\\b/,\n\t'builtin': /\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b/,\n\t'boolean': /\\b(?:False|None|True)\\b/,\n\t'number': /\\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\\b|(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:e[+-]?\\d+(?:_\\d+)*)?j?(?!\\w)/i,\n\t'operator': /[-+%=]=?|!=|:=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n\t'punctuation': /[{}[\\];(),.:]/\n};\n\nPrism.languages.python['string-interpolation'].inside['interpolation'].inside.rest = Prism.languages.python;\n\nPrism.languages.py = Prism.languages.python;\n","/**\n * Original by Aaron Harun: http://aahacreative.com/2012/07/31/php-syntax-highlighting-prism/\n * Modified by Miles Johnson: http://milesj.me\n * Rewritten by Tom Pavelec\n *\n * Supports PHP 5.3 - 8.0\n */\n(function (Prism) {\n\tvar comment = /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*|#(?!\\[).*/;\n\tvar constant = [\n\t\t{\n\t\t\tpattern: /\\b(?:false|true)\\b/i,\n\t\t\talias: 'boolean'\n\t\t},\n\t\t{\n\t\t\tpattern: /(::\\s*)\\b[a-z_]\\w*\\b(?!\\s*\\()/i,\n\t\t\tgreedy: true,\n\t\t\tlookbehind: true,\n\t\t},\n\t\t{\n\t\t\tpattern: /(\\b(?:case|const)\\s+)\\b[a-z_]\\w*(?=\\s*[;=])/i,\n\t\t\tgreedy: true,\n\t\t\tlookbehind: true,\n\t\t},\n\t\t/\\b(?:null)\\b/i,\n\t\t/\\b[A-Z_][A-Z0-9_]*\\b(?!\\s*\\()/,\n\t];\n\tvar number = /\\b0b[01]+(?:_[01]+)*\\b|\\b0o[0-7]+(?:_[0-7]+)*\\b|\\b0x[\\da-f]+(?:_[\\da-f]+)*\\b|(?:\\b\\d+(?:_\\d+)*\\.?(?:\\d+(?:_\\d+)*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i;\n\tvar operator = /<?=>|\\?\\?=?|\\.{3}|\\??->|[!=]=?=?|::|\\*\\*=?|--|\\+\\+|&&|\\|\\||<<|>>|[?~]|[/^|%*&<>.+-]=?/;\n\tvar punctuation = /[{}\\[\\](),:;]/;\n\n\tPrism.languages.php = {\n\t\t'delimiter': {\n\t\t\tpattern: /\\?>$|^<\\?(?:php(?=\\s)|=)?/i,\n\t\t\talias: 'important'\n\t\t},\n\t\t'comment': comment,\n\t\t'variable': /\\$+(?:\\w+\\b|(?=\\{))/,\n\t\t'package': {\n\t\t\tpattern: /(namespace\\s+|use\\s+(?:function\\s+)?)(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /\\\\/\n\t\t\t}\n\t\t},\n\t\t'class-name-definition': {\n\t\t\tpattern: /(\\b(?:class|enum|interface|trait)\\s+)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n\t\t\tlookbehind: true,\n\t\t\talias: 'class-name'\n\t\t},\n\t\t'function-definition': {\n\t\t\tpattern: /(\\bfunction\\s+)[a-z_]\\w*(?=\\s*\\()/i,\n\t\t\tlookbehind: true,\n\t\t\talias: 'function'\n\t\t},\n\t\t'keyword': [\n\t\t\t{\n\t\t\t\tpattern: /(\\(\\s*)\\b(?:array|bool|boolean|float|int|integer|object|string)\\b(?=\\s*\\))/i,\n\t\t\t\talias: 'type-casting',\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /([(,?]\\s*)\\b(?:array(?!\\s*\\()|bool|callable|(?:false|null)(?=\\s*\\|)|float|int|iterable|mixed|object|self|static|string)\\b(?=\\s*\\$)/i,\n\t\t\t\talias: 'type-hint',\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)\\b(?:array(?!\\s*\\()|bool|callable|(?:false|null)(?=\\s*\\|)|float|int|iterable|mixed|never|object|self|static|string|void)\\b/i,\n\t\t\t\talias: 'return-type',\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /\\b(?:array(?!\\s*\\()|bool|float|int|iterable|mixed|object|string|void)\\b/i,\n\t\t\t\talias: 'type-declaration',\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(\\|\\s*)(?:false|null)\\b|\\b(?:false|null)(?=\\s*\\|)/i,\n\t\t\t\talias: 'type-declaration',\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /\\b(?:parent|self|static)(?=\\s*::)/i,\n\t\t\t\talias: 'static-context',\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t{\n\t\t\t\t// yield from\n\t\t\t\tpattern: /(\\byield\\s+)from\\b/i,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t// `class` is always a keyword unlike other keywords\n\t\t\t/\\bclass\\b/i,\n\t\t\t{\n\t\t\t\t// https://www.php.net/manual/en/reserved.keywords.php\n\t\t\t\t//\n\t\t\t\t// keywords cannot be preceded by \"->\"\n\t\t\t\t// the complex lookbehind means `(?<!(?:->|::)\\s*)`\n\t\t\t\tpattern: /((?:^|[^\\s>:]|(?:^|[^-])>|(?:^|[^:]):)\\s*)\\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|never|new|or|parent|print|private|protected|public|readonly|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\\b/i,\n\t\t\t\tlookbehind: true\n\t\t\t}\n\t\t],\n\t\t'argument-name': {\n\t\t\tpattern: /([(,]\\s*)\\b[a-z_]\\w*(?=\\s*:(?!:))/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'class-name': [\n\t\t\t{\n\t\t\t\tpattern: /(\\b(?:extends|implements|instanceof|new(?!\\s+self|\\s+static))\\s+|\\bcatch\\s*\\()\\b[a-z_]\\w*(?!\\\\)\\b/i,\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(\\|\\s*)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /\\b[a-z_]\\w*(?!\\\\)\\b(?=\\s*\\|)/i,\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(\\|\\s*)(?:\\\\?\\b[a-z_]\\w*)+\\b/i,\n\t\t\t\talias: 'class-name-fully-qualified',\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\\\/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(?:\\\\?\\b[a-z_]\\w*)+\\b(?=\\s*\\|)/i,\n\t\t\t\talias: 'class-name-fully-qualified',\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\\\/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(\\b(?:extends|implements|instanceof|new(?!\\s+self\\b|\\s+static\\b))\\s+|\\bcatch\\s*\\()(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n\t\t\t\talias: 'class-name-fully-qualified',\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\\\/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /\\b[a-z_]\\w*(?=\\s*\\$)/i,\n\t\t\t\talias: 'type-declaration',\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*\\$)/i,\n\t\t\t\talias: ['class-name-fully-qualified', 'type-declaration'],\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\\\/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /\\b[a-z_]\\w*(?=\\s*::)/i,\n\t\t\t\talias: 'static-context',\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*::)/i,\n\t\t\t\talias: ['class-name-fully-qualified', 'static-context'],\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\\\/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /([(,?]\\s*)[a-z_]\\w*(?=\\s*\\$)/i,\n\t\t\t\talias: 'type-hint',\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /([(,?]\\s*)(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*\\$)/i,\n\t\t\t\talias: ['class-name-fully-qualified', 'type-hint'],\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\\\/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n\t\t\t\talias: 'return-type',\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n\t\t\t\talias: ['class-name-fully-qualified', 'return-type'],\n\t\t\t\tgreedy: true,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\\\/\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\t'constant': constant,\n\t\t'function': {\n\t\t\tpattern: /(^|[^\\\\\\w])\\\\?[a-z_](?:[\\w\\\\]*\\w)?(?=\\s*\\()/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /\\\\/\n\t\t\t}\n\t\t},\n\t\t'property': {\n\t\t\tpattern: /(->\\s*)\\w+/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'number': number,\n\t\t'operator': operator,\n\t\t'punctuation': punctuation\n\t};\n\n\tvar string_interpolation = {\n\t\tpattern: /\\{\\$(?:\\{(?:\\{[^{}]+\\}|[^{}]+)\\}|[^{}])+\\}|(^|[^\\\\{])\\$+(?:\\w+(?:\\[[^\\r\\n\\[\\]]+\\]|->\\w+)?)/,\n\t\tlookbehind: true,\n\t\tinside: Prism.languages.php\n\t};\n\n\tvar string = [\n\t\t{\n\t\t\tpattern: /<<<'([^']+)'[\\r\\n](?:.*[\\r\\n])*?\\1;/,\n\t\t\talias: 'nowdoc-string',\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'delimiter': {\n\t\t\t\t\tpattern: /^<<<'[^']+'|[a-z_]\\w*;$/i,\n\t\t\t\t\talias: 'symbol',\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'punctuation': /^<<<'?|[';]$/\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpattern: /<<<(?:\"([^\"]+)\"[\\r\\n](?:.*[\\r\\n])*?\\1;|([a-z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?\\2;)/i,\n\t\t\talias: 'heredoc-string',\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'delimiter': {\n\t\t\t\t\tpattern: /^<<<(?:\"[^\"]+\"|[a-z_]\\w*)|[a-z_]\\w*;$/i,\n\t\t\t\t\talias: 'symbol',\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'punctuation': /^<<<\"?|[\";]$/\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'interpolation': string_interpolation\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/,\n\t\t\talias: 'backtick-quoted-string',\n\t\t\tgreedy: true\n\t\t},\n\t\t{\n\t\t\tpattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/,\n\t\t\talias: 'single-quoted-string',\n\t\t\tgreedy: true\n\t\t},\n\t\t{\n\t\t\tpattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n\t\t\talias: 'double-quoted-string',\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'interpolation': string_interpolation\n\t\t\t}\n\t\t}\n\t];\n\n\tPrism.languages.insertBefore('php', 'variable', {\n\t\t'string': string,\n\t\t'attribute': {\n\t\t\tpattern: /#\\[(?:[^\"'\\/#]|\\/(?![*/])|\\/\\/.*$|#(?!\\[).*$|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*')+\\](?=\\s*[a-z$#])/im,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'attribute-content': {\n\t\t\t\t\tpattern: /^(#\\[)[\\s\\S]+(?=\\]$)/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t// inside can appear subset of php\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'comment': comment,\n\t\t\t\t\t\t'string': string,\n\t\t\t\t\t\t'attribute-class-name': [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tpattern: /([^:]|^)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n\t\t\t\t\t\t\t\talias: 'class-name',\n\t\t\t\t\t\t\t\tgreedy: true,\n\t\t\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tpattern: /([^:]|^)(?:\\\\?\\b[a-z_]\\w*)+/i,\n\t\t\t\t\t\t\t\talias: [\n\t\t\t\t\t\t\t\t\t'class-name',\n\t\t\t\t\t\t\t\t\t'class-name-fully-qualified'\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tgreedy: true,\n\t\t\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\t\t\tinside: {\n\t\t\t\t\t\t\t\t\t'punctuation': /\\\\/\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\t'constant': constant,\n\t\t\t\t\t\t'number': number,\n\t\t\t\t\t\t'operator': operator,\n\t\t\t\t\t\t'punctuation': punctuation\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'delimiter': {\n\t\t\t\t\tpattern: /^#\\[|\\]$/,\n\t\t\t\t\talias: 'punctuation'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t});\n\n\tPrism.hooks.add('before-tokenize', function (env) {\n\t\tif (!/<\\?/.test(env.code)) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar phpPattern = /<\\?(?:[^\"'/#]|\\/(?![*/])|(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|(?:\\/\\/|#(?!\\[))(?:[^?\\n\\r]|\\?(?!>))*(?=$|\\?>|[\\r\\n])|#\\[|\\/\\*(?:[^*]|\\*(?!\\/))*(?:\\*\\/|$))*?(?:\\?>|$)/g;\n\t\tPrism.languages['markup-templating'].buildPlaceholders(env, 'php', phpPattern);\n\t});\n\n\tPrism.hooks.add('after-tokenize', function (env) {\n\t\tPrism.languages['markup-templating'].tokenizePlaceholders(env, 'php');\n\t});\n\n}(Prism));\n","Prism.languages.sql = {\n\t'comment': {\n\t\tpattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/,\n\t\tlookbehind: true\n\t},\n\t'variable': [\n\t\t{\n\t\t\tpattern: /@([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1/,\n\t\t\tgreedy: true\n\t\t},\n\t\t/@[\\w.$]+/\n\t],\n\t'string': {\n\t\tpattern: /(^|[^@\\\\])(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\]|\\2\\2)*\\2/,\n\t\tgreedy: true,\n\t\tlookbehind: true\n\t},\n\t'identifier': {\n\t\tpattern: /(^|[^@\\\\])`(?:\\\\[\\s\\S]|[^`\\\\]|``)*`/,\n\t\tgreedy: true,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'punctuation': /^`|`$/\n\t\t}\n\t},\n\t'function': /\\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\\s*\\()/i, // Should we highlight user defined functions too?\n\t'keyword': /\\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\\b/i,\n\t'boolean': /\\b(?:FALSE|NULL|TRUE)\\b/i,\n\t'number': /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i,\n\t'operator': /[-+*\\/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\\b/i,\n\t'punctuation': /[;[\\]()`,.]/\n};\n","Prism.languages.cmake = {\n\t'comment': /#.*/,\n\t'string': {\n\t\tpattern: /\"(?:[^\\\\\"]|\\\\.)*\"/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /\\$\\{(?:[^{}$]|\\$\\{[^{}$]*\\})*\\}/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\$\\{|\\}/,\n\t\t\t\t\t'variable': /\\w+/\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t'variable': /\\b(?:CMAKE_\\w+|\\w+_(?:(?:BINARY|SOURCE)_DIR|DESCRIPTION|HOMEPAGE_URL|ROOT|VERSION(?:_MAJOR|_MINOR|_PATCH|_TWEAK)?)|(?:ANDROID|APPLE|BORLAND|BUILD_SHARED_LIBS|CACHE|CPACK_(?:ABSOLUTE_DESTINATION_FILES|COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY|ERROR_ON_ABSOLUTE_INSTALL_DESTINATION|INCLUDE_TOPLEVEL_DIRECTORY|INSTALL_DEFAULT_DIRECTORY_PERMISSIONS|INSTALL_SCRIPT|PACKAGING_INSTALL_PREFIX|SET_DESTDIR|WARN_ON_ABSOLUTE_INSTALL_DESTINATION)|CTEST_(?:BINARY_DIRECTORY|BUILD_COMMAND|BUILD_NAME|BZR_COMMAND|BZR_UPDATE_OPTIONS|CHANGE_ID|CHECKOUT_COMMAND|CONFIGURATION_TYPE|CONFIGURE_COMMAND|COVERAGE_COMMAND|COVERAGE_EXTRA_FLAGS|CURL_OPTIONS|CUSTOM_(?:COVERAGE_EXCLUDE|ERROR_EXCEPTION|ERROR_MATCH|ERROR_POST_CONTEXT|ERROR_PRE_CONTEXT|MAXIMUM_FAILED_TEST_OUTPUT_SIZE|MAXIMUM_NUMBER_OF_(?:ERRORS|WARNINGS)|MAXIMUM_PASSED_TEST_OUTPUT_SIZE|MEMCHECK_IGNORE|POST_MEMCHECK|POST_TEST|PRE_MEMCHECK|PRE_TEST|TESTS_IGNORE|WARNING_EXCEPTION|WARNING_MATCH)|CVS_CHECKOUT|CVS_COMMAND|CVS_UPDATE_OPTIONS|DROP_LOCATION|DROP_METHOD|DROP_SITE|DROP_SITE_CDASH|DROP_SITE_PASSWORD|DROP_SITE_USER|EXTRA_COVERAGE_GLOB|GIT_COMMAND|GIT_INIT_SUBMODULES|GIT_UPDATE_CUSTOM|GIT_UPDATE_OPTIONS|HG_COMMAND|HG_UPDATE_OPTIONS|LABELS_FOR_SUBPROJECTS|MEMORYCHECK_(?:COMMAND|COMMAND_OPTIONS|SANITIZER_OPTIONS|SUPPRESSIONS_FILE|TYPE)|NIGHTLY_START_TIME|P4_CLIENT|P4_COMMAND|P4_OPTIONS|P4_UPDATE_OPTIONS|RUN_CURRENT_SCRIPT|SCP_COMMAND|SITE|SOURCE_DIRECTORY|SUBMIT_URL|SVN_COMMAND|SVN_OPTIONS|SVN_UPDATE_OPTIONS|TEST_LOAD|TEST_TIMEOUT|TRIGGER_SITE|UPDATE_COMMAND|UPDATE_OPTIONS|UPDATE_VERSION_ONLY|USE_LAUNCHERS)|CYGWIN|ENV|EXECUTABLE_OUTPUT_PATH|GHS-MULTI|IOS|LIBRARY_OUTPUT_PATH|MINGW|MSVC(?:10|11|12|14|60|70|71|80|90|_IDE|_TOOLSET_VERSION|_VERSION)?|MSYS|PROJECT_NAME|UNIX|WIN32|WINCE|WINDOWS_PHONE|WINDOWS_STORE|XCODE))\\b/,\n\t'property': /\\b(?:cxx_\\w+|(?:ARCHIVE_OUTPUT_(?:DIRECTORY|NAME)|COMPILE_DEFINITIONS|COMPILE_PDB_NAME|COMPILE_PDB_OUTPUT_DIRECTORY|EXCLUDE_FROM_DEFAULT_BUILD|IMPORTED_(?:IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_LANGUAGES|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|NO_SONAME|OBJECTS|SONAME)|INTERPROCEDURAL_OPTIMIZATION|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_OUTPUT_NAME|LINK_FLAGS|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|MAP_IMPORTED_CONFIG|OSX_ARCHITECTURES|OUTPUT_NAME|PDB_NAME|PDB_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_NAME|STATIC_LIBRARY_FLAGS|VS_CSHARP|VS_DOTNET_REFERENCEPROP|VS_DOTNET_REFERENCE|VS_GLOBAL_SECTION_POST|VS_GLOBAL_SECTION_PRE|VS_GLOBAL|XCODE_ATTRIBUTE)_\\w+|\\w+_(?:CLANG_TIDY|COMPILER_LAUNCHER|CPPCHECK|CPPLINT|INCLUDE_WHAT_YOU_USE|OUTPUT_NAME|POSTFIX|VISIBILITY_PRESET)|ABSTRACT|ADDITIONAL_MAKE_CLEAN_FILES|ADVANCED|ALIASED_TARGET|ALLOW_DUPLICATE_CUSTOM_TARGETS|ANDROID_(?:ANT_ADDITIONAL_OPTIONS|API|API_MIN|ARCH|ASSETS_DIRECTORIES|GUI|JAR_DEPENDENCIES|NATIVE_LIB_DEPENDENCIES|NATIVE_LIB_DIRECTORIES|PROCESS_MAX|PROGUARD|PROGUARD_CONFIG_PATH|SECURE_PROPS_PATH|SKIP_ANT_STEP|STL_TYPE)|ARCHIVE_OUTPUT_DIRECTORY|ATTACHED_FILES|ATTACHED_FILES_ON_FAIL|AUTOGEN_(?:BUILD_DIR|ORIGIN_DEPENDS|PARALLEL|SOURCE_GROUP|TARGETS_FOLDER|TARGET_DEPENDS)|AUTOMOC|AUTOMOC_(?:COMPILER_PREDEFINES|DEPEND_FILTERS|EXECUTABLE|MACRO_NAMES|MOC_OPTIONS|SOURCE_GROUP|TARGETS_FOLDER)|AUTORCC|AUTORCC_EXECUTABLE|AUTORCC_OPTIONS|AUTORCC_SOURCE_GROUP|AUTOUIC|AUTOUIC_EXECUTABLE|AUTOUIC_OPTIONS|AUTOUIC_SEARCH_PATHS|BINARY_DIR|BUILDSYSTEM_TARGETS|BUILD_RPATH|BUILD_RPATH_USE_ORIGIN|BUILD_WITH_INSTALL_NAME_DIR|BUILD_WITH_INSTALL_RPATH|BUNDLE|BUNDLE_EXTENSION|CACHE_VARIABLES|CLEAN_NO_CUSTOM|COMMON_LANGUAGE_RUNTIME|COMPATIBLE_INTERFACE_(?:BOOL|NUMBER_MAX|NUMBER_MIN|STRING)|COMPILE_(?:DEFINITIONS|FEATURES|FLAGS|OPTIONS|PDB_NAME|PDB_OUTPUT_DIRECTORY)|COST|CPACK_DESKTOP_SHORTCUTS|CPACK_NEVER_OVERWRITE|CPACK_PERMANENT|CPACK_STARTUP_SHORTCUTS|CPACK_START_MENU_SHORTCUTS|CPACK_WIX_ACL|CROSSCOMPILING_EMULATOR|CUDA_EXTENSIONS|CUDA_PTX_COMPILATION|CUDA_RESOLVE_DEVICE_SYMBOLS|CUDA_SEPARABLE_COMPILATION|CUDA_STANDARD|CUDA_STANDARD_REQUIRED|CXX_EXTENSIONS|CXX_STANDARD|CXX_STANDARD_REQUIRED|C_EXTENSIONS|C_STANDARD|C_STANDARD_REQUIRED|DEBUG_CONFIGURATIONS|DEFINE_SYMBOL|DEFINITIONS|DEPENDS|DEPLOYMENT_ADDITIONAL_FILES|DEPLOYMENT_REMOTE_DIRECTORY|DISABLED|DISABLED_FEATURES|ECLIPSE_EXTRA_CPROJECT_CONTENTS|ECLIPSE_EXTRA_NATURES|ENABLED_FEATURES|ENABLED_LANGUAGES|ENABLE_EXPORTS|ENVIRONMENT|EXCLUDE_FROM_ALL|EXCLUDE_FROM_DEFAULT_BUILD|EXPORT_NAME|EXPORT_PROPERTIES|EXTERNAL_OBJECT|EchoString|FAIL_REGULAR_EXPRESSION|FIND_LIBRARY_USE_LIB32_PATHS|FIND_LIBRARY_USE_LIB64_PATHS|FIND_LIBRARY_USE_LIBX32_PATHS|FIND_LIBRARY_USE_OPENBSD_VERSIONING|FIXTURES_CLEANUP|FIXTURES_REQUIRED|FIXTURES_SETUP|FOLDER|FRAMEWORK|Fortran_FORMAT|Fortran_MODULE_DIRECTORY|GENERATED|GENERATOR_FILE_NAME|GENERATOR_IS_MULTI_CONFIG|GHS_INTEGRITY_APP|GHS_NO_SOURCE_GROUP_FILE|GLOBAL_DEPENDS_DEBUG_MODE|GLOBAL_DEPENDS_NO_CYCLES|GNUtoMS|HAS_CXX|HEADER_FILE_ONLY|HELPSTRING|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|IMPORTED|IMPORTED_(?:COMMON_LANGUAGE_RUNTIME|CONFIGURATIONS|GLOBAL|IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_(?:LANGUAGES|LIBRARIES|MULTIPLICITY)|LOCATION|NO_SONAME|OBJECTS|SONAME)|IMPORT_PREFIX|IMPORT_SUFFIX|INCLUDE_DIRECTORIES|INCLUDE_REGULAR_EXPRESSION|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|INTERFACE_(?:AUTOUIC_OPTIONS|COMPILE_DEFINITIONS|COMPILE_FEATURES|COMPILE_OPTIONS|INCLUDE_DIRECTORIES|LINK_DEPENDS|LINK_DIRECTORIES|LINK_LIBRARIES|LINK_OPTIONS|POSITION_INDEPENDENT_CODE|SOURCES|SYSTEM_INCLUDE_DIRECTORIES)|INTERPROCEDURAL_OPTIMIZATION|IN_TRY_COMPILE|IOS_INSTALL_COMBINED|JOB_POOLS|JOB_POOL_COMPILE|JOB_POOL_LINK|KEEP_EXTENSION|LABELS|LANGUAGE|LIBRARY_OUTPUT_DIRECTORY|LINKER_LANGUAGE|LINK_(?:DEPENDS|DEPENDS_NO_SHARED|DIRECTORIES|FLAGS|INTERFACE_LIBRARIES|INTERFACE_MULTIPLICITY|LIBRARIES|OPTIONS|SEARCH_END_STATIC|SEARCH_START_STATIC|WHAT_YOU_USE)|LISTFILE_STACK|LOCATION|MACOSX_BUNDLE|MACOSX_BUNDLE_INFO_PLIST|MACOSX_FRAMEWORK_INFO_PLIST|MACOSX_PACKAGE_LOCATION|MACOSX_RPATH|MACROS|MANUALLY_ADDED_DEPENDENCIES|MEASUREMENT|MODIFIED|NAME|NO_SONAME|NO_SYSTEM_FROM_IMPORTED|OBJECT_DEPENDS|OBJECT_OUTPUTS|OSX_ARCHITECTURES|OUTPUT_NAME|PACKAGES_FOUND|PACKAGES_NOT_FOUND|PARENT_DIRECTORY|PASS_REGULAR_EXPRESSION|PDB_NAME|PDB_OUTPUT_DIRECTORY|POSITION_INDEPENDENT_CODE|POST_INSTALL_SCRIPT|PREDEFINED_TARGETS_FOLDER|PREFIX|PRE_INSTALL_SCRIPT|PRIVATE_HEADER|PROCESSORS|PROCESSOR_AFFINITY|PROJECT_LABEL|PUBLIC_HEADER|REPORT_UNDEFINED_PROPERTIES|REQUIRED_FILES|RESOURCE|RESOURCE_LOCK|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|RULE_MESSAGES|RUNTIME_OUTPUT_DIRECTORY|RUN_SERIAL|SKIP_AUTOGEN|SKIP_AUTOMOC|SKIP_AUTORCC|SKIP_AUTOUIC|SKIP_BUILD_RPATH|SKIP_RETURN_CODE|SOURCES|SOURCE_DIR|SOVERSION|STATIC_LIBRARY_FLAGS|STATIC_LIBRARY_OPTIONS|STRINGS|SUBDIRECTORIES|SUFFIX|SYMBOLIC|TARGET_ARCHIVES_MAY_BE_SHARED_LIBS|TARGET_MESSAGES|TARGET_SUPPORTS_SHARED_LIBS|TESTS|TEST_INCLUDE_FILE|TEST_INCLUDE_FILES|TIMEOUT|TIMEOUT_AFTER_MATCH|TYPE|USE_FOLDERS|VALUE|VARIABLES|VERSION|VISIBILITY_INLINES_HIDDEN|VS_(?:CONFIGURATION_TYPE|COPY_TO_OUT_DIR|DEBUGGER_(?:COMMAND|COMMAND_ARGUMENTS|ENVIRONMENT|WORKING_DIRECTORY)|DEPLOYMENT_CONTENT|DEPLOYMENT_LOCATION|DOTNET_REFERENCES|DOTNET_REFERENCES_COPY_LOCAL|INCLUDE_IN_VSIX|IOT_STARTUP_TASK|KEYWORD|RESOURCE_GENERATOR|SCC_AUXPATH|SCC_LOCALPATH|SCC_PROJECTNAME|SCC_PROVIDER|SDK_REFERENCES|SHADER_(?:DISABLE_OPTIMIZATIONS|ENABLE_DEBUG|ENTRYPOINT|FLAGS|MODEL|OBJECT_FILE_NAME|OUTPUT_HEADER_FILE|TYPE|VARIABLE_NAME)|STARTUP_PROJECT|TOOL_OVERRIDE|USER_PROPS|WINRT_COMPONENT|WINRT_EXTENSIONS|WINRT_REFERENCES|XAML_TYPE)|WILL_FAIL|WIN32_EXECUTABLE|WINDOWS_EXPORT_ALL_SYMBOLS|WORKING_DIRECTORY|WRAP_EXCLUDE|XCODE_(?:EMIT_EFFECTIVE_PLATFORM_NAME|EXPLICIT_FILE_TYPE|FILE_ATTRIBUTES|LAST_KNOWN_FILE_TYPE|PRODUCT_TYPE|SCHEME_(?:ADDRESS_SANITIZER|ADDRESS_SANITIZER_USE_AFTER_RETURN|ARGUMENTS|DISABLE_MAIN_THREAD_CHECKER|DYNAMIC_LIBRARY_LOADS|DYNAMIC_LINKER_API_USAGE|ENVIRONMENT|EXECUTABLE|GUARD_MALLOC|MAIN_THREAD_CHECKER_STOP|MALLOC_GUARD_EDGES|MALLOC_SCRIBBLE|MALLOC_STACK|THREAD_SANITIZER(?:_STOP)?|UNDEFINED_BEHAVIOUR_SANITIZER(?:_STOP)?|ZOMBIE_OBJECTS))|XCTEST)\\b/,\n\t'keyword': /\\b(?:add_compile_definitions|add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_link_options|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_parse_arguments|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_guard|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_directories|target_link_libraries|target_link_options|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)(?=\\s*\\()\\b/,\n\t'boolean': /\\b(?:FALSE|OFF|ON|TRUE)\\b/,\n\t'namespace': /\\b(?:INTERFACE|PRIVATE|PROPERTIES|PUBLIC|SHARED|STATIC|TARGET_OBJECTS)\\b/,\n\t'operator': /\\b(?:AND|DEFINED|EQUAL|GREATER|LESS|MATCHES|NOT|OR|STREQUAL|STRGREATER|STRLESS|VERSION_EQUAL|VERSION_GREATER|VERSION_LESS)\\b/,\n\t'inserted': {\n\t\tpattern: /\\b\\w+::\\w+\\b/,\n\t\talias: 'class-name'\n\t},\n\t'number': /\\b\\d+(?:\\.\\d+)*\\b/,\n\t'function': /\\b[a-z_]\\w*(?=\\s*\\()\\b/i,\n\t'punctuation': /[()>}]|\\$[<{]/\n};\n","/**\n * Original by Samuel Flores\n *\n * Adds the following new token classes:\n * constant, builtin, variable, symbol, regex\n */\n(function (Prism) {\n\tPrism.languages.ruby = Prism.languages.extend('clike', {\n\t\t'comment': {\n\t\t\tpattern: /#.*|^=begin\\s[\\s\\S]*?^=end/m,\n\t\t\tgreedy: true\n\t\t},\n\t\t'class-name': {\n\t\t\tpattern: /(\\b(?:class|module)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+|\\b[A-Z_]\\w*(?=\\s*\\.\\s*new\\b)/,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /[.\\\\]/\n\t\t\t}\n\t\t},\n\t\t'keyword': /\\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\\b/,\n\t\t'operator': /\\.{2,3}|&\\.|===|<?=>|[!=]?~|(?:&&|\\|\\||<<|>>|\\*\\*|[+\\-*/%<>!^&|=])=?|[?:]/,\n\t\t'punctuation': /[(){}[\\].,;]/,\n\t});\n\n\tPrism.languages.insertBefore('ruby', 'operator', {\n\t\t'double-colon': {\n\t\t\tpattern: /::/,\n\t\t\talias: 'punctuation'\n\t\t},\n\t});\n\n\tvar interpolation = {\n\t\tpattern: /((?:^|[^\\\\])(?:\\\\{2})*)#\\{(?:[^{}]|\\{[^{}]*\\})*\\}/,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'content': {\n\t\t\t\tpattern: /^(#\\{)[\\s\\S]+(?=\\}$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: Prism.languages.ruby\n\t\t\t},\n\t\t\t'delimiter': {\n\t\t\t\tpattern: /^#\\{|\\}$/,\n\t\t\t\talias: 'punctuation'\n\t\t\t}\n\t\t}\n\t};\n\n\tdelete Prism.languages.ruby.function;\n\n\tvar percentExpression = '(?:' + [\n\t\t/([^a-zA-Z0-9\\s{(\\[<=])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source,\n\t\t/\\((?:[^()\\\\]|\\\\[\\s\\S]|\\((?:[^()\\\\]|\\\\[\\s\\S])*\\))*\\)/.source,\n\t\t/\\{(?:[^{}\\\\]|\\\\[\\s\\S]|\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\})*\\}/.source,\n\t\t/\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S]|\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S])*\\])*\\]/.source,\n\t\t/<(?:[^<>\\\\]|\\\\[\\s\\S]|<(?:[^<>\\\\]|\\\\[\\s\\S])*>)*>/.source\n\t].join('|') + ')';\n\n\tvar symbolName = /(?:\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|(?:\\b[a-zA-Z_]\\w*|[^\\s\\0-\\x7F]+)[?!]?|\\$.)/.source;\n\n\tPrism.languages.insertBefore('ruby', 'keyword', {\n\t\t'regex-literal': [\n\t\t\t{\n\t\t\t\tpattern: RegExp(/%r/.source + percentExpression + /[egimnosux]{0,6}/.source),\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation': interpolation,\n\t\t\t\t\t'regex': /[\\s\\S]+/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(^|[^/])\\/(?!\\/)(?:\\[[^\\r\\n\\]]+\\]|\\\\.|[^[/\\\\\\r\\n])+\\/[egimnosux]{0,6}(?=\\s*(?:$|[\\r\\n,.;})#]))/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation': interpolation,\n\t\t\t\t\t'regex': /[\\s\\S]+/\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\t'variable': /[@$]+[a-zA-Z_]\\w*(?:[?!]|\\b)/,\n\t\t'symbol': [\n\t\t\t{\n\t\t\t\tpattern: RegExp(/(^|[^:]):/.source + symbolName),\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: RegExp(/([\\r\\n{(,][ \\t]*)/.source + symbolName + /(?=:(?!:))/.source),\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t],\n\t\t'method-definition': {\n\t\t\tpattern: /(\\bdef\\s+)\\w+(?:\\s*\\.\\s*\\w+)?/,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'function': /\\b\\w+$/,\n\t\t\t\t'keyword': /^self\\b/,\n\t\t\t\t'class-name': /^\\w+/,\n\t\t\t\t'punctuation': /\\./\n\t\t\t}\n\t\t}\n\t});\n\n\tPrism.languages.insertBefore('ruby', 'string', {\n\t\t'string-literal': [\n\t\t\t{\n\t\t\t\tpattern: RegExp(/%[qQiIwWs]?/.source + percentExpression),\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation': interpolation,\n\t\t\t\t\t'string': /[\\s\\S]+/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /(\"|')(?:#\\{[^}]+\\}|#(?!\\{)|\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\#\\r\\n])*\\1/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation': interpolation,\n\t\t\t\t\t'string': /[\\s\\S]+/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /<<[-~]?([a-z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?[\\t ]*\\1/i,\n\t\t\t\talias: 'heredoc-string',\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'delimiter': {\n\t\t\t\t\t\tpattern: /^<<[-~]?[a-z_]\\w*|\\b[a-z_]\\w*$/i,\n\t\t\t\t\t\tinside: {\n\t\t\t\t\t\t\t'symbol': /\\b\\w+/,\n\t\t\t\t\t\t\t'punctuation': /^<<[-~]?/\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t'interpolation': interpolation,\n\t\t\t\t\t'string': /[\\s\\S]+/\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /<<[-~]?'([a-z_]\\w*)'[\\r\\n](?:.*[\\r\\n])*?[\\t ]*\\1/i,\n\t\t\t\talias: 'heredoc-string',\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'delimiter': {\n\t\t\t\t\t\tpattern: /^<<[-~]?'[a-z_]\\w*'|\\b[a-z_]\\w*$/i,\n\t\t\t\t\t\tinside: {\n\t\t\t\t\t\t\t'symbol': /\\b\\w+/,\n\t\t\t\t\t\t\t'punctuation': /^<<[-~]?'|'$/,\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t'string': /[\\s\\S]+/\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\t'command-literal': [\n\t\t\t{\n\t\t\t\tpattern: RegExp(/%x/.source + percentExpression),\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation': interpolation,\n\t\t\t\t\t'command': {\n\t\t\t\t\t\tpattern: /[\\s\\S]+/,\n\t\t\t\t\t\talias: 'string'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tpattern: /`(?:#\\{[^}]+\\}|#(?!\\{)|\\\\(?:\\r\\n|[\\s\\S])|[^\\\\`#\\r\\n])*`/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation': interpolation,\n\t\t\t\t\t'command': {\n\t\t\t\t\t\tpattern: /[\\s\\S]+/,\n\t\t\t\t\t\talias: 'string'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t});\n\n\tdelete Prism.languages.ruby.string;\n\n\tPrism.languages.insertBefore('ruby', 'number', {\n\t\t'builtin': /\\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\\b/,\n\t\t'constant': /\\b[A-Z][A-Z0-9_]*(?:[?!]|\\b)/\n\t});\n\n\tPrism.languages.rb = Prism.languages.ruby;\n}(Prism));\n","Prism.languages.javascript = Prism.languages.extend('clike', {\n\t'class-name': [\n\t\tPrism.languages.clike['class-name'],\n\t\t{\n\t\t\tpattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'keyword': [\n\t\t{\n\t\t\tpattern: /((?:^|\\})\\s*)catch\\b/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,\n\t\t\tlookbehind: true\n\t\t},\n\t],\n\t// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n\t'function': /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n\t'number': {\n\t\tpattern: RegExp(\n\t\t\t/(^|[^\\w$])/.source +\n\t\t\t'(?:' +\n\t\t\t(\n\t\t\t\t// constant\n\t\t\t\t/NaN|Infinity/.source +\n\t\t\t\t'|' +\n\t\t\t\t// binary integer\n\t\t\t\t/0[bB][01]+(?:_[01]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// octal integer\n\t\t\t\t/0[oO][0-7]+(?:_[0-7]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// hexadecimal integer\n\t\t\t\t/0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// decimal bigint\n\t\t\t\t/\\d+(?:_\\d+)*n/.source +\n\t\t\t\t'|' +\n\t\t\t\t// decimal number (integer or float) but no bigint\n\t\t\t\t/(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/.source\n\t\t\t) +\n\t\t\t')' +\n\t\t\t/(?![\\w$])/.source\n\t\t),\n\t\tlookbehind: true\n\t},\n\t'operator': /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n});\n\nPrism.languages.javascript['class-name'][0].pattern = /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/;\n\nPrism.languages.insertBefore('javascript', 'keyword', {\n\t'regex': {\n\t\tpattern: RegExp(\n\t\t\t// lookbehind\n\t\t\t// eslint-disable-next-line regexp/no-dupe-characters-character-class\n\t\t\t/((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/.source +\n\t\t\t// Regex pattern:\n\t\t\t// There are 2 regex patterns here. The RegExp set notation proposal added support for nested character\n\t\t\t// classes if the `v` flag is present. Unfortunately, nested CCs are both context-free and incompatible\n\t\t\t// with the only syntax, so we have to define 2 different regex patterns.\n\t\t\t/\\//.source +\n\t\t\t'(?:' +\n\t\t\t/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}/.source +\n\t\t\t'|' +\n\t\t\t// `v` flag syntax. This supports 3 levels of nested character classes.\n\t\t\t/(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source +\n\t\t\t')' +\n\t\t\t// lookahead\n\t\t\t/(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/.source\n\t\t),\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'regex-source': {\n\t\t\t\tpattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'language-regex',\n\t\t\t\tinside: Prism.languages.regex\n\t\t\t},\n\t\t\t'regex-delimiter': /^\\/|\\/$/,\n\t\t\t'regex-flags': /^[a-z]+$/,\n\t\t}\n\t},\n\t// This must be declared before keyword because we use \"function\" inside the look-forward\n\t'function-variable': {\n\t\tpattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n\t\talias: 'function'\n\t},\n\t'parameter': [\n\t\t{\n\t\t\tpattern: /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t}\n\t],\n\t'constant': /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n});\n\nPrism.languages.insertBefore('javascript', 'string', {\n\t'hashbang': {\n\t\tpattern: /^#!.*/,\n\t\tgreedy: true,\n\t\talias: 'comment'\n\t},\n\t'template-string': {\n\t\tpattern: /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'template-punctuation': {\n\t\t\t\tpattern: /^`|`$/,\n\t\t\t\talias: 'string'\n\t\t\t},\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation-punctuation': {\n\t\t\t\t\t\tpattern: /^\\$\\{|\\}$/,\n\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t},\n\t\t\t\t\trest: Prism.languages.javascript\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t},\n\t'string-property': {\n\t\tpattern: /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m,\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\talias: 'property'\n\t}\n});\n\nPrism.languages.insertBefore('javascript', 'operator', {\n\t'literal-property': {\n\t\tpattern: /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m,\n\t\tlookbehind: true,\n\t\talias: 'property'\n\t},\n});\n\nif (Prism.languages.markup) {\n\tPrism.languages.markup.tag.addInlined('script', 'javascript');\n\n\t// add attribute support for all DOM events.\n\t// https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events\n\tPrism.languages.markup.tag.addAttribute(\n\t\t/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,\n\t\t'javascript'\n\t);\n}\n\nPrism.languages.js = Prism.languages.javascript;\n","(function (Prism) {\n\n\tPrism.languages.typescript = Prism.languages.extend('javascript', {\n\t\t'class-name': {\n\t\t\tpattern: /(\\b(?:class|extends|implements|instanceof|interface|new|type)\\s+)(?!keyof\\b)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?:\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: null // see below\n\t\t},\n\t\t'builtin': /\\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\\b/,\n\t});\n\n\t// The keywords TypeScript adds to JavaScript\n\tPrism.languages.typescript.keyword.push(\n\t\t/\\b(?:abstract|declare|is|keyof|readonly|require)\\b/,\n\t\t// keywords that have to be followed by an identifier\n\t\t/\\b(?:asserts|infer|interface|module|namespace|type)\\b(?=\\s*(?:[{_$a-zA-Z\\xA0-\\uFFFF]|$))/,\n\t\t// This is for `import type *, {}`\n\t\t/\\btype\\b(?=\\s*(?:[\\{*]|$))/\n\t);\n\n\t// doesn't work with TS because TS is too complex\n\tdelete Prism.languages.typescript['parameter'];\n\tdelete Prism.languages.typescript['literal-property'];\n\n\t// a version of typescript specifically for highlighting types\n\tvar typeInside = Prism.languages.extend('typescript', {});\n\tdelete typeInside['class-name'];\n\n\tPrism.languages.typescript['class-name'].inside = typeInside;\n\n\tPrism.languages.insertBefore('typescript', 'function', {\n\t\t'decorator': {\n\t\t\tpattern: /@[$\\w\\xA0-\\uFFFF]+/,\n\t\t\tinside: {\n\t\t\t\t'at': {\n\t\t\t\t\tpattern: /^@/,\n\t\t\t\t\talias: 'operator'\n\t\t\t\t},\n\t\t\t\t'function': /^[\\s\\S]+/\n\t\t\t}\n\t\t},\n\t\t'generic-function': {\n\t\t\t// e.g. foo<T extends \"bar\" | \"baz\">( ...\n\t\t\tpattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\\s*\\()/,\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'function': /^#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/,\n\t\t\t\t'generic': {\n\t\t\t\t\tpattern: /<[\\s\\S]+/, // everything after the first <\n\t\t\t\t\talias: 'class-name',\n\t\t\t\t\tinside: typeInside\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\tPrism.languages.ts = Prism.languages.typescript;\n\n}(Prism));\n",null,null,null,null],"names":["exports","reactModule","require$$0","require$$1","jsxRuntimeModule","global","require$$2","e","n","o","r","t","isPlainObject","freeze","peek","_typeof","_toPrimitive","_toPropertyKey","_defineProperty","Text","isObject","_objectWithoutPropertiesLoose","_objectWithoutProperties","isElement","Element","_excluded$3","_excluded$2","ownKeys$8","_objectSpread$8","ownKeys$7","_objectSpread$7","ownKeys$6","_objectSpread$6","ownKeys$5","_objectSpread$5","ownKeys$4","_objectSpread$4","ownKeys$3","_objectSpread$3","_excluded$1","_excluded2$1","next","node","ownKeys$2","_objectSpread$2","ownKeys$1","_objectSpread$1","_excluded","_excluded2","removeNodes","ownKeys","_objectSpread","next$1","node$1","removeNodes$1","isHotkey","process","reactDomModule","createContext","useContext","useRef","useEffect","useLayoutEffect","useState","memo","forwardRef","Leaf","useCallback","useReducer","useMemo","Fragment","Element$1","Component","Hotkeys","scrollIntoView","_jsx","SlateNode","SlateElement","isActive","_jsxs","_Fragment","SlateRange","isBrowser","unitless","hashString","SlatePath","SlateEditor","Prism"],"mappings":"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","x_google_ignoreList":[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105]}