rumious 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/render/context.js","../src/component/component.js","../src/dom/element.js","../src/utils/checker.js","../src/render/directives.js","../src/jsx/index.js","../src/component/element.js","../src/component/render.js","../src/render/index.js","../src/app/index.js","../src/state/reactive.js","../src/state/reducer.js","../node_modules/mutative/dist/mutative.esm.mjs","../src/state/produce.js","../src/state/state.js","../src/state/watcher.js"],"sourcesContent":["export class RumiousRenderContext{\n constructor(target){\n this.target = target;\n }\n \n find(name){\n return this.target[name];\n }\n \n get(name){\n return this.target[name];\n }\n}","import {RumiousRenderContext} from '../render/context.js';\n\nexport class RumiousComponent {\n constructor() {\n this.element = null;\n this.props = {};\n this.renderContext = new RumiousRenderContext(this);\n this.renderer = null;\n this.wrapped = null;\n }\n\n prepare(element, props, wrapped = {}, renderer = null) {\n this.element = element;\n this.props = props;\n this.renderer = renderer;\n this.wrapped = wrapped;\n }\n\n template() {\n return {};\n }\n\n requestRender() {\n let template = this.template();\n let fragment = this.renderer(template, document.createDocumentFragment(), this.renderContext);\n this.element.appendChild(fragment);\n this.onRender();\n }\n\n async requestCleanUp() {\n if (this.element) {\n let cloned = this.element.cloneNode(true);\n this.element.replaceWith(cloned);\n this.element = cloned;\n\n while (this.element.firstChild) {\n this.element.removeChild(this.element.firstChild);\n }\n }\n }\n\n onInit() {}\n onCreate() {}\n onRender() {}\n onUpdate() {}\n onDestroy() {}\n}\n\nexport function isComponent(component){\n return Object.getPrototypeOf(component) === RumiousComponent;\n}","export class RumiousElement {\n constructor(type, props, children = []) {\n this.type = type;\n this.props = props;\n this.children = children;\n }\n}\n\nexport class RumiousElementList{\n constructor(list){\n this.type = \"ELEMENT_LIST\"\n this.children = list\n }\n \n forEach(callback ){\n this.children.forEach(callback)\n }\n}\n","export function isCamelCase(str) {\n const camelCaseRegex = /^[a-zA-Z]+([A-Z][a-z]*)*$/;\n return camelCaseRegex.test(str);\n}\n\nexport function isFunction(object) {\n return typeof object === 'function';\n}","import { isFunction } from '../utils/checker.js';\n\nexport class RumiousDirective {\n constructor(type, name, value) {\n this.type = type;\n this.name = name;\n this.value = value;\n }\n\n init() {\n console.warn(\"Directive haven't handler !\");\n }\n}\n\nexport class RumiousEventBindingDirective extends RumiousDirective {\n async init(dom, renderContext) {\n let fn = null;\n\n const getHandler = (value) => {\n if (!renderContext.find(value)) {\n console.warn(`Missing event handler for event: ${this.name}`);\n return null;\n }\n const handler = renderContext.get(value);\n if (!isFunction(handler)) {\n throw `${value} is not a function!`;\n }\n return handler.bind(renderContext.target);\n };\n\n if (this.value.type === \"string\") {\n fn = getHandler(this.value.value);\n } else if (this.value.type === \"expression\") {\n fn = this.value.value;\n if (!isFunction(fn)) {\n throw \"Event handler requires a function!\";\n }\n } else if (this.value.type === \"dynamic_value\") {\n fn = getHandler(this.value.value.objectName);\n }\n\n if (fn) {\n dom.addEventListener(this.name, fn);\n }\n }\n}\n\nexport class RumiousPropsBindingDirective extends RumiousDirective {\n async init(dom, renderContext) {\n let fn = null;\n\n if (this.value.type === \"expression\") {\n\n } else if (this.value.type === \"dynamic_value\") {\n let currentStateValue = this.value.evaluator?.(renderContext.target)\n let currentState = renderContext.find(this.value.value.objectName);\n if (!currentState) {\n throw \"Invalid props value: Directive bind: require a RumiousState Object !\"\n } else {\n currentState.reactor.addBinding(() => {\n let currentStateValue = this.value.evaluator?.(renderContext.target)\n this.bindAttr(dom,currentStateValue);\n })\n }\n\n this.bindAttr(dom,currentStateValue);\n }\n }\n \n normalizeValue(value){\n if(typeof value === \"object\"){\n return value.toString?.() ?? \"\"\n }\n return value;\n }\n \n async bindAttr(dom,value) {\n switch(this.name){\n case \"html\":\n dom.innerHTML = this.normalizeValue(value);\n break;\n \n \n }\n }\n}\n\n\nconst directives = {\n on(event, value) {\n return new RumiousEventBindingDirective(\"on\", event, value);\n },\n bind(attr, value) {\n return new RumiousPropsBindingDirective(\"bind\", attr, value);\n }\n};\n\n\nexport function registerDirective(type, name, value) {\n return directives[type]?.(name, value);\n}","import { isComponent } from '../component/component.js';\nimport {RumiousElement,RumiousElementList} from '../dom/element.js';\nimport {registerDirective} from '../render/directives.js';\n\n\n\nfunction createDirective(type,name,value) {\n return registerDirective(type,name,value)\n}\n\nfunction createElement(type, props, ...children) {\n if (isComponent(type)) {\n return createComponent(type, props, children);\n }\n\n if (type === createFragment) {\n return createFragment(...children);\n }\n\n return new RumiousElement(type, props || {}, normalizeChildren(children));\n}\n\nfunction createTextElement(text) {\n return new RumiousElement(\"TEXT_ELEMENT\", { nodeValue: text }, []);\n}\n\nfunction createComponent(type, props, children) {\n return new RumiousElement(\"COMPONENT\", { component: type, ...props },new RumiousElementList(normalizeChildren(children)));\n}\n\nfunction createFragment(...children) {\n return new RumiousElement(\"FRAGMENT\", {}, normalizeChildren(children));\n}\n\nfunction normalizeChildren(children) {\n return children.map(child => (typeof child === \"object\" ? child : createTextElement(child)));\n}\n\nwindow.RUMIOUS_JSX_SUPPORT = {\n createElement,\n createFragment,\n createDirective\n};","export class RumiousComponentElement extends HTMLElement{\n constructor(){\n super();\n this.instance = null;\n }\n \n init(componentConstructor,props,wrapped={},renderer){\n this.instance = new componentConstructor();\n this.instance.prepare(this,props,wrapped,renderer);\n this.instance.onInit()\n }\n \n connectedCallback(){\n this.instance.onCreate();\n this.instance.requestRender();\n }\n \n \n disconnectCallback(){\n this.instance.onDestroy()\n this.instance.requestCleanUp()\n }\n}\n\nexport function createComponentElement(){\n return document.createElement(\"a-component\");\n}\n\nwindow.customElements.define(\"a-component\",RumiousComponentElement);","import { createComponentElement } from './element.js';\n\nexport function renderComponent(componentConstructor, props, wrapped, renderer) {\n const componentElement = createComponentElement();\n componentElement.init(componentConstructor, props,wrapped, renderer);\n return componentElement;\n}\n","import { isCamelCase } from '../utils/checker.js';\nimport { renderComponent } from '../component/render.js';\nimport { isComponent } from '../component/component.js';\nimport { RumiousDirective } from './directives.js';\n\nfunction handleComponentElement(element, container, render) {\n const dom = renderComponent(element.props.component, element.props, element.children, render);\n container.appendChild(dom);\n return container;\n}\n\nfunction handleFragmentOrElementList(element, container, renderContext) {\n element.children.forEach(child => render(child, container, renderContext));\n return container;\n}\n\nfunction handleTextElement(element) {\n return document.createTextNode(element.props.nodeValue);\n}\n\nfunction handleRegularElement(element, renderContext) {\n const dom = document.createElement(element.type);\n Object.entries(element.props || {}).forEach(([name, propValue]) => {\n if (name.startsWith(\"on\") && isCamelCase(name)) {\n dom.addEventListener(name.substring(2).toLowerCase(), propValue);\n } else {\n setElementProps(dom, name, propValue,renderContext);\n }\n });\n return dom;\n}\n\nfunction handleDirective(dom,directive,renderContext){\n directive.init(dom,renderContext);\n}\n\nfunction setElementProps(dom, name, propValue,renderContext) {\n if (dom.nodeType === Node.TEXT_NODE) {\n dom.nodeValue = propValue;\n } else if (propValue instanceof RumiousDirective) {\n handleDirective(dom,propValue,renderContext);\n } else {\n dom.setAttribute(name, propValue);\n }\n}\n\nexport function render(element, container, renderContext = {}) {\n if (!element) return container;\n\n let dom;\n\n if (element.type === \"COMPONENT\") {\n return handleComponentElement(element, container, render);\n }\n\n if (element.type === \"FRAGMENT\" || element.type === \"ELEMENT_LIST\") {\n return handleFragmentOrElementList(element, container, renderContext);\n }\n\n if (element.type === \"TEXT_ELEMENT\") {\n dom = handleTextElement(element);\n } else {\n dom = handleRegularElement(element, renderContext);\n }\n\n element.children.forEach(child => render(child, dom, renderContext));\n container.appendChild(dom);\n return container;\n}","import { RumiousRenderContext } from '../render/context.js';\nimport { render } from '../render/index.js';\n\nexport class RumiousApp {\n constructor(root = document.createElement(\"span\"), configs = {}) {\n this.root = root;\n this.configs = configs;\n this.renderContext = new RumiousRenderContext(this);\n }\n\n render(element) {\n render(element, this.root, this.renderContext);\n }\n\n}","export class RumiousReactor {\n constructor(target = null, bindings = []) {\n this.target = target;\n this.bindings = bindings;\n }\n\n react() {\n this.bindings.forEach((callback) => callback());\n }\n\n addBinding(fn) {\n this.bindings.push(fn);\n }\n}","export class RumiousReducer{\n constructor(state,path=\"\",fn){\n this.state = state;\n this.path = path;\n this.fn = fn;\n }\n \n trigger(...args){\n let value = this.fn(...args);\n this.state.set(this.path,value);\n }\n}\n\n","const Operation = {\n Remove: 'remove',\n Replace: 'replace',\n Add: 'add',\n};\n\n// Don't use `Symbol()` just for 3rd party access the draft\nconst PROXY_DRAFT = Symbol.for('__MUTATIVE_PROXY_DRAFT__');\nconst RAW_RETURN_SYMBOL = Symbol('__MUTATIVE_RAW_RETURN_SYMBOL__');\nconst iteratorSymbol = Symbol.iterator;\nconst dataTypes = {\n mutable: 'mutable',\n immutable: 'immutable',\n};\n\nconst internal = {};\n\nfunction has(target, key) {\n return target instanceof Map\n ? target.has(key)\n : Object.prototype.hasOwnProperty.call(target, key);\n}\nfunction getDescriptor(target, key) {\n if (key in target) {\n let prototype = Reflect.getPrototypeOf(target);\n while (prototype) {\n const descriptor = Reflect.getOwnPropertyDescriptor(prototype, key);\n if (descriptor)\n return descriptor;\n prototype = Reflect.getPrototypeOf(prototype);\n }\n }\n return;\n}\nfunction isBaseSetInstance(obj) {\n return Object.getPrototypeOf(obj) === Set.prototype;\n}\nfunction isBaseMapInstance(obj) {\n return Object.getPrototypeOf(obj) === Map.prototype;\n}\n\nfunction latest(proxyDraft) {\n var _a;\n return (_a = proxyDraft.copy) !== null && _a !== void 0 ? _a : proxyDraft.original;\n}\n/**\n * Check if the value is a draft\n */\nfunction isDraft(target) {\n return !!getProxyDraft(target);\n}\nfunction getProxyDraft(value) {\n if (typeof value !== 'object')\n return null;\n return value === null || value === void 0 ? void 0 : value[PROXY_DRAFT];\n}\nfunction getValue(value) {\n var _a;\n const proxyDraft = getProxyDraft(value);\n return proxyDraft ? (_a = proxyDraft.copy) !== null && _a !== void 0 ? _a : proxyDraft.original : value;\n}\n/**\n * Check if a value is draftable\n */\nfunction isDraftable(value, options) {\n if (!value || typeof value !== 'object')\n return false;\n let markResult;\n return (Object.getPrototypeOf(value) === Object.prototype ||\n Array.isArray(value) ||\n value instanceof Map ||\n value instanceof Set ||\n (!!(options === null || options === void 0 ? void 0 : options.mark) &&\n ((markResult = options.mark(value, dataTypes)) === dataTypes.immutable ||\n typeof markResult === 'function')));\n}\nfunction getPath(target, path = []) {\n if (Object.hasOwnProperty.call(target, 'key')) {\n // check if the parent is a draft and the original value is not equal to the current value\n const parentCopy = target.parent.copy;\n const proxyDraft = getProxyDraft(get(parentCopy, target.key));\n if (proxyDraft !== null && (proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.original) !== target.original) {\n return null;\n }\n const isSet = target.parent.type === 3 /* DraftType.Set */;\n const key = isSet\n ? Array.from(target.parent.setMap.keys()).indexOf(target.key)\n : target.key;\n // check if the key is still in the next state parent\n if (!((isSet && parentCopy.size > key) || has(parentCopy, key)))\n return null;\n path.push(key);\n }\n if (target.parent) {\n return getPath(target.parent, path);\n }\n // `target` is root draft.\n path.reverse();\n try {\n // check if the path is valid\n resolvePath(target.copy, path);\n }\n catch (e) {\n return null;\n }\n return path;\n}\nfunction getType(target) {\n if (Array.isArray(target))\n return 1 /* DraftType.Array */;\n if (target instanceof Map)\n return 2 /* DraftType.Map */;\n if (target instanceof Set)\n return 3 /* DraftType.Set */;\n return 0 /* DraftType.Object */;\n}\nfunction get(target, key) {\n return getType(target) === 2 /* DraftType.Map */ ? target.get(key) : target[key];\n}\nfunction set(target, key, value) {\n const type = getType(target);\n if (type === 2 /* DraftType.Map */) {\n target.set(key, value);\n }\n else {\n target[key] = value;\n }\n}\nfunction peek(target, key) {\n const state = getProxyDraft(target);\n const source = state ? latest(state) : target;\n return source[key];\n}\nfunction isEqual(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n }\n else {\n return x !== x && y !== y;\n }\n}\nfunction revokeProxy(proxyDraft) {\n if (!proxyDraft)\n return;\n while (proxyDraft.finalities.revoke.length > 0) {\n const revoke = proxyDraft.finalities.revoke.pop();\n revoke();\n }\n}\n// handle JSON Pointer path with spec https://www.rfc-editor.org/rfc/rfc6901\nfunction escapePath(path, pathAsArray) {\n return pathAsArray\n ? path\n : ['']\n .concat(path)\n .map((_item) => {\n const item = `${_item}`;\n if (item.indexOf('/') === -1 && item.indexOf('~') === -1)\n return item;\n return item.replace(/~/g, '~0').replace(/\\//g, '~1');\n })\n .join('/');\n}\nfunction unescapePath(path) {\n if (Array.isArray(path))\n return path;\n return path\n .split('/')\n .map((_item) => _item.replace(/~1/g, '/').replace(/~0/g, '~'))\n .slice(1);\n}\nfunction resolvePath(base, path) {\n for (let index = 0; index < path.length - 1; index += 1) {\n const key = path[index];\n // use `index` in Set draft\n base = get(getType(base) === 3 /* DraftType.Set */ ? Array.from(base) : base, key);\n if (typeof base !== 'object') {\n throw new Error(`Cannot resolve patch at '${path.join('/')}'.`);\n }\n }\n return base;\n}\n\nfunction strictCopy(target) {\n const copy = Object.create(Object.getPrototypeOf(target));\n Reflect.ownKeys(target).forEach((key) => {\n let desc = Reflect.getOwnPropertyDescriptor(target, key);\n if (desc.enumerable && desc.configurable && desc.writable) {\n copy[key] = target[key];\n return;\n }\n // for freeze\n if (!desc.writable) {\n desc.writable = true;\n desc.configurable = true;\n }\n if (desc.get || desc.set)\n desc = {\n configurable: true,\n writable: true,\n enumerable: desc.enumerable,\n value: target[key],\n };\n Reflect.defineProperty(copy, key, desc);\n });\n return copy;\n}\nconst propIsEnum = Object.prototype.propertyIsEnumerable;\nfunction shallowCopy(original, options) {\n let markResult;\n if (Array.isArray(original)) {\n return Array.prototype.concat.call(original);\n }\n else if (original instanceof Set) {\n if (!isBaseSetInstance(original)) {\n const SubClass = Object.getPrototypeOf(original).constructor;\n return new SubClass(original.values());\n }\n return Set.prototype.difference\n ? Set.prototype.difference.call(original, new Set())\n : new Set(original.values());\n }\n else if (original instanceof Map) {\n if (!isBaseMapInstance(original)) {\n const SubClass = Object.getPrototypeOf(original).constructor;\n return new SubClass(original);\n }\n return new Map(original);\n }\n else if ((options === null || options === void 0 ? void 0 : options.mark) &&\n ((markResult = options.mark(original, dataTypes)),\n markResult !== undefined) &&\n markResult !== dataTypes.mutable) {\n if (markResult === dataTypes.immutable) {\n return strictCopy(original);\n }\n else if (typeof markResult === 'function') {\n if ((options.enablePatches || options.enableAutoFreeze)) {\n throw new Error(`You can't use mark and patches or auto freeze together.`);\n }\n return markResult();\n }\n throw new Error(`Unsupported mark result: ${markResult}`);\n }\n else if (typeof original === 'object' &&\n Object.getPrototypeOf(original) === Object.prototype) {\n // For best performance with shallow copies,\n // don't use `Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj));` by default.\n const copy = {};\n Object.keys(original).forEach((key) => {\n copy[key] = original[key];\n });\n Object.getOwnPropertySymbols(original).forEach((key) => {\n if (propIsEnum.call(original, key)) {\n copy[key] = original[key];\n }\n });\n return copy;\n }\n else {\n throw new Error(`Please check mark() to ensure that it is a stable marker draftable function.`);\n }\n}\nfunction ensureShallowCopy(target) {\n if (target.copy)\n return;\n target.copy = shallowCopy(target.original, target.options);\n}\nfunction deepClone(target) {\n if (!isDraftable(target))\n return getValue(target);\n if (Array.isArray(target))\n return target.map(deepClone);\n if (target instanceof Map) {\n const iterable = Array.from(target.entries()).map(([k, v]) => [\n k,\n deepClone(v),\n ]);\n if (!isBaseMapInstance(target)) {\n const SubClass = Object.getPrototypeOf(target).constructor;\n return new SubClass(iterable);\n }\n return new Map(iterable);\n }\n if (target instanceof Set) {\n const iterable = Array.from(target).map(deepClone);\n if (!isBaseSetInstance(target)) {\n const SubClass = Object.getPrototypeOf(target).constructor;\n return new SubClass(iterable);\n }\n return new Set(iterable);\n }\n const copy = Object.create(Object.getPrototypeOf(target));\n for (const key in target)\n copy[key] = deepClone(target[key]);\n return copy;\n}\nfunction cloneIfNeeded(target) {\n return isDraft(target) ? deepClone(target) : target;\n}\n\nfunction markChanged(proxyDraft) {\n var _a;\n proxyDraft.assignedMap = (_a = proxyDraft.assignedMap) !== null && _a !== void 0 ? _a : new Map();\n if (!proxyDraft.operated) {\n proxyDraft.operated = true;\n if (proxyDraft.parent) {\n markChanged(proxyDraft.parent);\n }\n }\n}\n\nfunction throwFrozenError() {\n throw new Error('Cannot modify frozen object');\n}\nfunction deepFreeze(target, subKey, updatedValues, stack, keys) {\n {\n updatedValues = updatedValues !== null && updatedValues !== void 0 ? updatedValues : new WeakMap();\n stack = stack !== null && stack !== void 0 ? stack : [];\n keys = keys !== null && keys !== void 0 ? keys : [];\n const value = updatedValues.has(target)\n ? updatedValues.get(target)\n : target;\n if (stack.length > 0) {\n const index = stack.indexOf(value);\n if (value && typeof value === 'object' && index !== -1) {\n if (stack[0] === value) {\n throw new Error(`Forbids circular reference`);\n }\n throw new Error(`Forbids circular reference: ~/${keys\n .slice(0, index)\n .map((key, index) => {\n if (typeof key === 'symbol')\n return `[${key.toString()}]`;\n const parent = stack[index];\n if (typeof key === 'object' &&\n (parent instanceof Map || parent instanceof Set))\n return Array.from(parent.keys()).indexOf(key);\n return key;\n })\n .join('/')}`);\n }\n stack.push(value);\n keys.push(subKey);\n }\n else {\n stack.push(value);\n }\n }\n if (Object.isFrozen(target) || isDraft(target)) {\n {\n stack.pop();\n keys.pop();\n }\n return;\n }\n const type = getType(target);\n switch (type) {\n case 2 /* DraftType.Map */:\n for (const [key, value] of target) {\n deepFreeze(key, key, updatedValues, stack, keys);\n deepFreeze(value, key, updatedValues, stack, keys);\n }\n target.set = target.clear = target.delete = throwFrozenError;\n break;\n case 3 /* DraftType.Set */:\n for (const value of target) {\n deepFreeze(value, value, updatedValues, stack, keys);\n }\n target.add = target.clear = target.delete = throwFrozenError;\n break;\n case 1 /* DraftType.Array */:\n Object.freeze(target);\n let index = 0;\n for (const value of target) {\n deepFreeze(value, index, updatedValues, stack, keys);\n index += 1;\n }\n break;\n default:\n Object.freeze(target);\n // ignore non-enumerable or symbol properties\n Object.keys(target).forEach((name) => {\n const value = target[name];\n deepFreeze(value, name, updatedValues, stack, keys);\n });\n }\n {\n stack.pop();\n keys.pop();\n }\n}\n\nfunction forEach(target, iter) {\n const type = getType(target);\n if (type === 0 /* DraftType.Object */) {\n Reflect.ownKeys(target).forEach((key) => {\n iter(key, target[key], target);\n });\n }\n else if (type === 1 /* DraftType.Array */) {\n let index = 0;\n for (const entry of target) {\n iter(index, entry, target);\n index += 1;\n }\n }\n else {\n target.forEach((entry, index) => iter(index, entry, target));\n }\n}\n\nfunction handleValue(target, handledSet, options) {\n if (isDraft(target) ||\n !isDraftable(target, options) ||\n handledSet.has(target) ||\n Object.isFrozen(target))\n return;\n const isSet = target instanceof Set;\n const setMap = isSet ? new Map() : undefined;\n handledSet.add(target);\n forEach(target, (key, value) => {\n var _a;\n if (isDraft(value)) {\n const proxyDraft = getProxyDraft(value);\n ensureShallowCopy(proxyDraft);\n // A draft where a child node has been changed, or assigned a value\n const updatedValue = ((_a = proxyDraft.assignedMap) === null || _a === void 0 ? void 0 : _a.size) || proxyDraft.operated\n ? proxyDraft.copy\n : proxyDraft.original;\n // final update value\n set(isSet ? setMap : target, key, updatedValue);\n }\n else {\n handleValue(value, handledSet, options);\n }\n });\n if (setMap) {\n const set = target;\n const values = Array.from(set);\n set.clear();\n values.forEach((value) => {\n set.add(setMap.has(value) ? setMap.get(value) : value);\n });\n }\n}\nfunction finalizeAssigned(proxyDraft, key) {\n // handle the draftable assigned values, and the value is not a draft\n const copy = proxyDraft.type === 3 /* DraftType.Set */ ? proxyDraft.setMap : proxyDraft.copy;\n if (proxyDraft.finalities.revoke.length > 1 &&\n proxyDraft.assignedMap.get(key) &&\n copy) {\n handleValue(get(copy, key), proxyDraft.finalities.handledSet, proxyDraft.options);\n }\n}\nfunction finalizeSetValue(target) {\n if (target.type === 3 /* DraftType.Set */ && target.copy) {\n target.copy.clear();\n target.setMap.forEach((value) => {\n target.copy.add(getValue(value));\n });\n }\n}\nfunction finalizePatches(target, generatePatches, patches, inversePatches) {\n const shouldFinalize = target.operated &&\n target.assignedMap &&\n target.assignedMap.size > 0 &&\n !target.finalized;\n if (shouldFinalize) {\n if (patches && inversePatches) {\n const basePath = getPath(target);\n if (basePath) {\n generatePatches(target, basePath, patches, inversePatches);\n }\n }\n target.finalized = true;\n }\n}\nfunction markFinalization(target, key, value, generatePatches) {\n const proxyDraft = getProxyDraft(value);\n if (proxyDraft) {\n // !case: assign the draft value\n if (!proxyDraft.callbacks) {\n proxyDraft.callbacks = [];\n }\n proxyDraft.callbacks.push((patches, inversePatches) => {\n var _a;\n const copy = target.type === 3 /* DraftType.Set */ ? target.setMap : target.copy;\n if (isEqual(get(copy, key), value)) {\n let updatedValue = proxyDraft.original;\n if (proxyDraft.copy) {\n updatedValue = proxyDraft.copy;\n }\n finalizeSetValue(target);\n finalizePatches(target, generatePatches, patches, inversePatches);\n if (target.options.enableAutoFreeze) {\n target.options.updatedValues =\n (_a = target.options.updatedValues) !== null && _a !== void 0 ? _a : new WeakMap();\n target.options.updatedValues.set(updatedValue, proxyDraft.original);\n }\n // final update value\n set(copy, key, updatedValue);\n }\n });\n if (target.options.enableAutoFreeze) {\n // !case: assign the draft value in cross draft tree\n if (proxyDraft.finalities !== target.finalities) {\n target.options.enableAutoFreeze = false;\n }\n }\n }\n if (isDraftable(value, target.options)) {\n // !case: assign the non-draft value\n target.finalities.draft.push(() => {\n const copy = target.type === 3 /* DraftType.Set */ ? target.setMap : target.copy;\n if (isEqual(get(copy, key), value)) {\n finalizeAssigned(target, key);\n }\n });\n }\n}\n\nfunction generateArrayPatches(proxyState, basePath, patches, inversePatches, pathAsArray) {\n let { original, assignedMap, options } = proxyState;\n let copy = proxyState.copy;\n if (copy.length < original.length) {\n [original, copy] = [copy, original];\n [patches, inversePatches] = [inversePatches, patches];\n }\n for (let index = 0; index < original.length; index += 1) {\n if (assignedMap.get(index.toString()) && copy[index] !== original[index]) {\n const _path = basePath.concat([index]);\n const path = escapePath(_path, pathAsArray);\n patches.push({\n op: Operation.Replace,\n path,\n // If it is a draft, it needs to be deep cloned, and it may also be non-draft.\n value: cloneIfNeeded(copy[index]),\n });\n inversePatches.push({\n op: Operation.Replace,\n path,\n // If it is a draft, it needs to be deep cloned, and it may also be non-draft.\n value: cloneIfNeeded(original[index]),\n });\n }\n }\n for (let index = original.length; index < copy.length; index += 1) {\n const _path = basePath.concat([index]);\n const path = escapePath(_path, pathAsArray);\n patches.push({\n op: Operation.Add,\n path,\n // If it is a draft, it needs to be deep cloned, and it may also be non-draft.\n value: cloneIfNeeded(copy[index]),\n });\n }\n if (original.length < copy.length) {\n // https://www.rfc-editor.org/rfc/rfc6902#appendix-A.4\n // For performance, here we only generate an operation that replaces the length of the array,\n // which is inconsistent with JSON Patch specification\n const { arrayLengthAssignment = true } = options.enablePatches;\n if (arrayLengthAssignment) {\n const _path = basePath.concat(['length']);\n const path = escapePath(_path, pathAsArray);\n inversePatches.push({\n op: Operation.Replace,\n path,\n value: original.length,\n });\n }\n else {\n for (let index = copy.length; original.length < index; index -= 1) {\n const _path = basePath.concat([index - 1]);\n const path = escapePath(_path, pathAsArray);\n inversePatches.push({\n op: Operation.Remove,\n path,\n });\n }\n }\n }\n}\nfunction generatePatchesFromAssigned({ original, copy, assignedMap }, basePath, patches, inversePatches, pathAsArray) {\n assignedMap.forEach((assignedValue, key) => {\n const originalValue = get(original, key);\n const value = cloneIfNeeded(get(copy, key));\n const op = !assignedValue\n ? Operation.Remove\n : has(original, key)\n ? Operation.Replace\n : Operation.Add;\n if (isEqual(originalValue, value) && op === Operation.Replace)\n return;\n const _path = basePath.concat(key);\n const path = escapePath(_path, pathAsArray);\n patches.push(op === Operation.Remove ? { op, path } : { op, path, value });\n inversePatches.push(op === Operation.Add\n ? { op: Operation.Remove, path }\n : op === Operation.Remove\n ? { op: Operation.Add, path, value: originalValue }\n : { op: Operation.Replace, path, value: originalValue });\n });\n}\nfunction generateSetPatches({ original, copy }, basePath, patches, inversePatches, pathAsArray) {\n let index = 0;\n original.forEach((value) => {\n if (!copy.has(value)) {\n const _path = basePath.concat([index]);\n const path = escapePath(_path, pathAsArray);\n patches.push({\n op: Operation.Remove,\n path,\n value,\n });\n inversePatches.unshift({\n op: Operation.Add,\n path,\n value,\n });\n }\n index += 1;\n });\n index = 0;\n copy.forEach((value) => {\n if (!original.has(value)) {\n const _path = basePath.concat([index]);\n const path = escapePath(_path, pathAsArray);\n patches.push({\n op: Operation.Add,\n path,\n value,\n });\n inversePatches.unshift({\n op: Operation.Remove,\n path,\n value,\n });\n }\n index += 1;\n });\n}\nfunction generatePatches(proxyState, basePath, patches, inversePatches) {\n const { pathAsArray = true } = proxyState.options.enablePatches;\n switch (proxyState.type) {\n case 0 /* DraftType.Object */:\n case 2 /* DraftType.Map */:\n return generatePatchesFromAssigned(proxyState, basePath, patches, inversePatches, pathAsArray);\n case 1 /* DraftType.Array */:\n return generateArrayPatches(proxyState, basePath, patches, inversePatches, pathAsArray);\n case 3 /* DraftType.Set */:\n return generateSetPatches(proxyState, basePath, patches, inversePatches, pathAsArray);\n }\n}\n\nlet readable = false;\nconst checkReadable = (value, options, ignoreCheckDraftable = false) => {\n if (typeof value === 'object' &&\n value !== null &&\n (!isDraftable(value, options) || ignoreCheckDraftable) &&\n !readable) {\n throw new Error(`Strict mode: Mutable data cannot be accessed directly, please use 'unsafe(callback)' wrap.`);\n }\n};\n/**\n * `unsafe(callback)` to access mutable data directly in strict mode.\n *\n * ## Example\n *\n * ```ts\n * import { create, unsafe } from '../index';\n *\n * class Foobar {\n * bar = 1;\n * }\n *\n * const baseState = { foobar: new Foobar() };\n * const state = create(\n * baseState,\n * (draft) => {\n * unsafe(() => {\n * draft.foobar.bar = 2;\n * });\n * },\n * {\n * strict: true,\n * }\n * );\n *\n * expect(state).toBe(baseState);\n * expect(state.foobar).toBe(baseState.foobar);\n * expect(state.foobar.bar).toBe(2);\n * ```\n */\nfunction unsafe(callback) {\n readable = true;\n let result;\n try {\n result = callback();\n }\n finally {\n readable = false;\n }\n return result;\n}\n\nconst mapHandler = {\n get size() {\n const current = latest(getProxyDraft(this));\n return current.size;\n },\n has(key) {\n return latest(getProxyDraft(this)).has(key);\n },\n set(key, value) {\n const target = getProxyDraft(this);\n const source = latest(target);\n if (!source.has(key) || !isEqual(source.get(key), value)) {\n ensureShallowCopy(target);\n markChanged(target);\n target.assignedMap.set(key, true);\n target.copy.set(key, value);\n markFinalization(target, key, value, generatePatches);\n }\n return this;\n },\n delete(key) {\n if (!this.has(key)) {\n return false;\n }\n const target = getProxyDraft(this);\n ensureShallowCopy(target);\n markChanged(target);\n if (target.original.has(key)) {\n target.assignedMap.set(key, false);\n }\n else {\n target.assignedMap.delete(key);\n }\n target.copy.delete(key);\n return true;\n },\n clear() {\n const target = getProxyDraft(this);\n if (!this.size)\n return;\n ensureShallowCopy(target);\n markChanged(target);\n target.assignedMap = new Map();\n for (const [key] of target.original) {\n target.assignedMap.set(key, false);\n }\n target.copy.clear();\n },\n forEach(callback, thisArg) {\n const target = getProxyDraft(this);\n latest(target).forEach((_value, _key) => {\n callback.call(thisArg, this.get(_key), _key, this);\n });\n },\n get(key) {\n var _a, _b;\n const target = getProxyDraft(this);\n const value = latest(target).get(key);\n const mutable = ((_b = (_a = target.options).mark) === null || _b === void 0 ? void 0 : _b.call(_a, value, dataTypes)) === dataTypes.mutable;\n if (target.options.strict) {\n checkReadable(value, target.options, mutable);\n }\n if (mutable) {\n return value;\n }\n if (target.finalized || !isDraftable(value, target.options)) {\n return value;\n }\n // drafted or reassigned\n if (value !== target.original.get(key)) {\n return value;\n }\n const draft = internal.createDraft({\n original: value,\n parentDraft: target,\n key,\n finalities: target.finalities,\n options: target.options,\n });\n ensureShallowCopy(target);\n target.copy.set(key, draft);\n return draft;\n },\n keys() {\n return latest(getProxyDraft(this)).keys();\n },\n values() {\n const iterator = this.keys();\n return {\n [iteratorSymbol]: () => this.values(),\n next: () => {\n const result = iterator.next();\n if (result.done)\n return result;\n const value = this.get(result.value);\n return {\n done: false,\n value,\n };\n },\n };\n },\n entries() {\n const iterator = this.keys();\n return {\n [iteratorSymbol]: () => this.entries(),\n next: () => {\n const result = iterator.next();\n if (result.done)\n return result;\n const value = this.get(result.value);\n return {\n done: false,\n value: [result.value, value],\n };\n },\n };\n },\n [iteratorSymbol]() {\n return this.entries();\n },\n};\nconst mapHandlerKeys = Reflect.ownKeys(mapHandler);\n\nconst getNextIterator = (target, iterator, { isValuesIterator }) => () => {\n var _a, _b;\n const result = iterator.next();\n if (result.done)\n return result;\n const key = result.value;\n let value = target.setMap.get(key);\n const currentDraft = getProxyDraft(value);\n const mutable = ((_b = (_a = target.options).mark) === null || _b === void 0 ? void 0 : _b.call(_a, value, dataTypes)) === dataTypes.mutable;\n if (target.options.strict) {\n checkReadable(key, target.options, mutable);\n }\n if (!mutable &&\n !currentDraft &&\n isDraftable(key, target.options) &&\n !target.finalized &&\n target.original.has(key)) {\n // draft a draftable original set item\n const proxy = internal.createDraft({\n original: key,\n parentDraft: target,\n key,\n finalities: target.finalities,\n options: target.options,\n });\n target.setMap.set(key, proxy);\n value = proxy;\n }\n else if (currentDraft) {\n // drafted\n value = currentDraft.proxy;\n }\n return {\n done: false,\n value: isValuesIterator ? value : [value, value],\n };\n};\nconst setHandler = {\n get size() {\n const target = getProxyDraft(this);\n return target.setMap.size;\n },\n has(value) {\n const target = getProxyDraft(this);\n // reassigned or non-draftable values\n if (target.setMap.has(value))\n return true;\n ensureShallowCopy(target);\n const valueProxyDraft = getProxyDraft(value);\n // drafted\n if (valueProxyDraft && target.setMap.has(valueProxyDraft.original))\n return true;\n return false;\n },\n add(value) {\n const target = getProxyDraft(this);\n if (!this.has(value)) {\n ensureShallowCopy(target);\n markChanged(target);\n target.assignedMap.set(value, true);\n target.setMap.set(value, value);\n markFinalization(target, value, value, generatePatches);\n }\n return this;\n },\n delete(value) {\n if (!this.has(value)) {\n return false;\n }\n const target = getProxyDraft(this);\n ensureShallowCopy(target);\n markChanged(target);\n const valueProxyDraft = getProxyDraft(value);\n if (valueProxyDraft && target.setMap.has(valueProxyDraft.original)) {\n // delete drafted\n target.assignedMap.set(valueProxyDraft.original, false);\n return target.setMap.delete(valueProxyDraft.original);\n }\n if (!valueProxyDraft && target.setMap.has(value)) {\n // non-draftable values\n target.assignedMap.set(value, false);\n }\n else {\n // reassigned\n target.assignedMap.delete(value);\n }\n // delete reassigned or non-draftable values\n return target.setMap.delete(value);\n },\n clear() {\n if (!this.size)\n return;\n const target = getProxyDraft(this);\n ensureShallowCopy(target);\n markChanged(target);\n for (const value of target.original) {\n target.assignedMap.set(value, false);\n }\n target.setMap.clear();\n },\n values() {\n const target = getProxyDraft(this);\n ensureShallowCopy(target);\n const iterator = target.setMap.keys();\n return {\n [Symbol.iterator]: () => this.values(),\n next: getNextIterator(target, iterator, { isValuesIterator: true }),\n };\n },\n entries() {\n const target = getProxyDraft(this);\n ensureShallowCopy(target);\n const iterator = target.setMap.keys();\n return {\n [Symbol.iterator]: () => this.entries(),\n next: getNextIterator(target, iterator, {\n isValuesIterator: false,\n }),\n };\n },\n keys() {\n return this.values();\n },\n [iteratorSymbol]() {\n return this.values();\n },\n forEach(callback, thisArg) {\n const iterator = this.values();\n let result = iterator.next();\n while (!result.done) {\n callback.call(thisArg, result.value, result.value, this);\n result = iterator.next();\n }\n },\n};\nif (Set.prototype.difference) {\n // for compatibility with new Set methods\n // https://github.com/tc39/proposal-set-methods\n // And `https://github.com/tc39/proposal-set-methods/blob/main/details.md#symbolspecies` has some details about the `@@species` symbol.\n // So we can't use SubSet instance constructor to get the constructor of the SubSet instance.\n Object.assign(setHandler, {\n intersection(other) {\n return Set.prototype.intersection.call(new Set(this.values()), other);\n },\n union(other) {\n return Set.prototype.union.call(new Set(this.values()), other);\n },\n difference(other) {\n return Set.prototype.difference.call(new Set(this.values()), other);\n },\n symmetricDifference(other) {\n return Set.prototype.symmetricDifference.call(new Set(this.values()), other);\n },\n isSubsetOf(other) {\n return Set.prototype.isSubsetOf.call(new Set(this.values()), other);\n },\n isSupersetOf(other) {\n return Set.prototype.isSupersetOf.call(new Set(this.values()), other);\n },\n isDisjointFrom(other) {\n return Set.prototype.isDisjointFrom.call(new Set(this.values()), other);\n },\n });\n}\nconst setHandlerKeys = Reflect.ownKeys(setHandler);\n\nconst draftsCache = new WeakSet();\nconst proxyHandler = {\n get(target, key, receiver) {\n var _a, _b;\n const copy = (_a = target.copy) === null || _a === void 0 ? void 0 : _a[key];\n // Improve draft reading performance by caching the draft copy.\n if (copy && draftsCache.has(copy)) {\n return copy;\n }\n if (key === PROXY_DRAFT)\n return target;\n let markResult;\n if (target.options.mark) {\n // handle `Uncaught TypeError: Method get Map.prototype.size called on incompatible receiver #<Map>`\n // or `Uncaught TypeError: Method get Set.prototype.size called on incompatible receiver #<Set>`\n const value = key === 'size' &&\n (target.original instanceof Map || target.original instanceof Set)\n ? Reflect.get(target.original, key)\n : Reflect.get(target.original, key, receiver);\n markResult = target.options.mark(value, dataTypes);\n if (markResult === dataTypes.mutable) {\n if (target.options.strict) {\n checkReadable(value, target.options, true);\n }\n return value;\n }\n }\n const source = latest(target);\n if (source instanceof Map && mapHandlerKeys.includes(key)) {\n if (key === 'size') {\n return Object.getOwnPropertyDescriptor(mapHandler, 'size').get.call(target.proxy);\n }\n const handle = mapHandler[key];\n if (handle) {\n return handle.bind(target.proxy);\n }\n }\n if (source instanceof Set && setHandlerKeys.includes(key)) {\n if (key === 'size') {\n return Object.getOwnPropertyDescriptor(setHandler, 'size').get.call(target.proxy);\n }\n const handle = setHandler[key];\n if (handle) {\n return handle.bind(target.proxy);\n }\n }\n if (!has(source, key)) {\n const desc = getDescriptor(source, key);\n return desc\n ? `value` in desc\n ? desc.value\n : // !case: support for getter\n (_b = desc.get) === null || _b === void 0 ? void 0 : _b.call(target.proxy)\n : undefined;\n }\n const value = source[key];\n if (target.options.strict) {\n checkReadable(value, target.options);\n }\n if (target.finalized || !isDraftable(value, target.options)) {\n return value;\n }\n // Ensure that the assigned values are not drafted\n if (value === peek(target.original, key)) {\n ensureShallowCopy(target);\n target.copy[key] = createDraft({\n original: target.original[key],\n parentDraft: target,\n key: target.type === 1 /* DraftType.Array */ ? Number(key) : key,\n finalities: target.finalities,\n options: target.options,\n });\n // !case: support for custom shallow copy function\n if (typeof markResult === 'function') {\n const subProxyDraft = getProxyDraft(target.copy[key]);\n ensureShallowCopy(subProxyDraft);\n // Trigger a custom shallow copy to update to a new copy\n markChanged(subProxyDraft);\n return subProxyDraft.copy;\n }\n return target.copy[key];\n }\n return value;\n },\n set(target, key, value) {\n var _a;\n if (target.type === 3 /* DraftType.Set */ || target.type === 2 /* DraftType.Map */) {\n throw new Error(`Map/Set draft does not support any property assignment.`);\n }\n let _key;\n if (target.type === 1 /* DraftType.Array */ &&\n key !== 'length' &&\n !(Number.isInteger((_key = Number(key))) &&\n _key >= 0 &&\n (key === 0 || _key === 0 || String(_key) === String(key)))) {\n throw new Error(`Only supports setting array indices and the 'length' property.`);\n }\n const desc = getDescriptor(latest(target), key);\n if (desc === null || desc === void 0 ? void 0 : desc.set) {\n // !case: cover the case of setter\n desc.set.call(target.proxy, value);\n return true;\n }\n const current = peek(latest(target), key);\n const currentProxyDraft = getProxyDraft(current);\n if (currentProxyDraft && isEqual(currentProxyDraft.original, value)) {\n // !case: ignore the case of assigning the original draftable value to a draft\n target.copy[key] = value;\n target.assignedMap = (_a = target.assignedMap) !== null && _a !== void 0 ? _a : new Map();\n target.assignedMap.set(key, false);\n return true;\n }\n // !case: handle new props with value 'undefined'\n if (isEqual(value, current) &&\n (value !== undefined || has(target.original, key)))\n return true;\n ensureShallowCopy(target);\n markChanged(target);\n if (has(target.original, key) && isEqual(value, target.original[key])) {\n // !case: handle the case of assigning the original non-draftable value to a draft\n target.assignedMap.delete(key);\n }\n else {\n target.assignedMap.set(key, true);\n }\n target.copy[key] = value;\n markFinalization(target, key, value, generatePatches);\n return true;\n },\n has(target, key) {\n return key in latest(target);\n },\n ownKeys(target) {\n return Reflect.ownKeys(latest(target));\n },\n getOwnPropertyDescriptor(target, key) {\n const source = latest(target);\n const descriptor = Reflect.getOwnPropertyDescriptor(source, key);\n if (!descriptor)\n return descriptor;\n return {\n writable: true,\n configurable: target.type !== 1 /* DraftType.Array */ || key !== 'length',\n enumerable: descriptor.enumerable,\n value: source[key],\n };\n },\n getPrototypeOf(target) {\n return Reflect.getPrototypeOf(target.original);\n },\n setPrototypeOf() {\n throw new Error(`Cannot call 'setPrototypeOf()' on drafts`);\n },\n defineProperty() {\n throw new Error(`Cannot call 'defineProperty()' on drafts`);\n },\n deleteProperty(target, key) {\n var _a;\n if (target.type === 1 /* DraftType.Array */) {\n return proxyHandler.set.call(this, target, key, undefined, target.proxy);\n }\n if (peek(target.original, key) !== undefined || key in target.original) {\n // !case: delete an existing key\n ensureShallowCopy(target);\n markChanged(target);\n target.assignedMap.set(key, false);\n }\n else {\n target.assignedMap = (_a = target.assignedMap) !== null && _a !== void 0 ? _a : new Map();\n // The original non-existent key has been deleted\n target.assignedMap.delete(key);\n }\n if (target.copy)\n delete target.copy[key];\n return true;\n },\n};\nfunction createDraft(createDraftOptions) {\n const { original, parentDraft, key, finalities, options } = createDraftOptions;\n const type = getType(original);\n const proxyDraft = {\n type,\n finalized: false,\n parent: parentDraft,\n original,\n copy: null,\n proxy: null,\n finalities,\n options,\n // Mapping of draft Set items to their corresponding draft values.\n setMap: type === 3 /* DraftType.Set */\n ? new Map(original.entries())\n : undefined,\n };\n // !case: undefined as a draft map key\n if (key || 'key' in createDraftOptions) {\n proxyDraft.key = key;\n }\n const { proxy, revoke } = Proxy.revocable(type === 1 /* DraftType.Array */ ? Object.assign([], proxyDraft) : proxyDraft, proxyHandler);\n finalities.revoke.push(revoke);\n draftsCache.add(proxy);\n proxyDraft.proxy = proxy;\n if (parentDraft) {\n const target = parentDraft;\n target.finalities.draft.push((patches, inversePatches) => {\n var _a, _b;\n const oldProxyDraft = getProxyDraft(proxy);\n // if target is a Set draft, `setMap` is the real Set copies proxy mapping.\n let copy = target.type === 3 /* DraftType.Set */ ? target.setMap : target.copy;\n const draft = get(copy, key);\n const proxyDraft = getProxyDraft(draft);\n if (proxyDraft) {\n // assign the updated value to the copy object\n let updatedValue = proxyDraft.original;\n if (proxyDraft.operated) {\n updatedValue = getValue(draft);\n }\n finalizeSetValue(proxyDraft);\n finalizePatches(proxyDraft, generatePatches, patches, inversePatches);\n if (target.options.enableAutoFreeze) {\n target.options.updatedValues =\n (_a = target.options.updatedValues) !== null && _a !== void 0 ? _a : new WeakMap();\n target.options.updatedValues.set(updatedValue, proxyDraft.original);\n }\n // final update value\n set(copy, key, updatedValue);\n }\n // !case: handle the deleted key\n (_b = oldProxyDraft.callbacks) === null || _b === void 0 ? void 0 : _b.forEach((callback) => {\n callback(patches, inversePatches);\n });\n });\n }\n else {\n // !case: handle the root draft\n const target = getProxyDraft(proxy);\n target.finalities.draft.push((patches, inversePatches) => {\n finalizeSetValue(target);\n finalizePatches(target, generatePatches, patches, inversePatches);\n });\n }\n return proxy;\n}\ninternal.createDraft = createDraft;\nfunction finalizeDraft(result, returnedValue, patches, inversePatches, enableAutoFreeze) {\n var _a;\n const proxyDraft = getProxyDraft(result);\n const original = (_a = proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.original) !== null && _a !== void 0 ? _a : result;\n const hasReturnedValue = !!returnedValue.length;\n if (proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.operated) {\n while (proxyDraft.finalities.draft.length > 0) {\n const finalize = proxyDraft.finalities.draft.pop();\n finalize(patches, inversePatches);\n }\n }\n const state = hasReturnedValue\n ? returnedValue[0]\n : proxyDraft\n ? proxyDraft.operated\n ? proxyDraft.copy\n : proxyDraft.original\n : result;\n if (proxyDraft)\n revokeProxy(proxyDraft);\n if (enableAutoFreeze) {\n deepFreeze(state, state, proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.options.updatedValues);\n }\n return [\n state,\n patches && hasReturnedValue\n ? [{ op: Operation.Replace, path: [], value: returnedValue[0] }]\n : patches,\n inversePatches && hasReturnedValue\n ? [{ op: Operation.Replace, path: [], value: original }]\n : inversePatches,\n ];\n}\n\nfunction draftify(baseState, options) {\n var _a;\n const finalities = {\n draft: [],\n revoke: [],\n handledSet: new WeakSet(),\n };\n let patches;\n let inversePatches;\n if (options.enablePatches) {\n patches = [];\n inversePatches = [];\n }\n const isMutable = ((_a = options.mark) === null || _a === void 0 ? void 0 : _a.call(options, baseState, dataTypes)) === dataTypes.mutable ||\n !isDraftable(baseState, options);\n const draft = isMutable\n ? baseState\n : createDraft({\n original: baseState,\n parentDraft: null,\n finalities,\n options,\n });\n return [\n draft,\n (returnedValue = []) => {\n const [finalizedState, finalizedPatches, finalizedInversePatches] = finalizeDraft(draft, returnedValue, patches, inversePatches, options.enableAutoFreeze);\n return (options.enablePatches\n ? [finalizedState, finalizedPatches, finalizedInversePatches]\n : finalizedState);\n },\n ];\n}\n\nfunction handleReturnValue(options) {\n const { rootDraft, value, useRawReturn = false, isRoot = true } = options;\n forEach(value, (key, item, source) => {\n const proxyDraft = getProxyDraft(item);\n // just handle the draft which is created by the same rootDraft\n if (proxyDraft &&\n rootDraft &&\n proxyDraft.finalities === rootDraft.finalities) {\n options.isContainDraft = true;\n const currentValue = proxyDraft.original;\n // final update value, but just handle return value\n if (source instanceof Set) {\n const arr = Array.from(source);\n source.clear();\n arr.forEach((_item) => source.add(key === _item ? currentValue : _item));\n }\n else {\n set(source, key, currentValue);\n }\n }\n else if (typeof item === 'object' && item !== null) {\n options.value = item;\n options.isRoot = false;\n handleReturnValue(options);\n }\n });\n if (isRoot) {\n if (!options.isContainDraft)\n console.warn(`The return value does not contain any draft, please use 'rawReturn()' to wrap the return value to improve performance.`);\n if (useRawReturn) {\n console.warn(`The return value contains drafts, please don't use 'rawReturn()' to wrap the return value.`);\n }\n }\n}\nfunction getCurrent(target) {\n var _a;\n const proxyDraft = getProxyDraft(target);\n if (!isDraftable(target, proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.options))\n return target;\n const type = getType(target);\n if (proxyDraft && !proxyDraft.operated)\n return proxyDraft.original;\n let currentValue;\n function ensureShallowCopy() {\n currentValue =\n type === 2 /* DraftType.Map */\n ? !isBaseMapInstance(target)\n ? new (Object.getPrototypeOf(target).constructor)(target)\n : new Map(target)\n : type === 3 /* DraftType.Set */\n ? Array.from(proxyDraft.setMap.values())\n : shallowCopy(target, proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.options);\n }\n if (proxyDraft) {\n // It's a proxy draft, let's create a shallow copy eagerly\n proxyDraft.finalized = true;\n try {\n ensureShallowCopy();\n }\n finally {\n proxyDraft.finalized = false;\n }\n }\n else {\n // It's not a proxy draft, let's use the target directly and let's see\n // lazily if we need to create a shallow copy\n currentValue = target;\n }\n forEach(currentValue, (key, value) => {\n if (proxyDraft && isEqual(get(proxyDraft.original, key), value))\n return;\n const newValue = getCurrent(value);\n if (newValue !== value) {\n if (currentValue === target)\n ensureShallowCopy();\n set(currentValue, key, newValue);\n }\n });\n if (type === 3 /* DraftType.Set */) {\n const value = (_a = proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.original) !== null && _a !== void 0 ? _a : currentValue;\n return !isBaseSetInstance(value)\n ? new (Object.getPrototypeOf(value).constructor)(currentValue)\n : new Set(currentValue);\n }\n return currentValue;\n}\nfunction current(target) {\n if (!isDraft(target)) {\n throw new Error(`current() is only used for Draft, parameter: ${target}`);\n }\n return getCurrent(target);\n}\n\n/**\n * `makeCreator(options)` to make a creator function.\n *\n * ## Example\n *\n * ```ts\n * import { makeCreator } from '../index';\n *\n * const baseState = { foo: { bar: 'str' }, arr: [] };\n * const create = makeCreator({ enableAutoFreeze: true });\n * const state = create(\n * baseState,\n * (draft) => {\n * draft.foo.bar = 'str2';\n * },\n * );\n *\n * expect(state).toEqual({ foo: { bar: 'str2' }, arr: [] });\n * expect(state).not.toBe(baseState);\n * expect(state.foo).not.toBe(baseState.foo);\n * expect(state.arr).toBe(baseState.arr);\n * expect(Object.isFrozen(state)).toBeTruthy();\n * ```\n */\nconst makeCreator = (arg) => {\n if (arg !== undefined &&\n Object.prototype.toString.call(arg) !== '[object Object]') {\n throw new Error(`Invalid options: ${String(arg)}, 'options' should be an object.`);\n }\n return function create(arg0, arg1, arg2) {\n var _a, _b, _c;\n if (typeof arg0 === 'function' && typeof arg1 !== 'function') {\n return function (base, ...args) {\n return create(base, (draft) => arg0.call(this, draft, ...args), arg1);\n };\n }\n const base = arg0;\n const mutate = arg1;\n let options = arg2;\n if (typeof arg1 !== 'function') {\n options = arg1;\n }\n if (options !== undefined &&\n Object.prototype.toString.call(options) !== '[object Object]') {\n throw new Error(`Invalid options: ${options}, 'options' should be an object.`);\n }\n options = Object.assign(Object.assign({}, arg), options);\n const state = isDraft(base) ? current(base) : base;\n const mark = Array.isArray(options.mark)\n ? ((value, types) => {\n for (const mark of options.mark) {\n if (typeof mark !== 'function') {\n throw new Error(`Invalid mark: ${mark}, 'mark' should be a function.`);\n }\n const result = mark(value, types);\n if (result) {\n return result;\n }\n }\n return;\n })\n : options.mark;\n const enablePatches = (_a = options.enablePatches) !== null && _a !== void 0 ? _a : false;\n const strict = (_b = options.strict) !== null && _b !== void 0 ? _b : false;\n const enableAutoFreeze = (_c = options.enableAutoFreeze) !== null && _c !== void 0 ? _c : false;\n const _options = {\n enableAutoFreeze,\n mark,\n strict,\n enablePatches,\n };\n if (!isDraftable(state, _options) &&\n typeof state === 'object' &&\n state !== null) {\n throw new Error(`Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.`);\n }\n const [draft, finalize] = draftify(state, _options);\n if (typeof arg1 !== 'function') {\n if (!isDraftable(state, _options)) {\n throw new Error(`Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.`);\n }\n return [draft, finalize];\n }\n let result;\n try {\n result = mutate(draft);\n }\n catch (error) {\n revokeProxy(getProxyDraft(draft));\n throw error;\n }\n const returnValue = (value) => {\n const proxyDraft = getProxyDraft(draft);\n if (!isDraft(value)) {\n if (value !== undefined &&\n !isEqual(value, draft) &&\n (proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.operated)) {\n throw new Error(`Either the value is returned as a new non-draft value, or only the draft is modified without returning any value.`);\n }\n const rawReturnValue = value === null || value === void 0 ? void 0 : value[RAW_RETURN_SYMBOL];\n if (rawReturnValue) {\n const _value = rawReturnValue[0];\n if (_options.strict && typeof value === 'object' && value !== null) {\n handleReturnValue({\n rootDraft: proxyDraft,\n value,\n useRawReturn: true,\n });\n }\n return finalize([_value]);\n }\n if (value !== undefined) {\n if (typeof value === 'object' && value !== null) {\n handleReturnValue({ rootDraft: proxyDraft, value });\n }\n return finalize([value]);\n }\n }\n if (value === draft || value === undefined) {\n return finalize([]);\n }\n const returnedProxyDraft = getProxyDraft(value);\n if (_options === returnedProxyDraft.options) {\n if (returnedProxyDraft.operated) {\n throw new Error(`Cannot return a modified child draft.`);\n }\n return finalize([current(value)]);\n }\n return finalize([value]);\n };\n if (result instanceof Promise) {\n return result.then(returnValue, (error) => {\n revokeProxy(getProxyDraft(draft));\n throw error;\n });\n }\n return returnValue(result);\n };\n};\n\n/**\n * `create(baseState, callback, options)` to create the next state\n *\n * ## Example\n *\n * ```ts\n * import { create } from '../index';\n *\n * const baseState = { foo: { bar: 'str' }, arr: [] };\n * const state = create(\n * baseState,\n * (draft) => {\n * draft.foo.bar = 'str2';\n * },\n * );\n *\n * expect(state).toEqual({ foo: { bar: 'str2' }, arr: [] });\n * expect(state).not.toBe(baseState);\n * expect(state.foo).not.toBe(baseState.foo);\n * expect(state.arr).toBe(baseState.arr);\n * ```\n */\nconst create = makeCreator();\n\n/**\n * `apply(state, patches)` to apply patches to state\n *\n * ## Example\n *\n * ```ts\n * import { create, apply } from '../index';\n *\n * const baseState = { foo: { bar: 'str' }, arr: [] };\n * const [state, patches] = create(\n * baseState,\n * (draft) => {\n * draft.foo.bar = 'str2';\n * },\n * { enablePatches: true }\n * );\n * expect(state).toEqual({ foo: { bar: 'str2' }, arr: [] });\n * expect(patches).toEqual([{ op: 'replace', path: ['foo', 'bar'], value: 'str2' }]);\n * expect(state).toEqual(apply(baseState, patches));\n * ```\n */\nfunction apply(state, patches, applyOptions) {\n let i;\n for (i = patches.length - 1; i >= 0; i -= 1) {\n const { value, op, path } = patches[i];\n if ((!path.length && op === Operation.Replace) ||\n (path === '' && op === Operation.Add)) {\n state = value;\n break;\n }\n }\n if (i > -1) {\n patches = patches.slice(i + 1);\n }\n const mutate = (draft) => {\n patches.forEach((patch) => {\n const { path: _path, op } = patch;\n const path = unescapePath(_path);\n let base = draft;\n for (let index = 0; index < path.length - 1; index += 1) {\n const parentType = getType(base);\n let key = path[index];\n if (typeof key !== 'string' && typeof key !== 'number') {\n key = String(key);\n }\n if (((parentType === 0 /* DraftType.Object */ ||\n parentType === 1 /* DraftType.Array */) &&\n (key === '__proto__' || key === 'constructor')) ||\n (typeof base === 'function' && key === 'prototype')) {\n throw new Error(`Patching reserved attributes like __proto__ and constructor is not allowed.`);\n }\n // use `index` in Set draft\n base = get(parentType === 3 /* DraftType.Set */ ? Array.from(base) : base, key);\n if (typeof base !== 'object') {\n throw new Error(`Cannot apply patch at '${path.join('/')}'.`);\n }\n }\n const type = getType(base);\n // ensure the original patch is not modified.\n const value = deepClone(patch.value);\n const key = path[path.length - 1];\n switch (op) {\n case Operation.Replace:\n switch (type) {\n case 2 /* DraftType.Map */:\n return base.set(key, value);\n case 3 /* DraftType.Set */:\n throw new Error(`Cannot apply replace patch to set.`);\n default:\n return (base[key] = value);\n }\n case Operation.Add:\n switch (type) {\n case 1 /* DraftType.Array */:\n // If the \"-\" character is used to\n // index the end of the array (see [RFC6901](https://datatracker.ietf.org/doc/html/rfc6902)),\n // this has the effect of appending the value to the array.\n return key === '-'\n ? base.push(value)\n : base.splice(key, 0, value);\n case 2 /* DraftType.Map */:\n return base.set(key, value);\n case 3 /* DraftType.Set */:\n return base.add(value);\n default:\n return (base[key] = value);\n }\n case Operation.Remove:\n switch (type) {\n case 1 /* DraftType.Array */:\n return base.splice(key, 1);\n case 2 /* DraftType.Map */:\n return base.delete(key);\n case 3 /* DraftType.Set */:\n return base.delete(patch.value);\n default:\n return delete base[key];\n }\n default:\n throw new Error(`Unsupported patch operation: ${op}.`);\n }\n });\n };\n if (isDraft(state)) {\n if (applyOptions !== undefined) {\n throw new Error(`Cannot apply patches with options to a draft.`);\n }\n mutate(state);\n return state;\n }\n return create(state, mutate, Object.assign(Object.assign({}, applyOptions), { enablePatches: false }));\n}\n\n/**\n * `original(draft)` to get original state in the draft mutation function.\n *\n * ## Example\n *\n * ```ts\n * import { create, original } from '../index';\n *\n * const baseState = { foo: { bar: 'str' }, arr: [] };\n * const state = create(\n * baseState,\n * (draft) => {\n * draft.foo.bar = 'str2';\n * expect(original(draft.foo)).toEqual({ bar: 'str' });\n * }\n * );\n * ```\n */\nfunction original(target) {\n const proxyDraft = getProxyDraft(target);\n if (!proxyDraft) {\n throw new Error(`original() is only used for a draft, parameter: ${target}`);\n }\n return proxyDraft.original;\n}\n\n/**\n * Use rawReturn() to wrap the return value to skip the draft check and thus improve performance.\n *\n * ## Example\n *\n * ```ts\n * import { create, rawReturn } from '../index';\n *\n * const baseState = { foo: { bar: 'str' }, arr: [] };\n * const state = create(\n * baseState,\n * (draft) => {\n * return rawReturn(baseState);\n * },\n * );\n * expect(state).toBe(baseState);\n * ```\n */\nfunction rawReturn(value) {\n if (arguments.length === 0) {\n throw new Error('rawReturn() must be called with a value.');\n }\n if (arguments.length > 1) {\n throw new Error('rawReturn() must be called with one argument.');\n }\n if (value !== undefined &&\n (typeof value !== 'object' || value === null)) {\n console.warn('rawReturn() must be called with an object(including plain object, arrays, Set, Map, etc.) or `undefined`, other types do not need to be returned via rawReturn().');\n }\n return {\n [RAW_RETURN_SYMBOL]: [value],\n };\n}\n\nconst constructorString = Object.prototype.constructor.toString();\n/**\n * Check if the value is a simple object(No prototype chain object or iframe same-origin object),\n * support case: https://github.com/unadlib/mutative/issues/17\n */\nconst isSimpleObject = (value) => {\n if (!value || typeof value !== 'object')\n return false;\n const prototype = Object.getPrototypeOf(value);\n if (prototype === null) {\n return true;\n }\n const constructor = Object.hasOwnProperty.call(prototype, 'constructor') &&\n prototype.constructor;\n if (constructor === Object)\n return true;\n return (typeof constructor === 'function' &&\n Function.toString.call(constructor) === constructorString);\n};\nconst markSimpleObject = (value) => {\n if (isSimpleObject(value)) {\n return dataTypes.immutable;\n }\n return;\n};\n\n/**\n * Cast a value to an Draft type value.\n */\nfunction castDraft(value) {\n return value;\n}\n/**\n * Cast a value to an Immutable type value.\n */\nfunction castImmutable(value) {\n return value;\n}\n/**\n * Cast a value to an Mutable type value.\n */\nfunction castMutable(draft) {\n return draft;\n}\n\nexport { apply, castDraft, castImmutable, castMutable, create, current, isDraft, isDraftable, makeCreator, markSimpleObject, original, rawReturn, unsafe };\n//# sourceMappingURL=mutative.esm.mjs.map\n","import { create } from 'mutative';\n\nexport function produceState(state, fn) {\n state.set(create(state.get(), fn));\n}","import { RumiousReactor } from './reactive.js';\nimport { RumiousReducer } from './reducer.js';\nimport { produceState } from './produce.js';\n\nconst ROOT_STATE = Symbol('ROOT_STATE');\n\nexport class RumiousState {\n constructor(target, reactor = null) {\n this.value = target;\n this.reactor = reactor ?? new RumiousReactor(this, []);\n }\n\n produce(recipe) {\n return produceState(this, recipe);\n }\n\n\n reducer(...args) {\n let computedObj;\n if (args.length === 1) {\n computedObj = new RumiousReducer(this, \"\", args[0])\n } else {\n computedObj = new RumiousReducer(this, args[0], args[1])\n }\n return computedObj.trigger.bind(computedObj);\n }\n\n setObjectByPath(path = \"\", value) {\n if (path.length == 0) {\n this.value = value;\n return;\n }\n \n if (typeof path !== 'string' || !path) {\n throw new Error('Invalid path');\n }\n\n let keys = path.split('.');\n let obj = this.value;\n\n for (let i = 0; i < keys.length - 1; i++) {\n let key = keys[i];\n if (!(key in obj)) {\n obj[key] = {};\n }\n obj = obj[key];\n }\n\n obj[keys[keys.length - 1]] = value;\n }\n\n set(...args) {\n if (args.length === 1) {\n this.value = args[0];\n } else {\n let path = args[0];\n let value = args[1];\n this.setObjectByPath(path, value);\n }\n\n this.reactor.react();\n }\n\n get() {\n return this.value;\n }\n}\n\nexport function createState(value) {\n return new RumiousState(value);\n}\n\nexport function isState(obj) {\n return obj instanceof RumiousState;\n}","export function watcher(state, callback){\n state.reactor.addBinding(callback);\n}"],"names":["RumiousRenderContext","target","_classCallCheck","_createClass","key","value","find","name","get","RumiousComponent","element","props","renderContext","renderer","wrapped","prepare","arguments","length","undefined","template","requestRender","fragment","document","createDocumentFragment","appendChild","onRender","_requestCleanUp","_asyncToGenerator","_regeneratorRuntime","mark","_callee","cloned","wrap","_callee$","_context","prev","next","cloneNode","replaceWith","firstChild","removeChild","stop","requestCleanUp","apply","onInit","onCreate","onUpdate","onDestroy","isComponent","component","Object","getPrototypeOf","RumiousElement","type","children","RumiousElementList","list","forEach","callback","isCamelCase","str","camelCaseRegex","test","isFunction","object","RumiousDirective","init","console","warn","RumiousEventBindingDirective","_RumiousDirective","_callSuper","_inherits","_init","dom","_this","fn","getHandler","concat","handler","bind","objectName","addEventListener","_x","_x2","RumiousPropsBindingDirective","_RumiousDirective2","_init2","_callee2","_this2","_this$value$evaluator","_this$value","currentStateValue","currentState","_callee2$","_context2","evaluator","call","reactor","addBinding","_this2$value$evaluato","_this2$value","bindAttr","_x3","_x4","normalizeValue","_typeof","_value$toString","_value$toString2","toString","_bindAttr","_callee3","_callee3$","_context3","t0","innerHTML","abrupt","_x5","_x6","directives","on","event","attr","registerDirective","_directives$type","createDirective","createElement","_len","Array","_key","createComponent","createFragment","normalizeChildren","createTextElement","text","nodeValue","_objectSpread","_len2","_key2","map","child","window","RUMIOUS_JSX_SUPPORT","RumiousComponentElement","_HTMLElement","instance","componentConstructor","connectedCallback","disconnectCallback","_wrapNativeSuper","HTMLElement","createComponentElement","customElements","define","renderComponent","componentElement","handleComponentElement","container","render","handleFragmentOrElementList","handleTextElement","createTextNode","handleRegularElement","entries","_ref","_ref2","_slicedToArray","propValue","startsWith","substring","toLowerCase","setElementProps","handleDirective","directive","nodeType","Node","TEXT_NODE","setAttribute","RumiousApp","root","configs","RumiousReactor","bindings","react","push","RumiousReducer","state","path","trigger","set","Operation","Remove","Replace","Add","produceState","create","RumiousState","produce","recipe","reducer","computedObj","setObjectByPath","Error","keys","split","obj","i","createState","isState","watcher"],"mappings":"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","x_google_ignoreList":[12]}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/render/context.js","../src/component/component.js","../src/dom/element.js","../src/utils/checker.js","../src/render/directives.js","../src/jsx/index.js","../src/component/element.js","../src/render/index.js","../src/component/render.js","../src/app/index.js","../src/state/reactive.js","../src/state/reducer.js","../node_modules/mutative/dist/mutative.esm.mjs","../src/state/state.js","../src/state/produce.js","../src/state/watcher.js","../src/ref/ref.js","../src/ref/childrens.js","../src/ref/component.js"],"sourcesContent":null,"names":["RumiousRenderContext","constructor","target","this","find","name","get","RumiousComponent","element","props","renderContext","renderer","wrapped","prepare","template","requestRender","fragment","document","createDocumentFragment","appendChild","onRender","requestCleanUp","cloned","cloneNode","replaceWith","firstChild","removeChild","onInit","onCreate","onUpdate","onDestroy","isComponent","component","Object","getPrototypeOf","RumiousElement","type","children","RumiousElementList","list","forEach","callback","isFunction","object","RumiousDirective","value","init","console","warn","RumiousEventBindingDirective","dom","fn","getHandler","handler","bind","objectName","addEventListener","RumiousPropsBindingDirective","currentState","reactor","addBinding","currentStateValue","bindAttr","evaluator","normalizeValue","toString","innerHTML","RumiousRefDirective","ref","set","RumiousChildrensRefDirective","directives","on","event","attr","_","childsRef","createFragment","normalizeChildren","map","child","nodeValue","window","RUMIOUS_JSX_SUPPORT","createElement","createComponent","createDirective","registerDirective","RumiousComponentElement","HTMLElement","super","instance","setRef","componentConstructor","connectedCallback","forwardRef","disconnectCallback","createComponentElement","handleComponentElement","container","render","componentElement","renderComponent","entries","propValue","handleDirective","handleRegularElement","startsWith","test","substring","toLowerCase","nodeType","Node","TEXT_NODE","setAttribute","setElementProps","directive","handleFragmentOrElementList","createTextNode","handleTextElement","customElements","define","RumiousApp","root","configs","RumiousReactor","bindings","react","push","RumiousReducer","state","path","trigger","args","Operation","PROXY_DRAFT","Symbol","for","RAW_RETURN_SYMBOL","iteratorSymbol","iterator","dataTypes","mutable","immutable","internal","has","key","Map","prototype","hasOwnProperty","call","getDescriptor","Reflect","descriptor","getOwnPropertyDescriptor","isBaseSetInstance","obj","Set","isBaseMapInstance","latest","proxyDraft","_a","copy","undefined","original","isDraft","getProxyDraft","getValue","isDraftable","options","markResult","Array","isArray","mark","getPath","parentCopy","parent","isSet","from","setMap","keys","indexOf","size","reverse","base","index","length","getType","Error","join","resolvePath","e","peek","isEqual","x","y","revokeProxy","finalities","revoke","pop","escapePath","pathAsArray","concat","_item","item","replace","propIsEnum","propertyIsEnumerable","shallowCopy","SubClass","values","difference","create","ownKeys","desc","enumerable","configurable","writable","defineProperty","strictCopy","enablePatches","enableAutoFreeze","getOwnPropertySymbols","ensureShallowCopy","deepClone","iterable","k","v","cloneIfNeeded","markChanged","assignedMap","operated","throwFrozenError","deepFreeze","subKey","updatedValues","stack","WeakMap","slice","isFrozen","clear","delete","add","freeze","iter","entry","handleValue","handledSet","updatedValue","finalizeAssigned","finalizeSetValue","finalizePatches","generatePatches","patches","inversePatches","finalized","basePath","markFinalization","callbacks","draft","proxyState","assignedValue","originalValue","op","generatePatchesFromAssigned","arrayLengthAssignment","generateArrayPatches","unshift","generateSetPatches","checkReadable","ignoreCheckDraftable","mapHandler","source","thisArg","_value","_key","_b","strict","createDraft","parentDraft","next","result","done","mapHandlerKeys","getNextIterator","isValuesIterator","currentDraft","proxy","setHandler","valueProxyDraft","assign","intersection","other","union","symmetricDifference","isSubsetOf","isSupersetOf","isDisjointFrom","setHandlerKeys","draftsCache","WeakSet","proxyHandler","receiver","includes","handle","Number","subProxyDraft","isInteger","String","current","currentProxyDraft","setPrototypeOf","deleteProperty","createDraftOptions","Proxy","revocable","oldProxyDraft","finalizeDraft","returnedValue","hasReturnedValue","finalize","handleReturnValue","rootDraft","useRawReturn","isRoot","isContainDraft","currentValue","arr","getCurrent","newValue","arg0","arg1","arg2","_c","mutate","arg","types","_options","baseState","finalizedState","finalizedPatches","finalizedInversePatches","draftify","error","returnValue","rawReturnValue","returnedProxyDraft","Promise","then","RumiousState","produce","recipe","reducer","computedObj","setObjectByPath","split","i","createState","isState","watcher","RumiousElementRef","html","h","query","q","querySelectorAll","text","textContent","off","removeEventListener","remove","addChild","createElementRef","RumiousChildrensRef","idx","createChildrensRef","RumiousComponentRef","createComponentRef"],"mappings":"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","x_google_ignoreList":[12]}