sproutjs-core 2.8.0 → 2.9.2
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/package.json +1 -1
- package/sprout-core.js +128 -102
- package/sprout-core.js.map +1 -1
- package/sprout-core.min.js +1 -1
- package/sprout-core.min.js.map +1 -1
- package/sprout-core.strict.js +113 -83
- package/sprout-core.strict.js.map +1 -1
- package/sprout-core.strict.min.js +1 -1
- package/sprout-core.strict.min.js.map +1 -1
package/sprout-core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sprout-core.js","mappings":"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","sources":["webpack://jssprout/./src/shared/code_utils.js","webpack://jssprout/./src/shared/consts.js","webpack://jssprout/./src/core/attr_utils.js","webpack://jssprout/./src/core/HTMLElementMapParent.js","webpack://jssprout/./src/core/commands.js","webpack://jssprout/./src/shared/parse_utils.js","webpack://jssprout/./src/core/ReactiveElement.js","webpack://jssprout/./src/core/DOM_utils.js","webpack://jssprout/./src/shared/paint_utils.js","webpack://jssprout/./src/core/node_actions.js","webpack://jssprout/./src/shared/prop_utils.js","webpack://jssprout/./src/shared/state_utils.js","webpack://jssprout/./src/Cougar/StatefulArray.js","webpack://jssprout/./src/Cougar/proxy_handlers.js","webpack://jssprout/./src/Cougar/state_plugins.js","webpack://jssprout/./src/Cougar/state_utils.js","webpack://jssprout/./src/Cougar/NodeManager.js","webpack://jssprout/./src/Cougar/reactivity_utils.js","webpack://jssprout/./src/Cougar/StateManager.js","webpack://jssprout/./src/core/ReactiveCustomElement.js","webpack://jssprout/./src/core/ConditionalElement.js","webpack://jssprout/./src/build/index.js","webpack://jssprout/./src/core/index.js"],"sourcesContent":["export class ReadonlySet extends Set {\n\tstatic unavailableMethod(methodName) {\n \t throw Error(`Can't use ${methodName} in ReadonlySet`);\n }\n\n constructor(iterable) {\n \t super(iterable);\n // We need to set it here, because the native constructor calls 'add'\n this.add = ()=> ReadonlySet.unavailableMethod(\"add\");\n }\n\tdelete() {\n\t\tReadonlySet.unavailableMethod(\"delete\"); \t\n }\n\tclear() {\n\t\tReadonlySet.unavailableMethod(\"clear\"); \t\n }\n}\n","import { ReadonlySet } from \"./code_utils\";\n\nexport const OBSERVED_ATTRIBUTES = [\"ref\", \"hidden\"];\n\n// disabled, selected, src\nexport const BOOLEAN_ATTRIBUTES = new ReadonlySet([\n 'hidden',\n 'checked',\n 'disabled',\n 'required',\n 'selected'\n]);\n\nexport const AUTO_ATTRIBUTES_TO_PROPS = new ReadonlySet([\n 'checked', \n 'disabled', \n 'selected', \n 'src'\n]);\n\nexport const SUPPORTED_ATTRIBUTES_FOR_BINDING = new ReadonlySet([\n 'value',\n 'checked'\n]);\n\n// These are \"built-in\" state props that are automatically added to state objects,\n// and should not be included in the normal state change/check flow\nexport const BUILT_IN_STATE_PROPS = new ReadonlySet([\n '_global',\n '_gettingDependenciesFor',\n '_localStateManager',\n '_stateManager',\n '_binding',\n '_populate',\n '_isActive',\n '_isStateManager',\n '_isStatefulArray',\n 'hasOwnProperty'\n]);\n\nexport const GLOBAL_STATE_VAR_NAME = \"SproutGlobalState\";\nexport const GLOBAL_STATE_FUNCTION_NAME = \"getGlobalState\";\nexport const GLOBAL_STATE_NOT_SET_YET = \"Global State Not Set Yet\";\n\nexport const ERROR_MESSAGES = Object.freeze({\n NO_DEPENDENCIES_ARRAY_IN_SET_HOOK(stateProp) {\n return `State set hook, must include a dependencies array! None was found for ${stateProp}`;\n }\n});\n\nexport const HTML_ELEMENT_CLASSES_MAP = Object.freeze([\n { class: HTMLAnchorElement, element: \"a\" },\n { class: HTMLAreaElement, element: \"area\" },\n { class: HTMLAudioElement, element: \"audio\" },\n // { class: HTMLBaseElement, element: \"base\" },\n { class: HTMLBodyElement, element: \"body\" },\n { class: HTMLBRElement, element: \"br\" },\n { class: HTMLButtonElement, element: \"button\" },\n { class: HTMLCanvasElement, element: \"canvas\" },\n { class: HTMLDataElement, element: \"data\" },\n { class: HTMLDataListElement, element: \"datalist\" },\n { class: HTMLDetailsElement, element: \"details\" },\n { class: HTMLDialogElement, element: \"dialog\" },\n { class: HTMLDivElement, element: \"div\" },\n { class: HTMLDListElement, element: \"dl\" },\n { class: HTMLEmbedElement, element: \"embed\" },\n { class: HTMLFieldSetElement, element: \"fieldset\" },\n { class: HTMLFormElement, element: \"form\" },\n /*\n { class: HTMLHeadingElement, element: \"h1\" },\n { class: HTMLHeadingElement, element: \"h2\" },\n { class: HTMLHeadingElement, element: \"h3\" },\n { class: HTMLHeadingElement, element: \"h4\" },\n { class: HTMLHeadingElement, element: \"h5\" },\n { class: HTMLHeadingElement, element: \"h6\" },\n */\n { class: HTMLHRElement, element: \"hr\" },\n { class: HTMLHtmlElement, element: \"html\" },\n { class: HTMLIFrameElement, element: \"iframe\" },\n { class: HTMLImageElement, element: \"img\" },\n // { class: HTMLInputElement, element: \"input\" },\n { class: HTMLLabelElement, element: \"label\" },\n { class: HTMLLegendElement, element: \"legend\" },\n { class: HTMLLIElement, element: \"li\" },\n { class: HTMLLinkElement, element: \"link\" },\n { class: HTMLMapElement, element: \"map\" },\n { class: HTMLMetaElement, element: \"meta\" },\n { class: HTMLMeterElement, element: \"meter\" },\n { class: HTMLObjectElement, element: \"object\" },\n { class: HTMLOListElement, element: \"ol\" },\n { class: HTMLOptGroupElement, element: \"optgroup\" },\n { class: HTMLOptionElement, element: \"option\" },\n // { class: HTMLOutputElement, element: \"output\" },\n { class: HTMLParagraphElement, element: \"p\" },\n // { class: HTMLParamElement, element: \"param\" },\n { class: HTMLPictureElement, element: \"picture\" },\n { class: HTMLPreElement, element: \"pre\" },\n { class: HTMLProgressElement, element: \"progress\" },\n { class: HTMLQuoteElement, element: \"blockquote\" },\n { class: HTMLQuoteElement, element: \"q\" },\n // { class: HTMLScriptElement, element: \"script\" },\n { class: HTMLSelectElement, element: \"select\" },\n { class: HTMLSourceElement, element: \"source\" },\n { class: HTMLSpanElement, element: \"span\" },\n // { class: HTMLStyleElement, element: \"style\" },\n { class: HTMLTableElement, element: \"table\" },\n { class: HTMLTableCellElement, element: \"td\" },\n { class: HTMLTableCellElement, element: \"th\" },\n { class: HTMLTableRowElement, element: \"tr\" },\n { class: HTMLTableSectionElement, element: \"thead\" },\n { class: HTMLTableSectionElement, element: \"tbody\" },\n { class: HTMLTableSectionElement, element: \"tfoot\" },\n { class: HTMLTextAreaElement, element: \"textarea\" },\n { class: HTMLTimeElement, element: \"time\" },\n { class: HTMLTitleElement, element: \"title\" },\n { class: HTMLTrackElement, element: \"track\" },\n { class: HTMLUListElement, element: \"ul\" },\n { class: HTMLVideoElement, element: \"video\" },\n { class: HTMLSlotElement, element: \"slot\" },\n // We can't use HTMLElement more than once, so we will use a class extending it\n // { class: class extends HTMLElement{}, element: \"code\" }\n]);\n\n// For development purposes only,\n// turn this on to see exactly which functions in each entity are called and when.\nexport const DEBUG_MODE = false;\n\nexport const DEFAULT_TEMPLATE_DOM = document.createElement('div');\n\nexport const NODES_STATE = {\n // This is a global object that maps abstract \"DOM actions\" to nodes (the nodes can be elements, text nodes, attribute nodes)\n // It is resolved to actual DOM API functions on RequestAnimationFrame calls, and then is RESET.\n // it is a \"singleton\" object\n nodeActionsMap: new Map(),\n pendingPaintNodeManagers: new Set(),\n\n // Maps events binding function (value) to (custom) element (key) \n eventBindingFunctions: new Map(),\n // Maps conditional render function (value) to conditional-render element (key)\n conditionalRenders: new Map(),\n // Maps state change handler function (value) to custom elements (key)\n stateChangeHandlers: new Map(),\n // Save requestAnimationFrame Id, to cancel if the rAF wasn't called yet on the same frame, so DOM operations will be batched to a single frame,\n // preventing several rAFs running for the same frame\n paintRafId: null,\n}\n\nexport const CONDITIONAL_OPERATORS = new ReadonlySet([\n '==',\n '===',\n '!=',\n '!==',\n '<',\n '<=',\n '>',\n '>='\n]);\nexport const CONDITIONAL_OPERATORS_REGEX = /^(==|===|!=|!==|<|<=|>|>=)/;\n\n// Used to flag items to be removed in StatefulArray\nexport const STATEFUL_ARRAY_REMOVE_FLAG_STRING = \"$$remove$$\";\nexport const STATEFUL_ARRAY_REMOVED_FLAG_STRING = \"$$removed$$\";\n\n// Names of array methods that changes the content of the array itself (mutate it)\n// NOT including methods that just changes its length (removes items without changing the rest)\nexport const ARRAY_MUTATE_METHODS = new ReadonlySet([\n \"shift\",\n \"unshift\",\n \"pop\",\n \"push\",\n \"reverse\",\n \"sort\",\n \"splice\",\n \"copyWithin\",\n \"fill\",\n]);\n\n// Array methods that change content of an array,\n// but NEVER adjusts its length in the process.\nexport const ARRAY_MUTATE_NO_LENGTH_CHANGE_METHODS = new ReadonlySet([\n \"reverse\",\n \"sort\",\n \"copyWithin\",\n \"fill\",\n]);\n\n// Array methods that derive results from content/order without mutating the base array\n// Using them during dep-capture should also record a base-array dependency\nexport const ARRAY_DERIVE_METHODS = new ReadonlySet([\n \"slice\",\n \"map\",\n \"filter\",\n \"reduce\",\n \"reduceRight\",\n \"some\",\n \"every\",\n \"forEach\",\n \"find\",\n \"findIndex\",\n \"findLast\",\n \"findLastIndex\",\n \"indexOf\",\n \"lastIndexOf\",\n \"includes\",\n \"entries\",\n \"keys\",\n \"values\",\n \"at\",\n \"join\",\n \"toString\",\n \"toLocaleString\"\n]);\n// Array \"mapping\" methods (where you pass a callback function)\nexport const ARRAY_CACHE_METHODS = new ReadonlySet([\n \"every\",\n \"some\",\n \"filter\",\n \"forEach\",\n \"map\",\n \"reduce\",\n \"reduceRight\",\n \"slice\"\n]);\n\nexport const SYMBOL_NAMES = {\n STATE_NOT_FOUND: \"SPROUT_STATE_NOT_FOUND\"\n}\n\nexport const BINDABLE_ATTRIBUTES_TO_STATE_NODES = new ReadonlySet([\n \"checked\",\n \"value\"\n]);\n\nexport const SPROUT_FROZEN_CSS_CLASS_NAME = \"sprout-frozen\";\n\n/*\nexport const SPROUT_FROZEN_CLASS_CSS = `\n .${SPROUT_FROZEN_CSS_CLASS_NAME} {\n visibility: hidden;\n clip-path: inset(100%);\n pointer-events: none;\n }\n`;\n*/\n\nexport const SPROUT_FROZEN_CLASS_CSS = `\n .${SPROUT_FROZEN_CSS_CLASS_NAME} {\n clip-path: inset(100%);\n pointer-events: none;\n opacity: 0;\n }\n`;\n\nexport const DETACH_METHOD = Object.freeze({\n HIDE_UNHIDE: 1,\n CLONE: 2\n});\n\nexport const MAX_OPERATIONS_PER_ANIMATION_FRAME = 100;\n\nexport const MAX_DOM_ACTIONS_PER_FRAME = {\n ATTRIBUTE_ACTIONS: 600,\n TEXT_ACTIONS: 300,\n ELEMENT_ACTIONS: 100,\n PROPERTY_ACTIONS: 50,\n REATTACH_ACTIONS: 10\n}\n\n// Max time in ms for doing paint jobs\nexport const FRAME_BUDGET = 8;\n\n// CSS to always put on each Shadow DOM root\nexport const SHADOW_ROOT_CSS = \n':host { contain: layout paint; }';\n\n","import { BOOLEAN_ATTRIBUTES } from \"../shared/consts\";\n\n// Convert attribute values to \"typed\" values\nexport function attributeValueToTypedValue(attrValue) {\n let typedValue = attrValue;\n if (attrValue === \"true\") typedValue = true;\n else if (attrValue === \"false\") typedValue = false;\n else if (!isNaN(Number(attrValue))) typedValue = Number(attrValue);\n return typedValue; \n}\n\n// 'this' should be the element. attributeValue should start with '@'\nexport function bindPropAttribute(attributeName, attributeValue, host) {\n if (!STRICT) {\n if (!host) {\n console.warn(`Host element not found when binding prop attribute ${attributeName} to ${attributeValue}`);\n }\n }\n const propName = attributeValue.substring(1);\n const attrNode = this.getAttributeNode(attributeName);\n attrNode.nodeValue = host.getAttribute(propName);\n attrNode.isPropAttribute = true;\n if (!host.propAttributes.has(propName)) {\n host.propAttributes.set(propName, new Set());\n }\n host.propAttributes.get(propName).add(attrNode);\n}\n\nexport function isBooleanAttribute(attributeName) {\n return BOOLEAN_ATTRIBUTES.has(attributeName);\n}\n\nexport function isFalsyStringValue(value) {\n return value === \"false\" || value === \"null\" || value === \"undefined\" || value === \"\";\n}\nexport function isStateAttribute(attrName) {\n return attrName.indexOf(':') === 0;\n}\n\nexport function isPropAttribute(attrValue) {\n return attrValue.indexOf('@') === 0;\n}\n","import { SPROUT_FROZEN_CSS_CLASS_NAME, DETACH_METHOD } from '../shared/consts.js';\n\n// Extract real custom element in-case inside a wrapper element (e.g. <li>)\nfunction getStatefulChild(child) {\n return Object.hasOwn(child, \"state\") ? child : child.firstElementChild;\n}\n\nfunction whenActive(child, func) {\n if (child.isActive) func();\n else child.addEventListener(\"active\", func, { once: true });\n}\n\n// We use pendingKeyMapActions - because states become active only after mounts (only after reattach of parent)\n// These methods are usually called on a DETACHED parent element DOM \nconst HTMLElementMapParent = {\n\n // Note the opposite arguments order!\n replaceChildWith(oldChild, newChild) {\n const statefulOldChild = getStatefulChild(oldChild);\n const oldKey = statefulOldChild?.state?.key ?? oldChild.stateKey;\n const statefulNewChild = getStatefulChild(newChild);\n const newKey = newChild.stateKey ?? statefulNewChild.stateKey;\n const replacedChild = this.replaceChild(newChild, oldChild);\n this.keyMap.delete(oldKey);\n this.keyMap.set(newKey, newChild);\n return replacedChild;\n },\n\n // Swaps between children\n swapChildWith(oldChild, newChild) {\n if (oldChild === newChild) return;\n const oldNext = oldChild.nextSiblingElement;\n const newNext = newChild.nextSiblingElement;\n this.insertBefore(oldChild, newNext);\n this.insertBefore(newChild, oldNext);\n },\n\n removeChild(child) {\n const statefulChild = getStatefulChild(child);\n const key = child.stateKey ?? statefulChild.stateKey;\n // IMPORTANT: call the native version\n HTMLElement.prototype.removeChild.call(this, child);\n this.keyMap.delete(key);\n },\n\n insertBefore(newChild, beforeChild) {\n HTMLElement.prototype.insertBefore.call(this, newChild, beforeChild);\n const statefulNewChild = getStatefulChild(newChild);\n const key = newChild.stateKey ?? statefulNewChild.stateKey;\n this.keyMap.set(key, newChild);\n },\n\n append(...elements) {\n // call native\n HTMLElement.prototype.append.call(this, ...elements);\n\n // start from current child count minus newly-added elements\n // let index = this.children.length - elements.length;\n\n for (const element of elements) {\n const statefulChild = getStatefulChild(element);\n const key = element.stateKey ?? statefulChild.stateKey;\n this.keyMap.set(key, element);\n }\n },\n\n appendChild(newChild) {\n HTMLElement.prototype.appendChild.call(this, newChild);\n const statefulChild = getStatefulChild(newChild);\n const key = newChild.stateKey ?? statefulChild.stateKey;\n this.keyMap.set(key, newChild);\n },\n\n prepend(newChild) {\n HTMLElement.prototype.prepend.call(this, newChild);\n const statefulChild = getStatefulChild(newChild);\n const key = newChild.stateKey ?? statefulChild.stateKey;\n this.keyMap.set(key, newChild);\n },\n\n detach(clonePattern = false) {\n /*\n // NOTE: this commented-out part uses the moveBefore method\n // it's not widely supported yet\n // also, it seems just hiding with display = 'none' and showing again has the same performance\n\n const parentNode = this.parentNode;\n if (!parentNode) {\n console.warn (\"Tried to detach element without parent!\");\n }\n this.originalParentNode = parentNode;\n appScope.offscreenContainer.moveBefore(this, null);\n */\n\n /* Another way is to cloneNode for the DOM tree,\n * save it, manipulate the offscreen node, \n * then replace between them -\n * the problem with this is that,\n * lifecycle methods (connectedCallback) for the DOM node \n * and all of his children will trigger\n */\n\n let returnElement;\n if (clonePattern) {\n const cloned = this.cloneNode(true);\n cloned.$$originalElement = this;\n cloned.$$detached = DETACH_METHOD.CLONE\n returnElement = cloned;\n }\n else {\n // inert makes it inactive to interaction and events\n this.setAttribute(\"inert\",\"\");\n this.classList.add(SPROUT_FROZEN_CSS_CLASS_NAME);\n this.$$detached = DETACH_METHOD.HIDE_UNHIDE;\n returnElement = this;\n }\n return returnElement;\n },\n \n reattach() {\n /*\n // NOTE: this commented-out part uses the moveBefore method\n // it's not widely supported yet\n // also, it seems just hiding with display = 'none' and showing again has the same performance\n\n if (!this.originalParentNode) {\n console.warn(\"Tried to reattach without a known originalParentNode\");\n }\n this.originalParentNode.moveBefore(this, null);\n */\n if (!STRICT) {\n if (!this.$$detached) {\n console.warn(\"Tried to reattach an undetached element\");\n return;\n }\n }\n // this.style.display = this.originalDisplayStyle;\n // this.originalDisplayStyle = undefined;\n // const detachedClone = this.detachedClone;\n // this.detachedClone = undefined;\n // this.replaceWith(detachedClone);\n // this.noRenderObserver.disconnect();\n // This triggers a single repaint, but only once\n // this.getBoundingClientRect();\n\n // display: none ==> no layout, visibility: hidden => layout, no paint\n if (this.$$detached === DETACH_METHOD.HIDE_UNHIDE) {\n this.removeAttribute(\"inert\",\"\");\n this.classList.remove(SPROUT_FROZEN_CSS_CLASS_NAME);\n }\n else if (this.$$detached === DETACH_METHOD.CLONE) {\n this.$$originalElement.replaceWith(this);\n }\n\n this.$$detached = undefined;\n },\n\n // This is a special method that instead of being called on\n // a detached map parent, it is called once the parent initially becomes a map parent\n // to syncrounously populate the keyMap\n initialAppend(...elements) {\n // call native\n HTMLElement.prototype.append.call(this, ...elements);\n\n // start from current child count minus newly-added elements\n // let index = this.children.length - elements.length;\n\n for (const element of elements) {\n this.pendingKeyMapActions.add(\n ()=> {\n const statefulChild = getStatefulChild(element);\n if (statefulChild.isActive) {\n const key = statefulChild?.state?.key ?? element.stateKey;\n this.keyMap.set(key, element);\n }\n else statefulChild.addEventListener(\"active\", ()=> {\n const key = statefulChild?.state?.key ?? element.stateKey;\n this.keyMap.set(key, element);\n }, { once: true});\n }\n );\n }\n },\n\n};\n\nexport function makeElementMapParent(parentElement) {\n Object.assign(parentElement, HTMLElementMapParent);\n // Maps state.key to currently attached child elements\n parentElement.keyMap = new Map();\n parentElement.pendingKeyMapActions = new Set();\n // This creates a compositor \"layer\" (separates the element graphics in the GPU, for smoother changes)\n parentElement.style.willChange = \"opacity\";\n}\n\n/*\nexport default class HTMLElementMapParent extends HTMLElement {\n\n // Maps state keys to child indexes (location in children)\n // Has to be a getter and not regular property - because it's \"mixed-in\" (see mixIn in class_utils)\n get keyMap() {\n if (!this._keyMap) this._keyMap = new Map();\n return this._keyMap;\n }\n // We allow passing the index of the child directly for a faster path\n // Note the opposite arguments order!\n replaceChildWith(oldChild, newChild, childIndex) {\n if (!childIndex) childIndex = [...this.children].indexOf(oldChild);\n this.replaceChild(newChild, oldChild);\n if (!oldChild?.state?.key) console.error(`Child element ${oldChild} in state map parent has no key property!`);\n this.keyMap.delete(oldChild.state.key);\n this.keyMap.set(newChild.state.key, childIndex);\n }\n\n removeChild(child) {\n if (!child?.state?.key) console.error(`Child element ${child} in state map parent has no key property!`);\n super.removeChild(child);\n this.keyMap.delete(child.state.key);\n }\n\n append(...elements) {\n super.append(...elements);\n let index = 0;\n for (const element of elements) {\n if (!element?.state?.key) console.error(`Child element ${element} in state map parent has no key property!`);\n this.keyMap.set(element.state.key, index++);\n }\n }\n appendChild(newChild) {\n if (!newChild?.state?.key) console.error(`Child element ${newChild} in state map parent has no key property!`);\n super.append(newChild);\n this.keyMap.set(newChild.state.key, this.children.length-1);\n }\n prepend(newChild) {\n if (!newChild?.state?.key) console.error(`Child element ${newChild} in state map parent has no key property!`);\n super.prepend(newChild);\n this.keyMap.forEach((valueIndex, key)=> this.keyMap.set(key, valueIndex+1));\n this.keyMap.set(newChild.state.key, 0);\n }\n}\n*/\n","import { mapStateArrayToElements } from \"../shared/state_utils.js\";\nimport { SUPPORTED_ATTRIBUTES_FOR_BINDING } from \"../shared/consts.js\";\nimport { isElementAList } from \"./DOM_utils.js\";\nimport { makeElementMapParent} from \"./HTMLElementMapParent.js\";\n\nfunction mapStateToElements(stateItemsPropertyName, customElementName, parentElement) {\n let [stateItemsArray, theState] = parentElement.getState(stateItemsPropertyName, true);\n if (!STRICT) {\n if (!stateItemsArray || !Array.isArray(stateItemsArray)) {\n throw new Error (\"State value for _map is not an array, in state property: \" + stateItemsPropertyName);\n }\n if (!stateItemsArray.hasOwnProperty(\"_isStatefulArray\")) {\n throw new Error(`Array '${stateItemsPropertyName}' used for State Map must be a stateful array. Use a direct array value or an SSH with statify:true or stateMap: true `);\n }\n }\n stateItemsArray.makeStateMap();\n const wrapInElement = isElementAList(parentElement) ? \"li\" : undefined;\n const elements = mapStateArrayToElements(stateItemsArray, customElementName, wrapInElement, parentElement);\n parentElement.innerHTML = \"\";\n if (elements.length) {\n // parentElement SHOULD BE HTMLElementMapParent (with \"superpowers\" such as keyMap)\n parentElement.append(...elements);\n }\n return theState;\n}\n\n// Functions that run and handles \"Command\" attributes. Note, they should always be called\n// with the \"this\" context set to the Element instance the command is defined on\nexport const COMMANDS = {\n map: function(commandValue) {\n // The command value (\"argument\") is \"<stateProp>:<custom element name>\"\n const [stateItemsPropertyName, customElementName] = commandValue.split(':');\n const thiselement = this;\n // Give this element \"Map parent element super powers\"\n makeElementMapParent(thiselement);\n\n this.onAfterPaint(()=> {\n const theState = mapStateToElements(stateItemsPropertyName, customElementName, thiselement);\n if (!theState) throw new Error(`Mapping ${stateItemsPropertyName} to ${customElementName} failed!`);\n const stateArray = theState[stateItemsPropertyName];\n if (!stateArray || !stateArray.hasOwnProperty('_isStatefulArray')) {\n throw new Error(`State array ${stateItemsPropertyName} for State Map must be stateful!`);\n }\n theState._stateManager.addStateMap(stateItemsPropertyName, customElementName, thiselement);\n });\n },\n /*\n text: function(commandValue) {\n const stateProp = commandValue;\n this.initialSetText(stateProp);\n // DO NOT CALL .normalize()! It might change the Text Nodes!\n },\n */\n bind: function(commandValue) {\n if (!STRICT) {\n if (this.tagName !== \"INPUT\") {\n console.warn (`_bind command is only supported on input elements!`);\n return;\n }\n }\n const [attributeName, statePropName] = commandValue.split(':');\n if (!STRICT) {\n if (!attributeName || !statePropName) {\n console.warn (\"Incorrect usage of _bind command! Please pass <attribute-name>:<state-property-name>\");\n return;\n }\n if (!SUPPORTED_ATTRIBUTES_FOR_BINDING.has(attributeName)) {\n console.warn (`Attribute ${attributeName} is not supported for _bind command!`);\n return;\n }\n }\n this.bindAttributeToState(attributeName, statePropName);\n },\n bindprop: function(commandValue) {\n const [statePropName, elementPropName] = commandValue.split(':');\n const [_, stateObject] = this.getState(statePropName, true);\n if (!STRICT) {\n if (!stateObject) {\n console.warn (`State property ${statePropName} not found for bindProp command!`);\n return;\n }\n }\n this[elementPropName] = stateObject[statePropName];\n }\n}\n","\n\n\n/* Possible expression:\n * literal: straight state prop,.\n * negation: !something (not something)\n * equality: is_something:equalityValue\n * ternary: somethingIsTruthy?returnThis:[elseThis]\n */\nexport function parseStateExpression(expression) {\n if (expression.indexOf('@') === 0) {\n return [\"property\", [expression.substring(1)]];\n }\n if (expression.indexOf('!') === 0) {\n return [\"negation\", [expression.substring(1)]];\n }\n let charIndex = 0;\n let parsed = expression[charIndex];\n let char;\n while (charIndex++ < expression.length) {\n char = expression[charIndex];\n if (charIndex == 3 && parsed == \"is_\") {\n return [\"equality\", expression.substring(3).split(':')];\n }\n if (char === '?') {\n return [\"ternary\", parsed, expression.substring(charIndex+1).split(':')];\n }\n parsed += char;\n }\n return [\"literal\", [expression]];\n}\n\nexport function fromAttributeValue(value) {\n if (value === '') return true;\n if (value === null) return false;\n return value;\n}\n\nexport function toAttributeValue(value) {\n if (value === true) return '';\n if (value === false) return null;\n return value;\n}","import { bindPropAttribute, isPropAttribute, isStateAttribute } from \"./attr_utils.js\";\nimport { COMMANDS as COMMAND_ATTRIBUTES } from \"./commands.js\";\nimport { SUPPORTED_ATTRIBUTES_FOR_BINDING, GLOBAL_STATE_FUNCTION_NAME, AUTO_ATTRIBUTES_TO_PROPS, SYMBOL_NAMES, OBSERVED_ATTRIBUTES } from \"../shared/consts.js\";\nimport { setAttribute, setStateAttribute, setStateText } from \"../shared/state_utils.js\";\nimport { fromAttributeValue } from \"../shared/parse_utils.js\";\n\nexport function isReactiveCustomElement(element) {\n return element && element.isReactiveElement && !element.isNativeElement;\n}\n\nexport function extendElementClassWithReactiveElementClass(elementClass, appScope = window, isInputElement = false) {\n class ReactiveElement extends elementClass {\n // Should contain the parent (containing) custom element (a ReactiveCustomElement instance)\n host = null\n // True if connectedCallback was called once\n #wasMounted = false\n\n // The name used for the ref property\n refName;\n static observedAttributes = OBSERVED_ATTRIBUTES;\n\n constructor() {\n super();\n this.isReactiveElement = true;\n this.isNativeElement = true;\n }\n\n\n activate() {\n const commands = [];\n const attributeNames = this.getAttributeNames();\n for (const attrName of attributeNames) {\n const attrValue = this.getAttribute(attrName);\n // This also resolves \"State attributes\"\n this.initialSetAttribute(attrName, attrValue);\n\n // Save \"Command attributes\"\n if (attrName.indexOf('_') === 0) {\n const command = attrName.substring(1);\n commands.push({ command, args: attrValue });\n }\n }\n\n commands.forEach(({ command, args })=> {\n COMMAND_ATTRIBUTES[command]?.call(this, args);\n // Run custom commands\n appScope.appCommands?.[command]?.call(this, args);\n const componentCommands = this.host?.commands || this.commands;\n componentCommands?.[command]?.call(this, args);\n });\n\n this.#pendingAttributeChanges.forEach(attributeChangeHandler=> attributeChangeHandler.call(this));\n this.#pendingAttributeChanges.length = 0;\n this.isActive = true;\n }\n\n // IMPORTANT: Sometimes we check this.host directly and EXPECT IT to be null for the host itself!\n // But, this function is a \"public\" method that always returns something - if a child it will return parent ce,\n // if parent ce it will return itself\n getHost() {\n return this.host || this.parentNode || this?.getRootNode()?.host;\n }\n connectedCallback() {\n if (this.#wasMounted) return;\n // IMPORTANT: THIS *CAN* be NULL, DO NOT CHANGE IT!\n // It is part of the way a check is made to see if an element is part of ShadowDOM!\n // host will be null if the element is part of the DOM === the \"root\" custom element will have null in .host\n // THIS SHOULD BE THE FIRST THING THAT HAPPENS!\n // getRootNode - returns shadowRoot if this is inside shadow DOM, and document if it's in light DOM.\n const rootNode = this.getRootNode();\n\n // If this is inside light DOM and the parent is a Sprout custom element - we take the direct parent,\n // this works e.g. with a light element with \"slot\" attribute, inside a Sprout component\n // (It will have access to its \"state\")\n\n if (rootNode !== document) {\n this.host = rootNode.host;\n }\n else if (isReactiveCustomElement(this.parentElement)) {\n this.host = this.parentElement;\n }\n else {\n // This could mean this is actually a top-level Sprout Custom Element (\"host\"),\n // i.e. a custom element that is not inside shadowDOM\n roost.host = null;\n }\n\n if (this.host) {\n // Once the host custom element is connected\n // then its 'State' is ready and activated,\n // then we can call the sub-elements 'activate()',\n // which relies on an active state.\n // Doing it like this, allow visual render faster,\n // defering the state handling.\n if (this.host.isActive) this.activate(); \n else {\n this.host.addEventListener(\"active\", ()=> this.activate(), { once: true });\n }\n }\n else {\n this.activate();\n }\n\n this.#wasMounted = true;\n }\n\n disconnectedCallback() {\n const host = this.host ?? this;\n if (host.ref) {\n delete host.ref[this.refName];\n }\n }\n\n // This is for when using moveBefore for detaching and reattaching DOM\n // We considered using it - but it is not widely supported,\n // and you have to move it to another DOM for it to work correctly\n // connectedMoveCallback() {}\n\n #handleAttributeChange(attributeName, oldValue, newValue) {\n const host = this.isNativeElement ? (this.host || this.getRootNode().host) : this;\n\n if (attributeName === \"ref\") {\n const refValue = newValue;\n host.ref[refValue] = this;\n this.refName = refValue;\n }\n /*\n else if (newValue && newValue.indexOf('@') === 0) {\n bindPropAttribute.call(this, attributeName, newValue, host);\n }\n */\n }\n #pendingAttributeChanges = [];\n attributeChangedCallback(attributeName, oldValue, newValue) { \n if (oldValue === newValue) return;\n // If host is not yet connected - defer handling.\n if (!this.isConnected) {\n this.#pendingAttributeChanges.push(\n ()=> this.#handleAttributeChange(attributeName, oldValue, newValue)\n );\n }\n else {\n this.#handleAttributeChange(attributeName, oldValue, newValue);\n }\n }\n\n // Gets state value of stateProp,\n // tries to resolve from local state(s) first, up the \"state tree\",\n // and then from global. If the second argument is true: \n // returns both the state value and the state object\n // else return just the state value\n getState(stateProp, returnStateObject=false) {\n let theState;\n // If this is a reactive element inside a reactive web component - the host should be the containing web component - \n // we should reference its state, if host is null - it is most likely the host web component\n let elementInstance = this.isNativeElement && this.host ? this.host : this;\n let stateVal, stateFound = false;\n if (elementInstance && elementInstance.state && Object.hasOwn(elementInstance.state,stateProp)) {\n stateFound = true;\n theState = elementInstance.state;\n stateVal = theState[stateProp];\n }\n\n // Go \"up the state layers\" to try to find the state\n if (!stateFound) {\n while (!stateFound && elementInstance.host) {\n elementInstance = elementInstance.host;\n if (elementInstance && elementInstance.state && Object.hasOwn(elementInstance.state, stateProp)) {\n stateFound = true;\n theState = elementInstance.state;\n stateVal = theState[stateProp];\n }\n }\n }\n\n if (!stateFound) {\n // Try the global state\n const globalState = appScope[GLOBAL_STATE_FUNCTION_NAME]();\n if (globalState && Object.hasOwn(globalState, stateProp)) {\n stateFound = true;\n theState = globalState\n stateVal = theState[stateProp];\n }\n }\n\n if (!stateFound) {\n stateVal = undefined;\n }\n if (returnStateObject) {\n return [stateVal, theState];\n }\n return stateVal;\n }\n \n findElement(refName) {\n const host = this.host || this;\n // if Shadow DOM is used, the \"root\" element is shadowRoot, otherwise it is the \n // web component itself\n let root = host;\n if (appScope.SPROUT_CONFIG.useShadow) {\n root = host.shadowRoot;\n }\n return Object.hasOwn(host.ref, refName) ? host.ref[refName] : root.querySelector(`[ref=\"${refName}\"]`);\n }\n\n // The \"initialSetX\" functions are called:\n // 1. When a custom element instance is first created (before it's connected) - \n // state attribute values are set to their state prop names (e.g: '$name').\n // 2. When a custom element instance becomes connected (added to the DOM) - state attribute values are actually resolved to the\n // value of their respective state prop values, and binding between them occurs.\n initialSetText(stateProp) {\n setStateText.call(this, stateProp);\n }\n initialSetAttribute(attributeName, attributeValue) {\n attributeValue = String(attributeValue);\n const isPropAttr = isPropAttribute(attributeValue);\n const isStateAttr = isStateAttribute(attributeName); \n let valueToSet = attributeValue;\n\n // \"State attribute\"\n if (isStateAttr) {\n if (!STRICT) {\n if (isPropAttr) {\n console.warn(\"Mixing between prop attributes and state attributes can lead to unexpected results!\");\n }\n }\n const stateProp = attributeValue;\n const attrName = attributeName.substring(1);\n if (attrName === \"textContent\") {\n this.initialSetText(stateProp); \n }\n else {\n setStateAttribute.call(this, attrName, stateProp);\n }\n }\n else { \n if(isPropAttr) {\n const host = this.getHost();\n if (!STRICT) {\n if (!host) {\n console.warn(`Host element not found when resolving prop attribute ${attributeName}:${attributeValue}`);\n }\n }\n const propName = attributeValue.substring(1);\n const propValue = host.getAttribute(propName);\n valueToSet = propValue;\n }\n if (attributeName === \"textContent\") {\n this.initialSetText(valueToSet); \n }\n else {\n setAttribute.call(this, attributeName, valueToSet);\n }\n }\n }\n\n onAfterPaint(callback) {\n requestAnimationFrame(()=>\n requestAnimationFrame(callback)\n );\n }\n }\n\n if (!isInputElement)\n return ReactiveElement;\n else {\n class ReactiveInputElement extends ReactiveElement {\n // Used for the _bind command, which allows \"reverse-binding\" attribute values to state props,\n // keys are attribute names, values are state prop names\n boundAttributesToState = new Map();\n #changeEventHandler;\n // #inputEventHandler;\n\n static observedAttributes = ReactiveElement.observedAttributes\n .concat([...SUPPORTED_ATTRIBUTES_FOR_BINDING]);\n \n bindAttributeToState(attributeName, statePropName) {\n this.boundAttributesToState.set(attributeName, statePropName);\n }\n updateStateFromAttribute(attributeName) {\n let newValue = fromAttributeValue(this.getAttribute(attributeName));\n const stateProp = this.boundAttributesToState.get(attributeName);\n const [stateValue, theState] = this.getState(stateProp, true);\n if (stateValue === Symbol.for(SYMBOL_NAMES.STATE_NOT_FOUND)) {\n throw Error(`updateStateFromAttribute: State property ${stateProp} not found`);\n }\n if (stateValue !== newValue) {\n theState[stateProp] = newValue;\n }\n }\n\n activate() {\n super.activate();\n\n\n this.#changeEventHandler = function() {\n const changeEvent = new Event('inputChange', { bubbles: true, composed: true });\n // Because of bubbling, the handler can trigger on non-input elements as well\n if (this.type === \"checkbox\") {\n const stateManager = this.host.state._stateManager;\n // This is a map where keys are elements, and values are \"checked\" State attribute nodes\n const checkedStateAttributeNodesMap = stateManager.nodeManager.bindableAttributesStateNodes.get(\"checked\");\n let checkedAttributeNode = null;\n if (checkedStateAttributeNodesMap.has(this)) {\n checkedAttributeNode = checkedStateAttributeNodesMap.get(this);\n }\n\n if (this.checked) {\n if (!checkedAttributeNode) checkedAttributeNode = document.createAttribute(\"checked\");\n this.setAttributeNode(checkedAttributeNode);\n }\n else {\n if (!checkedAttributeNode) checkedAttributeNode = this.getAttributeNode(\"checked\");\n if (checkedAttributeNode) this.removeAttributeNode(checkedAttributeNode);\n }\n }\n this.dispatchEvent(changeEvent);\n }\n /*\n this.#inputEventHandler = function() {\n const changeEvent = new Event('inputChange', { bubbles: true, composed: true });\n // Because of bubbling, the handler can trigger on non-input elements as well\n if (this.tagName === \"INPUT\") {\n if (this.type === \"text\") {\n const stateManager = this.host.state._stateManager;\n // This is a map where keys are elements, and values are \"checked\" State attribute nodes\n const valueStateAttributeNodesMap = stateManager.nodeManager.bindableAttributesStateNodes.get(\"value\");\n let valueAttributeNode = null;\n if (valueStateAttributeNodesMap.has(this)) {\n valueAttributeNode = StateAttributeNodesMap.get(this);\n }\n if (this.checked) {\n if (!checkedAttributeNode) checkedAttributeNode = document.createAttribute(\"checked\");\n this.setAttributeNode(checkedAttributeNode);\n }\n else {\n if (!checkedAttributeNode) checkedAttributeNode = this.getAttributeNode(\"checked\");\n if (checkedAttributeNode) this.removeAttributeNode(checkedAttributeNode);\n }\n }\n }\n this.dispatchEvent(changeEvent);\n }\n */\n // Change events does not automatically bubble, we need to listen and bubble up a new event\n this.addEventListener('change', this.#changeEventHandler, false);\n /*\n if (Object.hasOwn(this.boundNativePropertiesToState, \"value\")) {\n this.#inputEventHandler = function() {\n const inputEvent = new Event('inputValue', { bubbles: true, composed: true });\n if (Object.hasOwn(this.boundNativePropertiesToState, \"value\")) {\n this.updateStateFromNativeProperty(\"value\");\n }\n this.dispatchEvent(inputEvent);\n }\n this.addEventListener('input', this.#inputEventHandler, false);\n }\n */\n\n /*\n switch (this.type) {\n case \"text\": {\n this.#inputValueSetter = Object.getOwnPropertyDescriptor(appScope.window.HTMLInputElement.prototype, \"value\").set;\n break;\n }\n case \"checkbox\": {\n this.#inputCheckedSetter = Object.getOwnPropertyDescriptor(appScope.window.HTMLInputElement.prototype, \"checked\").set;\n break;\n }\n }\n */\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n if (this.#changeEventHandler) this.removeEventListener(\"change\", this.#changeEventHandler);\n // if (this.#inputEventHandler) removeEventListener(\"input\", this.#inputEventHandler);\n this.boundAttributesToState.clear();\n }\n\n attributeChangedCallback(attributeName, oldValue, newValue) {\n if (!STRICT) {\n if (attributeName.indexOf(':') === 0) {\n console.warn(\"State attributes should never be changed explicitely!\");\n return false;\n }\n }\n super.attributeChangedCallback(...arguments);\n // These are attributes which their value should automatically \n // change on a property as well\n if (AUTO_ATTRIBUTES_TO_PROPS.has(attributeName)) {\n const newPropValue = fromAttributeValue(newValue);\n if (this[attributeName] !== newPropValue) {\n this[attributeName] = newPropValue;\n }\n }\n if (this.boundAttributesToState.has(attributeName)) {\n this.updateStateFromAttribute(attributeName)\n }\n }\n }\n\n return ReactiveInputElement;\n }\n}\n","import { isReactiveCustomElement } from \"./ReactiveElement\";\n\nexport function isElementAList(element) {\n return element.tagName === \"OL\" || element.tagName === \"UL\";\n}\n\nexport function isElementAListItem(element) {\n return element.tagName === \"LI\";\n}\n\nexport function getCustomElementFromMappedElement(element) {\n if (isReactiveCustomElement(element)) return element;\n if (isReactiveCustomElement(element.firstElementChild)) return element.firstElementChild;\n}\n","import { NODES_STATE, \n MAX_OPERATIONS_PER_ANIMATION_FRAME, \n MAX_DOM_ACTIONS_PER_FRAME,\n FRAME_BUDGET\n} from \"./consts\";\n\n\nconst { nodeActionsMap } = NODES_STATE;\nconst { pendingPaintNodeManagers } = NODES_STATE;\n\n// Maps \"TYPE\" strings to rAF ids\n// TYPE is the type of task the functions handle,\n// we only save for each type the rAF ID - \n// because we only use it to cancel the rAF -\n// and request a new one, in case the old one hasn't run yet (debounce)\nconst rafIds = new Map();\n\nexport function queueAnimationFrame(functionsToRun, type, afterRunFn) {\n let rafId;\n if (rafIds.has(type)) {\n rafId = rafIds.get(type);\n cancelAnimationFrame(rafId);\n }\n\n if (functionsToRun.length < MAX_OPERATIONS_PER_ANIMATION_FRAME) {\n rafId = requestAnimationFrame(()=> {\n rafIds.delete(type);\n functionsToRun.forEach(fn=> fn());\n if (afterRunFn) afterRunFn();\n });\n rafIds.set(type, rafId);\n }\n else {\n rafIds.delete(type);\n const functions = [...functionsToRun];\n let functionsIndex = 0;\n function runNextBatch() {\n const functionsBatch = functions.slice(functionsIndex, functionsIndex + MAX_OPERATIONS_PER_ANIMATION_FRAME);\n functionsBatch.forEach(fn=> fn());\n functionsIndex += MAX_OPERATIONS_PER_ANIMATION_FRAME;\n if (functionsIndex < functions.length) requestAnimationFrame(runNextBatch);\n }\n requestAnimationFrame(runNextBatch);\n }\n}\n\nlet { \n paintRafId,\n eventBindingFunctions,\n stateActivates,\n conditionalRenders,\n} = NODES_STATE; \n\nexport function queueBindEvents(element, bindFunction) {\n eventBindingFunctions.set(element, bindFunction);\n queueAnimationFrame(\n Array.from(eventBindingFunctions.values()), \n \"EVENTS_BIND\",\n ()=> eventBindingFunctions.clear()\n );\n}\nexport function queueConditionalRender(element, renderFunction) {\n conditionalRenders.set(element, renderFunction);\n queueAnimationFrame(\n Array.from(conditionalRenders.values()), \n \"CONDITIONAL_RENDER\",\n ()=> conditionalRenders.clear()\n );\n}\nexport function queuePaint() {\n if (paintRafId) cancelAnimationFrame(paintRafId);\n paintRafId = requestAnimationFrame(()=> {\n paintRafId = null;\n doUpdateDOM();\n });\n}\n\n// For debugging purposes\nexport function logNodeActions() {\n [...nodeActionsMap.entries()]\n .map(([node, actions])=> {\n switch (node.nodeType) {\n case Node.ELEMENT_NODE: {\n console.log (\"Actions for\", node);\n const appendElements = [...actions.append.values()];\n if (appendElements.length) {\n console.log(\"Append\", appendElements);\n }\n const setProperty = [...actions.setProperty.entries()];\n if (replaceElements.length) {\n console.log(\"Set property\", setProperty);\n }\n console.log (\"Reattach? \", actions.reattach);\n break;\n }\n\n case Node.ATTRIBUTE_NODE: {\n console.log (\"Set Attribute\", node.nodeName, \"on\", node.originalOwnerElement, \"to\", actions.setAttribute);\n break;\n }\n\n case Node.TEXT_NODE: {\n console.log (\"Set text content for\", node.parentNode, \"to\", actions.textContent);\n break;\n }\n }\n });\n}\n\n// actions are DOM API functions\n/*\nfunction runDOMActions(actions, max=1000) {\n const runActions = actions.splice(0, max);\n runActions.forEach(action=> action());\n}\n*/\nfunction runDOMActions(actions) {\n actions.forEach(action=> action());\n}\n\n// This function runs on requestAnimationFrame to run pending Node actions\n// Usually DOMActions is not passed and the DOM actions are taken from the global nodeActionsMap\n// But if DOMActions is passed (as an array of separated actions by type) -\n// then the function handles them instead - this is used when \"time slicing\",\n// i.e. if an animation frame had too many actions to handle in one frame, it is deferred to the next frame\n/*\nexport function doUpdateDOM(DOMActions) {\n let attributeActions,\n textActions,\n propertySetActions,\n elementActions,\n reattachActions;\n\n if (DOMActions && DOMActions.length) {\n [attributeActions, textActions, propertySetActions, elementActions, reattachActions] = DOMActions;\n }\n else {\n // Immediately clone current global nodleActionsMap,\n // to avoid race conditions (doUpdateDOM is called async)\n const thisNodeActionsMap = new Map(nodeActionsMap);\n nodeActionsMap.clear();\n if (thisNodeActionsMap.size) {\n logNodeActions();\n [attributeActions, textActions, propertySetActions, elementActions, reattachActions] = resolveNodeActionsMapToDOMActions(thisNodeActionsMap);\n }\n }\n\n performance.mark(\"todo-run-DOM-actions-start\");\n runDOMActions(attributeActions, MAX_DOM_ACTIONS_PER_FRAME.ATTRIBUTE_ACTIONS);\n runDOMActions(textActions, MAX_DOM_ACTIONS_PER_FRAME.TEXT_ACTIONS);\n runDOMActions(propertySetActions, MAX_DOM_ACTIONS_PER_FRAME.ELEMENT_ACTIONS);\n runDOMActions(elementActions, MAX_DOM_ACTIONS_PER_FRAME.PROPERTY_ACTIONS);\n runDOMActions(reattachActions, MAX_DOM_ACTIONS_PER_FRAME.REATTACH_ACTIONS);\n performance.mark(\"todo-run-DOM-actions-finish\");\n\n const deferredActions = [];\n if (attributeActions.length) deferredActions.push(attributeActions);\n if (textActions.length) deferredActions.push(textActions);\n if (propertySetActions.length) deferredActions.push(propertySetActions);\n if (elementActions.length) deferredActions.push(elementActions);\n if (reattachActions.length) deferredActions.push(reattachActions);\n\n if (deferredActions.length) {\n console.log (`DEFERRED ${deferredActions.length}`);\n requestAnimationFrame(()=> doUpdateDOM(deferredActions));\n }\n}\n*/\n\nexport function doUpdateDOM(pendingNodeManagers) {\n const start = performance.now();\n let frameElapsed = 0;\n\n for (const nodeManager of pendingPaintNodeManagers) {\n const [attributeActions, textActions, propertySetActions, elementActions, reattachActions] = nodeManager.resolveToDOMActions();\n console.log (\"Running reattach\");\n runDOMActions(reattachActions.slice(0, MAX_DOM_ACTIONS_PER_FRAME.REATTACH_ACTIONS));\n frameElapsed = performance.now() - start;\n console.log (\"took: \", frameElapsed);\n if (frameElapsed > FRAME_BUDGET ) {\n return requestAnimationFrame(()=> doUpdateDOM());\n }\n\n console.log (\"Running elements\");\n\n runDOMActions(elementActions.slice(0, MAX_DOM_ACTIONS_PER_FRAME.ELEMENT_ACTIONS));\n frameElapsed = performance.now() - start;\n if (frameElapsed > FRAME_BUDGET) {\n return requestAnimationFrame(()=> doUpdateDOM());\n }\n console.log (\"took: \", frameElapsed);\n\n console.log (\"Running attributes\");\n runDOMActions(attributeActions.slice(0, MAX_DOM_ACTIONS_PER_FRAME.ATTRIBUTE_ACTIONS));\n frameElapsed = performance.now() - start;\n\n if (frameElapsed > FRAME_BUDGET) {\n return requestAnimationFrame(()=> doUpdateDOM());\n }\n\n console.log (\"Running text\");\n runDOMActions(textActions.slice(0, MAX_DOM_ACTIONS_PER_FRAME.TEXT_ACTIONS));\n frameElapsed = performance.now() - start;\n if (frameElapsed > FRAME_BUDGET) {\n return requestAnimationFrame(()=> doUpdateDOM());\n }\n\n runDOMActions(propertySetActions.slice(0, MAX_DOM_ACTIONS_PER_FRAME.PROPERTY_ACTIONS));\n frameElapsed = performance.now() - start;\n if (frameElapsed > FRAME_BUDGET) {\n return requestAnimationFrame(()=> doUpdateDOM());\n }\n\n if (attributeActions.length ||\n textActions.length || \n propertySetActions.length || \n elementActions.length || \n reattachActions.length) {\n return requestAnimationFrame(()=> doUpdateDOM());\n }\n nodeManager.paintStatus = null;\n pendingPaintNodeManagers.delete(nodeManager);\n console.log (\"Took \", performance.now() - start);\n }\n if (frameElapsed > FRAME_BUDGET ) {\n return requestAnimationFrame(()=> doUpdateDOM());\n }\n\n /*\n performance.mark(\"todo-run-DOM-actions-start\");\n runDOMActions(attributeActions);\n runDOMActions(textActions);\n runDOMActions(propertySetActions);\n runDOMActions(elementActions);\n runDOMActions(reattachActions);\n performance.mark(\"todo-run-DOM-actions-finish\");\n\n const deferredActions = [];\n if (attributeActions.length) deferredActions.push(attributeActions);\n if (textActions.length) deferredActions.push(textActions);\n if (propertySetActions.length) deferredActions.push(propertySetActions);\n if (elementActions.length) deferredActions.push(elementActions);\n if (reattachActions.length) deferredActions.push(reattachActions);\n\n if (deferredActions.length) {\n console.log (`DEFERRED ${deferredActions.length}`);\n requestAnimationFrame(()=> doUpdateDOM(deferredActions));\n }\n */\n}\n\n// Test/utility: wait until there are no pending paint node managers\nexport function waitForIdle() {\n return new Promise((resolve) => {\n function check() {\n if (!NODES_STATE.pendingPaintNodeManagers.size) return resolve();\n requestAnimationFrame(check);\n }\n requestAnimationFrame(check);\n });\n}\n\n// Expose on global for tests\nif (typeof window !== 'undefined') {\n window.SproutWaitIdle = waitForIdle;\n}\n\n/*\nconst start = performance.now();\nconst FRAME_BUDGET = 8; // leave room for other work\n\nwhile (pendingUpdates.length) {\n const update = pendingUpdates.shift();\n update.applyDOMOps();\n\n if (performance.now() - start > FRAME_BUDGET) {\n requestAnimationFrame(flushPendingUpdates);\n return;\n }\n}\n */\n","import { stateToElement, mapStateArrayToElements } from \"../shared/state_utils.js\";\nimport { getCustomElementFromMappedElement, isElementAList, isElementAListItem } from \"./DOM_utils.js\";\nimport { queuePaint, queueConditionalRender } from \"../shared/paint_utils.js\";\nimport { NODES_STATE } from \"../shared/consts.js\";\nimport { getStateMapArrayIterator } from \"./StateMapArray.js\";\n\nconst { nodeActionsMap } = NODES_STATE;\nconst { pendingPaintNodeManagers } = NODES_STATE;\nfunction getNodeActionsForNode(node) {\n if (!nodeActionsMap.has(node)) nodeActionsMap.set(node, getNewNodeActionsObject(node.nodeType));\n const nodeActions = nodeActionsMap.get(node);\n return nodeActions;\n}\n\nexport function setStateNodeValueAction(nodeManager, node, value) {\n if (node.nodeType === Node.ATTRIBUTE_NODE) {\n nodeManager.addNodeAction(node, {actionType: \"setAttribute\", actionValue: value} );\n }\n else if (node.nodeType === Node.TEXT_NODE) {\n nodeManager.addNodeAction(node, {actionType: \"textContent\", actionValue: value} );\n }\n}\n\n// stateIdentifier can be a State object (for state maps),\n// or a State property (for conditionally rendered elements)\nexport function addAppendAction(nodeActions, nodeToAppend) {\n nodeActions.append.add(nodeToAppend);\n}\n\n// For a \"detached\" node - set it to reattach back to its parent\n// As of May 2025 - this is implemented using display: none, and then changing back to the original display\nexport function setReattachAction(node) {\n const nodeActions = getNodeActionsForNode(node);\n nodeActions.reattach = true;\n}\n\n// This is an object used to represent pending node actions,\n// that are batched and executed in reflows (requestAnimationFrame)\nexport function getNewNodeActionsObject(nodeType) {\n\n switch (nodeType) {\n case Node.ATTRIBUTE_NODE: {\n return {\n setAttribute: undefined\n }\n }\n\n case Node.TEXT_NODE: {\n return {\n textContent: undefined\n } \n }\n\n case Node.ELEMENT_NODE: {\n return {\n // Nodes to append to the end of node's children, \n append: new Set(),\n // A single operation, reattach to original parent element, after detachment, if true\n reattach: false,\n // Set values for native properties (this is here, because it can be related to rendering, e.g. checked, value)\n setProperty: new Map(),\n get hasPendingActions() {\n return (\n this.append.size ||\n this.reattach ||\n this.setProperty.size\n );\n }\n }\n }\n }\n}\n\nfunction reconcileStateMapElement(stateMapArray, customElementName, parentElement, stateManager) {\n console.log (\"[RECONCILE] LAST OPERATION:\", stateMapArray.lastOperation);\n // If needed - the parent element will be detached,\n // so DOM changes to it will not be made on the main tree,\n // It will be reattached back reshaped, as a deferred functions (like all other DOM functions)\n let detachedParentElement = null;\n let mappedElementChange = false;\n const isParentList = isElementAList(parentElement);\n const replacedChildren = new Map();\n\n const refName = parentElement.getAttribute && parentElement.getAttribute('ref') || parentElement.refName || parentElement.tagName;\n const asState = (it)=> Object.hasOwn(it, 'state') ? it.state : it;\n const expectedItems = stateMapArray.map(asState);\n const keyOfChild = (el)=> {\n const st = isParentList ? el.firstElementChild?.state : el.state;\n return st ? st.key : el.stateKey;\n }\n const labelOfChild = (el)=> {\n const st = isParentList ? el.firstElementChild?.state : el.state;\n return st ? st.label : undefined;\n }\n\n try {\n console.log (\n `[RECONCILE] before (ref=${refName}), EXPECTED KEYS:`,\n expectedItems.map(it=> it?.key),\n 'EXISTING KEYS',\n [...parentElement.children].map(keyOfChild),\n 'EXPECTED LABELS',\n expectedItems.map(it=> it?.label),\n 'EXISTING LABELS',\n [...parentElement.children].map(labelOfChild)\n );\n } catch(_) {}\n // A whole new array\n if (stateMapArray.isNewArray) {\n if (stateMapArray.length) {\n mappedElementChange = true;\n detachedParentElement = parentElement.detach();\n const wrapInElement = isParentList ? \"li\" : undefined;\n const elements = mapStateArrayToElements(stateMapArray, customElementName, wrapInElement, detachedParentElement);\n detachedParentElement.innerHTML = '';\n detachedParentElement.append(...elements);\n }\n }\n else {\n // Last array method called is saved\n if (stateMapArray.lastOperation) {\n mappedElementChange = true;\n if (!detachedParentElement) detachedParentElement = parentElement.detach();\n const children = detachedParentElement.children;\n const [operation, args] = stateMapArray.lastOperation;\n switch (operation) {\n case \"shift\": {\n detachedParentElement.removeChild(detachedParentElement.firstElementChild);\n break;\n }\n case \"unshift\": {\n // arg1 represents the number of elements prepended\n // The elements prepended are already at the start of the State Array\n const prependLength = args[0];\n // Prepend in reverse to preserve order at the head\n for (let i = prependLength - 1; i >= 0; i--) {\n const stateItem = stateMapArray[i];\n // If an element with this key already exists, move it to the head\n const existing = detachedParentElement.keyMap?.get(stateItem.key);\n if (existing) {\n const first = detachedParentElement.firstElementChild;\n if (existing !== first) {\n // Move existing node to the head to preserve identity\n detachedParentElement.insertBefore(existing, first);\n }\n } else {\n const newChild = stateToElement(stateItem, customElementName, isParentList ? \"li\" : undefined, detachedParentElement);\n // Ensure key is available before child activation\n newChild.stateKey = stateItem.key;\n detachedParentElement.prepend(newChild);\n }\n }\n break;\n }\n case \"pop\": {\n detachedParentElement.removeChild(detachedParentElement.lastElementChild);\n break;\n }\n\n case \"push\": {\n // args[0] is count of pushed items, not the previous length.\n // The previous length equals current children count on the detached parent.\n const startIndex = children.length;\n for (let i=startIndex, len=stateMapArray.length; i<len; i++) {\n const stateItem = stateMapArray[i];\n const newChild = stateToElement(stateItem, customElementName, isParentList ? \"li\" : undefined, detachedParentElement);\n // Ensure key is available before child activation\n newChild.stateKey = stateItem.key;\n detachedParentElement.appendChild(newChild);\n }\n break;\n }\n\n // splice(start, deleteCount, item1, item2, /* …, */ itemN)\n // Delete arg2 items from arg1,\n // arg3 can be an array of items, to replace from index arg1\n\n \n case \"splice\": {\n // Normalize start and deleteCount against current children length\n const currentLen = children.length;\n const rawStart = args[0] ?? 0;\n const rawDelete = args[1];\n let startIndex =\n rawStart < 0 ? Math.max(currentLen + rawStart, 0) : Math.min(rawStart, currentLen);\n let deleteCount;\n if (typeof rawDelete === \"undefined\" || rawDelete === Infinity) {\n deleteCount = currentLen - startIndex;\n } else if (rawDelete < 0) {\n deleteCount = 0;\n } else {\n deleteCount = Math.min(rawDelete, currentLen - startIndex);\n }\n // If this is a pure delete and DOM already matches expected length, skip (idempotent)\n const itemsToInsert = args[2] || [];\n const expectedLen = stateMapArray.length;\n if (itemsToInsert.length === 0 && currentLen === expectedLen) {\n break;\n }\n // If this is a full-replace splice and DOM already at expected length, skip (idempotent)\n const isFullReplace = (startIndex === 0 && deleteCount >= currentLen && itemsToInsert.length === expectedLen);\n if (isFullReplace && currentLen === expectedLen) {\n break;\n }\n\n // Delete exactly deleteCount nodes starting at startIndex\n // Use fixed index because children is live and shrinks on each removal\n for (let k = 0; k < deleteCount; k++) {\n detachedParentElement.removeChild(children[startIndex]);\n }\n\n // 2) Insert new items (if any) at startIndex — do not replace\n for (const item of itemsToInsert) {\n const stateItem = item;\n const newChild = stateToElement(\n stateItem,\n customElementName,\n isParentList ? \"li\" : undefined,\n detachedParentElement\n );\n const refNode = children[startIndex] ?? null; // null => append at end\n detachedParentElement.insertBefore(newChild, refNode);\n startIndex++;\n }\n break;\n }\n }\n }\n else {\n // Normal path: index-based reordering for stability across permutations\n const parentKeyMap = parentElement?.keyMap;\n const container = detachedParentElement ?? parentElement;\n\n for (let i = 0; i < expectedItems.length; i++) {\n const expected = expectedItems[i];\n const expectedKey = expected?.key;\n const currentChild = container.children[i];\n if (!currentChild) break;\n\n const currentState = isParentList ? currentChild.firstElementChild?.state : currentChild.state;\n const currentKey = currentState ? currentState.key : currentChild.stateKey;\n\n try { console.log(`[RECONCILE][normal] ref=${refName} idx=${i} have=${currentKey} want=${expectedKey} action=${currentKey===expectedKey?'keep':'move'}`); } catch(_) {}\n if (currentKey === expectedKey) {\n // Same key (identity) at this position; if the derived state object instance changed,\n // refresh the child so content reflects the new state while preserving identity.\n if (currentState !== expected) {\n mappedElementChange = true;\n if (!detachedParentElement) detachedParentElement = parentElement.detach();\n const newChild = stateToElement(expected, customElementName, isParentList ? \"li\" : undefined, detachedParentElement);\n newChild.stateKey = expectedKey;\n detachedParentElement.replaceChildWith(currentChild, newChild);\n try { console.log(`[RECONCILE][normal] ref=${refName} idx=${i} refresh key=${expectedKey}`); } catch(_) {}\n }\n continue;\n }\n\n mappedElementChange = true;\n if (!detachedParentElement) detachedParentElement = parentElement.detach();\n\n // Prefer previously displaced element; fall back to keyMap lookup\n let elementToPut = replacedChildren.get(expectedKey) ?? parentKeyMap.get(expectedKey);\n if (elementToPut) {\n // Place the element at the current index\n const replacedChild = detachedParentElement.replaceChildWith(currentChild, elementToPut);\n replacedChildren.set(currentKey, replacedChild);\n try { console.log(`[RECONCILE][normal] ref=${refName} idx=${i} move via=${replacedChildren.has(expectedKey)?'replaced':'keyMap'}`); } catch(_) {}\n\n // If the element we placed has the same key but outdated content (state instance), refresh it in place\n const elemState = isParentList ? elementToPut.firstElementChild?.state : elementToPut.state;\n if (elemState !== expected) {\n const refreshed = stateToElement(expected, customElementName, isParentList ? \"li\" : undefined, detachedParentElement);\n refreshed.stateKey = expectedKey;\n detachedParentElement.replaceChildWith(elementToPut, refreshed);\n try { console.log(`[RECONCILE][normal] ref=${refName} idx=${i} refresh-in-place key=${expectedKey}`); } catch(_) {}\n }\n } else {\n const newChild = stateToElement(expected, customElementName, isParentList ? \"li\" : undefined, detachedParentElement);\n newChild.stateKey = expectedKey;\n detachedParentElement.replaceChildWith(currentChild, newChild);\n try { console.log(`[RECONCILE][normal] ref=${refName} idx=${i} create key=${expectedKey}`); } catch(_) {}\n }\n }\n\n // Remove any leftover children beyond expected length\n while ((detachedParentElement ?? parentElement).children.length > expectedItems.length) {\n mappedElementChange = true;\n if (!detachedParentElement) detachedParentElement = parentElement.detach();\n detachedParentElement.removeChild((detachedParentElement ?? parentElement).lastElementChild);\n }\n }\n }\n\n const numChildren = detachedParentElement ? detachedParentElement.children.length : parentElement.children.length;\n if (stateMapArray.length > numChildren) {\n mappedElementChange = true;\n if (!detachedParentElement) detachedParentElement = parentElement.detach();\n for (let index=detachedParentElement.children.length;index<stateMapArray.length;index++) {\n const state_Item = stateMapArray[index];\n // Avoid appending duplicates if an item with this key is already present after previous moves\n if (detachedParentElement.keyMap?.has(state_Item.key)) continue;\n let newChild;\n if (replacedChildren.has(state_Item.key)) {\n newChild = replacedChildren.get(state_Item.key);\n }\n else {\n newChild = stateToElement(state_Item, customElementName, isParentList ? \"li\" : undefined, detachedParentElement);\n }\n // Ensure key is available before child activation\n newChild.stateKey = state_Item.key;\n detachedParentElement.appendChild(newChild);\n }\n }\n\n const container = detachedParentElement ?? parentElement;\n try {\n console.log (\n `[RECONCILE] after (ref=${refName}), EXPECTED KEYS:`,\n expectedItems.map(it=> it?.key),\n 'EXISTING KEYS',\n [...container.children].map(keyOfChild),\n 'EXPECTED LABELS',\n expectedItems.map(it=> it?.label),\n 'EXISTING LABELS',\n [...container.children].map(labelOfChild)\n );\n } catch(_) {}\n\n if (mappedElementChange) {\n stateManager.nodeManager.addNodeAction(detachedParentElement, { actionType: \"reattach\", actionValue: true })\n }\n}\n\n\n// This *updates*/*\"fills\"* the nodeActionsMap!\nexport function generateStateNodeActions(stateManager, stateProp, newValue) {\n const value = newValue; //stateManager.state[stateProp];\n if (stateProp === \"todosFiltered\") {\n performance.mark(\"todo-generate-node-actions\");\n }\n\n const stateNodes = stateManager.nodeManager.stateNodes[stateProp];\n // This is a map, where keys are \"parent elements\" containing \n // custom element instanced created from a state array (\"state map\").\n // The values are the custom element name. \n // The actual array of state objects is in state[stateProp]\n const stateMapElements = stateManager.stateArrayMaps[stateProp];\n const conditionallyRenderingElements = stateManager.nodeManager.conditionallyRenderingElements[stateProp];\n\n // Note, since the value change is handled by a custom setter - that setter checks if the set value is the same - \n // if it is - it won't call , and it won't reach here.\n if (stateNodes) {\n stateNodes.forEach(node=> {\n setStateNodeValueAction(stateManager.nodeManager, node, value);\n });\n }\n\n if (stateMapElements) {\n // An array of State objects, \n // each equalivent to a custom element created \"from\" it\n const stateMapArray = value;\n\n console.log (\"Reconcile state map, for: \" + stateProp);\n stateMapElements.forEach((customElementName, parentElement)=> {\n reconcileStateMapElement(stateMapArray, customElementName, parentElement, stateManager);\n });\n }\n\n if (conditionallyRenderingElements) {\n conditionallyRenderingElements.forEach(element=> {\n queueConditionalRender(this, element.render.bind(this));\n });\n }\n\n if (stateManager.nodeManager.paintStatus === \"pending\") {\n stateManager.nodeManager.queuePaint();\n }\n /*\n // If there are Node Actions (which translates to DOM actions), queue repaint\n if (nodeActionsMap.size) {\n queuePaint();\n }\n */\n}\n\n// Translates/maps Node Actions to actual DOM operations\nexport function resolveNodeActionsMapToDOMActions(nodeActionsMap) {\n const attributeActions = [];\n const textActions = [];\n const elementActions = [];\n const reattachActions = [];\n const propertySetActions = [];\n\n nodeActionsMap.forEach((nodeActions, node)=> {\n switch (node.nodeType) {\n case Node.ATTRIBUTE_NODE: {\n const value = nodeActions.setAttribute;\n const typeOfValue = typeof value;\n if (typeOfValue !== 'undefined') {\n if (typeOfValue === \"boolean\") {\n if (!node.hasOwnProperty(\"originalOwnerElement\")) {\n throw Error(\"originalOwnerElement not found on boolean attribute node! Should never happen!\");\n }\n if (value === false) {\n // Remove attribute if it exists, otherwise - do nothing\n if (node.originalOwnerElement.hasAttribute(node.name)) {\n attributeActions.push(()=> {\n node.originalOwnerElement.removeAttributeNode(node);\n });\n }\n }\n // state changed to true\n else {\n if (!node.originalOwnerElement.hasAttribute(node.name)) {\n attributeActions.push(()=> {\n node.originalOwnerElement.setAttributeNode(node);\n });\n }\n }\n }\n else {\n if (typeOfValue === \"string\" && node.nodeValue !== value) {\n attributeActions.push (()=> node.nodeValue = value);\n }\n }\n }\n break;\n }\n\n case Node.TEXT_NODE: {\n if (nodeActions.textContent !== undefined) {\n const value = String(nodeActions.textContent);\n if (node.nodeValue !== value) {\n textActions.push (()=> node.nodeValue = value);\n }\n }\n break;\n }\n\n case Node.ELEMENT_NODE: {\n // Append\n for (const newChildElement of nodeActions.append.values()) {\n elementActions.push(()=> node.appendChild(newChildElement));\n }\n\n // setProperty\n for (const [key, value] of nodeActions.setProperty) {\n if (node[key] !== value) {\n propertySetActions.push(()=> node[key] = value)\n }\n }\n // Reattach\n if (nodeActions.reattach) {\n reattachActions.push(()=> node.reattach());\n if (node?.pendingKeyMapActions?.size) {\n reattachActions.push(()=> {\n for (const keyMapAction of node.pendingKeyMapActions) {\n keyMapAction();\n }\n node.pendingKeyMapActions.clear();\n });\n }\n nodeActions.reattach = false;\n }\n }\n break;\n }\n });\n\n return [attributeActions, textActions, propertySetActions, elementActions, reattachActions ];\n}\n","\n// Sets an internal read-only property. \"hidden\" (non-enumerable) by default\nexport function setHiddenProperty(obj, propName, propValue, enumerable=false) {\n Object.defineProperty(obj, propName, {\n value: propValue,\n configurable: false,\n writable: true,\n enumerable,\n });\n}","import { BUILT_IN_STATE_PROPS, SYMBOL_NAMES } from \"./consts.js\";\nimport { generateStateNodeActions } from '../core/node_actions.js';\nimport { setHiddenProperty } from \"./prop_utils.js\";\nimport { isBooleanAttribute } from \"../core/attr_utils.js\";\nimport { callSetterHook } from \"../Cougar/state_utils.js\";\nimport { parseStateExpression } from \"./parse_utils.js\";\n\nif (typeof HTMLElement === 'undefined') {\n if (!STRICT) {\n console.warn (\"HTMLElement was not found! This probably means you are running in a non-browser environment, and can lead to unexpected results\");\n }\n}\nelse {\n // Make sure \"setAttribute\" is not overridable\n Object.defineProperty(globalThis, \"elementSetAttribute\", {\n value: HTMLElement.prototype.setAttribute,\n writable: false,\n configurable: false\n });\n}\n\nexport const setAttribute = function(attrName, attrValue) {\n if (isBooleanAttribute(attrName)) {\n if (attrValue === \"false\") {\n this.removeAttribute(attrName);\n }\n else {\n elementSetAttribute.call(this, attrName, \"\");\n }\n }\n else {\n elementSetAttribute.call(this, attrName, attrValue);\n }\n}\n\n// This creates the binding to state props on \"State attributes\".\n// This function is called when a custom element instance ic connected to the DOM\nexport const setStateAttribute = function(attrName, statePropExpression) {\n const [type, ...args] = parseStateExpression(statePropExpression);\n const stateProp = args[0];\n const [stateVal, theState] = this.getState(stateProp, true); \n if (!STRICT) {\n if (stateVal === Symbol.for(SYMBOL_NAMES.STATE_NOT_FOUND)) {\n console.warn(`State value for ${stateProp} is undefined. State values should never be undefined.`)\n return;\n }\n if (!theState) {\n console.warn (\"No State object with state prop: \" + stateProp);\n return;\n }\n }\n\n const stateManager = theState._stateManager;\n const valueToSet = type === \"literal\" ? stateVal : stateManager.bindStatePropExpression(statePropExpression, type, args);\n\n this.removeAttribute(attrName);\n // Create an \"Attribute Node\"\n const stateAttrNode = document.createAttribute(attrName);\n stateAttrNode.nodeValue = valueToSet;\n // Saves a readonly boolean that marks this as a \"state attribute node\"\n setHiddenProperty(stateAttrNode, \"isStateAttribute\", true);\n // Save ownerElement to a different property,\n // so if the attribute is removed (in case of a boolean attribute),\n // and later re-attached, we would know which element to add it back to.\n setHiddenProperty(stateAttrNode, \"originalOwnerElement\", this);\n if (typeof valueToSet === \"boolean\") {\n // A boolean attribute value should ALWAYS be an empty string,\n // the value itself never changes, it is removed fron the element if false, \n // and added if true\n stateAttrNode.nodeValue = \"\";\n }\n\n stateManager.addStateNode(statePropExpression, stateAttrNode);\n\n // Adds the attribute to the element\n if (valueToSet !== false) {\n this.setAttributeNode(stateAttrNode);\n }\n this.addEventListener(\"disconnected\",()=> {\n theState._stateManager.removeStateNode(statePropExpression, stateAttrNode);\n }, { once: true})\n}\n\nexport const setStateText = function(statePropExpression) {\n const [type, ...args] = parseStateExpression(statePropExpression);\n const stateProp = args[0];\n const [stateVal, theState] = this.getState(stateProp, true); \n if (!STRICT) {\n if (stateVal === Symbol.for(SYMBOL_NAMES.STATE_NOT_FOUND)) {\n console.warn(`State value for ${stateProp} is undefined. State values should never be undefined.`)\n return;\n }\n if (!theState) {\n console.warn (\"No State object with state prop: \" + stateProp);\n return;\n }\n }\n const stateManager = theState._stateManager;\n const valueToSet = type === \"literal\" ? stateVal : stateManager.bindStatePropExpression(statePropExpression, type, args);\n const textNode = document.createTextNode(valueToSet);\n setHiddenProperty(textNode, \"isStateAttribute\", true);\n theState._stateManager.addStateNode(statePropExpression, textNode);\n this.appendChild(textNode);\n this.addEventListener(\"disconnected\",()=> {\n theState._stateManager.removeStateNode(statePropExpression, textNode);\n }, { once: true})\n}\n\n// Convert a stateObject to a custom element, used in State Map Arrays\nexport function stateToElement(stateObject, elemName, wrapInElement, ownerMapElement) {\n const customElementInstance = document.createElement(elemName);\n customElementInstance.setInitialState(stateObject);\n customElementInstance.ownerMapElement = ownerMapElement;\n let returnElement;\n if (wrapInElement) {\n returnElement = document.createElement(wrapInElement);\n returnElement.appendChild(customElementInstance);\n }\n else {\n returnElement = customElementInstance;\n }\n if (stateObject.hasOwnProperty(\"key\") && !returnElement.hasOwnProperty(\"stateKey\")) {\n returnElement.stateKey = stateObject.key;\n }\n return returnElement;\n}\n\nexport function mapStateArrayToElements(stateItems, elemName, wrapInElement, parentElement) {\n\n // the double underscore '__' skips the \"supercharging\" of native operations, and just runs it as is\n const mappedElements = stateItems.map((stateItem, index) => {\n if (Object.hasOwn(stateItem, 'state')) stateItem = stateItem.state;\n if (!STRICT) {\n if (typeof stateItem !== 'object') {\n console.warn(\"item in State array for _map is not an object: \", stateItem);\n return {};\n }\n if (!Object.hasOwn(stateItem, 'key')) {\n console.warn(\"State object in elements map has no 'key' property. Adding automatically per index. This can have unexpected results on mutations!\")\n stateItem.key = index;\n }\n }\n const element = stateToElement(stateItem, elemName, wrapInElement, parentElement);\n\n // We do this because during state map element reconcilation -\n // there CAN be a situation where a child custom element is NOT active yet,\n // therefor its state won't be accesible yet. (This happened in todo-list-src)\n // So we also save it here so it could use it.\n element.stateKey = stateItem.key;\n\n return element;\n });\n\n return mappedElements;\n}\n\n// Main function that handles all state changes in a state object\nexport function handleStateChange(stateManager, stateProp, changedValue) {\n if (isBuiltInStateProp(stateProp)) return;\n console.log (\"Handling state change for: \" + stateProp);\n // At this point, if the value is taken from state, it should be a getter value\n const newValue = changedValue ?? stateManager.state[stateProp];\n const descrp = Object.getOwnPropertyDescriptor(stateManager.state, stateProp);\n const isGetter = descrp?.get?.isStateGetter;\n\n dispatchStateChangEvent(stateManager.state, stateProp, newValue);\n // Populate the next Node Actions to perform\n generateStateNodeActions(stateManager, stateProp, newValue, isGetter);\n // Also handle negation dependencies\n if (!stateProp.startsWith('!')) {\n generateStateNodeActions(stateManager, `!${stateProp}`, !newValue, isGetter);\n }\n}\n\n\n\nexport function handleStateDependency(stateManager, depStateProp, appScope=window) {\n const state = stateManager.state;\n const isSetter = isSetterHook(depStateProp); \n // A \"Setter\" hook\n if (isSetter) {\n const setterHook = state[depStateProp];\n const setterStateProp = depStateProp.substring(4);\n const hasNewValue = callSetterHook(setterHook, setterStateProp, stateManager, appScope);\n if (hasNewValue) handleStateChange(stateManager, setterStateProp, null, appScope.offscreenContainer);\n }\n else if (depStateProp.indexOf('.length') > 0) {\n const realProp = depStateProp.split('.')[0];\n const newValue = stateManager.state[realProp].length;\n // depStateProp is `${prop}.length` here\n handleStateChange(stateManager, depStateProp, newValue, appScope.offscreenContainer);\n }\n else {\n handleStateChange(stateManager, depStateProp, null, appScope.offscreenContainer);\n }\n}\n\n\nexport function isBuiltInStateProp(stateProp) {\n return BUILT_IN_STATE_PROPS.has(stateProp);\n}\n\nexport function dispatchStateChangEvent(state, property, newValue) {\n const stateChangeEvent = new CustomEvent('stateChange', { \n bubbles: false, \n composed: false,\n detail: {\n property,\n newValue\n } \n });\n state.dispatchEvent(stateChangeEvent);\n}\n\nexport function isSetterHook(stateProp) {\n return stateProp.indexOf('set_') === 0;\n}\n\n\n\n","import { setHiddenProperty } from \"../shared/prop_utils.js\";\nimport { StatefulArrayHandler } from \"./proxy_handlers.js\";\nimport { handleStateChange } from \"../shared/state_utils.js\";\nimport { ARRAY_CACHE_METHODS, ARRAY_MUTATE_NO_LENGTH_CHANGE_METHODS } from \"../shared/consts.js\";\nimport { ReadonlySet } from \"../shared/code_utils.js\";\nimport { newStateManager } from \"./state_utils.js\";\n\nexport default class StatefulArray extends Array {\n\n // We use this for the array proxy that calls doArrayOperation\n // which should only be called for native array functions.\n // Functions in this list are called directly (and not via doArrayOperation)\n static functions = new ReadonlySet([\n \"constructor\",\n \"statifyArray\",\n \"addDirtyIndex\",\n \"doArrayOperation\",\n \"runArrayOperation\",\n \"makeStateMap\",\n \"mapStateKeys\",\n \"toArray\"\n ]);\n\n arrayMaps = {}\n\n // This will define which \"constructor\" JS calls whenever it needs to construct a new array while calling some Array native functions\n static get [Symbol.species]() {\n return Array;\n }\n\n // Required, e.g. for using Array.from\n [Symbol.iterator]() {\n return super[Symbol.iterator]();\n }\n\n // Return [result, isNewArray] \n // isNewArray means result should be considered a whole new array,\n runArrayOperation(operationName, method, args) {\n switch (operationName) {\n // Remove the first item\n // (Internally it moves all else one \"left\")\n case \"shift\": {\n this.lastOperation = [\"shift\"];\n const res = method.apply(this, args);\n return [res, false];\n }\n\n // Prepends ...elements to the beginning of array\n case \"unshift\": {\n this.lastOperation = [\"unshift\", [args.length]];\n const res = method.apply(this, args);\n return [res, false];\n }\n\n // Remove the last item\n case \"pop\": {\n this.lastOperation = [\"pop\"];\n const res = method.apply(this);\n return [res, false];\n }\n\n // Push ...elements\n case \"push\": {\n this.lastOperation = [\"push\", [args.length]];\n const res = method.apply(this, args);\n return [res, false];\n }\n\n // Delete from startIndex, add ...elements in offset\n case \"splice\": {\n const [startIndex, deleteCount] = args;\n const itemsToAdd = args.slice(2);\n this.lastOperation = [\"splice\", [startIndex, deleteCount, itemsToAdd]];\n const res = method.apply(this, args);\n return [res, false];\n }\n\n default: {\n this.lastOperation = undefined;\n const res = method.apply(this, args);\n return [res, Array.isArray(res)];\n }\n }\n }\n // setDirtyOperation should be true if the content of this array actually changes\n doArrayOperation(operationName, args, setDirtyProp=false) {\n this.$$operation = operationName;\n const prevLen = this.length;\n let result, isNewArray = false;\n if (ARRAY_CACHE_METHODS.has(operationName)) {\n const callbackFn = args[0];\n if (this.length && \n Object.hasOwn(this.arrayMaps, operationName) &&\n this.arrayMaps[operationName].has(callbackFn)) {\n const cachedArrayMapMetadata = this.arrayMaps[operationName].get(callbackFn);\n if (this.lastDirtyTimestamp > cachedArrayMapMetadata.timestamp) {\n [result, isNewArray] = this.runArrayOperation(operationName, super[operationName], args); \n this.arrayMaps[operationName].set(callbackFn, {\n lastResult: result,\n timestamp: new Date().getTime()\n });\n }\n else {\n result = cachedArrayMapMetadata.lastResult;\n }\n }\n else {\n [result, isNewArray] = this.runArrayOperation(operationName, super[operationName], args);\n if (!Object.hasOwn(this.arrayMaps, operationName)) {\n this.arrayMaps[operationName] = new Map();\n this.arrayMaps[operationName].set(callbackFn, {\n lastResult: result,\n timestamp: new Date().getTime()\n });\n }\n }\n }\n else {\n [result, isNewArray] = this.runArrayOperation(operationName, super[operationName], args);\n }\n\n \n\n // For order/content-only mutators (no length change), also dirty `${prop}.length`\n // so dependents that currently watch `.length` still re-run on reorder-only ops.\n const postLen = this.length;\n const isOrderOnly = (ARRAY_MUTATE_NO_LENGTH_CHANGE_METHODS.has(operationName) ||\n (operationName === 'splice' && postLen === prevLen));\n\n if (setDirtyProp && isOrderOnly) {\n this.parentStateObject._stateManager.setDirtyProp(`${this.arrayStateProp}.length`, true);\n }\n\n delete this.$$operation;\n\n if (setDirtyProp) {\n this.parentStateObject._stateManager.setDirtyProp(this.arrayStateProp);\n }\n\n return [result, isNewArray];\n }\n\n mapStateKeys() {\n this.forEach(item=> {\n const state = Object.hasOwn(item, \"state\") ? item.state : item;\n if (!STRICT) {\n if (!Object.hasOwn(state, \"key\")) {\n console.warn(`Items in State Map Array ${this.arrayStateProp} SHOULD have a 'key' property!`);\n }\n }\n this.keyMap.set(state.key, state);\n });\n }\n\n makeStateMap() {\n this._isStateMap = true;\n this.keyMap = new Map();\n this.mapStateKeys();\n }\n\n\n // noConvertToStateItems can be used in internal methods where a normal array is returned and you just want to recreate a StatefulArray,\n // with the same state items\n // NOTE: original Array constructor can get a series of arguments to build an array from, OR a single number,\n // to create an array with that number as a length\n constructor(initialArray, parentStateObject, arrayStateProp, appScope = window, isStateMap = false) {\n const StateManager = appScope.SPROUT_CONFIG.stateManagerClass;\n\n if (!Array.isArray(initialArray)) {\n throw Error(\"Argument for StateFulArray constructor must be an array!\");\n }\n\n const rawArray = initialArray;\n let statefulArray = rawArray.map((item, index)=> {\n let stateItem = item;\n\n // If already a state item - keep as is, otherwise - statify\n if (Object.hasOwn(item, 'state') || \n Object.hasOwn(item, '_stateManager') ||\n Array.isArray(item)) return stateItem;\n if (typeof item === 'object') stateItem = newStateManager(item, arrayStateProp, parentStateObject._stateManager, handleStateChange, false, appScope);\n return stateItem;\n });\n super(...statefulArray);\n\n this.parentStateObject = parentStateObject;\n this.arrayStateProp = arrayStateProp;\n this.appScope = appScope;\n this.rawArray = rawArray;\n if (isStateMap) {\n this.makeStateMap();\n }\n\n statefulArray = new Proxy(this, StatefulArrayHandler(parentStateObject?._stateManager, arrayStateProp, appScope));\n setHiddenProperty(statefulArray, \"_isStatefulArray\", true);\n this.statefulArray = statefulArray;\n return statefulArray;\n }\n}\n","import { statifyValue, getDeps, statifyArrayDeriveFrom } from \"./state_utils\";\nimport { isBuiltInStateProp } from \"../shared/state_utils.js\";\nimport { ARRAY_MUTATE_METHODS, ARRAY_DERIVE_METHODS } from \"../shared/consts.js\";\nimport StatefulArray from \"./StatefulArray.js\";\n\n/* Used for auto detecting dependencies\n * deps is an object, which is transformed in-place to represent \n * dependency property names and their count (number of times they are accessed)\n * this is part of the way array.length is detected as a separate dependency\n */\nexport const depsProxyHandler = function () {\n //stateObject.$$accessCount = {};\n return {\n get(target, property, receiver) {\n if (isBuiltInStateProp(property) || property.indexOf('$$') === 0) {\n return Reflect.get(...arguments);\n }\n const descrp = Object.getOwnPropertyDescriptor(target, property);\n // Don't count getter functions as \"dependencies\"\n // (as they don't have a \"value\" that can change, they are only computed)\n if (descrp?.get?.isStateGetter) {\n return Reflect.get(...arguments);\n }\n if (!Object.hasOwn(target.$$accessCount, property)) {\n target.$$accessCount[property] = 1;\n }\n else {\n target.$$accessCount[property]++;\n }\n \n return Reflect.get(...arguments);\n }\n }\n}\n\n\n/* Proxy handler for re-detecting dependencies everytime a state function is called\n */\nexport const StateFunctionDependencyHandler = function(stateManager, stateProp, appScope = window) {\n const state = stateManager.state;\n return {\n apply: function (thisFunction, thisStateObject, argumentsList) {\n stateManager.clearStateDependencies(stateProp);\n const originalGlobalState = thisStateObject._global;\n const [deps, globalDeps, result] = getDeps(thisFunction, thisStateObject);\n deps.forEach(depProp=> {\n stateManager.addStateDependency(depProp, stateProp);\n });\n globalDeps?.forEach(depProp=> {\n originalGlobalState._stateManager.addGlobalStateDependency(depProp, stateProp, stateManager);\n });\n return result;\n }\n }\n}\n\n/* Proxy handler for StatefulArrays */\nexport const StatefulArrayHandler = function(parentStateManager, arrayStateProp, appScope = window) {\n // We need to immediately call handleStateChanges - and not queue it,\n // to avoid potential race conditions!\n // The false argument prevents async state change handling queueing\n const triggerStateChange = (triggerLength = false, triggerArray = true)=> {\n if (triggerArray) {\n parentStateManager.setDirtyProp(arrayStateProp, true);\n }\n if (triggerLength) {\n parentStateManager.setDirtyProp(`${arrayStateProp}.length`, true);\n }\n }\n\n let setResult;\n const keyOf = (item) => {\n if (!item) return undefined;\n if (Object.hasOwn(item, 'state')) return item.state?.key;\n return item.key;\n };\n const stateOf = (item) => (Object.hasOwn(item, 'state') ? item.state : item);\n return {\n set(targetArray, property, value) {\n // Temporary internally used properties will start with '$$'\n if (property.indexOf(\"$$\") === 0) {\n // targetArray[property] = value;\n // return true;\n return Reflect.set(targetArray, property, value);\n }\n\n // A change in array length triggers state change as '[arrayName].length', \n // and for [arrayName] if not part of an internal array operation/function\n if (property === \"length\") {\n setResult = Reflect.set(targetArray, property, value);\n targetArray.hasDirtyItems = true;\n if (!targetArray.hasOwnProperty(\"$$operation\")) {\n // Trigger state change for both the array itself and 'array.length'\n triggerStateChange(true, true);\n }\n else {\n // Trigger state change only for 'array.length'\n triggerStateChange(true, false);\n }\n return setResult;\n }\n\n // Return if the value is the same\n if (targetArray[property] === value) return true;\n\n const index = Number(property)\n if (!isNaN(property)) { // Numeric index\n const index = Number(property);\n const prev = targetArray[index];\n const prevKey = keyOf(prev);\n // If we set it to a new object, convert it to a state object\n value = statifyValue(value, arrayStateProp, parentStateManager, appScope);\n\n // Make sure state values are always state manager values\n // Sometimes they can be state objects (because of the custom get handler in the Proxy)\n if (Object.hasOwn(value, '_stateManager')) {\n value = value._stateManager;\n }\n // targetArray.hasDirtyItems = true;\n // if the array has '$$operation' it means it is there is an ongoing \"native\" array operation/function\n // (slice, push etc.) running.\n if (!targetArray.hasOwnProperty('$$operation')) {\n let doStateChangeHandle = false;\n // This means a modification to an existing array item (as opposed to an addition of a new one)\n // New additions are triggered via the 'length' change\n if (index < targetArray.length) {\n doStateChangeHandle = true;\n }\n /*\n const prevValue = targetArray[index];\n targetArray.derivedArrays.forEach(array=> {\n if (array.indexMap.has(prevValue)) {\n array[index] = value;\n array.indexMap.delete(prevValue);\n array.indexMap.set(value, index);\n }\n });\n */\n setResult = Reflect.set(targetArray, property, value);\n // Maintain array-side key map if this is a state map\n if (setResult && targetArray._isStateMap) {\n if (prevKey !== undefined) {\n targetArray.keyMap.delete(prevKey);\n }\n const newKey = keyOf(value);\n if (newKey !== undefined) {\n targetArray.keyMap.set(newKey, stateOf(value));\n }\n }\n // Only handle state change if this is a change for an existing array item,\n // if it's a new item, it will already be handled on the \"length\" property set\n // Without this check we will have a redundant state check\n if (doStateChangeHandle) {\n // targetArray.addDirtyIndex(index);\n triggerStateChange();\n }\n return setResult;\n }\n }\n return Reflect.set(targetArray, property, value);\n },\n get(targetArray, property, receiver) {\n if (typeof property === \"symbol\") return Reflect.get(...arguments);\n if (property === \"length\" && \n Object.hasOwn(targetArray.parentStateObject, \"$$accessCount\") && \n !Object.hasOwn(targetArray, '$$operation'))\n {\n const arrStateProp = targetArray.arrayStateProp\n if (!Object.hasOwn(targetArray.parentStateObject.$$accessCount, `${arrStateProp}.length`)) {\n targetArray.parentStateObject.$$accessCount[`${arrStateProp}.length`] = 1;\n }\n else {\n targetArray.parentStateObject.$$accessCount[`${arrStateProp}.length`]++;\n\n }\n }\n\n if (property.indexOf && property.indexOf('__') === 0) {\n const nativeFunctionName = property.substring(2);\n return Reflect.get(targetArray, nativeFunctionName, receiver);\n }\n\n // If a function method is accessed, and we're capturing deps, bump base dep for read methods\n if (typeof targetArray[property] === 'function' && !StatefulArray.functions.has(property)) {\n const pso = targetArray.parentStateObject;\n if (pso && Object.hasOwn(pso, '$$accessCount')) {\n const methodName = String(property);\n if (ARRAY_DERIVE_METHODS.has(methodName)) {\n const arrayProp = targetArray.arrayStateProp;\n pso.$$accessCount[arrayProp] = (pso.$$accessCount[arrayProp] || 0) + 1;\n }\n }\n }\n\n // Don't call overriding functions if initializing (e.g. during initial state population)\n if (!parentStateManager.isInitializing && typeof targetArray[property] === 'function' &&\n // MAKE SURE to put all native StatefulArray class names here\n !StatefulArray.functions.has(property)) {\n return function (...args) {\n // .statefulArray is a reference to the PROXY itself\n const [result, isNewArray] = targetArray.doArrayOperation.call(targetArray.statefulArray, property, args, ARRAY_MUTATE_METHODS.has(property));\n /*\n if (isNewArray) {\n result.isDerivedArray = false;\n result.indexMap = indexMap;\n result.originalArray = targetArray;\n }\n */\n return result;\n };\n }\n\n const index = Number(property);\n if (!isNaN(index)) {\n const item = targetArray[index];\n if (typeof item === 'undefined') return undefined;\n if (item && Object.hasOwn(item, 'state')) return item.state;\n return item;\n }\n return Reflect.get(...arguments);\n },\n deleteProperty(targetArray, property) {\n // If not an index property - just delete it\n if (isNaN(Number(property))) {\n return Reflect.deleteProperty(targetArray, property);\n }\n const index = Number(property);\n const prev = targetArray[index];\n const prevKey = keyOf(prev);\n const deleteOkay = Reflect.deleteProperty(targetArray, property);\n if (deleteOkay && targetArray._isStateMap && prevKey !== undefined) {\n targetArray.keyMap.delete(prevKey);\n }\n return deleteOkay;\n }\n }\n}\n\n/* Used for \"child state objects\" - basically state values that are objects and should be reactive,\n * these can also be object items within state arrays\n */\nexport const StateObjectValueHandler = function(rootStateObj, objPropertyName, appScope = window) {\n return {\n set(targetObj, property, value) {\n if (isBuiltInStateProp(property)) {\n return Reflect.set(...arguments);\n }\n\n const setResult = Reflect.set(...arguments);\n const stateManager = rootStateObj._stateManager;\n if (stateManager.parentStateManager) {\n // Only trigger parent state change if not in the middle of operation\n // E.g. if this is an object inside an array in the middle of an operation - don't trigger\n //if (!Object.hasOwn(stateManager.parentStateManager.state[objPropertyName], '$$operation')) {\n performance.mark(\"todo-array-set-dirty-prop\");\n stateManager.parentStateManager?.setDirtyProp(objPropertyName);\n //}\n }\n return setResult;\n },\n defineProperty(targetObj, property, descriptor) {\n if (isBuiltInStateProp(property)) {\n return Reflect.defineProperty(...arguments);\n }\n if (typeof descriptor?.value !== \"undefined\") {\n // Sub objects should be statified as well\n descriptor.value = statifyValue(descriptor.value, property, rootStateObj._stateManager, appScope);\n }\n\n // Don't use \"arguments\" here - they are not linked to argument changes in 'strict'\n return Reflect.defineProperty(targetObj, property, descriptor);\n },\n get(targetObj, property, receiver) {\n let getResult = Reflect.get(...arguments);\n // This has to be rebound because of the Proxy\n if (typeof getResult === 'function') return getResult.bind(targetObj);\n return getResult;\n }\n }\n}\n","/* Factory functions for StateManager Plugins. Runs with StateManager as this context */\n\nexport function conditionalElements() {\n this.conditionallyRenderingElements = {};\n this.addConditionallyRenderingElements = function(stateProp, element) {\n this.nodeManager.addConditionallyRenderingElements(stateProp, element);\n }\n}\n\nexport function stateMaps() {\n this.stateArrayMaps = {};\n this.addStateMap = function(stateProp, customElementName, parentElement) {\n if (!this.stateArrayMaps.hasOwnProperty(stateProp)) {\n this.stateArrayMaps[stateProp] = new Map();\n }\n this.stateArrayMaps[stateProp].set(parentElement, customElementName);\n }\n this.clearStateMapsLastOperation = function() {\n for (const stateMapProp of Object.keys(this.stateArrayMaps)) {\n delete this.state[stateMapProp].lastOperation;\n }\n }\n}","import { StateFunctionDependencyHandler, depsProxyHandler } from \"./proxy_handlers.js\";\nimport { handleStateChange, isBuiltInStateProp, isSetterHook } from \"../shared/state_utils\";\nimport StateManager from \"./StateManager\";\nimport StatefulArray from \"./StatefulArray\";\nimport { setHiddenProperty } from \"../shared/prop_utils.js\";\nimport { conditionalElements, stateMaps } from \"./state_plugins.js\";\nimport { GLOBAL_STATE_NOT_SET_YET } from \"../shared/consts.js\";\n/* Results of setter hooks are UNSTATIFIED */\n\nexport function newStateManager(initialState, parentStateProp, parentStateManager, handleStateFunction = handleStateChange, isGlobal = false, appScope=window)\n {\n const stateManager = new StateManager(initialState, parentStateProp, parentStateManager, handleStateFunction, isGlobal, appScope);\n stateManager.use(conditionalElements, \"conditional-element\");\n stateManager.use(stateMaps, \"map\");\n return stateManager;\n}\n\nexport function statifyArray(array, stateProp, state, appScope = window, isStateMap = false) {\n if (Object.hasOwn(array, '_isStatefulArray')) return array;\n const args = [array, state, stateProp, appScope, isStateMap];\n /*\n let statefulArray;\n if (array.isDerivedArray) {\n statefulArray = new StatefulArrayDerived(...args, array.indexMap);\n array.originalArray.addDerivedArray(array);\n }\n else {\n */\n const statefulArray = new StatefulArray(...args);\n // }\n\n if (!state.hasOwnProperty(`${stateProp}.length`)) {\n Object.defineProperty(state, `${stateProp}.length`, {\n get() { return this[stateProp].length }\n });\n }\n return statefulArray;\n}\n\nexport function statifyArrayDeriveFrom(fromArray, array, stateProp, state, appScope = window, indexMap) {\n if (Object.hasOwn(array, '_isStatefulArray')) return array;\n const args = [array, state, stateProp, appScope, indexMap];\n const statefulArray = new StatefulArrayDerived(...args);\n if (!state.hasOwnProperty(`${stateProp}.length`)) {\n Object.defineProperty(state, `${stateProp}.length`, {\n get() { return this[stateProp].length }\n });\n }\n fromArray.addDerivedArray(array);\n return statefulArray;\n}\n\n/* Makes value \"stateful\" (makes it reactive),\n * essentialy turns an object into a StateManager, or an array into a StatefulArray\n * Primitives are left untouched\n */\nexport function statifyValue(value, stateProp, stateManager, appScope = window, isStateMap = false) {\n if (isBuiltInStateProp(stateProp)) return value;\n if (Array.isArray(value)) value = statifyArray(value, stateProp, stateManager.state, appScope, isStateMap);\n else if (typeof value === 'object' && value !== null && !value.hasOwnProperty('_stateManager')) {\n value = newStateManager(value, stateProp, stateManager, handleStateChange, false, appScope).state;\n }\n return value;\n}\n\n/* Called once for each setter hook */\nexport function initSetterHook(setterArray, stateProp, stateManager, appScope=window) {\n const setterHookName = `set_${stateProp}`;\n let [setterFunc, setterOptions] = setterArray;\n if (typeof setterFunc !== \"function\") {\n throw Error(\"Setter hooks must define a function as the first item!\");\n }\n const state = stateManager.state;\n setterOptions.deps = setterOptions.deps ?? \"auto\";\n let result;\n\n // If init + once is set, we don't need to save dependencies\n if (!(setterOptions.init && setterOptions.once)) {\n // auto - will detect the setter function dependencies automatically\n if (setterOptions.deps === \"auto\") {\n if (!setterOptions.reevaluate) {\n let deps, globalDeps;\n [deps, globalDeps, result] = getDeps(setterFunc, state);\n deps.forEach(dep=> {\n stateManager.addStateDependency(dep, setterHookName);\n });\n globalDeps?.forEach(dep=> {\n stateManager.addStateDependency(dep, setterHookName);\n state._global._stateManager.addGlobalStateDependency(dep, setterHookName, stateManager);\n });\n }\n else {\n // reevaluate - means that the dependencies will reevaluate each time the setter re-runs\n const stateDependencyHandler = StateFunctionDependencyHandler(stateManager, setterHookName, appScope);\n setterFunc = new Proxy(setterFunc, stateDependencyHandler);\n // We redefine the setter, as we proxied the setter hook function\n setterArray[0] = setterFunc;\n // Object.defineProperty(state, setterHookName, { value: setterArray, configurable: true });\n }\n }\n else {\n // Explicit depdencies array\n setterOptions.deps.forEach(dep=> {\n if (dep.indexOf('global') === 0) {\n const globalDep = dep.substring(dep.indexOf('global.')+7);\n state._global.addGlobalStateDependency(setterHookName, globalDep, stateManager);\n }\n else {\n stateManager.addStateDependency(dep, setterHookName);\n }\n });\n }\n }\n // Result should be retrieved from the privateState\n Object.defineProperty(state, stateProp, {\n get() {\n // This could be accessed from a dependency check function\n if (Object.hasOwn(state, \"$$accessCount\")) {\n if (!Object.hasOwn(state.$$accessCount, stateProp)) {\n state.$$accessCount[stateProp] = 1;\n }\n else {\n state.$$accessCount[stateProp]++;\n }\n }\n return stateManager.privateState[stateProp];\n },\n set() {\n throw Error(\"Cannot directly set the state value of a result of a setter hook function!\");\n },\n });\n\n // init - means the setter will run upon initialization (first state populate),\n // and will save the result on a state prop\n if (setterOptions.init) {\n // DO NOT STATIFY SETTER HOOK RESULTS!\n // It's possible we already have the result from the dependency check call before\n if (!result) result = setterFunc.call(state);\n if (setterOptions.statify || setterOptions.stateMap) result = statifyValue(result, stateProp, stateManager, appScope, setterOptions.stateMap);\n stateManager.privateState[stateProp] = result;\n stateManager.setDirtyProp(stateProp);\n }\n}\n\nexport function callSetterHook(setterArray, stateProp, stateManager, appScope=window) {\n const state = stateManager.state;\n const originalValue = stateManager.privateState[stateProp];\n if (originalValue === undefined) {\n // First time the Setter hook is called\n initSetterHook(setterArray, stateProp, stateManager, appScope);\n }\n const [setterFunc, setterOptions] = setterArray;\n if (typeof setterFunc !== \"function\") {\n throw Error(\"Setter hooks must define a function as the first item!\");\n }\n let result = setterFunc.call(state);\n \n let hasNewValue = false;\n if (result === undefined) {\n throw Error(\"State Set Hook functions MUST return a value\");\n }\n\n if (setterOptions.statify || setterOptions.stateMap) result = statifyValue(result, stateProp, stateManager, appScope, setterOptions.stateMap);\n\n if (result !== originalValue) {\n stateManager.privateState[stateProp] = result;\n hasNewValue = true;\n }\n\n // once - means the setter is run once, save on the state prop, and then\n // the setter is removed\n if (setterOptions.once) {\n // Delete original setter hook, as it is only meant to run once\n delete state[`set_${stateProp}`];\n }\n return hasNewValue;\n}\n\n// Turna an object with properties and the number of times each was accessed,\n// to a set. Mainly used to also track .length accesses correctly.\nexport function resolveAccessCountToDepsSet(depsCount) {\n let lengthIndex;\n for (let prop in depsCount) {\n lengthIndex = prop.indexOf('.length');\n if (lengthIndex !== -1) {\n depsCount[prop.substring(0, lengthIndex)]--;\n }\n }\n const deps = new Set(Object.keys(depsCount).filter(dep=> depsCount[dep] > 0));\n return deps;\n}\n\n// Get usages (accesses) of properties in fromObject,\n// that occurs in ofFunction\n// Also returns the result of the function call \nexport function getDeps(ofFunction, fromStateObject) {\n let hasGlobal = false;\n const depsProxy = new Proxy(fromStateObject, depsProxyHandler());\n depsProxy.$$accessCount = {};\n\n if (Object.hasOwn(depsProxy, '_global') && depsProxy._global !== GLOBAL_STATE_NOT_SET_YET) {\n hasGlobal = true;\n depsProxy._global = new Proxy(depsProxy._global, depsProxyHandler);\n depsProxy._global.$$accessCount = {};\n }\n const result = ofFunction.call(depsProxy);\n const deps = resolveAccessCountToDepsSet(depsProxy.$$accessCount);\n // We need to explicitely delete - EVEN from the proxy,\n // since we don't define a \"set handler\", original behavior is preserved\n // and $$accessCount is also set on the original state object!\n delete depsProxy.$$accessCount;\n let globalDeps = null;\n if (hasGlobal) {\n globalDeps = resolveAccessCountToDepsSet(depsProxy._global.$$accessCount);\n delete depsProxy._global.$$accessCount;\n }\n return [deps, globalDeps, result];\n}\n\n// A function that checks if the value of the descriptor is a setter hook or a getter function,\n// And return the options set for it, if any\nfunction getStateHookData(descriptor, property) {\n if (descriptor.get && typeof descriptor.get === \"function\") return {\n nativeGetter: true,\n func: descriptor.get,\n deps: \"auto\",\n reevaluate: false,\n init: false,\n isSetter: false\n }\n\n if (descriptor.value) {\n const value = descriptor.value;\n if (property.indexOf('set_') === 0 ) {\n if (!Array.isArray(value)) throw Error(\"State setter hooks must be arrays!\");\n const hookOptions = value[1] || {};\n return {\n nativeGetter: false,\n func: value[0],\n deps: hookOptions.deps && Array.isArray(hookOptions.deps) ? hookOptions.deps : \"auto\",\n reevaluate: !!hookOptions.reevaluate,\n init: !!hookOptions.init,\n once: !!hookOptions.once,\n stateMap: !!hookOptions.stateMap,\n statify: !!hookOptions.statify,\n isSetter: property.indexOf('set_') === 0,\n }\n }\n }\n}\n\n// StateManager is a StateManager instance (with a public state property), initialState is a \"static\" initial state object.\n// If globalState is null, we don't need to handle dependences between the (local) state and global state\n// This function is called as part of the initialization of a StateManager instance - \n// when it is \"activated\"\nexport function populateStateFromInitialState(stateManager, initialState, appScope = window) {\n\n const state = stateManager.state;\n const descriptors = Object.getOwnPropertyDescriptors(initialState);\n\n for (const key in descriptors) {\n const descrp = descriptors[key];\n if (isBuiltInStateProp(key)) {\n Object.defineProperty(state, key, descrp);\n continue;\n }\n\n let hookFunc;\n\n // If this is a State Hook (a 'set_' or get functions).\n const stateHook = getStateHookData(descrp, key);\n if (stateHook) {\n const statePropName = stateHook.isSetter ? key.substring(4) : key;\n hookFunc = stateHook.func;\n hookFunc.bind(state);\n\n if (stateHook.isSetter && !stateHook.nativeGetter) {\n // It will call the hook function if init is set to true, as well\n initSetterHook(descrp.value, statePropName, stateManager, appScope);\n // if \"once\" is on, we need to be able to delete it later\n if (stateHook.once) descrp.configurable = true;\n Object.defineProperty(state, key, descrp);\n }\n // Native getters only evaluate dependencies once on init,\n // they do not reevalaute on each call\n else if (stateHook.nativeGetter) {\n descrp.get.isStateGetter = true;\n const getFunc = descrp.get;\n const [deps, globalDeps] = getDeps(getFunc, state);\n deps.forEach(dep=> {\n stateManager.addStateDependency(dep, key);\n });\n globalDeps?.forEach(dep=> {\n stateManager.addStateDependency(dep, key);\n state._global._stateManager.addGlobalStateDependency(dep, key, stateManager);\n });\n descrp.get.bind(state); // = hookFunc;\n Object.defineProperty(state, statePropName, descrp);\n }\n\n } // End staterHook condition\n \n // Direct value \n else if (descrp.hasOwnProperty('value')) {\n const stateProp = key;\n const value = statifyValue(descrp.value, stateProp, stateManager, appScope);\n if (!stateManager.privateState.hasOwnProperty(stateProp)) {\n stateManager.privateState[stateProp] = value;\n }\n Object.defineProperty(state, stateProp, {\n set(value) {\n const currentVal = stateManager.privateState[stateProp];\n if (value === currentVal) return;\n // Can't be \"STATE MAP\" - state maps must be top level - mention it in readme!\n value = statifyValue(value, stateProp, stateManager, appScope);\n // Sets value to \"private state\"\n stateManager.privateState[stateProp] = value;\n stateManager.setDirtyProp(stateProp);\n\n // If an array value was set to a new array, \n // then also count it as an array.length change!\n stateManager.setDirtyProp(`${stateProp}.length`);\n },\n get() {\n // Value is always retrieved from the \"private\" state\n return stateManager.privateState[stateProp];\n }\n });\n }\n }\n}\n\nexport function defineStateExpressionResolver(statePropExpression, stateObj, getter, contextStateProp) {\n Object.defineProperty(stateObj, statePropExpression, {\n get: getter,\n set() {\n throw Error(\"Cannot directly set a State property expression\");\n },\n enumerable: true,\n });\n stateObj._stateManager.addStateDependency(contextStateProp, statePropExpression);\n}\n\n// Takes a set of \"dependency\" prop names, and return two sets:\n// setter hook props, and direct value deps\nexport function sortDeps(depsSet) {\n const deps = new Set();\n const setterDeps = new Set();\n depsSet.forEach(dep=> {\n if (isSetterHook(dep)) setterDeps.add(dep);\n else deps.add(dep);\n });\n return [deps, setterDeps];\n}\n\n\n\n\n","import { SUPPORTED_ATTRIBUTES_FOR_BINDING, BINDABLE_ATTRIBUTES_TO_STATE_NODES } from \"../shared/consts.js\";\nimport { getNewNodeActionsObject } from \"../core/node_actions.js\";\nimport { NODES_STATE } from \"../shared/consts.js\";\nimport { queuePaint } from \"../shared/paint_utils.js\";\n\nconst { pendingPaintNodeManagers } = NODES_STATE;\n\nexport class NodeManager {\n \n // Maps state props to state nodes,\n // Keys are state props, and values are sets of Nodes\n stateNodes = {}\n // This is to contain the special \"conditional-rendering\" custom elements\n conditionallyRenderingElements = {};\n\n\n // Bindable attributes - are attributes that can be bound to state properties - \n // these are generally attributes that a user interaction can or should add or remove them\n // e.g. checked, value\n // Each value is a map with keys: DOM elements, values: State Attribute Nodes\n bindableAttributesStateNodes = new Map(\n [...BINDABLE_ATTRIBUTES_TO_STATE_NODES]\n .map(attributeName=> [attributeName, new Map()])\n );\n \n // Keys are nodes in the component\n // (child elements, attributes, text nodes),\n // values are sets of abstract DOM operations\n #nodeActions = new Map();\n\n paintStatus = null;\n\n // In the DOM realm - Node here is either an Attribute Node or a Text Node\n addStateNode(stateProp, stateNode) {\n if (!this.stateNodes.hasOwnProperty(stateProp)) {\n this.stateNodes[stateProp] = new Set();\n }\n\n this.stateNodes[stateProp].add(stateNode);\n\n // If this is an attribute node which is \"bindable\" (supported for the _bind command)\n // then we save a reference to its containing element\n if (SUPPORTED_ATTRIBUTES_FOR_BINDING.has(stateNode.nodeName)) {\n const bindaleAttributeStateNodes = this.bindableAttributesStateNodes.get(stateNode.nodeName);\n bindaleAttributeStateNodes.set(stateNode.originalOwnerElement, stateNode);\n }\n }\n removeStateNode(stateProp, stateNode) {\n this.stateNodes?.[stateProp].delete(stateNode);\n }\n\n // ConditionalElements mapped to stateProp\n addConditionallyRenderingElements(stateProp, element) {\n if (!this.conditionallyRenderingElements.hasOwnProperty(stateProp)){\n this.conditionallyRenderingElements[stateProp] = new Set();\n }\n element.originalParentElement = element.parentElement || element.host?.shadowRoot;\n this.conditionallyRenderingElements[stateProp].add(element);\n }\n\n addNodeAction(node, action) {\n if (!this.#nodeActions.has(node)) {\n this.#nodeActions.set(node, getNewNodeActionsObject(node.nodeType));\n }\n const nodeActions = this.#nodeActions.get(node);\n const { actionType, actionValue } = action;\n if (node.nodeType === Node.ELEMENT_NODE) {\n switch (actionType) {\n case \"append\": {\n nodeActions.append.add(actionValue);\n break;\n }\n case \"setProperty\": {\n nodeActions.setProperty(actionValue.property, actionValue.value);\n break;\n }\n case \"reattach\": {\n nodeActions.reattach = true;\n break;\n }\n }\n }\n else {\n nodeActions[actionType] = actionValue;\n }\n\n if (!this.paintStatus) { \n this.paintStatus = \"pending\";\n }\n }\n\n queuePaint() {\n if (this.paintStatus === \"pending\") {\n pendingPaintNodeManagers.add(this);\n queuePaint();\n this.paintStatus = \"queued\";\n }\n }\n resolveToDOMActions() {\n const attributeActions = [];\n const textActions = [];\n const elementActions = [];\n const reattachActions = [];\n const propertySetActions = [];\n \n this.#nodeActions.forEach((nodeActions, node)=> {\n switch (node.nodeType) {\n case Node.ATTRIBUTE_NODE: {\n const value = nodeActions.setAttribute;\n const typeOfValue = typeof value;\n if (typeOfValue !== 'undefined') {\n if (typeOfValue === \"boolean\") {\n if (!node.hasOwnProperty(\"originalOwnerElement\")) {\n throw Error(\"originalOwnerElement not found on boolean attribute node! Should never happen!\");\n }\n if (value === false) {\n // Remove attribute if it exists, otherwise - do nothing\n if (node.originalOwnerElement.hasAttribute(node.name)) {\n attributeActions.push(()=> {\n node.originalOwnerElement.removeAttributeNode(node);\n });\n }\n }\n // state changed to true\n else {\n if (!node.originalOwnerElement.hasAttribute(node.name)) {\n attributeActions.push(()=> {\n node.originalOwnerElement.setAttributeNode(node);\n });\n }\n }\n }\n else {\n if (typeOfValue === \"string\" && node.nodeValue !== value) {\n attributeActions.push (()=> node.nodeValue = value);\n }\n }\n }\n break;\n }\n \n case Node.TEXT_NODE: {\n if (nodeActions.textContent !== undefined) {\n const value = String(nodeActions.textContent);\n if (node.nodeValue !== value) {\n textActions.push (()=> node.nodeValue = value);\n }\n }\n break;\n }\n \n case Node.ELEMENT_NODE: {\n // Append\n for (const newChildElement of nodeActions.append.values()) {\n elementActions.push(()=> node.appendChild(newChildElement));\n }\n \n // setProperty\n for (const [key, value] of nodeActions.setProperty) {\n if (node[key] !== value) {\n propertySetActions.push(()=> node[key] = value)\n }\n }\n // Reattach\n if (nodeActions.reattach) {\n reattachActions.push(()=> node.reattach());\n if (node?.pendingKeyMapActions?.size) {\n reattachActions.push(()=> {\n for (const keyMapAction of node.pendingKeyMapActions) {\n keyMapAction();\n }\n node.pendingKeyMapActions.clear();\n });\n }\n nodeActions.reattach = false;\n }\n }\n break;\n }\n });\n \n this.#nodeActions.clear();\n return [attributeActions, textActions, propertySetActions, elementActions, reattachActions ];\n }\n}\n\n\n","import { populateStateFromInitialState } from \"./state_utils\";\nimport { StateObjectValueHandler } from \"./proxy_handlers\";\n\nexport function populateInitialState(stateManager, initialState, appScope = window) {\n return populateStateFromInitialState(stateManager, initialState, appScope);\n}\nexport function makeReactive(stateObject, parentStateProp = undefined, appScope = window) {\n return new Proxy(stateObject, StateObjectValueHandler(stateObject, parentStateProp, appScope));\n}","import { defineStateExpressionResolver, sortDeps } from \"./state_utils.js\";\nimport { handleStateChange, handleStateDependency, isSetterHook } from \"../shared/state_utils.js\";\nimport { GLOBAL_STATE_FUNCTION_NAME, GLOBAL_STATE_NOT_SET_YET } from \"../shared/consts.js\";\nimport { setHiddenProperty } from \"../shared/prop_utils.js\";\nimport { queueAnimationFrame } from \"../shared/paint_utils.js\";\nimport { callSetterHook } from \"./state_utils.js\";\nimport { parseStateExpression } from \"../shared/parse_utils.js\";\nimport { NodeManager } from \"./NodeManager.js\";\nimport { makeReactive, populateInitialState } from \"./reactivity_utils.js\";\nconst stateChangeHandlers = new Map();\n\nfunction queueStateChange(element, stateChangeHandler) {\n stateChangeHandlers.set(element, stateChangeHandler);\n queueAnimationFrame(\n Array.from(stateChangeHandlers.values()), \n \"STATE_CHANGE\",\n ()=> stateChangeHandlers.clear()\n );\n}\n\n// This class actually handles \"State\". It returns a proxied \"state\" object,\n// while handling all state changes and triggers behind the scenes\n\n// Lifecycle:\n// 1. Dirty Prop\n// 2. Queue STATE_CHANGE -> handleStateChanges to rAF\n// 3. For each prop changed: \n// 3A. Run handleStateChange\n// 3B. Run handleStateChange for all local dependencies\n// 3C. Run handleStateChange for all global dependencies\nclass StateManager {\n\n isInitializing = false;\n \n // The privateState is the \"source of truth\" for the values of the state,\n // the keys are the same as the \"public\" keys\n privateState = {};\n\n // This represents the \"publicly\" exposed state object\n // It will be wrapped in a Proxy\n state = new EventTarget();\n\n\n // A map that maps state props to \"dependencies\", each time a stateProp which is a key here,\n // is changed, a state change is triggered for its dependencies as well\n stateDependencies = new Map();\n\n // These are used when the state object has a \"parent\", e.g an object inside a Stateful Array\n parentStateProp\n parentStateManager\n\n // State props that were changed and needs to trigger possible state changes\n dirtyProps = new Set();\n\n // Node Manager saves bindings between Nodes and state,\n // translates state chanages into DOM actions and queue them for next paint.\n nodeManager = new NodeManager();\n \n // Names of \"plugins\" that are turned on for the State Manager instance (e.g. \"map\", \"conditional-element\");\n #plugins = new Set();\n \n setDirtyProp(prop, queueHandleState=true) {\n // state properties beginning with $$ are internal \"utility\" meta properties\n if (this.state.$$isInitializing) return;\n const lengthIndex = prop.indexOf('.length');\n const checkProp = lengthIndex > 0 ? prop.substring(0, lengthIndex) : prop;\n if (!Object.hasOwn(this.state, checkProp)) {\n throw Error(`Error in setDirtyProp. State has no property: '${prop}'. This should never happen`);\n }\n this.dirtyProps.add(prop);\n if (Array.isArray(this.state[checkProp])) {\n this.state[checkProp].lastDirtyTimestamp = new Date().getTime();\n }\n if (queueHandleState) {\n queueStateChange(this, this.handleStateChanges.bind(this));\n }\n }\n\n handleStatePropDependencies(depStateProps) {\n const dependenciesMap = this.stateDependencies;\n const globalDependenciesMap = this?.globalStateDependencies;\n depStateProps.forEach(depStateProp=> {\n handleStateDependency(this, depStateProp, this.appScope);\n // If it was a setter hook, it re-set the value of its equivalent state prop\n const changedStateProp = isSetterHook(depStateProp) ? depStateProp.substring(4) : depStateProp;\n if (dependenciesMap?.has(changedStateProp)) {\n const dependenciesSet = dependenciesMap.get(changedStateProp);\n const [deps, setterDeps] = sortDeps(dependenciesSet);\n if (setterDeps.size) {\n this.handleStatePropDependencies(setterDeps);\n }\n if (deps.size) {\n this.handleStatePropDependencies(deps);\n }\n }\n\n if (globalDependenciesMap?.has(changedStateProp)) {\n const globalDeps = globalDependenciesMap.get(changedStateProp);\n globalDeps.forEach((depsSet, localStateManager)=> {\n const [deps, setterDeps] = sortDeps(depsSet);\n if (setterDeps.size) {\n localStateManager.handleStatePropDependencies(setterDeps);\n }\n if (deps.size) {\n localStateManager.handleStatePropDependencies(deps);\n }\n });\n }\n });\n\n }\n\n isGlobalState() {\n return !this.state.hasOwnProperty('_global');\n }\n\n // This sorts by order of execution,\n // according to the number of dependencies (\"in-degrees\"),\n // 0 runs first, then 1, and so on...\n // This is called: topological sort of a directed graph\n topologicalSortStateProps(stateProps) {\n return [...stateProps].toSorted((a, b)=> {\n\n // If one prop is a sub-property of another, ensure the base property comes first\n if (a.startsWith(b + '.')) return 1;\n if (b.startsWith(a + '.')) return -1;\n\n // Otherwise, sort by dependency count\n return ((this.stateDependencies[a]?.size || 0) - this.stateDependencies[b]?.size || 0);\n });\n }\n\n // This function uses handleStateChange which is passed to the class via its constructor (dependency injection),\n // it is the \"bridge\" between the State Manager to the \"outside world\"\n handleStateChanges() {\n if (!this.dirtyProps.size) return;\n performance.mark(\"todo-topological-sort\");\n const stateProps = this.topologicalSortStateProps(this.dirtyProps);\n this.dirtyProps.clear();\n const isLocal = !this.isGlobalState();\n const deps = new Set();\n const setterDeps = new Set();\n const globalDeps = new Set();\n const thisStateManager = this;\n const thisState = thisStateManager.state\n stateProps.forEach(stateProp=> {\n if (isSetterHook(stateProp)) {\n stateProp = stateProp.substring(4);\n const setterHook = thisState[stateProp];\n performance.mark(\"todo-call-setter-hook\");\n const hasNewValue = callSetterHook(setterHook, stateProp, thisStateManager, this.appScope);\n if (hasNewValue) {\n this.handleStateChange(thisStateManager, stateProp, null);\n }\n }\n else {\n this.handleStateChange(thisStateManager, stateProp, null);\n }\n\n if (thisStateManager.stateDependencies.has(stateProp)) {\n thisStateManager.stateDependencies.get(stateProp).forEach(dep=> {\n if (isSetterHook(dep)) setterDeps.add(dep);\n else deps.add(dep);\n });\n }\n let globalState = thisStateManager.state?._global;\n if (globalState === GLOBAL_STATE_NOT_SET_YET) {\n globalState = this.appScope[GLOBAL_STATE_FUNCTION_NAME]();\n }\n if (globalState !== GLOBAL_STATE_NOT_SET_YET) {\n const globalStateManager = globalState?._stateManager || thisStateManager;\n if (globalStateManager.globalStateDependencies.has(stateProp)) {\n globalDeps.add(globalStateManager.globalStateDependencies.get(stateProp));\n }\n }\n });\n\n if (setterDeps.size) {\n this.handleStatePropDependencies(setterDeps);\n }\n if (deps.size) {\n this.handleStatePropDependencies(deps);\n }\n if (globalDeps.size) {\n globalDeps.forEach((deps, localStateManager)=> {\n localStateManager.handleStatePropDependencies(deps);\n });\n }\n\n thisStateManager.clearStateMapsLastOperation();\n\n // If this is a \"child-state\", we mark the prop in the containing state as dirty.\n if (this.parentStateManager) {\n this.parentStateManager.setDirtyProp(this.parentStateProp);\n }\n }\n\n // A StateManager instance can also be a \"sub-state\" object within a containing state object,\n // in this case (the optional) 'parentStateProp' and 'parentStateManager' are used to bind to its containing state object.\n constructor(initialState, parentStateProp, parentStateManager, handleStateFunction = handleStateChange, isGlobal = false, appScope=window) {\n this.isInitializing = true;\n this.parentStateProp = parentStateProp;\n this.parentStateManager = parentStateManager;\n this.handleStateChange = handleStateFunction;\n this.appScope = appScope;\n // this.state = {};\n\n // Saves the actual state manager instance to a readonly _stateManager\n setHiddenProperty(this.state, \"_stateManager\", this, true);\n\n this.state.$$isInitializing = true;\n this.state.populate = function(populateObject) {\n for (const property in populateObject) {\n if (this.hasOwnProperty(property)) {\n this[property] = populateObject[property];\n }\n }\n }\n // If a \"child state\" - then allow mutability (adding new props)\n if (parentStateProp && parentStateManager) {\n this.state = makeReactive(this.state, parentStateProp, appScope);\n } \n\n if (!STRICT) {\n if (!initialState || !Object.keys(initialState).length) {\n console.warn(\"Empty initial state objects should never be used!\");\n }\n }\n // Local state\n if (!isGlobal) {\n const globalState = appScope[GLOBAL_STATE_FUNCTION_NAME]();\n setHiddenProperty(this.state, \"_global\", globalState, true);\n }\n // Global state\n else {\n // This maps depencdies between \"local\" state properties to global state changes\n // The difference between the normal dependencies object, is that each depenency\n // also includes a state object (which is the state context of the property),\n // in other words, if a local state \"relies\" on a global state change - we save this\n // mapping here.\n // The keys are global state properties, where each value is a Map,\n // in the map, the keys are local state manager objects, and the values are sets with\n // local property names\n this.globalStateDependencies = new Map();\n this.addGlobalStateDependency = (stateProp, depStateProp, localStateManager)=> {\n if (!this.globalStateDependencies.has(stateProp)) {\n this.globalStateDependencies.set(stateProp, new Map());\n }\n const globalDeps = this.globalStateDependencies.get(stateProp);\n if (!globalDeps.has(localStateManager)) {\n globalDeps.set(localStateManager, new Set());\n }\n globalDeps.get(localStateManager).add(depStateProp);\n }\n }\n\n populateInitialState(this, initialState, appScope);\n\n delete this.state.$$isInitializing;\n setHiddenProperty(this.state, \"_isStateManager\", true);\n setHiddenProperty(this.state, \"_isActive\", true, false);\n this.isInitializing = false;\n }\n\n // Each value is a set of state properties set as \"dependencies\" for a key State Property\n addStateDependency(stateProp, depStateProp) {\n if (!this.stateDependencies.has(stateProp)) {\n this.stateDependencies.set(stateProp, new Set());\n }\n this.stateDependencies.get(stateProp).add(depStateProp)\n if (Array.isArray(this.state[stateProp])) {\n this.addStateDependency(`${stateProp}.length`, depStateProp);\n }\n }\n clearStateDependencies(stateProp) {\n if (this.stateDependencies.has(stateProp)) {\n this.stateDependencies.set(stateProp, new Set());\n }\n }\n\n // parent element is an element that have the \"_map\" command - \n // expected to contain instances of customElementName that were created from an array of State objects\n /*\n addStateMap(stateProp, customElementName, parentElement) {\n if (!this.stateArrayMaps.hasOwnProperty(stateProp)) {\n this.stateArrayMaps[stateProp] = new Map();\n }\n this.stateArrayMaps[stateProp].set(parentElement, customElementName);\n }\n */\n\n // ConditionalElements mapped to stateProp\n //addConditionallyRenderingElements(stateProp, element) {\n //this.nodeManager.addConditionallyRenderingElements(stateProp, element);\n //}\n \n // In the DOM realm - Node here is either an Attribute Node or a Text Node\n addStateNode(stateProp, stateNode) {\n this.nodeManager.addStateNode(stateProp, stateNode);\n /*\n if (!this.stateNodes.hasOwnProperty(stateProp)) {\n this.stateNodes[stateProp] = new Set();\n }\n\n this.stateNodes[stateProp].add(stateNode);\n\n // If this is an attribute node which is \"bindable\" (supported for the _bind command)\n // then we save a reference to its containing element\n if (SUPPORTED_ATTRIBUTES_FOR_BINDING.has(stateNode.nodeName)) {\n const bindaleAttributeStateNodes = this.nodeManager.bindableAttributesStateNodes.get(stateNode.nodeName);\n bindaleAttributeStateNodes.set(stateNode.originalOwnerElement, stateNode);\n }\n */\n }\n removeStateNode(stateProp, stateNode) {\n // this.stateNodes?.[stateProp].delete(stateNode);\n this.nodeManager.removeStateNode(stateProp, stateNode);\n }\n\n // statePropExpression can be a \"literal\" state property or a \"state expression\"\n // (See comment on parseStateExpression for reference)\n bindStatePropExpression(statePropExpression, type, args) {\n if (!type || !args) {\n [type, ...args] = parseStateExpression(statePropExpression);\n }\n const contextStateProp = args[0];\n if (!contextStateProp) {\n throw Error (`Must specify state property name for State expression: ${statePropExpression}`);\n }\n\n let stateObj = this.state;\n let descriptor = Object.getOwnPropertyDescriptor(stateObj, contextStateProp);\n if (!descriptor) {\n stateObj = stateObj._global;\n descriptor = Object.getOwnPropertyDescriptor(stateObj, contextStateProp);\n }\n if (!descriptor) {\n throw Error(`Could not bind state property ${contextStateProp}. State property ${contextStateProp} not defined!`);\n }\n\n if (Object.hasOwn(stateObj, statePropExpression)) return stateObj[statePropExpression];\n\n const isValueProp = descriptor.hasOwnProperty('value');\n const stateManager = this;\n\n let getter;\n\n switch (type) {\n case \"negation\": {\n const relevantState = isValueProp ? stateManager.privateState : stateManager.state;\n getter = ()=> { return !relevantState[contextStateProp] };\n defineStateExpressionResolver(statePropExpression, stateObj, getter, contextStateProp);\n break;\n }\n\n case \"equality\": {\n const equalityValue = args[1];\n if (!equalityValue) {\n throw Error(\"Must specify equality value for equality expression (is_something:equalToThis)\");\n }\n const relevantState = isValueProp ? stateManager.privateState : stateManager.state;\n getter = ()=> { return relevantState[contextStateProp] === equalityValue; }\n defineStateExpressionResolver(statePropExpression, stateObj, getter, contextStateProp);\n break;\n }\n\n case \"ternary\": {\n const truthyValue = args[1];\n if (!truthyValue) {\n throw Error(\"Ternary state expression (prop?truthy:falsy) must include at least a truthy value!\")\n }\n const falsyValue = args[2];\n const relevantState = isValueProp ? stateManager.privateState : stateManager.state;\n getter = \n falsyValue ? \n ()=> { return relevantState[contextStateProp] ? truthyValue : falsyValue } :\n ()=> { return relevantState[contextStateProp] ? truthyValue : undefined };\n defineStateExpressionResolver(statePropExpression, stateObj, getter, contextStateProp);\n break;\n }\n }\n\n return stateObj[statePropExpression];\n }\n\n // Used for DEBUGGING!\n getStateDependencies() {\n return this.stateDependencies;\n }\n\n // This can be used to inject (DI) - \"plugins\" - extensions to the State Manager.\n use(factoryFunction, pluginName) {\n factoryFunction.call(this);\n this.#plugins.add(pluginName)\n }\n\n isUsing(pluginName) {\n return this.#plugins.has(pluginName);\n }\n} \n\nexport default StateManager;\n","import { GLOBAL_STATE_FUNCTION_NAME, DEFAULT_TEMPLATE_DOM, SHADOW_ROOT_CSS } from \"../shared/consts.js\";\nimport { queueBindEvents } from \"../shared/paint_utils.js\";\nimport { extendElementClassWithReactiveElementClass } from './ReactiveElement.js';\nimport { handleStateChange } from \"../shared/state_utils.js\";\nimport { newStateManager } from \"../Cougar/state_utils.js\";\n\nconst SHADOW_CSS = new CSSStyleSheet();\nSHADOW_CSS.replaceSync(SHADOW_ROOT_CSS);\n\n// Lifecycle:\n// init: constructor\n// mount: connectedCallback\n// stateful: state is active\n// active: stateful, events bound and after all commands run\n// unmount: disconnectedCallback\nexport function getReactiveCustomElementClass(appScope = window) {\n const ReactiveHTMLElement = extendElementClassWithReactiveElementClass(HTMLElement, appScope);\n const StateManager = appScope.SPROUT_CONFIG.stateManagerClass;\n class ReactiveCustomElement extends ReactiveHTMLElement {\n\n // Important different between \"host\" and shadowRoot (we call root):\n // host is the DOM element of the custom element\n // that element contains Shadow DOM - Shadow DOM trees always have a \"shadowRoot\"\n // the shadowRoot is an extension of a DocumentFragment, accessible via this.shadowRoot\n\n // If this is part of a \"mapped element\" (an element where each child is mapped to a state item in an array),\n // created using the _map command - then this will contain the parent element\n ownerMapElement\n\n // Reactive state managed by a State Manager (Cougar by default)\n state \n\n // This is a \"fallback\" for the key property for state objects used for maps,\n // the runtime uses this in cases where state is not active yet\n stateKey\n #wasMounted = false\n\n // Note! .state will not be available in init and mount!\n #lifecycle = {\n init: null,\n mount: null,\n stateful: null,\n active: null,\n unmount: null\n }\n\n #templateContent\n #stylesheet\n #globalStylesheet\n\n // This will be an object where keys are element \"ref\" names,\n // and the value is either a \"click\" event handler (if it's a function),\n // or an object with DOM event names as keys and event handlers as functions.\n // Only relevant for non native custom elements - event bubbling from child elements will be used\n events\n\n // A \"mapped\" version of events, where keys are event names and value\n // is a map where keys are ref target names and values are event handler function\n eventsMap = new Map();\n #eventHandler\n \n // These are attributes of child elements that are bound to \"Prop Attributes\",\n // Keys are attribute names, and values are set of Attribute Nodes\n propAttributes = new Map();\n\n // Uses Declrative Shadow DOM\n #usesDSD = false;\n #settings\n commands\n // Maps \"ref names\" to actual elements in the component DOM tree,\n // for fast access.\n ref = {};\n\n canonicalTagName;\n\n constructor(template=null, runtime, style, globalStylesheet, usesDSD = false) {\n super();\n const isFrameworkElement = this.tagName === \"CONDITIONAL-ELEMENT\";\n if (isFrameworkElement) return;\n\n this.isNativeElement = false;\n this.#usesDSD = usesDSD;\n\n if (globalStylesheet) {\n this.#globalStylesheet = globalStylesheet;\n }\n\n this.canonicalTagName = this.localName;\n if (!this.#usesDSD) {\n if (style) {\n const stylesheet = new CSSStyleSheet();\n stylesheet.replaceSync(style);\n this.#stylesheet = stylesheet;\n }\n\n // Using importNode instead of node.cloneNode,\n // so if a template includes other custom elements,\n // they will already be defined. (See cloneNode on MDN) \n this.#templateContent = \n template ?\n document.importNode(template, true) :\n document.importNode(DEFAULT_TEMPLATE_DOM, true);\n\n this.#renderTemplate();\n }\n else {\n // Declartive Shadow DOM (DSD) elements have a '-dsd' at the end of their tag name\n this.canonicalTagName = this.localName.substring(0, this.localName.indexOf('-dsd'));\n }\n\n if (runtime) {\n this.#setRuntime(runtime);\n }\n\n if (this.#lifecycle.init) this.#lifecycle.init.call(this);\n }\n\n #setRuntime(runtime) {\n this.#settings = runtime.settings;\n this.commands = runtime.commands;\n if (runtime.events) {\n const setRefEvent = (eventName, refName, eventHandler)=> {\n if (!this.eventsMap.has(eventName)) {\n this.eventsMap.set(eventName, new Map());\n }\n const eventMapItem = this.eventsMap.get(eventName);\n eventMapItem.set(refName, eventHandler);\n }\n\n let eventsObjectValue, typeOfValue;\n for (const refName in runtime.events) {\n eventsObjectValue = runtime.events[refName];\n typeOfValue = typeof eventsObjectValue;\n if (typeOfValue === \"function\") {\n setRefEvent(\"click\", refName, eventsObjectValue);\n }\n else if (typeOfValue === \"object\") {\n for (const eventName in eventsObjectValue) {\n setRefEvent(eventName, refName, eventsObjectValue[eventName]);\n }\n }\n }\n\n if (this.isConnected) this.#bindEvents();\n }\n if (runtime.state) {\n this.setInitialState(runtime.state);\n // Upgraded custom elements can be \"connected\" while still inside constructor.\n // Activating state there creates a first state tree before mount/stateful run,\n // then connectedCallback creates a second one and orphanes existing bindings.\n if (this.isConnected && this.#wasMounted && !this.state) {\n this.#setActiveStateFromInitialState();\n }\n }\n for (const lifecycleEvent in this.#lifecycle) {\n if (runtime.hasOwnProperty(lifecycleEvent)) {\n this.#lifecycle[lifecycleEvent] = runtime[lifecycleEvent];\n }\n }\n }\n\n setInitialState(initState) {\n if (this.initialState) {\n Object.assign(this.initialState, initState);\n }\n else {\n this.initialState = initState;\n }\n if (initState.hasOwnProperty(\"key\")) this.stateKey = initState.key;\n }\n #setActiveStateFromInitialState() {\n if (!this.initialState || this.state?._isActive) return;\n const initialState = this.initialState;\n if (initialState._stateManager) {\n this.state = initialState._stateManager.state;\n }\n else {\n const stateManager = newStateManager(initialState, undefined, undefined, handleStateChange, false, appScope);\n this.state = stateManager.state;\n this.state.$host = this; \n }\n // delete this.initialState;\n this.state._isActive = true;\n }\n\n #renderTemplate() {\n if (appScope.SPROUT_CONFIG.useShadow) {\n this.attachShadow({ \n mode: \"open\",\n delegatesFocus: true,\n });\n this.shadowRoot.adoptedStyleSheets = [ SHADOW_CSS ];\n if (this.#globalStylesheet) this.shadowRoot.adoptedStyleSheets.push(this.#globalStylesheet);\n if (this.#stylesheet) this.shadowRoot.adoptedStyleSheets.push(this.#stylesheet);\n this.shadowRoot.appendChild(this.#templateContent);\n }\n else {\n const fragment = new DocumentFragment();\n fragment.appendChild(this.#templateContent);\n this.appendChild(fragment);\n }\n }\n\n #unbindEvents() {\n if (!this.eventsMap.size) return;\n const thiselement = this;\n for (const eventName of this.eventsMap.keys()) {\n thiselement.shadowRoot.removeEventListener(eventName, this.#eventHandler, false);\n }\n }\n\n #bindEvents() {\n if (this.#eventHandler) return;\n if (!this.eventsMap.size) return;\n const globalState = appScope[GLOBAL_STATE_FUNCTION_NAME]();\n // This runs in the scope of shadowRoot\n this.#eventHandler = function(event) {\n const host = this.host;\n const eventsMapItem = host.eventsMap.get(event.type);\n if (!eventsMapItem) return false;\n\n const eventsPath = event.composedPath();\n for (const element of eventsPath) {\n if (element && \n element.refName &&\n eventsMapItem.has(element.refName)\n ) {\n const targetElement = element;\n const targetRefName = targetElement.refName;\n const eventHandler = eventsMapItem.get(targetRefName);\n eventHandler.call(targetElement, event, host, globalState);\n }\n }\n event.stopPropagation();\n };\n\n for (const eventName of this.eventsMap.keys()) {\n this.shadowRoot.addEventListener(eventName, this.#eventHandler, { capture: true });\n }\n }\n\n disconnectedCallback() {\n this.#unbindEvents();\n this.state = undefined;\n this.isActive = false;\n if (this.#lifecycle.unmount) this.#lifecycle.unmount.call(this);\n }\n\n activate() {\n super.activate();\n this.#bindEvents();\n if (this.#lifecycle.active) this.#lifecycle.active.call(this);\n }\n\n // Override findElement to scope lookups to this component instance,\n // not its parent host. This ensures nested components resolve their own refs.\n findElement(refName) {\n const host = this;\n let root = this;\n if (appScope.SPROUT_CONFIG.useShadow) {\n root = host.shadowRoot;\n }\n return Object.hasOwn(host.ref, refName)\n ? host.ref[refName]\n : root?.querySelector?.(`[ref=\"${refName}\"]`) || null;\n }\n connectedCallback() {\n // We set this for easier/straightforward access (e.g. with querySelector); \n this.setAttribute(\"tagName\", this.canonicalTagName);\n\n if (this.#wasMounted) return;\n // IMPORTANT: THIS *CAN* be NULL, DO NOT CHANGE IT!\n // It is to check if the custom element is inside a shadow DOM\n // of ANOTER parent custom element - \n // if this is the case - getRootNode() will return the shadowRoot,\n // of the outer CE - and it will have a host property - referencing\n // the containing CE, if not it will just return document and .host\n // will be null\n const host = this.getRootNode().host;\n\n if (this.#lifecycle.mount) this.#lifecycle.mount.call(this);\n //if (!this.#usesDSD) {\n // this.#renderTemplate();\n //}\n\n const doActivate = ()=> {\n this.#setActiveStateFromInitialState();\n this.isActive = true;\n this.dispatchEvent( new CustomEvent(\"active\") );\n if (this.#lifecycle.stateful) this.#lifecycle.stateful.call(this);\n this.activate();\n }\n // Custom Elements can also be inside \n // the Shadow DOM of other custom elements,\n // in which case - we need to wait for their host to be active first\n // We async queue using setTimeout (NOT rAF or queueMicrotrask!) -\n // To allow full paint of the elements to finish first,\n // and then hydrate\n if (host) {\n if (host.isActive) doActivate();\n else host.addEventListener(\n \"active\",\n doActivate,\n { once: true }\n );\n }\n else {\n setTimeout(doActivate, 0);\n }\n this.#wasMounted = true;\n }\n\n attributeChangedCallback(attributeName, oldValue, newValue) {\n if (oldValue === newValue) return;\n if (attributeName === \"hidden\") {\n if (newValue === null) {\n this.dispatchEvent(\n new CustomEvent(\"unhide\", { bubbles: true })\n );\n }\n else {\n this.dispatchEvent(\n new CustomEvent(\"hide\", { bubbles: true })\n );\n }\n }\n if (this.propAttributes.has(attributeName)) {\n const propAttributeNodes = this.propAttributes.get(attributeName);\n propAttributeNodes.forEach(attrNode=> {\n attrNode.nodeValue = newValue;\n if (attrNode.ownerElement.tagName === \"CONDITIONAL-RENDER\") {\n attrNode.ownerElement.render();\n }\n });\n }\n }\n }\n\n\n return ReactiveCustomElement;\n}\n","import { attributeValueToTypedValue, bindPropAttribute } from \"./attr_utils\";\nimport { CONDITIONAL_OPERATORS, SYMBOL_NAMES } from \"../shared/consts\";\nimport { queueConditionalRender } from \"../shared/paint_utils\";\nimport { conditionalElements } from \"../Cougar/state_plugins\";\n\n// returns a Boolean according to the conditional equality of conditional to conditionStateValue\nexport function resolveCondition(operator, value, conditionStateValue) {\n if (operator === \"always\") return true;\n switch (operator) {\n case '==': return (conditionStateValue == value);\n case '===': return (conditionStateValue === value);\n case '!=': return (conditionStateValue != value);\n case '!==': return (conditionStateValue !== value);\n case '<': return (conditionStateValue < value);\n case '<=': return (conditionStateValue <= value);\n case '>': return (conditionStateValue > value);\n case '>=': return (conditionStateValue >= value);\n default: return (conditionStateValue == value);\n }\n}\n\nexport function getConditionalElementClass(ReactiveElementClass) {\n class ConditionalElement extends ReactiveElementClass {\n\n #isConditionStateProp\n #conditionProp\n #renderMap\n\n static observedAttributes = [\"_condition\"];\n\n render(isFirstRender=false) {\n let conditionValue;\n if (this.#isConditionStateProp) {\n conditionValue = this.getState(this.#conditionProp);\n if (conditionValue === undefined) {\n throw Error(`State value for ${this.#conditionProp} not found while rendering conditional-render element:`, this);\n }\n }\n else {\n conditionValue = this.getAttribute('_condition');\n if (conditionValue === undefined) {\n throw Error(`_condition value not found while rendering conditional-render element:`, this);\n }\n }\n const elementsToRender = [];\n this.#renderMap.forEach(({ condition, elements })=> {\n const { operator, value } = condition;\n if (resolveCondition(operator, value, conditionValue)) {\n elementsToRender.push(...elements);\n }\n });\n\n if (isFirstRender) {\n this.innerHTML = \"\";\n this.append(...elementsToRender);\n }\n else if (elementsToRender.length) {\n queueConditionalRender(this, ()=> {\n this.innerHTML = \"\";\n this.append(...elementsToRender);\n });\n }\n }\n\n // Groups elements to render according to conditional expressions (operation + condition)\n generateRenderMap() {\n const renderMap = new Map();\n renderMap.set(\"always\", []);\n const children = [...this.children];\n children.forEach(conditionalChild=> {\n const _if = conditionalChild.getAttribute('_if').replaceAll(' ', '');\n if (_if) {\n if (!renderMap.has(_if)) {\n const [, operator, value] = cond.trim().split(CONDITIONAL_OPERATORS_REGEX);\n const normalizedValue = attributeValueToTypedValue(value);\n const conditionObj = { operator, value: normalizedValue }\n\n renderMap.set(_if, { condition: conditionObj, elements: [ conditionalChild ]});\n }\n else {\n renderMap.get(_if).elements.push(conditionalChild);\n }\n }\n else {\n renderMap.get(\"always\").elements.push( conditionalChild );\n }\n });\n this.#renderMap = renderMap;\n }\n\n activate() {\n const condition = this.getAttribute(\"_condition\");\n if (!condition) {\n throw Error(\"conditional-render elements must have a _condition attribute!\");\n }\n\n if (condition.indexOf('@') === 0) {\n bindPropAttribute.call(this, \"_condition\", condition);\n this.#isConditionStateProp = false;\n this.#conditionProp = condition.substring(1);\n }\n else {\n this.#isConditionStateProp = true;\n this.#conditionProp = condition;\n }\n\n if (!STRICT) {\n if (!this.children || !this.children.length) {\n console.warn(\"Conditional element doesn't have any children!\");\n }\n }\n if (this.#isConditionStateProp) {\n const statePropName = this.#conditionProp;\n const [stateValue, stateObject] = this.getState(statePropName, true);\n if (typeof stateValue === undefined) {\n throw Error(`State property ${statePropName} not defined for _condition command!`);\n }\n const stateManager = stateObject._stateManager;\n if (!stateManager.has(\"conditional-element\")) stateManager.use(conditionalElements, 'conditional-element');\n stateManager.addConditionallyRenderingElements(statePropName, this);\n this.generateRenderMap();\n this.render(true);\n }\n else {\n this.render(true);\n }\n }\n }\n return ConditionalElement;\n}\n","import { SPROUT_FROZEN_CLASS_CSS } from \"../shared/consts\";\n\nfunction toCamelCase(str) {\n return str\n .toLowerCase() // Convert the string to lower case\n .split(/[\\s-_]+/) // Split by spaces, hyphens, or underscores\n .map((word, index) => {\n if (index === 0) {\n return word; // Return the first word as is (in lower case)\n }\n // Capitalize the first letter of each subsequent word\n return word.charAt(0).toUpperCase() + word.slice(1);\n })\n .join(''); // Join all words together\n}\n\n\n// This is the script that takes Template elements from the page and defines Reactive Custom Elements\nexport default function(appScope, appName) {\n\n async function defineCustomElementFromScript(elemName, globalStylesheet) {\n const runtimeFnName = `SPROUT_${toCamelCase(elemName)}_Runtime`;\n const runtimeFn = globalThis[runtimeFnName];\n customElements.define(\n elemName, \n class extends appScope.ReactiveCustomElement {\n constructor() {\n super(undefined, runtimeFn, undefined, globalStylesheet);\n }\n }\n );\n\n // Also define the -dsd variation - to support Declartive Shadow DOM\n customElements.define(\n `${elemName}-dsd`, \n class extends appScope.ReactiveCustomElement {\n constructor() {\n super(undefined, runtimeFn, undefined, globalStylesheet);\n }\n }\n );\n\n delete window[runtimeFnName];\n\n }\n\n // Create custom elements from templates\n async function defineCustomElementFromTemplate(template, elemName, globalStylesheet) {\n let templateContent, style, runtime;\n templateContent = template.content;\n style = templateContent.querySelector('style');\n if (style) templateContent.removeChild(style);\n const runtimeScript = templateContent.querySelector('script');\n if (runtimeScript) {\n const runtimeCode = runtimeScript.textContent;\n // Remove from template so it won't be stamped into the DOM\n templateContent.removeChild(runtimeScript);\n if (runtimeCode && runtimeCode.trim().length !== 0) {\n try {\n runtime = Function(runtimeCode)();\n } catch (e) {\n console.warn(`Failed to evaluate runtime for ${elemName} from template script`, e);\n }\n }\n }\n\n customElements.define(\n elemName, \n class extends appScope.ReactiveCustomElement {\n constructor() {\n super(templateContent, runtime, style?.textContent, globalStylesheet);\n }\n }\n );\n\n // Also define the -dsd variation - to support Declartive Shadow DOM\n customElements.define(\n `${elemName}-dsd`, \n class extends appScope.ReactiveCustomElement {\n constructor() {\n super(templateContent, runtime, null, globalStylesheet, true);\n }\n }\n );\n }\n\n function build() {\n \n let globalStylesheet = new CSSStyleSheet();\n const globalStyle = document.querySelector(`head > style[app=\"${appName}\"]`);\n if (globalStyle) {\n globalStylesheet.replaceSync(globalStyle.textContent);\n }\n else {\n // Compile-mode fallback: use in-memory compiled global styles if present\n const compiledStyle = globalThis.SPROUT_COMPILED_STYLES?.[appName];\n globalStylesheet.replaceSync(compiledStyle || \"\");\n }\n // This is used when mutating the children of a DOM parent (on-the-fly),\n // the parent is \"frozen\" first - to not trigger events etc.\n // Used when handling changes to State Maps\n globalStylesheet.insertRule(SPROUT_FROZEN_CLASS_CSS);\n if (typeof globalThis[`${appName}_runtime`] === 'function') {\n const globalRuntimeFunction = globalThis[`${appName}_runtime`];\n globalRuntimeFunction.call(appScope);\n }\n\n /*\n if (appScope.SPROUT_CONFIG.useDSD) {\n Array.prototype.forEach.call(document.querySelectorAll(`script[app=\"${appName}\"]`), script => {\n defineCustomElementFromTemplate(script, script.getAttribute('for'), globalStylesheet);\n });\n }\n else {\n */\n const compiledTemplates = globalThis.SPROUT_COMPILED_TEMPLATES?.[appName];\n if (compiledTemplates && typeof compiledTemplates.forEach === 'function') {\n compiledTemplates.forEach((templateEl, componentName) => {\n if (componentName && templateEl) {\n defineCustomElementFromTemplate(templateEl, componentName, globalStylesheet);\n }\n });\n }\n else {\n Array.prototype.forEach.call(document.querySelectorAll(`template[app=\"${appName}\"]`), template => {\n const componentName = template.getAttribute('for');\n if (componentName) {\n defineCustomElementFromTemplate(template, componentName, globalStylesheet);\n }\n });\n }\n\n //}\n }\n build();\n}\n","import StateManager from \"../Cougar/StateManager.js\";\nimport { extendElementClassWithReactiveElementClass } from \"./ReactiveElement.js\";\nimport { getReactiveCustomElementClass } from \"./ReactiveCustomElement.js\";\nimport { getConditionalElementClass } from \"./ConditionalElement.js\";\nimport { GLOBAL_STATE_VAR_NAME, \n GLOBAL_STATE_FUNCTION_NAME, \n GLOBAL_STATE_NOT_SET_YET,\n HTML_ELEMENT_CLASSES_MAP, \n SPROUT_FROZEN_CLASS_CSS } from \"../shared/consts.js\";\nimport SproutBuild from '../build/index.js';\nimport { setHiddenProperty } from \"../shared/prop_utils.js\";\nimport { handleStateChange } from \"../shared/state_utils.js\";\nimport { newStateManager } from \"../Cougar/state_utils.js\";\n\nconst script = document.currentScript;\nconst allowAppScopeAccess = true; //document.currentScript?.hasAttribute(\"allowappscopeaccess\");\n\nconst strict = script?.hasAttribute(\"strict\") || false;\nconst stateManagerClass = StateManager;\nconst config = {\n useShadow: true, // Always use shadow DOM for now, may add configurability later\n allowAppScopeAccess: allowAppScopeAccess,\n useDSD: false, // Use Delcartive Shadow DOM\n strict,\n appName: script?.getAttribute(\"app\") || \"sprout-app\",\n stateManagerClass\n}\n\nif (config.allowAppScopeAccess) {\n Object.defineProperty(globalThis, \"sproutApps\", {\n value: {},\n writable: false\n });\n}\n\nconst SproutStylesheet = new CSSStyleSheet();\nSproutStylesheet.replaceSync(SPROUT_FROZEN_CLASS_CSS);\ndocument.adoptedStyleSheets = [...document.adoptedStyleSheets, SproutStylesheet];\n\n \nlet appScope = (function() { return { window, document: window?.document }})(window);\n\nif (config.allowAppScopeAccess) {\n Object.defineProperty(globalThis.sproutApps, config.appName, {\n value: appScope,\n writable: false\n });\n}\n\nappScope.SPROUT_CONFIG = Object.seal(config);\n\n// Prevent \"hasOwnProperty\" shenanigans\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nsetHiddenProperty(Object.prototype, \"hasOwnProperty\", hasOwnProperty);\n\nappScope[GLOBAL_STATE_FUNCTION_NAME] = function() {\n return GLOBAL_STATE_NOT_SET_YET;\n}\n\n// If initialState is passed - also sets it to global state\nappScope.setGlobalState = function(initialState = {}) {\n // const globalState = //new appScope.SPROUT_CONFIG.stateManagerClass(initialState, undefined, undefined, handleStateChange, true, appScope).state;\n const globalState = newStateManager(initialState, undefined, undefined, handleStateChange, true, appScope).state;\n \n const globalStateVarName = GLOBAL_STATE_VAR_NAME;\n Object.defineProperty(appScope, globalStateVarName, {\n value: globalState,\n writable: false,\n configurable: false\n });\n Object.defineProperty(appScope, GLOBAL_STATE_FUNCTION_NAME, {\n value: function() {\n return appScope[globalStateVarName];\n },\n });\n return appScope[globalStateVarName];\n};\n\nappScope.setCommands = function(commands = {}) {\n Object.defineProperty(appScope, \"appCommands\", {\n value: commands,\n writable: false,\n configurable: false\n })\n}\n\nconst HTML_REACTIVE_ELEMENT_CLASSES = {};\nHTML_ELEMENT_CLASSES_MAP.forEach(elementDefinition=>\n HTML_REACTIVE_ELEMENT_CLASSES[elementDefinition.element] = extendElementClassWithReactiveElementClass(elementDefinition.class, appScope, true)\n);\n\nappScope.ReactiveCustomElement = getReactiveCustomElementClass(appScope);\n\nSproutBuild(appScope, config.appName);\n\n// Extend specific HTMLElement classes to enable reactivity (use it by adding an \"is\" attribute to an element)\nHTML_ELEMENT_CLASSES_MAP.forEach(itemDefinition => {\n customElements.define(\n `reactive-${itemDefinition.element}`, \n // extendElementClassWithReactiveElementClass(itemDefinition.class, appScope, true),\n HTML_REACTIVE_ELEMENT_CLASSES[itemDefinition.element],\n { extends: itemDefinition.element });\n }\n);\n\nconst ReactiveHeadingClass = extendElementClassWithReactiveElementClass(HTMLHeadingElement, appScope);\n[\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].forEach(hTag=> {\n customElements.define(`reactive-${hTag}`,\n class extends ReactiveHeadingClass {},\n { extends: hTag}\n );\n});\n\nconst ReactiveInputClass = extendElementClassWithReactiveElementClass(HTMLInputElement, appScope, true);\ncustomElements.define('reactive-input', ReactiveInputClass, { extends: \"input\" });\n\nconst ReactiveConditionalElementClass = extendElementClassWithReactiveElementClass(HTMLElement, appScope);\nconst ConditionalElementClass = getConditionalElementClass(ReactiveConditionalElementClass); \ncustomElements.define('conditional-render', ConditionalElementClass);\n\n"],"names":["ReadonlySet","_Set","iterable","_this","_classCallCheck","_callSuper","add","unavailableMethod","_inherits","_createClass","key","value","_delete","clear","methodName","Error","concat","_wrapNativeSuper","Set","OBSERVED_ATTRIBUTES","BOOLEAN_ATTRIBUTES","AUTO_ATTRIBUTES_TO_PROPS","SUPPORTED_ATTRIBUTES_FOR_BINDING","BUILT_IN_STATE_PROPS","GLOBAL_STATE_VAR_NAME","GLOBAL_STATE_FUNCTION_NAME","GLOBAL_STATE_NOT_SET_YET","ERROR_MESSAGES","Object","freeze","NO_DEPENDENCIES_ARRAY_IN_SET_HOOK","stateProp","HTML_ELEMENT_CLASSES_MAP","HTMLAnchorElement","element","HTMLAreaElement","HTMLAudioElement","HTMLBodyElement","HTMLBRElement","HTMLButtonElement","HTMLCanvasElement","HTMLDataElement","HTMLDataListElement","HTMLDetailsElement","HTMLDialogElement","HTMLDivElement","HTMLDListElement","HTMLEmbedElement","HTMLFieldSetElement","HTMLFormElement","HTMLHRElement","HTMLHtmlElement","HTMLIFrameElement","HTMLImageElement","HTMLLabelElement","HTMLLegendElement","HTMLLIElement","HTMLLinkElement","HTMLMapElement","HTMLMetaElement","HTMLMeterElement","HTMLObjectElement","HTMLOListElement","HTMLOptGroupElement","HTMLOptionElement","HTMLParagraphElement","HTMLPictureElement","HTMLPreElement","HTMLProgressElement","HTMLQuoteElement","HTMLSelectElement","HTMLSourceElement","HTMLSpanElement","HTMLTableElement","HTMLTableCellElement","HTMLTableRowElement","HTMLTableSectionElement","HTMLTextAreaElement","HTMLTimeElement","HTMLTitleElement","HTMLTrackElement","HTMLUListElement","HTMLVideoElement","HTMLSlotElement","DEBUG_MODE","DEFAULT_TEMPLATE_DOM","document","createElement","NODES_STATE","nodeActionsMap","Map","pendingPaintNodeManagers","eventBindingFunctions","conditionalRenders","stateChangeHandlers","paintRafId","CONDITIONAL_OPERATORS","CONDITIONAL_OPERATORS_REGEX","STATEFUL_ARRAY_REMOVE_FLAG_STRING","STATEFUL_ARRAY_REMOVED_FLAG_STRING","ARRAY_MUTATE_METHODS","ARRAY_MUTATE_NO_LENGTH_CHANGE_METHODS","ARRAY_DERIVE_METHODS","ARRAY_CACHE_METHODS","SYMBOL_NAMES","STATE_NOT_FOUND","BINDABLE_ATTRIBUTES_TO_STATE_NODES","SPROUT_FROZEN_CSS_CLASS_NAME","SPROUT_FROZEN_CLASS_CSS","DETACH_METHOD","HIDE_UNHIDE","CLONE","MAX_OPERATIONS_PER_ANIMATION_FRAME","MAX_DOM_ACTIONS_PER_FRAME","ATTRIBUTE_ACTIONS","TEXT_ACTIONS","ELEMENT_ACTIONS","PROPERTY_ACTIONS","REATTACH_ACTIONS","FRAME_BUDGET","SHADOW_ROOT_CSS","attributeValueToTypedValue","attrValue","typedValue","isNaN","Number","bindPropAttribute","attributeName","attributeValue","host","STRICT","console","warn","propName","substring","attrNode","getAttributeNode","nodeValue","getAttribute","isPropAttribute","propAttributes","has","set","get","isBooleanAttribute","isFalsyStringValue","isStateAttribute","attrName","indexOf","getStatefulChild","child","hasOwn","firstElementChild","whenActive","func","isActive","addEventListener","once","HTMLElementMapParent","replaceChildWith","oldChild","newChild","_statefulOldChild$sta","_statefulOldChild$sta2","_newChild$stateKey","statefulOldChild","oldKey","state","stateKey","statefulNewChild","newKey","replacedChild","replaceChild","keyMap","swapChildWith","oldNext","nextSiblingElement","newNext","insertBefore","removeChild","_child$stateKey","statefulChild","HTMLElement","prototype","call","beforeChild","_newChild$stateKey2","append","_HTMLElement$prototyp","_len","arguments","length","elements","Array","_key","apply","_i","_elements","_element$stateKey","appendChild","_newChild$stateKey3","prepend","_newChild$stateKey4","detach","clonePattern","undefined","returnElement","cloned","cloneNode","$$originalElement","$$detached","setAttribute","classList","reattach","removeAttribute","remove","replaceWith","initialAppend","_HTMLElement$prototyp2","_len2","_key2","_loop","_elements2","_i2","pendingKeyMapActions","_statefulChild$state$","_statefulChild$state","_statefulChild$state$2","_statefulChild$state2","makeElementMapParent","parentElement","assign","style","willChange","mapStateArrayToElements","isElementAList","mapStateToElements","stateItemsPropertyName","customElementName","_parentElement$getSta","getState","_parentElement$getSta2","_slicedToArray","stateItemsArray","theState","isArray","hasOwnProperty","makeStateMap","wrapInElement","innerHTML","_toConsumableArray","COMMANDS","map","commandValue","_commandValue$split","split","_commandValue$split2","thiselement","onAfterPaint","stateArray","_stateManager","addStateMap","bind","tagName","_commandValue$split3","_commandValue$split4","statePropName","bindAttributeToState","bindprop","_commandValue$split5","_commandValue$split6","elementPropName","_this$getState","_this$getState2","_","stateObject","parseStateExpression","expression","charIndex","parsed","char","fromAttributeValue","toAttributeValue","COMMAND_ATTRIBUTES","setStateAttribute","setStateText","isReactiveCustomElement","isReactiveElement","isNativeElement","extendElementClassWithReactiveElementClass","elementClass","appScope","window","isInputElement","_wasMounted","WeakMap","_ReactiveElement_brand","WeakSet","_pendingAttributeChanges","ReactiveElement","_elementClass","_classPrivateMethodInitSpec","_defineProperty","_classPrivateFieldInitSpec","activate","_this2","commands","attributeNames","getAttributeNames","_iterator","_createForOfIteratorHelper","_step","s","n","done","initialSetAttribute","command","push","args","err","e","f","forEach","_ref","_COMMAND_ATTRIBUTES$c","_appScope$appCommands","_this2$host","_componentCommands$co","appCommands","componentCommands","_classPrivateFieldGet","attributeChangeHandler","getHost","_this$getRootNode","parentNode","getRootNode","connectedCallback","_this3","rootNode","roost","_classPrivateFieldSet","disconnectedCallback","_this$host","ref","refName","attributeChangedCallback","oldValue","newValue","_this4","isConnected","_assertClassBrand","_handleAttributeChange","returnStateObject","elementInstance","stateVal","stateFound","globalState","findElement","root","SPROUT_CONFIG","useShadow","shadowRoot","querySelector","initialSetText","String","isPropAttr","isStateAttr","valueToSet","propValue","callback","requestAnimationFrame","refValue","_changeEventHandler","ReactiveInputElement","_ReactiveElement2","_this5","boundAttributesToState","updateStateFromAttribute","stateValue","Symbol","_get","_getPrototypeOf","changeEvent","Event","bubbles","composed","type","stateManager","checkedStateAttributeNodesMap","nodeManager","bindableAttributesStateNodes","checkedAttributeNode","checked","createAttribute","setAttributeNode","removeAttributeNode","dispatchEvent","removeEventListener","newPropValue","observedAttributes","isElementAListItem","getCustomElementFromMappedElement","rafIds","queueAnimationFrame","functionsToRun","afterRunFn","rafId","cancelAnimationFrame","fn","runNextBatch","functionsBatch","functions","slice","functionsIndex","stateActivates","queueBindEvents","bindFunction","from","values","queueConditionalRender","renderFunction","queuePaint","doUpdateDOM","logNodeActions","entries","_ref2","node","actions","nodeType","Node","ELEMENT_NODE","log","appendElements","setProperty","replaceElements","ATTRIBUTE_NODE","nodeName","originalOwnerElement","TEXT_NODE","textContent","runDOMActions","action","pendingNodeManagers","start","performance","now","frameElapsed","_nodeManager$resolveT","resolveToDOMActions","_nodeManager$resolveT2","attributeActions","textActions","propertySetActions","elementActions","reattachActions","paintStatus","waitForIdle","Promise","resolve","check","size","SproutWaitIdle","stateToElement","getStateMapArrayIterator","getNodeActionsForNode","getNewNodeActionsObject","nodeActions","setStateNodeValueAction","addNodeAction","actionType","actionValue","addAppendAction","nodeToAppend","setReattachAction","hasPendingActions","reconcileStateMapElement","stateMapArray","_detachedParentElemen7","lastOperation","detachedParentElement","mappedElementChange","isParentList","replacedChildren","asState","it","expectedItems","keyOfChild","el","_el$firstElementChild","st","labelOfChild","_el$firstElementChild2","label","children","isNewArray","_detachedParentElemen","_stateMapArray$lastOp","operation","prependLength","i","_detachedParentElemen2","stateItem","existing","first","lastElementChild","startIndex","len","_args$","currentLen","rawStart","rawDelete","Math","max","min","deleteCount","Infinity","itemsToInsert","expectedLen","isFullReplace","k","_children$_startIndex","item","refNode","_detachedParentElemen3","parentKeyMap","container","_currentChild$firstEl","_replacedChildren$get","expected","expectedKey","currentChild","currentState","currentKey","elementToPut","_elementToPut$firstEl","elemState","refreshed","_detachedParentElemen4","_detachedParentElemen5","numChildren","index","_detachedParentElemen6","state_Item","generateStateNodeActions","mark","stateNodes","stateMapElements","stateArrayMaps","conditionallyRenderingElements","render","resolveNodeActionsMapToDOMActions","typeOfValue","_typeof","hasAttribute","name","_iterator2","_step2","newChildElement","_iterator3","_step3","_loop2","_step3$value","_node$pendingKeyMapAc","_iterator4","_step4","keyMapAction","setHiddenProperty","obj","enumerable","defineProperty","configurable","writable","callSetterHook","globalThis","elementSetAttribute","statePropExpression","_parseStateExpression","_parseStateExpression2","_toArray","bindStatePropExpression","stateAttrNode","addStateNode","removeStateNode","_parseStateExpression3","_parseStateExpression4","_this$getState3","_this$getState4","textNode","createTextNode","elemName","ownerMapElement","customElementInstance","setInitialState","stateItems","mappedElements","handleStateChange","changedValue","_descrp$get","isBuiltInStateProp","descrp","getOwnPropertyDescriptor","isGetter","isStateGetter","dispatchStateChangEvent","startsWith","handleStateDependency","depStateProp","isSetter","isSetterHook","setterHook","setterStateProp","hasNewValue","offscreenContainer","realProp","property","stateChangeEvent","CustomEvent","detail","StatefulArrayHandler","newStateManager","StatefulArray","_Array","initialArray","parentStateObject","arrayStateProp","isStateMap","StateManager","stateManagerClass","rawArray","statefulArray","Proxy","_possibleConstructorReturn","iterator","runArrayOperation","operationName","method","res","_args","itemsToAdd","doArrayOperation","setDirtyProp","$$operation","prevLen","result","callbackFn","arrayMaps","cachedArrayMapMetadata","lastDirtyTimestamp","timestamp","_this$runArrayOperati","_this$runArrayOperati2","lastResult","Date","getTime","_this$runArrayOperati3","_this$runArrayOperati4","_this$runArrayOperati5","_this$runArrayOperati6","postLen","isOrderOnly","mapStateKeys","_isStateMap","species","default","statifyValue","getDeps","statifyArrayDeriveFrom","depsProxyHandler","target","receiver","Reflect","$$accessCount","StateFunctionDependencyHandler","thisFunction","thisStateObject","argumentsList","clearStateDependencies","originalGlobalState","_global","_getDeps","_getDeps2","deps","globalDeps","depProp","addStateDependency","addGlobalStateDependency","parentStateManager","triggerStateChange","triggerLength","triggerArray","setResult","keyOf","_item$state","stateOf","targetArray","hasDirtyItems","prev","prevKey","doStateChangeHandle","arrStateProp","nativeFunctionName","pso","arrayProp","isInitializing","_targetArray$doArrayO","_targetArray$doArrayO2","deleteProperty","deleteOkay","StateObjectValueHandler","rootStateObj","objPropertyName","targetObj","_stateManager$parentS","descriptor","getResult","conditionalElements","addConditionallyRenderingElements","stateMaps","clearStateMapsLastOperation","_Object$keys","keys","stateMapProp","initialState","parentStateProp","handleStateFunction","isGlobal","use","statifyArray","array","_construct","fromArray","indexMap","StatefulArrayDerived","addDerivedArray","initSetterHook","setterArray","_setterOptions$deps","setterHookName","_setterArray","setterFunc","setterOptions","init","reevaluate","_globalDeps","dep","stateDependencyHandler","globalDep","privateState","statify","stateMap","originalValue","_setterArray2","resolveAccessCountToDepsSet","depsCount","lengthIndex","prop","filter","ofFunction","fromStateObject","hasGlobal","depsProxy","getStateHookData","nativeGetter","hookOptions","populateStateFromInitialState","descriptors","getOwnPropertyDescriptors","hookFunc","stateHook","getFunc","_getDeps3","_getDeps4","currentVal","defineStateExpressionResolver","stateObj","getter","contextStateProp","sortDeps","depsSet","setterDeps","_nodeActions","NodeManager","stateNode","bindaleAttributeStateNodes","_this$stateNodes","_element$host","originalParentElement","_step2$value","populateInitialState","makeReactive","queueStateChange","stateChangeHandler","_plugins","EventTarget","$$isInitializing","populate","populateObject","globalStateDependencies","localStateManager","queueHandleState","checkProp","dirtyProps","handleStateChanges","handleStatePropDependencies","depStateProps","dependenciesMap","stateDependencies","globalDependenciesMap","changedStateProp","dependenciesSet","_sortDeps","_sortDeps2","_sortDeps3","_sortDeps4","isGlobalState","topologicalSortStateProps","stateProps","toSorted","a","b","_this3$stateDependenc","_this3$stateDependenc2","isLocal","thisStateManager","thisState","_thisStateManager$sta","_globalState","globalStateManager","isValueProp","relevantState","equalityValue","truthyValue","falsyValue","getStateDependencies","factoryFunction","pluginName","isUsing","SHADOW_CSS","CSSStyleSheet","replaceSync","getReactiveCustomElementClass","ReactiveHTMLElement","_lifecycle","_templateContent","_stylesheet","_globalStylesheet","_eventHandler","_usesDSD","_settings","_ReactiveCustomElement_brand","ReactiveCustomElement","_ReactiveHTMLElement","template","runtime","globalStylesheet","usesDSD","mount","stateful","active","unmount","isFrameworkElement","canonicalTagName","localName","stylesheet","importNode","_renderTemplate","_setRuntime","initState","_unbindEvents","_bindEvents","_root","_root$querySelector","doActivate","_setActiveStateFromInitialState","setTimeout","propAttributeNodes","ownerElement","settings","events","setRefEvent","eventName","eventHandler","eventsMap","eventMapItem","eventsObjectValue","lifecycleEvent","_this$state","_isActive","$host","attachShadow","mode","delegatesFocus","adoptedStyleSheets","fragment","DocumentFragment","event","eventsMapItem","eventsPath","composedPath","targetElement","targetRefName","stopPropagation","capture","resolveCondition","operator","conditionStateValue","getConditionalElementClass","ReactiveElementClass","_isConditionStateProp","_conditionProp","_renderMap","ConditionalElement","_ReactiveElementClass","isFirstRender","conditionValue","elementsToRender","condition","generateRenderMap","renderMap","conditionalChild","_if","replaceAll","_cond$trim$split","cond","trim","_cond$trim$split2","normalizedValue","conditionObj","_regeneratorRuntime","t","r","o","c","asyncIterator","u","toStringTag","define","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","h","l","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","then","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","displayName","isGeneratorFunction","constructor","setPrototypeOf","__proto__","awrap","async","reverse","pop","charAt","stop","rval","handle","complete","finish","_catch","delegateYield","_defineProperties","_toPropertyKey","_toPrimitive","toPrimitive","_isNativeReflectConstruct","construct","_assertThisInitialized","ReferenceError","Boolean","valueOf","_setPrototypeOf","asyncGeneratorStep","_asyncToGenerator","_next","_throw","toCamelCase","str","toLowerCase","word","toUpperCase","join","appName","defineCustomElementFromScript","_x","_x2","_defineCustomElementFromScript","_callee","runtimeFnName","runtimeFn","_callee$","_context","customElements","_appScope$ReactiveCus","_class","_appScope$ReactiveCus2","_class2","defineCustomElementFromTemplate","_x3","_x4","_x5","_defineCustomElementFromTemplate","_callee2","templateContent","runtimeScript","runtimeCode","_callee2$","_context2","content","Function","_appScope$ReactiveCus3","_class3","_style","_appScope$ReactiveCus4","_class4","build","_globalThis$SPROUT_CO2","globalStyle","_globalThis$SPROUT_CO","compiledStyle","SPROUT_COMPILED_STYLES","insertRule","globalRuntimeFunction","compiledTemplates","SPROUT_COMPILED_TEMPLATES","templateEl","componentName","querySelectorAll","SproutBuild","script","currentScript","allowAppScopeAccess","strict","config","useDSD","SproutStylesheet","_window","sproutApps","seal","setGlobalState","globalStateVarName","setCommands","HTML_REACTIVE_ELEMENT_CLASSES","elementDefinition","itemDefinition","ReactiveHeadingClass","HTMLHeadingElement","hTag","_ReactiveHeadingClass","ReactiveInputClass","HTMLInputElement","ReactiveConditionalElementClass","ConditionalElementClass"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"sprout-core.js","mappings":"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","sources":["webpack://jssprout/./src/shared/code_utils.js","webpack://jssprout/./src/shared/consts.js","webpack://jssprout/./src/core/attr_utils.js","webpack://jssprout/./src/core/HTMLElementMapParent.js","webpack://jssprout/./src/core/commands.js","webpack://jssprout/./src/shared/parse_utils.js","webpack://jssprout/./src/core/ReactiveElement.js","webpack://jssprout/./src/core/DOM_utils.js","webpack://jssprout/./src/shared/paint_utils.js","webpack://jssprout/./src/core/node_actions.js","webpack://jssprout/./src/shared/prop_utils.js","webpack://jssprout/./src/shared/state_utils.js","webpack://jssprout/./src/Cougar/StatefulArray.js","webpack://jssprout/./src/Cougar/proxy_handlers.js","webpack://jssprout/./src/Cougar/state_plugins.js","webpack://jssprout/./src/Cougar/state_utils.js","webpack://jssprout/./src/Cougar/NodeManager.js","webpack://jssprout/./src/Cougar/reactivity_utils.js","webpack://jssprout/./src/Cougar/StateManager.js","webpack://jssprout/./src/core/ReactiveCustomElement.js","webpack://jssprout/./src/core/ConditionalElement.js","webpack://jssprout/./src/build/index.js","webpack://jssprout/./src/core/index.js"],"sourcesContent":["export class ReadonlySet extends Set {\n\tstatic unavailableMethod(methodName) {\n \t throw Error(`Can't use ${methodName} in ReadonlySet`);\n }\n\n constructor(iterable) {\n \t super(iterable);\n // We need to set it here, because the native constructor calls 'add'\n this.add = ()=> ReadonlySet.unavailableMethod(\"add\");\n }\n\tdelete() {\n\t\tReadonlySet.unavailableMethod(\"delete\"); \t\n }\n\tclear() {\n\t\tReadonlySet.unavailableMethod(\"clear\"); \t\n }\n}\n","import { ReadonlySet } from \"./code_utils\";\n\nexport const OBSERVED_ATTRIBUTES = [\"ref\", \"hidden\"];\n\n// disabled, selected, src\nexport const BOOLEAN_ATTRIBUTES = new ReadonlySet([\n 'hidden',\n 'checked',\n 'disabled',\n 'required',\n 'selected'\n]);\n\nexport const AUTO_ATTRIBUTES_TO_PROPS = new ReadonlySet([\n 'checked', \n 'disabled', \n 'selected', \n 'src'\n]);\n\nexport const SUPPORTED_ATTRIBUTES_FOR_BINDING = new ReadonlySet([\n 'value',\n 'checked'\n]);\n\n// These are \"built-in\" state props that are automatically added to state objects,\n// and should not be treated as user state props.\nexport const BUILT_IN_STATE_PROPS = new ReadonlySet([\n '$host',\n '_global',\n '_stateManager',\n '_isActive',\n '_isStateManager',\n 'populate',\n 'hasOwnProperty',\n]);\n\nexport const GLOBAL_STATE_VAR_NAME = \"SproutGlobalState\";\nexport const GLOBAL_STATE_FUNCTION_NAME = \"getGlobalState\";\nexport const GLOBAL_STATE_NOT_SET_YET = \"Global State Not Set Yet\";\n\nexport const ERROR_MESSAGES = Object.freeze({\n NO_DEPENDENCIES_ARRAY_IN_SET_HOOK(stateProp) {\n return `State set hook, must include a dependencies array! None was found for ${stateProp}`;\n }\n});\n\nexport const HTML_ELEMENT_CLASSES_MAP = Object.freeze([\n { class: HTMLAnchorElement, element: \"a\" },\n { class: HTMLAreaElement, element: \"area\" },\n { class: HTMLAudioElement, element: \"audio\" },\n // { class: HTMLBaseElement, element: \"base\" },\n { class: HTMLBodyElement, element: \"body\" },\n { class: HTMLBRElement, element: \"br\" },\n { class: HTMLButtonElement, element: \"button\" },\n { class: HTMLCanvasElement, element: \"canvas\" },\n { class: HTMLDataElement, element: \"data\" },\n { class: HTMLDataListElement, element: \"datalist\" },\n { class: HTMLDetailsElement, element: \"details\" },\n { class: HTMLDialogElement, element: \"dialog\" },\n { class: HTMLDivElement, element: \"div\" },\n { class: HTMLDListElement, element: \"dl\" },\n { class: HTMLEmbedElement, element: \"embed\" },\n { class: HTMLFieldSetElement, element: \"fieldset\" },\n { class: HTMLFormElement, element: \"form\" },\n /*\n { class: HTMLHeadingElement, element: \"h1\" },\n { class: HTMLHeadingElement, element: \"h2\" },\n { class: HTMLHeadingElement, element: \"h3\" },\n { class: HTMLHeadingElement, element: \"h4\" },\n { class: HTMLHeadingElement, element: \"h5\" },\n { class: HTMLHeadingElement, element: \"h6\" },\n */\n { class: HTMLHRElement, element: \"hr\" },\n { class: HTMLHtmlElement, element: \"html\" },\n { class: HTMLIFrameElement, element: \"iframe\" },\n { class: HTMLImageElement, element: \"img\" },\n // { class: HTMLInputElement, element: \"input\" },\n { class: HTMLLabelElement, element: \"label\" },\n { class: HTMLLegendElement, element: \"legend\" },\n { class: HTMLLIElement, element: \"li\" },\n { class: HTMLLinkElement, element: \"link\" },\n { class: HTMLMapElement, element: \"map\" },\n { class: HTMLMetaElement, element: \"meta\" },\n { class: HTMLMeterElement, element: \"meter\" },\n { class: HTMLObjectElement, element: \"object\" },\n { class: HTMLOListElement, element: \"ol\" },\n { class: HTMLOptGroupElement, element: \"optgroup\" },\n { class: HTMLOptionElement, element: \"option\" },\n // { class: HTMLOutputElement, element: \"output\" },\n { class: HTMLParagraphElement, element: \"p\" },\n // { class: HTMLParamElement, element: \"param\" },\n { class: HTMLPictureElement, element: \"picture\" },\n { class: HTMLPreElement, element: \"pre\" },\n { class: HTMLProgressElement, element: \"progress\" },\n { class: HTMLQuoteElement, element: \"blockquote\" },\n { class: HTMLQuoteElement, element: \"q\" },\n // { class: HTMLScriptElement, element: \"script\" },\n { class: HTMLSelectElement, element: \"select\" },\n { class: HTMLSourceElement, element: \"source\" },\n { class: HTMLSpanElement, element: \"span\" },\n // { class: HTMLStyleElement, element: \"style\" },\n { class: HTMLTableElement, element: \"table\" },\n { class: HTMLTableCellElement, element: \"td\" },\n { class: HTMLTableCellElement, element: \"th\" },\n { class: HTMLTableRowElement, element: \"tr\" },\n { class: HTMLTableSectionElement, element: \"thead\" },\n { class: HTMLTableSectionElement, element: \"tbody\" },\n { class: HTMLTableSectionElement, element: \"tfoot\" },\n { class: HTMLTextAreaElement, element: \"textarea\" },\n { class: HTMLTimeElement, element: \"time\" },\n { class: HTMLTitleElement, element: \"title\" },\n { class: HTMLTrackElement, element: \"track\" },\n { class: HTMLUListElement, element: \"ul\" },\n { class: HTMLVideoElement, element: \"video\" },\n { class: HTMLSlotElement, element: \"slot\" },\n // We can't use HTMLElement more than once, so we will use a class extending it\n // { class: class extends HTMLElement{}, element: \"code\" }\n]);\n\n// For development purposes only,\n// turn this on to see exactly which functions in each entity are called and when.\nexport const DEBUG_MODE = false;\n\nexport const DEFAULT_TEMPLATE_DOM = document.createElement('div');\n\nexport const NODES_STATE = {\n // This is a global object that maps abstract \"DOM actions\" to nodes (the nodes can be elements, text nodes, attribute nodes)\n // It is resolved to actual DOM API functions on RequestAnimationFrame calls, and then is RESET.\n // it is a \"singleton\" object\n nodeActionsMap: new Map(),\n pendingPaintNodeManagers: new Set(),\n\n // Maps events binding function (value) to (custom) element (key) \n eventBindingFunctions: new Map(),\n // Maps conditional render function (value) to conditional-render element (key)\n conditionalRenders: new Map(),\n // Maps state change handler function (value) to custom elements (key)\n stateChangeHandlers: new Map(),\n // Save requestAnimationFrame Id, to cancel if the rAF wasn't called yet on the same frame, so DOM operations will be batched to a single frame,\n // preventing several rAFs running for the same frame\n paintRafId: null,\n}\n\nexport const CONDITIONAL_OPERATORS = new ReadonlySet([\n '==',\n '===',\n '!=',\n '!==',\n '<',\n '<=',\n '>',\n '>='\n]);\nexport const CONDITIONAL_OPERATORS_REGEX = /^(==|===|!=|!==|<|<=|>|>=)/;\n\n// Used to flag items to be removed in StatefulArray\nexport const STATEFUL_ARRAY_REMOVE_FLAG_STRING = \"$$remove$$\";\nexport const STATEFUL_ARRAY_REMOVED_FLAG_STRING = \"$$removed$$\";\n\n// Names of array methods that changes the content of the array itself (mutate it)\n// NOT including methods that just changes its length (removes items without changing the rest)\nexport const ARRAY_MUTATE_METHODS = new ReadonlySet([\n \"shift\",\n \"unshift\",\n \"pop\",\n \"push\",\n \"reverse\",\n \"sort\",\n \"splice\",\n \"copyWithin\",\n \"fill\",\n]);\n\n// Array methods that change content of an array,\n// but NEVER adjusts its length in the process.\nexport const ARRAY_MUTATE_NO_LENGTH_CHANGE_METHODS = new ReadonlySet([\n \"reverse\",\n \"sort\",\n \"copyWithin\",\n \"fill\",\n]);\n\n// Array methods that derive results from content/order without mutating the base array\n// Using them during dep-capture should also record a base-array dependency\nexport const ARRAY_DERIVE_METHODS = new ReadonlySet([\n \"slice\",\n \"map\",\n \"filter\",\n \"reduce\",\n \"reduceRight\",\n \"some\",\n \"every\",\n \"forEach\",\n \"find\",\n \"findIndex\",\n \"findLast\",\n \"findLastIndex\",\n \"indexOf\",\n \"lastIndexOf\",\n \"includes\",\n \"entries\",\n \"keys\",\n \"values\",\n \"at\",\n \"join\",\n \"toString\",\n \"toLocaleString\"\n]);\n// Array \"mapping\" methods (where you pass a callback function)\nexport const ARRAY_CACHE_METHODS = new ReadonlySet([\n \"every\",\n \"some\",\n \"filter\",\n \"forEach\",\n \"map\",\n \"reduce\",\n \"reduceRight\",\n \"slice\"\n]);\n\nexport const SYMBOL_NAMES = {\n STATE_NOT_FOUND: \"SPROUT_STATE_NOT_FOUND\"\n}\n\nexport const BINDABLE_ATTRIBUTES_TO_STATE_NODES = new ReadonlySet([\n \"checked\",\n \"value\"\n]);\n\nexport const SPROUT_FROZEN_CSS_CLASS_NAME = \"sprout-frozen\";\n\n/*\nexport const SPROUT_FROZEN_CLASS_CSS = `\n .${SPROUT_FROZEN_CSS_CLASS_NAME} {\n visibility: hidden;\n clip-path: inset(100%);\n pointer-events: none;\n }\n`;\n*/\n\nexport const SPROUT_FROZEN_CLASS_CSS = `\n .${SPROUT_FROZEN_CSS_CLASS_NAME} {\n clip-path: inset(100%);\n pointer-events: none;\n opacity: 0;\n }\n`;\n\nexport const DETACH_METHOD = Object.freeze({\n HIDE_UNHIDE: 1,\n CLONE: 2\n});\n\nexport const MAX_OPERATIONS_PER_ANIMATION_FRAME = 100;\n\nexport const MAX_DOM_ACTIONS_PER_FRAME = {\n ATTRIBUTE_ACTIONS: 600,\n TEXT_ACTIONS: 300,\n ELEMENT_ACTIONS: 100,\n PROPERTY_ACTIONS: 50,\n REATTACH_ACTIONS: 10\n}\n\n// Max time in ms for doing paint jobs\nexport const FRAME_BUDGET = 8;\n\n// CSS to always put on each Shadow DOM root\nexport const SHADOW_ROOT_CSS = \n':host { contain: layout paint; }';\n\n// Maybe allow completely scoped app in the fure\nexport const SproutCustomElementRegistry = new CustomElementRegistry();\n","import { BOOLEAN_ATTRIBUTES } from \"../shared/consts\";\n\n// Convert attribute values to \"typed\" values\nexport function attributeValueToTypedValue(attrValue) {\n let typedValue = attrValue;\n if (attrValue === \"true\") typedValue = true;\n else if (attrValue === \"false\") typedValue = false;\n else if (!isNaN(Number(attrValue))) typedValue = Number(attrValue);\n return typedValue; \n}\n\n// 'this' should be the element. attributeValue should start with '@'\nexport function bindPropAttribute(attributeName, attributeValue, host) {\n if (!STRICT) {\n if (!host) {\n console.warn(`Host element not found when binding prop attribute ${attributeName} to ${attributeValue}`);\n }\n }\n const propName = attributeValue.substring(1);\n const attrNode = this.getAttributeNode(attributeName);\n attrNode.nodeValue = host.getAttribute(propName);\n attrNode.isPropAttribute = true;\n if (!host.propAttributes.has(propName)) {\n host.propAttributes.set(propName, new Set());\n }\n host.propAttributes.get(propName).add(attrNode);\n}\n\nexport function isBooleanAttribute(attributeName) {\n return BOOLEAN_ATTRIBUTES.has(attributeName);\n}\n\nexport function isFalsyStringValue(value) {\n return value === \"false\" || value === \"null\" || value === \"undefined\" || value === \"\";\n}\nexport function isStateAttribute(attrName) {\n return attrName.indexOf(':') === 0;\n}\n\nexport function isPropAttribute(attrValue) {\n return attrValue.indexOf('@') === 0;\n}\n","import { SPROUT_FROZEN_CSS_CLASS_NAME, DETACH_METHOD } from '../shared/consts.js';\n\n// Extract real custom element in-case inside a wrapper element (e.g. <li>)\nfunction getStatefulChild(child) {\n return Object.hasOwn(child, \"state\") ? child : child.firstElementChild;\n}\n\nfunction whenActive(child, func) {\n if (child.isActive) func();\n else child.addEventListener(\"active\", func, { once: true });\n}\n\n// We use pendingKeyMapActions - because states become active only after mounts (only after reattach of parent)\n// These methods are usually called on a DETACHED parent element DOM \nconst HTMLElementMapParent = {\n\n // Note the opposite arguments order!\n replaceChildWith(oldChild, newChild) {\n const statefulOldChild = getStatefulChild(oldChild);\n const oldKey = statefulOldChild?.state?.key ?? oldChild.stateKey;\n const statefulNewChild = getStatefulChild(newChild);\n const newKey = newChild.stateKey ?? statefulNewChild.stateKey;\n const replacedChild = this.replaceChild(newChild, oldChild);\n this.keyMap.delete(oldKey);\n this.keyMap.set(newKey, newChild);\n return replacedChild;\n },\n\n // Swaps between children\n swapChildWith(oldChild, newChild) {\n if (oldChild === newChild) return;\n const oldNext = oldChild.nextSiblingElement;\n const newNext = newChild.nextSiblingElement;\n this.insertBefore(oldChild, newNext);\n this.insertBefore(newChild, oldNext);\n },\n\n removeChild(child) {\n const statefulChild = getStatefulChild(child);\n const key = child.stateKey ?? statefulChild.stateKey;\n // IMPORTANT: call the native version\n HTMLElement.prototype.removeChild.call(this, child);\n this.keyMap.delete(key);\n },\n\n insertBefore(newChild, beforeChild) {\n HTMLElement.prototype.insertBefore.call(this, newChild, beforeChild);\n const statefulNewChild = getStatefulChild(newChild);\n const key = newChild.stateKey ?? statefulNewChild.stateKey;\n this.keyMap.set(key, newChild);\n },\n\n append(...elements) {\n // call native\n HTMLElement.prototype.append.call(this, ...elements);\n\n // start from current child count minus newly-added elements\n // let index = this.children.length - elements.length;\n\n for (const element of elements) {\n const statefulChild = getStatefulChild(element);\n const key = element.stateKey ?? statefulChild.stateKey;\n this.keyMap.set(key, element);\n }\n },\n\n appendChild(newChild) {\n HTMLElement.prototype.appendChild.call(this, newChild);\n const statefulChild = getStatefulChild(newChild);\n const key = newChild.stateKey ?? statefulChild.stateKey;\n this.keyMap.set(key, newChild);\n },\n\n prepend(newChild) {\n HTMLElement.prototype.prepend.call(this, newChild);\n const statefulChild = getStatefulChild(newChild);\n const key = newChild.stateKey ?? statefulChild.stateKey;\n this.keyMap.set(key, newChild);\n },\n\n detach(clonePattern = false) {\n /*\n // NOTE: this commented-out part uses the moveBefore method\n // it's not widely supported yet\n // also, it seems just hiding with display = 'none' and showing again has the same performance\n\n const parentNode = this.parentNode;\n if (!parentNode) {\n console.warn (\"Tried to detach element without parent!\");\n }\n this.originalParentNode = parentNode;\n appScope.offscreenContainer.moveBefore(this, null);\n */\n\n /* Another way is to cloneNode for the DOM tree,\n * save it, manipulate the offscreen node, \n * then replace between them -\n * the problem with this is that,\n * lifecycle methods (connectedCallback) for the DOM node \n * and all of his children will trigger\n */\n\n let returnElement;\n if (clonePattern) {\n const cloned = this.cloneNode(true);\n cloned.$$originalElement = this;\n cloned.$$detached = DETACH_METHOD.CLONE\n returnElement = cloned;\n }\n else {\n // inert makes it inactive to interaction and events\n this.setAttribute(\"inert\",\"\");\n this.classList.add(SPROUT_FROZEN_CSS_CLASS_NAME);\n this.$$detached = DETACH_METHOD.HIDE_UNHIDE;\n returnElement = this;\n }\n return returnElement;\n },\n \n reattach() {\n /*\n // NOTE: this commented-out part uses the moveBefore method\n // it's not widely supported yet\n // also, it seems just hiding with display = 'none' and showing again has the same performance\n\n if (!this.originalParentNode) {\n console.warn(\"Tried to reattach without a known originalParentNode\");\n }\n this.originalParentNode.moveBefore(this, null);\n */\n if (!STRICT) {\n if (!this.$$detached) {\n console.warn(\"Tried to reattach an undetached element\");\n return;\n }\n }\n // this.style.display = this.originalDisplayStyle;\n // this.originalDisplayStyle = undefined;\n // const detachedClone = this.detachedClone;\n // this.detachedClone = undefined;\n // this.replaceWith(detachedClone);\n // this.noRenderObserver.disconnect();\n // This triggers a single repaint, but only once\n // this.getBoundingClientRect();\n\n // display: none ==> no layout, visibility: hidden => layout, no paint\n if (this.$$detached === DETACH_METHOD.HIDE_UNHIDE) {\n this.removeAttribute(\"inert\",\"\");\n this.classList.remove(SPROUT_FROZEN_CSS_CLASS_NAME);\n }\n else if (this.$$detached === DETACH_METHOD.CLONE) {\n this.$$originalElement.replaceWith(this);\n }\n\n this.$$detached = undefined;\n },\n\n // This is a special method that instead of being called on\n // a detached map parent, it is called once the parent initially becomes a map parent\n // to syncrounously populate the keyMap\n initialAppend(...elements) {\n // call native\n HTMLElement.prototype.append.call(this, ...elements);\n\n // start from current child count minus newly-added elements\n // let index = this.children.length - elements.length;\n\n for (const element of elements) {\n this.pendingKeyMapActions.add(\n ()=> {\n const statefulChild = getStatefulChild(element);\n if (statefulChild.isActive) {\n const key = statefulChild?.state?.key ?? element.stateKey;\n this.keyMap.set(key, element);\n }\n else statefulChild.addEventListener(\"active\", ()=> {\n const key = statefulChild?.state?.key ?? element.stateKey;\n this.keyMap.set(key, element);\n }, { once: true});\n }\n );\n }\n },\n\n};\n\nexport function makeElementMapParent(parentElement) {\n Object.assign(parentElement, HTMLElementMapParent);\n // Maps state.key to currently attached child elements\n parentElement.keyMap = new Map();\n parentElement.pendingKeyMapActions = new Set();\n // This creates a compositor \"layer\" (separates the element graphics in the GPU, for smoother changes)\n parentElement.style.willChange = \"opacity\";\n}\n\n/*\nexport default class HTMLElementMapParent extends HTMLElement {\n\n // Maps state keys to child indexes (location in children)\n // Has to be a getter and not regular property - because it's \"mixed-in\" (see mixIn in class_utils)\n get keyMap() {\n if (!this._keyMap) this._keyMap = new Map();\n return this._keyMap;\n }\n // We allow passing the index of the child directly for a faster path\n // Note the opposite arguments order!\n replaceChildWith(oldChild, newChild, childIndex) {\n if (!childIndex) childIndex = [...this.children].indexOf(oldChild);\n this.replaceChild(newChild, oldChild);\n if (!oldChild?.state?.key) console.error(`Child element ${oldChild} in state map parent has no key property!`);\n this.keyMap.delete(oldChild.state.key);\n this.keyMap.set(newChild.state.key, childIndex);\n }\n\n removeChild(child) {\n if (!child?.state?.key) console.error(`Child element ${child} in state map parent has no key property!`);\n super.removeChild(child);\n this.keyMap.delete(child.state.key);\n }\n\n append(...elements) {\n super.append(...elements);\n let index = 0;\n for (const element of elements) {\n if (!element?.state?.key) console.error(`Child element ${element} in state map parent has no key property!`);\n this.keyMap.set(element.state.key, index++);\n }\n }\n appendChild(newChild) {\n if (!newChild?.state?.key) console.error(`Child element ${newChild} in state map parent has no key property!`);\n super.append(newChild);\n this.keyMap.set(newChild.state.key, this.children.length-1);\n }\n prepend(newChild) {\n if (!newChild?.state?.key) console.error(`Child element ${newChild} in state map parent has no key property!`);\n super.prepend(newChild);\n this.keyMap.forEach((valueIndex, key)=> this.keyMap.set(key, valueIndex+1));\n this.keyMap.set(newChild.state.key, 0);\n }\n}\n*/\n","import { mapStateArrayToElements } from \"../shared/state_utils.js\";\nimport { SUPPORTED_ATTRIBUTES_FOR_BINDING } from \"../shared/consts.js\";\nimport { isElementAList } from \"./DOM_utils.js\";\nimport { makeElementMapParent} from \"./HTMLElementMapParent.js\";\n\nfunction mapStateToElements(stateItemsPropertyName, customElementName, parentElement) {\n let [stateItemsArray, theState] = parentElement.getState(stateItemsPropertyName, true);\n if (!STRICT) {\n if (!stateItemsArray || !Array.isArray(stateItemsArray)) {\n throw new Error (\"State value for _map is not an array, in state property: \" + stateItemsPropertyName);\n }\n if (!stateItemsArray.hasOwnProperty(\"_isStatefulArray\")) {\n throw new Error(`Array '${stateItemsPropertyName}' used for State Map must be a stateful array. Use a direct array value or an SSH with statify:true or stateMap: true `);\n }\n }\n stateItemsArray.makeStateMap();\n const wrapInElement = isElementAList(parentElement) ? \"li\" : undefined;\n const elements = mapStateArrayToElements(stateItemsArray, customElementName, wrapInElement, parentElement);\n parentElement.innerHTML = \"\";\n if (elements.length) {\n // parentElement SHOULD BE HTMLElementMapParent (with \"superpowers\" such as keyMap)\n parentElement.append(...elements);\n }\n return theState;\n}\n\n// Functions that run and handles \"Command\" attributes. Note, they should always be called\n// with the \"this\" context set to the Element instance the command is defined on\nexport const COMMANDS = {\n map: function(commandValue) {\n // The command value (\"argument\") is \"<stateProp>:<custom element name>\"\n const [stateItemsPropertyName, customElementName] = commandValue.split(':');\n const thiselement = this;\n // Give this element \"Map parent element super powers\"\n makeElementMapParent(thiselement);\n\n this.onAfterPaint(()=> {\n const theState = mapStateToElements(stateItemsPropertyName, customElementName, thiselement);\n if (!theState) throw new Error(`Mapping ${stateItemsPropertyName} to ${customElementName} failed!`);\n const stateArray = theState[stateItemsPropertyName];\n if (!stateArray || !stateArray.hasOwnProperty('_isStatefulArray')) {\n throw new Error(`State array ${stateItemsPropertyName} for State Map must be stateful!`);\n }\n theState._stateManager.addStateMap(stateItemsPropertyName, customElementName, thiselement);\n });\n },\n /*\n text: function(commandValue) {\n const stateProp = commandValue;\n this.initialSetText(stateProp);\n // DO NOT CALL .normalize()! It might change the Text Nodes!\n },\n */\n bind: function(commandValue) {\n if (!STRICT) {\n if (this.tagName !== \"INPUT\") {\n console.warn (`_bind command is only supported on input elements!`);\n return;\n }\n }\n const [attributeName, statePropName] = commandValue.split(':');\n if (!STRICT) {\n if (!attributeName || !statePropName) {\n console.warn (\"Incorrect usage of _bind command! Please pass <attribute-name>:<state-property-name>\");\n return;\n }\n if (!SUPPORTED_ATTRIBUTES_FOR_BINDING.has(attributeName)) {\n console.warn (`Attribute ${attributeName} is not supported for _bind command!`);\n return;\n }\n }\n this.bindAttributeToState(attributeName, statePropName);\n },\n bindprop: function(commandValue) {\n const [statePropName, elementPropName] = commandValue.split(':');\n const [stateValue, stateObject] = this.getState(statePropName, true);\n if (!STRICT) {\n if (!stateObject) {\n console.warn (`State property ${statePropName} not found for bindProp command!`);\n return;\n }\n }\n\n this[elementPropName] = stateValue;\n const stateManager = stateObject._stateManager;\n stateManager.addStateHook((_, newValue)=> {\n this[elementPropName] = newValue\n }, [ statePropName ]);\n }\n}\n","\n\n\n/* Possible expression:\n * literal: straight state prop,.\n * negation: !something (not something)\n * equality: is_something:equalityValue\n * ternary: somethingIsTruthy?returnThis:[elseThis]\n */\nexport function parseStateExpression(expression) {\n if (expression.indexOf('@') === 0) {\n return [\"property\", [expression.substring(1)]];\n }\n if (expression.indexOf('!') === 0) {\n return [\"negation\", [expression.substring(1)]];\n }\n let charIndex = 0;\n let parsed = expression[charIndex];\n let char;\n while (charIndex++ < expression.length) {\n char = expression[charIndex];\n if (charIndex == 3 && parsed == \"is_\") {\n return [\"equality\", expression.substring(3).split(':')];\n }\n if (char === '?') {\n return [\"ternary\", [parsed, ...expression.substring(charIndex+1).split(':')]];\n }\n parsed += char;\n }\n return [\"literal\", [expression]];\n}\n\nexport function fromAttributeValue(value) {\n if (value === '') return true;\n if (value === null) return false;\n return value;\n}\n\nexport function toAttributeValue(value) {\n if (value === true) return '';\n if (value === false) return null;\n return value;\n}","import { bindPropAttribute, isPropAttribute, isStateAttribute } from \"./attr_utils.js\";\nimport { COMMANDS as COMMAND_ATTRIBUTES } from \"./commands.js\";\nimport { SUPPORTED_ATTRIBUTES_FOR_BINDING, GLOBAL_STATE_FUNCTION_NAME, AUTO_ATTRIBUTES_TO_PROPS, SYMBOL_NAMES, OBSERVED_ATTRIBUTES } from \"../shared/consts.js\";\nimport { setAttribute, setStateAttribute, setStateText } from \"../shared/state_utils.js\";\nimport { fromAttributeValue } from \"../shared/parse_utils.js\";\n\nexport function isReactiveCustomElement(element) {\n return element && element.isReactiveElement && !element.isNativeElement;\n}\n\nexport function extendElementClassWithReactiveElementClass(elementClass, appScope = window, isInputElement = false) {\n class ReactiveElement extends elementClass {\n // Should contain the parent (containing) custom element (a ReactiveCustomElement instance)\n host = null\n // True if connectedCallback was called once\n #wasMounted = false\n\n // The name used for the ref property\n refName;\n static observedAttributes = OBSERVED_ATTRIBUTES;\n\n boundStateToProperties = new Map();\n bindStateToProperty(statePropName, elementProprtyName) {\n this.boundStateToProperties.set(statePropName, elementProprtyName);\n }\n constructor() {\n super();\n this.isReactiveElement = true;\n this.isNativeElement = true;\n }\n\n\n activate() {\n const commands = [];\n const attributeNames = this.getAttributeNames();\n for (const attrName of attributeNames) {\n const attrValue = this.getAttribute(attrName);\n // This also resolves \"State attributes\"\n this.initialSetAttribute(attrName, attrValue);\n\n // Save \"Command attributes\"\n if (attrName.indexOf('_') === 0) {\n const command = attrName.substring(1);\n commands.push({ command, args: attrValue });\n }\n }\n\n commands.forEach(({ command, args })=> {\n COMMAND_ATTRIBUTES[command]?.call(this, args);\n // Run custom commands\n appScope.appCommands?.[command]?.call(this, args);\n const componentCommands = this.host?.commands || this.commands;\n componentCommands?.[command]?.call(this, args);\n });\n\n this.#pendingAttributeChanges.forEach(attributeChangeHandler=> attributeChangeHandler.call(this));\n this.#pendingAttributeChanges.length = 0;\n this.isActive = true;\n }\n\n // IMPORTANT: Sometimes we check this.host directly and EXPECT IT to be null for the host itself!\n // But, this function is a \"public\" method that always returns something - if a child it will return parent ce,\n // if parent ce it will return itself\n getHost() {\n return this.host || this.parentNode || this?.getRootNode()?.host;\n }\n connectedCallback() {\n if (this.#wasMounted) return;\n // IMPORTANT: THIS *CAN* be NULL, DO NOT CHANGE IT!\n // It is part of the way a check is made to see if an element is part of ShadowDOM!\n // host will be null if the element is part of the DOM === the \"root\" custom element will have null in .host\n // THIS SHOULD BE THE FIRST THING THAT HAPPENS!\n // getRootNode - returns shadowRoot if this is inside shadow DOM, and document if it's in light DOM.\n const rootNode = this.getRootNode();\n\n // If this is inside light DOM and the parent is a Sprout custom element - we take the direct parent,\n // this works e.g. with a light element with \"slot\" attribute, inside a Sprout component\n // (It will have access to its \"state\")\n\n if (rootNode !== document) {\n this.host = rootNode.host;\n }\n else if (isReactiveCustomElement(this.parentElement)) {\n this.host = this.parentElement;\n }\n else {\n // This could mean this is actually a top-level Sprout Custom Element (\"host\"),\n // i.e. a custom element that is not inside shadowDOM\n roost.host = null;\n }\n\n if (this.host) {\n // Once the host custom element is connected\n // then its 'State' is ready and activated,\n // then we can call the sub-elements 'activate()',\n // which relies on an active state.\n // Doing it like this, allow visual render faster,\n // defering the state handling.\n if (this.host.isActive) this.activate(); \n else {\n this.host.addEventListener(\"active\", ()=> this.activate(), { once: true });\n }\n }\n else {\n this.activate();\n }\n\n this.#wasMounted = true;\n }\n\n disconnectedCallback() {\n const host = this.host ?? this;\n if (host.ref) {\n delete host.ref[this.refName];\n }\n }\n\n // Including this will run this when \"moving\" the elements\n // in the same document, i.e. instead of calling connectedCallback/disoconnectedCallback\n // It keeps the element \"alive\"\n connectedMoveCallback() {}\n\n #handleAttributeChange(attributeName, oldValue, newValue) {\n const host = this.isNativeElement ? (this.host || this.getRootNode().host) : this;\n\n if (attributeName === \"ref\") {\n const refValue = newValue;\n host.ref[refValue] = this;\n this.refName = refValue;\n }\n /*\n else if (newValue && newValue.indexOf('@') === 0) {\n bindPropAttribute.call(this, attributeName, newValue, host);\n }\n */\n }\n #pendingAttributeChanges = [];\n attributeChangedCallback(attributeName, oldValue, newValue) { \n if (oldValue === newValue) return;\n // If host is not yet connected - defer handling.\n if (!this.isConnected) {\n this.#pendingAttributeChanges.push(\n ()=> this.#handleAttributeChange(attributeName, oldValue, newValue)\n );\n }\n else {\n this.#handleAttributeChange(attributeName, oldValue, newValue);\n }\n }\n\n // Gets state value of stateProp,\n // tries to resolve from local state(s) first, up the \"state tree\",\n // and then from global. If the second argument is true: \n // returns both the state value and the state object\n // else return just the state value\n getState(stateProp, returnStateObject=false) {\n let theState;\n // If this is a reactive element inside a reactive web component - the host should be the containing web component - \n // we should reference its state, if host is null - it is most likely the host web component\n let elementInstance = this.isNativeElement && this.host ? this.host : this;\n let stateVal, stateFound = false;\n if (elementInstance && elementInstance.state && Object.hasOwn(elementInstance.state,stateProp)) {\n stateFound = true;\n theState = elementInstance.state;\n stateVal = theState[stateProp];\n }\n\n // Go \"up the state layers\" to try to find the state\n if (!stateFound) {\n while (!stateFound && elementInstance.host) {\n elementInstance = elementInstance.host;\n if (elementInstance && elementInstance.state && Object.hasOwn(elementInstance.state, stateProp)) {\n stateFound = true;\n theState = elementInstance.state;\n stateVal = theState[stateProp];\n }\n }\n }\n\n if (!stateFound) {\n // Try the global state\n const globalState = appScope[GLOBAL_STATE_FUNCTION_NAME]();\n if (globalState && Object.hasOwn(globalState, stateProp)) {\n stateFound = true;\n theState = globalState\n stateVal = theState[stateProp];\n }\n }\n\n if (!stateFound) {\n stateVal = undefined;\n }\n if (returnStateObject) {\n return [stateVal, theState];\n }\n return stateVal;\n }\n \n findElement(refName) {\n const host = this.host || this;\n // if Shadow DOM is used, the \"root\" element is shadowRoot, otherwise it is the \n // web component itself\n let root = host;\n if (appScope.SPROUT_CONFIG.useShadow) {\n root = host.shadowRoot;\n }\n return Object.hasOwn(host.ref, refName) ? host.ref[refName] : root.querySelector(`[ref=\"${refName}\"]`);\n }\n\n // The \"initialSetX\" functions are called:\n // 1. When a custom element instance is first created (before it's connected) - \n // state attribute values are set to their state prop names (e.g: '$name').\n // 2. When a custom element instance becomes connected (added to the DOM) - state attribute values are actually resolved to the\n // value of their respective state prop values, and binding between them occurs.\n initialSetText(stateProp) {\n setStateText.call(this, stateProp);\n }\n initialSetAttribute(attributeName, attributeValue) {\n attributeValue = String(attributeValue);\n const isPropAttr = isPropAttribute(attributeValue);\n const isStateAttr = isStateAttribute(attributeName); \n let valueToSet = attributeValue;\n\n // \"State attribute\"\n if (isStateAttr) {\n if (!STRICT) {\n if (isPropAttr) {\n console.warn(\"Mixing between prop attributes and state attributes can lead to unexpected results!\");\n }\n }\n const stateProp = attributeValue;\n const attrName = attributeName.substring(1);\n if (attrName === \"textcontent\") {\n this.initialSetText(stateProp); \n }\n else {\n setStateAttribute.call(this, attrName, stateProp);\n }\n }\n else { \n if(isPropAttr) {\n const host = this.getHost();\n if (!STRICT) {\n if (!host) {\n console.warn(`Host element not found when resolving prop attribute ${attributeName}:${attributeValue}`);\n }\n }\n const propName = attributeValue.substring(1);\n const propValue = host.getAttribute(propName);\n valueToSet = propValue;\n }\n if (attributeName === \"textcontent\") {\n this.textContent = valueToSet;\n }\n else {\n setAttribute.call(this, attributeName, valueToSet);\n }\n }\n }\n\n onAfterPaint(callback) {\n requestAnimationFrame(()=>\n requestAnimationFrame(callback)\n );\n }\n }\n\n if (!isInputElement)\n return ReactiveElement;\n else {\n class ReactiveInputElement extends ReactiveElement {\n // Used for the _bind command, which allows \"reverse-binding\" attribute values to state props,\n // keys are attribute names, values are state prop names\n boundAttributesToState = new Map();\n #changeEventHandler;\n // #inputEventHandler;\n\n static observedAttributes = ReactiveElement.observedAttributes\n .concat([...SUPPORTED_ATTRIBUTES_FOR_BINDING]);\n \n bindAttributeToState(attributeName, statePropName) {\n this.boundAttributesToState.set(attributeName, statePropName);\n }\n updateStateFromAttribute(attributeName) {\n let newValue = fromAttributeValue(this.getAttribute(attributeName));\n const stateProp = this.boundAttributesToState.get(attributeName);\n const [stateValue, theState] = this.getState(stateProp, true);\n if (stateValue === Symbol.for(SYMBOL_NAMES.STATE_NOT_FOUND)) {\n throw Error(`updateStateFromAttribute: State property ${stateProp} not found`);\n }\n if (stateValue !== newValue) {\n theState[stateProp] = newValue;\n }\n }\n\n activate() {\n super.activate();\n\n\n this.#changeEventHandler = function() {\n const changeEvent = new Event('inputChange', { bubbles: true, composed: true });\n // Because of bubbling, the handler can trigger on non-input elements as well\n if (this.type === \"checkbox\") {\n const stateManager = this.host.state._stateManager;\n // This is a map where keys are elements, and values are \"checked\" State attribute nodes\n const checkedStateAttributeNodesMap = stateManager.nodeManager.bindableAttributesStateNodes.get(\"checked\");\n let checkedAttributeNode = null;\n if (checkedStateAttributeNodesMap.has(this)) {\n checkedAttributeNode = checkedStateAttributeNodesMap.get(this);\n }\n\n if (this.checked) {\n if (!checkedAttributeNode) checkedAttributeNode = document.createAttribute(\"checked\");\n this.setAttributeNode(checkedAttributeNode);\n }\n else {\n if (!checkedAttributeNode) checkedAttributeNode = this.getAttributeNode(\"checked\");\n if (checkedAttributeNode) this.removeAttributeNode(checkedAttributeNode);\n }\n }\n this.dispatchEvent(changeEvent);\n }\n /*\n this.#inputEventHandler = function() {\n const changeEvent = new Event('inputChange', { bubbles: true, composed: true });\n // Because of bubbling, the handler can trigger on non-input elements as well\n if (this.tagName === \"INPUT\") {\n if (this.type === \"text\") {\n const stateManager = this.host.state._stateManager;\n // This is a map where keys are elements, and values are \"checked\" State attribute nodes\n const valueStateAttributeNodesMap = stateManager.nodeManager.bindableAttributesStateNodes.get(\"value\");\n let valueAttributeNode = null;\n if (valueStateAttributeNodesMap.has(this)) {\n valueAttributeNode = StateAttributeNodesMap.get(this);\n }\n if (this.checked) {\n if (!checkedAttributeNode) checkedAttributeNode = document.createAttribute(\"checked\");\n this.setAttributeNode(checkedAttributeNode);\n }\n else {\n if (!checkedAttributeNode) checkedAttributeNode = this.getAttributeNode(\"checked\");\n if (checkedAttributeNode) this.removeAttributeNode(checkedAttributeNode);\n }\n }\n }\n this.dispatchEvent(changeEvent);\n }\n */\n // Change events does not automatically bubble, we need to listen and bubble up a new event\n this.addEventListener('change', this.#changeEventHandler, false);\n /*\n if (Object.hasOwn(this.boundNativePropertiesToState, \"value\")) {\n this.#inputEventHandler = function() {\n const inputEvent = new Event('inputValue', { bubbles: true, composed: true });\n if (Object.hasOwn(this.boundNativePropertiesToState, \"value\")) {\n this.updateStateFromNativeProperty(\"value\");\n }\n this.dispatchEvent(inputEvent);\n }\n this.addEventListener('input', this.#inputEventHandler, false);\n }\n */\n\n /*\n switch (this.type) {\n case \"text\": {\n this.#inputValueSetter = Object.getOwnPropertyDescriptor(appScope.window.HTMLInputElement.prototype, \"value\").set;\n break;\n }\n case \"checkbox\": {\n this.#inputCheckedSetter = Object.getOwnPropertyDescriptor(appScope.window.HTMLInputElement.prototype, \"checked\").set;\n break;\n }\n }\n */\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n if (this.#changeEventHandler) this.removeEventListener(\"change\", this.#changeEventHandler);\n // if (this.#inputEventHandler) removeEventListener(\"input\", this.#inputEventHandler);\n this.boundAttributesToState.clear();\n }\n\n attributeChangedCallback(attributeName, oldValue, newValue) {\n if (!STRICT) {\n if (attributeName.indexOf(':') === 0) {\n console.warn(\"State attributes should never be changed explicitely!\");\n return false;\n }\n }\n super.attributeChangedCallback(...arguments);\n // These are attributes which their value should automatically \n // change on a property as well\n if (AUTO_ATTRIBUTES_TO_PROPS.has(attributeName)) {\n const newPropValue = fromAttributeValue(newValue);\n if (this[attributeName] !== newPropValue) {\n this[attributeName] = newPropValue;\n }\n }\n if (this.boundAttributesToState.has(attributeName)) {\n this.updateStateFromAttribute(attributeName)\n }\n }\n }\n\n return ReactiveInputElement;\n }\n}\n","import { isReactiveCustomElement } from \"./ReactiveElement\";\nimport { SproutCustomElementRegistry } from '../shared/consts.js';\nexport function isElementAList(element) {\n return element.tagName === \"OL\" || element.tagName === \"UL\";\n}\n\nexport function isElementAListItem(element) {\n return element.tagName === \"LI\";\n}\n\nexport function getCustomElementFromMappedElement(element) {\n if (isReactiveCustomElement(element)) return element;\n if (isReactiveCustomElement(element.firstElementChild)) return element.firstElementChild;\n}\n\nexport function createSproutElement(elementName) {\n return document.createElement(elementName, { customElementRegistry: SproutCustomElementRegistry });\n}\n\n","import { NODES_STATE, \n MAX_OPERATIONS_PER_ANIMATION_FRAME, \n MAX_DOM_ACTIONS_PER_FRAME,\n FRAME_BUDGET\n} from \"./consts\";\n\n\nconst { nodeActionsMap } = NODES_STATE;\nconst { pendingPaintNodeManagers } = NODES_STATE;\n\n// Maps \"TYPE\" strings to rAF ids\n// TYPE is the type of task the functions handle,\n// we only save for each type the rAF ID - \n// because we only use it to cancel the rAF -\n// and request a new one, in case the old one hasn't run yet (debounce)\nconst rafIds = new Map();\n\nexport function queueAnimationFrame(functionsToRun, type, afterRunFn) {\n let rafId;\n if (rafIds.has(type)) {\n rafId = rafIds.get(type);\n cancelAnimationFrame(rafId);\n }\n\n if (functionsToRun.length < MAX_OPERATIONS_PER_ANIMATION_FRAME) {\n rafId = requestAnimationFrame(()=> {\n rafIds.delete(type);\n functionsToRun.forEach(fn=> fn());\n if (afterRunFn) afterRunFn();\n });\n rafIds.set(type, rafId);\n }\n else {\n rafIds.delete(type);\n const functions = [...functionsToRun];\n let functionsIndex = 0;\n function runNextBatch() {\n const functionsBatch = functions.slice(functionsIndex, functionsIndex + MAX_OPERATIONS_PER_ANIMATION_FRAME);\n functionsBatch.forEach(fn=> fn());\n functionsIndex += MAX_OPERATIONS_PER_ANIMATION_FRAME;\n if (functionsIndex < functions.length) requestAnimationFrame(runNextBatch);\n }\n requestAnimationFrame(runNextBatch);\n }\n}\n\nlet { \n paintRafId,\n eventBindingFunctions,\n stateActivates,\n conditionalRenders,\n} = NODES_STATE; \n\nexport function queueBindEvents(element, bindFunction) {\n eventBindingFunctions.set(element, bindFunction);\n queueAnimationFrame(\n Array.from(eventBindingFunctions.values()), \n \"EVENTS_BIND\",\n ()=> eventBindingFunctions.clear()\n );\n}\nexport function queueConditionalRender(element, renderFunction) {\n conditionalRenders.set(element, renderFunction);\n queueAnimationFrame(\n Array.from(conditionalRenders.values()), \n \"CONDITIONAL_RENDER\",\n ()=> conditionalRenders.clear()\n );\n}\nexport function queuePaint() {\n if (paintRafId) cancelAnimationFrame(paintRafId);\n paintRafId = requestAnimationFrame(()=> {\n paintRafId = null;\n doUpdateDOM();\n });\n}\n\n// For debugging purposes\nexport function logNodeActions() {\n [...nodeActionsMap.entries()]\n .map(([node, actions])=> {\n switch (node.nodeType) {\n case Node.ELEMENT_NODE: {\n console.log (\"Actions for\", node);\n const appendElements = [...actions.append.values()];\n if (appendElements.length) {\n console.log(\"Append\", appendElements);\n }\n const setProperty = [...actions.setProperty.entries()];\n if (replaceElements.length) {\n console.log(\"Set property\", setProperty);\n }\n console.log (\"Reattach? \", actions.reattach);\n break;\n }\n\n case Node.ATTRIBUTE_NODE: {\n console.log (\"Set Attribute\", node.nodeName, \"on\", node.originalOwnerElement, \"to\", actions.setAttribute);\n break;\n }\n\n case Node.TEXT_NODE: {\n console.log (\"Set text content for\", node.parentNode, \"to\", actions.textContent);\n break;\n }\n }\n });\n}\n\n// actions are DOM API functions\n/*\nfunction runDOMActions(actions, max=1000) {\n const runActions = actions.splice(0, max);\n runActions.forEach(action=> action());\n}\n*/\nfunction runDOMActions(actions) {\n actions.forEach(action=> action());\n}\n\n// This function runs on requestAnimationFrame to run pending Node actions\n// Usually DOMActions is not passed and the DOM actions are taken from the global nodeActionsMap\n// But if DOMActions is passed (as an array of separated actions by type) -\n// then the function handles them instead - this is used when \"time slicing\",\n// i.e. if an animation frame had too many actions to handle in one frame, it is deferred to the next frame\n/*\nexport function doUpdateDOM(DOMActions) {\n let attributeActions,\n textActions,\n propertySetActions,\n elementActions,\n reattachActions;\n\n if (DOMActions && DOMActions.length) {\n [attributeActions, textActions, propertySetActions, elementActions, reattachActions] = DOMActions;\n }\n else {\n // Immediately clone current global nodleActionsMap,\n // to avoid race conditions (doUpdateDOM is called async)\n const thisNodeActionsMap = new Map(nodeActionsMap);\n nodeActionsMap.clear();\n if (thisNodeActionsMap.size) {\n logNodeActions();\n [attributeActions, textActions, propertySetActions, elementActions, reattachActions] = resolveNodeActionsMapToDOMActions(thisNodeActionsMap);\n }\n }\n\n performance.mark(\"todo-run-DOM-actions-start\");\n runDOMActions(attributeActions, MAX_DOM_ACTIONS_PER_FRAME.ATTRIBUTE_ACTIONS);\n runDOMActions(textActions, MAX_DOM_ACTIONS_PER_FRAME.TEXT_ACTIONS);\n runDOMActions(propertySetActions, MAX_DOM_ACTIONS_PER_FRAME.ELEMENT_ACTIONS);\n runDOMActions(elementActions, MAX_DOM_ACTIONS_PER_FRAME.PROPERTY_ACTIONS);\n runDOMActions(reattachActions, MAX_DOM_ACTIONS_PER_FRAME.REATTACH_ACTIONS);\n performance.mark(\"todo-run-DOM-actions-finish\");\n\n const deferredActions = [];\n if (attributeActions.length) deferredActions.push(attributeActions);\n if (textActions.length) deferredActions.push(textActions);\n if (propertySetActions.length) deferredActions.push(propertySetActions);\n if (elementActions.length) deferredActions.push(elementActions);\n if (reattachActions.length) deferredActions.push(reattachActions);\n\n if (deferredActions.length) {\n console.log (`DEFERRED ${deferredActions.length}`);\n requestAnimationFrame(()=> doUpdateDOM(deferredActions));\n }\n}\n*/\n\nexport function doUpdateDOM(pendingNodeManagers) {\n const start = performance.now();\n let frameElapsed = 0;\n\n for (const nodeManager of pendingPaintNodeManagers) {\n const [attributeActions, textActions, propertySetActions, elementActions, reattachActions] = nodeManager.resolveToDOMActions();\n console.log (\"Running reattach\");\n runDOMActions(reattachActions.slice(0, MAX_DOM_ACTIONS_PER_FRAME.REATTACH_ACTIONS));\n frameElapsed = performance.now() - start;\n console.log (\"took: \", frameElapsed);\n if (frameElapsed > FRAME_BUDGET ) {\n return requestAnimationFrame(()=> doUpdateDOM());\n }\n\n console.log (\"Running elements\");\n\n runDOMActions(elementActions.slice(0, MAX_DOM_ACTIONS_PER_FRAME.ELEMENT_ACTIONS));\n frameElapsed = performance.now() - start;\n if (frameElapsed > FRAME_BUDGET) {\n return requestAnimationFrame(()=> doUpdateDOM());\n }\n console.log (\"took: \", frameElapsed);\n\n console.log (\"Running attributes\");\n runDOMActions(attributeActions.slice(0, MAX_DOM_ACTIONS_PER_FRAME.ATTRIBUTE_ACTIONS));\n frameElapsed = performance.now() - start;\n\n if (frameElapsed > FRAME_BUDGET) {\n return requestAnimationFrame(()=> doUpdateDOM());\n }\n\n console.log (\"Running text\");\n runDOMActions(textActions.slice(0, MAX_DOM_ACTIONS_PER_FRAME.TEXT_ACTIONS));\n frameElapsed = performance.now() - start;\n if (frameElapsed > FRAME_BUDGET) {\n return requestAnimationFrame(()=> doUpdateDOM());\n }\n\n runDOMActions(propertySetActions.slice(0, MAX_DOM_ACTIONS_PER_FRAME.PROPERTY_ACTIONS));\n frameElapsed = performance.now() - start;\n if (frameElapsed > FRAME_BUDGET) {\n return requestAnimationFrame(()=> doUpdateDOM());\n }\n\n if (attributeActions.length ||\n textActions.length || \n propertySetActions.length || \n elementActions.length || \n reattachActions.length) {\n return requestAnimationFrame(()=> doUpdateDOM());\n }\n nodeManager.paintStatus = null;\n pendingPaintNodeManagers.delete(nodeManager);\n console.log (\"Took \", performance.now() - start);\n }\n if (frameElapsed > FRAME_BUDGET ) {\n return requestAnimationFrame(()=> doUpdateDOM());\n }\n\n /*\n performance.mark(\"todo-run-DOM-actions-start\");\n runDOMActions(attributeActions);\n runDOMActions(textActions);\n runDOMActions(propertySetActions);\n runDOMActions(elementActions);\n runDOMActions(reattachActions);\n performance.mark(\"todo-run-DOM-actions-finish\");\n\n const deferredActions = [];\n if (attributeActions.length) deferredActions.push(attributeActions);\n if (textActions.length) deferredActions.push(textActions);\n if (propertySetActions.length) deferredActions.push(propertySetActions);\n if (elementActions.length) deferredActions.push(elementActions);\n if (reattachActions.length) deferredActions.push(reattachActions);\n\n if (deferredActions.length) {\n console.log (`DEFERRED ${deferredActions.length}`);\n requestAnimationFrame(()=> doUpdateDOM(deferredActions));\n }\n */\n}\n\n// Test/utility: wait until there are no pending paint node managers\nexport function waitForIdle() {\n return new Promise((resolve) => {\n function check() {\n if (!NODES_STATE.pendingPaintNodeManagers.size) return resolve();\n requestAnimationFrame(check);\n }\n requestAnimationFrame(check);\n });\n}\n\n// Expose on global for tests\nif (typeof window !== 'undefined') {\n window.SproutWaitIdle = waitForIdle;\n}\n\n/*\nconst start = performance.now();\nconst FRAME_BUDGET = 8; // leave room for other work\n\nwhile (pendingUpdates.length) {\n const update = pendingUpdates.shift();\n update.applyDOMOps();\n\n if (performance.now() - start > FRAME_BUDGET) {\n requestAnimationFrame(flushPendingUpdates);\n return;\n }\n}\n */\n","import { stateToElement, mapStateArrayToElements } from \"../shared/state_utils.js\";\nimport { getCustomElementFromMappedElement, isElementAList, isElementAListItem } from \"./DOM_utils.js\";\nimport { queuePaint, queueConditionalRender } from \"../shared/paint_utils.js\";\nimport { NODES_STATE } from \"../shared/consts.js\";\nimport { getStateMapArrayIterator } from \"./StateMapArray.js\";\n\nconst { nodeActionsMap } = NODES_STATE;\nconst { pendingPaintNodeManagers } = NODES_STATE;\nfunction getNodeActionsForNode(node) {\n if (!nodeActionsMap.has(node)) nodeActionsMap.set(node, getNewNodeActionsObject(node.nodeType));\n const nodeActions = nodeActionsMap.get(node);\n return nodeActions;\n}\n\nexport function setStateNodeValueAction(nodeManager, node, value) {\n if (node.nodeType === Node.ATTRIBUTE_NODE) {\n nodeManager.addNodeAction(node, {actionType: \"setAttribute\", actionValue: value} );\n }\n else if (node.nodeType === Node.TEXT_NODE) {\n nodeManager.addNodeAction(node, {actionType: \"textContent\", actionValue: value} );\n }\n}\n\n// stateIdentifier can be a State object (for state maps),\n// or a State property (for conditionally rendered elements)\nexport function addAppendAction(nodeActions, nodeToAppend) {\n nodeActions.append.add(nodeToAppend);\n}\n\n// For a \"detached\" node - set it to reattach back to its parent\n// As of May 2025 - this is implemented using display: none, and then changing back to the original display\nexport function setReattachAction(node) {\n const nodeActions = getNodeActionsForNode(node);\n nodeActions.reattach = true;\n}\n\n// This is an object used to represent pending node actions,\n// that are batched and executed in reflows (requestAnimationFrame)\nexport function getNewNodeActionsObject(nodeType) {\n\n switch (nodeType) {\n case Node.ATTRIBUTE_NODE: {\n return {\n setAttribute: undefined\n }\n }\n\n case Node.TEXT_NODE: {\n return {\n textContent: undefined\n } \n }\n\n case Node.ELEMENT_NODE: {\n return {\n // Nodes to append to the end of node's children, \n append: new Set(),\n // A single operation, reattach to original parent element, after detachment, if true\n reattach: false,\n // Set values for native properties (this is here, because it can be related to rendering, e.g. checked, value)\n setProperty: new Map(),\n get hasPendingActions() {\n return (\n this.append.size ||\n this.reattach ||\n this.setProperty.size\n );\n }\n }\n }\n }\n}\n\nfunction reconcileStateMapElement(stateMapArray, customElementName, parentElement, stateManager) {\n console.log (\"[RECONCILE] LAST OPERATION:\", stateMapArray.lastOperation);\n // If needed - the parent element will be detached,\n // so DOM changes to it will not be made on the main tree,\n // It will be reattached back reshaped, as a deferred functions (like all other DOM functions)\n let detachedParentElement = null;\n let mappedElementChange = false;\n const isParentList = isElementAList(parentElement);\n const replacedChildren = new Map();\n\n const refName = parentElement.getAttribute && parentElement.getAttribute('ref') || parentElement.refName || parentElement.tagName;\n const asState = (it)=> Object.hasOwn(it, 'state') ? it.state : it;\n const expectedItems = stateMapArray.map(asState);\n const keyOfChild = (el)=> {\n const st = isParentList ? el.firstElementChild?.state : el.state;\n return st ? st.key : el.stateKey;\n }\n const labelOfChild = (el)=> {\n const st = isParentList ? el.firstElementChild?.state : el.state;\n return st ? st.label : undefined;\n }\n\n try {\n console.log (\n `[RECONCILE] before (ref=${refName}), EXPECTED KEYS:`,\n expectedItems.map(it=> it?.key),\n 'EXISTING KEYS',\n [...parentElement.children].map(keyOfChild),\n 'EXPECTED LABELS',\n expectedItems.map(it=> it?.label),\n 'EXISTING LABELS',\n [...parentElement.children].map(labelOfChild)\n );\n } catch(_) {}\n // A whole new array\n if (stateMapArray.isNewArray) {\n if (stateMapArray.length) {\n mappedElementChange = true;\n detachedParentElement = parentElement.detach();\n const wrapInElement = isParentList ? \"li\" : undefined;\n const elements = mapStateArrayToElements(stateMapArray, customElementName, wrapInElement, detachedParentElement);\n detachedParentElement.innerHTML = '';\n detachedParentElement.append(...elements);\n }\n }\n else {\n // Last array method called is saved\n if (stateMapArray.lastOperation) {\n mappedElementChange = true;\n if (!detachedParentElement) detachedParentElement = parentElement.detach();\n const children = detachedParentElement.children;\n const [operation, args] = stateMapArray.lastOperation;\n switch (operation) {\n case \"shift\": {\n detachedParentElement.removeChild(detachedParentElement.firstElementChild);\n break;\n }\n case \"unshift\": {\n // arg1 represents the number of elements prepended\n // The elements prepended are already at the start of the State Array\n const prependLength = args[0];\n // Prepend in reverse to preserve order at the head\n for (let i = prependLength - 1; i >= 0; i--) {\n const stateItem = stateMapArray[i];\n // If an element with this key already exists, move it to the head\n const existing = detachedParentElement.keyMap?.get(stateItem.key);\n if (existing) {\n const first = detachedParentElement.firstElementChild;\n if (existing !== first) {\n // Move existing node to the head to preserve identity\n detachedParentElement.insertBefore(existing, first);\n }\n } else {\n const newChild = stateToElement(stateItem, customElementName, isParentList ? \"li\" : undefined, detachedParentElement);\n // Ensure key is available before child activation\n newChild.stateKey = stateItem.key;\n detachedParentElement.prepend(newChild);\n }\n }\n break;\n }\n case \"pop\": {\n detachedParentElement.removeChild(detachedParentElement.lastElementChild);\n break;\n }\n\n case \"push\": {\n // args[0] is count of pushed items, not the previous length.\n // The previous length equals current children count on the detached parent.\n const startIndex = children.length;\n for (let i=startIndex, len=stateMapArray.length; i<len; i++) {\n const stateItem = stateMapArray[i];\n const newChild = stateToElement(stateItem, customElementName, isParentList ? \"li\" : undefined, detachedParentElement);\n // Ensure key is available before child activation\n newChild.stateKey = stateItem.key;\n detachedParentElement.appendChild(newChild);\n }\n break;\n }\n\n // splice(start, deleteCount, item1, item2, /* …, */ itemN)\n // Delete arg2 items from arg1,\n // arg3 can be an array of items, to replace from index arg1\n\n \n case \"splice\": {\n // Normalize start and deleteCount against current children length\n const currentLen = children.length;\n const rawStart = args[0] ?? 0;\n const rawDelete = args[1];\n let startIndex =\n rawStart < 0 ? Math.max(currentLen + rawStart, 0) : Math.min(rawStart, currentLen);\n let deleteCount;\n if (typeof rawDelete === \"undefined\" || rawDelete === Infinity) {\n deleteCount = currentLen - startIndex;\n } else if (rawDelete < 0) {\n deleteCount = 0;\n } else {\n deleteCount = Math.min(rawDelete, currentLen - startIndex);\n }\n // If this is a pure delete and DOM already matches expected length, skip (idempotent)\n const itemsToInsert = args[2] || [];\n const expectedLen = stateMapArray.length;\n if (itemsToInsert.length === 0 && currentLen === expectedLen) {\n break;\n }\n // If this is a full-replace splice and DOM already at expected length, skip (idempotent)\n const isFullReplace = (startIndex === 0 && deleteCount >= currentLen && itemsToInsert.length === expectedLen);\n if (isFullReplace && currentLen === expectedLen) {\n break;\n }\n\n // Delete exactly deleteCount nodes starting at startIndex\n // Use fixed index because children is live and shrinks on each removal\n for (let k = 0; k < deleteCount; k++) {\n detachedParentElement.removeChild(children[startIndex]);\n }\n\n // 2) Insert new items (if any) at startIndex — do not replace\n for (const item of itemsToInsert) {\n const stateItem = item;\n const newChild = stateToElement(\n stateItem,\n customElementName,\n isParentList ? \"li\" : undefined,\n detachedParentElement\n );\n const refNode = children[startIndex] ?? null; // null => append at end\n detachedParentElement.insertBefore(newChild, refNode);\n startIndex++;\n }\n break;\n }\n }\n }\n else {\n // Normal path: index-based reordering for stability across permutations\n const parentKeyMap = parentElement?.keyMap;\n const container = detachedParentElement ?? parentElement;\n\n for (let i = 0; i < expectedItems.length; i++) {\n const expected = expectedItems[i];\n const expectedKey = expected?.key;\n const currentChild = container.children[i];\n if (!currentChild) break;\n\n const currentState = isParentList ? currentChild.firstElementChild?.state : currentChild.state;\n const currentKey = currentState ? currentState.key : currentChild.stateKey;\n\n try { console.log(`[RECONCILE][normal] ref=${refName} idx=${i} have=${currentKey} want=${expectedKey} action=${currentKey===expectedKey?'keep':'move'}`); } catch(_) {}\n if (currentKey === expectedKey) {\n // Same key (identity) at this position; if the derived state object instance changed,\n // refresh the child so content reflects the new state while preserving identity.\n if (currentState !== expected) {\n mappedElementChange = true;\n if (!detachedParentElement) detachedParentElement = parentElement.detach();\n const newChild = stateToElement(expected, customElementName, isParentList ? \"li\" : undefined, detachedParentElement);\n newChild.stateKey = expectedKey;\n detachedParentElement.replaceChildWith(currentChild, newChild);\n try { console.log(`[RECONCILE][normal] ref=${refName} idx=${i} refresh key=${expectedKey}`); } catch(_) {}\n }\n continue;\n }\n\n mappedElementChange = true;\n if (!detachedParentElement) detachedParentElement = parentElement.detach();\n\n // Prefer previously displaced element; fall back to keyMap lookup\n let elementToPut = replacedChildren.get(expectedKey) ?? parentKeyMap.get(expectedKey);\n if (elementToPut) {\n // Place the element at the current index\n const replacedChild = detachedParentElement.replaceChildWith(currentChild, elementToPut);\n replacedChildren.set(currentKey, replacedChild);\n try { console.log(`[RECONCILE][normal] ref=${refName} idx=${i} move via=${replacedChildren.has(expectedKey)?'replaced':'keyMap'}`); } catch(_) {}\n\n // If the element we placed has the same key but outdated content (state instance), refresh it in place\n const elemState = isParentList ? elementToPut.firstElementChild?.state : elementToPut.state;\n if (elemState !== expected) {\n const refreshed = stateToElement(expected, customElementName, isParentList ? \"li\" : undefined, detachedParentElement);\n refreshed.stateKey = expectedKey;\n detachedParentElement.replaceChildWith(elementToPut, refreshed);\n try { console.log(`[RECONCILE][normal] ref=${refName} idx=${i} refresh-in-place key=${expectedKey}`); } catch(_) {}\n }\n } else {\n const newChild = stateToElement(expected, customElementName, isParentList ? \"li\" : undefined, detachedParentElement);\n newChild.stateKey = expectedKey;\n detachedParentElement.replaceChildWith(currentChild, newChild);\n try { console.log(`[RECONCILE][normal] ref=${refName} idx=${i} create key=${expectedKey}`); } catch(_) {}\n }\n }\n\n // Remove any leftover children beyond expected length\n while ((detachedParentElement ?? parentElement).children.length > expectedItems.length) {\n mappedElementChange = true;\n if (!detachedParentElement) detachedParentElement = parentElement.detach();\n detachedParentElement.removeChild((detachedParentElement ?? parentElement).lastElementChild);\n }\n }\n }\n\n const numChildren = detachedParentElement ? detachedParentElement.children.length : parentElement.children.length;\n if (stateMapArray.length > numChildren) {\n mappedElementChange = true;\n if (!detachedParentElement) detachedParentElement = parentElement.detach();\n for (let index=detachedParentElement.children.length;index<stateMapArray.length;index++) {\n const state_Item = stateMapArray[index];\n // Avoid appending duplicates if an item with this key is already present after previous moves\n if (detachedParentElement.keyMap?.has(state_Item.key)) continue;\n let newChild;\n if (replacedChildren.has(state_Item.key)) {\n newChild = replacedChildren.get(state_Item.key);\n }\n else {\n newChild = stateToElement(state_Item, customElementName, isParentList ? \"li\" : undefined, detachedParentElement);\n }\n // Ensure key is available before child activation\n newChild.stateKey = state_Item.key;\n detachedParentElement.appendChild(newChild);\n }\n }\n\n const container = detachedParentElement ?? parentElement;\n try {\n console.log (\n `[RECONCILE] after (ref=${refName}), EXPECTED KEYS:`,\n expectedItems.map(it=> it?.key),\n 'EXISTING KEYS',\n [...container.children].map(keyOfChild),\n 'EXPECTED LABELS',\n expectedItems.map(it=> it?.label),\n 'EXISTING LABELS',\n [...container.children].map(labelOfChild)\n );\n } catch(_) {}\n\n if (mappedElementChange) {\n stateManager.nodeManager.addNodeAction(detachedParentElement, { actionType: \"reattach\", actionValue: true })\n }\n}\n\n\n// This *updates*/*\"fills\"* the nodeActionsMap!\nexport function generateStateNodeActions(stateManager, stateProp, newValue) {\n const value = newValue; //stateManager.state[stateProp];\n if (stateProp === \"todosFiltered\") {\n performance.mark(\"todo-generate-node-actions\");\n }\n\n const stateNodes = stateManager.nodeManager.stateNodes[stateProp];\n // This is a map, where keys are \"parent elements\" containing \n // custom element instanced created from a state array (\"state map\").\n // The values are the custom element name. \n // The actual array of state objects is in state[stateProp]\n const stateMapElements = stateManager.stateArrayMaps[stateProp];\n const conditionallyRenderingElements = stateManager.nodeManager.conditionallyRenderingElements[stateProp];\n //const elementsWithPropertyBind = stateManager.elementsWithPropertyBind.get(stateProp);\n // Note, since the value change is handled by a custom setter - that setter checks if the set value is the same - \n // if it is - it won't call , and it won't reach here.\n if (stateNodes) {\n stateNodes.forEach(node=> {\n setStateNodeValueAction(stateManager.nodeManager, node, value);\n });\n }\n\n if (stateMapElements) {\n // An array of State objects, \n // each equalivent to a custom element created \"from\" it\n const stateMapArray = value;\n\n console.log (\"Reconcile state map, for: \" + stateProp);\n stateMapElements.forEach((customElementName, parentElement)=> {\n reconcileStateMapElement(stateMapArray, customElementName, parentElement, stateManager);\n });\n }\n\n if (conditionallyRenderingElements) {\n conditionallyRenderingElements.forEach(element=> {\n queueConditionalRender(this, element.render.bind(this));\n });\n }\n\n if (stateManager.nodeManager.paintStatus === \"pending\") {\n stateManager.nodeManager.queuePaint();\n }\n /*\n // If there are Node Actions (which translates to DOM actions), queue repaint\n if (nodeActionsMap.size) {\n queuePaint();\n }\n */\n}\n\n// Translates/maps Node Actions to actual DOM operations\nexport function resolveNodeActionsMapToDOMActions(nodeActionsMap) {\n const attributeActions = [];\n const textActions = [];\n const elementActions = [];\n const reattachActions = [];\n const propertySetActions = [];\n\n nodeActionsMap.forEach((nodeActions, node)=> {\n switch (node.nodeType) {\n case Node.ATTRIBUTE_NODE: {\n const value = nodeActions.setAttribute;\n const typeOfValue = typeof value;\n if (typeOfValue !== 'undefined') {\n if (typeOfValue === \"boolean\") {\n if (!node.hasOwnProperty(\"originalOwnerElement\")) {\n throw Error(\"originalOwnerElement not found on boolean attribute node! Should never happen!\");\n }\n if (value === false) {\n // Remove attribute if it exists, otherwise - do nothing\n if (node.originalOwnerElement.hasAttribute(node.name)) {\n attributeActions.push(()=> {\n node.originalOwnerElement.removeAttributeNode(node);\n });\n }\n }\n // state changed to true\n else {\n if (!node.originalOwnerElement.hasAttribute(node.name)) {\n attributeActions.push(()=> {\n node.originalOwnerElement.setAttributeNode(node);\n });\n }\n }\n }\n else {\n if (typeOfValue === \"string\" && node.nodeValue !== value) {\n attributeActions.push (()=> node.nodeValue = value);\n }\n }\n }\n break;\n }\n\n case Node.TEXT_NODE: {\n if (nodeActions.textContent !== undefined) {\n const value = String(nodeActions.textContent);\n if (node.nodeValue !== value) {\n textActions.push (()=> node.nodeValue = value);\n }\n }\n break;\n }\n\n case Node.ELEMENT_NODE: {\n // Append\n for (const newChildElement of nodeActions.append.values()) {\n elementActions.push(()=> node.appendChild(newChildElement));\n }\n\n // setProperty\n for (const [key, value] of nodeActions.setProperty) {\n if (node[key] !== value) {\n propertySetActions.push(()=> node[key] = value)\n }\n }\n // Reattach\n if (nodeActions.reattach) {\n reattachActions.push(()=> node.reattach());\n if (node?.pendingKeyMapActions?.size) {\n reattachActions.push(()=> {\n for (const keyMapAction of node.pendingKeyMapActions) {\n keyMapAction();\n }\n node.pendingKeyMapActions.clear();\n });\n }\n nodeActions.reattach = false;\n }\n }\n break;\n }\n });\n\n return [attributeActions, textActions, propertySetActions, elementActions, reattachActions ];\n}\n","\n// Sets an internal read-only property. \"hidden\" (non-enumerable) by default\nexport function setHiddenProperty(obj, propName, propValue, enumerable=false) {\n Object.defineProperty(obj, propName, {\n value: propValue,\n configurable: false,\n writable: true,\n enumerable,\n });\n}","import { BUILT_IN_STATE_PROPS, SYMBOL_NAMES } from \"./consts.js\";\nimport { generateStateNodeActions } from '../core/node_actions.js';\nimport { setHiddenProperty } from \"./prop_utils.js\";\nimport { isBooleanAttribute } from \"../core/attr_utils.js\";\nimport { callSetterHook } from \"../Cougar/state_utils.js\";\nimport { parseStateExpression } from \"./parse_utils.js\";\n\nif (typeof HTMLElement === 'undefined') {\n if (!STRICT) {\n console.warn (\"HTMLElement was not found! This probably means you are running in a non-browser environment, and can lead to unexpected results\");\n }\n}\nelse {\n // Make sure \"setAttribute\" is not overridable\n Object.defineProperty(globalThis, \"elementSetAttribute\", {\n value: HTMLElement.prototype.setAttribute,\n writable: false,\n configurable: false\n });\n}\n\nexport const setAttribute = function(attrName, attrValue) {\n if (isBooleanAttribute(attrName)) {\n if (attrValue === \"false\") {\n this.removeAttribute(attrName);\n }\n else {\n elementSetAttribute.call(this, attrName, \"\");\n }\n }\n else {\n elementSetAttribute.call(this, attrName, attrValue);\n }\n}\n\n// This creates the binding to state props on \"State attributes\".\n// This function is called when a custom element instance ic connected to the DOM\nexport const setStateAttribute = function(attrName, statePropExpression) {\n // In state expressions it is expected for the first \"argument\"\n // to always be the stateProp itself\n const [type, args] = parseStateExpression(statePropExpression);\n const stateProp = args[0];\n const [stateVal, theState] = this.getState(stateProp, true); \n if (!STRICT) {\n if (stateVal === Symbol.for(SYMBOL_NAMES.STATE_NOT_FOUND)) {\n console.warn(`State value for ${stateProp} is undefined. State values should never be undefined.`)\n return;\n }\n if (!theState) {\n console.warn (\"No State object with state prop: \" + stateProp);\n return; \n }\n }\n\n const stateManager = theState._stateManager;\n const valueToSet = type === \"literal\" ? stateVal : stateManager.bindStatePropExpression(statePropExpression, type, args);\n\n this.removeAttribute(attrName);\n // Create an \"Attribute Node\"\n const stateAttrNode = document.createAttribute(attrName);\n stateAttrNode.nodeValue = valueToSet;\n // Saves a readonly boolean that marks this as a \"state attribute node\"\n setHiddenProperty(stateAttrNode, \"isStateAttribute\", true);\n // Save ownerElement to a different property,\n // so if the attribute is removed (in case of a boolean attribute),\n // and later re-attached, we would know which element to add it back to.\n setHiddenProperty(stateAttrNode, \"originalOwnerElement\", this);\n if (typeof valueToSet === \"boolean\") {\n // A boolean attribute value should ALWAYS be an empty string,\n // the value itself never changes, it is removed fron the element if false, \n // and added if true\n stateAttrNode.nodeValue = \"\";\n }\n\n stateManager.addStateNode(statePropExpression, stateAttrNode);\n\n // Adds the attribute to the element\n if (valueToSet !== false) {\n this.setAttributeNode(stateAttrNode);\n }\n this.addEventListener(\"disconnected\",()=> {\n theState._stateManager.removeStateNode(statePropExpression, stateAttrNode);\n }, { once: true})\n}\n\nexport const setStateText = function(statePropExpression) {\n const [type, args] = parseStateExpression(statePropExpression);\n const stateProp = args[0];\n const [stateVal, theState] = this.getState(stateProp, true); \n if (!STRICT) {\n if (stateVal === Symbol.for(SYMBOL_NAMES.STATE_NOT_FOUND)) {\n console.warn(`State value for ${stateProp} is undefined. State values should never be undefined.`)\n return;\n }\n if (!theState) {\n console.warn (\"No State object with state prop: \" + stateProp);\n return;\n }\n }\n const stateManager = theState._stateManager;\n const valueToSet = type === \"literal\" ? stateVal : stateManager.bindStatePropExpression(statePropExpression, type, args);\n const textNode = document.createTextNode(valueToSet);\n setHiddenProperty(textNode, \"isStateAttribute\", true);\n theState._stateManager.addStateNode(statePropExpression, textNode);\n this.appendChild(textNode);\n this.addEventListener(\"disconnected\",()=> {\n theState._stateManager.removeStateNode(statePropExpression, textNode);\n }, { once: true})\n}\n\n// Convert a stateObject to a custom element, used in State Map Arrays\nexport function stateToElement(stateObject, elemName, wrapInElement, ownerMapElement) {\n const customElementInstance = document.createElement(elemName);\n customElementInstance.setInitialState(stateObject);\n customElementInstance.ownerMapElement = ownerMapElement;\n let returnElement;\n if (wrapInElement) {\n returnElement = document.createElement(wrapInElement);\n returnElement.appendChild(customElementInstance);\n }\n else {\n returnElement = customElementInstance;\n }\n if (stateObject.hasOwnProperty(\"key\") && !returnElement.hasOwnProperty(\"stateKey\")) {\n returnElement.stateKey = stateObject.key;\n }\n return returnElement;\n}\n\nexport function mapStateArrayToElements(stateItems, elemName, wrapInElement, parentElement) {\n\n // the double underscore '__' skips the \"supercharging\" of native operations, and just runs it as is\n const mappedElements = stateItems.map((stateItem, index) => {\n if (Object.hasOwn(stateItem, 'state')) stateItem = stateItem.state;\n if (!STRICT) {\n if (typeof stateItem !== 'object') {\n console.warn(\"item in State array for _map is not an object: \", stateItem);\n return {};\n }\n if (!Object.hasOwn(stateItem, 'key')) {\n console.warn(\"State object in elements map has no 'key' property. Adding automatically per index. This can have unexpected results on mutations!\")\n stateItem.key = index;\n }\n }\n const element = stateToElement(stateItem, elemName, wrapInElement, parentElement);\n\n // We do this because during state map element reconcilation -\n // there CAN be a situation where a child custom element is NOT active yet,\n // therefor its state won't be accesible yet. (This happened in todo-list-src)\n // So we also save it here so it could use it.\n element.stateKey = stateItem.key;\n\n return element;\n });\n\n return mappedElements;\n}\n\n// Main function that handles all state changes in a state object\nexport function handleStateChange(stateManager, stateProp, changedValue) {\n if (isBuiltInStateProp(stateProp)) return;\n console.log (\"Handling state change for: \" + stateProp);\n // At this point, if the value is taken from state, it should be a getter value\n // We are SURE the value is new and has been changed at this point\n // (we validate this earlier)\n const newValue = changedValue ?? stateManager.state[stateProp];\n const descrp = Object.getOwnPropertyDescriptor(stateManager.state, stateProp);\n const isGetter = descrp?.get?.isStateGetter;\n\n dispatchStateChangEvent(stateManager.state, stateProp, newValue);\n // Populate the next Node Actions to perform\n generateStateNodeActions(stateManager, stateProp, newValue, isGetter);\n // Also handle negation dependencies\n if (!stateProp.startsWith('!')) {\n generateStateNodeActions(stateManager, `!${stateProp}`, !newValue, isGetter);\n }\n\n // Run state hooks \n stateManager.stateHooks.get(stateProp)?.forEach(hookFn=> {\n hookFn(stateProp, newValue)\n });\n\n stateManager.stateHooks.get(\"$$ALL\")?.forEach(hookFn=> {\n hookFn(stateProp, newValue)\n });\n \n}\n\n\n\nexport function handleStateDependency(stateManager, depStateProp, appScope=window) {\n const state = stateManager.state;\n const isSetter = isSetterHook(depStateProp); \n // A \"Setter\" hook\n if (isSetter) {\n const setterHook = state[depStateProp];\n const setterStateProp = depStateProp.substring(4);\n const hasNewValue = callSetterHook(setterHook, setterStateProp, stateManager, appScope);\n if (hasNewValue) handleStateChange(stateManager, setterStateProp, null, appScope.offscreenContainer);\n }\n else if (depStateProp.indexOf('.length') > 0) {\n const realProp = depStateProp.split('.')[0];\n const newValue = stateManager.state[realProp].length;\n // depStateProp is `${prop}.length` here\n handleStateChange(stateManager, depStateProp, newValue, appScope.offscreenContainer);\n }\n else {\n handleStateChange(stateManager, depStateProp, null, appScope.offscreenContainer);\n }\n}\n\n\nexport function isBuiltInStateProp(stateProp) {\n if (typeof stateProp !== \"string\") return false;\n if (stateProp.indexOf(\"$$\") === 0) return true;\n return BUILT_IN_STATE_PROPS.has(stateProp);\n}\n\nexport function dispatchStateChangEvent(state, property, newValue) {\n const stateChangeEvent = new CustomEvent('stateChange', { \n bubbles: false, \n composed: false,\n detail: {\n property,\n newValue\n } \n });\n state.dispatchEvent(stateChangeEvent);\n}\n\nexport function isSetterHook(stateProp) {\n return stateProp.indexOf('set_') === 0;\n}\n\n","import { setHiddenProperty } from \"../shared/prop_utils.js\";\nimport { StatefulArrayHandler } from \"./proxy_handlers.js\";\nimport { handleStateChange } from \"../shared/state_utils.js\";\nimport { ARRAY_CACHE_METHODS, ARRAY_MUTATE_NO_LENGTH_CHANGE_METHODS } from \"../shared/consts.js\";\nimport { ReadonlySet } from \"../shared/code_utils.js\";\nimport { newStateManager } from \"./state_utils.js\";\n\nexport default class StatefulArray extends Array {\n\n // We use this for the array proxy that calls doArrayOperation\n // which should only be called for native array functions.\n // Functions in this list are called directly (and not via doArrayOperation)\n static functions = new ReadonlySet([\n \"constructor\",\n \"statifyArray\",\n \"addDirtyIndex\",\n \"doArrayOperation\",\n \"runArrayOperation\",\n \"makeStateMap\",\n \"mapStateKeys\",\n \"toArray\"\n ]);\n\n arrayMaps = {}\n\n // This will define which \"constructor\" JS calls whenever it needs to construct a new array while calling some Array native functions\n static get [Symbol.species]() {\n return Array;\n }\n\n // Required, e.g. for using Array.from\n [Symbol.iterator]() {\n return super[Symbol.iterator]();\n }\n\n // Return [result, isNewArray] \n // isNewArray means result should be considered a whole new array,\n runArrayOperation(operationName, method, args) {\n switch (operationName) {\n // Remove the first item\n // (Internally it moves all else one \"left\")\n case \"shift\": {\n this.lastOperation = [\"shift\"];\n const res = method.apply(this, args);\n return [res, false];\n }\n\n // Prepends ...elements to the beginning of array\n case \"unshift\": {\n this.lastOperation = [\"unshift\", [args.length]];\n const res = method.apply(this, args);\n return [res, false];\n }\n\n // Remove the last item\n case \"pop\": {\n this.lastOperation = [\"pop\"];\n const res = method.apply(this);\n return [res, false];\n }\n\n // Push ...elements\n case \"push\": {\n this.lastOperation = [\"push\", [args.length]];\n const res = method.apply(this, args);\n return [res, false];\n }\n\n // Delete from startIndex, add ...elements in offset\n case \"splice\": {\n const [startIndex, deleteCount] = args;\n const itemsToAdd = args.slice(2);\n this.lastOperation = [\"splice\", [startIndex, deleteCount, itemsToAdd]];\n const res = method.apply(this, args);\n return [res, false];\n }\n\n default: {\n this.lastOperation = undefined;\n const res = method.apply(this, args);\n return [res, Array.isArray(res)];\n }\n }\n }\n // setDirtyOperation should be true if the content of this array actually changes\n doArrayOperation(operationName, args, setDirtyProp=false) {\n this.$$operation = operationName;\n const prevLen = this.length;\n let result, isNewArray = false;\n if (ARRAY_CACHE_METHODS.has(operationName)) {\n const callbackFn = args[0];\n if (this.length && \n Object.hasOwn(this.arrayMaps, operationName) &&\n this.arrayMaps[operationName].has(callbackFn)) {\n const cachedArrayMapMetadata = this.arrayMaps[operationName].get(callbackFn);\n if (this.lastDirtyTimestamp > cachedArrayMapMetadata.timestamp) {\n [result, isNewArray] = this.runArrayOperation(operationName, super[operationName], args); \n this.arrayMaps[operationName].set(callbackFn, {\n lastResult: result,\n timestamp: new Date().getTime()\n });\n }\n else {\n result = cachedArrayMapMetadata.lastResult;\n }\n }\n else {\n [result, isNewArray] = this.runArrayOperation(operationName, super[operationName], args);\n if (!Object.hasOwn(this.arrayMaps, operationName)) {\n this.arrayMaps[operationName] = new Map();\n this.arrayMaps[operationName].set(callbackFn, {\n lastResult: result,\n timestamp: new Date().getTime()\n });\n }\n }\n }\n else {\n [result, isNewArray] = this.runArrayOperation(operationName, super[operationName], args);\n }\n\n \n\n // For order/content-only mutators (no length change), also dirty `${prop}.length`\n // so dependents that currently watch `.length` still re-run on reorder-only ops.\n const postLen = this.length;\n const isOrderOnly = (ARRAY_MUTATE_NO_LENGTH_CHANGE_METHODS.has(operationName) ||\n (operationName === 'splice' && postLen === prevLen));\n\n if (setDirtyProp && isOrderOnly) {\n this.parentStateObject._stateManager.setDirtyProp(`${this.arrayStateProp}.length`, true);\n }\n\n delete this.$$operation;\n\n if (setDirtyProp) {\n this.parentStateObject._stateManager.setDirtyProp(this.arrayStateProp);\n }\n\n return [result, isNewArray];\n }\n\n mapStateKeys() {\n this.forEach(item=> {\n const state = Object.hasOwn(item, \"state\") ? item.state : item;\n if (!STRICT) {\n if (!Object.hasOwn(state, \"key\")) {\n console.warn(`Items in State Map Array ${this.arrayStateProp} SHOULD have a 'key' property!`);\n }\n }\n this.keyMap.set(state.key, state);\n });\n }\n\n makeStateMap() {\n this._isStateMap = true;\n this.keyMap = new Map();\n this.mapStateKeys();\n }\n\n\n // noConvertToStateItems can be used in internal methods where a normal array is returned and you just want to recreate a StatefulArray,\n // with the same state items\n // NOTE: original Array constructor can get a series of arguments to build an array from, OR a single number,\n // to create an array with that number as a length\n constructor(initialArray, parentStateObject, arrayStateProp, appScope = window, isStateMap = false) {\n const StateManager = appScope.SPROUT_CONFIG.stateManagerClass;\n\n if (!Array.isArray(initialArray)) {\n throw Error(\"Argument for StateFulArray constructor must be an array!\");\n }\n\n const rawArray = initialArray;\n let statefulArray = rawArray.map((item, index)=> {\n let stateItem = item;\n\n // If already a state item - keep as is, otherwise - statify\n if (Object.hasOwn(item, 'state') || \n Object.hasOwn(item, '_stateManager') ||\n Array.isArray(item)) return stateItem;\n if (typeof item === 'object') stateItem = newStateManager(item, arrayStateProp, parentStateObject._stateManager, handleStateChange, false, appScope);\n return stateItem;\n });\n super(...statefulArray);\n\n this.parentStateObject = parentStateObject;\n this.arrayStateProp = arrayStateProp;\n this.appScope = appScope;\n this.rawArray = rawArray;\n if (isStateMap) {\n this.makeStateMap();\n }\n\n statefulArray = new Proxy(this, StatefulArrayHandler(parentStateObject?._stateManager, arrayStateProp, appScope));\n setHiddenProperty(statefulArray, \"_isStatefulArray\", true);\n this.statefulArray = statefulArray;\n return statefulArray;\n }\n}\n","import { statifyValue, getDeps, statifyArrayDeriveFrom } from \"./state_utils\";\nimport { isBuiltInStateProp } from \"../shared/state_utils.js\";\nimport { ARRAY_MUTATE_METHODS, ARRAY_DERIVE_METHODS } from \"../shared/consts.js\";\nimport StatefulArray from \"./StatefulArray.js\";\n\n/* Used for auto detecting dependencies\n * deps is an object, which is transformed in-place to represent \n * dependency property names and their count (number of times they are accessed)\n * this is part of the way array.length is detected as a separate dependency\n */\nexport const depsProxyHandler = function () {\n //stateObject.$$accessCount = {};\n return {\n get(target, property, receiver) {\n if (isBuiltInStateProp(property) || property.indexOf('$$') === 0) {\n return Reflect.get(...arguments);\n }\n const descrp = Object.getOwnPropertyDescriptor(target, property);\n // Don't count getter functions as \"dependencies\"\n // (as they don't have a \"value\" that can change, they are only computed)\n if (descrp?.get?.isStateGetter) {\n return Reflect.get(...arguments);\n }\n if (!Object.hasOwn(target.$$accessCount, property)) {\n target.$$accessCount[property] = 1;\n }\n else {\n target.$$accessCount[property]++;\n }\n \n return Reflect.get(...arguments);\n }\n }\n}\n\n\n/* Proxy handler for re-detecting dependencies everytime a state function is called\n */\nexport const StateFunctionDependencyHandler = function(stateManager, stateProp, appScope = window) {\n const state = stateManager.state;\n return {\n apply: function (thisFunction, thisStateObject, argumentsList) {\n stateManager.clearStateDependencies(stateProp);\n const originalGlobalState = thisStateObject._global;\n const [deps, globalDeps, result] = getDeps(thisFunction, thisStateObject);\n deps.forEach(depProp=> {\n stateManager.addStateDependency(depProp, stateProp);\n });\n globalDeps?.forEach(depProp=> {\n originalGlobalState._stateManager.addGlobalStateDependency(depProp, stateProp, stateManager);\n });\n return result;\n }\n }\n}\n\n/* Proxy handler for StatefulArrays */\nexport const StatefulArrayHandler = function(parentStateManager, arrayStateProp, appScope = window) {\n // We need to immediately call handleStateChanges - and not queue it,\n // to avoid potential race conditions!\n // The false argument prevents async state change handling queueing\n const triggerStateChange = (triggerLength = false, triggerArray = true)=> {\n if (triggerArray) {\n parentStateManager.setDirtyProp(arrayStateProp, true);\n }\n if (triggerLength) {\n parentStateManager.setDirtyProp(`${arrayStateProp}.length`, true);\n }\n }\n\n let setResult;\n const keyOf = (item) => {\n if (!item) return undefined;\n if (Object.hasOwn(item, 'state')) return item.state?.key;\n return item.key;\n };\n const stateOf = (item) => (Object.hasOwn(item, 'state') ? item.state : item);\n return {\n set(targetArray, property, value) {\n // Temporary internally used properties will start with '$$'\n if (property.indexOf(\"$$\") === 0) {\n // targetArray[property] = value;\n // return true;\n return Reflect.set(targetArray, property, value);\n }\n\n // A change in array length triggers state change as '[arrayName].length', \n // and for [arrayName] if not part of an internal array operation/function\n if (property === \"length\") {\n setResult = Reflect.set(targetArray, property, value);\n targetArray.hasDirtyItems = true;\n if (!targetArray.hasOwnProperty(\"$$operation\")) {\n // Trigger state change for both the array itself and 'array.length'\n triggerStateChange(true, true);\n }\n else {\n // Trigger state change only for 'array.length'\n triggerStateChange(true, false);\n }\n return setResult;\n }\n\n // Return if the value is the same\n if (targetArray[property] === value) return true;\n\n const index = Number(property)\n if (!isNaN(property)) { // Numeric index\n const index = Number(property);\n const prev = targetArray[index];\n const prevKey = keyOf(prev);\n // If we set it to a new object, convert it to a state object\n value = statifyValue(value, arrayStateProp, parentStateManager, appScope);\n\n // Make sure state values are always state manager values\n // Sometimes they can be state objects (because of the custom get handler in the Proxy)\n if (Object.hasOwn(value, '_stateManager')) {\n value = value._stateManager;\n }\n // targetArray.hasDirtyItems = true;\n // if the array has '$$operation' it means it is there is an ongoing \"native\" array operation/function\n // (slice, push etc.) running.\n if (!targetArray.hasOwnProperty('$$operation')) {\n let doStateChangeHandle = false;\n // This means a modification to an existing array item (as opposed to an addition of a new one)\n // New additions are triggered via the 'length' change\n if (index < targetArray.length) {\n doStateChangeHandle = true;\n }\n /*\n const prevValue = targetArray[index];\n targetArray.derivedArrays.forEach(array=> {\n if (array.indexMap.has(prevValue)) {\n array[index] = value;\n array.indexMap.delete(prevValue);\n array.indexMap.set(value, index);\n }\n });\n */\n setResult = Reflect.set(targetArray, property, value);\n // Maintain array-side key map if this is a state map\n if (setResult && targetArray._isStateMap) {\n if (prevKey !== undefined) {\n targetArray.keyMap.delete(prevKey);\n }\n const newKey = keyOf(value);\n if (newKey !== undefined) {\n targetArray.keyMap.set(newKey, stateOf(value));\n }\n }\n // Only handle state change if this is a change for an existing array item,\n // if it's a new item, it will already be handled on the \"length\" property set\n // Without this check we will have a redundant state check\n if (doStateChangeHandle) {\n // targetArray.addDirtyIndex(index);\n triggerStateChange();\n }\n return setResult;\n }\n }\n return Reflect.set(targetArray, property, value);\n },\n get(targetArray, property, receiver) {\n if (typeof property === \"symbol\") return Reflect.get(...arguments);\n if (property === \"length\" && \n Object.hasOwn(targetArray.parentStateObject, \"$$accessCount\") && \n !Object.hasOwn(targetArray, '$$operation'))\n {\n const arrStateProp = targetArray.arrayStateProp\n if (!Object.hasOwn(targetArray.parentStateObject.$$accessCount, `${arrStateProp}.length`)) {\n targetArray.parentStateObject.$$accessCount[`${arrStateProp}.length`] = 1;\n }\n else {\n targetArray.parentStateObject.$$accessCount[`${arrStateProp}.length`]++;\n\n }\n }\n\n if (property.indexOf && property.indexOf('__') === 0) {\n const nativeFunctionName = property.substring(2);\n return Reflect.get(targetArray, nativeFunctionName, receiver);\n }\n\n // If a function method is accessed, and we're capturing deps, bump base dep for read methods\n if (typeof targetArray[property] === 'function' && !StatefulArray.functions.has(property)) {\n const pso = targetArray.parentStateObject;\n if (pso && Object.hasOwn(pso, '$$accessCount')) {\n const methodName = String(property);\n if (ARRAY_DERIVE_METHODS.has(methodName)) {\n const arrayProp = targetArray.arrayStateProp;\n pso.$$accessCount[arrayProp] = (pso.$$accessCount[arrayProp] || 0) + 1;\n }\n }\n }\n\n // Don't call overriding functions if initializing (e.g. during initial state population)\n if (!parentStateManager.isInitializing && typeof targetArray[property] === 'function' &&\n // MAKE SURE to put all native StatefulArray class names here\n !StatefulArray.functions.has(property)) {\n return function (...args) {\n // .statefulArray is a reference to the PROXY itself\n const [result, isNewArray] = targetArray.doArrayOperation.call(targetArray.statefulArray, property, args, ARRAY_MUTATE_METHODS.has(property));\n /*\n if (isNewArray) {\n result.isDerivedArray = false;\n result.indexMap = indexMap;\n result.originalArray = targetArray;\n }\n */\n return result;\n };\n }\n\n const index = Number(property);\n if (!isNaN(index)) {\n const item = targetArray[index];\n if (typeof item === 'undefined') return undefined;\n if (item && Object.hasOwn(item, 'state')) return item.state;\n return item;\n }\n return Reflect.get(...arguments);\n },\n deleteProperty(targetArray, property) {\n // If not an index property - just delete it\n if (isNaN(Number(property))) {\n return Reflect.deleteProperty(targetArray, property);\n }\n const index = Number(property);\n const prev = targetArray[index];\n const prevKey = keyOf(prev);\n const deleteOkay = Reflect.deleteProperty(targetArray, property);\n if (deleteOkay && targetArray._isStateMap && prevKey !== undefined) {\n targetArray.keyMap.delete(prevKey);\n }\n return deleteOkay;\n }\n }\n}\n\n/* Used for \"child state objects\" - basically state values that are objects and should be reactive,\n * these can also be object items within state arrays\n */\nexport const StateObjectValueHandler = function(rootStateObj, objPropertyName, appScope = window) {\n return {\n set(targetObj, property, value) {\n if (isBuiltInStateProp(property)) {\n return Reflect.set(...arguments);\n }\n\n const setResult = Reflect.set(...arguments);\n const stateManager = rootStateObj._stateManager;\n if (stateManager.parentStateManager) {\n // Only trigger parent state change if not in the middle of operation\n // E.g. if this is an object inside an array in the middle of an operation - don't trigger\n //if (!Object.hasOwn(stateManager.parentStateManager.state[objPropertyName], '$$operation')) {\n performance.mark(\"todo-array-set-dirty-prop\");\n stateManager.parentStateManager?.setDirtyProp(objPropertyName);\n //}\n }\n return setResult;\n },\n defineProperty(targetObj, property, descriptor) {\n if (isBuiltInStateProp(property)) {\n return Reflect.defineProperty(...arguments);\n }\n if (typeof descriptor?.value !== \"undefined\") {\n // Sub objects should be statified as well\n descriptor.value = statifyValue(descriptor.value, property, rootStateObj._stateManager, appScope);\n }\n\n // Don't use \"arguments\" here - they are not linked to argument changes in 'strict'\n return Reflect.defineProperty(targetObj, property, descriptor);\n },\n get(targetObj, property, receiver) {\n let getResult = Reflect.get(...arguments);\n // This has to be rebound because of the Proxy\n if (typeof getResult === 'function') return getResult.bind(targetObj);\n return getResult;\n }\n }\n}\n","/* Factory functions for StateManager Plugins. Runs with StateManager as this context */\n\nexport function conditionalElements() {\n this.conditionallyRenderingElements = {};\n this.addConditionallyRenderingElements = function(stateProp, element) {\n this.nodeManager.addConditionallyRenderingElements(stateProp, element);\n }\n}\n\nexport function stateMaps() {\n this.stateArrayMaps = {};\n this.addStateMap = function(stateProp, customElementName, parentElement) {\n if (!this.stateArrayMaps.hasOwnProperty(stateProp)) {\n this.stateArrayMaps[stateProp] = new Map();\n }\n this.stateArrayMaps[stateProp].set(parentElement, customElementName);\n }\n this.clearStateMapsLastOperation = function() {\n for (const stateMapProp of Object.keys(this.stateArrayMaps)) {\n delete this.state[stateMapProp].lastOperation;\n }\n }\n}","import { StateFunctionDependencyHandler, depsProxyHandler } from \"./proxy_handlers.js\";\nimport { handleStateChange, isBuiltInStateProp, isSetterHook } from \"../shared/state_utils\";\nimport StateManager from \"./StateManager\";\nimport StatefulArray from \"./StatefulArray\";\nimport { setHiddenProperty } from \"../shared/prop_utils.js\";\nimport { conditionalElements, stateMaps } from \"./state_plugins.js\";\nimport { GLOBAL_STATE_NOT_SET_YET } from \"../shared/consts.js\";\n/* Results of setter hooks are UNSTATIFIED */\n\nexport function newStateManager(initialState, parentStateProp, parentStateManager, handleStateFunction = handleStateChange, isGlobal = false, appScope=window)\n {\n const stateManager = new StateManager(initialState, parentStateProp, parentStateManager, handleStateFunction, isGlobal, appScope);\n stateManager.use(conditionalElements, \"conditional-element\");\n stateManager.use(stateMaps, \"map\");\n return stateManager;\n}\n\nexport function statifyArray(array, stateProp, state, appScope = window, isStateMap = false) {\n if (Object.hasOwn(array, '_isStatefulArray')) return array;\n const args = [array, state, stateProp, appScope, isStateMap];\n /*\n let statefulArray;\n if (array.isDerivedArray) {\n statefulArray = new StatefulArrayDerived(...args, array.indexMap);\n array.originalArray.addDerivedArray(array);\n }\n else {\n */\n const statefulArray = new StatefulArray(...args);\n // }\n\n if (!state.hasOwnProperty(`${stateProp}.length`)) {\n Object.defineProperty(state, `${stateProp}.length`, {\n get() { return this[stateProp].length }\n });\n }\n return statefulArray;\n}\n\nexport function statifyArrayDeriveFrom(fromArray, array, stateProp, state, appScope = window, indexMap) {\n if (Object.hasOwn(array, '_isStatefulArray')) return array;\n const args = [array, state, stateProp, appScope, indexMap];\n const statefulArray = new StatefulArrayDerived(...args);\n if (!state.hasOwnProperty(`${stateProp}.length`)) {\n Object.defineProperty(state, `${stateProp}.length`, {\n get() { return this[stateProp].length }\n });\n }\n fromArray.addDerivedArray(array);\n return statefulArray;\n}\n\n/* Makes value \"stateful\" (makes it reactive),\n * essentialy turns an object into a StateManager, or an array into a StatefulArray\n * Primitives are left untouched\n */\nexport function statifyValue(value, stateProp, stateManager, appScope = window, isStateMap = false) {\n if (isBuiltInStateProp(stateProp)) return value;\n if (Array.isArray(value)) value = statifyArray(value, stateProp, stateManager.state, appScope, isStateMap);\n else if (typeof value === 'object' && value !== null && !value.hasOwnProperty('_stateManager')) {\n value = newStateManager(value, stateProp, stateManager, handleStateChange, false, appScope).state;\n }\n return value;\n}\n\n/* Called once for each setter hook */\nexport function initSetterHook(setterArray, stateProp, stateManager, appScope=window) {\n const setterHookName = `set_${stateProp}`;\n let [setterFunc, setterOptions] = setterArray;\n if (typeof setterFunc !== \"function\") {\n throw Error(\"Setter hooks must define a function as the first item!\");\n }\n const state = stateManager.state;\n setterOptions.deps = setterOptions.deps ?? \"auto\";\n let result;\n\n // If init + once is set, we don't need to save dependencies\n if (!(setterOptions.init && setterOptions.once)) {\n // auto - will detect the setter function dependencies automatically\n if (setterOptions.deps === \"auto\") {\n if (!setterOptions.reevaluate) {\n let deps, globalDeps;\n [deps, globalDeps, result] = getDeps(setterFunc, state);\n deps.forEach(dep=> {\n stateManager.addStateDependency(dep, setterHookName);\n });\n globalDeps?.forEach(dep=> {\n stateManager.addStateDependency(dep, setterHookName);\n state._global._stateManager.addGlobalStateDependency(dep, setterHookName, stateManager);\n });\n }\n else {\n // reevaluate - means that the dependencies will reevaluate each time the setter re-runs\n const stateDependencyHandler = StateFunctionDependencyHandler(stateManager, setterHookName, appScope);\n setterFunc = new Proxy(setterFunc, stateDependencyHandler);\n // We redefine the setter, as we proxied the setter hook function\n setterArray[0] = setterFunc;\n // Object.defineProperty(state, setterHookName, { value: setterArray, configurable: true });\n }\n }\n else {\n // Explicit depdencies array\n setterOptions.deps.forEach(dep=> {\n if (dep.indexOf('global') === 0) {\n const globalDep = dep.substring(dep.indexOf('global.')+7);\n state._global.addGlobalStateDependency(setterHookName, globalDep, stateManager);\n }\n else {\n stateManager.addStateDependency(dep, setterHookName);\n }\n });\n }\n }\n // Result should be retrieved from the privateState\n Object.defineProperty(state, stateProp, {\n get() {\n // This could be accessed from a dependency check function\n if (Object.hasOwn(state, \"$$accessCount\")) {\n if (!Object.hasOwn(state.$$accessCount, stateProp)) {\n state.$$accessCount[stateProp] = 1;\n }\n else {\n state.$$accessCount[stateProp]++;\n }\n }\n return stateManager.privateState[stateProp];\n },\n set() {\n throw Error(\"Cannot directly set the state value of a result of a setter hook function!\");\n },\n });\n\n // init - means the setter will run upon initialization (first state populate),\n // and will save the result on a state prop\n if (setterOptions.init) {\n // DO NOT STATIFY SETTER HOOK RESULTS!\n // It's possible we already have the result from the dependency check call before\n if (!result) result = setterFunc.call(state);\n if (setterOptions.statify || setterOptions.stateMap) result = statifyValue(result, stateProp, stateManager, appScope, setterOptions.stateMap);\n stateManager.privateState[stateProp] = result;\n stateManager.setDirtyProp(stateProp);\n }\n}\n\nexport function callSetterHook(setterArray, stateProp, stateManager, appScope=window) {\n const state = stateManager.state;\n const originalValue = stateManager.privateState[stateProp];\n if (originalValue === undefined) {\n // First time the Setter hook is called\n initSetterHook(setterArray, stateProp, stateManager, appScope);\n }\n const [setterFunc, setterOptions] = setterArray;\n if (typeof setterFunc !== \"function\") {\n throw Error(\"Setter hooks must define a function as the first item!\");\n }\n let result = setterFunc.call(state);\n \n let hasNewValue = false;\n if (result === undefined) {\n throw Error(\"State Set Hook functions MUST return a value\");\n }\n\n if (setterOptions.statify || setterOptions.stateMap) result = statifyValue(result, stateProp, stateManager, appScope, setterOptions.stateMap);\n\n if (result !== originalValue) {\n stateManager.privateState[stateProp] = result;\n hasNewValue = true;\n }\n\n // once - means the setter is run once, save on the state prop, and then\n // the setter is removed\n if (setterOptions.once) {\n // Delete original setter hook, as it is only meant to run once\n delete state[`set_${stateProp}`];\n }\n return hasNewValue;\n}\n\n// Turna an object with properties and the number of times each was accessed,\n// to a set. Mainly used to also track .length accesses correctly.\nexport function resolveAccessCountToDepsSet(depsCount) {\n let lengthIndex;\n for (let prop in depsCount) {\n lengthIndex = prop.indexOf('.length');\n if (lengthIndex !== -1) {\n depsCount[prop.substring(0, lengthIndex)]--;\n }\n }\n const deps = new Set(Object.keys(depsCount).filter(dep=> depsCount[dep] > 0));\n return deps;\n}\n\n// Get usages (accesses) of properties in fromObject,\n// that occurs in ofFunction\n// Also returns the result of the function call \nexport function getDeps(ofFunction, fromStateObject) {\n let hasGlobal = false;\n const depsProxy = new Proxy(fromStateObject, depsProxyHandler());\n depsProxy.$$accessCount = {};\n\n if (Object.hasOwn(depsProxy, '_global') && depsProxy._global !== GLOBAL_STATE_NOT_SET_YET) {\n hasGlobal = true;\n depsProxy._global = new Proxy(depsProxy._global, depsProxyHandler);\n depsProxy._global.$$accessCount = {};\n }\n const result = ofFunction.call(depsProxy);\n const deps = resolveAccessCountToDepsSet(depsProxy.$$accessCount);\n // We need to explicitely delete - EVEN from the proxy,\n // since we don't define a \"set handler\", original behavior is preserved\n // and $$accessCount is also set on the original state object!\n delete depsProxy.$$accessCount;\n let globalDeps = null;\n if (hasGlobal) {\n globalDeps = resolveAccessCountToDepsSet(depsProxy._global.$$accessCount);\n delete depsProxy._global.$$accessCount;\n }\n return [deps, globalDeps, result];\n}\n\n// A function that checks if the value of the descriptor is a setter hook or a getter function,\n// And return the options set for it, if any\nfunction getStateHookData(descriptor, property) {\n if (descriptor.get && typeof descriptor.get === \"function\") return {\n nativeGetter: true,\n func: descriptor.get,\n deps: \"auto\",\n reevaluate: false,\n init: false,\n isSetter: false\n }\n\n if (descriptor.value) {\n const value = descriptor.value;\n if (property.indexOf('set_') === 0 ) {\n if (!Array.isArray(value)) throw Error(\"State setter hooks must be arrays!\");\n const hookOptions = value[1] || {};\n return {\n nativeGetter: false,\n func: value[0],\n deps: hookOptions.deps && Array.isArray(hookOptions.deps) ? hookOptions.deps : \"auto\",\n reevaluate: !!hookOptions.reevaluate,\n init: !!hookOptions.init,\n once: !!hookOptions.once,\n stateMap: !!hookOptions.stateMap,\n statify: !!hookOptions.statify,\n isSetter: property.indexOf('set_') === 0,\n }\n }\n }\n}\n\n// StateManager is a StateManager instance (with a public state property), initialState is a \"static\" initial state object.\n// If globalState is null, we don't need to handle dependences between the (local) state and global state\n// This function is called as part of the initialization of a StateManager instance - \n// when it is \"activated\"\nexport function populateStateFromInitialState(stateManager, initialState, appScope = window) {\n\n const state = stateManager.state;\n const descriptors = Object.getOwnPropertyDescriptors(initialState);\n\n for (const key in descriptors) {\n const descrp = descriptors[key];\n if (isBuiltInStateProp(key)) {\n Object.defineProperty(state, key, descrp);\n continue;\n }\n\n let hookFunc;\n\n // If this is a State Hook (a 'set_' or get functions).\n const stateHook = getStateHookData(descrp, key);\n if (stateHook) {\n const statePropName = stateHook.isSetter ? key.substring(4) : key;\n hookFunc = stateHook.func;\n hookFunc.bind(state);\n\n if (stateHook.isSetter && !stateHook.nativeGetter) {\n // It will call the hook function if init is set to true, as well\n initSetterHook(descrp.value, statePropName, stateManager, appScope);\n // if \"once\" is on, we need to be able to delete it later\n if (stateHook.once) descrp.configurable = true;\n Object.defineProperty(state, key, descrp);\n }\n // Native getters only evaluate dependencies once on init,\n // they do not reevalaute on each call\n else if (stateHook.nativeGetter) {\n descrp.get.isStateGetter = true;\n const getFunc = descrp.get;\n const [deps, globalDeps] = getDeps(getFunc, state);\n deps.forEach(dep=> {\n stateManager.addStateDependency(dep, key);\n });\n globalDeps?.forEach(dep=> {\n stateManager.addStateDependency(dep, key);\n state._global._stateManager.addGlobalStateDependency(dep, key, stateManager);\n });\n descrp.get.bind(state); // = hookFunc;\n Object.defineProperty(state, statePropName, descrp);\n }\n\n } // End staterHook condition\n \n // Direct value \n else if (descrp.hasOwnProperty('value')) {\n const stateProp = key;\n const value = statifyValue(descrp.value, stateProp, stateManager, appScope);\n if (!stateManager.privateState.hasOwnProperty(stateProp)) {\n stateManager.privateState[stateProp] = value;\n }\n Object.defineProperty(state, stateProp, {\n set(value) {\n const currentVal = stateManager.privateState[stateProp];\n if (value === currentVal) return;\n // Can't be \"STATE MAP\" - state maps must be top level - mention it in readme!\n value = statifyValue(value, stateProp, stateManager, appScope);\n // Sets value to \"private state\"\n stateManager.privateState[stateProp] = value;\n stateManager.setDirtyProp(stateProp);\n\n // If an array value was set to a new array, \n // then also count it as an array.length change!\n if (Array.isArray(value)) {\n stateManager.setDirtyProp(`${stateProp}.length`);\n }\n },\n get() {\n // Value is always retrieved from the \"private\" state\n return stateManager.privateState[stateProp];\n }\n });\n }\n }\n}\n\nexport function defineStateExpressionResolver(statePropExpression, stateObj, getter, contextStateProp) {\n Object.defineProperty(stateObj, statePropExpression, {\n get: getter,\n set() {\n throw Error(\"Cannot directly set a State property expression\");\n },\n enumerable: true,\n });\n stateObj._stateManager.addStateDependency(contextStateProp, statePropExpression);\n}\n\n// Takes a set of \"dependency\" prop names, and return two sets:\n// setter hook props, and direct value deps\nexport function sortDeps(depsSet) {\n const deps = new Set();\n const setterDeps = new Set();\n depsSet.forEach(dep=> {\n if (isSetterHook(dep)) setterDeps.add(dep);\n else deps.add(dep);\n });\n return [deps, setterDeps];\n}\n\n\n\n\n","import { SUPPORTED_ATTRIBUTES_FOR_BINDING, BINDABLE_ATTRIBUTES_TO_STATE_NODES } from \"../shared/consts.js\";\nimport { getNewNodeActionsObject } from \"../core/node_actions.js\";\nimport { NODES_STATE } from \"../shared/consts.js\";\nimport { queuePaint } from \"../shared/paint_utils.js\";\n\nconst { pendingPaintNodeManagers } = NODES_STATE;\n\nexport class NodeManager {\n \n // Maps state props to state nodes,\n // Keys are state props, and values are sets of Nodes\n stateNodes = {}\n // This is to contain the special \"conditional-rendering\" custom elements\n conditionallyRenderingElements = {};\n\n\n // Bindable attributes - are attributes that can be bound to state properties - \n // these are generally attributes that a user interaction can or should add or remove them\n // e.g. checked, value\n // Each value is a map with keys: DOM elements, values: State Attribute Nodes\n bindableAttributesStateNodes = new Map(\n [...BINDABLE_ATTRIBUTES_TO_STATE_NODES]\n .map(attributeName=> [attributeName, new Map()])\n );\n \n // Keys are nodes in the component\n // (child elements, attributes, text nodes),\n // values are sets of abstract DOM operations\n #nodeActions = new Map();\n\n paintStatus = null;\n\n // In the DOM realm - Node here is either an Attribute Node or a Text Node\n addStateNode(stateProp, stateNode) {\n if (!this.stateNodes.hasOwnProperty(stateProp)) {\n this.stateNodes[stateProp] = new Set();\n }\n\n this.stateNodes[stateProp].add(stateNode);\n\n // If this is an attribute node which is \"bindable\" (supported for the _bind command)\n // then we save a reference to its containing element\n if (SUPPORTED_ATTRIBUTES_FOR_BINDING.has(stateNode.nodeName)) {\n const bindaleAttributeStateNodes = this.bindableAttributesStateNodes.get(stateNode.nodeName);\n bindaleAttributeStateNodes.set(stateNode.originalOwnerElement, stateNode);\n }\n }\n removeStateNode(stateProp, stateNode) {\n this.stateNodes?.[stateProp].delete(stateNode);\n }\n\n // ConditionalElements mapped to stateProp\n addConditionallyRenderingElements(stateProp, element) {\n if (!this.conditionallyRenderingElements.hasOwnProperty(stateProp)){\n this.conditionallyRenderingElements[stateProp] = new Set();\n }\n element.originalParentElement = element.parentElement || element.host?.shadowRoot;\n this.conditionallyRenderingElements[stateProp].add(element);\n }\n\n addNodeAction(node, action) {\n if (!this.#nodeActions.has(node)) {\n this.#nodeActions.set(node, getNewNodeActionsObject(node.nodeType));\n }\n const nodeActions = this.#nodeActions.get(node);\n const { actionType, actionValue } = action;\n if (node.nodeType === Node.ELEMENT_NODE) {\n switch (actionType) {\n case \"append\": {\n nodeActions.append.add(actionValue);\n break;\n }\n case \"setProperty\": {\n nodeActions.setProperty(actionValue.property, actionValue.value);\n break;\n }\n case \"reattach\": {\n nodeActions.reattach = true;\n break;\n }\n }\n }\n else {\n nodeActions[actionType] = actionValue;\n }\n\n if (!this.paintStatus) { \n this.paintStatus = \"pending\";\n }\n }\n\n queuePaint() {\n if (this.paintStatus === \"pending\") {\n pendingPaintNodeManagers.add(this);\n queuePaint();\n this.paintStatus = \"queued\";\n }\n }\n resolveToDOMActions() {\n const attributeActions = [];\n const textActions = [];\n const elementActions = [];\n const reattachActions = [];\n const propertySetActions = [];\n \n this.#nodeActions.forEach((nodeActions, node)=> {\n switch (node.nodeType) {\n case Node.ATTRIBUTE_NODE: {\n const value = nodeActions.setAttribute;\n const typeOfValue = typeof value;\n if (typeOfValue !== 'undefined') {\n if (typeOfValue === \"boolean\") {\n if (!node.hasOwnProperty(\"originalOwnerElement\")) {\n throw Error(\"originalOwnerElement not found on boolean attribute node! Should never happen!\");\n }\n if (value === false) {\n // Remove attribute if it exists, otherwise - do nothing\n if (node.originalOwnerElement.hasAttribute(node.name)) {\n attributeActions.push(()=> {\n node.originalOwnerElement.removeAttributeNode(node);\n });\n }\n }\n // state changed to true\n else {\n if (!node.originalOwnerElement.hasAttribute(node.name)) {\n attributeActions.push(()=> {\n node.originalOwnerElement.setAttributeNode(node);\n });\n }\n }\n }\n else {\n if (typeOfValue === \"string\" && node.nodeValue !== value) {\n attributeActions.push (()=> node.nodeValue = value);\n }\n }\n }\n break;\n }\n \n case Node.TEXT_NODE: {\n if (nodeActions.textContent !== undefined) {\n const value = String(nodeActions.textContent);\n if (node.nodeValue !== value) {\n textActions.push (()=> node.nodeValue = value);\n }\n }\n break;\n }\n \n case Node.ELEMENT_NODE: {\n // Append\n for (const newChildElement of nodeActions.append.values()) {\n elementActions.push(()=> node.appendChild(newChildElement));\n }\n \n // setProperty\n for (const [key, value] of nodeActions.setProperty) {\n if (node[key] !== value) {\n propertySetActions.push(()=> node[key] = value)\n }\n }\n // Reattach\n if (nodeActions.reattach) {\n reattachActions.push(()=> node.reattach());\n if (node?.pendingKeyMapActions?.size) {\n reattachActions.push(()=> {\n for (const keyMapAction of node.pendingKeyMapActions) {\n keyMapAction();\n }\n node.pendingKeyMapActions.clear();\n });\n }\n nodeActions.reattach = false;\n }\n }\n break;\n }\n });\n \n this.#nodeActions.clear();\n return [attributeActions, textActions, propertySetActions, elementActions, reattachActions ];\n }\n}\n\n\n","import { populateStateFromInitialState } from \"./state_utils\";\nimport { StateObjectValueHandler } from \"./proxy_handlers\";\n\nexport function populateInitialState(stateManager, initialState, appScope = window) {\n return populateStateFromInitialState(stateManager, initialState, appScope);\n}\nexport function makeReactive(stateObject, parentStateProp = undefined, appScope = window) {\n return new Proxy(stateObject, StateObjectValueHandler(stateObject, parentStateProp, appScope));\n}","import { defineStateExpressionResolver, sortDeps } from \"./state_utils.js\";\nimport { handleStateChange, handleStateDependency, isBuiltInStateProp, isSetterHook } from \"../shared/state_utils.js\";\nimport { GLOBAL_STATE_FUNCTION_NAME, GLOBAL_STATE_NOT_SET_YET } from \"../shared/consts.js\";\nimport { setHiddenProperty } from \"../shared/prop_utils.js\";\nimport { queueAnimationFrame } from \"../shared/paint_utils.js\";\nimport { callSetterHook } from \"./state_utils.js\";\nimport { parseStateExpression } from \"../shared/parse_utils.js\";\nimport { NodeManager } from \"./NodeManager.js\";\nimport { makeReactive, populateInitialState } from \"./reactivity_utils.js\";\nconst stateChangeHandlers = new Map();\n\nfunction queueStateChange(element, stateChangeHandler) {\n stateChangeHandlers.set(element, stateChangeHandler);\n queueAnimationFrame(\n Array.from(stateChangeHandlers.values()), \n \"STATE_CHANGE\",\n ()=> stateChangeHandlers.clear()\n );\n}\n\n// This class actually handles \"State\". It returns a proxied \"state\" object,\n// while handling all state changes and triggers behind the scenes\n\n// Lifecycle:\n// 1. Dirty Prop\n// 2. Queue STATE_CHANGE -> handleStateChanges to rAF\n// 3. For each prop changed: \n// 3A. Run handleStateChange\n// 3B. Run handleStateChange for all local dependencies\n// 3C. Run handleStateChange for all global dependencies\nclass StateManager {\n\n isInitializing = false;\n \n // The privateState is the \"source of truth\" for the values of the state,\n // the keys are the same as the \"public\" keys\n privateState = {};\n\n // This represents the \"publicly\" exposed state object\n // It will be wrapped in a Proxy\n state = new EventTarget();\n\n\n // A map that maps state props to \"dependencies\", each time a stateProp which is a key here,\n // is changed, a state change is triggered for its dependencies as well\n stateDependencies = new Map();\n\n // These are used when the state object has a \"parent\", e.g an object inside a Stateful Array\n parentStateProp\n parentStateManager\n\n // State props that were changed and needs to trigger possible state changes\n dirtyProps = new Set();\n\n // Node Manager saves bindings between Nodes and state,\n // translates state chanages into DOM actions and queue them for next paint.\n nodeManager = new NodeManager();\n \n // Each key in the map is a stateProp, value is a set of callback functions\n // to run when the state changes\n stateHooks = new Map();\n // Names of \"plugins\" that are turned on for the State Manager instance (e.g. \"map\", \"conditional-element\");\n #plugins = new Set();\n \n setDirtyProp(prop, queueHandleState=true) {\n // state properties beginning with $$ are internal \"utility\" meta properties\n if (this.state.$$isInitializing) return;\n const lengthIndex = prop.indexOf('.length');\n const checkProp = lengthIndex > 0 ? prop.substring(0, lengthIndex) : prop;\n if (!Object.hasOwn(this.state, checkProp)) {\n throw Error(`Error in setDirtyProp. State has no property: '${prop}'. This should never happen`);\n }\n this.dirtyProps.add(prop);\n if (Array.isArray(this.state[checkProp])) {\n this.state[checkProp].lastDirtyTimestamp = new Date().getTime();\n }\n if (queueHandleState) {\n queueStateChange(this, this.handleStateChanges.bind(this));\n }\n }\n\n handleStatePropDependencies(depStateProps) {\n const dependenciesMap = this.stateDependencies;\n const globalDependenciesMap = this?.globalStateDependencies;\n depStateProps.forEach(depStateProp=> {\n handleStateDependency(this, depStateProp, this.appScope);\n // If it was a setter hook, it re-set the value of its equivalent state prop\n const changedStateProp = isSetterHook(depStateProp) ? depStateProp.substring(4) : depStateProp;\n if (dependenciesMap?.has(changedStateProp)) {\n const dependenciesSet = dependenciesMap.get(changedStateProp);\n const [deps, setterDeps] = sortDeps(dependenciesSet);\n if (setterDeps.size) {\n this.handleStatePropDependencies(setterDeps);\n }\n if (deps.size) {\n this.handleStatePropDependencies(deps);\n }\n }\n\n if (globalDependenciesMap?.has(changedStateProp)) {\n const globalDeps = globalDependenciesMap.get(changedStateProp);\n globalDeps.forEach((depsSet, localStateManager)=> {\n const [deps, setterDeps] = sortDeps(depsSet);\n if (setterDeps.size) {\n localStateManager.handleStatePropDependencies(setterDeps);\n }\n if (deps.size) {\n localStateManager.handleStatePropDependencies(deps);\n }\n });\n }\n });\n\n }\n\n isGlobalState() {\n return !this.state.hasOwnProperty('_global');\n }\n\n // This sorts by order of execution,\n // according to the number of dependencies (\"in-degrees\"),\n // 0 runs first, then 1, and so on...\n // This is called: topological sort of a directed graph\n topologicalSortStateProps(stateProps) {\n return [...stateProps].toSorted((a, b)=> {\n\n // If one prop is a sub-property of another, ensure the base property comes first\n if (a.startsWith(b + '.')) return 1;\n if (b.startsWith(a + '.')) return -1;\n\n // Otherwise, sort by dependency count\n return ((this.stateDependencies[a]?.size || 0) - this.stateDependencies[b]?.size || 0);\n });\n }\n\n // This function uses handleStateChange which is passed to the class via its constructor (dependency injection),\n // it is the \"bridge\" between the State Manager to the \"outside world\"\n handleStateChanges() {\n if (!this.dirtyProps.size) return;\n performance.mark(\"todo-topological-sort\");\n const stateProps = this.topologicalSortStateProps(this.dirtyProps);\n this.dirtyProps.clear();\n const isLocal = !this.isGlobalState();\n const deps = new Set();\n const setterDeps = new Set();\n const globalDeps = new Set();\n const thisStateManager = this;\n const thisState = thisStateManager.state\n stateProps.forEach(stateProp=> {\n if (isSetterHook(stateProp)) {\n stateProp = stateProp.substring(4);\n const setterHook = thisState[stateProp];\n performance.mark(\"todo-call-setter-hook\");\n const hasNewValue = callSetterHook(setterHook, stateProp, thisStateManager, this.appScope);\n if (hasNewValue) {\n this.handleStateChange(thisStateManager, stateProp, null);\n }\n }\n else {\n this.handleStateChange(thisStateManager, stateProp, null);\n }\n\n if (thisStateManager.stateDependencies.has(stateProp)) {\n thisStateManager.stateDependencies.get(stateProp).forEach(dep=> {\n if (isSetterHook(dep)) setterDeps.add(dep);\n else deps.add(dep);\n });\n }\n let globalState = thisStateManager.state?._global;\n if (globalState === GLOBAL_STATE_NOT_SET_YET) {\n globalState = this.appScope[GLOBAL_STATE_FUNCTION_NAME]();\n }\n if (globalState !== GLOBAL_STATE_NOT_SET_YET) {\n const globalStateManager = globalState?._stateManager || thisStateManager;\n if (globalStateManager.globalStateDependencies.has(stateProp)) {\n globalDeps.add(globalStateManager.globalStateDependencies.get(stateProp));\n }\n }\n });\n\n if (setterDeps.size) {\n this.handleStatePropDependencies(setterDeps);\n }\n if (deps.size) {\n this.handleStatePropDependencies(deps);\n }\n if (globalDeps.size) {\n globalDeps.forEach((deps, localStateManager)=> {\n localStateManager.handleStatePropDependencies(deps);\n });\n }\n\n thisStateManager.clearStateMapsLastOperation();\n\n // If this is a \"child-state\", we mark the prop in the containing state as dirty.\n if (this.parentStateManager) {\n this.parentStateManager.setDirtyProp(this.parentStateProp);\n }\n }\n\n // A StateManager instance can also be a \"sub-state\" object within a containing state object,\n // in this case (the optional) 'parentStateProp' and 'parentStateManager' are used to bind to its containing state object.\n constructor(initialState, parentStateProp, parentStateManager, handleStateFunction = handleStateChange, isGlobal = false, appScope=window) {\n this.isInitializing = true;\n this.parentStateProp = parentStateProp;\n this.parentStateManager = parentStateManager;\n this.handleStateChange = handleStateFunction;\n this.appScope = appScope;\n // this.state = {};\n\n // Saves the actual state manager instance to a readonly _stateManager\n setHiddenProperty(this.state, \"_stateManager\", this, true);\n\n this.state.$$isInitializing = true;\n this.state.populate = function(populateObject) {\n for (const property in populateObject) {\n if (this.hasOwnProperty(property)) {\n if (isBuiltInStateProp(property)) {\n if (STRICT) {\n console.warn(`Cannot use a built-in reserved property name ${property} on State objects`);\n }\n continue\n }\n this[property] = populateObject[property];\n }\n }\n }\n // If a \"child state\" - then allow mutability (adding new props)\n if (parentStateProp && parentStateManager) {\n this.state = makeReactive(this.state, parentStateProp, appScope);\n } \n\n if (!STRICT) {\n if (!initialState || !Object.keys(initialState).length) {\n console.warn(\"Empty initial state objects should never be used!\");\n }\n }\n // Local state\n if (!isGlobal) {\n const globalState = appScope[GLOBAL_STATE_FUNCTION_NAME]();\n setHiddenProperty(this.state, \"_global\", globalState, true);\n }\n // Global state\n else {\n // This maps depencdies between \"local\" state properties to global state changes\n // The difference between the normal dependencies object, is that each depenency\n // also includes a state object (which is the state context of the property),\n // in other words, if a local state \"relies\" on a global state change - we save this\n // mapping here.\n // The keys are global state properties, where each value is a Map,\n // in the map, the keys are local state manager objects, and the values are sets with\n // local property names\n this.globalStateDependencies = new Map();\n this.addGlobalStateDependency = (stateProp, depStateProp, localStateManager)=> {\n if (!this.globalStateDependencies.has(stateProp)) {\n this.globalStateDependencies.set(stateProp, new Map());\n }\n const globalDeps = this.globalStateDependencies.get(stateProp);\n if (!globalDeps.has(localStateManager)) {\n globalDeps.set(localStateManager, new Set());\n }\n globalDeps.get(localStateManager).add(depStateProp);\n }\n }\n\n populateInitialState(this, initialState, appScope);\n\n delete this.state.$$isInitializing;\n setHiddenProperty(this.state, \"_isStateManager\", true);\n setHiddenProperty(this.state, \"_isActive\", true, false);\n this.isInitializing = false;\n }\n\n // Each value is a set of state properties set as \"dependencies\" for a key State Property\n addStateDependency(stateProp, depStateProp) {\n if (!this.stateDependencies.has(stateProp)) {\n this.stateDependencies.set(stateProp, new Set());\n }\n this.stateDependencies.get(stateProp).add(depStateProp)\n if (Array.isArray(this.state[stateProp])) {\n this.addStateDependency(`${stateProp}.length`, depStateProp);\n }\n }\n clearStateDependencies(stateProp) {\n if (this.stateDependencies.has(stateProp)) {\n this.stateDependencies.set(stateProp, new Set());\n }\n }\n\n // parent element is an element that have the \"_map\" command - \n // expected to contain instances of customElementName that were created from an array of State objects\n /*\n addStateMap(stateProp, customElementName, parentElement) {\n if (!this.stateArrayMaps.hasOwnProperty(stateProp)) {\n this.stateArrayMaps[stateProp] = new Map();\n }\n this.stateArrayMaps[stateProp].set(parentElement, customElementName);\n }\n */\n\n // ConditionalElements mapped to stateProp\n //addConditionallyRenderingElements(stateProp, element) {\n //this.nodeManager.addConditionallyRenderingElements(stateProp, element);\n //}\n \n // In the DOM realm - Node here is either an Attribute Node or a Text Node\n addStateNode(stateProp, stateNode) {\n this.nodeManager.addStateNode(stateProp, stateNode);\n /*\n if (!this.stateNodes.hasOwnProperty(stateProp)) {\n this.stateNodes[stateProp] = new Set();\n }\n\n this.stateNodes[stateProp].add(stateNode);\n\n // If this is an attribute node which is \"bindable\" (supported for the _bind command)\n // then we save a reference to its containing element\n if (SUPPORTED_ATTRIBUTES_FOR_BINDING.has(stateNode.nodeName)) {\n const bindaleAttributeStateNodes = this.nodeManager.bindableAttributesStateNodes.get(stateNode.nodeName);\n bindaleAttributeStateNodes.set(stateNode.originalOwnerElement, stateNode);\n }\n */\n }\n removeStateNode(stateProp, stateNode) {\n // this.stateNodes?.[stateProp].delete(stateNode);\n this.nodeManager.removeStateNode(stateProp, stateNode);\n }\n\n // statePropExpression can be a \"literal\" state property or a \"state expression\"\n // (See comment on parseStateExpression for reference)\n bindStatePropExpression(statePropExpression, type, args) {\n let contextStateProp = args[0];\n if (!type || !args) {\n [type, args] = parseStateExpression(statePropExpression);\n contextStateProp = args[0];\n }\n if (!contextStateProp) {\n throw Error (`Must specify state property name for State expression: ${statePropExpression}`);\n }\n\n let stateObj = this.state;\n let descriptor = Object.getOwnPropertyDescriptor(stateObj, contextStateProp);\n if (!descriptor) {\n stateObj = stateObj._global;\n descriptor = Object.getOwnPropertyDescriptor(stateObj, contextStateProp);\n }\n if (!descriptor) {\n throw Error(`Could not bind state property ${contextStateProp}. State property ${contextStateProp} not defined!`);\n }\n\n if (Object.hasOwn(stateObj, statePropExpression)) return stateObj[statePropExpression];\n\n const isValueProp = descriptor.hasOwnProperty('value');\n const stateManager = this;\n\n let getter;\n\n switch (type) {\n case \"negation\": {\n const relevantState = isValueProp ? stateManager.privateState : stateManager.state;\n getter = ()=> { return !relevantState[contextStateProp] };\n defineStateExpressionResolver(statePropExpression, stateObj, getter, contextStateProp);\n break;\n }\n\n case \"equality\": {\n const equalityValue = args[1];\n if (!equalityValue) {\n throw Error(\"Must specify equality value for equality expression (is_something:equalToThis)\");\n }\n const relevantState = isValueProp ? stateManager.privateState : stateManager.state;\n getter = ()=> { return relevantState[contextStateProp] === equalityValue; }\n defineStateExpressionResolver(statePropExpression, stateObj, getter, contextStateProp);\n break;\n }\n\n case \"ternary\": {\n const truthyValue = args[1];\n if (!truthyValue) {\n throw Error(\"Ternary state expression (prop?truthy:falsy) must include at least a truthy value!\")\n }\n const falsyValue = args[2];\n const relevantState = isValueProp ? stateManager.privateState : stateManager.state;\n getter = \n falsyValue ? \n ()=> { return relevantState[contextStateProp] ? truthyValue : falsyValue } :\n ()=> { return relevantState[contextStateProp] ? truthyValue : undefined };\n defineStateExpressionResolver(statePropExpression, stateObj, getter, contextStateProp);\n break;\n }\n }\n\n return stateObj[statePropExpression];\n }\n\n // Used for DEBUGGING!\n getStateDependencies() {\n return this.stateDependencies;\n }\n\n // This can be used to inject (DI) - \"plugins\" - extensions to the State Manager.\n use(factoryFunction, pluginName) {\n factoryFunction.call(this);\n this.#plugins.add(pluginName)\n }\n\n isUsing(pluginName) {\n return this.#plugins.has(pluginName);\n }\n\n // State Hook functions are function that\n // run if stateProps change their value\n // they can be used by \"plug-ins\" to add extra\n // functionalities. If stateProps is undefined\n // they hook function will run for ANY state change.\n // stateProps can be an array of State props, to trigger\n // the State hook functions only for when those state props change\n addStateHook(hookFunction, stateProps = []) {\n if (!stateProps.length) {\n const allPropsHooks =\n this.stateHooks.get(\"$$ALL\") ??\n (this.stateHooks.set(\"$$ALL\", new Set()), this.stateHooks.get(\"$$ALL\"));\n allPropsHooks.add(hookFunction);\n }\n else {\n stateProps.forEach(stateProp=> {\n const propHooks =\n this.stateHooks.get(stateProp) ??\n (this.stateHooks.set(stateProp, new Set()), this.stateHooks.get(stateProp));\n propHooks.add(hookFunction);\n });\n }\n }\n} \n\n\nexport default StateManager;\n","import { GLOBAL_STATE_FUNCTION_NAME, DEFAULT_TEMPLATE_DOM, SHADOW_ROOT_CSS } from \"../shared/consts.js\";\nimport { queueBindEvents } from \"../shared/paint_utils.js\";\nimport { extendElementClassWithReactiveElementClass } from './ReactiveElement.js';\nimport { handleStateChange } from \"../shared/state_utils.js\";\nimport { newStateManager } from \"../Cougar/state_utils.js\";\n\nconst SHADOW_CSS = new CSSStyleSheet();\nSHADOW_CSS.replaceSync(SHADOW_ROOT_CSS);\n\n// Lifecycle:\n// init: constructor\n// mount: connectedCallback\n// stateful: state is active\n// active: stateful, events bound and after all commands run\n// unmount: disconnectedCallback\nexport function getReactiveCustomElementClass(appScope = window) {\n const ReactiveHTMLElement = extendElementClassWithReactiveElementClass(HTMLElement, appScope);\n const StateManager = appScope.SPROUT_CONFIG.stateManagerClass;\n class ReactiveCustomElement extends ReactiveHTMLElement {\n\n // Important different between \"host\" and shadowRoot (we call root):\n // host is the DOM element of the custom element\n // that element contains Shadow DOM - Shadow DOM trees always have a \"shadowRoot\"\n // the shadowRoot is an extension of a DocumentFragment, accessible via this.shadowRoot\n\n // If this is part of a \"mapped element\" (an element where each child is mapped to a state item in an array),\n // created using the _map command - then this will contain the parent element\n ownerMapElement\n\n // Reactive state managed by a State Manager (Cougar by default)\n state \n\n // This is a \"fallback\" for the key property for state objects used for maps,\n // the runtime uses this in cases where state is not active yet\n stateKey\n #wasMounted = false\n\n // Note! .state will not be available in init and mount!\n #lifecycle = {\n init: null,\n mount: null,\n stateful: null,\n active: null,\n unmount: null\n }\n\n #templateContent\n #stylesheet\n #globalStylesheet\n\n // This will be an object where keys are element \"ref\" names,\n // and the value is either a \"click\" event handler (if it's a function),\n // or an object with DOM event names as keys and event handlers as functions.\n // Only relevant for non native custom elements - event bubbling from child elements will be used\n events\n\n // A \"mapped\" version of events, where keys are event names and value\n // is a map where keys are ref target names and values are event handler function\n eventsMap = new Map();\n #eventHandler\n \n // These are attributes of child elements that are bound to \"Prop Attributes\",\n // Keys are attribute names, and values are set of Attribute Nodes\n propAttributes = new Map();\n\n // Uses Declrative Shadow DOM\n #usesDSD = false;\n #settings\n commands\n // Maps \"ref names\" to actual elements in the component DOM tree,\n // for fast access.\n ref = {};\n\n canonicalTagName;\n\n constructor(template=null, runtime, style, globalStylesheet, usesDSD = false) {\n super();\n const isFrameworkElement = this.tagName === \"CONDITIONAL-ELEMENT\";\n if (isFrameworkElement) return;\n\n this.isNativeElement = false;\n this.#usesDSD = usesDSD;\n\n if (globalStylesheet) {\n this.#globalStylesheet = globalStylesheet;\n }\n\n this.canonicalTagName = this.localName;\n if (!this.#usesDSD) {\n if (style) {\n const stylesheet = new CSSStyleSheet();\n stylesheet.replaceSync(style);\n this.#stylesheet = stylesheet;\n }\n\n // Using importNode instead of node.cloneNode,\n // so if a template includes other custom elements,\n // they will already be defined. (See cloneNode on MDN) \n this.#templateContent = \n template ?\n document.importNode(template, true) :\n document.importNode(DEFAULT_TEMPLATE_DOM, true);\n\n this.#renderTemplate();\n }\n else {\n // Declartive Shadow DOM (DSD) elements have a '-dsd' at the end of their tag name\n this.canonicalTagName = this.localName.substring(0, this.localName.indexOf('-dsd'));\n }\n\n if (runtime) {\n this.#setRuntime(runtime);\n }\n\n if (this.#lifecycle.init) this.#lifecycle.init.call(this);\n }\n\n #setRuntime(runtime) {\n this.#settings = runtime.settings;\n this.commands = runtime.commands;\n if (runtime.events) {\n const setRefEvent = (eventName, refName, eventHandler)=> {\n if (!this.eventsMap.has(eventName)) {\n this.eventsMap.set(eventName, new Map());\n }\n const eventMapItem = this.eventsMap.get(eventName);\n eventMapItem.set(refName, eventHandler);\n }\n\n let eventsObjectValue, typeOfValue;\n for (const refName in runtime.events) {\n eventsObjectValue = runtime.events[refName];\n typeOfValue = typeof eventsObjectValue;\n if (typeOfValue === \"function\") {\n setRefEvent(\"click\", refName, eventsObjectValue);\n }\n else if (typeOfValue === \"object\") {\n for (const eventName in eventsObjectValue) {\n setRefEvent(eventName, refName, eventsObjectValue[eventName]);\n }\n }\n }\n\n if (this.isConnected) this.#bindEvents();\n }\n if (runtime.state) {\n this.setInitialState(runtime.state);\n // Upgraded custom elements can be \"connected\" while still inside constructor.\n // Activating state there creates a first state tree before mount/stateful run,\n // then connectedCallback creates a second one and orphanes existing bindings.\n if (this.isConnected && this.#wasMounted && !this.state) {\n this.#setActiveStateFromInitialState();\n }\n }\n for (const lifecycleEvent in this.#lifecycle) {\n if (runtime.hasOwnProperty(lifecycleEvent)) {\n this.#lifecycle[lifecycleEvent] = runtime[lifecycleEvent];\n }\n }\n }\n\n setInitialState(initState) {\n if (this.initialState) {\n Object.assign(this.initialState, initState);\n }\n else {\n this.initialState = initState;\n }\n if (initState.hasOwnProperty(\"key\")) this.stateKey = initState.key;\n }\n #setActiveStateFromInitialState() {\n if (!this.initialState || this.state?._isActive) return;\n const initialState = this.initialState;\n if (initialState._stateManager) {\n this.state = initialState._stateManager.state;\n }\n else {\n const stateManager = newStateManager(initialState, undefined, undefined, handleStateChange, false, appScope);\n this.state = stateManager.state;\n this.state.$host = this; \n }\n // delete this.initialState;\n this.state._isActive = true;\n }\n\n #renderTemplate() {\n if (appScope.SPROUT_CONFIG.useShadow) {\n this.attachShadow({ \n mode: \"open\",\n delegatesFocus: true,\n });\n this.shadowRoot.adoptedStyleSheets = [ SHADOW_CSS ];\n if (this.#globalStylesheet) this.shadowRoot.adoptedStyleSheets.push(this.#globalStylesheet);\n if (this.#stylesheet) this.shadowRoot.adoptedStyleSheets.push(this.#stylesheet);\n this.shadowRoot.appendChild(this.#templateContent);\n }\n else {\n const fragment = new DocumentFragment();\n fragment.appendChild(this.#templateContent);\n this.appendChild(fragment);\n }\n }\n\n #unbindEvents() {\n if (!this.eventsMap.size) return;\n const thiselement = this;\n for (const eventName of this.eventsMap.keys()) {\n thiselement.shadowRoot.removeEventListener(eventName, this.#eventHandler, false);\n }\n }\n\n #bindEvents() {\n if (this.#eventHandler) return;\n if (!this.eventsMap.size) return;\n const globalState = appScope[GLOBAL_STATE_FUNCTION_NAME]();\n // This runs in the scope of shadowRoot\n this.#eventHandler = function(event) {\n const host = this.host;\n const eventsMapItem = host.eventsMap.get(event.type);\n if (!eventsMapItem) return false;\n\n const eventsPath = event.composedPath();\n for (const element of eventsPath) {\n if (element && \n element.refName &&\n eventsMapItem.has(element.refName)\n ) {\n const targetElement = element;\n const targetRefName = targetElement.refName;\n const eventHandler = eventsMapItem.get(targetRefName);\n eventHandler.call(targetElement, event, host, globalState);\n }\n }\n event.stopPropagation();\n };\n\n for (const eventName of this.eventsMap.keys()) {\n this.shadowRoot.addEventListener(eventName, this.#eventHandler, { capture: true });\n }\n }\n\n disconnectedCallback() {\n this.#unbindEvents();\n this.state = undefined;\n this.isActive = false;\n if (this.#lifecycle.unmount) this.#lifecycle.unmount.call(this);\n }\n\n activate() {\n super.activate();\n this.#bindEvents();\n if (this.#lifecycle.active) this.#lifecycle.active.call(this);\n }\n\n // Override findElement to scope lookups to this component instance,\n // not its parent host. This ensures nested components resolve their own refs.\n findElement(refName) {\n const host = this;\n let root = this;\n if (appScope.SPROUT_CONFIG.useShadow) {\n root = host.shadowRoot;\n }\n return Object.hasOwn(host.ref, refName)\n ? host.ref[refName]\n : root?.querySelector?.(`[ref=\"${refName}\"]`) || null;\n }\n connectedCallback() {\n // We set this for easier/straightforward access (e.g. with querySelector); \n this.setAttribute(\"tagName\", this.canonicalTagName);\n\n if (this.#wasMounted) return;\n // IMPORTANT: THIS *CAN* be NULL, DO NOT CHANGE IT!\n // It is to check if the custom element is inside a shadow DOM\n // of ANOTER parent custom element - \n // if this is the case - getRootNode() will return the shadowRoot,\n // of the outer CE - and it will have a host property - referencing\n // the containing CE, if not it will just return document and .host\n // will be null\n const host = this.getRootNode().host;\n\n if (this.#lifecycle.mount) this.#lifecycle.mount.call(this);\n //if (!this.#usesDSD) {\n // this.#renderTemplate();\n //}\n\n const doActivate = ()=> {\n this.#setActiveStateFromInitialState();\n this.isActive = true;\n this.dispatchEvent( new CustomEvent(\"active\") );\n if (this.#lifecycle.stateful) this.#lifecycle.stateful.call(this);\n this.activate();\n }\n // Custom Elements can also be inside \n // the Shadow DOM of other custom elements,\n // in which case - we need to wait for their host to be active first\n // We async queue using setTimeout (NOT rAF or queueMicrotrask!) -\n // To allow full paint of the elements to finish first,\n // and then hydrate\n if (host) {\n if (host.isActive) doActivate();\n else host.addEventListener(\n \"active\",\n doActivate,\n { once: true }\n );\n }\n else {\n setTimeout(doActivate, 0);\n }\n this.#wasMounted = true;\n }\n\n attributeChangedCallback(attributeName, oldValue, newValue) {\n if (oldValue === newValue) return;\n if (attributeName === \"hidden\") {\n if (newValue === null) {\n this.dispatchEvent(\n new CustomEvent(\"unhide\", { bubbles: true })\n );\n }\n else {\n this.dispatchEvent(\n new CustomEvent(\"hide\", { bubbles: true })\n );\n }\n }\n if (this.propAttributes.has(attributeName)) {\n const propAttributeNodes = this.propAttributes.get(attributeName);\n propAttributeNodes.forEach(attrNode=> {\n attrNode.nodeValue = newValue;\n if (attrNode.ownerElement.tagName === \"CONDITIONAL-RENDER\") {\n attrNode.ownerElement.render();\n }\n });\n }\n }\n }\n\n\n return ReactiveCustomElement;\n}\n","import { attributeValueToTypedValue, bindPropAttribute } from \"./attr_utils\";\nimport { CONDITIONAL_OPERATORS, SYMBOL_NAMES } from \"../shared/consts\";\nimport { queueConditionalRender } from \"../shared/paint_utils\";\nimport { conditionalElements } from \"../Cougar/state_plugins\";\n\n// returns a Boolean according to the conditional equality of conditional to conditionStateValue\nexport function resolveCondition(operator, value, conditionStateValue) {\n if (operator === \"always\") return true;\n switch (operator) {\n case '==': return (conditionStateValue == value);\n case '===': return (conditionStateValue === value);\n case '!=': return (conditionStateValue != value);\n case '!==': return (conditionStateValue !== value);\n case '<': return (conditionStateValue < value);\n case '<=': return (conditionStateValue <= value);\n case '>': return (conditionStateValue > value);\n case '>=': return (conditionStateValue >= value);\n default: return (conditionStateValue == value);\n }\n}\n\nexport function getConditionalElementClass(ReactiveElementClass) {\n class ConditionalElement extends ReactiveElementClass {\n\n #isConditionStateProp\n #conditionProp\n #renderMap\n\n static observedAttributes = [\"_condition\"];\n\n render(isFirstRender=false) {\n let conditionValue;\n if (this.#isConditionStateProp) {\n conditionValue = this.getState(this.#conditionProp);\n if (conditionValue === undefined) {\n throw Error(`State value for ${this.#conditionProp} not found while rendering conditional-render element:`, this);\n }\n }\n else {\n conditionValue = this.getAttribute('_condition');\n if (conditionValue === undefined) {\n throw Error(`_condition value not found while rendering conditional-render element:`, this);\n }\n }\n const elementsToRender = [];\n this.#renderMap.forEach(({ condition, elements })=> {\n const { operator, value } = condition;\n if (resolveCondition(operator, value, conditionValue)) {\n elementsToRender.push(...elements);\n }\n });\n\n if (isFirstRender) {\n this.innerHTML = \"\";\n this.append(...elementsToRender);\n }\n else if (elementsToRender.length) {\n queueConditionalRender(this, ()=> {\n this.innerHTML = \"\";\n this.append(...elementsToRender);\n });\n }\n }\n\n // Groups elements to render according to conditional expressions (operation + condition)\n generateRenderMap() {\n const renderMap = new Map();\n renderMap.set(\"always\", []);\n const children = [...this.children];\n children.forEach(conditionalChild=> {\n const _if = conditionalChild.getAttribute('_if').replaceAll(' ', '');\n if (_if) {\n if (!renderMap.has(_if)) {\n const [, operator, value] = cond.trim().split(CONDITIONAL_OPERATORS_REGEX);\n const normalizedValue = attributeValueToTypedValue(value);\n const conditionObj = { operator, value: normalizedValue }\n\n renderMap.set(_if, { condition: conditionObj, elements: [ conditionalChild ]});\n }\n else {\n renderMap.get(_if).elements.push(conditionalChild);\n }\n }\n else {\n renderMap.get(\"always\").elements.push( conditionalChild );\n }\n });\n this.#renderMap = renderMap;\n }\n\n activate() {\n const condition = this.getAttribute(\"_condition\");\n if (!condition) {\n throw Error(\"conditional-render elements must have a _condition attribute!\");\n }\n\n if (condition.indexOf('@') === 0) {\n bindPropAttribute.call(this, \"_condition\", condition);\n this.#isConditionStateProp = false;\n this.#conditionProp = condition.substring(1);\n }\n else {\n this.#isConditionStateProp = true;\n this.#conditionProp = condition;\n }\n\n if (!STRICT) {\n if (!this.children || !this.children.length) {\n console.warn(\"Conditional element doesn't have any children!\");\n }\n }\n if (this.#isConditionStateProp) {\n const statePropName = this.#conditionProp;\n const [stateValue, stateObject] = this.getState(statePropName, true);\n if (typeof stateValue === undefined) {\n throw Error(`State property ${statePropName} not defined for _condition command!`);\n }\n const stateManager = stateObject._stateManager;\n if (!stateManager.has(\"conditional-element\")) stateManager.use(conditionalElements, 'conditional-element');\n stateManager.addConditionallyRenderingElements(statePropName, this);\n this.generateRenderMap();\n this.render(true);\n }\n else {\n this.render(true);\n }\n }\n }\n return ConditionalElement;\n}\n","import { SPROUT_FROZEN_CLASS_CSS } from \"../shared/consts\";\n\nfunction toCamelCase(str) {\n return str\n .toLowerCase() // Convert the string to lower case\n .split(/[\\s-_]+/) // Split by spaces, hyphens, or underscores\n .map((word, index) => {\n if (index === 0) {\n return word; // Return the first word as is (in lower case)\n }\n // Capitalize the first letter of each subsequent word\n return word.charAt(0).toUpperCase() + word.slice(1);\n })\n .join(''); // Join all words together\n}\n\n\n// This is the script that takes Template elements from the page and defines Reactive Custom Elements\nexport default function(appScope, appName) {\n\n const sprouteCustomElements = appScope.scopedCustomElementRegistry;\n // Create custom elements from templates\n async function defineCustomElementFromTemplate(template, elemName, globalStylesheet) {\n let templateContent, style, runtime;\n templateContent = template.content;\n style = templateContent.querySelector('style');\n if (style) templateContent.removeChild(style);\n const runtimeScript = templateContent.querySelector('script');\n if (runtimeScript) {\n const runtimeCode = runtimeScript.textContent;\n // Remove from template so it won't be stamped into the DOM\n templateContent.removeChild(runtimeScript);\n if (runtimeCode && runtimeCode.trim().length !== 0) {\n try {\n runtime = Function(runtimeCode)();\n } catch (e) {\n console.warn(`Failed to evaluate runtime for ${elemName} from template script`, e);\n }\n }\n }\n\n customElements.define(\n elemName, \n class extends appScope.ReactiveCustomElement {\n constructor() {\n super(templateContent, runtime, style?.textContent, globalStylesheet);\n }\n }\n );\n\n // Also define the -dsd variation - to support Declartive Shadow DOM\n customElements.define(\n `${elemName}-dsd`, \n class extends appScope.ReactiveCustomElement {\n constructor() {\n super(templateContent, runtime, null, globalStylesheet, true);\n }\n }\n );\n }\n\n function build() {\n \n let globalStylesheet = new CSSStyleSheet();\n const globalStyle = document.querySelector(`head > style[app=\"${appName}\"]`);\n if (globalStyle) {\n globalStylesheet.replaceSync(globalStyle.textContent);\n }\n else {\n globalStylesheet.replaceSync(\"\");\n }\n // This is used when mutating the children of a DOM parent (on-the-fly),\n // the parent is \"frozen\" first - to not trigger events etc.\n // Used when handling changes to State Maps\n globalStylesheet.insertRule(SPROUT_FROZEN_CLASS_CSS);\n if (typeof globalThis[`${appName}_runtime`] === 'function') {\n const globalRuntimeFunction = globalThis[`${appName}_runtime`];\n globalRuntimeFunction.call(appScope);\n }\n\n /*\n if (appScope.SPROUT_CONFIG.useDSD) {\n Array.prototype.forEach.call(document.querySelectorAll(`script[app=\"${appName}\"]`), script => {\n defineCustomElementFromTemplate(script, script.getAttribute('for'), globalStylesheet);\n });\n }\n else {\n */\n Array.prototype.forEach.call(document.querySelectorAll(`template[app=\"${appName}\"]`), template => {\n const componentName = template.getAttribute('for');\n if (componentName) {\n defineCustomElementFromTemplate(template, componentName, globalStylesheet);\n }\n });\n\n //}\n }\n build();\n}\n","import StateManager from \"../Cougar/StateManager.js\";\nimport { extendElementClassWithReactiveElementClass } from \"./ReactiveElement.js\";\nimport { getReactiveCustomElementClass } from \"./ReactiveCustomElement.js\";\nimport { getConditionalElementClass } from \"./ConditionalElement.js\";\nimport { GLOBAL_STATE_VAR_NAME, \n GLOBAL_STATE_FUNCTION_NAME, \n GLOBAL_STATE_NOT_SET_YET,\n HTML_ELEMENT_CLASSES_MAP, \n SPROUT_FROZEN_CLASS_CSS } from \"../shared/consts.js\";\nimport SproutBuild from '../build/index.js';\nimport { setHiddenProperty } from \"../shared/prop_utils.js\";\nimport { handleStateChange } from \"../shared/state_utils.js\";\nimport { newStateManager } from \"../Cougar/state_utils.js\";\n\nconst script = document.currentScript;\nconst allowAppScopeAccess = true; //document.currentScript?.hasAttribute(\"allowappscopeaccess\");\n\nconst strict = script?.hasAttribute(\"strict\") || false;\nconst stateManagerClass = StateManager;\nconst config = {\n useShadow: true, // Always use shadow DOM for now, may add configurability later\n allowAppScopeAccess: allowAppScopeAccess,\n useDSD: false, // Use Delcartive Shadow DOM\n strict,\n appName: script?.getAttribute(\"app\") || \"sprout-app\",\n stateManagerClass\n}\n\nif (config.allowAppScopeAccess) {\n Object.defineProperty(globalThis, \"sproutApps\", {\n value: {},\n writable: false\n });\n}\n\nconst SproutStylesheet = new CSSStyleSheet();\nSproutStylesheet.replaceSync(SPROUT_FROZEN_CLASS_CSS);\ndocument.adoptedStyleSheets = [...document.adoptedStyleSheets, SproutStylesheet];\n\n \nlet appScope = (function() { return { window, document: window?.document }})(window);\n\nif (config.allowAppScopeAccess) {\n Object.defineProperty(globalThis.sproutApps, config.appName, {\n value: appScope,\n writable: false\n });\n}\n\nappScope.SPROUT_CONFIG = Object.seal(config);\n\n// Prevent \"hasOwnProperty\" shenanigans\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nsetHiddenProperty(Object.prototype, \"hasOwnProperty\", hasOwnProperty);\n\nappScope[GLOBAL_STATE_FUNCTION_NAME] = function() {\n return GLOBAL_STATE_NOT_SET_YET;\n}\n\n// If initialState is passed - also sets it to global state\nappScope.setGlobalState = function(initialState = {}) {\n // const globalState = //new appScope.SPROUT_CONFIG.stateManagerClass(initialState, undefined, undefined, handleStateChange, true, appScope).state;\n const globalState = newStateManager(initialState, undefined, undefined, handleStateChange, true, appScope).state;\n \n const globalStateVarName = GLOBAL_STATE_VAR_NAME;\n Object.defineProperty(appScope, globalStateVarName, {\n value: globalState,\n writable: false,\n configurable: false\n });\n Object.defineProperty(appScope, GLOBAL_STATE_FUNCTION_NAME, {\n value: function() {\n return appScope[globalStateVarName];\n },\n });\n return appScope[globalStateVarName];\n};\n\nappScope.setCommands = function(commands = {}) {\n Object.defineProperty(appScope, \"appCommands\", {\n value: commands,\n writable: false,\n configurable: false\n })\n}\n\nconst HTML_REACTIVE_ELEMENT_CLASSES = {};\nHTML_ELEMENT_CLASSES_MAP.forEach(elementDefinition=>\n HTML_REACTIVE_ELEMENT_CLASSES[elementDefinition.element] = extendElementClassWithReactiveElementClass(elementDefinition.class, appScope, true)\n);\n\nappScope.ReactiveCustomElement = getReactiveCustomElementClass(appScope);\n\nSproutBuild(appScope, config.appName);\n\n// Extend specific HTMLElement classes to enable reactivity (use it by adding an \"is\" attribute to an element)\nHTML_ELEMENT_CLASSES_MAP.forEach(itemDefinition => {\n customElements.define(\n `reactive-${itemDefinition.element}`, \n // extendElementClassWithReactiveElementClass(itemDefinition.class, appScope, true),\n HTML_REACTIVE_ELEMENT_CLASSES[itemDefinition.element],\n { extends: itemDefinition.element });\n }\n);\n\nconst ReactiveHeadingClass = extendElementClassWithReactiveElementClass(HTMLHeadingElement, appScope);\n[\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].forEach(hTag=> {\n customElements.define(`reactive-${hTag}`,\n class extends ReactiveHeadingClass {},\n { extends: hTag}\n );\n});\n\nconst ReactiveInputClass = extendElementClassWithReactiveElementClass(HTMLInputElement, appScope, true);\ncustomElements.define('reactive-input', ReactiveInputClass, { extends: \"input\" });\n\nconst ReactiveConditionalElementClass = extendElementClassWithReactiveElementClass(HTMLElement, appScope);\nconst ConditionalElementClass = getConditionalElementClass(ReactiveConditionalElementClass); \ncustomElements.define('conditional-render', ConditionalElementClass);\n\n"],"names":["ReadonlySet","_Set","iterable","_this","_classCallCheck","_callSuper","add","unavailableMethod","_inherits","_createClass","key","value","_delete","clear","methodName","Error","concat","_wrapNativeSuper","Set","OBSERVED_ATTRIBUTES","BOOLEAN_ATTRIBUTES","AUTO_ATTRIBUTES_TO_PROPS","SUPPORTED_ATTRIBUTES_FOR_BINDING","BUILT_IN_STATE_PROPS","GLOBAL_STATE_VAR_NAME","GLOBAL_STATE_FUNCTION_NAME","GLOBAL_STATE_NOT_SET_YET","ERROR_MESSAGES","Object","freeze","NO_DEPENDENCIES_ARRAY_IN_SET_HOOK","stateProp","HTML_ELEMENT_CLASSES_MAP","HTMLAnchorElement","element","HTMLAreaElement","HTMLAudioElement","HTMLBodyElement","HTMLBRElement","HTMLButtonElement","HTMLCanvasElement","HTMLDataElement","HTMLDataListElement","HTMLDetailsElement","HTMLDialogElement","HTMLDivElement","HTMLDListElement","HTMLEmbedElement","HTMLFieldSetElement","HTMLFormElement","HTMLHRElement","HTMLHtmlElement","HTMLIFrameElement","HTMLImageElement","HTMLLabelElement","HTMLLegendElement","HTMLLIElement","HTMLLinkElement","HTMLMapElement","HTMLMetaElement","HTMLMeterElement","HTMLObjectElement","HTMLOListElement","HTMLOptGroupElement","HTMLOptionElement","HTMLParagraphElement","HTMLPictureElement","HTMLPreElement","HTMLProgressElement","HTMLQuoteElement","HTMLSelectElement","HTMLSourceElement","HTMLSpanElement","HTMLTableElement","HTMLTableCellElement","HTMLTableRowElement","HTMLTableSectionElement","HTMLTextAreaElement","HTMLTimeElement","HTMLTitleElement","HTMLTrackElement","HTMLUListElement","HTMLVideoElement","HTMLSlotElement","DEBUG_MODE","DEFAULT_TEMPLATE_DOM","document","createElement","NODES_STATE","nodeActionsMap","Map","pendingPaintNodeManagers","eventBindingFunctions","conditionalRenders","stateChangeHandlers","paintRafId","CONDITIONAL_OPERATORS","CONDITIONAL_OPERATORS_REGEX","STATEFUL_ARRAY_REMOVE_FLAG_STRING","STATEFUL_ARRAY_REMOVED_FLAG_STRING","ARRAY_MUTATE_METHODS","ARRAY_MUTATE_NO_LENGTH_CHANGE_METHODS","ARRAY_DERIVE_METHODS","ARRAY_CACHE_METHODS","SYMBOL_NAMES","STATE_NOT_FOUND","BINDABLE_ATTRIBUTES_TO_STATE_NODES","SPROUT_FROZEN_CSS_CLASS_NAME","SPROUT_FROZEN_CLASS_CSS","DETACH_METHOD","HIDE_UNHIDE","CLONE","MAX_OPERATIONS_PER_ANIMATION_FRAME","MAX_DOM_ACTIONS_PER_FRAME","ATTRIBUTE_ACTIONS","TEXT_ACTIONS","ELEMENT_ACTIONS","PROPERTY_ACTIONS","REATTACH_ACTIONS","FRAME_BUDGET","SHADOW_ROOT_CSS","SproutCustomElementRegistry","CustomElementRegistry","attributeValueToTypedValue","attrValue","typedValue","isNaN","Number","bindPropAttribute","attributeName","attributeValue","host","STRICT","console","warn","propName","substring","attrNode","getAttributeNode","nodeValue","getAttribute","isPropAttribute","propAttributes","has","set","get","isBooleanAttribute","isFalsyStringValue","isStateAttribute","attrName","indexOf","getStatefulChild","child","hasOwn","firstElementChild","whenActive","func","isActive","addEventListener","once","HTMLElementMapParent","replaceChildWith","oldChild","newChild","_statefulOldChild$sta","_statefulOldChild$sta2","_newChild$stateKey","statefulOldChild","oldKey","state","stateKey","statefulNewChild","newKey","replacedChild","replaceChild","keyMap","swapChildWith","oldNext","nextSiblingElement","newNext","insertBefore","removeChild","_child$stateKey","statefulChild","HTMLElement","prototype","call","beforeChild","_newChild$stateKey2","append","_HTMLElement$prototyp","_len","arguments","length","elements","Array","_key","apply","_i","_elements","_element$stateKey","appendChild","_newChild$stateKey3","prepend","_newChild$stateKey4","detach","clonePattern","undefined","returnElement","cloned","cloneNode","$$originalElement","$$detached","setAttribute","classList","reattach","removeAttribute","remove","replaceWith","initialAppend","_HTMLElement$prototyp2","_len2","_key2","_loop","_elements2","_i2","pendingKeyMapActions","_statefulChild$state$","_statefulChild$state","_statefulChild$state$2","_statefulChild$state2","makeElementMapParent","parentElement","assign","style","willChange","mapStateArrayToElements","isElementAList","mapStateToElements","stateItemsPropertyName","customElementName","_parentElement$getSta","getState","_parentElement$getSta2","_slicedToArray","stateItemsArray","theState","isArray","hasOwnProperty","makeStateMap","wrapInElement","innerHTML","_toConsumableArray","COMMANDS","map","commandValue","_commandValue$split","split","_commandValue$split2","thiselement","onAfterPaint","stateArray","_stateManager","addStateMap","bind","tagName","_commandValue$split3","_commandValue$split4","statePropName","bindAttributeToState","bindprop","_commandValue$split5","_commandValue$split6","elementPropName","_this$getState","_this$getState2","stateValue","stateObject","stateManager","addStateHook","_","newValue","parseStateExpression","expression","charIndex","parsed","char","fromAttributeValue","toAttributeValue","COMMAND_ATTRIBUTES","setStateAttribute","setStateText","isReactiveCustomElement","isReactiveElement","isNativeElement","extendElementClassWithReactiveElementClass","elementClass","appScope","window","isInputElement","_wasMounted","WeakMap","_ReactiveElement_brand","WeakSet","_pendingAttributeChanges","ReactiveElement","_elementClass","_classPrivateMethodInitSpec","_defineProperty","_classPrivateFieldInitSpec","bindStateToProperty","elementProprtyName","boundStateToProperties","activate","_this2","commands","attributeNames","getAttributeNames","_iterator","_createForOfIteratorHelper","_step","s","n","done","initialSetAttribute","command","push","args","err","e","f","forEach","_ref","_COMMAND_ATTRIBUTES$c","_appScope$appCommands","_this2$host","_componentCommands$co","appCommands","componentCommands","_classPrivateFieldGet","attributeChangeHandler","getHost","_this$getRootNode","parentNode","getRootNode","connectedCallback","_this3","rootNode","roost","_classPrivateFieldSet","disconnectedCallback","_this$host","ref","refName","connectedMoveCallback","attributeChangedCallback","oldValue","_this4","isConnected","_assertClassBrand","_handleAttributeChange","returnStateObject","elementInstance","stateVal","stateFound","globalState","findElement","root","SPROUT_CONFIG","useShadow","shadowRoot","querySelector","initialSetText","String","isPropAttr","isStateAttr","valueToSet","propValue","textContent","callback","requestAnimationFrame","refValue","_changeEventHandler","ReactiveInputElement","_ReactiveElement2","_this5","boundAttributesToState","updateStateFromAttribute","Symbol","_get","_getPrototypeOf","changeEvent","Event","bubbles","composed","type","checkedStateAttributeNodesMap","nodeManager","bindableAttributesStateNodes","checkedAttributeNode","checked","createAttribute","setAttributeNode","removeAttributeNode","dispatchEvent","removeEventListener","newPropValue","observedAttributes","isElementAListItem","getCustomElementFromMappedElement","createSproutElement","elementName","customElementRegistry","rafIds","queueAnimationFrame","functionsToRun","afterRunFn","rafId","cancelAnimationFrame","fn","runNextBatch","functionsBatch","functions","slice","functionsIndex","stateActivates","queueBindEvents","bindFunction","from","values","queueConditionalRender","renderFunction","queuePaint","doUpdateDOM","logNodeActions","entries","_ref2","node","actions","nodeType","Node","ELEMENT_NODE","log","appendElements","setProperty","replaceElements","ATTRIBUTE_NODE","nodeName","originalOwnerElement","TEXT_NODE","runDOMActions","action","pendingNodeManagers","start","performance","now","frameElapsed","_nodeManager$resolveT","resolveToDOMActions","_nodeManager$resolveT2","attributeActions","textActions","propertySetActions","elementActions","reattachActions","paintStatus","waitForIdle","Promise","resolve","check","size","SproutWaitIdle","stateToElement","getStateMapArrayIterator","getNodeActionsForNode","getNewNodeActionsObject","nodeActions","setStateNodeValueAction","addNodeAction","actionType","actionValue","addAppendAction","nodeToAppend","setReattachAction","hasPendingActions","reconcileStateMapElement","stateMapArray","_detachedParentElemen7","lastOperation","detachedParentElement","mappedElementChange","isParentList","replacedChildren","asState","it","expectedItems","keyOfChild","el","_el$firstElementChild","st","labelOfChild","_el$firstElementChild2","label","children","isNewArray","_detachedParentElemen","_stateMapArray$lastOp","operation","prependLength","i","_detachedParentElemen2","stateItem","existing","first","lastElementChild","startIndex","len","_args$","currentLen","rawStart","rawDelete","Math","max","min","deleteCount","Infinity","itemsToInsert","expectedLen","isFullReplace","k","_children$_startIndex","item","refNode","_detachedParentElemen3","parentKeyMap","container","_currentChild$firstEl","_replacedChildren$get","expected","expectedKey","currentChild","currentState","currentKey","elementToPut","_elementToPut$firstEl","elemState","refreshed","_detachedParentElemen4","_detachedParentElemen5","numChildren","index","_detachedParentElemen6","state_Item","generateStateNodeActions","mark","stateNodes","stateMapElements","stateArrayMaps","conditionallyRenderingElements","render","resolveNodeActionsMapToDOMActions","typeOfValue","_typeof","hasAttribute","name","_iterator2","_step2","newChildElement","_iterator3","_step3","_loop2","_step3$value","_node$pendingKeyMapAc","_iterator4","_step4","keyMapAction","setHiddenProperty","obj","enumerable","defineProperty","configurable","writable","callSetterHook","globalThis","elementSetAttribute","statePropExpression","_parseStateExpression","_parseStateExpression2","bindStatePropExpression","stateAttrNode","addStateNode","removeStateNode","_parseStateExpression3","_parseStateExpression4","_this$getState3","_this$getState4","textNode","createTextNode","elemName","ownerMapElement","customElementInstance","setInitialState","stateItems","mappedElements","handleStateChange","changedValue","_descrp$get","_stateManager$stateHo","_stateManager$stateHo2","isBuiltInStateProp","descrp","getOwnPropertyDescriptor","isGetter","isStateGetter","dispatchStateChangEvent","startsWith","stateHooks","hookFn","handleStateDependency","depStateProp","isSetter","isSetterHook","setterHook","setterStateProp","hasNewValue","offscreenContainer","realProp","property","stateChangeEvent","CustomEvent","detail","StatefulArrayHandler","newStateManager","StatefulArray","_Array","initialArray","parentStateObject","arrayStateProp","isStateMap","StateManager","stateManagerClass","rawArray","statefulArray","Proxy","_possibleConstructorReturn","iterator","runArrayOperation","operationName","method","res","_args","itemsToAdd","doArrayOperation","setDirtyProp","$$operation","prevLen","result","callbackFn","arrayMaps","cachedArrayMapMetadata","lastDirtyTimestamp","timestamp","_this$runArrayOperati","_this$runArrayOperati2","lastResult","Date","getTime","_this$runArrayOperati3","_this$runArrayOperati4","_this$runArrayOperati5","_this$runArrayOperati6","postLen","isOrderOnly","mapStateKeys","_isStateMap","species","default","statifyValue","getDeps","statifyArrayDeriveFrom","depsProxyHandler","target","receiver","Reflect","$$accessCount","StateFunctionDependencyHandler","thisFunction","thisStateObject","argumentsList","clearStateDependencies","originalGlobalState","_global","_getDeps","_getDeps2","deps","globalDeps","depProp","addStateDependency","addGlobalStateDependency","parentStateManager","triggerStateChange","triggerLength","triggerArray","setResult","keyOf","_item$state","stateOf","targetArray","hasDirtyItems","prev","prevKey","doStateChangeHandle","arrStateProp","nativeFunctionName","pso","arrayProp","isInitializing","_targetArray$doArrayO","_targetArray$doArrayO2","deleteProperty","deleteOkay","StateObjectValueHandler","rootStateObj","objPropertyName","targetObj","_stateManager$parentS","descriptor","getResult","conditionalElements","addConditionallyRenderingElements","stateMaps","clearStateMapsLastOperation","_Object$keys","keys","stateMapProp","initialState","parentStateProp","handleStateFunction","isGlobal","use","statifyArray","array","_construct","fromArray","indexMap","StatefulArrayDerived","addDerivedArray","initSetterHook","setterArray","_setterOptions$deps","setterHookName","_setterArray","setterFunc","setterOptions","init","reevaluate","_globalDeps","dep","stateDependencyHandler","globalDep","privateState","statify","stateMap","originalValue","_setterArray2","resolveAccessCountToDepsSet","depsCount","lengthIndex","prop","filter","ofFunction","fromStateObject","hasGlobal","depsProxy","getStateHookData","nativeGetter","hookOptions","populateStateFromInitialState","descriptors","getOwnPropertyDescriptors","hookFunc","stateHook","getFunc","_getDeps3","_getDeps4","currentVal","defineStateExpressionResolver","stateObj","getter","contextStateProp","sortDeps","depsSet","setterDeps","_nodeActions","NodeManager","stateNode","bindaleAttributeStateNodes","_this$stateNodes","_element$host","originalParentElement","_step2$value","populateInitialState","makeReactive","queueStateChange","stateChangeHandler","_plugins","EventTarget","$$isInitializing","populate","populateObject","globalStateDependencies","localStateManager","queueHandleState","checkProp","dirtyProps","handleStateChanges","handleStatePropDependencies","depStateProps","dependenciesMap","stateDependencies","globalDependenciesMap","changedStateProp","dependenciesSet","_sortDeps","_sortDeps2","_sortDeps3","_sortDeps4","isGlobalState","topologicalSortStateProps","stateProps","toSorted","a","b","_this3$stateDependenc","_this3$stateDependenc2","isLocal","thisStateManager","thisState","_thisStateManager$sta","_globalState","globalStateManager","isValueProp","relevantState","equalityValue","truthyValue","falsyValue","getStateDependencies","factoryFunction","pluginName","isUsing","hookFunction","_this$stateHooks$get","allPropsHooks","_this5$stateHooks$get","propHooks","SHADOW_CSS","CSSStyleSheet","replaceSync","getReactiveCustomElementClass","ReactiveHTMLElement","_lifecycle","_templateContent","_stylesheet","_globalStylesheet","_eventHandler","_usesDSD","_settings","_ReactiveCustomElement_brand","ReactiveCustomElement","_ReactiveHTMLElement","template","runtime","globalStylesheet","usesDSD","mount","stateful","active","unmount","isFrameworkElement","canonicalTagName","localName","stylesheet","importNode","_renderTemplate","_setRuntime","initState","_unbindEvents","_bindEvents","_root","_root$querySelector","doActivate","_setActiveStateFromInitialState","setTimeout","propAttributeNodes","ownerElement","settings","events","setRefEvent","eventName","eventHandler","eventsMap","eventMapItem","eventsObjectValue","lifecycleEvent","_this$state","_isActive","$host","attachShadow","mode","delegatesFocus","adoptedStyleSheets","fragment","DocumentFragment","event","eventsMapItem","eventsPath","composedPath","targetElement","targetRefName","stopPropagation","capture","resolveCondition","operator","conditionStateValue","getConditionalElementClass","ReactiveElementClass","_isConditionStateProp","_conditionProp","_renderMap","ConditionalElement","_ReactiveElementClass","isFirstRender","conditionValue","elementsToRender","condition","generateRenderMap","renderMap","conditionalChild","_if","replaceAll","_cond$trim$split","cond","trim","_cond$trim$split2","normalizedValue","conditionObj","_regeneratorRuntime","t","r","o","c","asyncIterator","u","toStringTag","define","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","h","l","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","then","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","displayName","isGeneratorFunction","constructor","setPrototypeOf","__proto__","awrap","async","reverse","pop","charAt","stop","rval","handle","complete","finish","_catch","delegateYield","_defineProperties","_toPropertyKey","_toPrimitive","toPrimitive","_isNativeReflectConstruct","construct","_assertThisInitialized","ReferenceError","Boolean","valueOf","_setPrototypeOf","asyncGeneratorStep","_asyncToGenerator","_next","_throw","toCamelCase","str","toLowerCase","word","toUpperCase","join","appName","sprouteCustomElements","scopedCustomElementRegistry","defineCustomElementFromTemplate","_x","_x2","_x3","_defineCustomElementFromTemplate","_callee","templateContent","runtimeScript","runtimeCode","_callee$","_context","content","Function","customElements","_appScope$ReactiveCus","_class","_style","_appScope$ReactiveCus2","_class2","build","globalStyle","insertRule","globalRuntimeFunction","querySelectorAll","componentName","SproutBuild","script","currentScript","allowAppScopeAccess","strict","config","useDSD","SproutStylesheet","_window","sproutApps","seal","setGlobalState","globalStateVarName","setCommands","HTML_REACTIVE_ELEMENT_CLASSES","elementDefinition","itemDefinition","ReactiveHeadingClass","HTMLHeadingElement","hTag","_ReactiveHeadingClass","ReactiveInputClass","HTMLInputElement","ReactiveConditionalElementClass","ConditionalElementClass"],"sourceRoot":""}
|