@wangeditor-next/yjs-for-react 0.1.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.
- package/CHANGELOG.md +0 -0
- package/README.md +4 -0
- package/dist/hooks/use-editor-static.d.ts +4 -0
- package/dist/hooks/useDecorateRemoteCursors.d.ts +24 -0
- package/dist/hooks/useDecorateRemoteCursors.d.ts.map +1 -0
- package/dist/hooks/useRemoteCursorEditor.d.ts +3 -0
- package/dist/hooks/useRemoteCursorEditor.d.ts.map +1 -0
- package/dist/hooks/useRemoteCursorOverlayPositions.d.ts +18 -0
- package/dist/hooks/useRemoteCursorOverlayPositions.d.ts.map +1 -0
- package/dist/hooks/useRemoteCursorStateStore.d.ts +4 -0
- package/dist/hooks/useRemoteCursorStateStore.d.ts.map +1 -0
- package/dist/hooks/useRemoteCursorStates.d.ts +3 -0
- package/dist/hooks/useRemoteCursorStates.d.ts.map +1 -0
- package/dist/hooks/useUnsetCursorPositionOnBlur.d.ts +2 -0
- package/dist/hooks/useUnsetCursorPositionOnBlur.d.ts.map +1 -0
- package/dist/hooks/utils.d.ts +3 -0
- package/dist/hooks/utils.d.ts.map +1 -0
- package/dist/index.cjs +453 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.esm.js +40 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.global.js +31877 -0
- package/dist/index.global.js.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils/getCursorRange.d.ts +3 -0
- package/dist/utils/getCursorRange.d.ts.map +1 -0
- package/dist/utils/getOverlayPosition.d.ts +23 -0
- package/dist/utils/getOverlayPosition.d.ts.map +1 -0
- package/dist/utils/react-editor-to-dom-range-safe.d.ts +3 -0
- package/dist/utils/react-editor-to-dom-range-safe.d.ts.map +1 -0
- package/package.json +54 -0
- package/rollup.config.js +28 -0
- package/src/hooks/use-editor-static.tsx +18 -0
- package/src/hooks/useRemoteCursorEditor.ts +14 -0
- package/src/hooks/useRemoteCursorOverlayPositions.tsx +131 -0
- package/src/hooks/useRemoteCursorStateStore.ts +85 -0
- package/src/hooks/useRemoteCursorStates.ts +22 -0
- package/src/hooks/utils.ts +54 -0
- package/src/index.ts +11 -0
- package/src/types.ts +1 -0
- package/src/utils/getCursorRange.ts +34 -0
- package/src/utils/getOverlayPosition.ts +107 -0
- package/src/utils/react-editor-to-dom-range-safe.ts +10 -0
- package/tsconfig.json +8 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/hooks/use-editor-static.tsx","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../../../node_modules/use-sync-external-store/shim/index.js","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../../../node_modules/core-js/internals/engine-v8-version.js","../../../node_modules/use-sync-external-store/shim/with-selector.js","../../../node_modules/core-js/internals/global.js","../../../node_modules/core-js/internals/function-uncurry-this.js","../../../node_modules/core-js/internals/fails.js","../../../node_modules/core-js/internals/classof-raw.js","../../../node_modules/core-js/internals/indexed-object.js","../../../node_modules/core-js/internals/require-object-coercible.js","../../../node_modules/core-js/internals/to-indexed-object.js","../../../node_modules/core-js/internals/set-global.js","../../../node_modules/core-js/internals/shared-store.js","../../../node_modules/core-js/internals/shared.js","../../../node_modules/core-js/internals/to-object.js","../../../node_modules/core-js/internals/has-own-property.js","../../../node_modules/core-js/internals/uid.js","../../../node_modules/core-js/internals/is-callable.js","../../../node_modules/core-js/internals/get-built-in.js","../../../node_modules/core-js/internals/engine-user-agent.js","../../../node_modules/core-js/internals/object-create.js","../../../node_modules/core-js/internals/native-symbol.js","../../../node_modules/core-js/internals/use-symbol-as-uid.js","../../../node_modules/core-js/internals/well-known-symbol.js","../../../node_modules/core-js/internals/is-object.js","../../../node_modules/core-js/internals/an-object.js","../../../node_modules/core-js/internals/descriptors.js","../../../node_modules/core-js/internals/document-create-element.js","../../../node_modules/core-js/internals/ie8-dom-define.js","../../../node_modules/core-js/internals/function-call.js","../../../node_modules/core-js/internals/object-is-prototype-of.js","../../../node_modules/core-js/internals/is-symbol.js","../../../node_modules/core-js/internals/try-to-string.js","../../../node_modules/core-js/internals/a-callable.js","../../../node_modules/core-js/internals/get-method.js","../../../node_modules/core-js/internals/ordinary-to-primitive.js","../../../node_modules/core-js/internals/to-primitive.js","../../../node_modules/core-js/internals/to-property-key.js","../../../node_modules/core-js/internals/object-define-property.js","../../../node_modules/core-js/internals/to-integer-or-infinity.js","../../../node_modules/core-js/internals/to-absolute-index.js","../../../node_modules/core-js/internals/to-length.js","../../../node_modules/core-js/internals/length-of-array-like.js","../../../node_modules/core-js/internals/array-includes.js","../../../node_modules/core-js/internals/hidden-keys.js","../../../node_modules/core-js/internals/object-keys-internal.js","../../../node_modules/core-js/internals/enum-bug-keys.js","../../../node_modules/core-js/internals/object-keys.js","../../../node_modules/core-js/internals/object-define-properties.js","../../../node_modules/core-js/internals/html.js","../../../node_modules/core-js/internals/shared-key.js","../../../node_modules/core-js/internals/add-to-unscopables.js","../../../node_modules/core-js/internals/iterators.js","../../../node_modules/core-js/internals/inspect-source.js","../../../node_modules/core-js/internals/internal-state.js","../../../node_modules/core-js/internals/native-weak-map.js","../../../node_modules/core-js/internals/create-property-descriptor.js","../../../node_modules/core-js/internals/create-non-enumerable-property.js","../../../node_modules/core-js/internals/iterators-core.js","../../../node_modules/core-js/internals/object-property-is-enumerable.js","../../../node_modules/core-js/internals/object-get-own-property-descriptor.js","../../../node_modules/core-js/internals/function-name.js","../../../node_modules/core-js/internals/redefine.js","../../../node_modules/core-js/internals/object-get-own-property-names.js","../../../node_modules/core-js/internals/object-get-own-property-symbols.js","../../../node_modules/core-js/internals/own-keys.js","../../../node_modules/core-js/internals/copy-constructor-properties.js","../../../node_modules/core-js/internals/is-forced.js","../../../node_modules/core-js/internals/export.js","../../../node_modules/core-js/internals/correct-prototype-getter.js","../../../node_modules/core-js/internals/object-get-prototype-of.js","../../../node_modules/core-js/internals/set-to-string-tag.js","../../../node_modules/core-js/internals/create-iterator-constructor.js","../../../node_modules/core-js/internals/a-possible-prototype.js","../../../node_modules/core-js/internals/object-set-prototype-of.js","../../../node_modules/core-js/internals/define-iterator.js","../../../node_modules/core-js/modules/es.array.iterator.js","../../../node_modules/core-js/internals/to-string-tag-support.js","../../../node_modules/core-js/internals/classof.js","../../../node_modules/core-js/internals/object-to-string.js","../../../node_modules/core-js/modules/es.object.to-string.js","../../../node_modules/core-js/internals/to-string.js","../../../node_modules/core-js/modules/es.regexp.to-string.js","../../../node_modules/core-js/internals/regexp-flags.js","../../../node_modules/core-js/internals/create-property.js","../../../node_modules/core-js/internals/array-slice-simple.js","../../../node_modules/core-js/internals/object-get-own-property-names-external.js","../../../node_modules/core-js/internals/array-buffer-non-extensible.js","../../../node_modules/core-js/internals/object-is-extensible.js","../../../node_modules/core-js/internals/freezing.js","../../../node_modules/core-js/internals/internal-metadata.js","../../../node_modules/core-js/internals/function-bind-context.js","../../../node_modules/core-js/internals/is-array-iterator-method.js","../../../node_modules/core-js/internals/get-iterator-method.js","../../../node_modules/core-js/internals/get-iterator.js","../../../node_modules/core-js/internals/iterator-close.js","../../../node_modules/core-js/internals/iterate.js","../../../node_modules/core-js/internals/an-instance.js","../../../node_modules/core-js/internals/check-correctness-of-iteration.js","../../../node_modules/core-js/internals/collection.js","../../../node_modules/core-js/internals/inherit-if-required.js","../../../node_modules/core-js/internals/redefine-all.js","../../../node_modules/core-js/internals/set-species.js","../../../node_modules/core-js/internals/collection-strong.js","../../../node_modules/core-js/modules/es.set.js","../../../node_modules/core-js/internals/string-multibyte.js","../../../node_modules/core-js/modules/es.string.iterator.js","../../../node_modules/core-js/internals/is-array.js","../../../node_modules/core-js/internals/is-constructor.js","../../../node_modules/core-js/internals/array-species-constructor.js","../../../node_modules/core-js/internals/array-species-create.js","../../../node_modules/core-js/internals/array-iteration.js","../../../node_modules/core-js/internals/collection-weak.js","../../../node_modules/core-js/modules/es.weak-map.js","../../../node_modules/core-js/internals/dom-iterables.js","../../../node_modules/core-js/internals/array-method-is-strict.js","../../../node_modules/core-js/internals/dom-token-list-prototype.js","../../../node_modules/core-js/internals/array-for-each.js","../../../node_modules/core-js/modules/web.dom-collections.for-each.js","../../../node_modules/core-js/modules/web.dom-collections.iterator.js","../../yjs/dist/index.esm.js","../src/hooks/useRemoteCursorEditor.ts","../src/hooks/useRemoteCursorStateStore.ts","../src/hooks/useRemoteCursorStates.ts","../src/utils/getCursorRange.ts","../../../node_modules/core-js/internals/array-method-has-species-support.js","../../../node_modules/core-js/modules/es.array.map.js","../../../node_modules/core-js/internals/object-to-array.js","../../../node_modules/core-js/modules/es.object.entries.js","../../../node_modules/core-js/modules/es.object.freeze.js","../../../node_modules/core-js/modules/es.object.from-entries.js","../../../node_modules/core-js/modules/es.object.keys.js","../src/utils/getOverlayPosition.ts","../src/utils/react-editor-to-dom-range-safe.ts","../src/hooks/useRemoteCursorOverlayPositions.tsx","../src/hooks/utils.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport { IDomEditor } from '@wangeditor-next/editor'\n\nexport const EditorContext = createContext<IDomEditor | null>(null)\n\nexport const useEditorStatic = (): IDomEditor | null => {\n const editor = useContext(EditorContext)\n if (!editor) {\n // throw new Error(\n // `The \\`useEditorStatic\\` hook must be used inside the <EditorContext> component's context.`\n // )\n console.warn(\n \"The `useEditorStatic` hook must be used inside the <EditorContext> component's context.\"\n )\n }\n\n return editor\n}\n","/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its 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'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its 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'use strict';var h=require(\"react\"),n=require(\"use-sync-external-store/shim\");function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q=\"function\"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);\nu(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar callBind = bind && bind.bind(call);\n\nmodule.exports = bind ? function (fn) {\n return fn && callBind(call, fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.19.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var call = Function.prototype.call;\n\nmodule.exports = call.bind ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","module.exports = {};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","module.exports = {};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n redefine(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var global = require('../internals/global');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar Object = global.Object;\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof Object ? ObjectPrototype : null;\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !hasOwn(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n redefine(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar n$ToString = RegExpPrototype[TO_STRING];\nvar getFlags = uncurryThis(regExpFlags);\n\nvar NOT_GENERIC = fails(function () { return n$ToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = $toString(R.source);\n var rf = R.flags;\n var f = $toString(rf === undefined && isPrototypeOf(RegExpPrototype, R) && !('flags' in RegExpPrototype) ? getFlags(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar Array = global.Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : bind ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw TypeError(tryToString(argument) + ' is not iterable');\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TypeError = global.TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw TypeError('Incorrect invocation');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function (argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function (argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n // we can't check .prototype since constructors produced by .bind haven't it\n } return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n};\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar redefineAll = require('../internals/redefine-all');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar hasOwn = require('../internals/has-own-property');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar splice = uncurryThis([].splice);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (store) {\n return store.frozen || (store.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) splice(this.entries, index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n redefineAll(Prototype, {\n // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && hasOwn(data, state.id) && delete data[state.id];\n },\n // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n // https://tc39.es/ecma262/#sec-weakset.prototype.has\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && hasOwn(data, state.id);\n }\n });\n\n redefineAll(Prototype, IS_MAP ? {\n // `WeakMap.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // `WeakMap.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // `WeakSet.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-weakset.prototype.add\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return Constructor;\n }\n};\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar redefineAll = require('../internals/redefine-all');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar isExtensible = require('../internals/object-is-extensible');\nvar enforceIternalState = require('../internals/internal-state').enforce;\nvar NATIVE_WEAK_MAP = require('../internals/native-weak-map');\n\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n return function WeakMap() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n};\n\n// `WeakMap` constructor\n// https://tc39.es/ecma262/#sec-weakmap-constructor\nvar $WeakMap = collection('WeakMap', wrapper, collectionWeak);\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n InternalMetadataModule.enable();\n var WeakMapPrototype = $WeakMap.prototype;\n var nativeDelete = uncurryThis(WeakMapPrototype['delete']);\n var nativeHas = uncurryThis(WeakMapPrototype.has);\n var nativeGet = uncurryThis(WeakMapPrototype.get);\n var nativeSet = uncurryThis(WeakMapPrototype.set);\n redefineAll(WeakMapPrototype, {\n 'delete': function (key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeDelete(this, key) || state.frozen['delete'](key);\n } return nativeDelete(this, key);\n },\n has: function has(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas(this, key) || state.frozen.has(key);\n } return nativeHas(this, key);\n },\n get: function get(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key);\n } return nativeGet(this, key);\n },\n set: function set(key, value) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value);\n } else nativeSet(this, key, value);\n return this;\n }\n });\n}\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","import { Text, Node, Path, Editor, Transforms } from 'slate';\nimport * as Y from 'yjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nfunction isObject(o) {\r\n return Object.prototype.toString.call(o) === '[object Object]';\r\n}\r\nfunction isPlainObject(o) {\r\n if (!isObject(o)) {\r\n return false;\r\n }\r\n // If has modified constructor\r\n var ctor = o.constructor;\r\n if (ctor === undefined) {\r\n return true;\r\n }\r\n // If has modified prototype\r\n var prot = ctor.prototype;\r\n if (isObject(prot) === false) {\r\n return false;\r\n }\r\n // If constructor does not have an Object-specific method\r\n if (Object.prototype.hasOwnProperty.call(prot, 'isPrototypeOfOf')) {\r\n return false;\r\n }\r\n // Most likely a plain Object\r\n return true;\r\n}\r\n// Slates deep equality function: https://github.com/ianstormtaylor/slate/blob/68aff89e892fe15a16314398ff052ade6068900b/packages/slate/src/utils/deep-equal.ts#L13\r\n// We have to match slates deepEquals behavior to merge insert deltas in the same way slate does.\r\nfunction deepEquals(node, another) {\r\n // eslint-disable-next-line guard-for-in\r\n for (var key in node) {\r\n var a = node[key];\r\n var b = another[key];\r\n if (isPlainObject(a) && isPlainObject(b)) {\r\n if (!deepEquals(a, b)) {\r\n return false;\r\n }\r\n }\r\n else if (Array.isArray(a) && Array.isArray(b)) {\r\n if (a.length !== b.length)\r\n return false;\r\n for (var i = 0; i < a.length; i++) {\r\n if (a[i] !== b[i]) {\r\n return false;\r\n }\r\n }\r\n }\r\n else if (a !== b) {\r\n return false;\r\n }\r\n }\r\n for (var key in another) {\r\n if (node[key] === undefined && another[key] !== undefined) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction pick(obj) {\r\n var keys = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n keys[_i - 1] = arguments[_i];\r\n }\r\n return Object.fromEntries(Object.entries(obj).filter(function (_a) {\r\n var _b = __read(_a, 1), key = _b[0];\r\n return keys.includes(key);\r\n }));\r\n}\r\nfunction omit(obj) {\r\n var keys = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n keys[_i - 1] = arguments[_i];\r\n }\r\n return Object.fromEntries(Object.entries(obj).filter(function (_a) {\r\n var _b = __read(_a, 1), key = _b[0];\r\n return !keys.includes(key);\r\n }));\r\n}\r\nfunction omitNullEntries(obj) {\r\n return Object.fromEntries(Object.entries(obj).filter(function (_a) {\r\n var _b = __read(_a, 2), value = _b[1];\r\n return value !== null;\r\n }));\r\n}\n\nfunction normalizeInsertDelta(delta) {\r\n var e_1, _a;\r\n var _b, _c;\r\n var normalized = [];\r\n try {\r\n for (var delta_1 = __values(delta), delta_1_1 = delta_1.next(); !delta_1_1.done; delta_1_1 = delta_1.next()) {\r\n var element = delta_1_1.value;\r\n if (typeof element.insert === 'string' && element.insert.length === 0) {\r\n continue;\r\n }\r\n var prev = normalized[normalized.length - 1];\r\n if (!prev || typeof prev.insert !== 'string' || typeof element.insert !== 'string') {\r\n normalized.push(element);\r\n continue;\r\n }\r\n var merge = prev.attributes === element.attributes ||\r\n (!prev.attributes === !element.attributes &&\r\n deepEquals((_b = prev.attributes) !== null && _b !== void 0 ? _b : {}, (_c = element.attributes) !== null && _c !== void 0 ? _c : {}));\r\n if (merge) {\r\n prev.insert += element.insert;\r\n continue;\r\n }\r\n normalized.push(element);\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (delta_1_1 && !delta_1_1.done && (_a = delta_1.return)) _a.call(delta_1);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n return normalized;\r\n}\r\nfunction yTextToInsertDelta(yText) {\r\n return normalizeInsertDelta(yText.toDelta());\r\n}\r\nfunction getInsertLength(_a) {\r\n var insert = _a.insert;\r\n return typeof insert === 'string' ? insert.length : 1;\r\n}\r\nfunction getInsertDeltaLength(delta) {\r\n return delta.reduce(function (curr, element) { return curr + getInsertLength(element); }, 0);\r\n}\r\nfunction sliceInsertDelta(delta, start, length) {\r\n if (length < 1) {\r\n return [];\r\n }\r\n var currentOffset = 0;\r\n var sliced = [];\r\n var end = start + length;\r\n for (var i = 0; i < delta.length; i++) {\r\n if (currentOffset >= end) {\r\n break;\r\n }\r\n var element = delta[i];\r\n var elementLength = getInsertLength(element);\r\n if (currentOffset + elementLength <= start) {\r\n currentOffset += elementLength;\r\n continue;\r\n }\r\n if (typeof element.insert !== 'string') {\r\n currentOffset += elementLength;\r\n sliced.push(element);\r\n continue;\r\n }\r\n var startOffset = Math.max(0, start - currentOffset);\r\n var endOffset = Math.min(elementLength, elementLength - (currentOffset + elementLength - end));\r\n sliced.push(__assign(__assign({}, element), { insert: element.insert.slice(startOffset, endOffset) }));\r\n currentOffset += elementLength;\r\n }\r\n return sliced;\r\n}\n\nfunction getProperties(node) {\r\n return omit(node, (Text.isText(node) ? 'text' : 'children'));\r\n}\n\nfunction yTextToSlateElement(yText) {\r\n var delta = yTextToInsertDelta(yText);\r\n var children = delta.length > 0 ? delta.map(deltaInsertToSlateNode) : [{ text: '' }];\r\n return __assign(__assign({}, yText.getAttributes()), { children: children });\r\n}\r\nfunction deltaInsertToSlateNode(insert) {\r\n if (typeof insert.insert === 'string') {\r\n return __assign(__assign({}, insert.attributes), { text: insert.insert });\r\n }\r\n return yTextToSlateElement(insert.insert);\r\n}\r\nfunction slateNodesToInsertDelta(nodes) {\r\n return nodes.map(function (node) {\r\n if (Text.isText(node)) {\r\n return { insert: node.text, attributes: getProperties(node) };\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n return { insert: slateElementToYText(node) };\r\n });\r\n}\r\nfunction slateElementToYText(_a) {\r\n var children = _a.children, attributes = __rest(_a, [\"children\"]);\r\n var yElement = new Y.XmlText();\r\n Object.entries(attributes).forEach(function (_a) {\r\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\r\n yElement.setAttribute(key, value);\r\n });\r\n yElement.applyDelta(slateNodesToInsertDelta(children), { sanitize: false });\r\n return yElement;\r\n}\n\nfunction getSlateNodeYLength(node) {\r\n if (!node) {\r\n return 0;\r\n }\r\n return Text.isText(node) ? node.text.length : 1;\r\n}\r\nfunction slatePathOffsetToYOffset(element, pathOffset) {\r\n return element.children\r\n .slice(0, pathOffset)\r\n .reduce(function (yOffset, node) { return yOffset + getSlateNodeYLength(node); }, 0);\r\n}\r\nfunction getYTarget(yRoot, slateRoot, path) {\r\n var _a;\r\n if (path.length === 0) {\r\n throw new Error('Path has to a have a length >= 1');\r\n }\r\n if (Text.isText(slateRoot)) {\r\n throw new Error('Cannot descent into slate text');\r\n }\r\n var _b = __read(path), pathOffset = _b[0], childPath = _b.slice(1);\r\n var yOffset = slatePathOffsetToYOffset(slateRoot, pathOffset);\r\n var targetNode = slateRoot.children[pathOffset];\r\n var delta = yTextToInsertDelta(yRoot);\r\n var targetLength = getSlateNodeYLength(targetNode);\r\n var targetDelta = sliceInsertDelta(delta, yOffset, targetLength);\r\n if (targetDelta.length > 1) {\r\n throw new Error(\"Path doesn't match yText, yTarget spans multiple nodes\");\r\n }\r\n var yTarget = (_a = targetDelta[0]) === null || _a === void 0 ? void 0 : _a.insert;\r\n if (childPath.length > 0) {\r\n if (!(yTarget instanceof Y.XmlText)) {\r\n throw new Error(\"Path doesn't match yText, cannot descent into non-yText\");\r\n }\r\n return getYTarget(yTarget, targetNode, childPath);\r\n }\r\n return {\r\n yParent: yRoot,\r\n textRange: { start: yOffset, end: yOffset + targetLength },\r\n yTarget: yTarget instanceof Y.XmlText ? yTarget : undefined,\r\n slateParent: slateRoot,\r\n slateTarget: targetNode,\r\n targetDelta: targetDelta,\r\n };\r\n}\r\nfunction yOffsetToSlateOffsets(parent, yOffset, opts) {\r\n if (opts === void 0) { opts = {}; }\r\n var _a = opts.assoc, assoc = _a === void 0 ? 0 : _a, _b = opts.insert, insert = _b === void 0 ? false : _b;\r\n var currentOffset = 0;\r\n var lastNonEmptyPathOffset = 0;\r\n for (var pathOffset = 0; pathOffset < parent.children.length; pathOffset++) {\r\n var child_1 = parent.children[pathOffset];\r\n var nodeLength = Text.isText(child_1) ? child_1.text.length : 1;\r\n if (nodeLength > 0) {\r\n lastNonEmptyPathOffset = pathOffset;\r\n }\r\n var endOffset = currentOffset + nodeLength;\r\n if (nodeLength > 0 && (assoc >= 0 ? endOffset > yOffset : endOffset >= yOffset)) {\r\n return [pathOffset, yOffset - currentOffset];\r\n }\r\n currentOffset += nodeLength;\r\n }\r\n if (yOffset > currentOffset + (insert ? 1 : 0)) {\r\n throw new Error('yOffset out of bounds');\r\n }\r\n if (insert) {\r\n return [parent.children.length, 0];\r\n }\r\n var child = parent.children[lastNonEmptyPathOffset];\r\n var textOffset = Text.isText(child) ? child.text.length : 1;\r\n return [lastNonEmptyPathOffset, textOffset];\r\n}\r\nfunction getSlatePath(sharedRoot, slateRoot, yText) {\r\n var yNodePath = [yText];\r\n while (yNodePath[0] !== sharedRoot) {\r\n var yParent = yNodePath[0].parent;\r\n if (!yParent) {\r\n throw new Error(\"yText isn't a descendant of root element\");\r\n }\r\n if (!(yParent instanceof Y.XmlText)) {\r\n throw new Error('Unexpected y parent type');\r\n }\r\n yNodePath.unshift(yParent);\r\n }\r\n if (yNodePath.length < 2) {\r\n return [];\r\n }\r\n var slateParent = slateRoot;\r\n return yNodePath.reduce(function (path, yParent, idx) {\r\n var e_1, _a;\r\n var yChild = yNodePath[idx + 1];\r\n if (!yChild) {\r\n return path;\r\n }\r\n var yOffset = 0;\r\n var currentDelta = yTextToInsertDelta(yParent);\r\n try {\r\n for (var currentDelta_1 = __values(currentDelta), currentDelta_1_1 = currentDelta_1.next(); !currentDelta_1_1.done; currentDelta_1_1 = currentDelta_1.next()) {\r\n var element = currentDelta_1_1.value;\r\n if (element.insert === yChild) {\r\n break;\r\n }\r\n yOffset += typeof element.insert === 'string' ? element.insert.length : 1;\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (currentDelta_1_1 && !currentDelta_1_1.done && (_a = currentDelta_1.return)) _a.call(currentDelta_1);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n if (Text.isText(slateParent)) {\r\n throw new Error('Cannot descent into slate text');\r\n }\r\n var _b = __read(yOffsetToSlateOffsets(slateParent, yOffset), 1), pathOffset = _b[0];\r\n slateParent = slateParent.children[pathOffset];\r\n return path.concat(pathOffset);\r\n }, []);\r\n}\n\nfunction applyDelta(node, slatePath, delta) {\r\n var ops = [];\r\n var yOffset = delta.reduce(function (length, change) {\r\n if ('retain' in change) {\r\n return length + change.retain;\r\n }\r\n if ('delete' in change) {\r\n return length + change.delete;\r\n }\r\n return length;\r\n }, 0);\r\n // Apply changes in reverse order to avoid path changes.\r\n delta.reverse().forEach(function (change) {\r\n var _a;\r\n if ('attributes' in change && 'retain' in change) {\r\n var _b = __read(yOffsetToSlateOffsets(node, yOffset - change.retain), 2), startPathOffset = _b[0], startTextOffset = _b[1];\r\n var _c = __read(yOffsetToSlateOffsets(node, yOffset, { assoc: -1 }), 2), endPathOffset = _c[0], endTextOffset = _c[1];\r\n for (var pathOffset = endPathOffset; pathOffset >= startPathOffset; pathOffset--) {\r\n var child = node.children[pathOffset];\r\n var childPath = __spreadArray(__spreadArray([], __read(slatePath)), [pathOffset]);\r\n if (!Text.isText(child)) {\r\n // Ignore attribute updates on non-text nodes (which are backed by Y.XmlText)\r\n // to be consistent with deltaInsertToSlateNode. Y.XmlText attributes don't show\r\n // up in deltas but in key changes (YEvent.changes.keys).\r\n continue;\r\n }\r\n var newProperties = change.attributes;\r\n var properties = pick.apply(void 0, __spreadArray([node], __read(Object.keys(change.attributes))));\r\n if (pathOffset === startPathOffset || pathOffset === endPathOffset) {\r\n var start = pathOffset === startPathOffset ? startTextOffset : 0;\r\n var end = pathOffset === endPathOffset ? endTextOffset : child.text.length;\r\n if (end !== child.text.length) {\r\n ops.push({\r\n type: 'split_node',\r\n path: childPath,\r\n position: end,\r\n properties: getProperties(child),\r\n });\r\n }\r\n if (start !== 0) {\r\n ops.push({\r\n type: 'split_node',\r\n path: childPath,\r\n position: start,\r\n properties: omitNullEntries(__assign(__assign({}, getProperties(child)), newProperties)),\r\n });\r\n continue;\r\n }\r\n }\r\n ops.push({\r\n type: 'set_node',\r\n newProperties: newProperties,\r\n path: childPath,\r\n properties: properties,\r\n });\r\n }\r\n }\r\n if ('retain' in change) {\r\n yOffset -= change.retain;\r\n }\r\n if ('delete' in change) {\r\n var _d = __read(yOffsetToSlateOffsets(node, yOffset - change.delete), 2), startPathOffset = _d[0], startTextOffset = _d[1];\r\n var _e = __read(yOffsetToSlateOffsets(node, yOffset, { assoc: -1 }), 2), endPathOffset = _e[0], endTextOffset = _e[1];\r\n for (var pathOffset = endTextOffset === 0 ? endPathOffset - 1 : endPathOffset; pathOffset >= startPathOffset; pathOffset--) {\r\n var child = node.children[pathOffset];\r\n var childPath = __spreadArray(__spreadArray([], __read(slatePath)), [pathOffset]);\r\n if (Text.isText(child) &&\r\n (pathOffset === startPathOffset || pathOffset === endPathOffset)) {\r\n var start = pathOffset === startPathOffset ? startTextOffset : 0;\r\n var end = pathOffset === endPathOffset ? endTextOffset : child.text.length;\r\n ops.push({\r\n type: 'remove_text',\r\n offset: start,\r\n text: child.text.slice(start, end),\r\n path: childPath,\r\n });\r\n yOffset -= end - start;\r\n continue;\r\n }\r\n ops.push({\r\n type: 'remove_node',\r\n node: child,\r\n path: childPath,\r\n });\r\n yOffset -= getSlateNodeYLength(child);\r\n }\r\n return;\r\n }\r\n if ('insert' in change) {\r\n var _f = __read(yOffsetToSlateOffsets(node, yOffset, {\r\n insert: true,\r\n }), 2), pathOffset = _f[0], textOffset = _f[1];\r\n var child = node.children[pathOffset];\r\n var childPath = __spreadArray(__spreadArray([], __read(slatePath)), [pathOffset]);\r\n if (Text.isText(child)) {\r\n var lastOp = ops[ops.length - 1];\r\n /**\r\n * The props that exist at the current path\r\n * Since we're not actually using slate to update the node\r\n * this is a simulation\r\n */\r\n var currentProps = lastOp != null && lastOp.type === 'insert_node' ? lastOp.node : getProperties(child);\r\n var lastPath = [];\r\n if (lastOp != null &&\r\n (lastOp.type === 'insert_node' ||\r\n lastOp.type === 'insert_text' ||\r\n lastOp.type === 'split_node' ||\r\n lastOp.type === 'set_node')) {\r\n lastPath = lastOp.path;\r\n }\r\n /**\r\n * If the insert is a string and the attributes are the same as the\r\n * props at the current path, we can just insert a text node\r\n */\r\n if (typeof change.insert === 'string' &&\r\n deepEquals((_a = change.attributes) !== null && _a !== void 0 ? _a : {}, currentProps) &&\r\n Path.equals(childPath, lastPath)) {\r\n return ops.push({\r\n type: 'insert_text',\r\n offset: textOffset,\r\n text: change.insert,\r\n path: childPath,\r\n });\r\n }\r\n var toInsert = deltaInsertToSlateNode(change);\r\n if (textOffset === 0) {\r\n return ops.push({\r\n type: 'insert_node',\r\n path: childPath,\r\n node: toInsert,\r\n });\r\n }\r\n if (textOffset < child.text.length) {\r\n ops.push({\r\n type: 'split_node',\r\n path: childPath,\r\n position: textOffset,\r\n properties: getProperties(child),\r\n });\r\n }\r\n return ops.push({\r\n type: 'insert_node',\r\n path: Path.next(childPath),\r\n node: toInsert,\r\n });\r\n }\r\n return ops.push({\r\n type: 'insert_node',\r\n path: childPath,\r\n node: deltaInsertToSlateNode(change),\r\n });\r\n }\r\n });\r\n return ops;\r\n}\r\nfunction translateYTextEvent(sharedRoot, editor, event) {\r\n var target = event.target, changes = event.changes;\r\n var delta = event.delta;\r\n if (!(target instanceof Y.XmlText)) {\r\n throw new Error('Unexpected target node type');\r\n }\r\n var ops = [];\r\n var slatePath = getSlatePath(sharedRoot, editor, target);\r\n var targetElement = Node.get(editor, slatePath);\r\n if (Text.isText(targetElement)) {\r\n throw new Error('Cannot apply yTextEvent to text node');\r\n }\r\n var keyChanges = Array.from(changes.keys.entries());\r\n if (slatePath.length > 0 && keyChanges.length > 0) {\r\n var newProperties = Object.fromEntries(keyChanges.map(function (_a) {\r\n var _b = __read(_a, 2), key = _b[0], info = _b[1];\r\n return [\r\n key,\r\n info.action === 'delete' ? null : target.getAttribute(key),\r\n ];\r\n }));\r\n var properties = Object.fromEntries(keyChanges.map(function (_a) {\r\n var _b = __read(_a, 1), key = _b[0];\r\n return [key, targetElement[key]];\r\n }));\r\n ops.push({ type: 'set_node', newProperties: newProperties, properties: properties, path: slatePath });\r\n }\r\n if (delta.length > 0) {\r\n ops.push.apply(ops, __spreadArray([], __read(applyDelta(targetElement, slatePath, delta))));\r\n }\r\n return ops;\r\n}\n\n/**\r\n * Translate a yjs event into slate operations. The editor state has to match the\r\n * yText state before the event occurred.\r\n *\r\n * @param sharedType\r\n * @param op\r\n */\r\nfunction translateYjsEvent(sharedRoot, editor, event) {\r\n if (event instanceof Y.YTextEvent) {\r\n return translateYTextEvent(sharedRoot, editor, event);\r\n }\r\n throw new Error('Unexpected Y event type');\r\n}\r\n/**\r\n * Translates yjs events into slate operations and applies them to the editor. The\r\n * editor state has to match the yText state before the events occurred.\r\n *\r\n * @param sharedRoot\r\n * @param editor\r\n * @param events\r\n */\r\nfunction applyYjsEvents(sharedRoot, editor, events) {\r\n Editor.withoutNormalizing(editor, function () {\r\n events.forEach(function (event) {\r\n translateYjsEvent(sharedRoot, editor, event).forEach(function (op) {\r\n editor.apply(op);\r\n });\r\n });\r\n });\r\n}\n\nfunction insertNode(sharedRoot, slateRoot, op) {\r\n var _a = getYTarget(sharedRoot, slateRoot, op.path), yParent = _a.yParent, textRange = _a.textRange;\r\n if (Text.isText(op.node)) {\r\n return yParent.insert(textRange.start, op.node.text, getProperties(op.node));\r\n }\r\n yParent.insertEmbed(textRange.start, slateElementToYText(op.node));\r\n}\n\nfunction cloneInsertDeltaDeep(delta) {\r\n return delta.map(function (element) {\r\n if (typeof element.insert === 'string') {\r\n return element;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n return __assign(__assign({}, element), { insert: cloneDeep(element.insert) });\r\n });\r\n}\r\nfunction cloneDeep(yText) {\r\n var clone = new Y.XmlText();\r\n var attributes = yText.getAttributes();\r\n Object.entries(attributes).forEach(function (_a) {\r\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\r\n clone.setAttribute(key, value);\r\n });\r\n clone.applyDelta(cloneInsertDeltaDeep(yTextToInsertDelta(yText)), {\r\n sanitize: false,\r\n });\r\n return clone;\r\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction assertDocumentAttachment(sharedType) {\r\n if (!sharedType.doc) {\r\n throw new Error(\"shared type isn't attached to a document\");\r\n }\r\n}\n\nvar STORED_POSITION_PREFIX = '__slateYjsStoredPosition_';\r\nfunction slatePointToRelativePosition(sharedRoot, slateRoot, point) {\r\n var _a = getYTarget(sharedRoot, slateRoot, point.path), yTarget = _a.yTarget, yParent = _a.yParent, textRange = _a.textRange;\r\n if (yTarget) {\r\n throw new Error('Slate point points to a non-text element inside sharedRoot');\r\n }\r\n var index = textRange.start + point.offset;\r\n return Y.createRelativePositionFromTypeIndex(yParent, index, index === textRange.end ? -1 : 0);\r\n}\r\nfunction absolutePositionToSlatePoint(sharedRoot, slateRoot, _a) {\r\n var type = _a.type, index = _a.index, assoc = _a.assoc;\r\n if (!(type instanceof Y.XmlText)) {\r\n throw new Error('Absolute position points to a non-XMLText');\r\n }\r\n var parentPath = getSlatePath(sharedRoot, slateRoot, type);\r\n var parent = Node.get(slateRoot, parentPath);\r\n if (Text.isText(parent)) {\r\n throw new Error(\"Absolute position doesn't match slateRoot, cannot descent into text\");\r\n }\r\n var _b = __read(yOffsetToSlateOffsets(parent, index, {\r\n assoc: assoc,\r\n }), 2), pathOffset = _b[0], textOffset = _b[1];\r\n var target = parent.children[pathOffset];\r\n if (!Text.isText(target)) {\r\n return null;\r\n }\r\n return { path: __spreadArray(__spreadArray([], __read(parentPath)), [pathOffset]), offset: textOffset };\r\n}\r\nfunction relativePositionToSlatePoint(sharedRoot, slateRoot, pos) {\r\n if (!sharedRoot.doc) {\r\n throw new Error(\"sharedRoot isn't attach to a yDoc\");\r\n }\r\n var absPos = Y.createAbsolutePositionFromRelativePosition(pos, sharedRoot.doc);\r\n return absPos && absolutePositionToSlatePoint(sharedRoot, slateRoot, absPos);\r\n}\r\nfunction getStoredPosition(sharedRoot, key) {\r\n var rawPosition = sharedRoot.getAttribute(STORED_POSITION_PREFIX + key);\r\n if (!rawPosition) {\r\n return null;\r\n }\r\n return Y.decodeRelativePosition(rawPosition);\r\n}\r\nfunction getStoredPositions(sharedRoot) {\r\n return Object.fromEntries(Object.entries(sharedRoot.getAttributes())\r\n .filter(function (_a) {\r\n var _b = __read(_a, 1), key = _b[0];\r\n return key.startsWith(STORED_POSITION_PREFIX);\r\n })\r\n .map(function (_a) {\r\n var _b = __read(_a, 2), key = _b[0], position = _b[1];\r\n return [\r\n key.slice(STORED_POSITION_PREFIX.length),\r\n Y.createRelativePositionFromJSON(position),\r\n ];\r\n }));\r\n}\r\nfunction getStoredPositionsAbsolute(sharedRoot) {\r\n assertDocumentAttachment(sharedRoot);\r\n return Object.fromEntries(Object.entries(sharedRoot.getAttributes())\r\n .filter(function (_a) {\r\n var _b = __read(_a, 1), key = _b[0];\r\n return key.startsWith(STORED_POSITION_PREFIX);\r\n })\r\n .map(function (_a) {\r\n var _b = __read(_a, 2), key = _b[0], position = _b[1];\r\n return [\r\n key.slice(STORED_POSITION_PREFIX.length),\r\n Y.createAbsolutePositionFromRelativePosition(Y.decodeRelativePosition(position), sharedRoot.doc),\r\n ];\r\n })\r\n .filter(function (_a) {\r\n var _b = __read(_a, 2), position = _b[1];\r\n return position;\r\n }));\r\n}\r\nfunction removeStoredPosition(sharedRoot, key) {\r\n sharedRoot.removeAttribute(STORED_POSITION_PREFIX + key);\r\n}\r\nfunction setStoredPosition(sharedRoot, key, position) {\r\n sharedRoot.setAttribute(STORED_POSITION_PREFIX + key, Y.encodeRelativePosition(position));\r\n}\r\nfunction getAbsolutePositionsInTextRange(absolutePositions, yTarget, textRange) {\r\n return Object.fromEntries(Object.entries(absolutePositions).filter(function (_a) {\r\n var _b = __read(_a, 2), position = _b[1];\r\n if (position.type !== yTarget) {\r\n return false;\r\n }\r\n if (!textRange) {\r\n return true;\r\n }\r\n return position.assoc >= 0\r\n ? position.index >= textRange.start && position.index < textRange.end\r\n : position.index > textRange.start && position.index >= textRange.end;\r\n }));\r\n}\r\nfunction getAbsolutePositionsInYText(absolutePositions, yText, parentPath) {\r\n var _a;\r\n if (parentPath === void 0) { parentPath = ''; }\r\n var positions = (_a = {},\r\n _a[parentPath] = getAbsolutePositionsInTextRange(absolutePositions, yText),\r\n _a);\r\n var insertDelta = yTextToInsertDelta(yText);\r\n insertDelta.forEach(function (_a, i) {\r\n var insert = _a.insert;\r\n if (insert instanceof Y.XmlText) {\r\n Object.assign(positions, getAbsolutePositionsInYText(absolutePositions, insert, parentPath ? parentPath + \".\" + i : i.toString()));\r\n }\r\n });\r\n return positions;\r\n}\r\nfunction getStoredPositionsInDeltaAbsolute(sharedRoot, yText, delta, deltaOffset) {\r\n if (deltaOffset === void 0) { deltaOffset = 0; }\r\n var absolutePositions = getStoredPositionsAbsolute(sharedRoot);\r\n var positions = {\r\n '': getAbsolutePositionsInTextRange(absolutePositions, yText, {\r\n start: deltaOffset,\r\n end: deltaOffset + getInsertDeltaLength(delta),\r\n }),\r\n };\r\n delta.forEach(function (_a, i) {\r\n var insert = _a.insert;\r\n if (insert instanceof Y.XmlText) {\r\n Object.assign(positions, getAbsolutePositionsInYText(absolutePositions, insert, i.toString()));\r\n }\r\n });\r\n return positions;\r\n}\r\nfunction restoreStoredPositionsWithDeltaAbsolute(sharedRoot, yText, absolutePositions, delta, newDeltaOffset, previousDeltaOffset, path) {\r\n if (newDeltaOffset === void 0) { newDeltaOffset = 0; }\r\n if (previousDeltaOffset === void 0) { previousDeltaOffset = 0; }\r\n if (path === void 0) { path = ''; }\r\n var toRestore = absolutePositions[path];\r\n if (toRestore) {\r\n Object.entries(toRestore).forEach(function (_a) {\r\n var _b = __read(_a, 2), key = _b[0], position = _b[1];\r\n setStoredPosition(sharedRoot, key, Y.createRelativePositionFromTypeIndex(yText, position.index - previousDeltaOffset + newDeltaOffset, position.assoc));\r\n });\r\n }\r\n delta.forEach(function (_a, i) {\r\n var insert = _a.insert;\r\n if (insert instanceof Y.XmlText) {\r\n restoreStoredPositionsWithDeltaAbsolute(sharedRoot, insert, absolutePositions, yTextToInsertDelta(insert), 0, 0, path ? path + \".\" + i : i.toString());\r\n }\r\n });\r\n}\r\nfunction slateRangeToRelativeRange(sharedRoot, slateRoot, range) {\r\n return {\r\n anchor: slatePointToRelativePosition(sharedRoot, slateRoot, range.anchor),\r\n focus: slatePointToRelativePosition(sharedRoot, slateRoot, range.focus),\r\n };\r\n}\r\nfunction relativeRangeToSlateRange(sharedRoot, slateRoot, range) {\r\n var anchor = relativePositionToSlatePoint(sharedRoot, slateRoot, range.anchor);\r\n if (!anchor) {\r\n return null;\r\n }\r\n var focus = relativePositionToSlatePoint(sharedRoot, slateRoot, range.focus);\r\n if (!focus) {\r\n return null;\r\n }\r\n return { anchor: anchor, focus: focus };\r\n}\n\nfunction mergeNode(sharedRoot, slateRoot, op) {\r\n var target = getYTarget(sharedRoot, slateRoot, op.path);\r\n var prev = getYTarget(target.yParent, target.slateParent, Path.previous(op.path.slice(-1)));\r\n if (!target.yTarget !== !prev.yTarget) {\r\n throw new Error('Cannot merge y text with y element');\r\n }\r\n if (!prev.yTarget || !target.yTarget) {\r\n var parent_1 = target.yParent, textRange = target.textRange, slateTarget = target.slateTarget;\r\n if (!slateTarget) {\r\n throw new Error('Expected Slate target node for merge op.');\r\n }\r\n var prevSibling = Node.get(slateRoot, Path.previous(op.path));\r\n if (!Text.isText(prevSibling)) {\r\n throw new Error('Path points to Y.Text but not a Slate text node.');\r\n }\r\n var targetProps = getProperties(slateTarget);\r\n var prevSiblingProps_1 = getProperties(prevSibling);\r\n var unsetProps = Object.keys(targetProps).reduce(function (acc, key) {\r\n var _a;\r\n var prevSiblingHasProp = key in prevSiblingProps_1;\r\n return prevSiblingHasProp ? acc : __assign(__assign({}, acc), (_a = {}, _a[key] = null, _a));\r\n }, {});\r\n return parent_1.format(textRange.start, textRange.end - textRange.start, __assign(__assign({}, unsetProps), prevSiblingProps_1));\r\n }\r\n var deltaApplyYOffset = prev.yTarget.length;\r\n var targetDelta = yTextToInsertDelta(target.yTarget);\r\n var clonedDelta = cloneInsertDeltaDeep(targetDelta);\r\n var storedPositions = getStoredPositionsInDeltaAbsolute(sharedRoot, target.yTarget, targetDelta, deltaApplyYOffset);\r\n var applyDelta = __spreadArray([{ retain: deltaApplyYOffset }], __read(clonedDelta));\r\n prev.yTarget.applyDelta(applyDelta, {\r\n sanitize: false,\r\n });\r\n target.yParent.delete(target.textRange.start, target.textRange.end - target.textRange.start);\r\n restoreStoredPositionsWithDeltaAbsolute(sharedRoot, prev.yTarget, storedPositions, clonedDelta, deltaApplyYOffset);\r\n}\n\nfunction moveNode(sharedRoot, slateRoot, op) {\r\n var newParentPath = Path.parent(op.newPath);\r\n var newPathOffset = op.newPath[op.newPath.length - 1];\r\n var parent = Node.get(slateRoot, newParentPath);\r\n if (Text.isText(parent)) {\r\n throw new Error('Cannot move slate node into text element');\r\n }\r\n var normalizedNewPath = __spreadArray(__spreadArray([], __read(newParentPath)), [Math.min(newPathOffset, parent.children.length)]);\r\n var origin = getYTarget(sharedRoot, slateRoot, op.path);\r\n var target = getYTarget(sharedRoot, slateRoot, normalizedNewPath);\r\n var insertDelta = cloneInsertDeltaDeep(origin.targetDelta);\r\n var storedPositions = getStoredPositionsInDeltaAbsolute(sharedRoot, origin.yParent, origin.targetDelta);\r\n origin.yParent.delete(origin.textRange.start, origin.textRange.end - origin.textRange.start);\r\n var targetLength = getInsertDeltaLength(yTextToInsertDelta(target.yParent));\r\n var deltaApplyYOffset = Math.min(target.textRange.start, targetLength);\r\n var applyDelta = __spreadArray([{ retain: deltaApplyYOffset }], __read(insertDelta));\r\n target.yParent.applyDelta(applyDelta, { sanitize: false });\r\n restoreStoredPositionsWithDeltaAbsolute(sharedRoot, target.yParent, storedPositions, insertDelta, deltaApplyYOffset, origin.textRange.start);\r\n}\n\nfunction removeNode(sharedRoot, slateRoot, op) {\r\n var _a = getYTarget(sharedRoot, slateRoot, op.path), parent = _a.yParent, textRange = _a.textRange;\r\n parent.delete(textRange.start, textRange.end - textRange.start);\r\n}\n\nfunction setNode(sharedRoot, slateRoot, op) {\r\n var _a = getYTarget(sharedRoot, slateRoot, op.path), yTarget = _a.yTarget, textRange = _a.textRange, yParent = _a.yParent;\r\n if (yTarget) {\r\n Object.entries(op.newProperties).forEach(function (_a) {\r\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\r\n if (value === null) {\r\n return yTarget.removeAttribute(key);\r\n }\r\n yTarget.setAttribute(key, value);\r\n });\r\n return Object.entries(op.properties).forEach(function (_a) {\r\n var _b = __read(_a, 1), key = _b[0];\r\n if (!Object.prototype.hasOwnProperty.call(op.newProperties, key)) {\r\n yTarget.removeAttribute(key);\r\n }\r\n });\r\n }\r\n var unset = Object.fromEntries(Object.keys(op.properties).map(function (key) { return [key, null]; }));\r\n var newProperties = __assign(__assign({}, unset), op.newProperties);\r\n yParent.format(textRange.start, textRange.end - textRange.start, newProperties);\r\n}\n\nfunction splitNode(sharedRoot, slateRoot, op) {\r\n var target = getYTarget(sharedRoot, slateRoot, op.path);\r\n if (!target.slateTarget) {\r\n throw new Error('Y target without corresponding slate node');\r\n }\r\n if (!target.yTarget) {\r\n if (!Text.isText(target.slateTarget)) {\r\n throw new Error('Mismatch node type between y target and slate node');\r\n }\r\n var unset_1 = {};\r\n target.targetDelta.forEach(function (element) {\r\n if (element.attributes) {\r\n Object.keys(element.attributes).forEach(function (key) {\r\n unset_1[key] = null;\r\n });\r\n }\r\n });\r\n return target.yParent.format(target.textRange.start, target.textRange.end - target.textRange.start, __assign(__assign({}, unset_1), op.properties));\r\n }\r\n if (Text.isText(target.slateTarget)) {\r\n throw new Error('Mismatch node type between y target and slate node');\r\n }\r\n var splitTarget = getYTarget(target.yTarget, target.slateTarget, [op.position]);\r\n var ySplitOffset = target.slateTarget.children\r\n .slice(0, op.position)\r\n .reduce(function (length, child) { return length + getSlateNodeYLength(child); }, 0);\r\n var length = target.slateTarget.children.reduce(function (current, child) { return current + getSlateNodeYLength(child); }, 0);\r\n var splitDelta = sliceInsertDelta(yTextToInsertDelta(target.yTarget), ySplitOffset, length - ySplitOffset);\r\n var clonedDelta = cloneInsertDeltaDeep(splitDelta);\r\n var storedPositions = getStoredPositionsInDeltaAbsolute(sharedRoot, target.yTarget, splitDelta, ySplitOffset);\r\n var toInsert = new Y.XmlText();\r\n toInsert.applyDelta(clonedDelta, {\r\n sanitize: false,\r\n });\r\n Object.entries(op.properties).forEach(function (_a) {\r\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\r\n toInsert.setAttribute(key, value);\r\n });\r\n target.yTarget.delete(splitTarget.textRange.start, target.yTarget.length - splitTarget.textRange.start);\r\n target.yParent.insertEmbed(target.textRange.end, toInsert);\r\n restoreStoredPositionsWithDeltaAbsolute(sharedRoot, toInsert, storedPositions, clonedDelta, 0, ySplitOffset);\r\n}\n\nvar NODE_MAPPER = {\r\n insert_node: insertNode,\r\n remove_node: removeNode,\r\n set_node: setNode,\r\n merge_node: mergeNode,\r\n move_node: moveNode,\r\n split_node: splitNode,\r\n};\n\nfunction insertText(sharedRoot, slateRoot, op) {\r\n var _a = getYTarget(sharedRoot, slateRoot, op.path), target = _a.yParent, textRange = _a.textRange;\r\n var targetNode = Node.get(slateRoot, op.path);\r\n if (!Text.isText(targetNode)) {\r\n throw new Error('Cannot insert text into non-text node');\r\n }\r\n target.insert(textRange.start + op.offset, op.text, getProperties(targetNode));\r\n}\n\nfunction removeText(sharedRoot, slateRoot, op) {\r\n var _a = getYTarget(sharedRoot, slateRoot, op.path), target = _a.yParent, textRange = _a.textRange;\r\n target.delete(textRange.start + op.offset, op.text.length);\r\n}\n\nvar TEXT_MAPPER = {\r\n insert_text: insertText,\r\n remove_text: removeText,\r\n};\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\r\nvar NOOP = function () { };\r\nvar opMappers = __assign(__assign(__assign({}, TEXT_MAPPER), NODE_MAPPER), { set_selection: NOOP });\r\nfunction applySlateOp(sharedRoot, slateRoot, op) {\r\n var apply = opMappers[op.type];\r\n if (!apply) {\r\n throw new Error(\"Unknown operation: \" + op.type);\r\n }\r\n apply(sharedRoot, slateRoot, op);\r\n}\n\nvar DEFAULT_LOCAL_ORIGIN = Symbol('slate-yjs-operation');\r\nvar DEFAULT_POSITION_STORAGE_ORIGIN = Symbol('slate-yjs-position-storage');\r\nvar ORIGIN = new WeakMap();\r\nvar LOCAL_CHANGES = new WeakMap();\r\nvar CONNECTED = new WeakSet();\r\nvar YjsEditor = {\r\n isYjsEditor: function (value) {\r\n return (Editor.isEditor(value) &&\r\n value.sharedRoot instanceof Y.XmlText &&\r\n 'localOrigin' in value &&\r\n 'positionStorageOrigin' in value &&\r\n typeof value.applyRemoteEvents === 'function' &&\r\n typeof value.storeLocalChange === 'function' &&\r\n typeof value.flushLocalChanges === 'function' &&\r\n typeof value.isLocalOrigin === 'function' &&\r\n typeof value.connect === 'function' &&\r\n typeof value.disconnect === 'function');\r\n },\r\n localChanges: function (editor) {\r\n var _a;\r\n return (_a = LOCAL_CHANGES.get(editor)) !== null && _a !== void 0 ? _a : [];\r\n },\r\n applyRemoteEvents: function (editor, events, origin) {\r\n editor.applyRemoteEvents(events, origin);\r\n },\r\n storeLocalChange: function (editor, op) {\r\n editor.storeLocalChange(op);\r\n },\r\n flushLocalChanges: function (editor) {\r\n editor.flushLocalChanges();\r\n },\r\n connected: function (editor) {\r\n return CONNECTED.has(editor);\r\n },\r\n connect: function (editor) {\r\n editor.connect();\r\n },\r\n disconnect: function (editor) {\r\n editor.disconnect();\r\n },\r\n isLocal: function (editor) {\r\n return editor.isLocalOrigin(YjsEditor.origin(editor));\r\n },\r\n origin: function (editor) {\r\n var origin = ORIGIN.get(editor);\r\n return origin !== undefined ? origin : editor.localOrigin;\r\n },\r\n withOrigin: function (editor, origin, fn) {\r\n var prev = YjsEditor.origin(editor);\r\n ORIGIN.set(editor, origin);\r\n fn();\r\n ORIGIN.set(editor, prev);\r\n },\r\n storePosition: function (editor, key, point) {\r\n var sharedRoot = editor.sharedRoot, locationStorageOrigin = editor.positionStorageOrigin;\r\n assertDocumentAttachment(sharedRoot);\r\n var position = slatePointToRelativePosition(sharedRoot, editor, point);\r\n sharedRoot.doc.transact(function () {\r\n setStoredPosition(sharedRoot, key, position);\r\n }, locationStorageOrigin);\r\n },\r\n removeStoredPosition: function (editor, key) {\r\n var sharedRoot = editor.sharedRoot, locationStorageOrigin = editor.positionStorageOrigin;\r\n assertDocumentAttachment(sharedRoot);\r\n sharedRoot.doc.transact(function () {\r\n removeStoredPosition(sharedRoot, key);\r\n }, locationStorageOrigin);\r\n },\r\n position: function (editor, key) {\r\n var position = getStoredPosition(editor.sharedRoot, key);\r\n if (!position) {\r\n return undefined;\r\n }\r\n return relativePositionToSlatePoint(editor.sharedRoot, editor, position);\r\n },\r\n storedPositionsRelative: function (editor) {\r\n return getStoredPositions(editor.sharedRoot);\r\n },\r\n};\r\nfunction withYjs(sharedRoot, options) {\r\n if (options === void 0) { options = {}; }\r\n return function (editor) {\r\n var _a, _b;\r\n var e = editor;\r\n e.sharedRoot = sharedRoot;\r\n e.localOrigin = (_a = options.localOrigin) !== null && _a !== void 0 ? _a : DEFAULT_LOCAL_ORIGIN;\r\n e.positionStorageOrigin = (_b = options.positionStorageOrigin) !== null && _b !== void 0 ? _b : DEFAULT_POSITION_STORAGE_ORIGIN;\r\n e.applyRemoteEvents = function (events, origin) {\r\n YjsEditor.flushLocalChanges(e);\r\n Editor.withoutNormalizing(e, function () {\r\n YjsEditor.withOrigin(e, origin, function () {\r\n applyYjsEvents(e.sharedRoot, e, events);\r\n });\r\n });\r\n };\r\n e.isLocalOrigin = function (origin) { return origin === e.localOrigin; };\r\n var handleYEvents = function (events, transaction) {\r\n if (e.isLocalOrigin(transaction.origin)) {\r\n return;\r\n }\r\n YjsEditor.applyRemoteEvents(e, events, transaction.origin);\r\n };\r\n var autoConnectTimeoutId = null;\r\n if (options.autoConnect) {\r\n autoConnectTimeoutId = setTimeout(function () {\r\n autoConnectTimeoutId = null;\r\n YjsEditor.connect(e);\r\n });\r\n }\r\n e.connect = function () {\r\n if (YjsEditor.connected(e)) {\r\n throw new Error('already connected');\r\n }\r\n e.sharedRoot.observeDeep(handleYEvents);\r\n var content = yTextToSlateElement(e.sharedRoot);\r\n e.children = content.children;\r\n CONNECTED.add(e);\r\n Editor.normalize(editor, { force: true });\r\n if (!editor.operations.length) {\r\n editor.onChange();\r\n }\r\n };\r\n e.disconnect = function () {\r\n if (autoConnectTimeoutId) {\r\n clearTimeout(autoConnectTimeoutId);\r\n }\r\n YjsEditor.flushLocalChanges(e);\r\n e.sharedRoot.unobserveDeep(handleYEvents);\r\n CONNECTED.delete(e);\r\n };\r\n e.storeLocalChange = function (op) {\r\n LOCAL_CHANGES.set(e, __spreadArray(__spreadArray([], __read(YjsEditor.localChanges(e))), [\r\n { op: op, doc: editor.children, origin: YjsEditor.origin(e) },\r\n ]));\r\n };\r\n e.flushLocalChanges = function () {\r\n assertDocumentAttachment(e.sharedRoot);\r\n var localChanges = YjsEditor.localChanges(e);\r\n LOCAL_CHANGES.delete(e);\r\n var txGroups = [];\r\n localChanges.forEach(function (change) {\r\n var currentGroup = txGroups[txGroups.length - 1];\r\n if (currentGroup && currentGroup[0].origin === change.origin) {\r\n return currentGroup.push(change);\r\n }\r\n txGroups.push([change]);\r\n });\r\n txGroups.forEach(function (txGroup) {\r\n assertDocumentAttachment(e.sharedRoot);\r\n e.sharedRoot.doc.transact(function () {\r\n txGroup.forEach(function (change) {\r\n assertDocumentAttachment(e.sharedRoot);\r\n applySlateOp(e.sharedRoot, { children: change.doc }, change.op);\r\n });\r\n }, txGroup[0].origin);\r\n });\r\n };\r\n var apply = e.apply, onChange = e.onChange;\r\n e.apply = function (op) {\r\n if (YjsEditor.connected(e) && YjsEditor.isLocal(e)) {\r\n YjsEditor.storeLocalChange(e, op);\r\n }\r\n apply(op);\r\n };\r\n e.onChange = function () {\r\n if (YjsEditor.connected(e)) {\r\n YjsEditor.flushLocalChanges(e);\r\n }\r\n onChange();\r\n };\r\n return e;\r\n };\r\n}\n\nvar LAST_SELECTION = new WeakMap();\r\nvar DEFAULT_WITHOUT_SAVING_ORIGIN = Symbol('slate-yjs-history-without-saving');\r\nvar YHistoryEditor = {\r\n isYHistoryEditor: function (value) {\r\n return (YjsEditor.isYjsEditor(value) &&\r\n value.undoManager instanceof Y.UndoManager &&\r\n typeof value.undo === 'function' &&\r\n typeof value.redo === 'function' &&\r\n 'withoutSavingOrigin' in value);\r\n },\r\n canUndo: function (editor) {\r\n return editor.undoManager.undoStack.length > 0;\r\n },\r\n canRedo: function (editor) {\r\n return editor.undoManager.redoStack.length > 0;\r\n },\r\n isSaving: function (editor) {\r\n return editor.undoManager.trackedOrigins.has(YjsEditor.origin(editor));\r\n },\r\n withoutSaving: function (editor, fn) {\r\n YjsEditor.withOrigin(editor, editor.withoutSavingOrigin, fn);\r\n },\r\n};\r\nfunction withYHistory(options) {\r\n if (options === void 0) { options = {}; }\r\n return function (editor) {\r\n var e = editor;\r\n // 将 trackedOrigins 的初始化放到 editor 被传入之后\r\n var _a = options.withoutSavingOrigin, withoutSavingOrigin = _a === void 0 ? DEFAULT_WITHOUT_SAVING_ORIGIN : _a, _b = options.trackedOrigins, trackedOrigins = _b === void 0 ? new Set([e.localOrigin]) : _b, restOptions = __rest(options, [\"withoutSavingOrigin\", \"trackedOrigins\"]);\r\n var undoManager = new Y.UndoManager(e.sharedRoot, __assign({ trackedOrigins: trackedOrigins }, restOptions));\r\n e.undoManager = undoManager;\r\n e.withoutSavingOrigin = withoutSavingOrigin;\r\n var onChange = e.onChange, isLocalOrigin = e.isLocalOrigin;\r\n e.onChange = function () {\r\n onChange();\r\n LAST_SELECTION.set(e, e.selection && slateRangeToRelativeRange(e.sharedRoot, e, e.selection));\r\n };\r\n e.isLocalOrigin = function (origin) { return origin === e.withoutSavingOrigin || isLocalOrigin(origin); };\r\n var handleStackItemAdded = function (_a) {\r\n var stackItem = _a.stackItem;\r\n stackItem.meta.set('selection', e.selection && slateRangeToRelativeRange(e.sharedRoot, e, e.selection));\r\n stackItem.meta.set('selectionBefore', LAST_SELECTION.get(e));\r\n };\r\n var handleStackItemUpdated = function (_a) {\r\n var stackItem = _a.stackItem;\r\n stackItem.meta.set('selection', e.selection && slateRangeToRelativeRange(e.sharedRoot, e, e.selection));\r\n };\r\n var handleStackItemPopped = function (_a) {\r\n var stackItem = _a.stackItem, type = _a.type;\r\n // TODO: Change once https://github.com/yjs/yjs/issues/353 is resolved\r\n var inverseStack = type === 'undo' ? e.undoManager.redoStack : e.undoManager.undoStack;\r\n var inverseItem = inverseStack[inverseStack.length - 1];\r\n if (inverseItem) {\r\n inverseItem.meta.set('selection', stackItem.meta.get('selectionBefore'));\r\n inverseItem.meta.set('selectionBefore', stackItem.meta.get('selection'));\r\n }\r\n var relativeSelection = stackItem.meta.get('selectionBefore');\r\n if (!relativeSelection) {\r\n return;\r\n }\r\n var selection = relativeRangeToSlateRange(e.sharedRoot, e, relativeSelection);\r\n if (!selection) {\r\n return;\r\n }\r\n Transforms.select(e, selection);\r\n };\r\n var connect = e.connect, disconnect = e.disconnect;\r\n e.connect = function () {\r\n connect();\r\n e.undoManager.on('stack-item-added', handleStackItemAdded);\r\n e.undoManager.on('stack-item-popped', handleStackItemPopped);\r\n e.undoManager.on('stack-item-updated', handleStackItemUpdated);\r\n };\r\n e.disconnect = function () {\r\n e.undoManager.off('stack-item-added', handleStackItemAdded);\r\n e.undoManager.off('stack-item-popped', handleStackItemPopped);\r\n e.undoManager.off('stack-item-updated', handleStackItemUpdated);\r\n disconnect();\r\n };\r\n e.undo = function () {\r\n if (YjsEditor.connected(e)) {\r\n YjsEditor.flushLocalChanges(e);\r\n e.undoManager.undo();\r\n }\r\n };\r\n e.redo = function () {\r\n if (YjsEditor.connected(e)) {\r\n YjsEditor.flushLocalChanges(e);\r\n e.undoManager.redo();\r\n }\r\n };\r\n return e;\r\n };\r\n}\n\nvar CURSOR_CHANGE_EVENT_LISTENERS = new WeakMap();\r\nvar CursorEditor = {\r\n isCursorEditor: function (value) {\r\n return (YjsEditor.isYjsEditor(value) &&\r\n value.awareness &&\r\n typeof value.cursorDataField === 'string' &&\r\n typeof value.selectionStateField === 'string' &&\r\n typeof value.sendCursorPosition === 'function' &&\r\n typeof value.sendCursorData === 'function');\r\n },\r\n sendCursorPosition: function (editor, range) {\r\n if (range === void 0) { range = editor.selection; }\r\n editor.sendCursorPosition(range);\r\n },\r\n sendCursorData: function (editor, data) {\r\n editor.sendCursorData(data);\r\n },\r\n on: function (editor, event, handler) {\r\n var _a;\r\n if (event !== 'change') {\r\n return;\r\n }\r\n var listeners = (_a = CURSOR_CHANGE_EVENT_LISTENERS.get(editor)) !== null && _a !== void 0 ? _a : new Set();\r\n listeners.add(handler);\r\n CURSOR_CHANGE_EVENT_LISTENERS.set(editor, listeners);\r\n },\r\n off: function (editor, event, listener) {\r\n if (event !== 'change') {\r\n return;\r\n }\r\n var listeners = CURSOR_CHANGE_EVENT_LISTENERS.get(editor);\r\n if (listeners) {\r\n listeners.delete(listener);\r\n }\r\n },\r\n cursorState: function (editor, clientId) {\r\n var _a;\r\n if (clientId === editor.awareness.clientID || !YjsEditor.connected(editor)) {\r\n return null;\r\n }\r\n var state = editor.awareness.getStates().get(clientId);\r\n if (!state) {\r\n return null;\r\n }\r\n return {\r\n relativeSelection: (_a = state[editor.selectionStateField]) !== null && _a !== void 0 ? _a : null,\r\n data: state[editor.cursorDataField],\r\n clientId: clientId,\r\n };\r\n },\r\n cursorStates: function (editor) {\r\n if (!YjsEditor.connected(editor)) {\r\n return {};\r\n }\r\n return Object.fromEntries(Array.from(editor.awareness.getStates().entries(), function (_a) {\r\n var _b = __read(_a, 2), id = _b[0], state = _b[1];\r\n // Ignore own state\r\n if (id === editor.awareness.clientID || !state) {\r\n return null;\r\n }\r\n return [\r\n id,\r\n {\r\n relativeSelection: state[editor.selectionStateField],\r\n data: state[editor.cursorDataField],\r\n },\r\n ];\r\n }).filter(Array.isArray));\r\n },\r\n};\r\nfunction withCursors(awareness, options) {\r\n if (options === void 0) { options = {}; }\r\n return function (editor) {\r\n var _a = options.cursorStateField, selectionStateField = _a === void 0 ? 'selection' : _a, _b = options.cursorDataField, cursorDataField = _b === void 0 ? 'data' : _b, _c = options.autoSend, autoSend = _c === void 0 ? true : _c, data = options.data;\r\n var e = editor;\r\n e.awareness = awareness;\r\n e.cursorDataField = cursorDataField;\r\n e.selectionStateField = selectionStateField;\r\n e.sendCursorData = function (cursorData) {\r\n e.awareness.setLocalStateField(e.cursorDataField, cursorData);\r\n };\r\n e.sendCursorPosition = function (range) {\r\n var localState = e.awareness.getLocalState();\r\n var currentRange = localState === null || localState === void 0 ? void 0 : localState[selectionStateField];\r\n if (!range) {\r\n if (currentRange) {\r\n e.awareness.setLocalStateField(e.selectionStateField, null);\r\n }\r\n return;\r\n }\r\n var _a = slateRangeToRelativeRange(e.sharedRoot, e, range), anchor = _a.anchor, focus = _a.focus;\r\n if (!currentRange ||\r\n !Y.compareRelativePositions(anchor, currentRange) ||\r\n !Y.compareRelativePositions(focus, currentRange)) {\r\n e.awareness.setLocalStateField(e.selectionStateField, { anchor: anchor, focus: focus });\r\n }\r\n };\r\n var awarenessChangeListener = function (yEvent) {\r\n var listeners = CURSOR_CHANGE_EVENT_LISTENERS.get(e);\r\n if (!listeners) {\r\n return;\r\n }\r\n var localId = e.awareness.clientID;\r\n var event = {\r\n added: yEvent.added.filter(function (id) { return id !== localId; }),\r\n removed: yEvent.removed.filter(function (id) { return id !== localId; }),\r\n updated: yEvent.updated.filter(function (id) { return id !== localId; }),\r\n };\r\n if (event.added.length > 0 || event.removed.length > 0 || event.updated.length > 0) {\r\n listeners.forEach(function (listener) { return listener(event); });\r\n }\r\n };\r\n var connect = e.connect, disconnect = e.disconnect;\r\n e.connect = function () {\r\n connect();\r\n e.awareness.on('change', awarenessChangeListener);\r\n awarenessChangeListener({\r\n removed: [],\r\n added: Array.from(e.awareness.getStates().keys()),\r\n updated: [],\r\n });\r\n if (autoSend) {\r\n if (data) {\r\n CursorEditor.sendCursorData(e, data);\r\n }\r\n var onChange_1 = e.onChange;\r\n e.onChange = function () {\r\n onChange_1();\r\n if (YjsEditor.connected(e)) {\r\n CursorEditor.sendCursorPosition(e);\r\n }\r\n };\r\n }\r\n };\r\n e.disconnect = function () {\r\n e.awareness.off('change', awarenessChangeListener);\r\n awarenessChangeListener({\r\n removed: Array.from(e.awareness.getStates().keys()),\r\n added: [],\r\n updated: [],\r\n });\r\n disconnect();\r\n };\r\n return e;\r\n };\r\n}\n\nexport { CursorEditor, YHistoryEditor, YjsEditor, relativePositionToSlatePoint, relativeRangeToSlateRange, slateNodesToInsertDelta, slatePointToRelativePosition, slateRangeToRelativeRange, withCursors, withYHistory, withYjs, yTextToSlateElement };\n","import { CursorEditor } from '@wangeditor-next/yjs'\nimport { IDomEditor } from '@wangeditor-next/editor'\nimport { useEditorStatic } from './use-editor-static'\n\nexport function useRemoteCursorEditor<\n TCursorData extends Record<string, unknown> = Record<string, unknown>\n>(): CursorEditor<TCursorData> & IDomEditor {\n const editor = useEditorStatic()\n if (!CursorEditor.isCursorEditor(editor)) {\n console.warn('Cannot use useSyncExternalStore outside the context of a RemoteCursorEditor')\n }\n\n return editor as CursorEditor & IDomEditor\n}\n","import { CursorEditor, CursorState, RemoteCursorChangeEventListener } from '@wangeditor-next/yjs'\nimport { BaseEditor } from 'slate'\nimport { Store } from '../types'\nimport { useRemoteCursorEditor } from './useRemoteCursorEditor'\n\nexport type CursorStore<TCursorData extends Record<string, unknown> = Record<string, unknown>> =\n Store<Record<string, CursorState<TCursorData>>>\n\nconst EDITOR_TO_CURSOR_STORE: WeakMap<BaseEditor, CursorStore> = new WeakMap()\n\nfunction createRemoteCursorStateStore<TCursorData extends Record<string, unknown>>(\n editor: CursorEditor<TCursorData>\n): CursorStore<TCursorData> {\n let cursors: Record<string, CursorState<TCursorData>> = {}\n\n const changed = new Set<number>()\n const addChanged = changed.add.bind(changed)\n const onStoreChangeListeners: Set<() => void> = new Set()\n\n let changeHandler: RemoteCursorChangeEventListener | null = null\n\n const subscribe = (onStoreChange: () => void) => {\n onStoreChangeListeners.add(onStoreChange)\n if (!changeHandler) {\n changeHandler = event => {\n event.added.forEach(addChanged)\n event.removed.forEach(addChanged)\n event.updated.forEach(addChanged)\n onStoreChangeListeners.forEach(listener => listener())\n }\n CursorEditor.on(editor, 'change', changeHandler)\n }\n\n return () => {\n onStoreChangeListeners.delete(onStoreChange)\n if (changeHandler && onStoreChangeListeners.size === 0) {\n CursorEditor.off(editor, 'change', changeHandler)\n changeHandler = null\n }\n }\n }\n\n const getSnapshot = () => {\n if (changed.size === 0) {\n return cursors\n }\n\n changed.forEach(clientId => {\n const state = CursorEditor.cursorState(editor, clientId)\n if (state === null) {\n delete cursors[clientId.toString()]\n return\n }\n\n cursors[clientId] = state\n })\n\n changed.clear()\n cursors = { ...cursors }\n return cursors\n }\n\n return [subscribe, getSnapshot]\n}\n\nfunction getCursorStateStore<TCursorData extends Record<string, unknown>>(\n editor: CursorEditor<TCursorData>\n): CursorStore<TCursorData> {\n const existing = EDITOR_TO_CURSOR_STORE.get(editor)\n if (existing) {\n return existing as CursorStore<TCursorData>\n }\n\n const store = createRemoteCursorStateStore(editor)\n\n if (editor) EDITOR_TO_CURSOR_STORE.set(editor, store)\n return store\n}\n\nexport function useRemoteCursorStateStore<\n TCursorData extends Record<string, unknown> = Record<string, unknown>\n>() {\n const editor = useRemoteCursorEditor<TCursorData>()\n return getCursorStateStore(editor)\n}\n","import { CursorState } from '@wangeditor-next/yjs'\nimport { useSyncExternalStore } from 'use-sync-external-store/shim'\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector'\nimport { useRemoteCursorStateStore } from './useRemoteCursorStateStore'\n\nexport function useRemoteCursorStates<\n TCursorData extends Record<string, unknown> = Record<string, unknown>\n>() {\n const [subscribe, getSnapshot] = useRemoteCursorStateStore<TCursorData>()\n return useSyncExternalStore(subscribe, getSnapshot)\n}\n\nexport function useRemoteCursorStatesSelector<\n TCursorData extends Record<string, unknown> = Record<string, unknown>,\n TSelection = unknown\n>(\n selector: (cursors: Record<string, CursorState<TCursorData>>) => TSelection,\n isEqual?: (a: TSelection, b: TSelection) => boolean\n): TSelection {\n const [subscribe, getSnapshot] = useRemoteCursorStateStore<TCursorData>()\n return useSyncExternalStoreWithSelector(subscribe, getSnapshot, null, selector, isEqual)\n}\n","import { CursorEditor, CursorState, relativeRangeToSlateRange } from '@wangeditor-next/yjs'\nimport { BaseRange, Descendant, Range } from 'slate'\n\nconst CHILDREN_TO_CURSOR_STATE_TO_RANGE: WeakMap<\n Descendant[],\n WeakMap<CursorState, Range | null>\n> = new WeakMap()\n\nexport function getCursorRange<\n TCursorData extends Record<string, unknown> = Record<string, unknown>\n>(editor: CursorEditor<TCursorData>, cursorState: CursorState<TCursorData>): BaseRange | null {\n if (!cursorState.relativeSelection) {\n return null\n }\n\n let cursorStates = CHILDREN_TO_CURSOR_STATE_TO_RANGE.get(editor.children)\n if (!cursorStates) {\n cursorStates = new WeakMap()\n CHILDREN_TO_CURSOR_STATE_TO_RANGE.set(editor.children, cursorStates)\n }\n\n let range = cursorStates.get(cursorState)\n if (range === undefined) {\n try {\n range = relativeRangeToSlateRange(editor.sharedRoot, editor, cursorState.relativeSelection)\n\n cursorStates.set(cursorState, range)\n } catch (e) {\n return null\n }\n }\n\n return range\n}\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable(O, key)) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","var $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\n\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar $freeze = Object.freeze;\nvar FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); });\n\n// `Object.freeze` method\n// https://tc39.es/ecma262/#sec-object.freeze\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n freeze: function freeze(it) {\n return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it;\n }\n});\n","var $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://github.com/tc39/proposal-object-from-entries\n$({ target: 'Object', stat: true }, {\n fromEntries: function fromEntries(iterable) {\n var obj = {};\n iterate(iterable, function (k, v) {\n createProperty(obj, k, v);\n }, { AS_ENTRIES: true });\n return obj;\n }\n});\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","import { BaseRange, Editor, Path, Range, Text } from 'slate'\nimport { DomEditor, IDomEditor } from '@wangeditor-next/editor'\nimport { reactEditorToDomRangeSafe } from './react-editor-to-dom-range-safe'\n\nexport type SelectionRect = {\n width: number\n height: number\n top: number\n left: number\n}\n\nexport type CaretPosition = {\n height: number\n top: number\n left: number\n}\n\nexport type OverlayPosition = {\n caretPosition: CaretPosition | null\n selectionRects: SelectionRect[]\n}\n\nexport type GetSelectionRectsOptions = {\n xOffset: number\n yOffset: number\n shouldGenerateOverlay?: (node: Text, path: Path) => boolean\n}\n\nexport function getOverlayPosition(\n editor: IDomEditor,\n range: BaseRange,\n { yOffset, xOffset, shouldGenerateOverlay }: GetSelectionRectsOptions\n): OverlayPosition {\n const [start, end] = Range.edges(range)\n const domRange = reactEditorToDomRangeSafe(editor, range)\n if (!domRange) {\n return {\n caretPosition: null,\n selectionRects: [],\n }\n }\n\n const selectionRects: SelectionRect[] = []\n const nodeIterator = Editor.nodes(editor, {\n at: range,\n match: (n, p) => Text.isText(n) && (!shouldGenerateOverlay || shouldGenerateOverlay(n, p)),\n })\n\n let caretPosition: CaretPosition | null = null\n const isBackward = Range.isBackward(range)\n for (const [node, path] of nodeIterator) {\n const domNode = DomEditor.toDOMNode(editor, node)\n\n const isStartNode = Path.equals(path, start.path)\n const isEndNode = Path.equals(path, end.path)\n\n let clientRects: DOMRectList | null = null\n if (isStartNode || isEndNode) {\n const nodeRange = document.createRange()\n nodeRange.selectNode(domNode)\n\n if (isStartNode) {\n nodeRange.setStart(domRange.startContainer, domRange.startOffset)\n }\n if (isEndNode) {\n nodeRange.setEnd(domRange.endContainer, domRange.endOffset)\n }\n\n clientRects = nodeRange.getClientRects()\n } else {\n clientRects = domNode.getClientRects()\n }\n\n const isCaret = isBackward ? isStartNode : isEndNode\n for (let i = 0; i < clientRects.length; i++) {\n const clientRect = clientRects.item(i)\n if (!clientRect) {\n continue\n }\n\n const isCaretRect = isCaret && (isBackward ? i === 0 : i === clientRects.length - 1)\n\n const top = clientRect.top - yOffset\n const left = clientRect.left - xOffset\n\n if (isCaretRect) {\n caretPosition = {\n height: clientRect.height,\n top,\n left: left + (isBackward || Range.isCollapsed(range) ? 0 : clientRect.width),\n }\n }\n\n selectionRects.push({\n width: clientRect.width,\n height: clientRect.height,\n top,\n left,\n })\n }\n }\n\n return {\n selectionRects,\n caretPosition,\n }\n}\n","import { BaseRange } from 'slate'\nimport { DomEditor, IDomEditor } from '@wangeditor-next/editor'\n\nexport function reactEditorToDomRangeSafe(editor: IDomEditor, range: BaseRange): Range | null {\n try {\n return DomEditor.toDOMRange(editor, range)\n } catch (e) {\n return null\n }\n}\n","import { CursorState } from '@wangeditor-next/yjs'\nimport { RefObject, useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react'\nimport { BaseRange, NodeMatch, Text } from 'slate'\nimport { getCursorRange } from '../utils/getCursorRange'\nimport {\n CaretPosition,\n getOverlayPosition,\n OverlayPosition,\n SelectionRect,\n} from '../utils/getOverlayPosition'\nimport { useRemoteCursorEditor } from './useRemoteCursorEditor'\nimport { useRemoteCursorStates } from './useRemoteCursorStates'\nimport { useOnResize, useRequestRerender } from './utils'\n\nconst FROZEN_EMPTY_ARRAY = Object.freeze([])\n\nexport type UseRemoteCursorOverlayPositionsOptions<T extends HTMLElement> = {\n shouldGenerateOverlay?: NodeMatch<Text>\n} & (\n | {\n // Container the overlay will be rendered in. If set, all returned overlay positions\n // will be relative to this container and the cursor positions will be automatically\n // updated on container resize.\n containerRef?: undefined\n }\n | {\n containerRef: RefObject<T>\n\n // Whether to refresh the cursor overlay positions on container resize. Defaults\n // to true. If set to 'debounced', the remote cursor positions will be updated\n // each animation frame.\n refreshOnResize?: boolean | 'debounced'\n }\n)\n\nexport type CursorOverlayData<TCursorData extends Record<string, unknown>> =\n CursorState<TCursorData> & {\n range: BaseRange | null\n caretPosition: CaretPosition | null\n selectionRects: SelectionRect[]\n }\n\nexport function useRemoteCursorOverlayPositions<\n TCursorData extends Record<string, unknown>,\n TContainer extends HTMLElement = HTMLDivElement\n>({\n containerRef,\n shouldGenerateOverlay,\n ...opts\n}: UseRemoteCursorOverlayPositionsOptions<TContainer> = {}) {\n const editor = useRemoteCursorEditor<TCursorData>()\n const cursorStates = useRemoteCursorStates<TCursorData>()\n const requestRerender = useRequestRerender()\n\n const overlayPositionCache = useRef(new WeakMap<BaseRange, OverlayPosition>())\n const [overlayPositions, setOverlayPositions] = useState<Record<string, OverlayPosition>>({})\n\n const refreshOnResize = 'refreshOnResize' in opts ? opts.refreshOnResize ?? true : true\n\n useOnResize(refreshOnResize ? containerRef : undefined, () => {\n overlayPositionCache.current = new WeakMap()\n requestRerender(refreshOnResize !== 'debounced')\n })\n\n // Update selection rects after paint\n useLayoutEffect(() => {\n // We have a container ref but the ref is null => container\n // isn't mounted to we can't calculate the selection rects.\n if (containerRef && !containerRef.current) {\n return\n }\n\n const containerRect = containerRef?.current?.getBoundingClientRect()\n const xOffset = containerRect?.x ?? 0\n const yOffset = containerRect?.y ?? 0\n\n let overlayPositionsChanged =\n Object.keys(overlayPositions).length !== Object.keys(cursorStates).length\n\n const updated = Object.fromEntries(\n Object.entries(cursorStates).map(([key, state]) => {\n const range = state.relativeSelection && getCursorRange(editor, state)\n\n if (!range) {\n return [key, FROZEN_EMPTY_ARRAY]\n }\n\n const cached = overlayPositionCache.current.get(range)\n if (cached) {\n return [key, cached]\n }\n\n const overlayPosition = getOverlayPosition(editor, range, {\n xOffset,\n yOffset,\n shouldGenerateOverlay,\n })\n overlayPositionsChanged = true\n overlayPositionCache.current.set(range, overlayPosition)\n return [key, overlayPosition]\n })\n )\n\n if (overlayPositionsChanged) {\n setOverlayPositions(updated)\n }\n })\n\n const overlayData = useMemo<CursorOverlayData<TCursorData>[]>(\n () =>\n Object.entries(cursorStates).map(([clientId, state]) => {\n const range = state.relativeSelection && getCursorRange(editor, state)\n const overlayPosition = overlayPositions[clientId]\n\n return {\n ...state,\n range,\n caretPosition: overlayPosition?.caretPosition ?? null,\n selectionRects: overlayPosition?.selectionRects ?? FROZEN_EMPTY_ARRAY,\n }\n }),\n [cursorStates, editor, overlayPositions]\n )\n\n const refresh = useCallback(() => {\n overlayPositionCache.current = new WeakMap()\n requestRerender(true)\n }, [requestRerender])\n\n return [overlayData, refresh] as const\n}\n","import { RefObject, useCallback, useEffect, useReducer, useRef, useState } from 'react'\n\nexport function useRequestRerender() {\n const [, rerender] = useReducer(s => s + 1, 0)\n const animationFrameIdRef = useRef<number | null>(null)\n\n const clearAnimationFrame = () => {\n if (animationFrameIdRef.current) {\n cancelAnimationFrame(animationFrameIdRef.current)\n animationFrameIdRef.current = 0\n }\n }\n\n useEffect(clearAnimationFrame)\n useEffect(() => clearAnimationFrame, [])\n\n return useCallback((immediately = false) => {\n if (immediately) {\n rerender()\n return\n }\n\n if (animationFrameIdRef.current) {\n return\n }\n\n animationFrameIdRef.current = requestAnimationFrame(rerender)\n }, [])\n}\n\nexport function useOnResize<T extends HTMLElement>(\n ref: RefObject<T> | undefined,\n onResize: () => void\n) {\n const onResizeRef = useRef(onResize)\n onResizeRef.current = onResize\n\n const [observer] = useState(\n () =>\n new ResizeObserver(() => {\n onResizeRef.current()\n })\n )\n\n useEffect(() => {\n if (!ref?.current) {\n return\n }\n\n const { current: element } = ref\n observer.observe(element)\n return () => observer.unobserve(element)\n }, [observer, ref])\n}\n"],"names":["EditorContext","createContext","useEditorStatic","editor","useContext","console","warn","k","Object","is","a","b","l","e","useState","m","useEffect","n","useLayoutEffect","p","useDebugValue","r","getSnapshot","value","d","f","u","window","document","createElement","inst","c","g","useSyncExternalStore","module","exports","require$$0","q","t","h","useRef","v","useMemo","w","current","hasValue","match","version","check","it","Math","global","globalThis","self","this","Function","FunctionPrototype","prototype","bind","call","callBind","functionUncurryThis","fn","apply","arguments","fails","exec","error","toString","uncurryThis","stringSlice","slice","classofRaw","split","indexedObject","propertyIsEnumerable","classof","TypeError","requireObjectCoercible","undefined","toIndexedObject","IndexedObject","defineProperty","setGlobal","key","configurable","writable","SHARED","sharedStore","store","push","mode","copyright","toObject","argument","hasOwnProperty","hasOwnProperty_1","hasOwn","id","postfix","random","uid","isCallable","getBuiltIn","namespace","method","length","engineUserAgent","process","Deno","versions","v8","userAgent","activeXDocument","engineV8Version","nativeSymbol","getOwnPropertySymbols","symbol","Symbol","String","sham","V8_VERSION","useSymbolAsUid","NATIVE_SYMBOL","iterator","WellKnownSymbolsStore","shared","symbolFor","createWellKnownSymbol","USE_SYMBOL_AS_UID","withoutSetter","wellKnownSymbol","name","description","isObject","anObject","descriptors","get","EXISTS","documentCreateElement","ie8DomDefine","DESCRIPTORS","functionCall","objectIsPrototypeOf","isPrototypeOf","isSymbol","$Symbol","tryToString","aCallable","getMethod","V","P","func","TO_PRIMITIVE","toPrimitive","input","pref","result","exoticToPrim","val","valueOf","ordinaryToPrimitive","toPropertyKey","$defineProperty","O","Attributes","IE8_DOM_DEFINE","ceil","floor","toIntegerOrInfinity","number","max","min","toAbsoluteIndex","index","integer","lengthOfArrayLike","obj","createMethod","IS_INCLUDES","$this","el","fromIndex","arrayIncludes","includes","indexOf","hiddenKeys","objectKeysInternal","object","names","i","enumBugKeys","objectKeys","keys","internalObjectKeys","objectDefineProperties","defineProperties","Properties","props","definePropertyModule","html","sharedKey","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","domain","style","display","appendChild","src","contentWindow","open","F","objectCreate","create","UNSCOPABLES","ArrayPrototype","Array","addToUnscopables","iterators","functionToString","inspectSource","set","has","WeakMap","nativeWeakMap","test","createPropertyDescriptor","bitmap","enumerable","createNonEnumerableProperty","OBJECT_ALREADY_INITIALIZED","NATIVE_WEAK_MAP","state","wmget","wmhas","wmset","metadata","facade","STATE","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","internalState","enforce","getterFor","TYPE","type","$propertyIsEnumerable","getOwnPropertyDescriptor","descriptor","$getOwnPropertyDescriptor","propertyIsEnumerableModule","getDescriptor","functionName","PROPER","CONFIGURABLE","CONFIGURABLE_FUNCTION_NAME","getInternalState","InternalStateModule","enforceInternalState","TEMPLATE","options","unsafe","simple","noTargetGet","replace","source","join","concat","getOwnPropertyNames","ownKeys","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","copyConstructorProperties","target","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","isForced_1","_export","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","forced","redefine","correctPrototypeGetter","constructor","getPrototypeOf","ObjectPrototype","objectGetPrototypeOf","CORRECT_PROTOTYPE_GETTER","ITERATOR","BUGGY_SAFARI_ITERATORS","NEW_ITERATOR_PROTOTYPE","iteratorsCore","TO_STRING_TAG","setToStringTag","TAG","returnThis","objectSetPrototypeOf","setPrototypeOf","setter","CORRECT_SETTER","proto","aPossiblePrototype","__proto__","PROPER_FUNCTION_NAME","FunctionName","IteratorsCore","KEYS","VALUES","ENTRIES","defineIterator","Iterable","NAME","IteratorConstructor","next","DEFAULT","IS_SET","FORCED","ENUMERABLE_NEXT","Iterators","createIteratorConstructor","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","values","$","ARRAY_ITERATOR","setInternalState","es_array_iterator","iterated","kind","done","Arguments","toStringTagSupport","CORRECT_ARGUMENTS","TO_STRING_TAG_SUPPORT","tag","tryGet","callee","objectToString","TO_STRING","RegExpPrototype","RegExp","n$ToString","getFlags","that","ignoreCase","multiline","dotAll","unicode","sticky","NOT_GENERIC","flags","INCORRECT_NAME","R","$toString","rf","createProperty","propertyKey","$getOwnPropertyNames","windowNames","getWindowNames","start","end","fin","arraySlice","arrayBufferNonExtensible","ArrayBuffer","buffer","isExtensible","$isExtensible","objectIsExtensible","ARRAY_BUFFER_NON_EXTENSIBLE","freezing","preventExtensions","REQUIRED","METADATA","setMetadata","objectID","weakData","meta","enable","splice","getOwnPropertyNamesExternalModule","fastKey","getWeakData","onFreeze","FREEZING","functionBindContext","getIteratorMethod","iteratorClose","innerResult","innerError","Result","stopped","ResultPrototype","iterate","iterable","unboundFunction","iterFn","step","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","usingIterator","iteratorMethod","getIterator","anInstance","Prototype","SAFE_CLOSING","called","iteratorWithReturn","return","from","collection","CONSTRUCTOR_NAME","wrapper","common","IS_MAP","IS_WEAK","ADDER","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","uncurriedNativeMethod","forEach","getConstructor","InternalMetadataModule","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","SKIP_CLOSING","ITERATION_SUPPORT","checkCorrectnessOfIteration","BUGGY_ZERO","$instance","dummy","Wrapper","NewTarget","NewTargetPrototype","inheritIfRequired","clear","setStrong","redefineAll","SPECIES","require$$1","internalStateGetterFor","collectionStrong","first","last","size","define","previous","entry","getEntry","removed","delete","prev","callbackfn","boundFunction","add","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","setSpecies","init","charAt","charCodeAt","CONVERT_TO_STRING","pos","second","S","position","codeAt","STRING_ITERATOR","point","isArray","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructor","arraySpeciesCreate","originalArray","C","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","specificCreate","arrayIteration","map","filter","some","every","find","findIndex","filterReject","ArrayIterationModule","uncaughtFrozenStore","frozen","UncaughtFrozenStore","findUncaughtFrozen","InternalWeakMap","collectionWeak","enforceIternalState","IS_IE11","$WeakMap","WeakMapPrototype","nativeDelete","nativeHas","nativeGet","nativeSet","domIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","classList","DOMTokenListPrototype","domTokenListPrototype","$forEach","arrayForEach","handlePrototype","CollectionPrototype","COLLECTION_NAME","DOMIterables","handlePrototype$1","ArrayValues","ArrayIteratorMethods","METHOD_NAME","__assign","assign","s","__values","o","__read","ar","__spreadArray","to","pack","isPlainObject","ctor","prot","deepEquals","node","another","yTextToInsertDelta","yText","delta","e_1","_a","_b","_c","normalized","delta_1","delta_1_1","element","insert","attributes","e_1_1","normalizeInsertDelta","toDelta","getInsertLength","getInsertDeltaLength","reduce","curr","sliceInsertDelta","currentOffset","sliced","elementLength","startOffset","endOffset","getProperties","_i","fromEntries","omit","Text","isText","slateElementToYText","children","__rest","yElement","Y","XmlText","setAttribute","applyDelta","text","sanitize","getSlateNodeYLength","getYTarget","yRoot","slateRoot","path","Error","pathOffset","childPath","yOffset","slatePathOffsetToYOffset","targetNode","targetLength","targetDelta","yTarget","yParent","textRange","slateParent","slateTarget","yOffsetToSlateOffsets","parent","opts","assoc","lastNonEmptyPathOffset","child_1","nodeLength","child","cloneInsertDeltaDeep","cloneDeep","clone","getAttributes","assertDocumentAttachment","sharedType","doc","SuppressedError","STORED_POSITION_PREFIX","absolutePositionToSlatePoint","sharedRoot","parentPath","yNodePath","unshift","idx","yChild","currentDelta","currentDelta_1","currentDelta_1_1","getSlatePath","Node","textOffset","offset","relativePositionToSlatePoint","absPos","createAbsolutePositionFromRelativePosition","setStoredPosition","encodeRelativePosition","getAbsolutePositionsInTextRange","absolutePositions","getAbsolutePositionsInYText","positions","getStoredPositionsInDeltaAbsolute","deltaOffset","startsWith","decodeRelativePosition","getStoredPositionsAbsolute","restoreStoredPositionsWithDeltaAbsolute","newDeltaOffset","previousDeltaOffset","toRestore","createRelativePositionFromTypeIndex","NODE_MAPPER","insert_node","op","insertEmbed","remove_node","set_node","newProperties","removeAttribute","properties","unset","format","merge_node","Path","parent_1","prevSibling","targetProps","prevSiblingProps_1","unsetProps","acc","deltaApplyYOffset","clonedDelta","storedPositions","retain","move_node","newParentPath","newPath","newPathOffset","normalizedNewPath","origin","insertDelta","split_node","unset_1","splitTarget","ySplitOffset","splitDelta","toInsert","insert_text","remove_text","set_selection","ORIGIN","LOCAL_CHANGES","CONNECTED","WeakSet","YjsEditor","isYjsEditor","Editor","isEditor","applyRemoteEvents","storeLocalChange","flushLocalChanges","isLocalOrigin","connect","disconnect","localChanges","events","connected","isLocal","localOrigin","withOrigin","storePosition","locationStorageOrigin","positionStorageOrigin","slatePointToRelativePosition","transact","removeStoredPosition","rawPosition","getAttribute","getStoredPosition","storedPositionsRelative","createRelativePositionFromJSON","CURSOR_CHANGE_EVENT_LISTENERS","CursorEditor","isCursorEditor","awareness","cursorDataField","selectionStateField","sendCursorPosition","sendCursorData","range","selection","on","event","handler","listeners","Set","off","listener","cursorState","clientId","clientID","getStates","relativeSelection","cursorStates","useRemoteCursorEditor","EDITOR_TO_CURSOR_STORE","getCursorStateStore","existing","cursors","changed","addChanged","onStoreChangeListeners","changeHandler","onStoreChange","added","updated","createRemoteCursorStateStore","useRemoteCursorStateStore","useRemoteCursorStates","subscribe","CHILDREN_TO_CURSOR_STATE_TO_RANGE","getCursorRange","anchor","focus","relativeRangeToSlateRange","$map","HAS_SPECIES_SUPPORT","array","foo","Boolean","arrayMethodHasSpeciesSupport","TO_ENTRIES","$entries","$freeze","freeze","FAILS_ON_PRIMITIVES","nativeKeys","getOverlayPosition","xOffset","shouldGenerateOverlay","Range","edges","domRange","DomEditor","toDOMRange","reactEditorToDomRangeSafe","caretPosition","selectionRects","nodeIterator","nodes","at","isBackward","nodeIterator_1","nodeIterator_1_1","_d","domNode","toDOMNode","isStartNode","equals","isEndNode","clientRects","nodeRange","createRange","selectNode","setStart","startContainer","setEnd","endContainer","getClientRects","isCaret","clientRect","item","isCaretRect","top_1","top","left","height","isCollapsed","width","FROZEN_EMPTY_ARRAY","rerender","animationFrameIdRef","clearAnimationFrame","containerRef","requestRerender","useReducer","cancelAnimationFrame","useCallback","immediately","requestAnimationFrame","overlayPositionCache","overlayPositions","setOverlayPositions","refreshOnResize","ref","onResize","onResizeRef","observer","ResizeObserver","observe","unobserve","useOnResize","containerRect","getBoundingClientRect","x","y","overlayPositionsChanged","cached","overlayPosition","overlayData","selector","isEqual","useSyncExternalStoreWithSelector"],"mappings":"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"}
|