react-state-custom 1.0.12 → 1.0.13
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/dist/index.es.js +200 -979
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +1 -22
- package/dist/index.umd.js.map +1 -1
- package/dist/state-utils/ctx.d.ts +4 -5
- package/dist/state-utils/utils.d.ts +4 -0
- package/package.json +5 -11
- package/src/state-utils/ctx.ts +27 -15
- package/src/state-utils/useQuickSubscribe.ts +1 -1
- package/src/state-utils/utils.ts +38 -0
- package/vite.config.ts +2 -2
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../../.yarn/berry/cache/events-npm-3.3.0-c280bc7e48-10c0.zip/node_modules/events/events.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_freeGlobal.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_root.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_Symbol.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_getRawTag.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_objectToString.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_baseGetTag.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/isObjectLike.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/isSymbol.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_trimmedEndIndex.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_baseTrim.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/isObject.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/toNumber.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/isFunction.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_coreJsData.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_isMasked.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_toSource.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_baseIsNative.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_getValue.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_getNative.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/eq.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_nativeCreate.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_hashClear.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_hashDelete.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_hashGet.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_hashHas.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_hashSet.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_Hash.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_listCacheClear.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_assocIndexOf.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_listCacheDelete.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_listCacheGet.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_listCacheHas.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_listCacheSet.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_ListCache.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_Map.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_mapCacheClear.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_isKeyable.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_getMapData.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_mapCacheDelete.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_mapCacheGet.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_mapCacheHas.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_mapCacheSet.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/_MapCache.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/memoize.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/now.js","../../.yarn/berry/cache/lodash-es-npm-4.17.21-b45832dfce-10c0.zip/node_modules/lodash-es/debounce.js","../src/state-utils/useArrayHash.ts","../src/state-utils/ctx.ts","../../.yarn/berry/cache/react-npm-19.1.0-9804a7da5b-10c0.zip/node_modules/react/cjs/react-jsx-runtime.production.js","../../.yarn/berry/cache/react-npm-19.1.0-9804a7da5b-10c0.zip/node_modules/react/cjs/react-jsx-runtime.development.js","../../.yarn/berry/cache/react-npm-19.1.0-9804a7da5b-10c0.zip/node_modules/react/jsx-runtime.js","../src/state-utils/createRootCtx.tsx","../src/state-utils/createAutoCtx.tsx","../src/state-utils/useQuickSubscribe.ts"],"sourcesContent":["// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","import { useRef } from \"react\"\n\n\nconst randomHash = () => Math.random().toString().slice(2)\n\n/**\n * useArrayHash\n *\n * A custom hook that computes a stable hash for an array of values.\n * The hash changes only when the array's contents differ from the previous call.\n *\n * @param e - The input array to hash.\n * @returns A string hash that updates when the array changes.\n *\n * How it works:\n * - Tracks the previous array and its hash using a `useRef`.\n * - Compares the new array to the previous one by length and element equality.\n * - If any difference is detected, generates a new random hash.\n */\nexport const useArrayHash = (e: any[]): string => {\n\n const { current: { computedHash } } = useRef({\n /**\n * Getter for the computed hash function.\n *\n * - Initializes with an empty array and a random hash.\n * - Returns a function that compares the current array to the previous one.\n * - Updates the hash if any difference is detected.\n */\n get computedHash() {\n let currentValues: any[] = []\n let currentHash = randomHash()\n return (e: any[]) => {\n let isDiff = false\n\n // Check for differences in array existence, length, or elements.\n isDiff = isDiff || ((!e) != (!currentValues))\n isDiff = isDiff || (e?.length != currentValues?.length);\n isDiff = isDiff || (e.some((f, i) => f != currentValues[i]));\n\n // Update the hash if differences are found.\n currentValues = e;\n if (isDiff) {\n currentHash = randomHash()\n }\n\n return currentHash\n }\n }\n })\n\n return computedHash(e)\n}","import { EventEmitter } from \"events\"\nimport { debounce, memoize } from \"lodash-es\"\nimport { useEffect, useMemo, useState } from \"react\"\nimport { useArrayHash } from \"./useArrayHash\"\n\n\n\n/**\n * Generic context for managing shared state and event subscriptions.\n * @template D - The shape of the data managed by the context.\n */\nexport class Context<D> {\n /**\n * Create a new Context instance.\n * @param name - The name of the context (for debugging).\n */\n constructor(public name: string) {\n console.log(\"[CONTEXT] %s\", name)\n this.event.setMaxListeners(100)\n }\n\n private event = new EventEmitter()\n\n /**\n * The current data held by the context.\n */\n public data: Partial<D> = {}\n /**\n * Registry for tracking active keys (for duplicate detection).\n */\n public registry = new Set<string>()\n\n /**\n * Publish a value to the context and notify subscribers if it changed.\n * @param key - The key to update.\n * @param value - The new value.\n */\n public publish(key: keyof D, value: D[typeof key] | undefined) {\n\n if (value != this.data[key]) {\n this.data[key] = value\n // console.count(\"[COUNT] \" + String(key))\n this.event.emit(String(key), { value })\n }\n }\n\n /**\n * Subscribe to changes for a specific key in the context.\n * @param key - The key to subscribe to.\n * @param listender - Callback invoked with the new value.\n * @returns Unsubscribe function.\n */\n public subscribe(key: keyof D, listender: (e: D[typeof key] | undefined) => void) {\n const listener = ({ value }: any) => {\n listender(value)\n }\n this.event.addListener(String(key), listener)\n // console.log(\"listenerCount:\", String(key), this.event.listenerCount(String(key)))\n\n if (key in this.data) listender(this.data[key])\n\n return () => (this.event.removeListener(String(key), listener), undefined)\n }\n\n}\n\n/**\n * Get or create a memoized Context instance by name.\n * @param name - The context name.\n * @returns The Context instance.\n */\nexport const getContext = memoize((name: string) => new Context<any>(name))\n\n/**\n * Type alias for a function that returns a Context instance.\n */\nexport type getContext<D> = (e: string) => Context<D>\n\n/**\n * React hook to get a typed Context instance by name.\n * @param name - The context name.\n * @returns The Context instance.\n */\nexport const useDataContext = <D>(name: string = \"noname\") => {\n\n const ctx = useMemo(() => getContext(name), [name])\n\n return ctx as any as Context<D>\n}\n\n/**\n * Internal hook to check for duplicate registry entries in a context.\n * Warns if any of the provided names are already registered.\n * @param ctx - The context instance.\n * @param names - Names to check and register.\n */\nconst useRegistryChecker = (ctx: Context<any> | undefined, ...names: string[]) => {\n // return;\n const stack = new Error(\"[ctx] useRegistryChecker failed \" + JSON.stringify({ names, ctx: ctx?.name ?? 'undefined' }))\n\n useEffect(\n () => {\n if (ctx) {\n if (names.some(name => ctx.registry.has(name))) {\n console.error(stack)\n }\n names.forEach(e => ctx.registry.add(e))\n\n // console.debug(\"[ctx] %s%s add datasource\", componentId, ctx.name, names)\n return () => {\n // console.debug(\"[ctx] %s %s remove datasource\", componentId, ctx.name, names)\n\n names.forEach(e => ctx.registry.delete(e))\n }\n }\n },\n [ctx, names.length]\n )\n\n}\n\n/**\n * React hook to publish a value to the context when it changes.\n * @param ctx - The context instance.\n * @param key - The key to update.\n * @param value - The new value.\n */\nexport const useDataSource = <D, K extends keyof D>(ctx: Context<D> | undefined, key: K, value: D[K] | undefined) => {\n //@ts-check\n useEffect(() => {\n if (ctx && ctx.data[key] != value) {\n\n ctx.publish(key, value)\n }\n }, [key, value, ctx])\n\n useRegistryChecker(ctx, key as any)\n}\n\n/**\n * React hook to subscribe to a context value, with optional debounce.\n * @param ctx - The context instance.\n * @param key - The key to subscribe to.\n * @param debounceTime - Debounce time in ms (default 0).\n * @returns The current value for the key.\n */\nexport const useDataSubscribe = <D, K extends keyof D>(ctx: Context<D> | undefined, key: K, debounceTime = 0): D[K] | undefined => {\n //@ts-check\n const [{ value }, setState] = useState(() => ({ value: ctx?.data?.[key] }))\n\n useEffect(() => {\n if (ctx) {\n let callback = debounceTime == 0 \n ? (value: any) => setState({ value } as any) \n : debounce((value: any) => setState({ value } as any), debounceTime)\n let unsub = ctx.subscribe(key, callback)\n value != ctx.data[key] && setState({ value: ctx.data[key] })\n return () => {\n unsub()\n }\n }\n }, [key, ctx])\n\n return ctx?.data[key]\n}\n\n/**\n * React hook to subscribe to a context value and transform it before returning.\n * @param ctx - The context instance.\n * @param key - The key to subscribe to.\n * @param transform - Function to transform the value.\n * @returns The transformed value.\n */\nexport const useDataSubscribeWithTransform = <D, K extends keyof D, E>(ctx: Context<D> | undefined, key: K, transform: (e: D[K] | undefined) => E): E => {\n const [, setState] = useState(0)\n const result = useMemo(\n () => transform(ctx?.data[key]),\n [transform, ctx?.data[key]]\n )\n\n useEffect(() => {\n if (ctx) {\n let preValue = result\n let callback = () => {\n let newValue = transform(ctx.data[key])\n if (newValue != preValue) {\n preValue = newValue;\n setState(e => e + 1)\n };\n }\n let unsub = ctx.subscribe(key, callback)\n callback();\n return () => unsub()\n }\n }, [key, ctx])\n\n return result\n}\n\n/**\n * React hook to publish multiple values to the context.\n * @param ctx - The context instance.\n * @param entries - Array of [key, value] pairs to update.\n */\nexport const useDataSourceMultiple = <D, T extends readonly (keyof D)[]>(\n ctx: Context<D> | undefined,\n ...entries: { -readonly [P in keyof T]: [T[P], D[T[P]]] }\n) => {\n //@ts-check\n useEffect(() => {\n if (ctx) {\n for (let [key, value] of entries) {\n ctx.data[key] != value && ctx.publish(key, value)\n }\n }\n }, [ctx, useArrayHash(entries.flat())])\n\n useRegistryChecker(ctx, ...entries.map(e => e[0]) as any)\n\n}\n\n/**\n * React hook to subscribe to multiple context values.\n * @param ctx - The context instance.\n * @param keys - Keys to subscribe to.\n * @returns An object with the current values for the keys.\n */\nexport const useDataSubscribeMultiple = <D, K extends keyof D>(\n ctx: Context<D> | undefined,\n ...keys: K[]\n): Pick<D, K> => {\n const [, setCounter] = useState(0)\n\n const returnValues = keys.map(key => ctx?.data?.[key])\n\n useEffect(() => {\n if (ctx) {\n let prevValues = returnValues\n const callback = debounce(() => {\n let currentValues = keys.map(key => ctx?.data?.[key])\n if (keys.some((key, i) => prevValues[i] != currentValues[i])) {\n // console.log(\"DIFF\", keys.filter((e, i) => prevValues[i] != currentValues[i]))\n prevValues = currentValues\n setCounter(c => c + 1)\n }\n }, 1)\n\n let handles = keys.map(key => ctx.subscribe(key, callback))\n\n let firstCall = setTimeout(callback, 1);\n\n return () => {\n clearTimeout(firstCall)\n callback.cancel();\n handles.forEach(unsub => unsub())\n }\n\n }\n }, [ctx, ...keys])\n\n\n return Object\n .fromEntries(keys.map((key, index) => [key, returnValues[index]])) as any\n}\n\n/**\n * React hook to subscribe to multiple context values with throttling.\n * @param ctx - The context instance.\n * @param debounceTime - Debounce time in ms (default 50).\n * @param keys - Keys to subscribe to.\n * @returns Array of current values for the keys.\n */\nexport const useDataSubscribeMultipleWithDebounce = <D, K extends (keyof D)[]>(\n ctx: Context<D> | undefined,\n debounceTime = 50,\n ...keys: K\n): { [i in keyof K]: D[K[i]] | undefined } => {\n //@ts-check\n const [, setCounter] = useState(0)\n\n const returnValues = keys.map(key => ctx?.data?.[key])\n\n useEffect(() => {\n if (ctx) {\n let prevValues = returnValues\n const callback = debounce(() => {\n let currentValues = keys.map(key => ctx?.data?.[key])\n if (keys.some((key, i) => prevValues[i] != currentValues[i])) {\n prevValues = currentValues\n setCounter(c => c + 1)\n }\n }, debounceTime)\n\n let handles = keys.map(key => ctx.subscribe(key, callback))\n\n let firstCall = setTimeout(callback, 1);\n\n return () => {\n clearTimeout(firstCall)\n callback.cancel();\n handles.forEach(unsub => unsub())\n }\n\n }\n }, [ctx, ...keys])\n\n return returnValues as any\n}\n\n\n\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n \"react-stack-bottom-frame\": function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React[\"react-stack-bottom-frame\"].bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import { useEffect, useMemo } from \"react\"\nimport { useDataContext, useDataSourceMultiple, type Context } from \"./ctx\"\n\n\n\n/**\n * createRootCtx\n *\n * Factory that creates a headless \"Root\" component and companion hooks for a context namespace.\n * It derives a unique context name from a base `name` and a props object `U`, then publishes\n * a computed state `V` (from `useFn`) to that context.\n *\n * Usage (manual mounting):\n * ```\n * const { Root, useCtxState } = createRootCtx('user-state', useUserState)\n * ...\n * // Mount exactly one Root per unique props combination\n * <Root userId={id} />\n * ...\n * // Read anywhere ,using the same props shape\n * const user = useCtxState({ userId: id })\n *```\n * Strict vs lenient consumers:\n * - useCtxStateStrict(props) throws if a matching Root is not mounted.\n * - useCtxState(props) logs an error (after 1s) instead of throwing.\n *\n * Multiple instances safety:\n * - Mounting more than one Root with the same resolved context name throws (guards accidental duplicates).\n *\n * Name resolution notes:\n * - The context name is built from `name` + sorted key/value pairs of `props` (U), joined by \"-\".\n * - Prefer stable, primitive props to avoid collisions; if you need automation, pair with `createAutoCtx` and\n * mount a single <AutoRootCtx Wrapper={ErrorBoundary} /> at the app root so you don't manually mount `Root`.\n */\nexport const createRootCtx = <U extends object, V extends object>(name: string, useFn: (e: U) => V) => {\n\n const resolveCtxName = (e: U) => [\n name,\n ...Object\n .entries(e ?? {})\n .sort((e, f) => e[0].localeCompare(f[0]))\n .flat()\n ].join(\"-\")\n\n let ctxMountedCheck = new Set<string>()\n\n\n const RootState: React.FC<U> = (e: U) => {\n const state = useFn(e)\n const ctxName = resolveCtxName(e)\n const ctx = useDataContext<V>(ctxName)\n const stack = useMemo(() => new Error().stack, [])\n\n useDataSourceMultiple(\n ctx,\n ...Object.entries(state) as any\n )\n\n useEffect(() => {\n if (ctxMountedCheck.has(ctxName)) {\n const err = new Error(\"RootContext \" + ctxName + \" are mounted more than once\")\n err.stack = stack;\n throw err\n }\n ctxMountedCheck.add(ctxName)\n return () => { ctxMountedCheck.delete(ctxName) };\n })\n\n return <></>\n }\n\n RootState.displayName = `State[${useFn?.name??'??'}]`\n\n return {\n resolveCtxName,\n Root: RootState,\n /**\n * Strict consumer: throws if the corresponding Root for these props isn't mounted.\n * Use in development/tests to fail fast when wiring is incorrect.\n */\n useCtxStateStrict: (e: U): Context<V> => {\n const ctxName = resolveCtxName(e)\n\n const stack = useMemo(() => new Error().stack, [])\n\n useEffect(() => {\n if (!ctxMountedCheck.has(ctxName)) {\n const err = new Error(\"RootContext [\" + ctxName + \"] is not mounted\")\n err.stack = stack;\n throw err\n }\n }, [ctxName])\n\n return useDataContext<V>(ctxName)\n },\n /**\n * Lenient consumer: schedules a console.error if the Root isn't mounted instead of throwing.\n * Useful in production to avoid hard crashes while still surfacing misconfiguration.\n */\n useCtxState: (e: U): Context<V> => {\n const ctxName = resolveCtxName(e)\n\n const stack = useMemo(() => new Error().stack, [])\n\n useEffect(() => {\n if (!ctxMountedCheck.has(ctxName)) {\n const err = new Error(\"RootContext [\" + ctxName + \"] is not mounted\")\n err.stack = stack;\n let timeout = setTimeout(() => console.error(err), 1000)\n return () => clearTimeout(timeout)\n }\n }, [ctxMountedCheck.has(ctxName)])\n\n return useDataContext<V>(ctxName)\n }\n }\n}","import { useEffect, useState, Fragment, useCallback } from \"react\"\nimport { useDataContext, useDataSourceMultiple, useDataSubscribe, type Context } from \"./ctx\"\nimport { createRootCtx } from \"./createRootCtx\"\n\n\n\n\n\n\nconst weakmapName = (function () {\n const weakmap = new WeakMap()\n\n return (e: any): string => {\n let result = weakmap.get(e);\n if (!result) {\n weakmap.set(e, result = (e?.name ?? \"\") + Math.random().toString())\n }\n return result\n }\n})()\n\n\nconst resolveName = (e: any) => [\n ...Object\n .entries(e ?? {})\n .sort((e, f) => e[0].localeCompare(f[0]))\n .flat()\n].join(\"-\")\n\n/**\n * Inline docs: createAutoCtx + AutoRootCtx\n *\n * Quick start\n * 1) Mount <AutoRootCtx /> ONCE near your app root. Provide a Wrapper that acts like an ErrorBoundary to isolate and log errors.\n * Example: <AutoRootCtx Wrapper={MyErrorBoundary} />\n *\n * 2) Create auto contexts from your root context factories:\n * ```\n * const { useCtxState: useTestCtxState } = createAutoCtx(createRootCtx('test-state', stateFn))\n * const { useCtxState: useOtherCtxState } = createAutoCtx(createRootCtx('other-state', otherFn))\n * ```\n * 3) Use them in components:\n * ```\n * const ctx = useTestCtxState({ userId })\n * const { property1, property2 } = useDataSubscribeMultiple(ctx,'property1','property2')\n * // No need to mount the Root returned by createRootCtx directly — AutoRootCtx manages it for you.\n * ```\n * Notes\n * - AutoRootCtx must be mounted before any useCtxState hooks created by createAutoCtx run.\n * - Wrapper should be an ErrorBoundary-like component that simply renders {children}; no extra providers or layout required.\n * - For each unique params object (by stable stringified key), AutoRootCtx ensures a corresponding Root instance is rendered.\n */\n\nexport const AutoRootCtx = ({ Wrapper = Fragment }) => {\n\n const ctx = useDataContext<any>(\"auto-ctx\")\n\n\n const [state, setState] = useState<Record<string, { Component: React.FC, subState: Record<string, { params: any, counter: number }> }>>({})\n\n\n const subscribeRoot = useCallback(\n (Comp: any, params: any) => {\n const weakName = weakmapName(Comp);\n const key = resolveName(params);\n\n setState(({\n [weakName]: {\n Component = Comp,\n subState: {\n [key]: preState = { params, counter: 0 },\n ...subState\n } = {}\n } = {},\n ...state\n }) => ({\n ...state,\n [weakName]: {\n Component,\n subState: {\n ...subState,\n [key]: {\n ...preState,\n counter: preState.counter + 1,\n },\n },\n }\n }));\n\n return () => setState(({\n [weakName]: {\n Component = Comp,\n subState: {\n [key]: preState = { params, counter: 0 },\n ...subState\n } = {}\n } = {},\n ...state\n }) => ({\n ...state,\n [weakName]: {\n Component,\n subState: {\n ...subState,\n ...preState.counter > 1 ? {\n [key]: {\n ...preState,\n counter: preState.counter - 1,\n },\n } : {},\n },\n }\n }))\n\n },\n []\n )\n\n useDataSourceMultiple(ctx,\n [\"subscribe\", subscribeRoot],\n [\"state\", state],\n )\n\n\n return <>\n {Object.entries(state)\n .flatMap(([k1, { Component, subState }]) => Object\n .entries(subState)\n .map(([k2, { counter, params }]) => ({ key: k1 + k2, Component, params, counter }))\n .filter(e => e.counter > 0)\n .map(({ key, params, Component }) => <Wrapper key={key} >\n <Component {...params} />\n </Wrapper>)\n )\n }\n </>\n\n}\n\n/**\n * createAutoCtx\n *\n * Bridges a Root context (from createRootCtx) to the global AutoRootCtx renderer.\n * You do NOT mount the Root component yourself — just mount <AutoRootCtx /> once at the app root.\n *\n * Usage: \n * ```\n * const { useCtxState: useTestCtxState } = createAutoCtx(createRootCtx(\n * 'test-state', \n * stateFn\n * ))\n * const { useCtxState: useOtherCtxState } = createAutoCtx(createRootCtx(\n * 'other-state', \n * otherFn\n * ))\n * ```\n * \n * Then inside components:\n * ```\n * const ctxState = useTestCtxState({ any: 'params' })\n * ```\n * AutoRootCtx will subscribe/unsubscribe instances per unique params and render the appropriate Root under the hood.\n */\nexport const createAutoCtx = <U extends object, V extends object,>({ Root, useCtxState, useCtxStateStrict, resolveCtxName }: ReturnType<typeof createRootCtx<U, V>>) => {\n\n return {\n\n useCtxState: (e: U): Context<V> => {\n\n const ctxName = resolveCtxName(e)\n\n const subscribe = useDataSubscribe(useDataContext<any>(\"auto-ctx\"), \"subscribe\")\n\n useEffect(() => {\n // Subscribe this component to an AutoRootCtx-managed Root instance keyed by e.\n // AutoRootCtx handles instance ref-counting and cleanup on unmount.\n return subscribe?.(Root, e)\n }, [subscribe, ctxName])\n\n return useDataContext<V>(ctxName)\n }\n }\n}","\nimport { debounce } from \"lodash-es\";\nimport { useState, useMemo, useEffect } from \"react\";\nimport type { Context } from \"./ctx\";\n\n/**\n * useQuickSubscribe is a custom React hook for efficiently subscribing to specific properties of a context's data object.\n * \n * @template D - The shape of the context data.\n * @param {Context<D> | undefined} ctx - The context object containing data and a subscribe method.\n * @returns {Partial<D>} A proxy object that mirrors the context data, automatically subscribing to properties as they are accessed.\n *\n * This hook tracks which properties of the context data are accessed by the component and subscribes to updates for only those properties.\n * When any of the subscribed properties change, the hook triggers a re-render. Subscriptions are managed and cleaned up automatically\n * when the component unmounts or the context changes. This approach minimizes unnecessary re-renders and resource usage by only\n * subscribing to the data that the component actually uses.\n *\n * Example usage:\n * const {name} = useQuickSubscribe(userContext);\n * // Accessing name will subscribe to changes in 'name' only\n * return <div>{name}</div>;\n */\n\nexport const useQuickSubscribe = <D>(\n ctx: Context<D> | undefined\n): {\n [P in keyof D]?: D[P] | undefined;\n } => {\n\n const [, setCounter] = useState(0);\n\n const { proxy, finalGetter, openGetter, clean } = useMemo(\n () => {\n\n const allKeys = new Set<keyof D>()\n const allCompareValue: { [P in keyof D]?: D[P] | undefined; } = {}\n const allUnsub = new Map()\n\n const proxy = new Proxy(\n ctx?.data as any,\n {\n get(target, p) {\n if (isOpenGetter) {\n allKeys.add(p as keyof D)\n return allCompareValue[p as keyof D] = target[p];\n } else {\n throw new Error(\"now allow here\")\n }\n }\n }\n ) as any\n\n let isOpenGetter = true;\n\n\n let onChange = debounce(() => {\n if ([...allKeys.values()]\n .some(k => allCompareValue[k] != ctx?.data?.[k])) {\n setCounter(c => c + 1)\n }\n }, 0)\n\n let openGetter = () => {\n isOpenGetter = true\n allKeys.clear()\n }\n\n let finalGetter = () => {\n isOpenGetter = false;\n\n [...allKeys.values()]\n .filter(k => !allUnsub.has(k))\n .forEach(k => {\n allUnsub.set(k, ctx?.subscribe(k, onChange))\n });\n\n [...allUnsub.keys()]\n .filter(k => !allKeys.has(k))\n .forEach(k => {\n let unsub = allUnsub.get(k)\n unsub?.();\n allUnsub.delete(k);\n });\n\n }\n\n let clean = () => {\n openGetter();\n finalGetter();\n setCounter(c => c + 1)\n }\n\n return { proxy, finalGetter, openGetter, clean }\n },\n [ctx]\n )\n\n openGetter();\n\n setTimeout(finalGetter, 0)\n\n useEffect(\n () => () => clean(),\n [clean]\n )\n\n return proxy;\n\n\n};\n"],"names":["R","ReflectApply","target","receiver","args","ReflectOwnKeys","ProcessEmitWarning","warning","NumberIsNaN","value","EventEmitter","eventsModule","once","defaultMaxListeners","checkListener","listener","arg","n","_getMaxListeners","that","type","i","doError","events","er","err","handler","len","listeners","arrayClone","_addListener","prepend","m","existing","w","onceWrapper","_onceWrap","state","wrapped","list","position","originalListener","spliceOne","keys","key","_listeners","unwrap","evlistener","unwrapListeners","emitter","listenerCount","arr","copy","index","ret","name","resolve","reject","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","flags","wrapListener","freeGlobal","freeSelf","root","Symbol","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","getRawTag","isOwn","tag","unmasked","result","objectToString","nullTag","undefinedTag","baseGetTag","isObjectLike","symbolTag","isSymbol","reWhitespace","trimmedEndIndex","string","reTrimStart","baseTrim","isObject","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","other","isBinary","asyncTag","funcTag","genTag","proxyTag","isFunction","coreJsData","maskSrcKey","uid","isMasked","func","funcProto","funcToString","toSource","reRegExpChar","reIsHostCtor","reIsNative","baseIsNative","pattern","getValue","object","getNative","eq","nativeCreate","hashClear","hashDelete","HASH_UNDEFINED","hashGet","data","hashHas","hashSet","Hash","entries","length","entry","listCacheClear","assocIndexOf","array","arrayProto","splice","listCacheDelete","lastIndex","listCacheGet","listCacheHas","listCacheSet","ListCache","Map","mapCacheClear","isKeyable","getMapData","map","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","size","MapCache","FUNC_ERROR_TEXT","memoize","memoized","cache","now","nativeMax","nativeMin","debounce","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","thisArg","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","flush","debounced","isInvoking","randomHash","useArrayHash","computedHash","useRef","currentValues","currentHash","e","isDiff","f","Context","__publicField","listender","getContext","useDataContext","useMemo","useRegistryChecker","ctx","names","stack","useEffect","useDataSource","useDataSubscribe","debounceTime","setState","useState","_a","callback","unsub","useDataSubscribeWithTransform","transform","preValue","newValue","useDataSourceMultiple","useDataSubscribeMultiple","setCounter","returnValues","prevValues","c","handles","firstCall","useDataSubscribeMultipleWithDebounce","REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","config","maybeKey","propName","reactJsxRuntime_production","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","testStringCoercion","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","self","source","owner","debugStack","debugTask","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","k","didWarnAboutKeySpread","node","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","createRootCtx","useFn","resolveCtxName","ctxMountedCheck","RootState","ctxName","jsx","Fragment","timeout","weakmapName","weakmap","resolveName","AutoRootCtx","Wrapper","subscribeRoot","useCallback","Comp","params","weakName","Component","preState","subState","k1","k2","counter","createAutoCtx","Root","useCtxState","useCtxStateStrict","subscribe","useQuickSubscribe","proxy","finalGetter","openGetter","clean","allKeys","allCompareValue","allUnsub","p","isOpenGetter","onChange"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,49,50,51]}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../src/state-utils/utils.ts","../src/state-utils/useArrayHash.ts","../src/state-utils/ctx.ts","../src/state-utils/createRootCtx.tsx","../src/state-utils/createAutoCtx.tsx","../src/state-utils/useQuickSubscribe.ts"],"sourcesContent":["// Debounce function\nexport function debounce<T extends (...args: any[]) => any>(\n func: T,\n wait: number\n): ((...args: Parameters<T>) => void) & { cancel: any } {\n let timeout: ReturnType<typeof setTimeout> | null = null;\n\n let fn: Function & { cancel: any } = function (...args: Parameters<T>): void {\n if (timeout) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(() => {\n func(...args);\n }, wait);\n } as any; \n\n fn.cancel = () => clearTimeout(timeout!);\n\n return fn as any;\n}\n\n// Memoize function\nexport function memoize<T extends (...args: any[]) => any>(\n func: T\n): (...args: Parameters<T>) => ReturnType<T> {\n const cache = new Map<string, ReturnType<T>>();\n\n return function (...args: Parameters<T>): ReturnType<T> {\n const key = JSON.stringify(args);\n if (cache.has(key)) {\n return cache.get(key) as ReturnType<T>;\n }\n const result = func(...args);\n cache.set(key, result);\n return result;\n };\n}\n\n","import { useRef } from \"react\"\n\n\nconst randomHash = () => Math.random().toString().slice(2)\n\n/**\n * useArrayHash\n *\n * A custom hook that computes a stable hash for an array of values.\n * The hash changes only when the array's contents differ from the previous call.\n *\n * @param e - The input array to hash.\n * @returns A string hash that updates when the array changes.\n *\n * How it works:\n * - Tracks the previous array and its hash using a `useRef`.\n * - Compares the new array to the previous one by length and element equality.\n * - If any difference is detected, generates a new random hash.\n */\nexport const useArrayHash = (e: any[]): string => {\n\n const { current: { computedHash } } = useRef({\n /**\n * Getter for the computed hash function.\n *\n * - Initializes with an empty array and a random hash.\n * - Returns a function that compares the current array to the previous one.\n * - Updates the hash if any difference is detected.\n */\n get computedHash() {\n let currentValues: any[] = []\n let currentHash = randomHash()\n return (e: any[]) => {\n let isDiff = false\n\n // Check for differences in array existence, length, or elements.\n isDiff = isDiff || ((!e) != (!currentValues))\n isDiff = isDiff || (e?.length != currentValues?.length);\n isDiff = isDiff || (e.some((f, i) => f != currentValues[i]));\n\n // Update the hash if differences are found.\n currentValues = e;\n if (isDiff) {\n currentHash = randomHash()\n }\n\n return currentHash\n }\n }\n })\n\n return computedHash(e)\n}","import { debounce, memoize } from \"./utils\";\nimport { useEffect, useMemo, useState } from \"react\"\nimport { useArrayHash } from \"./useArrayHash\"\n\n\n\nclass DataEvent extends Event {\n constructor(\n public event: string,\n public value: any\n ) {\n super(event);\n }\n}\n\n/**\n * Generic context for managing shared state and event subscriptions.\n * @template D - The shape of the data managed by the context.\n */\nexport class Context<D> extends EventTarget {\n /**\n * Create a new Context instance.\n * @param name - The name of the context (for debugging).\n */\n constructor(public name: string) {\n console.log(\"[CONTEXT] %s\", name)\n // this.event.setMaxListeners(100)\n super();\n }\n\n // private event = new EventEmitter()\n\n /**\n * The current data held by the context.\n */\n public data: Partial<D> = {}\n /**\n * Registry for tracking active keys (for duplicate detection).\n */\n public registry = new Set<string>()\n\n /**\n * Publish a value to the context and notify subscribers if it changed.\n * @param key - The key to update.\n * @param value - The new value.\n */\n public publish(key: keyof D, value: D[typeof key] | undefined) {\n\n if (value != this.data[key]) {\n this.data[key] = value\n // console.count(\"[COUNT] \" + String(key))\n // this.event.emit(String(key), { value })\n this.dispatchEvent(new DataEvent(String(key), value))\n }\n }\n\n /**\n * Subscribe to changes for a specific key in the context.\n * @param key - The key to subscribe to.\n * @param _listener - Callback invoked with the new value.\n * @returns Unsubscribe function.\n */\n public subscribe(key: keyof D, _listener: (e: D[typeof key] | undefined) => void) {\n\n const listener = ({ event, value }: any) => {\n _listener(value)\n }\n\n this.addEventListener(String(key), listener)\n // console.log(\"listenerCount:\", String(key), this.event.listenerCount(String(key)))\n\n if (key in this.data) _listener(this.data[key])\n\n return () => (this.removeEventListener(String(key), listener), undefined)\n }\n\n}\n\n/**\n * Get or create a memoized Context instance by name.\n * @param name - The context name.\n * @returns The Context instance.\n */\nexport const getContext = memoize((name: string) => new Context<any>(name))\n\n/**\n * Type alias for a function that returns a Context instance.\n */\nexport type getContext<D> = (e: string) => Context<D>\n\n/**\n * React hook to get a typed Context instance by name.\n * @param name - The context name.\n * @returns The Context instance.\n */\nexport const useDataContext = <D>(name: string = \"noname\") => {\n\n const ctx = useMemo(() => getContext(name), [name])\n\n return ctx as any as Context<D>\n}\n\n/**\n * Internal hook to check for duplicate registry entries in a context.\n * Warns if any of the provided names are already registered.\n * @param ctx - The context instance.\n * @param names - Names to check and register.\n */\nconst useRegistryChecker = (ctx: Context<any> | undefined, ...names: string[]) => {\n // return;\n const stack = new Error(\"[ctx] useRegistryChecker failed \" + JSON.stringify({ names, ctx: ctx?.name ?? 'undefined' }))\n\n useEffect(\n () => {\n if (ctx) {\n if (names.some(name => ctx.registry.has(name))) {\n console.error(stack)\n }\n names.forEach(e => ctx.registry.add(e))\n\n // console.debug(\"[ctx] %s%s add datasource\", componentId, ctx.name, names)\n return () => {\n // console.debug(\"[ctx] %s %s remove datasource\", componentId, ctx.name, names)\n\n names.forEach(e => ctx.registry.delete(e))\n }\n }\n },\n [ctx, names.length]\n )\n\n}\n\n/**\n * React hook to publish a value to the context when it changes.\n * @param ctx - The context instance.\n * @param key - The key to update.\n * @param value - The new value.\n */\nexport const useDataSource = <D, K extends keyof D>(ctx: Context<D> | undefined, key: K, value: D[K] | undefined) => {\n //@ts-check\n useEffect(() => {\n if (ctx && ctx.data[key] != value) {\n\n ctx.publish(key, value)\n }\n }, [key, value, ctx])\n\n useRegistryChecker(ctx, key as any)\n}\n\n/**\n * React hook to subscribe to a context value, with optional debounce.\n * @param ctx - The context instance.\n * @param key - The key to subscribe to.\n * @param debounceTime - Debounce time in ms (default 0).\n * @returns The current value for the key.\n */\nexport const useDataSubscribe = <D, K extends keyof D>(ctx: Context<D> | undefined, key: K, debounceTime = 0): D[K] | undefined => {\n //@ts-check\n const [{ value }, setState] = useState(() => ({ value: ctx?.data?.[key] }))\n\n useEffect(() => {\n if (ctx) {\n let callback = debounceTime == 0\n ? (value: any) => setState({ value } as any)\n : debounce((value: any) => setState({ value } as any), debounceTime)\n let unsub = ctx.subscribe(key, callback)\n value != ctx.data[key] && setState({ value: ctx.data[key] })\n return () => {\n unsub()\n }\n }\n }, [key, ctx])\n\n return ctx?.data[key]\n}\n\n/**\n * React hook to subscribe to a context value and transform it before returning.\n * @param ctx - The context instance.\n * @param key - The key to subscribe to.\n * @param transform - Function to transform the value.\n * @returns The transformed value.\n */\nexport const useDataSubscribeWithTransform = <D, K extends keyof D, E>(ctx: Context<D> | undefined, key: K, transform: (e: D[K] | undefined) => E): E => {\n const [, setState] = useState(0)\n const result = useMemo(\n () => transform(ctx?.data[key]),\n [transform, ctx?.data[key]]\n )\n\n useEffect(() => {\n if (ctx) {\n let preValue = result\n let callback = () => {\n let newValue = transform(ctx.data[key])\n if (newValue != preValue) {\n preValue = newValue;\n setState(e => e + 1)\n };\n }\n let unsub = ctx.subscribe(key, callback)\n callback();\n return () => unsub()\n }\n }, [key, ctx])\n\n return result\n}\n\n/**\n * React hook to publish multiple values to the context.\n * @param ctx - The context instance.\n * @param entries - Array of [key, value] pairs to update.\n */\nexport const useDataSourceMultiple = <D, T extends readonly (keyof D)[]>(\n ctx: Context<D> | undefined,\n ...entries: { -readonly [P in keyof T]: [T[P], D[T[P]]] }\n) => {\n //@ts-check\n useEffect(() => {\n if (ctx) {\n for (let [key, value] of entries) {\n ctx.data[key] != value && ctx.publish(key, value)\n }\n }\n }, [ctx, useArrayHash(entries.flat())])\n\n useRegistryChecker(ctx, ...entries.map(e => e[0]) as any)\n\n}\n\n/**\n * React hook to subscribe to multiple context values.\n * @param ctx - The context instance.\n * @param keys - Keys to subscribe to.\n * @returns An object with the current values for the keys.\n */\nexport const useDataSubscribeMultiple = <D, K extends keyof D>(\n ctx: Context<D> | undefined,\n ...keys: K[]\n): Pick<D, K> => {\n const [, setCounter] = useState(0)\n\n const returnValues = keys.map(key => ctx?.data?.[key])\n\n useEffect(() => {\n if (ctx) {\n let prevValues = returnValues\n const callback = debounce(() => {\n let currentValues = keys.map(key => ctx?.data?.[key])\n if (keys.some((key, i) => prevValues[i] != currentValues[i])) {\n // console.log(\"DIFF\", keys.filter((e, i) => prevValues[i] != currentValues[i]))\n prevValues = currentValues\n setCounter(c => c + 1)\n }\n }, 1)\n\n let handles = keys.map(key => ctx.subscribe(key, callback))\n\n let firstCall = setTimeout(callback, 1);\n\n return () => {\n clearTimeout(firstCall)\n callback.cancel();\n handles.forEach(unsub => unsub())\n }\n\n }\n }, [ctx, ...keys])\n\n\n return Object\n .fromEntries(keys.map((key, index) => [key, returnValues[index]])) as any\n}\n\n/**\n * React hook to subscribe to multiple context values with throttling.\n * @param ctx - The context instance.\n * @param debounceTime - Debounce time in ms (default 50).\n * @param keys - Keys to subscribe to.\n * @returns Array of current values for the keys.\n */\nexport const useDataSubscribeMultipleWithDebounce = <D, K extends (keyof D)[]>(\n ctx: Context<D> | undefined,\n debounceTime = 50,\n ...keys: K\n): { [i in keyof K]: D[K[i]] | undefined } => {\n //@ts-check\n const [, setCounter] = useState(0)\n\n const returnValues = keys.map(key => ctx?.data?.[key])\n\n useEffect(() => {\n if (ctx) {\n let prevValues = returnValues\n const callback = debounce(() => {\n let currentValues = keys.map(key => ctx?.data?.[key])\n if (keys.some((key, i) => prevValues[i] != currentValues[i])) {\n prevValues = currentValues\n setCounter(c => c + 1)\n }\n }, debounceTime)\n\n let handles = keys.map(key => ctx.subscribe(key, callback))\n\n let firstCall = setTimeout(callback, 1);\n\n return () => {\n clearTimeout(firstCall)\n callback.cancel();\n handles.forEach(unsub => unsub())\n }\n\n }\n }, [ctx, ...keys])\n\n return returnValues as any\n}\n\n\n\n","import { useEffect, useMemo } from \"react\"\nimport { useDataContext, useDataSourceMultiple, type Context } from \"./ctx\"\n\n\n\n/**\n * createRootCtx\n *\n * Factory that creates a headless \"Root\" component and companion hooks for a context namespace.\n * It derives a unique context name from a base `name` and a props object `U`, then publishes\n * a computed state `V` (from `useFn`) to that context.\n *\n * Usage (manual mounting):\n * ```\n * const { Root, useCtxState } = createRootCtx('user-state', useUserState)\n * ...\n * // Mount exactly one Root per unique props combination\n * <Root userId={id} />\n * ...\n * // Read anywhere ,using the same props shape\n * const user = useCtxState({ userId: id })\n *```\n * Strict vs lenient consumers:\n * - useCtxStateStrict(props) throws if a matching Root is not mounted.\n * - useCtxState(props) logs an error (after 1s) instead of throwing.\n *\n * Multiple instances safety:\n * - Mounting more than one Root with the same resolved context name throws (guards accidental duplicates).\n *\n * Name resolution notes:\n * - The context name is built from `name` + sorted key/value pairs of `props` (U), joined by \"-\".\n * - Prefer stable, primitive props to avoid collisions; if you need automation, pair with `createAutoCtx` and\n * mount a single <AutoRootCtx Wrapper={ErrorBoundary} /> at the app root so you don't manually mount `Root`.\n */\nexport const createRootCtx = <U extends object, V extends object>(name: string, useFn: (e: U) => V) => {\n\n const resolveCtxName = (e: U) => [\n name,\n ...Object\n .entries(e ?? {})\n .sort((e, f) => e[0].localeCompare(f[0]))\n .flat()\n ].join(\"-\")\n\n let ctxMountedCheck = new Set<string>()\n\n\n const RootState: React.FC<U> = (e: U) => {\n const state = useFn(e)\n const ctxName = resolveCtxName(e)\n const ctx = useDataContext<V>(ctxName)\n const stack = useMemo(() => new Error().stack, [])\n\n useDataSourceMultiple(\n ctx,\n ...Object.entries(state) as any\n )\n\n useEffect(() => {\n if (ctxMountedCheck.has(ctxName)) {\n const err = new Error(\"RootContext \" + ctxName + \" are mounted more than once\")\n err.stack = stack;\n throw err\n }\n ctxMountedCheck.add(ctxName)\n return () => { ctxMountedCheck.delete(ctxName) };\n })\n\n return <></>\n }\n\n RootState.displayName = `State[${useFn?.name??'??'}]`\n\n return {\n resolveCtxName,\n Root: RootState,\n /**\n * Strict consumer: throws if the corresponding Root for these props isn't mounted.\n * Use in development/tests to fail fast when wiring is incorrect.\n */\n useCtxStateStrict: (e: U): Context<V> => {\n const ctxName = resolveCtxName(e)\n\n const stack = useMemo(() => new Error().stack, [])\n\n useEffect(() => {\n if (!ctxMountedCheck.has(ctxName)) {\n const err = new Error(\"RootContext [\" + ctxName + \"] is not mounted\")\n err.stack = stack;\n throw err\n }\n }, [ctxName])\n\n return useDataContext<V>(ctxName)\n },\n /**\n * Lenient consumer: schedules a console.error if the Root isn't mounted instead of throwing.\n * Useful in production to avoid hard crashes while still surfacing misconfiguration.\n */\n useCtxState: (e: U): Context<V> => {\n const ctxName = resolveCtxName(e)\n\n const stack = useMemo(() => new Error().stack, [])\n\n useEffect(() => {\n if (!ctxMountedCheck.has(ctxName)) {\n const err = new Error(\"RootContext [\" + ctxName + \"] is not mounted\")\n err.stack = stack;\n let timeout = setTimeout(() => console.error(err), 1000)\n return () => clearTimeout(timeout)\n }\n }, [ctxMountedCheck.has(ctxName)])\n\n return useDataContext<V>(ctxName)\n }\n }\n}","import { useEffect, useState, Fragment, useCallback } from \"react\"\nimport { useDataContext, useDataSourceMultiple, useDataSubscribe, type Context } from \"./ctx\"\nimport { createRootCtx } from \"./createRootCtx\"\n\n\n\n\n\n\nconst weakmapName = (function () {\n const weakmap = new WeakMap()\n\n return (e: any): string => {\n let result = weakmap.get(e);\n if (!result) {\n weakmap.set(e, result = (e?.name ?? \"\") + Math.random().toString())\n }\n return result\n }\n})()\n\n\nconst resolveName = (e: any) => [\n ...Object\n .entries(e ?? {})\n .sort((e, f) => e[0].localeCompare(f[0]))\n .flat()\n].join(\"-\")\n\n/**\n * Inline docs: createAutoCtx + AutoRootCtx\n *\n * Quick start\n * 1) Mount <AutoRootCtx /> ONCE near your app root. Provide a Wrapper that acts like an ErrorBoundary to isolate and log errors.\n * Example: <AutoRootCtx Wrapper={MyErrorBoundary} />\n *\n * 2) Create auto contexts from your root context factories:\n * ```\n * const { useCtxState: useTestCtxState } = createAutoCtx(createRootCtx('test-state', stateFn))\n * const { useCtxState: useOtherCtxState } = createAutoCtx(createRootCtx('other-state', otherFn))\n * ```\n * 3) Use them in components:\n * ```\n * const ctx = useTestCtxState({ userId })\n * const { property1, property2 } = useDataSubscribeMultiple(ctx,'property1','property2')\n * // No need to mount the Root returned by createRootCtx directly — AutoRootCtx manages it for you.\n * ```\n * Notes\n * - AutoRootCtx must be mounted before any useCtxState hooks created by createAutoCtx run.\n * - Wrapper should be an ErrorBoundary-like component that simply renders {children}; no extra providers or layout required.\n * - For each unique params object (by stable stringified key), AutoRootCtx ensures a corresponding Root instance is rendered.\n */\n\nexport const AutoRootCtx = ({ Wrapper = Fragment }) => {\n\n const ctx = useDataContext<any>(\"auto-ctx\")\n\n\n const [state, setState] = useState<Record<string, { Component: React.FC, subState: Record<string, { params: any, counter: number }> }>>({})\n\n\n const subscribeRoot = useCallback(\n (Comp: any, params: any) => {\n const weakName = weakmapName(Comp);\n const key = resolveName(params);\n\n setState(({\n [weakName]: {\n Component = Comp,\n subState: {\n [key]: preState = { params, counter: 0 },\n ...subState\n } = {}\n } = {},\n ...state\n }) => ({\n ...state,\n [weakName]: {\n Component,\n subState: {\n ...subState,\n [key]: {\n ...preState,\n counter: preState.counter + 1,\n },\n },\n }\n }));\n\n return () => setState(({\n [weakName]: {\n Component = Comp,\n subState: {\n [key]: preState = { params, counter: 0 },\n ...subState\n } = {}\n } = {},\n ...state\n }) => ({\n ...state,\n [weakName]: {\n Component,\n subState: {\n ...subState,\n ...preState.counter > 1 ? {\n [key]: {\n ...preState,\n counter: preState.counter - 1,\n },\n } : {},\n },\n }\n }))\n\n },\n []\n )\n\n useDataSourceMultiple(ctx,\n [\"subscribe\", subscribeRoot],\n [\"state\", state],\n )\n\n\n return <>\n {Object.entries(state)\n .flatMap(([k1, { Component, subState }]) => Object\n .entries(subState)\n .map(([k2, { counter, params }]) => ({ key: k1 + k2, Component, params, counter }))\n .filter(e => e.counter > 0)\n .map(({ key, params, Component }) => <Wrapper key={key} >\n <Component {...params} />\n </Wrapper>)\n )\n }\n </>\n\n}\n\n/**\n * createAutoCtx\n *\n * Bridges a Root context (from createRootCtx) to the global AutoRootCtx renderer.\n * You do NOT mount the Root component yourself — just mount <AutoRootCtx /> once at the app root.\n *\n * Usage: \n * ```\n * const { useCtxState: useTestCtxState } = createAutoCtx(createRootCtx(\n * 'test-state', \n * stateFn\n * ))\n * const { useCtxState: useOtherCtxState } = createAutoCtx(createRootCtx(\n * 'other-state', \n * otherFn\n * ))\n * ```\n * \n * Then inside components:\n * ```\n * const ctxState = useTestCtxState({ any: 'params' })\n * ```\n * AutoRootCtx will subscribe/unsubscribe instances per unique params and render the appropriate Root under the hood.\n */\nexport const createAutoCtx = <U extends object, V extends object,>({ Root, useCtxState, useCtxStateStrict, resolveCtxName }: ReturnType<typeof createRootCtx<U, V>>) => {\n\n return {\n\n useCtxState: (e: U): Context<V> => {\n\n const ctxName = resolveCtxName(e)\n\n const subscribe = useDataSubscribe(useDataContext<any>(\"auto-ctx\"), \"subscribe\")\n\n useEffect(() => {\n // Subscribe this component to an AutoRootCtx-managed Root instance keyed by e.\n // AutoRootCtx handles instance ref-counting and cleanup on unmount.\n return subscribe?.(Root, e)\n }, [subscribe, ctxName])\n\n return useDataContext<V>(ctxName)\n }\n }\n}","\nimport { debounce } from \"./utils\";\nimport { useState, useMemo, useEffect } from \"react\";\nimport type { Context } from \"./ctx\";\n\n/**\n * useQuickSubscribe is a custom React hook for efficiently subscribing to specific properties of a context's data object.\n * \n * @template D - The shape of the context data.\n * @param {Context<D> | undefined} ctx - The context object containing data and a subscribe method.\n * @returns {Partial<D>} A proxy object that mirrors the context data, automatically subscribing to properties as they are accessed.\n *\n * This hook tracks which properties of the context data are accessed by the component and subscribes to updates for only those properties.\n * When any of the subscribed properties change, the hook triggers a re-render. Subscriptions are managed and cleaned up automatically\n * when the component unmounts or the context changes. This approach minimizes unnecessary re-renders and resource usage by only\n * subscribing to the data that the component actually uses.\n *\n * Example usage:\n * const {name} = useQuickSubscribe(userContext);\n * // Accessing name will subscribe to changes in 'name' only\n * return <div>{name}</div>;\n */\n\nexport const useQuickSubscribe = <D>(\n ctx: Context<D> | undefined\n): {\n [P in keyof D]?: D[P] | undefined;\n } => {\n\n const [, setCounter] = useState(0);\n\n const { proxy, finalGetter, openGetter, clean } = useMemo(\n () => {\n\n const allKeys = new Set<keyof D>()\n const allCompareValue: { [P in keyof D]?: D[P] | undefined; } = {}\n const allUnsub = new Map()\n\n const proxy = new Proxy(\n ctx?.data as any,\n {\n get(target, p) {\n if (isOpenGetter) {\n allKeys.add(p as keyof D)\n return allCompareValue[p as keyof D] = target[p];\n } else {\n throw new Error(\"now allow here\")\n }\n }\n }\n ) as any\n\n let isOpenGetter = true;\n\n\n let onChange = debounce(() => {\n if ([...allKeys.values()]\n .some(k => allCompareValue[k] != ctx?.data?.[k])) {\n setCounter(c => c + 1)\n }\n }, 0)\n\n let openGetter = () => {\n isOpenGetter = true\n allKeys.clear()\n }\n\n let finalGetter = () => {\n isOpenGetter = false;\n\n [...allKeys.values()]\n .filter(k => !allUnsub.has(k))\n .forEach(k => {\n allUnsub.set(k, ctx?.subscribe(k, onChange))\n });\n\n [...allUnsub.keys()]\n .filter(k => !allKeys.has(k))\n .forEach(k => {\n let unsub = allUnsub.get(k)\n unsub?.();\n allUnsub.delete(k);\n });\n\n }\n\n let clean = () => {\n openGetter();\n finalGetter();\n setCounter(c => c + 1)\n }\n\n return { proxy, finalGetter, openGetter, clean }\n },\n [ctx]\n )\n\n openGetter();\n\n setTimeout(finalGetter, 0)\n\n useEffect(\n () => () => clean(),\n [clean]\n )\n\n return proxy;\n\n\n};\n"],"names":["debounce","func","wait","timeout","fn","args","memoize","cache","key","result","randomHash","useArrayHash","computedHash","useRef","currentValues","currentHash","e","isDiff","f","i","DataEvent","event","value","Context","name","_listener","listener","getContext","useDataContext","useMemo","useRegistryChecker","ctx","names","stack","useEffect","useDataSource","useDataSubscribe","debounceTime","setState","useState","callback","unsub","useDataSubscribeWithTransform","transform","preValue","newValue","useDataSourceMultiple","entries","useDataSubscribeMultiple","keys","setCounter","returnValues","prevValues","c","handles","firstCall","index","useDataSubscribeMultipleWithDebounce","createRootCtx","useFn","resolveCtxName","ctxMountedCheck","RootState","state","ctxName","err","jsx","Fragment","weakmapName","weakmap","resolveName","AutoRootCtx","Wrapper","subscribeRoot","useCallback","Comp","params","weakName","Component","preState","subState","k1","k2","counter","createAutoCtx","Root","useCtxState","useCtxStateStrict","subscribe","useQuickSubscribe","proxy","finalGetter","openGetter","clean","allKeys","allCompareValue","allUnsub","target","p","isOpenGetter","onChange","k"],"mappings":"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"}
|
package/dist/index.umd.js
CHANGED
|
@@ -1,23 +1,2 @@
|
|
|
1
|
-
(function(y,v){typeof exports=="object"&&typeof module<"u"?v(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],v):(y=typeof globalThis<"u"?globalThis:y||self,v(y.RState={},y.React))})(this,function(y,v){"use strict";var dn=Object.defineProperty;var hn=(y,v,A)=>v in y?dn(y,v,{enumerable:!0,configurable:!0,writable:!0,value:A}):y[v]=A;var oe=(y,v,A)=>hn(y,typeof v!="symbol"?v+"":v,A);var A={exports:{}},de;function ke(){if(de)return A.exports;de=1;var e=typeof Reflect=="object"?Reflect:null,t=e&&typeof e.apply=="function"?e.apply:function(a,o,l){return Function.prototype.apply.call(a,o,l)},n;e&&typeof e.ownKeys=="function"?n=e.ownKeys:Object.getOwnPropertySymbols?n=function(a){return Object.getOwnPropertyNames(a).concat(Object.getOwnPropertySymbols(a))}:n=function(a){return Object.getOwnPropertyNames(a)};function u(i){console&&console.warn&&console.warn(i)}var f=Number.isNaN||function(a){return a!==a};function r(){r.init.call(this)}A.exports=r,A.exports.once=M,r.EventEmitter=r,r.prototype._events=void 0,r.prototype._eventsCount=0,r.prototype._maxListeners=void 0;var c=10;function d(i){if(typeof i!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof i)}Object.defineProperty(r,"defaultMaxListeners",{enumerable:!0,get:function(){return c},set:function(i){if(typeof i!="number"||i<0||f(i))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+i+".");c=i}}),r.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},r.prototype.setMaxListeners=function(a){if(typeof a!="number"||a<0||f(a))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+a+".");return this._maxListeners=a,this};function p(i){return i._maxListeners===void 0?r.defaultMaxListeners:i._maxListeners}r.prototype.getMaxListeners=function(){return p(this)},r.prototype.emit=function(a){for(var o=[],l=1;l<arguments.length;l++)o.push(arguments[l]);var h=a==="error",E=this._events;if(E!==void 0)h=h&&E.error===void 0;else if(!h)return!1;if(h){var g;if(o.length>0&&(g=o[0]),g instanceof Error)throw g;var L=new Error("Unhandled error."+(g?" ("+g.message+")":""));throw L.context=g,L}var k=E[a];if(k===void 0)return!1;if(typeof k=="function")t(k,this,o);else for(var re=k.length,Q=W(k,re),l=0;l<re;++l)t(Q[l],this,o);return!0};function m(i,a,o,l){var h,E,g;if(d(o),E=i._events,E===void 0?(E=i._events=Object.create(null),i._eventsCount=0):(E.newListener!==void 0&&(i.emit("newListener",a,o.listener?o.listener:o),E=i._events),g=E[a]),g===void 0)g=E[a]=o,++i._eventsCount;else if(typeof g=="function"?g=E[a]=l?[o,g]:[g,o]:l?g.unshift(o):g.push(o),h=p(i),h>0&&g.length>h&&!g.warned){g.warned=!0;var L=new Error("Possible EventEmitter memory leak detected. "+g.length+" "+String(a)+" listeners added. Use emitter.setMaxListeners() to increase limit");L.name="MaxListenersExceededWarning",L.emitter=i,L.type=a,L.count=g.length,u(L)}return i}r.prototype.addListener=function(a,o){return m(this,a,o,!1)},r.prototype.on=r.prototype.addListener,r.prototype.prependListener=function(a,o){return m(this,a,o,!0)};function _(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function T(i,a,o){var l={fired:!1,wrapFn:void 0,target:i,type:a,listener:o},h=_.bind(l);return h.listener=o,l.wrapFn=h,h}r.prototype.once=function(a,o){return d(o),this.on(a,T(this,a,o)),this},r.prototype.prependOnceListener=function(a,o){return d(o),this.prependListener(a,T(this,a,o)),this},r.prototype.removeListener=function(a,o){var l,h,E,g,L;if(d(o),h=this._events,h===void 0)return this;if(l=h[a],l===void 0)return this;if(l===o||l.listener===o)--this._eventsCount===0?this._events=Object.create(null):(delete h[a],h.removeListener&&this.emit("removeListener",a,l.listener||o));else if(typeof l!="function"){for(E=-1,g=l.length-1;g>=0;g--)if(l[g]===o||l[g].listener===o){L=l[g].listener,E=g;break}if(E<0)return this;E===0?l.shift():S(l,E),l.length===1&&(h[a]=l[0]),h.removeListener!==void 0&&this.emit("removeListener",a,L||o)}return this},r.prototype.off=r.prototype.removeListener,r.prototype.removeAllListeners=function(a){var o,l,h;if(l=this._events,l===void 0)return this;if(l.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):l[a]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete l[a]),this;if(arguments.length===0){var E=Object.keys(l),g;for(h=0;h<E.length;++h)g=E[h],g!=="removeListener"&&this.removeAllListeners(g);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(o=l[a],typeof o=="function")this.removeListener(a,o);else if(o!==void 0)for(h=o.length-1;h>=0;h--)this.removeListener(a,o[h]);return this};function O(i,a,o){var l=i._events;if(l===void 0)return[];var h=l[a];return h===void 0?[]:typeof h=="function"?o?[h.listener||h]:[h]:o?R(h):W(h,h.length)}r.prototype.listeners=function(a){return O(this,a,!0)},r.prototype.rawListeners=function(a){return O(this,a,!1)},r.listenerCount=function(i,a){return typeof i.listenerCount=="function"?i.listenerCount(a):P.call(i,a)},r.prototype.listenerCount=P;function P(i){var a=this._events;if(a!==void 0){var o=a[i];if(typeof o=="function")return 1;if(o!==void 0)return o.length}return 0}r.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]};function W(i,a){for(var o=new Array(a),l=0;l<a;++l)o[l]=i[l];return o}function S(i,a){for(;a+1<i.length;a++)i[a]=i[a+1];i.pop()}function R(i){for(var a=new Array(i.length),o=0;o<a.length;++o)a[o]=i[o].listener||i[o];return a}function M(i,a){return new Promise(function(o,l){function h(g){i.removeListener(a,E),l(g)}function E(){typeof i.removeListener=="function"&&i.removeListener("error",h),o([].slice.call(arguments))}H(i,a,E,{once:!0}),a!=="error"&&G(i,h,{once:!0})})}function G(i,a,o){typeof i.on=="function"&&H(i,"error",a,o)}function H(i,a,o,l){if(typeof i.on=="function")l.once?i.once(a,o):i.on(a,o);else if(typeof i.addEventListener=="function")i.addEventListener(a,function h(E){l.once&&i.removeEventListener(a,h),o(E)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof i)}return A.exports}var De=ke(),Ie=typeof global=="object"&&global&&global.Object===Object&&global,xe=typeof self=="object"&&self&&self.Object===Object&&self,Z=Ie||xe||Function("return this")(),q=Z.Symbol,he=Object.prototype,Fe=he.hasOwnProperty,We=he.toString,V=q?q.toStringTag:void 0;function ze(e){var t=Fe.call(e,V),n=e[V];try{e[V]=void 0;var u=!0}catch{}var f=We.call(e);return u&&(t?e[V]=n:delete e[V]),f}var Ye=Object.prototype,Ge=Ye.toString;function He(e){return Ge.call(e)}var Ue="[object Null]",Ve="[object Undefined]",pe=q?q.toStringTag:void 0;function ve(e){return e==null?e===void 0?Ve:Ue:pe&&pe in Object(e)?ze(e):He(e)}function Je(e){return e!=null&&typeof e=="object"}var Xe="[object Symbol]";function Ke(e){return typeof e=="symbol"||Je(e)&&ve(e)==Xe}var Be=/\s/;function Qe(e){for(var t=e.length;t--&&Be.test(e.charAt(t)););return t}var Ze=/^\s+/;function qe(e){return e&&e.slice(0,Qe(e)+1).replace(Ze,"")}function J(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var me=NaN,$e=/^[-+]0x[0-9a-f]+$/i,et=/^0b[01]+$/i,tt=/^0o[0-7]+$/i,nt=parseInt;function be(e){if(typeof e=="number")return e;if(Ke(e))return me;if(J(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=J(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=qe(e);var n=et.test(e);return n||tt.test(e)?nt(e.slice(2),n?2:8):$e.test(e)?me:+e}var rt="[object AsyncFunction]",ot="[object Function]",at="[object GeneratorFunction]",st="[object Proxy]";function it(e){if(!J(e))return!1;var t=ve(e);return t==ot||t==at||t==rt||t==st}var ae=Z["__core-js_shared__"],ge=function(){var e=/[^.]+$/.exec(ae&&ae.keys&&ae.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function ut(e){return!!ge&&ge in e}var ct=Function.prototype,ft=ct.toString;function lt(e){if(e!=null){try{return ft.call(e)}catch{}try{return e+""}catch{}}return""}var dt=/[\\^$.*+?()[\]{}|]/g,ht=/^\[object .+?Constructor\]$/,pt=Function.prototype,vt=Object.prototype,mt=pt.toString,bt=vt.hasOwnProperty,gt=RegExp("^"+mt.call(bt).replace(dt,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function _t(e){if(!J(e)||ut(e))return!1;var t=it(e)?gt:ht;return t.test(lt(e))}function Et(e,t){return e==null?void 0:e[t]}function _e(e,t){var n=Et(e,t);return _t(n)?n:void 0}function yt(e,t){return e===t||e!==e&&t!==t}var X=_e(Object,"create");function St(){this.__data__=X?X(null):{},this.size=0}function Tt(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var wt="__lodash_hash_undefined__",Ot=Object.prototype,Rt=Ot.hasOwnProperty;function Ct(e){var t=this.__data__;if(X){var n=t[e];return n===wt?void 0:n}return Rt.call(t,e)?t[e]:void 0}var jt=Object.prototype,Lt=jt.hasOwnProperty;function Pt(e){var t=this.__data__;return X?t[e]!==void 0:Lt.call(t,e)}var Nt="__lodash_hash_undefined__";function At(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=X&&t===void 0?Nt:t,this}function I(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var u=e[t];this.set(u[0],u[1])}}I.prototype.clear=St,I.prototype.delete=Tt,I.prototype.get=Ct,I.prototype.has=Pt,I.prototype.set=At;function Mt(){this.__data__=[],this.size=0}function $(e,t){for(var n=e.length;n--;)if(yt(e[n][0],t))return n;return-1}var kt=Array.prototype,Dt=kt.splice;function It(e){var t=this.__data__,n=$(t,e);if(n<0)return!1;var u=t.length-1;return n==u?t.pop():Dt.call(t,n,1),--this.size,!0}function xt(e){var t=this.__data__,n=$(t,e);return n<0?void 0:t[n][1]}function Ft(e){return $(this.__data__,e)>-1}function Wt(e,t){var n=this.__data__,u=$(n,e);return u<0?(++this.size,n.push([e,t])):n[u][1]=t,this}function z(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var u=e[t];this.set(u[0],u[1])}}z.prototype.clear=Mt,z.prototype.delete=It,z.prototype.get=xt,z.prototype.has=Ft,z.prototype.set=Wt;var zt=_e(Z,"Map");function Yt(){this.size=0,this.__data__={hash:new I,map:new(zt||z),string:new I}}function Gt(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function ee(e,t){var n=e.__data__;return Gt(t)?n[typeof t=="string"?"string":"hash"]:n.map}function Ht(e){var t=ee(this,e).delete(e);return this.size-=t?1:0,t}function Ut(e){return ee(this,e).get(e)}function Vt(e){return ee(this,e).has(e)}function Jt(e,t){var n=ee(this,e),u=n.size;return n.set(e,t),this.size+=n.size==u?0:1,this}function x(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var u=e[t];this.set(u[0],u[1])}}x.prototype.clear=Yt,x.prototype.delete=Ht,x.prototype.get=Ut,x.prototype.has=Vt,x.prototype.set=Jt;var Xt="Expected a function";function se(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Xt);var n=function(){var u=arguments,f=t?t.apply(this,u):u[0],r=n.cache;if(r.has(f))return r.get(f);var c=e.apply(this,u);return n.cache=r.set(f,c)||r,c};return n.cache=new(se.Cache||x),n}se.Cache=x;var ie=function(){return Z.Date.now()},Kt="Expected a function",Bt=Math.max,Qt=Math.min;function te(e,t,n){var u,f,r,c,d,p,m=0,_=!1,T=!1,O=!0;if(typeof e!="function")throw new TypeError(Kt);t=be(t)||0,J(n)&&(_=!!n.leading,T="maxWait"in n,r=T?Bt(be(n.maxWait)||0,t):r,O="trailing"in n?!!n.trailing:O);function P(o){var l=u,h=f;return u=f=void 0,m=o,c=e.apply(h,l),c}function W(o){return m=o,d=setTimeout(M,t),_?P(o):c}function S(o){var l=o-p,h=o-m,E=t-l;return T?Qt(E,r-h):E}function R(o){var l=o-p,h=o-m;return p===void 0||l>=t||l<0||T&&h>=r}function M(){var o=ie();if(R(o))return G(o);d=setTimeout(M,S(o))}function G(o){return d=void 0,O&&u?P(o):(u=f=void 0,c)}function H(){d!==void 0&&clearTimeout(d),m=0,u=p=f=d=void 0}function i(){return d===void 0?c:G(ie())}function a(){var o=ie(),l=R(o);if(u=arguments,f=this,p=o,l){if(d===void 0)return W(p);if(T)return clearTimeout(d),d=setTimeout(M,t),P(p)}return d===void 0&&(d=setTimeout(M,t)),c}return a.cancel=H,a.flush=i,a}const Ee=()=>Math.random().toString().slice(2),ye=e=>{const{current:{computedHash:t}}=v.useRef({get computedHash(){let n=[],u=Ee();return f=>{let r=!1;return r=r||!f!=!n,r=r||(f==null?void 0:f.length)!=(n==null?void 0:n.length),r=r||f.some((c,d)=>c!=n[d]),n=f,r&&(u=Ee()),u}}});return t(e)};class Se{constructor(t){oe(this,"event",new De.EventEmitter);oe(this,"data",{});oe(this,"registry",new Set);this.name=t,console.log("[CONTEXT] %s",t),this.event.setMaxListeners(100)}publish(t,n){n!=this.data[t]&&(this.data[t]=n,this.event.emit(String(t),{value:n}))}subscribe(t,n){const u=({value:f})=>{n(f)};return this.event.addListener(String(t),u),t in this.data&&n(this.data[t]),()=>(this.event.removeListener(String(t),u),void 0)}}const Te=se(e=>new Se(e)),F=(e="noname")=>v.useMemo(()=>Te(e),[e]),we=(e,...t)=>{const n=new Error("[ctx] useRegistryChecker failed "+JSON.stringify({names:t,ctx:(e==null?void 0:e.name)??"undefined"}));v.useEffect(()=>{if(e)return t.some(u=>e.registry.has(u))&&console.error(n),t.forEach(u=>e.registry.add(u)),()=>{t.forEach(u=>e.registry.delete(u))}},[e,t.length])},Zt=(e,t,n)=>{v.useEffect(()=>{e&&e.data[t]!=n&&e.publish(t,n)},[t,n,e]),we(e,t)},Oe=(e,t,n=0)=>{const[{value:u},f]=v.useState(()=>{var r;return{value:(r=e==null?void 0:e.data)==null?void 0:r[t]}});return v.useEffect(()=>{if(e){let r=n==0?d=>f({value:d}):te(d=>f({value:d}),n),c=e.subscribe(t,r);return u!=e.data[t]&&f({value:e.data[t]}),()=>{c()}}},[t,e]),e==null?void 0:e.data[t]},qt=(e,t,n)=>{const[,u]=v.useState(0),f=v.useMemo(()=>n(e==null?void 0:e.data[t]),[n,e==null?void 0:e.data[t]]);return v.useEffect(()=>{if(e){let r=f,c=()=>{let p=n(e.data[t]);p!=r&&(r=p,u(m=>m+1))},d=e.subscribe(t,c);return c(),()=>d()}},[t,e]),f},ue=(e,...t)=>{v.useEffect(()=>{if(e)for(let[n,u]of t)e.data[n]!=u&&e.publish(n,u)},[e,ye(t.flat())]),we(e,...t.map(n=>n[0]))},$t=(e,...t)=>{const[,n]=v.useState(0),u=t.map(f=>{var r;return(r=e==null?void 0:e.data)==null?void 0:r[f]});return v.useEffect(()=>{if(e){let f=u;const r=te(()=>{let p=t.map(m=>{var _;return(_=e==null?void 0:e.data)==null?void 0:_[m]});t.some((m,_)=>f[_]!=p[_])&&(f=p,n(m=>m+1))},1);let c=t.map(p=>e.subscribe(p,r)),d=setTimeout(r,1);return()=>{clearTimeout(d),r.cancel(),c.forEach(p=>p())}}},[e,...t]),Object.fromEntries(t.map((f,r)=>[f,u[r]]))},en=(e,t=50,...n)=>{const[,u]=v.useState(0),f=n.map(r=>{var c;return(c=e==null?void 0:e.data)==null?void 0:c[r]});return v.useEffect(()=>{if(e){let r=f;const c=te(()=>{let m=n.map(_=>{var T;return(T=e==null?void 0:e.data)==null?void 0:T[_]});n.some((_,T)=>r[T]!=m[T])&&(r=m,u(_=>_+1))},t);let d=n.map(m=>e.subscribe(m,c)),p=setTimeout(c,1);return()=>{clearTimeout(p),c.cancel(),d.forEach(m=>m())}}},[e,...n]),f};var ne={exports:{}},K={};/**
|
|
2
|
-
* @license React
|
|
3
|
-
* react-jsx-runtime.production.js
|
|
4
|
-
*
|
|
5
|
-
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
6
|
-
*
|
|
7
|
-
* This source code is licensed under the MIT license found in the
|
|
8
|
-
* LICENSE file in the root directory of this source tree.
|
|
9
|
-
*/var Re;function tn(){if(Re)return K;Re=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(u,f,r){var c=null;if(r!==void 0&&(c=""+r),f.key!==void 0&&(c=""+f.key),"key"in f){r={};for(var d in f)d!=="key"&&(r[d]=f[d])}else r=f;return f=r.ref,{$$typeof:e,type:u,key:c,ref:f!==void 0?f:null,props:r}}return K.Fragment=t,K.jsx=n,K.jsxs=n,K}var B={};/**
|
|
10
|
-
* @license React
|
|
11
|
-
* react-jsx-runtime.development.js
|
|
12
|
-
*
|
|
13
|
-
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
14
|
-
*
|
|
15
|
-
* This source code is licensed under the MIT license found in the
|
|
16
|
-
* LICENSE file in the root directory of this source tree.
|
|
17
|
-
*/var Ce;function nn(){return Ce||(Ce=1,process.env.NODE_ENV!=="production"&&function(){function e(s){if(s==null)return null;if(typeof s=="function")return s.$$typeof===g?null:s.displayName||s.name||null;if(typeof s=="string")return s;switch(s){case S:return"Fragment";case M:return"Profiler";case R:return"StrictMode";case a:return"Suspense";case o:return"SuspenseList";case E:return"Activity"}if(typeof s=="object")switch(typeof s.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),s.$$typeof){case W:return"Portal";case H:return(s.displayName||"Context")+".Provider";case G:return(s._context.displayName||"Context")+".Consumer";case i:var b=s.render;return s=s.displayName,s||(s=b.displayName||b.name||"",s=s!==""?"ForwardRef("+s+")":"ForwardRef"),s;case l:return b=s.displayName||null,b!==null?b:e(s.type)||"Memo";case h:b=s._payload,s=s._init;try{return e(s(b))}catch{}}return null}function t(s){return""+s}function n(s){try{t(s);var b=!1}catch{b=!0}if(b){b=console;var w=b.error,C=typeof Symbol=="function"&&Symbol.toStringTag&&s[Symbol.toStringTag]||s.constructor.name||"Object";return w.call(b,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",C),t(s)}}function u(s){if(s===S)return"<>";if(typeof s=="object"&&s!==null&&s.$$typeof===h)return"<...>";try{var b=e(s);return b?"<"+b+">":"<...>"}catch{return"<...>"}}function f(){var s=L.A;return s===null?null:s.getOwner()}function r(){return Error("react-stack-top-frame")}function c(s){if(k.call(s,"key")){var b=Object.getOwnPropertyDescriptor(s,"key").get;if(b&&b.isReactWarning)return!1}return s.key!==void 0}function d(s,b){function w(){Le||(Le=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",b))}w.isReactWarning=!0,Object.defineProperty(s,"key",{get:w,configurable:!0})}function p(){var s=e(this.type);return Pe[s]||(Pe[s]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),s=this.props.ref,s!==void 0?s:null}function m(s,b,w,C,D,N,ce,fe){return w=N.ref,s={$$typeof:P,type:s,key:b,props:N,_owner:D},(w!==void 0?w:null)!==null?Object.defineProperty(s,"ref",{enumerable:!1,get:p}):Object.defineProperty(s,"ref",{enumerable:!1,value:null}),s._store={},Object.defineProperty(s._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(s,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(s,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:ce}),Object.defineProperty(s,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:fe}),Object.freeze&&(Object.freeze(s.props),Object.freeze(s)),s}function _(s,b,w,C,D,N,ce,fe){var j=b.children;if(j!==void 0)if(C)if(re(j)){for(C=0;C<j.length;C++)T(j[C]);Object.freeze&&Object.freeze(j)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else T(j);if(k.call(b,"key")){j=e(s);var U=Object.keys(b).filter(function(ln){return ln!=="key"});C=0<U.length?"{key: someKey, "+U.join(": ..., ")+": ...}":"{key: someKey}",Me[j+C]||(U=0<U.length?"{"+U.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
|
|
18
|
-
let props = %s;
|
|
19
|
-
<%s {...props} />
|
|
20
|
-
React keys must be passed directly to JSX without using spread:
|
|
21
|
-
let props = %s;
|
|
22
|
-
<%s key={someKey} {...props} />`,C,j,U,j),Me[j+C]=!0)}if(j=null,w!==void 0&&(n(w),j=""+w),c(b)&&(n(b.key),j=""+b.key),"key"in b){w={};for(var le in b)le!=="key"&&(w[le]=b[le])}else w=b;return j&&d(w,typeof s=="function"?s.displayName||s.name||"Unknown":s),m(s,j,N,D,f(),w,ce,fe)}function T(s){typeof s=="object"&&s!==null&&s.$$typeof===P&&s._store&&(s._store.validated=1)}var O=v,P=Symbol.for("react.transitional.element"),W=Symbol.for("react.portal"),S=Symbol.for("react.fragment"),R=Symbol.for("react.strict_mode"),M=Symbol.for("react.profiler"),G=Symbol.for("react.consumer"),H=Symbol.for("react.context"),i=Symbol.for("react.forward_ref"),a=Symbol.for("react.suspense"),o=Symbol.for("react.suspense_list"),l=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),E=Symbol.for("react.activity"),g=Symbol.for("react.client.reference"),L=O.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,k=Object.prototype.hasOwnProperty,re=Array.isArray,Q=console.createTask?console.createTask:function(){return null};O={"react-stack-bottom-frame":function(s){return s()}};var Le,Pe={},Ne=O["react-stack-bottom-frame"].bind(O,r)(),Ae=Q(u(r)),Me={};B.Fragment=S,B.jsx=function(s,b,w,C,D){var N=1e4>L.recentlyCreatedOwnerStacks++;return _(s,b,w,!1,C,D,N?Error("react-stack-top-frame"):Ne,N?Q(u(s)):Ae)},B.jsxs=function(s,b,w,C,D){var N=1e4>L.recentlyCreatedOwnerStacks++;return _(s,b,w,!0,C,D,N?Error("react-stack-top-frame"):Ne,N?Q(u(s)):Ae)}}()),B}var je;function rn(){return je||(je=1,process.env.NODE_ENV==="production"?ne.exports=tn():ne.exports=nn()),ne.exports}var Y=rn();const on=(e,t)=>{const n=r=>[e,...Object.entries(r??{}).sort((c,d)=>c[0].localeCompare(d[0])).flat()].join("-");let u=new Set;const f=r=>{const c=t(r),d=n(r),p=F(d),m=v.useMemo(()=>new Error().stack,[]);return ue(p,...Object.entries(c)),v.useEffect(()=>{if(u.has(d)){const _=new Error("RootContext "+d+" are mounted more than once");throw _.stack=m,_}return u.add(d),()=>{u.delete(d)}}),Y.jsx(Y.Fragment,{})};return f.displayName=`State[${(t==null?void 0:t.name)??"??"}]`,{resolveCtxName:n,Root:f,useCtxStateStrict:r=>{const c=n(r),d=v.useMemo(()=>new Error().stack,[]);return v.useEffect(()=>{if(!u.has(c)){const p=new Error("RootContext ["+c+"] is not mounted");throw p.stack=d,p}},[c]),F(c)},useCtxState:r=>{const c=n(r),d=v.useMemo(()=>new Error().stack,[]);return v.useEffect(()=>{if(!u.has(c)){const p=new Error("RootContext ["+c+"] is not mounted");p.stack=d;let m=setTimeout(()=>console.error(p),1e3);return()=>clearTimeout(m)}},[u.has(c)]),F(c)}}},an=function(){const e=new WeakMap;return t=>{let n=e.get(t);return n||e.set(t,n=((t==null?void 0:t.name)??"")+Math.random().toString()),n}}(),sn=e=>[...Object.entries(e??{}).sort((t,n)=>t[0].localeCompare(n[0])).flat()].join("-"),un=({Wrapper:e=v.Fragment})=>{const t=F("auto-ctx"),[n,u]=v.useState({}),f=v.useCallback((r,c)=>{const d=an(r),p=sn(c);return u(({[d]:{Component:m=r,subState:{[p]:_={params:c,counter:0},...T}={}}={},...O})=>({...O,[d]:{Component:m,subState:{...T,[p]:{..._,counter:_.counter+1}}}})),()=>u(({[d]:{Component:m=r,subState:{[p]:_={params:c,counter:0},...T}={}}={},...O})=>({...O,[d]:{Component:m,subState:{...T,..._.counter>1?{[p]:{..._,counter:_.counter-1}}:{}}}}))},[]);return ue(t,["subscribe",f],["state",n]),Y.jsx(Y.Fragment,{children:Object.entries(n).flatMap(([r,{Component:c,subState:d}])=>Object.entries(d).map(([p,{counter:m,params:_}])=>({key:r+p,Component:c,params:_,counter:m})).filter(p=>p.counter>0).map(({key:p,params:m,Component:_})=>Y.jsx(e,{children:Y.jsx(_,{...m})},p)))})},cn=({Root:e,useCtxState:t,useCtxStateStrict:n,resolveCtxName:u})=>({useCtxState:f=>{const r=u(f),c=Oe(F("auto-ctx"),"subscribe");return v.useEffect(()=>c==null?void 0:c(e,f),[c,r]),F(r)}}),fn=e=>{const[,t]=v.useState(0),{proxy:n,finalGetter:u,openGetter:f,clean:r}=v.useMemo(()=>{const c=new Set,d={},p=new Map,m=new Proxy(e==null?void 0:e.data,{get(S,R){if(_)return c.add(R),d[R]=S[R];throw new Error("now allow here")}});let _=!0,T=te(()=>{[...c.values()].some(S=>{var R;return d[S]!=((R=e==null?void 0:e.data)==null?void 0:R[S])})&&t(S=>S+1)},0),O=()=>{_=!0,c.clear()},P=()=>{_=!1,[...c.values()].filter(S=>!p.has(S)).forEach(S=>{p.set(S,e==null?void 0:e.subscribe(S,T))}),[...p.keys()].filter(S=>!c.has(S)).forEach(S=>{let R=p.get(S);R==null||R(),p.delete(S)})};return{proxy:m,finalGetter:P,openGetter:O,clean:()=>{O(),P(),t(S=>S+1)}}},[e]);return f(),setTimeout(u,0),v.useEffect(()=>()=>r(),[r]),n};y.AutoRootCtx=un,y.Context=Se,y.createAutoCtx=cn,y.createRootCtx=on,y.getContext=Te,y.useArrayHash=ye,y.useDataContext=F,y.useDataSource=Zt,y.useDataSourceMultiple=ue,y.useDataSubscribe=Oe,y.useDataSubscribeMultiple=$t,y.useDataSubscribeMultipleWithDebounce=en,y.useDataSubscribeWithTransform=qt,y.useQuickSubscribe=fn,Object.defineProperty(y,Symbol.toStringTag,{value:"Module"})});
|
|
1
|
+
(function(b,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("react"),require("react/jsx-runtime")):typeof define=="function"&&define.amd?define(["exports","react","react/jsx-runtime"],i):(b=typeof globalThis<"u"?globalThis:b||self,i(b.RState={},b.React,b.jsxRuntime))})(this,function(b,i,S){"use strict";function E(t,e){let s=null,r=function(...a){s&&clearTimeout(s),s=setTimeout(()=>{t(...a)},e)};return r.cancel=()=>clearTimeout(s),r}function O(t){const e=new Map;return function(...s){const r=JSON.stringify(s);if(e.has(r))return e.get(r);const a=t(...s);return e.set(r,a),a}}const w=()=>Math.random().toString().slice(2),M=t=>{const{current:{computedHash:e}}=i.useRef({get computedHash(){let s=[],r=w();return a=>{let n=!1;return n=n||!a!=!s,n=n||a?.length!=s?.length,n=n||a.some((u,c)=>u!=s[c]),s=a,n&&(r=w()),r}}});return e(t)};class R extends Event{constructor(e,s){super(e),this.event=e,this.value=s}}class v extends EventTarget{constructor(e){console.log("[CONTEXT] %s",e),super(),this.name=e}data={};registry=new Set;publish(e,s){s!=this.data[e]&&(this.data[e]=s,this.dispatchEvent(new R(String(e),s)))}subscribe(e,s){const r=({event:a,value:n})=>{s(n)};return this.addEventListener(String(e),r),e in this.data&&s(this.data[e]),()=>(this.removeEventListener(String(e),r),void 0)}}const D=O(t=>new v(t)),m=(t="noname")=>i.useMemo(()=>D(t),[t]),T=(t,...e)=>{const s=new Error("[ctx] useRegistryChecker failed "+JSON.stringify({names:e,ctx:t?.name??"undefined"}));i.useEffect(()=>{if(t)return e.some(r=>t.registry.has(r))&&console.error(s),e.forEach(r=>t.registry.add(r)),()=>{e.forEach(r=>t.registry.delete(r))}},[t,e.length])},V=(t,e,s)=>{i.useEffect(()=>{t&&t.data[e]!=s&&t.publish(e,s)},[e,s,t]),T(t,e)},j=(t,e,s=0)=>{const[{value:r},a]=i.useState(()=>({value:t?.data?.[e]}));return i.useEffect(()=>{if(t){let n=s==0?c=>a({value:c}):E(c=>a({value:c}),s),u=t.subscribe(e,n);return r!=t.data[e]&&a({value:t.data[e]}),()=>{u()}}},[e,t]),t?.data[e]},G=(t,e,s)=>{const[,r]=i.useState(0),a=i.useMemo(()=>s(t?.data[e]),[s,t?.data[e]]);return i.useEffect(()=>{if(t){let n=a,u=()=>{let o=s(t.data[e]);o!=n&&(n=o,r(l=>l+1))},c=t.subscribe(e,u);return u(),()=>c()}},[e,t]),a},g=(t,...e)=>{i.useEffect(()=>{if(t)for(let[s,r]of e)t.data[s]!=r&&t.publish(s,r)},[t,M(e.flat())]),T(t,...e.map(s=>s[0]))},A=(t,...e)=>{const[,s]=i.useState(0),r=e.map(a=>t?.data?.[a]);return i.useEffect(()=>{if(t){let a=r;const n=E(()=>{let o=e.map(l=>t?.data?.[l]);e.some((l,f)=>a[f]!=o[f])&&(a=o,s(l=>l+1))},1);let u=e.map(o=>t.subscribe(o,n)),c=setTimeout(n,1);return()=>{clearTimeout(c),n.cancel(),u.forEach(o=>o())}}},[t,...e]),Object.fromEntries(e.map((a,n)=>[a,r[n]]))},H=(t,e=50,...s)=>{const[,r]=i.useState(0),a=s.map(n=>t?.data?.[n]);return i.useEffect(()=>{if(t){let n=a;const u=E(()=>{let l=s.map(f=>t?.data?.[f]);s.some((f,h)=>n[h]!=l[h])&&(n=l,r(f=>f+1))},e);let c=s.map(l=>t.subscribe(l,u)),o=setTimeout(u,1);return()=>{clearTimeout(o),u.cancel(),c.forEach(l=>l())}}},[t,...s]),a},W=(t,e)=>{const s=n=>[t,...Object.entries(n??{}).sort((u,c)=>u[0].localeCompare(c[0])).flat()].join("-");let r=new Set;const a=n=>{const u=e(n),c=s(n),o=m(c),l=i.useMemo(()=>new Error().stack,[]);return g(o,...Object.entries(u)),i.useEffect(()=>{if(r.has(c)){const f=new Error("RootContext "+c+" are mounted more than once");throw f.stack=l,f}return r.add(c),()=>{r.delete(c)}}),S.jsx(S.Fragment,{})};return a.displayName=`State[${e?.name??"??"}]`,{resolveCtxName:s,Root:a,useCtxStateStrict:n=>{const u=s(n),c=i.useMemo(()=>new Error().stack,[]);return i.useEffect(()=>{if(!r.has(u)){const o=new Error("RootContext ["+u+"] is not mounted");throw o.stack=c,o}},[u]),m(u)},useCtxState:n=>{const u=s(n),c=i.useMemo(()=>new Error().stack,[]);return i.useEffect(()=>{if(!r.has(u)){const o=new Error("RootContext ["+u+"] is not mounted");o.stack=c;let l=setTimeout(()=>console.error(o),1e3);return()=>clearTimeout(l)}},[r.has(u)]),m(u)}}},k=function(){const t=new WeakMap;return e=>{let s=t.get(e);return s||t.set(e,s=(e?.name??"")+Math.random().toString()),s}}(),q=t=>[...Object.entries(t??{}).sort((e,s)=>e[0].localeCompare(s[0])).flat()].join("-"),F=({Wrapper:t=i.Fragment})=>{const e=m("auto-ctx"),[s,r]=i.useState({}),a=i.useCallback((n,u)=>{const c=k(n),o=q(u);return r(({[c]:{Component:l=n,subState:{[o]:f={params:u,counter:0},...h}={}}={},...C})=>({...C,[c]:{Component:l,subState:{...h,[o]:{...f,counter:f.counter+1}}}})),()=>r(({[c]:{Component:l=n,subState:{[o]:f={params:u,counter:0},...h}={}}={},...C})=>({...C,[c]:{Component:l,subState:{...h,...f.counter>1?{[o]:{...f,counter:f.counter-1}}:{}}}}))},[]);return g(e,["subscribe",a],["state",s]),S.jsx(S.Fragment,{children:Object.entries(s).flatMap(([n,{Component:u,subState:c}])=>Object.entries(c).map(([o,{counter:l,params:f}])=>({key:n+o,Component:u,params:f,counter:l})).filter(o=>o.counter>0).map(({key:o,params:l,Component:f})=>S.jsx(t,{children:S.jsx(f,{...l})},o)))})},J=({Root:t,useCtxState:e,useCtxStateStrict:s,resolveCtxName:r})=>({useCtxState:a=>{const n=r(a),u=j(m("auto-ctx"),"subscribe");return i.useEffect(()=>u?.(t,a),[u,n]),m(n)}}),L=t=>{const[,e]=i.useState(0),{proxy:s,finalGetter:r,openGetter:a,clean:n}=i.useMemo(()=>{const u=new Set,c={},o=new Map,l=new Proxy(t?.data,{get(d,p){if(f)return u.add(p),c[p]=d[p];throw new Error("now allow here")}});let f=!0,h=E(()=>{[...u.values()].some(d=>c[d]!=t?.data?.[d])&&e(d=>d+1)},0),C=()=>{f=!0,u.clear()},N=()=>{f=!1,[...u.values()].filter(d=>!o.has(d)).forEach(d=>{o.set(d,t?.subscribe(d,h))}),[...o.keys()].filter(d=>!u.has(d)).forEach(d=>{o.get(d)?.(),o.delete(d)})};return{proxy:l,finalGetter:N,openGetter:C,clean:()=>{C(),N(),e(d=>d+1)}}},[t]);return a(),setTimeout(r,0),i.useEffect(()=>()=>n(),[n]),s};b.AutoRootCtx=F,b.Context=v,b.createAutoCtx=J,b.createRootCtx=W,b.getContext=D,b.useArrayHash=M,b.useDataContext=m,b.useDataSource=V,b.useDataSourceMultiple=g,b.useDataSubscribe=j,b.useDataSubscribeMultiple=A,b.useDataSubscribeMultipleWithDebounce=H,b.useDataSubscribeWithTransform=G,b.useQuickSubscribe=L,Object.defineProperty(b,Symbol.toStringTag,{value:"Module"})});
|
|
23
2
|
//# sourceMappingURL=index.umd.js.map
|