sproutjs-core 2.0.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"sprout-core.js","mappings":"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","sources":["webpack://jssprout/./src/build/index.js","webpack://jssprout/./src/core/ConditionalElement.js","webpack://jssprout/./src/core/DOM_utils.js","webpack://jssprout/./src/core/ReactiveElement.js","webpack://jssprout/./src/core/StateManager.js","webpack://jssprout/./src/core/StatefulArray.js","webpack://jssprout/./src/core/attr_utils.js","webpack://jssprout/./src/core/commands.js","webpack://jssprout/./src/core/consts.js","webpack://jssprout/./src/core/debug_utils.js","webpack://jssprout/./src/core/node_actions.js","webpack://jssprout/./src/core/paint_utils.js","webpack://jssprout/./src/core/prop_utils.js","webpack://jssprout/./src/core/proxy_handlers.js","webpack://jssprout/./src/core/state_utils.js","webpack://jssprout/webpack/bootstrap","webpack://jssprout/webpack/runtime/define property getters","webpack://jssprout/webpack/runtime/hasOwnProperty shorthand","webpack://jssprout/webpack/runtime/make namespace object","webpack://jssprout/./src/core/index.js"],"sourcesContent":["\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 // Create custom elements from templates\n async function defineElementFromTemplate(template, elemName, globalStylesheet) {\n const templateContent = document.importNode(template.content, true);\n const style = templateContent.querySelector('style');\n if (style) templateContent.removeChild(style);\n const runtime = templateContent.querySelector('script');\n if (runtime) templateContent.removeChild(runtime);\n\n customElements.define(\n elemName, \n class extends appScope.ReactiveElement {\n constructor() {\n super(templateContent, runtime, style?.textContent, globalStylesheet);\n }\n }\n );\n }\n\n function build() {\n let globalStylesheet;\n const globalStyle = document.querySelector(`head > style[app=\"${appName}\"]`);\n if (globalStyle) {\n globalStylesheet = new CSSStyleSheet();\n globalStylesheet.replaceSync(globalStyle.textContent);\n }\n Array.prototype.forEach.call(document.querySelectorAll(`template[app=\"${appName}\"]`), template => {\n defineElementFromTemplate(template, template.getAttribute('for'), globalStylesheet);\n });\n if (typeof globalThis[`${appName}_runtime`] === 'function') {\n const globalRuntimeFunction = globalThis[`${appName}_runtime`];\n globalRuntimeFunction.call(appScope);\n }\n }\n build();\n}","import { attributeValueToTypedValue } from \"./attr_utils\";\nimport { CONDITIONAL_OPERATORS } from \"./consts\";\nimport { queueConditionalRender } from \"./paint_utils\";\n\n// returns a Boolean according to the conditional equality of conditional to conditionStateValue\nexport function resolveConditional(conditional, conditionStateValue) {\n const typeOf = typeof conditional;\n if (typeOf !== 'string') {\n return conditionStateValue === conditional;\n }\n else {\n if (conditional === \"always\") return true;\n if (CONDITIONAL_OPERATORS.includes(conditional[0])) {\n const conditionFn = new Function(`return ${conditionStateValue}${conditional}`);\n return conditionFn();\n }\n else {\n return conditionStateValue === conditional;\n }\n }\n}\n\nexport function getConditionalElementClass(ReactiveElementClass) {\n class ConditionalElement extends ReactiveElementClass {\n\n #conditionStateProp\n #renderMap\n #wasMounted = false\n\n render(isFirstRender=false) {\n let stateValue;\n if (this.#conditionStateProp.indexOf('@') === 0) {\n stateValue = this.host.getAttribute(this.#conditionStateProp.substring(1));\n }\n else {\n stateValue = this.getState(this.#conditionStateProp);\n }\n\n if (stateValue === undefined) {\n throw Error(`State value for ${this.#conditionStateProp} not found while rendering conditional-render element:`, this);\n }\n const elementsToRender = [];\n\n this.#renderMap.forEach((elements, conditional)=> {\n if (resolveConditional(conditional, stateValue)) {\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 connectedCallback() {\n this.host = this.getRootNode().host;\n if (!this.host) {\n throw Error(\"<conditional-render> must be used as part of a custom element template! Cannot be used outside of a custom element.\");\n }\n if (this.#wasMounted) return;\n const conditionAttributeValue = this.getAttribute(\"_condition\");\n if (!conditionAttributeValue) {\n throw Error(\"conditional-render elements must have a _condition command attribute\");\n }\n if (!this.children || !this.children.length) {\n throw Error(\"Conditional element must have children!\");\n }\n\n const statePropName = conditionAttributeValue;\n this.#conditionStateProp = statePropName;\n\n const isConditionStatic = this.#conditionStateProp.indexOf('@') === 0;\n let stateValue, stateObject;\n if (!isConditionStatic) {\n [stateValue, stateObject] = this.getState(statePropName, true);\n if (typeof stateValue === \"undefined\") {\n throw Error(`State property ${statePropName} not defined for _condition command!`);\n }\n }\n const renderMap = new Map();\n renderMap.set(\"always\", []);\n const children = [...this.children];\n\n children.forEach(conditionalChild=> {\n const _if = conditionalChild.getAttribute('_if');\n if (_if) {\n const expectedValue = attributeValueToTypedValue(_if);\n if (!renderMap.has(expectedValue)) renderMap.set(expectedValue, []);\n renderMap.get(expectedValue).push(conditionalChild);\n }\n else {\n renderMap.get(\"always\").push(conditionalChild);\n }\n });\n this.#renderMap = renderMap;\n\n if (!isConditionStatic) {\n stateObject._stateManager.addConditionallyRenderingElements(statePropName, this);\n }\n this.render(true);\n this.#wasMounted = true;\n }\n }\n\n return ConditionalElement;\n}\n\n","export function isElementAList(element) {\n return element.tagName === \"OL\" || element.tagName === \"UL\";\n}\n\n","import { COMMANDS as COMMAND_ATTRIBUTES } from \"./commands.js\";\nimport { BOOLEAN_ATTRIBUTES, SUPPORTED_ATTRIBUTES_FOR_BINDING, GLOBAL_STATE_FUNCTION_NAME, DEFAULT_TEMPLATE_DOM } from \"./consts.js\";\nimport { setAttribute, setStateAttribute, setStateText } from \"./state_utils.js\";\nimport StateManager from \"./StateManager.js\";\nimport { putObjectInDebugMode } from \"./debug_utils.js\";\nimport { DEBUG_MODE } from \"./consts.js\";\nimport { queueBindEvents } from \"./paint_utils.js\";\nimport { attributeValueToTypedValue } from \"./attr_utils.js\";\n\nexport function extendElementClassWithReactiveElementClass(elementClass, appScope = window, noRender = false) {\n class ReactiveElement extends elementClass {\n // Should contain the \"root\" DOM element containing this element\n host = null\n // Callback function for when the element is connected to a DOM tree on the page\n #onMount\n _onRender\n #wasMounted = false\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 = {}\n\n // Should only be used on non native custom elements\n #templateContent\n #stylesheet\n #globalStylesheet\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 // Name of events that are bound to the main event handler function\n #boundEventNames = [];\n\n // Main event handler function \n #eventHandler\n // Special case to handle input change events (to make them bubble up from shadow DOM)\n #changeEventHandler\n static observedAttributes = [\"ref\"]\n .concat(SUPPORTED_ATTRIBUTES_FOR_BINDING)\n .concat(Object.keys(COMMAND_ATTRIBUTES).map(command => ('_' + command.toLowerCase())));\n\n\n constructor(template=null, runtimeScript, style, globalStylesheet) {\n super();\n this.isReactiveElement = true;\n this.isSpecialElement = this.tagName === \"CONDITIONAL-ELEMENT\";\n this.isNativeElement = this.hasAttribute(\"is\") && !this.isSpecialElement;\n if (!this.isNativeElement) {\n if (runtimeScript) {\n const dynamicRuntimeFn = new Function(runtimeScript.textContent);\n const runtime = dynamicRuntimeFn();\n this.#setRuntime(runtime);\n }\n // Should already be a DocumentFragment of the template\n if (template) { \n this.#templateContent = template.cloneNode(true);\n }\n else {\n this.#templateContent = DEFAULT_TEMPLATE_DOM.cloneNode();\n }\n\n if (style) {\n const stylesheet = new CSSStyleSheet();\n stylesheet.replaceSync(style);\n this.#stylesheet = stylesheet;\n }\n if (globalStylesheet) {\n this.#globalStylesheet = globalStylesheet;\n }\n // Maps \"ref names\" to actual elements in the component DOM tree,\n // for fast access.\n this.ref = {};\n }\n\n }\n\n #setRuntime(runtime) {\n if (runtime.events) {\n this.#events = runtime.events;\n if (this.isConnected) {\n queueBindEvents(this, ()=> this.#bindEvents());\n }\n }\n if (runtime.state) {\n this.setInitialState(runtime.state);\n // If this is not mounted yet, #setStateFromInitialState will be called from onConnected callback\n if (this.isConnected) this.#setActiveStateFromInitialState();\n }\n\n if (runtime.onMount) {\n this.#onMount = runtime.onMount;\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 }\n\n #setActiveStateFromInitialState() {\n if (!this.initialState) return;\n const initialState = this.initialState;\n if (initialState._stateManager) {\n this.state = initialState._stateManager.state;\n }\n else {\n this.state = new StateManager(initialState, undefined, undefined, false, appScope).state;\n }\n delete this.initialState;\n }\n\n #renderTemplate() {\n if (appScope.SPROUT_CONFIG.useShadow) {\n const shadowRoot = this.attachShadow({ mode: \"open\" });\n this.shadowRoot.adoptedStyleSheets = [];\n if (this.#globalStylesheet) this.shadowRoot.adoptedStyleSheets.push(this.#globalStylesheet);\n if (this.#stylesheet) this.shadowRoot.adoptedStyleSheets.push(this.#stylesheet);\n 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.#changeEventHandler) this.removeEventListener('change', this.#changeEventHandler);\n if (!this.#boundEventNames.length) return;\n const thiselement = this;\n this.#boundEventNames.forEach(eventName=> {\n thiselement.removeEventListener(eventName, this.#eventHandler, false);\n });\n\n }\n #bindEvents() {\n if (!this.#events) return;\n const eventRefNames = Object.keys(this.#events);\n const clickActions = {};\n const otherActions = {};\n eventRefNames.forEach(refName=> {\n const value = this.#events[refName];\n if (typeof value === 'function') {\n clickActions[refName] = value;\n }\n else if (typeof value === 'object') {\n const eventNames = Object.keys(value);\n eventNames.forEach(eventName=> {\n if (eventName === 'click') {\n clickActions[refName] = value[eventName];\n }\n else {\n if (!otherActions[eventName]) otherActions[eventName] = {};\n otherActions[eventName][refName] = value[eventName];\n }\n });\n }\n });\n const globalState = appScope[GLOBAL_STATE_FUNCTION_NAME]();\n this.#eventHandler = function(event, eventsObject) {\n const elementsPath = event.composedPath();\n let target;\n if (elementsPath) {\n target = elementsPath.find(element => element.hasAttribute && element.hasAttribute('ref') && (element.getAttribute('ref') in eventsObject));\n }\n else {\n target = (event.target.hasAttribute && event.target.hasAttribute('ref') && (event.target.getAttribute('ref') in eventsObject)) ? event.target : null;\n }\n if (target) {\n const ref = target.getAttribute('ref');\n eventsObject[ref]?.call(target, event, event.target, globalState);\n }\n }\n\n const thiselement = this;\n if (Object.keys(clickActions).length) {\n thiselement.addEventListener('click', (event)=> {\n this.#eventHandler(event, clickActions);\n }, false);\n this.#boundEventNames.push('click');\n }\n const eventNames = Object.keys(otherActions);\n for (const eventName of eventNames) {\n thiselement.addEventListener(eventName, (event)=> {\n this.#eventHandler(event, otherActions[eventName]);\n }, false);\n }\n this.#boundEventNames.push(...eventNames);\n }\n\n bindAttributeToState(attrName, statePropName) {\n this.#boundAttributesToState[attrName] = statePropName;\n }\n unbindAttributeToState(attrName) {\n delete this.#boundAttributesToState[attrName];\n }\n \n // For input elements\n updateStateFromProperty(propertyName) {\n let newValue = this[propertyName];\n const stateProp = this.#boundAttributesToState[propertyName];\n const [stateValue, theState] = this.getState(stateProp, true);\n if (stateValue !== newValue) theState[stateProp] = newValue;\n\n }\n\n #updateStateFromAttribute(attributeName) {\n let newValue = this.getAttribute(attributeName);\n if (BOOLEAN_ATTRIBUTES.includes(attributeName)) {\n if (newValue === null) newValue = false;\n else newValue = true;\n }\n const stateProp = this.#boundAttributesToState[attributeName];\n const [stateValue, theState] = this.getState(stateProp, true);\n if (stateValue !== newValue) theState[stateProp] = newValue;\n }\n\n resolveTextContentTemplateStringTag(strings, ...attributeNames) {\n return strings.reduce((result, str, i) => {\n const attrName = attributeNames[i] ? attributeNames[i].replaceAll(/\\s/g,'') : false;\n return result + str + (attrName ? this.host?.getAttribute(attrName) : \"\");\n }, \"\");\n }\n // A template string \"tag\" function to use when referencing attribute values in element texts\n #resolveTextContentTemplateString() {\n const resolveTextContentFn = new Function(\n \"return this.resolveTextContentTemplateStringTag`\" + this.textContent + \"`;\"\n ).bind(this);\n return resolveTextContentFn();\n }\n disconnectedCallback() {\n const host = this.host ?? this;\n if (host.ref) {\n const thisRefName = this.getAttribute('ref');\n if (thisRefName) delete host.ref[thisRefName];\n }\n this.#boundAttributesToState = {};\n this.#unbindEvents();\n }\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 this.host = this.getRootNode().host;\n\n if (!this.isNativeElement) {\n // If this is a custom element - normal attributes are used as State Initializers,\n // We should add to initial state from them, before making it \"live\"\n const attributeNames = this.getAttributeNames();\n let attrValue;\n for (const attrName of attributeNames) {\n attrValue = this.getAttribute(attrName);\n if (attrValue.indexOf('@') === 0) {\n this.initialState ??= {};\n this.initialState[attrName] = attributeValueToTypedValue(attrValue.substring(1));\n }\n }\n this.#setActiveStateFromInitialState();\n }\n\n // Keep it here and not in bindEvents! \n if (this?.tagName === \"INPUT\") {\n this.#changeEventHandler = function() {\n const changeEvent = new Event('inputChange', { bubbles: true, composed: true });\n this.dispatchEvent(changeEvent);\n }\n // Change events does not automatically bubbles, we need to listen and bubble up a new event\n this.addEventListener('change', this.#changeEventHandler, false);\n }\n\n if (!this.isNativeElement && !noRender) {\n // We mostly queue as microtask to allow custom slot elements to\n // be attached to the light DOM first.\n this.#renderTemplate();\n }\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 // COMMAND_ATTRIBUTES[command]?.call(this, attrValue);\n }\n } \n\n commands.forEach(({ command, args})=> {\n COMMAND_ATTRIBUTES[command]?.call(this, args);\n });\n\n if (!this.isNativeElement) {\n queueBindEvents(this, ()=> this.#bindEvents());\n if (this.#onMount) queueMicrotask(()=> this.#onMount.call(this, appScope[GLOBAL_STATE_FUNCTION_NAME]()));\n if (this._onRender) this._onRender.call(this);\n }\n else {\n if (this.textContent.indexOf('${') !== -1) {\n this.textContent = this.#resolveTextContentTemplateString();\n }\n }\n this.#wasMounted = true;\n }\n\n attributeChangedCallback(attributeName, oldValue, newValue) { \n if (oldValue === newValue) return;\n if (!this.isConnected) return;\n\n if (attributeName === \"ref\") {\n const host = this.isNativeElement ? this.host : this;\n const refValue = newValue;\n host.ref[refValue] = this;\n }\n\n if (attributeName in this.#boundAttributesToState) {\n this.#updateStateFromAttribute(attributeName);\n }\n \n }\n\n // Gets state value of stateProp,\n // tries to resolve from local state(s) first,\n // and then from global. If the second argument is true, returns both the state value and the state objec\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 thisInstance = this.isNativeElement && this.host ? this.host : this;\n // if (!thisInstance) return returnStateObject ? [undefined, undefined] : undefined;\n let stateVal;\n if (thisInstance && thisInstance.state) {\n stateVal = thisInstance.state?.[stateProp];\n }\n\n let globalState = false;\n while (stateVal === undefined && typeof thisInstance.host !== 'undefined' && thisInstance.host !== null) {\n thisInstance = thisInstance.host;\n stateVal = thisInstance.state?.[stateProp];\n }\n\n if (stateVal !== undefined) theState = thisInstance.state;\n else {\n globalState = appScope[GLOBAL_STATE_FUNCTION_NAME]();\n stateVal = globalState?.[stateProp];\n if (stateVal !== undefined) theState = globalState;\n } \n if (returnStateObject) {\n return [stateVal, theState];\n }\n return stateVal;\n }\n \n findElement(refName) {\n const host = this.isNativeElement ? 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 host.ref.hasOwnProperty(refName) ? host.ref[refName] : root.querySelector(`[ref=\"${refName}\"]`);\n }\n //static get observedAttributes() { return [\"todo-name\"]; }\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 ReactiveElement.prototype.initialSetText = function (stateProp) {\n setStateText.call(this, stateProp);\n }\n ReactiveElement.prototype.initialSetAttribute = function (attributeName, attributeValue) {\n attributeValue = String(attributeValue);\n let valueToSet = attributeValue;\n\n // \"Property Attribute\"\n if (attributeValue.indexOf('@') === 0 && this.host && this.isConnected) {\n valueToSet = this.host.getAttribute(attributeValue.substring(1));\n } \n \n // \"State attribute\"\n if (attributeValue.indexOf('$') === 0 && this.isConnected) {\n let stateProp = attributeValue.substring(1);\n setStateAttribute.call(this, attributeName, stateProp);\n }\n // normal attribute\n else {\n setAttribute.call(this, attributeName, valueToSet);\n }\n }\n\n /*\n if (DEBUG_MODE) {\n const descriptors = Object.getOwnPropertyDescriptors(ReactiveElement.prototype);\n for (const key in descriptors) {\n const descrp = descriptors[key];\n Object.defineProperty(ReactiveElement.prototype, key, {\n writable: descrp.writable,\n configurable: descrp.configurable,\n enumerable: descrp.enumerable,\n value: ()=> {\n `Calling ${key} on ReactiveElement for ${elementClass.toString()}`;\n descrp.value();\n }\n });\n }\n }\n */\n\n return ReactiveElement;\n}\n","import { handleStateChange, populateStateFromInitialState } from \"./state_utils.js\";\nimport { StateHandler } from \"./proxy_handlers.js\";\nimport { GLOBAL_STATE_FUNCTION_NAME } from \"./consts.js\";\nimport { putObjectInDebugMode } from \"./debug_utils.js\";\nimport { DEBUG_MODE } from \"./consts.js\";\nimport { setHiddenProperty } from \"./prop_utils.js\";\n\n// This class actually handles \"State\". It returns a proxied \"state\" object,\n// while handling all state changes and triggers behind the scenes\nclass StateManager {\n\n // The privateState is used to actually contain values to read from,\n // as custom getters and setters are defined\n privateState = {}\n // This represents the \"publicly\" exposed state object\n state = {};\n\n // Saves \"map\" connections between a state array value and a custom element name,\n // this will enable creating/removing new custom elements when items of a state array change\n stateArrayMaps = {};\n // conditionallyRenderingElements = {};\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 = {};\n conditionallyRenderingElements = {};\n\n // Maps state props to state nodes,\n // Keys are state props, and values are sets of Nodes\n stateNodes = {}\n\n // These are used when the state object is part of Stateful Array\n parentStateProp\n parentStateManager\n // parentStatePropName is used if the state object is e.g. an item of an array on a state object,\n // or a value in an object on a state object - any change on the child state object should trigger state\n // changes on the parentStateProp\n // host is the host element that the state is attached to\n constructor(initialState, parentStateProp, parentStateManager, isGlobal = false, appScope=window) {\n this.parentStateProp = parentStateProp;\n this.parentStateManager = parentStateManager;\n\n // Saves the actual state manager instance to a readonly _stateManager\n setHiddenProperty(this.state, \"_stateManager\", this, true);\n \n // Initialize a proxy on the \"public state\"\n this.state = new Proxy(this.state, StateHandler(this.state, appScope));\n if (!isGlobal) setHiddenProperty(this.state, \"_global\", appScope[GLOBAL_STATE_FUNCTION_NAME](), true);\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 = {};\n this.addGlobalStateDependency = (stateProp, depStateProp, stateManager)=> {\n if (!this.globalStateDependencies.hasOwnProperty(stateProp)) {\n this.globalStateDependencies[stateProp] = new Map();\n }\n if (!this.globalStateDependencies[stateProp].has(stateManager)) {\n this.globalStateDependencies[stateProp].set(stateManager, new Set());\n }\n this.globalStateDependencies[stateProp].get(stateManager).add(depStateProp);\n }\n }\n if (initialState) {\n populateStateFromInitialState(this.state, initialState);\n }\n }\n\n addStateDependency(stateProp, depStateProp) {\n if (!this.stateDependencies.hasOwnProperty(stateProp)) {\n this.stateDependencies[stateProp] = new Set();\n }\n this.stateDependencies[stateProp].add(depStateProp);\n }\n\n addStateMap(stateProp, customElementName, parentElement) {\n if (!this.stateArrayMaps.hasOwnProperty(stateProp)) {\n this.stateArrayMaps[stateProp] = [];\n }\n\n this.stateArrayMaps[stateProp].push({\n customElementName,\n parentElement\n });\n }\n\n\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 \n // Node here is either an Attribute Node or a Text Node\n addStateNode(stateProp, stateNode, isBooleanStateProp=false) {\n if (!this.stateNodes.hasOwnProperty(stateProp)) {\n this.stateNodes[stateProp] = new Set();\n this.setAndBindStateProperty(stateProp, isBooleanStateProp);\n }\n this.stateNodes[stateProp].add(stateNode);\n }\n \n\n setAndBindStateProperty(stateProp, isBooleanStateProp=false) {\n let stateObj = this.state;\n if (stateProp.indexOf('!') === 0) {\n const originalStateProp = stateProp.substring(1);\n let descriptor = Object.getOwnPropertyDescriptor(stateObj, originalStateProp);\n if (!descriptor) {\n stateObj = stateObj._global;\n descriptor = Object.getOwnPropertyDescriptor(stateObj, originalStateProp);\n if (!descriptor) {\n throw Error(`Could not bind state prop ${stateProp}. State prop ${originalStateProp} not defined!`);\n }\n }\n // Negate prop: (!something) - add a dependency between the negate prop to the original prop,\n // So anytime the original prop change, things that are dependant on the negate prop will react\n // return stateObj._stateManager.addStateDependency(originalStateProp, stateProp);\n return;\n }\n\n let descriptor = Object.getOwnPropertyDescriptor(stateObj, stateProp);\n if (!descriptor) {\n stateObj = stateObj._global;\n descriptor = Object.getOwnPropertyDescriptor(stateObj, stateProp);\n if (!descriptor) {\n throw Error(`Could not bind state prop ${stateProp}. State prop not defined!`);\n }\n }\n // Some state props can be getters (which usually references other state values)\n // These should be treated differently: should not be saved in privateState, and should not have a setter defined\n const isValueProp = descriptor.hasOwnProperty('value');\n const stateManager = stateObj._stateManager;\n\n if (isValueProp) {\n if (!stateManager.privateState.hasOwnProperty(stateProp)) {\n stateManager.privateState[stateProp] = stateObj[stateProp];\n }\n stateObj._binding = true;\n Object.defineProperty(stateObj, stateProp, {\n set(value) {\n const currentVal = stateManager.privateState[stateProp];\n if (value === currentVal) return;\n // Sets value to \"private state\"\n stateManager.privateState[stateProp] = value;\n\n handleStateChange(stateManager, stateProp);\n // If this is an item in a Stateful Array, also trigger a state change for the state prop that contains the array\n if (stateManager.parentStateManager) {\n handleStateChange(stateManager.parentStateManager, stateManager.parentStateProp);\n }\n },\n get() {\n // Value is always retrieved from the \"private\" state\n return stateManager.privateState[stateProp];\n }\n });\n }\n\n // Boolean state props will also have \"negate props\" available (![stateProp])\n if (isBooleanStateProp && stateProp.indexOf('!') !== 0) {\n const negateStateProp = `!${stateProp}`;\n if (isValueProp) {\n if (!stateManager.privateState.hasOwnProperty(negateStateProp)) {\n Object.defineProperty(stateObj, negateStateProp, {\n get() {\n return !stateManager.privateState[stateProp];\n },\n set() {\n throw Error(\"Cannot directly set a negation State property!\");\n },\n enumerable: true,\n });\n stateManager.addStateDependency(stateProp, negateStateProp);\n }\n }\n else {\n if (!stateManager.state.hasOwnProperty(negateStateProp)) {\n Object.defineProperty(stateObj, negateStateProp, {\n get() {\n return !stateManager.state[stateProp];\n },\n set() {\n throw Error(\"Cannot directly set a negation State property!\");\n },\n enumerable: true,\n });\n stateManager.addStateDependency(stateProp, negateStateProp);\n }\n }\n }\n\n delete this.state._binding;\n }\n} \n\nif (DEBUG_MODE) {\n StateManager = putObjectInDebugMode(StateManager, 'StateManager');\n}\n\nexport default StateManager;\n","import StateManager from \"./StateManager.js\";\nimport { StatefulArrayHandler } from \"./proxy_handlers.js\";\nimport { handleStateChange } from \"./state_utils.js\";\nimport { putObjectInDebugMode } from \"./debug_utils.js\";\nimport { DEBUG_MODE } from \"./consts.js\";\n\nclass StatefulArray extends Array {\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 // If any of these are \"set\" - handle state change in the value\n dependencyProps = new Map();\n\n // We set the $$operation property on functions that manipulates the array in a way that can change its length,\n // to prevent redundant calls for handleStateChange.\n // The call will be made when the \"length\" property of the array will be changed\n splice(...args) {\n this.$$operation = \"splice\";\n const result = super.splice(...args);\n delete this.$$operation;\n return result;\n }\n shift(...args) {\n this.$$operation = \"shift\";\n const result = super.shift(...args);\n delete this.$$operation;\n return result;\n }\n unshift(...args) {\n this.$$operation = \"splice\";\n const result = super.unshift(...args);\n delete this.$$operation;\n return result;\n }\n\n sort(...args) {\n this.$$operation = \"sort\";\n const result = super.sort(...args);\n delete this.$$operation;\n handleStateChange(this.parentStateObject._stateManager, this.arrayStateProp);\n return result;\n }\n\n reverse(...args) {\n this.$$operation = \"reverse\";\n const result = super.reverse(...args);\n delete this.$$operation;\n handleStateChange(this.parentStateObject._stateManager, this.arrayStateProp);\n return result;\n }\n\n fill(...args) {\n this.$$operation = \"fill\";\n const result = super.fill(...args);\n delete this.$$operation;\n handleStateChange(this.parentStateObject._stateManager, this.arrayStateProp);\n return result;\n }\n \n copyWithin(...args) {\n this.$$operation = \"copyWithin\";\n const result = super.sort(...args);\n delete this.$$operation;\n handleStateChange(this.parentStateObject._stateManager, this.arrayStateProp);\n return result;\n }\n\n slice(...args) {\n this.$$operation = \"slice\";\n const result = super.slice(...args);\n delete this.$$operation;\n return result;\n }\n\n /*\n clone() {\n this.$$operation = \"clone\";\n const result = this.map(item=> item);\n delete this.$$operation;\n return result;\n }\n */\n toArray() {\n this.$$operation = \"toArray\";\n /*\n const result = [];\n for (let i = 0, len=this.length; i<len; i++) {\n result.push(Object.assign({}, this[i]));\n }\n */\n const result = this.rawArray;\n delete this.$$operation;\n return result;\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\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, noConvertToStateItems=false, appScope = window) {\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;\n if (!noConvertToStateItems) {\n statefulArray = rawArray.map((item, index)=> {\n if (item?.hasOwnProperty('state')) return item;\n if (Array.isArray(item)) return item; // return new StatefulArray(item, this[index].state, index, false, appScope); \n if (typeof item === 'object') return new StateManager(item, arrayStateProp, parentStateObject._stateManager, false, appScope);\n return item;\n });\n }\n super(...statefulArray);\n\n this.parentStateObject = parentStateObject;\n this.arrayStateProp = arrayStateProp;\n this.rawArray = rawArray;\n\n statefulArray = new Proxy(this, StatefulArrayHandler(parentStateObject?._stateManager, arrayStateProp, appScope));\n return statefulArray;\n }\n}\n\nif (DEBUG_MODE) {\n StatefulArray = putObjectInDebugMode(StatefulArray, \"StatefulArray\");\n}\n\nexport default StatefulArray;","// Convert attribute values to \"typed\" values\nexport function attributeValueToTypedValue(attrValue) {\n let typedValue = attrValue;\n if (attrValue === \"true\" || attrValue === \"false\") typedValue = Boolean(attrValue === \"true\");\n else if (!isNaN(Number(attrValue))) typedValue = Number(attrValue);\n return typedValue; \n}\n\n// Check if attribute node is a \"Command\" or a \"State Attribute\" \nexport function isSpecialAttribute(attrNode) {\n if (typeof attrNode !== \"object\" && attrNode.constructor.name !== \"Attr\") throw Error(\"Passed non Attribute to isSpecialAttribute!\");\n return attrNode.nodeName.indexOf('_') === 0 || attrNode.nodeValue.indexOf('$') === 0;\n}","import { mapStateArrayToElements } from \"./state_utils.js\";\nimport { SUPPORTED_ATTRIBUTES_FOR_BINDING, SUPPORTED_PROPERTIES_FOR_BINDING, SUPPORTED_INPUT_TYPES_FOR_VALUE_BINDING } from \"./consts.js\";\nimport { putObjectInDebugMode } from \"./debug_utils.js\";\nimport { isElementAList } from \"./DOM_utils.js\";\nimport { attributeValueToTypedValue } from \"./attr_utils.js\";\n\nfunction mapStateToElements(stateItemsPropertyName, customElementName, parentElement) {\n const [stateItemsArray, theState] = parentElement.getState(stateItemsPropertyName, true);\n if (!stateItemsArray || !Array.isArray(stateItemsArray)) {\n console.warn (\"state value for _map is not an array, in state property: \" + stateItemsPropertyName);\n return null;\n }\n const wrapInElement = isElementAList(parentElement) ? \"li\" : undefined;\n const elements = mapStateArrayToElements(stateItemsArray, customElementName, wrapInElement);\n parentElement.innerHTML = \"\";\n if (elements.length) {\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 custom element 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 const theState = mapStateToElements(stateItemsPropertyName, customElementName, thiselement);\n if (!theState) {\n console.warn (`Mapping ${stateItemsPropertyName} to ${customElementName} failed!`);\n return;\n }\n theState._stateManager.addStateMap(stateItemsPropertyName, customElementName, thiselement);\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 bind: function(commandValue) {\n const [attributeName, statePropName] = commandValue.split(':');\n if (!attributeName || !statePropName) {\n console.warn (\"Incorrect usage of _bind command! Please pass <attribute-name>:<state-prop-name>\");\n return;\n }\n if (!attributeName in SUPPORTED_ATTRIBUTES_FOR_BINDING) {\n console.warn (`Attribute ${attributeName} is not supported for _bind command!`);\n return;\n }\n this.bindAttributeToState(attributeName, statePropName);\n\n if (SUPPORTED_PROPERTIES_FOR_BINDING.includes(attributeName)) {\n if (attributeName === \"value\" && this.tagName === \"INPUT\" && SUPPORTED_INPUT_TYPES_FOR_VALUE_BINDING.includes(this.getAttribute('type'))) {\n this.addEventListener(\"input\", \n ()=> this.updateStateFromProperty(\"value\")\n );\n }\n else if (attributeName === \"checked\" && this.tagName === \"INPUT\" && this.getAttribute('type') === \"checkbox\") {\n this.addEventListener(\"change\", \n ()=> this.updateStateFromProperty(\"checked\")\n );\n }\n }\n },\n condition: function(commandValue) {\n if (this.tagName !== \"SLOT\") {\n throw Error(\"_condition command can only be used on a slot element!\");\n }\n if (!this.children || !this.children.length) {\n throw Error(\"Conditional rendering slot (a reactive-slot with a _condition command) must have children! For slot: \", this);\n }\n const statePropName = commandValue;\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\n const slotHost = this.host;\n const slotChildren = [...this.children];\n const nodesToAssign = [];\n slotChildren.forEach(slotChildElement=> {\n const _if = slotChildElement.getAttribute('_if');\n if (_if) {\n slotChildElement.host = slotHost;\n slotChildElement.conditionalSlotChild = true;\n const slotChildChildren = slotChildElement.querySelectorAll('*');\n slotChildChildren.forEach((child) => {\n child.host = slotHost;\n });\n const expectedValue = attributeValueToTypedValue(_if);\n if (stateValue === expectedValue) {\n nodesToAssign.push(slotChildElement);\n }\n }\n });\n\n // Slotted elements must be LIGHT DOM\n // (directly connected to the custom element)\n requestAnimationFrame(()=> {\n slotHost.append(...slotChildren);\n if (nodesToAssign.length) {\n this.assign(...nodesToAssign);\n }\n });\n\n stateObject._stateManager.addConditionallyRenderingElements(statePropName, this);\n } \n}","export const BOOLEAN_ATTRIBUTES = [\n 'hidden',\n 'checked'\n]\n\nexport const SUPPORTED_ATTRIBUTES_FOR_BINDING = [\n 'hidden',\n 'value',\n 'checked'\n]\n\n// Some elements like inputs has certain properties that can be used in _bind command, like: 'value', or 'checked\nexport const SUPPORTED_PROPERTIES_FOR_BINDING = [\n 'value',\n 'checked'\n]\nexport const SUPPORTED_INPUT_TYPES_FOR_VALUE_BINDING = [\n null, // If no type is specified - defaults to 'text' - \n // getAttribute('type') returns null\n 'text', \n 'color', \n 'date', \n 'datetime-local', \n 'email', \n 'month', \n 'number', \n 'password',\n 'range',\n 'search',\n 'tel',\n 'time',\n 'url',\n 'week'\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 = [\n '_global',\n '_gettingDependenciesFor',\n '_localStateManager',\n '_stateManager',\n '_binding',\n '_populate'\n]\n\nexport const GLOBAL_STATE_VAR_NAME = \"SproutGlobalState\";\nexport const GLOBAL_STATE_FUNCTION_NAME = \"getGlobalState\";\n\nexport const ERROR_MESSAGES = {\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\n\nexport const HTML_ELEMENTS_CLASSES_MAP = [\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 { 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 { 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 // { class: HTMLSlotElement, element: \"slot\" } Has a different extended class for conditional rendering\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 // Maps events binding functions to (custom) elements\n eventBindingFunctions: new Map(),\n conditionalRenders: 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 // Similar as above but for event bindings\n eventBindRafId: null,\n // Same for conditional renders\n conditionalRenderRafId: null,\n}\n\nexport const CONDITIONAL_OPERATORS = [\n '=',\n '==',\n '!=',\n '!==',\n '<',\n '<=',\n '>',\n '>='\n];\n\nexport const MAX_OPERATIONS_PER_ANIMATION_FRAME = 100;\n","function debugGetProxyHandler(scopeName, originalObject) {\n return {\n get(target, property, receiver) {\n if (typeof property === \"symbol\") return Reflect.get(...arguments);\n console.debug (`Property ${property} called on ${scopeName}`);\n if (property === \"prototype\") {\n // return Object.getPrototypeOf(originalObject.prototype);\n return originalObject.prototype;\n }\n if (typeof target[property] === \"function\") {\n return new Proxy(target[property], debugApplyProxyHandler(property, `${scopeName}.${property}`));\n }\n else if (typeof target[property] === \"object\") {\n if (!target[property].hasOwnProperty(\"_stateManager\")) {\n return new Proxy(target[property], debugGetProxyHandler(`${scopeName}.${property}`));\n }\n }\n return Reflect.get(...arguments);\n }\n }\n}\n\nfunction debugApplyProxyHandler(funcName, scopeName) {\n return {\n construct(target, args, newTarget) {\n console.debug(`Constructing ${funcName}`);\n return Reflect.construct(target, args, newTarget);\n },\n apply(target, thisArg, argumentsList) {\n console.debug(`Function: ${funcName} with arguments: ${argumentsList} called on ${scopeName}`);\n return Reflect.apply(...arguments);\n },\n }\n}\nexport function putObjectInDebugMode(obj, name) {\n return new Proxy(obj, debugGetProxyHandler(name, obj));\n}","import { stateToElement, resolveStateMapToDocumentFragment } from \"./state_utils.js\";\nimport { isElementAList } from \"./DOM_utils.js\";\nimport { queueConditionalRender } from \"./paint_utils.js\";\nimport { NODES_STATE } from \"./consts.js\";\n\n// Also, if doesn't exist - create it\nfunction getNodeActionsForNode(node) {\n const { nodeActionsMap } = NODES_STATE;\n if (!nodeActionsMap.has(node)) nodeActionsMap.set(node, getNewNodeActionsObject());\n const nodeActions = nodeActionsMap.get(node);\n return nodeActions;\n}\n\nexport function setStateNodeAction(node, nodeActionsObject, value) {\n if (node.nodeType === Node.ATTRIBUTE_NODE)\n nodeActionsObject[\"setAttribute\"] = value; \n else if (node.nodeType === Node.TEXT_NODE)\n nodeActionsObject[\"textContent\"] = value;\n}\n\nexport function addRemoveAction(nodeActions, elementToRemove, stateIdentifier) {\n if (!nodeActions.remove.has(stateIdentifier)) {\n nodeActions.remove.set(stateIdentifier, new Set())\n }\n nodeActions.remove.get(stateIdentifier).add(elementToRemove);\n}\nexport function addReplaceAction(nodeActions, oldElement, newElement) {\n nodeActions.replace.set(oldElement, newElement);\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, stateIdentifier) {\n if (!nodeActions.append.has(stateIdentifier)) {\n nodeActions.append.set(stateIdentifier, new Set());\n }\n nodeActions.append.get(stateIdentifier).add(nodeToAppend);\n}\nexport function addStateAttributeToNode(attributeNode, value) {\n const nodeActions = getNodeActionsForNode(attributeNode);\n setStateNodeAction(attributeNode, nodeActions, value);\n}\nexport function addAppendActionToNode(node, nodeToAppend, stateIdentifier) {\n const nodeActions = getNodeActionsForNode(node);\n addAppendAction(nodeActions, nodeToAppend, stateIdentifier);\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() {\n return ({\n // Nodes to append to the end of node's children, \n // keys are state objects, or state props (string) \n // to prevent duplicate pending\n append: new Map(),\n // Replace each key node on Map, with value node\n replace: new Map(),\n // Insert value node after key node in parent node's children\n after: new Map(),\n // Remove these nodes from the DOM\n // keys are state objects, or state props (string) \n // to prevent duplicate pending\n remove: new Map(),\n get hasPendingActions() {\n return (this.append.size || this.replace.size || this.after.size || this.remove.size);\n }\n });\n}\n\n\n// This *updates*/*\"fills\"* the nodeActionsMap!\nexport function generateStateNodeActions(stateManager, stateProp) {\n const { nodeActionsMap } = NODES_STATE;\n const value = stateManager.state[stateProp];\n const stateNodes = stateManager.stateNodes[stateProp];\n const stateMaps = stateManager.stateArrayMaps[stateProp];\n const conditionallyRenderingElements = stateManager.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 handleStateChange, and it won't reach here.\n if (stateNodes) {\n stateNodes.forEach(node=> {\n if (!nodeActionsMap.has(node)) nodeActionsMap.set(node, {});\n const nodeActionsObject = nodeActionsMap.get(node);\n setStateNodeAction(node, nodeActionsObject, value);\n });\n }\n\n if (stateMaps) {\n const stateMapArray = value;\n stateMaps.forEach(({ customElementName, parentElement})=> {\n const stateMapNodeActions = getNewNodeActionsObject();\n let currentStateMapArrayIndex = -1;\n const isParentAList = isElementAList(parentElement);\n // Compares state map arrays to actual DOM elements (by comparing state objects)\n if (parentElement.children.length) {\n Array.prototype.forEach.call(parentElement.children, (childElement, currentIndex)=> {\n let customElement = childElement;\n // State map elements inside Lists are wrapped with a <li>\n if (isParentAList) customElement = childElement.firstElementChild;\n let stateItem = stateMapArray[currentIndex]; \n if (stateItem?.hasOwnProperty('state')) stateItem = stateItem.state;\n if (!stateItem) {\n addRemoveAction(stateMapNodeActions, childElement);\n }\n else if (customElement.state !== stateItem) {\n const replaceWithChild = stateToElement(stateItem, customElementName, isElementAList(parentElement) ? \"li\" : undefined);\n addReplaceAction(stateMapNodeActions, childElement, replaceWithChild);\n }\n currentStateMapArrayIndex = currentIndex;\n });\n }\n\n // If there are more state objects in the stateMapArray - append equivalent child elements \n currentStateMapArrayIndex++;\n for (let i = currentStateMapArrayIndex, len=stateMapArray.length; i<len; i++) {\n const stateItem = stateMapArray[i];\n // New state item === new child element to append\n if (stateItem) {\n // Make sure we don't already have a pending append action for the same state object\n const newChild = stateToElement(stateItem, customElementName, isElementAList(parentElement) ? \"li\" : undefined);\n addAppendAction(stateMapNodeActions, newChild, stateItem);\n }\n }\n\n if (stateMapNodeActions.hasPendingActions) {\n nodeActionsMap.set(parentElement, stateMapNodeActions);\n }\n });\n }\n\n if (conditionallyRenderingElements) {\n // Should be slot element\n conditionallyRenderingElements.forEach(element=> {\n queueConditionalRender(this, ()=> element.render());\n });\n }\n}\n\nfunction resolveNodeActionsMapToDOMActions() {\n const batchActions = [];\n const { nodeActionsMap } = NODES_STATE;\n\n nodeActionsMap.forEach((nodeActions, node)=> {\n console.log (nodeActions);\n // Attribute change\n if (nodeActions.hasOwnProperty(\"setAttribute\")) {\n const value = nodeActions.setAttribute;\n if (typeof value === \"boolean\") {\n if (!node.hasOwnProperty(\"originalOwnerElement\")) {\n console.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 batchActions.push(()=> {\n node.originalOwnerElement.removeAttributeNode(node);\n });\n }\n }\n // state changed to true\n else {\n if (!node.originalOwnerElement.hasAttribute(node.name)) {\n batchActions.push(()=> {\n node.originalOwnerElement.setAttributeNode(node);\n });\n }\n }\n }\n else {\n if (typeof value === \"string\" && node.nodeValue !== value) {\n batchActions.push (()=> node.nodeValue = value);\n }\n }\n }\n\n // Text change\n else if (nodeActions.hasOwnProperty(\"textContent\")) {\n const value = String(nodeActions.textContent);\n if (node.nodeValue === value) return;\n batchActions.push (()=> node.nodeValue = value);\n }\n\n // DOM change\n else {\n nodeActions.replace.forEach((newNode, oldNode)=> {\n batchActions.push(()=> \n //oldNode.replaceWith(newNode));\n node.replaceChild(newNode, oldNode));\n });\n for (const removes of nodeActions.remove.values()) {\n for (const nodeToRemove of removes) {\n if (nodeToRemove.parentNode && nodeToRemove.parentNode === node) {\n batchActions.push(()=> node.removeChild(nodeToRemove));\n }\n }\n }\n for (const appends of nodeActions.append.values()) {\n for (const newChildElement of appends) {\n batchActions.push(()=> node.appendChild(newChildElement));\n }\n }\n }\n });\n return batchActions;\n}\n\n// For debugging purposes\nexport function logNodeActions() {\n const { nodeActionsMap } = NODES_STATE;\n [...nodeActionsMap.entries()]\n .map(([node, actions])=> {\n\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 replaceElements = [...actions.replace.entries()];\n if (replaceElements.length) {\n console.log(\"Append\", replaceElements);\n }\n if (actions.remove.size) {\n console.log (\"Remove\", actions.remove);\n }\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// This function runs on requestAnimationFrame to run pending Node actions\nexport function doUpdateDOM() {\n let { nodeActionsMap } = NODES_STATE;\n if (nodeActionsMap.size) {\n const DOMActions = resolveNodeActionsMapToDOMActions(nodeActionsMap);\n DOMActions.forEach(DOMAction=> DOMAction());\n NODES_STATE.nodeActionsMap = new Map();\n }\n}","import { doUpdateDOM } from \"./node_actions\";\nimport { NODES_STATE, MAX_OPERATIONS_PER_ANIMATION_FRAME } from \"./consts\";\n\nlet { \n paintRafId,\n eventBindingFunctions, \n eventBindRafId, \n conditionalRenderRafId,\n conditionalRenders,\n nodeActionsMap\n} = NODES_STATE; \n\nexport function queueBindEvents(element, bindFunction) {\n eventBindingFunctions.set(element, bindFunction);\n if (eventBindingFunctions.size+1 >= MAX_OPERATIONS_PER_ANIMATION_FRAME) return;\n if (eventBindRafId) cancelAnimationFrame(eventBindRafId);\n eventBindRafId = requestAnimationFrame(()=> {\n eventBindRafId = null;\n eventBindingFunctions.forEach(bindFn=> bindFn());\n eventBindingFunctions = new Map();\n });\n}\nexport function queuePaint() {\n if (nodeActionsMap.size+1 >= MAX_OPERATIONS_PER_ANIMATION_FRAME) return;\n if (paintRafId) cancelAnimationFrame(paintRafId);\n paintRafId = requestAnimationFrame(()=> {\n paintRafId = null;\n doUpdateDOM();\n })\n}\nexport function queueConditionalRender(element, renderFunction) {\n conditionalRenders.set(element, renderFunction);\n if (conditionalRenders.size >= MAX_OPERATIONS_PER_ANIMATION_FRAME) return;\n if (conditionalRenderRafId) cancelAnimationFrame(conditionalRenderRafId);\n conditionalRenderRafId = requestAnimationFrame(()=> {\n conditionalRenderRafId = null;\n conditionalRenders.forEach(renderFn=> renderFn());\n conditionalRenders = new Map();\n })\n}","\n// Sets an internal read-only \"hidden\" property on an object:\nexport function setHiddenProperty(obj, propName, propValue, enumerable=false) {\n Object.defineProperty(obj, propName, {\n value: propValue,\n configurable: false,\n writable: false,\n enumerable,\n });\n}","import StateManager from \"./StateManager.js\";\nimport { handleStateChange } from \"./state_utils.js\";\nimport StatefulArray from \"./StatefulArray.js\";\nimport { BUILT_IN_STATE_PROPS, ERROR_MESSAGES } from \"./consts.js\";\n\nexport const StatefulArrayHandler = function(parentStateManager, arrayStateProp, appScope = window) {\n return {\n set(targetArray, property, value) {\n // Return if the value is the same\n // A change in array length triggers state change in the array state prop\n if (property === \"length\") {\n const setResult = Reflect.set(targetArray, property, value);\n handleStateChange(parentStateManager, arrayStateProp);\n return setResult;\n }\n\n if (targetArray[property] === value) return true;\n\n const index = Number(property);\n if (!isNaN(index)) { // Check if the property is a numeric index\n // If we set it to a new object, convert it to a state object\n if (typeof value === 'object' && (!value.hasOwnProperty('_stateManager') && !value.hasOwnProperty('state'))) {\n value = new StateManager(value, arrayStateProp, parentStateManager, false, 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 (value.hasOwnProperty('_stateManager')) {\n value = value._stateManager;\n }\n // This means the object actions are part of a native array function ('splice' etc.), and that we should NOT\n // mark $$mapAction on values\n if (!targetArray.hasOwnProperty('$$operation')) {\n\n let doStateChangeHandle = false;\n if (index < targetArray.length) {\n doStateChangeHandle = true;\n }\n const setResult = Reflect.set(targetArray, property, value);\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 handleStateChange(parentStateManager, arrayStateProp);\n }\n return setResult;\n }\n }\n return Reflect.set(targetArray, property, value);\n },\n \n get(targetArray, property, receiver) {\n if (typeof property === 'symbol') return Reflect.get(...arguments);\n if (property === 'hasOwnProperty') return Reflect.get(...arguments);\n const index = Number(property);\n if (!isNaN(index)) {\n if (!targetArray[index]) return undefined;\n if (targetArray[index].hasOwnProperty('state')) return targetArray[index].state;\n // Could be another array\n return targetArray[index];\n }\n\n /*\n // If this property is set on the array, it means the get is part of a \"dependency check\"\n if (targetArray.hasOwnProperty(\"_gettingDependenciesFor\")) {\n targetArray.dependencyProps.set(property, targetArray._gettingDependenciesFor);\n delete targetArray._gettingDependenciesFor;\n }\n */\n \n return Reflect.get(...arguments);\n }\n }\n}\n\nexport const StateHandler = function(stateObj, appScope = window) {\n return {\n defineProperty(targetState, stateProp, descriptor) {\n if (BUILT_IN_STATE_PROPS.includes(stateProp) || targetState?._binding) {\n return Reflect.defineProperty(...arguments);\n }\n const origTargetState = targetState;\n const dependencies = new Set();\n // Will be the actual prop name if this is a state hook setter\n let setStateProp;\n targetState = new Proxy(targetState, {\n get(target, property, receiver) {\n if (property === \"_global\") {\n target._global._gettingDependenciesFor = stateProp;\n target._global._localStateManager = target._stateManager;\n\n }\n if (BUILT_IN_STATE_PROPS.includes(property)) {\n return Reflect.get(...arguments);\n }\n if (Array.isArray(target[property])) {\n target[property]._gettingDependenciesFor = stateProp;\n }\n dependencies.add(property);\n return Reflect.get(...arguments);\n }\n });\n if (typeof descriptor?.value !== \"undefined\") {\n const value = descriptor.value;\n // Could already be a StatefulArray (needs to find better way to detect this)\n if (Array.isArray(value)) {\n // Setter Hook\n if (stateProp.indexOf('set_') === 0) {\n const deps = value?.[1];\n if (!deps) throw Error(ERROR_MESSAGES.NO_DEPENDENCIES_ARRAY_IN_SET_HOOK(stateProp));\n // Second item should be an array of dependencies\n value?.[1].forEach(depProp=> {\n dependencies.add(depProp);\n });\n // Third item can be a boolean stating if to run the setter on initialization\n if (value?.[2] === true) {\n setStateProp = stateProp.substring(4);\n const func = value?.[0];\n if (func && typeof func === \"function\") {\n stateObj[setStateProp] = func.call(stateObj);\n }\n }\n else {\n if (value?.[3]) {\n stateObj[setStateProp] = value[3]\n }\n }\n }\n else if (!value?.[0]?._stateManager) {\n descriptor.value = new StatefulArray(descriptor.value, stateObj, stateProp, false, appScope);\n }\n }\n }\n else if (typeof descriptor?.get === \"function\") {\n descriptor.get.call(targetState);\n }\n\n if (dependencies.size) {\n dependencies.forEach(dep=> stateObj._stateManager.addStateDependency(dep, stateProp));\n }\n\n // Don't use \"arguments\" here - they are not linked to argument changes in 'strict'\n const definePropertyResult = Reflect.defineProperty(origTargetState, stateProp, descriptor);\n const stateManager = stateObj._stateManager;\n if (setStateProp) stateProp = setStateProp;\n if (!origTargetState.hasOwnProperty(\"_populate\"))\n handleStateChange(stateManager, stateProp);\n return definePropertyResult;\n },\n get(targetState, property, receiver) {\n if (property === 'hasOwnProperty') return Reflect.get(...arguments);\n // Global state access\n if (!targetState.hasOwnProperty('_global')) {\n if (targetState.hasOwnProperty(\"_gettingDependenciesFor\")) {\n targetState._stateManager.addGlobalStateDependency(property, targetState._gettingDependenciesFor, targetState._localStateManager);\n delete targetState._gettingDependenciesFor;\n delete targetState._localStateManager;\n return Reflect.get(...arguments);\n }\n }\n // property can be a Symbol on rare occasions, then indexOf will be undefined (that's the reason for the question mark)\n // This handles using the negate operator on state properties\n if (typeof property?.indexOf === 'function' && property?.indexOf('!') === 0) {\n const originalProperty = property.substring(1);\n if (targetState.hasOwnProperty(originalProperty)) {\n return !targetState[originalProperty];\n }\n }\n return Reflect.get(...arguments);\n }\n }\n};\n","import { BOOLEAN_ATTRIBUTES, BUILT_IN_STATE_PROPS } from \"./consts.js\";\nimport { generateStateNodeActions } from './node_actions.js';\nimport { setHiddenProperty } from \"./prop_utils.js\";\nimport { queuePaint } from \"./paint_utils.js\";\nimport { NODES_STATE } from \"./consts.js\";\nimport { isElementAList } from \"./DOM_utils.js\";\n\nconst { nodeActionsMap } = NODES_STATE;\n\nif (typeof HTMLElement === 'undefined') {\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}\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\n\nexport const setAttribute = function(attrName, attrValue) {\n if (BOOLEAN_ATTRIBUTES.includes(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, stateProp) {\n let equalityValue = null;\n if (stateProp.indexOf(':') !== -1) {\n if (stateProp.indexOf('is_') === 0) {\n const colonIndex = stateProp.indexOf(':');\n if (colonIndex === -1) {\n throw Error(\"When using conditional equality state attribute, you must include a colon character followed by an equality value!\");\n }\n equalityValue = stateProp.substring(colonIndex+1);\n stateProp = stateProp.substring(3, colonIndex);\n }\n }\n let [stateVal, theState] = this.getState(stateProp, true); \n\n if (stateVal === undefined) {\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 if (equalityValue) {\n const conditionalStateProp = \"is_\"+stateProp+equalityValue;\n const originalStateProp = stateProp;\n Object.defineProperty(theState, conditionalStateProp, {\n get() {\n return this[originalStateProp] === equalityValue\n },\n enumerable: false\n });\n theState._stateManager.addStateDependency(stateProp, conditionalStateProp);\n stateVal = theState[conditionalStateProp];\n stateProp = conditionalStateProp;\n }\n\n const valueToSet = stateVal;\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/*\n Object.defineProperty(stateAttrNode, \"stateValue\", {\n value: valueToSet,\n writeable: true,\n configurable: false,\n enumerable: true\n });\n*/\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 // Adds the attribute to the element\n if (valueToSet !== false) {\n this.setAttributeNode(stateAttrNode);\n }\n\n theState._stateManager.addStateNode(stateProp, stateAttrNode, typeof valueToSet === \"boolean\");\n\n}\nexport const setStateText = function(stateProp) {\n const [stateVal, theState] = this.getState(stateProp, true); \n\n if (stateVal === undefined || stateVal === null) {\n console.warn(`State value for ${stateProp} is undefined or null for _text command`);\n return;\n }\n if (!theState) {\n console.warn (\"No State object with state prop: \" + stateProp);\n return;\n }\n const valueToSet = stateVal;\n const textNode = document.createTextNode(valueToSet);\n setHiddenProperty(textNode, \"isStateAttribute\", true);\n this.appendChild(textNode);\n theState._stateManager.addStateNode(stateProp, textNode);\n}\n\n// Convert a stateObject to a custom element, used in State Map Arrays\nexport function stateToElement(stateObject, elemName, wrapInElement) {\n const customElementInstance = document.createElement(elemName);\n customElementInstance.setInitialState(stateObject);\n let returnElement;\n if (wrapInElement) {\n returnElement = document.createElement(wrapInElement);\n returnElement.appendChild(customElementInstance);\n }\n else {\n returnElement = customElementInstance;\n }\n return returnElement;\n}\n\nexport function mapStateArrayToElements(stateItems, elemName, wrapInElement) {\n // Each state item should be a stateManager\n return stateItems.map(stateItem => {\n if (stateItem.hasOwnProperty('state')) stateItem = stateItem.state;\n if (typeof stateItem !== 'object') {\n console.warn(\"item in State array for _map is not an object: \", stateItem);\n return {};\n }\n return stateToElement(stateItem, elemName, wrapInElement);\n });\n}\n\n// Main function that handles all state changes in a state object\nexport function handleStateChange(stateManager, stateProp) {\n if (BUILT_IN_STATE_PROPS.includes(stateProp)) return;\n // Populate the next Node Actions to perform\n generateStateNodeActions(stateManager, stateProp);\n const state = stateManager.state;\n\n // Run on[stateProp]Change hooks\n if (state.hasOwnProperty(`on_${stateProp}Change`)) {\n if (typeof state[`on_${stateProp}Change`] === \"function\")\n state[`on_${stateProp}Change`].call(state);\n }\n\n const stateDependencies = stateManager.stateDependencies[stateProp];\n if (stateDependencies) {\n stateDependencies.forEach(depStateProp=> {\n // A \"Setter\" hook\n if (depStateProp.indexOf('set_') === 0) {\n const setStateProp = depStateProp.substring(4);\n const func = state[depStateProp][0];\n if (func && typeof func === \"function\") {\n state[setStateProp] = func.call(state);\n return;\n }\n }\n generateStateNodeActions(stateManager, depStateProp);\n if (state.hasOwnProperty(`on${depStateProp}Change`)) {\n if (typeof state[`on${depStateProp}Change`] === \"function\")\n state[`on${depStateProp}Change`].call(state);\n }\n });\n }\n\n // Global state\n if (!state._global) {\n const globalStateDependencies = stateManager.globalStateDependencies[stateProp];\n globalStateDependencies?.forEach((depStateProps, depStateManager)=> {\n const depState = depStateManager.state;\n depStateProps.forEach(depStateProp=> {\n // A \"Setter\" hook\n if (depStateProp.indexOf('set_') === 0) {\n const setStateProp = depStateProp.substring(4);\n const func = state[depStateProp][0];\n if (func && typeof func === \"function\") {\n depState[setStateProp] = func.call(depState);\n return;\n }\n }\n generateStateNodeActions(depStateManager, depStateProp);\n if (state.hasOwnProperty(`on${depStateProp}Change`)) {\n if (typeof state[`on${depStateProp}Change`] === \"function\")\n depState[`on${depStateProp}Change`].call(depState);\n }\n });\n });\n }\n\n if (nodeActionsMap.size) {\n queuePaint();\n }\n}\n\nexport function populateStateFromInitialState(state, initialState) {\n state._populate = true;\n const descriptors = Object.getOwnPropertyDescriptors(initialState);\n let descrp;\n for (let key in descriptors) {\n if (BUILT_IN_STATE_PROPS.includes(key)) {\n delete descriptors[key];\n continue;\n }\n descrp = descriptors[key];\n if (descrp.hasOwnProperty('get') && typeof descrp.get === \"function\") {\n descrp.get.bind(state);\n }\n if (descrp.hasOwnProperty('value')) {\n const value = descrp.value;\n if (typeof value === \"function\") {\n descrp.value.bind(state);\n }\n else if (Array.isArray(value) && key.indexOf(\"set_\") === 0) {\n const func = value?.[0];\n if (func && typeof func === \"function\") {\n func.bind(state);\n }\n }\n }\n \n }\n\n // If state set hooks should run on initialization - \n // they should run by the proxy handler for \"defineProperty\"\n Object.defineProperties(state, descriptors);\n delete state._populate;\n}\n\n/* Experimental rendering of state maps using DocumentFragment. Not stable */\n/* \nexport function resolveStateMapToDocumentFragment({ customElementName, parentElement}, stateMapArray) {\n const resolvedDocumentFragment = new DocumentFragment();\n // const stateMapNodeActions = getNewNodeActionsObject();\n let currentStateMapArrayIndex = -1;\n const isParentAList = isElementAList(parentElement);\n // Compares state map arrays to actual DOM elements (by comparing state objects)\n if (parentElement.children.length) {\n Array.prototype.forEach.call(parentElement.children, (childElement, currentIndex)=> {\n let customElementChild = childElement;\n // State map elements inside Lists are wrapped with a <li>\n if (isParentAList) customElementChild = childElement.firstElementChild;\n let stateItem = stateMapArray[currentIndex]; \n if (stateItem?.hasOwnProperty('state')) stateItem = stateItem.state;\n if (stateItem && customElementChild.state !== stateItem) {\n const newCustomElementChild = stateToElement(stateItem, customElementName, isElementAList(parentElement) ? \"li\" : undefined);\n resolvedDocumentFragment.appendChild(newCustomElementChild);\n }\n else {\n resolvedDocumentFragment.append(childElement)\n }\n currentStateMapArrayIndex = currentIndex;\n });\n }\n\n // If there are more state objects in the stateMapArray - append equivalent child elements \n currentStateMapArrayIndex++;\n for (let i = currentStateMapArrayIndex, len=stateMapArray.length; i<len; i++) {\n const stateItem = stateMapArray[i];\n // New state item === new child element to append\n if (stateItem) {\n // Make sure we don't already have a pending append action for the same state object\n const newChild = stateToElement(stateItem, customElementName, isElementAList(parentElement) ? \"li\" : undefined);\n resolvedDocumentFragment.appendChild(newChild);\n }\n }\n\n return resolvedDocumentFragment;\n if (resolvedDocumentFragment.children.length) {\n parentElement.innerHTML = '';\n //addReplaceAction(stateMapNodeActions, childElement, replaceWithChild);\n //nodeActionsMap.set(parentElement, stateMapNodeActions);\n } \n}\n*/\n\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { extendElementClassWithReactiveElementClass } from \"./ReactiveElement.js\";\nimport StateManager from \"./StateManager.js\";\nimport { GLOBAL_STATE_VAR_NAME, GLOBAL_STATE_FUNCTION_NAME, HTML_ELEMENTS_CLASSES_MAP } from \"./consts.js\";\nimport SproutBuild from '../build/index.js';\nimport { putObjectInDebugMode } from \"./debug_utils.js\";\nimport { DEBUG_MODE } from \"./consts.js\";\nimport { setHiddenProperty } from \"./prop_utils.js\";\nimport { getConditionalElementClass } from \"./ConditionalElement.js\";\n\nconst allowAppScopeAccess = document.currentScript.hasAttribute(\"allowappscopeaccess\");\n\nglobalThis.SproutInitApp = function(appName) {\n \n let appScope = (function() { return { window, document: window?.document }})(window);\n\n const config = {\n useShadow: true, // Always use shadow DOM for now, may add configurability later\n allowAppScopeAccess: allowAppScopeAccess\n }\n\n if (config.allowAppScopeAccess) {\n Object.defineProperty(globalThis, \"sproutApps\", {\n value: {},\n writable: false\n });\n Object.defineProperty(globalThis.sproutApps, appName, {\n value: appScope,\n writable: false\n });\n \n }\n\n appScope.SPROUT_CONFIG = Object.seal(config);\n\n // Prevent \"hasOwnProperty\" shenanigans\n const hasOwnProperty = Object.prototype.hasOwnProperty;\n setHiddenProperty(Object.prototype, \"hasOwnProperty\", hasOwnProperty);\n\n appScope[GLOBAL_STATE_FUNCTION_NAME] = function() {\n return {};\n }\n // If initialState is passed - also sets it to global state\n appScope.setGlobalState = function(initialState = {}) {\n const globalState = new StateManager(initialState, undefined, undefined, true, appScope).state;\n const globalStateVarName = GLOBAL_STATE_VAR_NAME;\n Object.defineProperty(appScope, globalStateVarName, {\n value: globalState,\n writable: DEBUG_MODE ? true : false,\n configurable: false\n });\n Object.defineProperty(appScope, GLOBAL_STATE_FUNCTION_NAME, {\n value: function() {\n return appScope[globalStateVarName];\n },\n });\n };\n\n\n appScope.ReactiveElement = extendElementClassWithReactiveElementClass(HTMLElement, appScope);\n\n // Extend specific HTMLElement classes to enable reactivity (use it by adding an \"is\" attribute to an element)\n HTML_ELEMENTS_CLASSES_MAP.forEach(itemDefinition => \n customElements.define(\n `reactive-${itemDefinition.element}`, \n extendElementClassWithReactiveElementClass(itemDefinition.class, appScope, true),\n { extends: itemDefinition.element })\n \n );\n\n const ReactiveConditionalElementClass = extendElementClassWithReactiveElementClass(HTMLElement, appScope, true);\n const ConditionalElementClass = getConditionalElementClass(ReactiveConditionalElementClass); \n customElements.define('conditional-render', ConditionalElementClass);\n\n return function() {\n SproutBuild(appScope, appName);\n }.bind(appScope);\n}\n\n\n\n"],"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","_defineProperties","_toPropertyKey","key","_createClass","_toPrimitive","toPrimitive","String","Number","_classCallCheck","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","apply","_assertThisInitialized","ReferenceError","Boolean","valueOf","bind","_inherits","_setPrototypeOf","asyncGeneratorStep","_asyncToGenerator","arguments","_next","_throw","appScope","appName","defineElementFromTemplate","_x","_x2","_x3","_defineElementFromTemplate","_callee","template","elemName","globalStylesheet","templateContent","style","runtime","_callee$","_context","document","importNode","content","querySelector","removeChild","customElements","_appScope$ReactiveEle","_class","textContent","ReactiveElement","build","globalStyle","concat","CSSStyleSheet","replaceSync","Array","querySelectorAll","getAttribute","globalThis","globalRuntimeFunction","attributeValueToTypedValue","CONDITIONAL_OPERATORS","queueConditionalRender","resolveConditional","conditional","conditionStateValue","typeOf","includes","conditionFn","Function","getConditionalElementClass","ReactiveElementClass","_conditionStateProp","WeakMap","_renderMap","_wasMounted","ConditionalElement","_ReactiveElementClass","_this","_len","args","_key","_classPrivateFieldInitSpec","render","_this2","isFirstRender","undefined","stateValue","_classPrivateFieldGet","indexOf","host","substring","getState","elementsToRender","elements","_toConsumableArray","innerHTML","append","connectedCallback","getRootNode","conditionAttributeValue","children","statePropName","_classPrivateFieldSet","isConditionStatic","stateObject","_this$getState","_this$getState2","_slicedToArray","renderMap","Map","set","conditionalChild","_if","expectedValue","has","get","_stateManager","addConditionallyRenderingElements","isElementAList","element","tagName","COMMANDS","COMMAND_ATTRIBUTES","BOOLEAN_ATTRIBUTES","SUPPORTED_ATTRIBUTES_FOR_BINDING","GLOBAL_STATE_FUNCTION_NAME","DEFAULT_TEMPLATE_DOM","setAttribute","setStateAttribute","setStateText","StateManager","putObjectInDebugMode","DEBUG_MODE","queueBindEvents","extendElementClassWithReactiveElementClass","elementClass","window","noRender","_onMount","_boundAttributesToState","_templateContent","_stylesheet","_globalStylesheet","_events","_boundEventNames","_eventHandler","_changeEventHandler","_ReactiveElement_brand","WeakSet","_elementClass","runtimeScript","_classPrivateMethodInitSpec","_defineProperty","isReactiveElement","isSpecialElement","isNativeElement","hasAttribute","dynamicRuntimeFn","_assertClassBrand","_setRuntime","cloneNode","stylesheet","ref","setInitialState","initState","initialState","assign","bindAttributeToState","attrName","unbindAttributeToState","updateStateFromProperty","propertyName","newValue","stateProp","theState","resolveTextContentTemplateStringTag","strings","attributeNames","reduce","result","str","_this2$host","replaceAll","disconnectedCallback","_this$host","thisRefName","_unbindEvents","_this3","getAttributeNames","attrValue","_iterator","_createForOfIteratorHelper","_step","_this$initialState","err","_setActiveStateFromInitialState","changeEvent","Event","bubbles","composed","dispatchEvent","addEventListener","_renderTemplate","commands","_iterator2","_step2","initialSetAttribute","command","_ref","_COMMAND_ATTRIBUTES$c","_bindEvents","queueMicrotask","_onRender","_resolveTextContentTemplateString","attributeChangedCallback","attributeName","oldValue","isConnected","refValue","_updateStateFromAttribute","returnStateObject","thisInstance","stateVal","state","_thisInstance$state","globalState","_thisInstance$state2","_globalState","findElement","refName","root","SPROUT_CONFIG","useShadow","shadowRoot","_this4","events","onMount","attachShadow","mode","adoptedStyleSheets","appendChild","fragment","DocumentFragment","_this5","removeEventListener","thiselement","eventName","_this6","_classPrivateFieldGet2","eventRefNames","clickActions","otherActions","eventNames","event","eventsObject","elementsPath","composedPath","target","find","_eventsObject$ref","_loop","_eventNames2","_i","_this$getState3","_this$getState4","resolveTextContentFn","map","toLowerCase","initialSetText","attributeValue","valueToSet","handleStateChange","populateStateFromInitialState","StateHandler","setHiddenProperty","parentStateProp","parentStateManager","isGlobal","Proxy","globalStateDependencies","addGlobalStateDependency","depStateProp","stateManager","Set","add","addStateDependency","stateDependencies","addStateMap","customElementName","parentElement","stateArrayMaps","_element$host","conditionallyRenderingElements","originalParentElement","addStateNode","stateNode","isBooleanStateProp","stateNodes","setAndBindStateProperty","stateObj","originalStateProp","descriptor","getOwnPropertyDescriptor","_global","isValueProp","privateState","_binding","currentVal","negateStateProp","StatefulArrayHandler","StatefulArray","_Array","initialArray","parentStateObject","arrayStateProp","noConvertToStateItems","isArray","rawArray","statefulArray","item","index","splice","_get2","$$operation","_get","shift","_get3","_len2","_key2","unshift","_get4","_len3","_key3","sort","_get5","_len4","_key4","_get6","_len5","_key5","fill","_get7","_len6","_key6","copyWithin","_get8","_len7","_key7","_get9","_len8","_key8","toArray","species","_wrapNativeSuper","typedValue","isSpecialAttribute","attrNode","nodeName","nodeValue","mapStateArrayToElements","SUPPORTED_PROPERTIES_FOR_BINDING","SUPPORTED_INPUT_TYPES_FOR_VALUE_BINDING","mapStateToElements","stateItemsPropertyName","_parentElement$getSta","_parentElement$getSta2","stateItemsArray","console","warn","wrapInElement","commandValue","_commandValue$split","split","_commandValue$split2","text","_commandValue$split3","_commandValue$split4","condition","slotHost","slotChildren","nodesToAssign","slotChildElement","conditionalSlotChild","slotChildChildren","child","requestAnimationFrame","BUILT_IN_STATE_PROPS","GLOBAL_STATE_VAR_NAME","ERROR_MESSAGES","NO_DEPENDENCIES_ARRAY_IN_SET_HOOK","HTML_ELEMENTS_CLASSES_MAP","HTMLAnchorElement","HTMLAreaElement","HTMLAudioElement","HTMLBaseElement","HTMLBodyElement","HTMLBRElement","HTMLButtonElement","HTMLCanvasElement","HTMLDataElement","HTMLDataListElement","HTMLDetailsElement","HTMLDialogElement","HTMLDivElement","HTMLDListElement","HTMLEmbedElement","HTMLFieldSetElement","HTMLFormElement","HTMLHeadingElement","HTMLHRElement","HTMLHtmlElement","HTMLIFrameElement","HTMLImageElement","HTMLInputElement","HTMLLabelElement","HTMLLegendElement","HTMLLIElement","HTMLLinkElement","HTMLMapElement","HTMLMetaElement","HTMLMeterElement","HTMLObjectElement","HTMLOListElement","HTMLOptGroupElement","HTMLOptionElement","HTMLOutputElement","HTMLParagraphElement","HTMLParamElement","HTMLPictureElement","HTMLPreElement","HTMLProgressElement","HTMLQuoteElement","HTMLScriptElement","HTMLSelectElement","HTMLSourceElement","HTMLSpanElement","HTMLStyleElement","HTMLTableElement","HTMLTableCellElement","HTMLTableRowElement","HTMLTableSectionElement","HTMLTextAreaElement","HTMLTimeElement","HTMLTitleElement","HTMLTrackElement","HTMLUListElement","HTMLVideoElement","HTMLSlotElement","_HTMLElement","HTMLElement","createElement","NODES_STATE","nodeActionsMap","eventBindingFunctions","conditionalRenders","paintRafId","eventBindRafId","conditionalRenderRafId","MAX_OPERATIONS_PER_ANIMATION_FRAME","debugGetProxyHandler","scopeName","originalObject","property","receiver","debug","debugApplyProxyHandler","funcName","newTarget","thisArg","argumentsList","obj","stateToElement","resolveStateMapToDocumentFragment","getNodeActionsForNode","node","getNewNodeActionsObject","nodeActions","setStateNodeAction","nodeActionsObject","nodeType","Node","ATTRIBUTE_NODE","TEXT_NODE","addRemoveAction","elementToRemove","stateIdentifier","remove","addReplaceAction","oldElement","newElement","replace","addAppendAction","nodeToAppend","addStateAttributeToNode","attributeNode","addAppendActionToNode","after","hasPendingActions","size","generateStateNodeActions","stateMaps","stateMapArray","stateMapNodeActions","currentStateMapArrayIndex","isParentAList","childElement","currentIndex","_stateItem","customElement","firstElementChild","stateItem","replaceWithChild","len","newChild","resolveNodeActionsMapToDOMActions","batchActions","log","error","originalOwnerElement","removeAttributeNode","setAttributeNode","newNode","oldNode","replaceChild","removes","_iterator3","_step3","nodeToRemove","parentNode","appends","_iterator4","_step4","_loop2","newChildElement","logNodeActions","entries","_ref2","_ref3","actions","ELEMENT_NODE","appendElements","replaceElements","doUpdateDOM","DOMActions","DOMAction","bindFunction","cancelAnimationFrame","bindFn","queuePaint","renderFunction","renderFn","propName","propValue","targetArray","setResult","doStateChangeHandle","targetState","_targetState","origTargetState","dependencies","setStateProp","_gettingDependenciesFor","_localStateManager","_value$","deps","depProp","func","dep","definePropertyResult","originalProperty","removeAttribute","elementSetAttribute","equalityValue","colonIndex","conditionalStateProp","stateAttrNode","createAttribute","textNode","createTextNode","customElementInstance","returnElement","stateItems","depStateProps","depStateManager","depState","_populate","descriptors","getOwnPropertyDescriptors","descrp","defineProperties","SproutBuild","allowAppScopeAccess","currentScript","SproutInitApp","_window","config","sproutApps","seal","setGlobalState","globalStateVarName","itemDefinition","ReactiveConditionalElementClass","ConditionalElementClass"],"sourceRoot":""}
1
+ {"version":3,"file":"sprout-core.js","mappings":"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","sources":["webpack://jssprout/./src/build/index.js","webpack://jssprout/./src/core/ConditionalElement.js","webpack://jssprout/./src/core/DOM_utils.js","webpack://jssprout/./src/core/ReactiveElement.js","webpack://jssprout/./src/core/StateManager.js","webpack://jssprout/./src/core/StatefulArray.js","webpack://jssprout/./src/core/attr_utils.js","webpack://jssprout/./src/core/commands.js","webpack://jssprout/./src/core/consts.js","webpack://jssprout/./src/core/debug_utils.js","webpack://jssprout/./src/core/node_actions.js","webpack://jssprout/./src/core/paint_utils.js","webpack://jssprout/./src/core/prop_utils.js","webpack://jssprout/./src/core/proxy_handlers.js","webpack://jssprout/./src/core/state_utils.js","webpack://jssprout/webpack/bootstrap","webpack://jssprout/webpack/runtime/define property getters","webpack://jssprout/webpack/runtime/hasOwnProperty shorthand","webpack://jssprout/webpack/runtime/make namespace object","webpack://jssprout/./src/core/index.js"],"sourcesContent":["\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 // Create custom elements from templates\n async function defineElementFromTemplate(template, elemName, globalStylesheet) {\n const templateContent = document.importNode(template.content, true);\n const style = templateContent.querySelector('style');\n if (style) templateContent.removeChild(style);\n const runtime = templateContent.querySelector('script');\n if (runtime) templateContent.removeChild(runtime);\n\n customElements.define(\n elemName, \n class extends appScope.ReactiveElement {\n constructor() {\n super(templateContent, runtime, style?.textContent, globalStylesheet);\n }\n }\n );\n }\n\n function build() {\n let globalStylesheet;\n const globalStyle = document.querySelector(`head > style[app=\"${appName}\"]`);\n if (globalStyle) {\n globalStylesheet = new CSSStyleSheet();\n globalStylesheet.replaceSync(globalStyle.textContent);\n }\n Array.prototype.forEach.call(document.querySelectorAll(`template[app=\"${appName}\"]`), template => {\n defineElementFromTemplate(template, template.getAttribute('for'), globalStylesheet);\n });\n if (typeof globalThis[`${appName}_runtime`] === 'function') {\n const globalRuntimeFunction = globalThis[`${appName}_runtime`];\n globalRuntimeFunction.call(appScope);\n }\n }\n build();\n}","import { attributeValueToTypedValue } from \"./attr_utils\";\nimport { CONDITIONAL_OPERATORS } from \"./consts\";\nimport { queueConditionalRender } from \"./paint_utils\";\n\n// returns a Boolean according to the conditional equality of conditional to conditionStateValue\nexport function resolveConditional(conditional, conditionStateValue) {\n const typeOf = typeof conditional;\n if (typeOf !== 'string') {\n return conditionStateValue === conditional;\n }\n else {\n if (conditional === \"always\") return true;\n if (CONDITIONAL_OPERATORS.includes(conditional[0])) {\n const conditionFn = new Function(`return ${conditionStateValue}${conditional}`);\n return conditionFn();\n }\n else {\n return conditionStateValue === conditional;\n }\n }\n}\n\nexport function getConditionalElementClass(ReactiveElementClass) {\n class ConditionalElement extends ReactiveElementClass {\n\n #conditionStateProp\n #renderMap\n #wasMounted = false\n\n render(isFirstRender=false) {\n let stateValue;\n if (this.#conditionStateProp.indexOf('@') === 0) {\n stateValue = this.host.getAttribute(this.#conditionStateProp.substring(1));\n }\n else {\n stateValue = this.getState(this.#conditionStateProp);\n }\n\n if (stateValue === undefined) {\n throw Error(`State value for ${this.#conditionStateProp} not found while rendering conditional-render element:`, this);\n }\n const elementsToRender = [];\n\n this.#renderMap.forEach((elements, conditional)=> {\n if (resolveConditional(conditional, stateValue)) {\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 connectedCallback() {\n this.host = this.getRootNode().host;\n if (!this.host) {\n throw Error(\"<conditional-render> must be used as part of a custom element template! Cannot be used outside of a custom element.\");\n }\n if (this.#wasMounted) return;\n const conditionAttributeValue = this.getAttribute(\"_condition\");\n if (!conditionAttributeValue) {\n throw Error(\"conditional-render elements must have a _condition command attribute\");\n }\n if (!this.children || !this.children.length) {\n throw Error(\"Conditional element must have children!\");\n }\n\n const statePropName = conditionAttributeValue;\n this.#conditionStateProp = statePropName;\n\n const isConditionStatic = this.#conditionStateProp.indexOf('@') === 0;\n let stateValue, stateObject;\n if (!isConditionStatic) {\n [stateValue, stateObject] = this.getState(statePropName, true);\n if (typeof stateValue === \"undefined\") {\n throw Error(`State property ${statePropName} not defined for _condition command!`);\n }\n }\n const renderMap = new Map();\n renderMap.set(\"always\", []);\n const children = [...this.children];\n\n children.forEach(conditionalChild=> {\n const _if = conditionalChild.getAttribute('_if');\n if (_if) {\n const expectedValue = attributeValueToTypedValue(_if);\n if (!renderMap.has(expectedValue)) renderMap.set(expectedValue, []);\n renderMap.get(expectedValue).push(conditionalChild);\n }\n else {\n renderMap.get(\"always\").push(conditionalChild);\n }\n });\n this.#renderMap = renderMap;\n\n if (!isConditionStatic) {\n stateObject._stateManager.addConditionallyRenderingElements(statePropName, this);\n }\n this.render(true);\n this.#wasMounted = true;\n }\n }\n\n return ConditionalElement;\n}\n\n","export function isElementAList(element) {\n return element.tagName === \"OL\" || element.tagName === \"UL\";\n}\n\n","import { COMMANDS as COMMAND_ATTRIBUTES } from \"./commands.js\";\nimport { BOOLEAN_ATTRIBUTES, SUPPORTED_ATTRIBUTES_FOR_BINDING, GLOBAL_STATE_FUNCTION_NAME, DEFAULT_TEMPLATE_DOM } from \"./consts.js\";\nimport { setAttribute, setStateAttribute, setStateText } from \"./state_utils.js\";\nimport StateManager from \"./StateManager.js\";\nimport { putObjectInDebugMode } from \"./debug_utils.js\";\nimport { DEBUG_MODE } from \"./consts.js\";\nimport { queueBindEvents } from \"./paint_utils.js\";\nimport { attributeValueToTypedValue } from \"./attr_utils.js\";\n\nexport function extendElementClassWithReactiveElementClass(elementClass, appScope = window, noRender = false) {\n class ReactiveElement extends elementClass {\n // Should contain the \"root\" DOM element containing this element\n host = null\n // Callback function for when the element is connected to a DOM tree on the page\n #onMount\n _onRender\n #wasMounted = false\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 = {}\n\n // Should only be used on non native custom elements\n #templateContent\n #stylesheet\n #globalStylesheet\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 // Name of events that are bound to the main event handler function\n #boundEventNames = [];\n\n // Main event handler function \n #eventHandler\n // Special case to handle input change events (to make them bubble up from shadow DOM)\n #changeEventHandler\n static observedAttributes = [\"ref\"]\n .concat(SUPPORTED_ATTRIBUTES_FOR_BINDING)\n .concat(Object.keys(COMMAND_ATTRIBUTES).map(command => ('_' + command.toLowerCase())));\n\n\n constructor(template=null, runtimeScript, style, globalStylesheet) {\n super();\n this.isReactiveElement = true;\n this.isSpecialElement = this.tagName === \"CONDITIONAL-ELEMENT\";\n this.isNativeElement = this.hasAttribute(\"is\") && !this.isSpecialElement;\n if (!this.isNativeElement) {\n if (runtimeScript) {\n const dynamicRuntimeFn = new Function(runtimeScript.textContent);\n const runtime = dynamicRuntimeFn();\n this.#setRuntime(runtime);\n }\n // Should already be a DocumentFragment of the template\n if (template) { \n this.#templateContent = template.cloneNode(true);\n }\n else {\n this.#templateContent = DEFAULT_TEMPLATE_DOM.cloneNode();\n }\n\n if (style) {\n const stylesheet = new CSSStyleSheet();\n stylesheet.replaceSync(style);\n this.#stylesheet = stylesheet;\n }\n if (globalStylesheet) {\n this.#globalStylesheet = globalStylesheet;\n }\n // Maps \"ref names\" to actual elements in the component DOM tree,\n // for fast access.\n this.ref = {};\n }\n\n }\n\n #setRuntime(runtime) {\n if (runtime.events) {\n this.#events = runtime.events;\n if (this.isConnected) {\n queueBindEvents(this, ()=> this.#bindEvents());\n }\n }\n if (runtime.state) {\n this.setInitialState(runtime.state);\n // If this is not mounted yet, #setStateFromInitialState will be called from onConnected callback\n if (this.isConnected) this.#setActiveStateFromInitialState();\n }\n\n if (runtime.onMount) {\n this.#onMount = runtime.onMount;\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 }\n\n #setActiveStateFromInitialState() {\n if (!this.initialState) return;\n const initialState = this.initialState;\n if (initialState._stateManager) {\n this.state = initialState._stateManager.state;\n }\n else {\n this.state = new StateManager(initialState, undefined, undefined, false, appScope).state;\n }\n delete this.initialState;\n }\n\n #renderTemplate() {\n if (appScope.SPROUT_CONFIG.useShadow) {\n const shadowRoot = this.attachShadow({ mode: \"open\" });\n this.shadowRoot.adoptedStyleSheets = [];\n if (this.#globalStylesheet) this.shadowRoot.adoptedStyleSheets.push(this.#globalStylesheet);\n if (this.#stylesheet) this.shadowRoot.adoptedStyleSheets.push(this.#stylesheet);\n 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.#changeEventHandler) this.removeEventListener('change', this.#changeEventHandler);\n if (!this.#boundEventNames.length) return;\n const thiselement = this;\n this.#boundEventNames.forEach(eventName=> {\n thiselement.removeEventListener(eventName, this.#eventHandler, false);\n });\n\n }\n #bindEvents() {\n if (!this.#events) return;\n const eventRefNames = Object.keys(this.#events);\n const clickActions = {};\n const otherActions = {};\n eventRefNames.forEach(refName=> {\n const value = this.#events[refName];\n if (typeof value === 'function') {\n clickActions[refName] = value;\n }\n else if (typeof value === 'object') {\n const eventNames = Object.keys(value);\n eventNames.forEach(eventName=> {\n if (eventName === 'click') {\n clickActions[refName] = value[eventName];\n }\n else {\n if (!otherActions[eventName]) otherActions[eventName] = {};\n otherActions[eventName][refName] = value[eventName];\n }\n });\n }\n });\n const globalState = appScope[GLOBAL_STATE_FUNCTION_NAME]();\n this.#eventHandler = function(event, eventsObject) {\n const elementsPath = event.composedPath();\n let target;\n if (elementsPath) {\n target = elementsPath.find(element => element.hasAttribute && element.hasAttribute('ref') && (element.getAttribute('ref') in eventsObject));\n }\n else {\n target = (event.target.hasAttribute && event.target.hasAttribute('ref') && (event.target.getAttribute('ref') in eventsObject)) ? event.target : null;\n }\n if (target) {\n const ref = target.getAttribute('ref');\n eventsObject[ref]?.call(target, event, event.target, globalState);\n }\n }\n\n const thiselement = this;\n if (Object.keys(clickActions).length) {\n thiselement.addEventListener('click', (event)=> {\n this.#eventHandler(event, clickActions);\n }, false);\n this.#boundEventNames.push('click');\n }\n const eventNames = Object.keys(otherActions);\n for (const eventName of eventNames) {\n thiselement.addEventListener(eventName, (event)=> {\n this.#eventHandler(event, otherActions[eventName]);\n }, false);\n }\n this.#boundEventNames.push(...eventNames);\n }\n\n bindAttributeToState(attrName, statePropName) {\n this.#boundAttributesToState[attrName] = statePropName;\n }\n unbindAttributeToState(attrName) {\n delete this.#boundAttributesToState[attrName];\n }\n \n // For input elements\n updateStateFromProperty(propertyName) {\n let newValue = this[propertyName];\n const stateProp = this.#boundAttributesToState[propertyName];\n const [stateValue, theState] = this.getState(stateProp, true);\n if (stateValue !== newValue) theState[stateProp] = newValue;\n\n }\n\n #updateStateFromAttribute(attributeName) {\n let newValue = this.getAttribute(attributeName);\n if (BOOLEAN_ATTRIBUTES.includes(attributeName)) {\n if (newValue === null) newValue = false;\n else newValue = true;\n }\n const stateProp = this.#boundAttributesToState[attributeName];\n const [stateValue, theState] = this.getState(stateProp, true);\n if (stateValue !== newValue) theState[stateProp] = newValue;\n }\n\n resolveTextContentTemplateStringTag(strings, ...attributeNames) {\n return strings.reduce((result, str, i) => {\n const attrName = attributeNames[i] ? attributeNames[i].replaceAll(/\\s/g,'') : false;\n return result + str + (attrName ? this.host?.getAttribute(attrName) : \"\");\n }, \"\");\n }\n // A template string \"tag\" function to use when referencing attribute values in element texts\n #resolveTextContentTemplateString() {\n const resolveTextContentFn = new Function(\n \"return this.resolveTextContentTemplateStringTag`\" + this.textContent + \"`;\"\n ).bind(this);\n return resolveTextContentFn();\n }\n disconnectedCallback() {\n const host = this.host ?? this;\n if (host.ref) {\n const thisRefName = this.getAttribute('ref');\n if (thisRefName) delete host.ref[thisRefName];\n }\n this.#boundAttributesToState = {};\n this.#unbindEvents();\n }\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 this.host = this.getRootNode().host;\n\n if (!this.isNativeElement) {\n // If this is a custom element - normal attributes are used as State Initializers,\n // We should add to initial state from them, before making it \"live\"\n const attributeNames = this.getAttributeNames();\n let attrValue;\n for (const attrName of attributeNames) {\n attrValue = this.getAttribute(attrName);\n if (attrValue.indexOf('@') === 0) {\n this.initialState ??= {};\n this.initialState[attrName] = attributeValueToTypedValue(attrValue.substring(1));\n }\n }\n this.#setActiveStateFromInitialState();\n }\n\n // Keep it here and not in bindEvents! \n if (this?.tagName === \"INPUT\") {\n this.#changeEventHandler = function() {\n const changeEvent = new Event('inputChange', { bubbles: true, composed: true });\n this.dispatchEvent(changeEvent);\n }\n // Change events does not automatically bubbles, we need to listen and bubble up a new event\n this.addEventListener('change', this.#changeEventHandler, false);\n }\n\n if (!this.isNativeElement && !noRender) {\n // We mostly queue as microtask to allow custom slot elements to\n // be attached to the light DOM first.\n this.#renderTemplate();\n }\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 // COMMAND_ATTRIBUTES[command]?.call(this, attrValue);\n }\n } \n\n commands.forEach(({ command, args})=> {\n COMMAND_ATTRIBUTES[command]?.call(this, args);\n });\n\n if (!this.isNativeElement) {\n queueBindEvents(this, ()=> this.#bindEvents());\n if (this.#onMount) queueMicrotask(()=> this.#onMount.call(this, appScope[GLOBAL_STATE_FUNCTION_NAME]()));\n if (this._onRender) this._onRender.call(this);\n }\n else {\n if (this.textContent.indexOf('${') !== -1) {\n this.textContent = this.#resolveTextContentTemplateString();\n }\n }\n this.#wasMounted = true;\n }\n\n attributeChangedCallback(attributeName, oldValue, newValue) { \n if (oldValue === newValue) return;\n if (!this.isConnected) return;\n\n if (attributeName === \"ref\") {\n const host = this.isNativeElement ? this.host : this;\n const refValue = newValue;\n host.ref[refValue] = this;\n }\n\n if (attributeName in this.#boundAttributesToState) {\n this.#updateStateFromAttribute(attributeName);\n }\n \n }\n\n // Gets state value of stateProp,\n // tries to resolve from local state(s) first,\n // and then from global. If the second argument is true, returns both the state value and the state objec\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 thisInstance = this.isNativeElement && this.host ? this.host : this;\n // if (!thisInstance) return returnStateObject ? [undefined, undefined] : undefined;\n let stateVal;\n if (thisInstance && thisInstance.state) {\n stateVal = thisInstance.state?.[stateProp];\n }\n\n let globalState = false;\n while (stateVal === undefined && typeof thisInstance.host !== 'undefined' && thisInstance.host !== null) {\n thisInstance = thisInstance.host;\n stateVal = thisInstance.state?.[stateProp];\n }\n\n if (stateVal !== undefined) theState = thisInstance.state;\n else {\n globalState = appScope[GLOBAL_STATE_FUNCTION_NAME]();\n stateVal = globalState?.[stateProp];\n if (stateVal !== undefined) theState = globalState;\n } \n if (returnStateObject) {\n return [stateVal, theState];\n }\n return stateVal;\n }\n \n findElement(refName) {\n const host = this.isNativeElement ? 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 host.ref.hasOwnProperty(refName) ? host.ref[refName] : root.querySelector(`[ref=\"${refName}\"]`);\n }\n //static get observedAttributes() { return [\"todo-name\"]; }\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 ReactiveElement.prototype.initialSetText = function (stateProp) {\n setStateText.call(this, stateProp);\n }\n ReactiveElement.prototype.initialSetAttribute = function (attributeName, attributeValue) {\n attributeValue = String(attributeValue);\n let valueToSet = attributeValue;\n\n // \"Property Attribute\"\n if (attributeValue.indexOf('@') === 0 && this.host && this.isConnected) {\n valueToSet = this.host.getAttribute(attributeValue.substring(1));\n } \n \n // \"State attribute\"\n if (attributeValue.indexOf('$') === 0 && this.isConnected) {\n let stateProp = attributeValue.substring(1);\n setStateAttribute.call(this, attributeName, stateProp);\n }\n // normal attribute\n else {\n setAttribute.call(this, attributeName, valueToSet);\n }\n }\n\n /*\n if (DEBUG_MODE) {\n const descriptors = Object.getOwnPropertyDescriptors(ReactiveElement.prototype);\n for (const key in descriptors) {\n const descrp = descriptors[key];\n Object.defineProperty(ReactiveElement.prototype, key, {\n writable: descrp.writable,\n configurable: descrp.configurable,\n enumerable: descrp.enumerable,\n value: ()=> {\n `Calling ${key} on ReactiveElement for ${elementClass.toString()}`;\n descrp.value();\n }\n });\n }\n }\n */\n\n return ReactiveElement;\n}\n","import { handleStateChange, populateStateFromInitialState } from \"./state_utils.js\";\nimport { StateHandler } from \"./proxy_handlers.js\";\nimport { GLOBAL_STATE_FUNCTION_NAME } from \"./consts.js\";\nimport { putObjectInDebugMode } from \"./debug_utils.js\";\nimport { DEBUG_MODE } from \"./consts.js\";\nimport { setHiddenProperty } from \"./prop_utils.js\";\n\n// This class actually handles \"State\". It returns a proxied \"state\" object,\n// while handling all state changes and triggers behind the scenes\nclass StateManager {\n\n // The privateState is used to actually contain values to read from,\n // as custom getters and setters are defined\n privateState = {}\n // This represents the \"publicly\" exposed state object\n state = {};\n\n // Saves \"map\" connections between a state array value and a custom element name,\n // this will enable creating/removing new custom elements when items of a state array change\n stateArrayMaps = {};\n // conditionallyRenderingElements = {};\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 = {};\n conditionallyRenderingElements = {};\n\n // Maps state props to state nodes,\n // Keys are state props, and values are sets of Nodes\n stateNodes = {}\n\n // These are used when the state object is part of Stateful Array\n parentStateProp\n parentStateManager\n // parentStatePropName is used if the state object is e.g. an item of an array on a state object,\n // or a value in an object on a state object - any change on the child state object should trigger state\n // changes on the parentStateProp\n // host is the host element that the state is attached to\n constructor(initialState, parentStateProp, parentStateManager, isGlobal = false, appScope=window) {\n this.parentStateProp = parentStateProp;\n this.parentStateManager = parentStateManager;\n\n // Saves the actual state manager instance to a readonly _stateManager\n setHiddenProperty(this.state, \"_stateManager\", this, true);\n \n // Initialize a proxy on the \"public state\"\n this.state = new Proxy(this.state, StateHandler(this.state, appScope));\n if (!isGlobal) setHiddenProperty(this.state, \"_global\", appScope[GLOBAL_STATE_FUNCTION_NAME](), true);\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 = {};\n this.addGlobalStateDependency = (stateProp, depStateProp, stateManager)=> {\n if (!this.globalStateDependencies.hasOwnProperty(stateProp)) {\n this.globalStateDependencies[stateProp] = new Map();\n }\n if (!this.globalStateDependencies[stateProp].has(stateManager)) {\n this.globalStateDependencies[stateProp].set(stateManager, new Set());\n }\n this.globalStateDependencies[stateProp].get(stateManager).add(depStateProp);\n }\n }\n if (initialState) {\n populateStateFromInitialState(this.state, initialState);\n }\n }\n\n addStateDependency(stateProp, depStateProp) {\n if (!this.stateDependencies.hasOwnProperty(stateProp)) {\n this.stateDependencies[stateProp] = new Set();\n }\n this.stateDependencies[stateProp].add(depStateProp);\n }\n\n addStateMap(stateProp, customElementName, parentElement) {\n if (!this.stateArrayMaps.hasOwnProperty(stateProp)) {\n this.stateArrayMaps[stateProp] = [];\n }\n\n this.stateArrayMaps[stateProp].push({\n customElementName,\n parentElement\n });\n }\n\n\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 \n // Node here is either an Attribute Node or a Text Node\n addStateNode(stateProp, stateNode, isBooleanStateProp=false) {\n if (!this.stateNodes.hasOwnProperty(stateProp)) {\n this.stateNodes[stateProp] = new Set();\n this.setAndBindStateProperty(stateProp, isBooleanStateProp);\n }\n this.stateNodes[stateProp].add(stateNode);\n }\n \n\n setAndBindStateProperty(stateProp, isBooleanStateProp=false) {\n let stateObj = this.state;\n if (stateProp.indexOf('!') === 0) {\n const originalStateProp = stateProp.substring(1);\n let descriptor = Object.getOwnPropertyDescriptor(stateObj, originalStateProp);\n if (!descriptor) {\n stateObj = stateObj._global;\n descriptor = Object.getOwnPropertyDescriptor(stateObj, originalStateProp);\n if (!descriptor) {\n throw Error(`Could not bind state prop ${stateProp}. State prop ${originalStateProp} not defined!`);\n }\n }\n // Negate prop: (!something) - add a dependency between the negate prop to the original prop,\n // So anytime the original prop change, things that are dependant on the negate prop will react\n // return stateObj._stateManager.addStateDependency(originalStateProp, stateProp);\n return;\n }\n\n let descriptor = Object.getOwnPropertyDescriptor(stateObj, stateProp);\n if (!descriptor) {\n stateObj = stateObj._global;\n descriptor = Object.getOwnPropertyDescriptor(stateObj, stateProp);\n if (!descriptor) {\n throw Error(`Could not bind state prop ${stateProp}. State prop not defined!`);\n }\n }\n // Some state props can be getters (which usually references other state values)\n // These should be treated differently: should not be saved in privateState, and should not have a setter defined\n const isValueProp = descriptor.hasOwnProperty('value');\n const stateManager = stateObj._stateManager;\n\n if (isValueProp) {\n if (!stateManager.privateState.hasOwnProperty(stateProp)) {\n stateManager.privateState[stateProp] = stateObj[stateProp];\n }\n stateObj._binding = true;\n Object.defineProperty(stateObj, stateProp, {\n set(value) {\n const currentVal = stateManager.privateState[stateProp];\n if (value === currentVal) return;\n // Sets value to \"private state\"\n stateManager.privateState[stateProp] = value;\n\n handleStateChange(stateManager, stateProp);\n // If this is an item in a Stateful Array, also trigger a state change for the state prop that contains the array\n if (stateManager.parentStateManager) {\n handleStateChange(stateManager.parentStateManager, stateManager.parentStateProp);\n }\n },\n get() {\n // Value is always retrieved from the \"private\" state\n return stateManager.privateState[stateProp];\n }\n });\n }\n\n // Boolean state props will also have \"negate props\" available (![stateProp])\n if (isBooleanStateProp && stateProp.indexOf('!') !== 0) {\n const negateStateProp = `!${stateProp}`;\n if (isValueProp) {\n if (!stateManager.privateState.hasOwnProperty(negateStateProp)) {\n Object.defineProperty(stateObj, negateStateProp, {\n get() {\n return !stateManager.privateState[stateProp];\n },\n set() {\n throw Error(\"Cannot directly set a negation State property!\");\n },\n enumerable: true,\n });\n stateManager.addStateDependency(stateProp, negateStateProp);\n }\n }\n else {\n if (!stateManager.state.hasOwnProperty(negateStateProp)) {\n Object.defineProperty(stateObj, negateStateProp, {\n get() {\n return !stateManager.state[stateProp];\n },\n set() {\n throw Error(\"Cannot directly set a negation State property!\");\n },\n enumerable: true,\n });\n stateManager.addStateDependency(stateProp, negateStateProp);\n }\n }\n }\n\n delete this.state._binding;\n }\n} \n\nif (DEBUG_MODE) {\n StateManager = putObjectInDebugMode(StateManager, 'StateManager');\n}\n\nexport default StateManager;\n","import StateManager from \"./StateManager.js\";\nimport { StatefulArrayHandler } from \"./proxy_handlers.js\";\nimport { handleStateChange } from \"./state_utils.js\";\nimport { putObjectInDebugMode } from \"./debug_utils.js\";\nimport { DEBUG_MODE } from \"./consts.js\";\n\nclass StatefulArray extends Array {\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 // If any of these are \"set\" - handle state change in the value\n dependencyProps = new Map();\n\n // We set the $$operation property on functions that manipulates the array in a way that can change its length,\n // to prevent redundant calls for handleStateChange.\n // The call will be made when the \"length\" property of the array will be changed\n splice(...args) {\n this.$$operation = \"splice\";\n const result = super.splice(...args);\n delete this.$$operation;\n return result;\n }\n shift(...args) {\n this.$$operation = \"shift\";\n const result = super.shift(...args);\n delete this.$$operation;\n return result;\n }\n unshift(...args) {\n this.$$operation = \"splice\";\n const result = super.unshift(...args);\n delete this.$$operation;\n return result;\n }\n\n sort(...args) {\n this.$$operation = \"sort\";\n const result = super.sort(...args);\n delete this.$$operation;\n handleStateChange(this.parentStateObject._stateManager, this.arrayStateProp);\n return result;\n }\n\n reverse(...args) {\n this.$$operation = \"reverse\";\n const result = super.reverse(...args);\n delete this.$$operation;\n handleStateChange(this.parentStateObject._stateManager, this.arrayStateProp);\n return result;\n }\n\n fill(...args) {\n this.$$operation = \"fill\";\n const result = super.fill(...args);\n delete this.$$operation;\n handleStateChange(this.parentStateObject._stateManager, this.arrayStateProp);\n return result;\n }\n \n copyWithin(...args) {\n this.$$operation = \"copyWithin\";\n const result = super.sort(...args);\n delete this.$$operation;\n handleStateChange(this.parentStateObject._stateManager, this.arrayStateProp);\n return result;\n }\n\n slice(...args) {\n this.$$operation = \"slice\";\n const result = super.slice(...args);\n delete this.$$operation;\n return result;\n }\n\n /*\n clone() {\n this.$$operation = \"clone\";\n const result = this.map(item=> item);\n delete this.$$operation;\n return result;\n }\n */\n toArray() {\n this.$$operation = \"toArray\";\n /*\n const result = [];\n for (let i = 0, len=this.length; i<len; i++) {\n result.push(Object.assign({}, this[i]));\n }\n */\n const result = this.rawArray;\n delete this.$$operation;\n return result;\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\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, noConvertToStateItems=false, appScope = window) {\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;\n if (!noConvertToStateItems) {\n statefulArray = rawArray.map((item, index)=> {\n if (item?.hasOwnProperty('state')) return item;\n if (Array.isArray(item)) return item; // return new StatefulArray(item, this[index].state, index, false, appScope); \n if (typeof item === 'object') return new StateManager(item, arrayStateProp, parentStateObject._stateManager, false, appScope);\n return item;\n });\n }\n super(...statefulArray);\n\n this.parentStateObject = parentStateObject;\n this.arrayStateProp = arrayStateProp;\n this.rawArray = rawArray;\n\n statefulArray = new Proxy(this, StatefulArrayHandler(parentStateObject?._stateManager, arrayStateProp, appScope));\n return statefulArray;\n }\n}\n\nif (DEBUG_MODE) {\n StatefulArray = putObjectInDebugMode(StatefulArray, \"StatefulArray\");\n}\n\nexport default StatefulArray;","// Convert attribute values to \"typed\" values\nexport function attributeValueToTypedValue(attrValue) {\n let typedValue = attrValue;\n if (attrValue === \"true\" || attrValue === \"false\") typedValue = Boolean(attrValue === \"true\");\n else if (!isNaN(Number(attrValue))) typedValue = Number(attrValue);\n return typedValue; \n}\n\n// Check if attribute node is a \"Command\" or a \"State Attribute\" \nexport function isSpecialAttribute(attrNode) {\n if (typeof attrNode !== \"object\" && attrNode.constructor.name !== \"Attr\") throw Error(\"Passed non Attribute to isSpecialAttribute!\");\n return attrNode.nodeName.indexOf('_') === 0 || attrNode.nodeValue.indexOf('$') === 0;\n}","import { mapStateArrayToElements } from \"./state_utils.js\";\nimport { SUPPORTED_ATTRIBUTES_FOR_BINDING, SUPPORTED_PROPERTIES_FOR_BINDING, SUPPORTED_INPUT_TYPES_FOR_VALUE_BINDING } from \"./consts.js\";\nimport { putObjectInDebugMode } from \"./debug_utils.js\";\nimport { isElementAList } from \"./DOM_utils.js\";\nimport { attributeValueToTypedValue } from \"./attr_utils.js\";\n\nfunction mapStateToElements(stateItemsPropertyName, customElementName, parentElement) {\n const [stateItemsArray, theState] = parentElement.getState(stateItemsPropertyName, true);\n if (!stateItemsArray || !Array.isArray(stateItemsArray)) {\n console.warn (\"state value for _map is not an array, in state property: \" + stateItemsPropertyName);\n return null;\n }\n const wrapInElement = isElementAList(parentElement) ? \"li\" : undefined;\n const elements = mapStateArrayToElements(stateItemsArray, customElementName, wrapInElement);\n parentElement.innerHTML = \"\";\n if (elements.length) {\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 custom element 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 const theState = mapStateToElements(stateItemsPropertyName, customElementName, thiselement);\n if (!theState) {\n console.warn (`Mapping ${stateItemsPropertyName} to ${customElementName} failed!`);\n return;\n }\n theState._stateManager.addStateMap(stateItemsPropertyName, customElementName, thiselement);\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 bind: function(commandValue) {\n const [attributeName, statePropName] = commandValue.split(':');\n if (!attributeName || !statePropName) {\n console.warn (\"Incorrect usage of _bind command! Please pass <attribute-name>:<state-prop-name>\");\n return;\n }\n if (!attributeName in SUPPORTED_ATTRIBUTES_FOR_BINDING) {\n console.warn (`Attribute ${attributeName} is not supported for _bind command!`);\n return;\n }\n this.bindAttributeToState(attributeName, statePropName);\n\n if (SUPPORTED_PROPERTIES_FOR_BINDING.includes(attributeName)) {\n if (attributeName === \"value\" && this.tagName === \"INPUT\" && SUPPORTED_INPUT_TYPES_FOR_VALUE_BINDING.includes(this.getAttribute('type'))) {\n this.addEventListener(\"input\", \n ()=> this.updateStateFromProperty(\"value\")\n );\n }\n else if (attributeName === \"checked\" && this.tagName === \"INPUT\" && this.getAttribute('type') === \"checkbox\") {\n this.addEventListener(\"change\", \n ()=> this.updateStateFromProperty(\"checked\")\n );\n }\n }\n },\n condition: function(commandValue) {\n if (this.tagName !== \"SLOT\") {\n throw Error(\"_condition command can only be used on a slot element!\");\n }\n if (!this.children || !this.children.length) {\n throw Error(\"Conditional rendering slot (a reactive-slot with a _condition command) must have children! For slot: \", this);\n }\n const statePropName = commandValue;\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\n const slotHost = this.host;\n const slotChildren = [...this.children];\n const nodesToAssign = [];\n slotChildren.forEach(slotChildElement=> {\n const _if = slotChildElement.getAttribute('_if');\n if (_if) {\n slotChildElement.host = slotHost;\n slotChildElement.conditionalSlotChild = true;\n const slotChildChildren = slotChildElement.querySelectorAll('*');\n slotChildChildren.forEach((child) => {\n child.host = slotHost;\n });\n const expectedValue = attributeValueToTypedValue(_if);\n if (stateValue === expectedValue) {\n nodesToAssign.push(slotChildElement);\n }\n }\n });\n\n // Slotted elements must be LIGHT DOM\n // (directly connected to the custom element)\n requestAnimationFrame(()=> {\n slotHost.append(...slotChildren);\n if (nodesToAssign.length) {\n this.assign(...nodesToAssign);\n }\n });\n\n stateObject._stateManager.addConditionallyRenderingElements(statePropName, this);\n } \n}","export const BOOLEAN_ATTRIBUTES = [\n 'hidden',\n 'checked'\n]\n\nexport const SUPPORTED_ATTRIBUTES_FOR_BINDING = [\n 'hidden',\n 'value',\n 'checked'\n]\n\n// Some elements like inputs has certain properties that can be used in _bind command, like: 'value', or 'checked\nexport const SUPPORTED_PROPERTIES_FOR_BINDING = [\n 'value',\n 'checked'\n]\nexport const SUPPORTED_INPUT_TYPES_FOR_VALUE_BINDING = [\n null, // If no type is specified - defaults to 'text' - \n // getAttribute('type') returns null\n 'text', \n 'color', \n 'date', \n 'datetime-local', \n 'email', \n 'month', \n 'number', \n 'password',\n 'range',\n 'search',\n 'tel',\n 'time',\n 'url',\n 'week'\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 = [\n '_global',\n '_gettingDependenciesFor',\n '_localStateManager',\n '_stateManager',\n '_binding',\n '_populate'\n]\n\nexport const GLOBAL_STATE_VAR_NAME = \"SproutGlobalState\";\nexport const GLOBAL_STATE_FUNCTION_NAME = \"getGlobalState\";\n\nexport const ERROR_MESSAGES = {\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\n\nexport const HTML_ELEMENTS_CLASSES_MAP = [\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 { 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 { 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 // { class: HTMLSlotElement, element: \"slot\" } Has a different extended class for conditional rendering\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 // Maps events binding functions to (custom) elements\n eventBindingFunctions: new Map(),\n conditionalRenders: 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 // Similar as above but for event bindings\n eventBindRafId: null,\n // Same for conditional renders\n conditionalRenderRafId: null,\n}\n\nexport const CONDITIONAL_OPERATORS = [\n '=',\n '==',\n '!=',\n '!==',\n '<',\n '<=',\n '>',\n '>='\n];\n\nexport const MAX_OPERATIONS_PER_ANIMATION_FRAME = 100;\n","function debugGetProxyHandler(scopeName, originalObject) {\n return {\n get(target, property, receiver) {\n if (typeof property === \"symbol\") return Reflect.get(...arguments);\n console.debug (`Property ${property} called on ${scopeName}`);\n if (property === \"prototype\") {\n // return Object.getPrototypeOf(originalObject.prototype);\n return originalObject.prototype;\n }\n if (typeof target[property] === \"function\") {\n return new Proxy(target[property], debugApplyProxyHandler(property, `${scopeName}.${property}`));\n }\n else if (typeof target[property] === \"object\") {\n if (!target[property].hasOwnProperty(\"_stateManager\")) {\n return new Proxy(target[property], debugGetProxyHandler(`${scopeName}.${property}`));\n }\n }\n return Reflect.get(...arguments);\n }\n }\n}\n\nfunction debugApplyProxyHandler(funcName, scopeName) {\n return {\n construct(target, args, newTarget) {\n console.debug(`Constructing ${funcName}`);\n return Reflect.construct(target, args, newTarget);\n },\n apply(target, thisArg, argumentsList) {\n console.debug(`Function: ${funcName} with arguments: ${argumentsList} called on ${scopeName}`);\n return Reflect.apply(...arguments);\n },\n }\n}\nexport function putObjectInDebugMode(obj, name) {\n return new Proxy(obj, debugGetProxyHandler(name, obj));\n}","import { stateToElement, resolveStateMapToDocumentFragment } from \"./state_utils.js\";\nimport { isElementAList } from \"./DOM_utils.js\";\nimport { queueConditionalRender } from \"./paint_utils.js\";\nimport { NODES_STATE } from \"./consts.js\";\n\n// Also, if doesn't exist - create it\nfunction getNodeActionsForNode(node) {\n const { nodeActionsMap } = NODES_STATE;\n if (!nodeActionsMap.has(node)) nodeActionsMap.set(node, getNewNodeActionsObject());\n const nodeActions = nodeActionsMap.get(node);\n return nodeActions;\n}\n\nexport function setStateNodeAction(node, nodeActionsObject, value) {\n if (node.nodeType === Node.ATTRIBUTE_NODE)\n nodeActionsObject[\"setAttribute\"] = value; \n else if (node.nodeType === Node.TEXT_NODE)\n nodeActionsObject[\"textContent\"] = value;\n}\n\nexport function addRemoveAction(nodeActions, elementToRemove, stateIdentifier) {\n if (!nodeActions.remove.has(stateIdentifier)) {\n nodeActions.remove.set(stateIdentifier, new Set())\n }\n nodeActions.remove.get(stateIdentifier).add(elementToRemove);\n}\nexport function addReplaceAction(nodeActions, oldElement, newElement) {\n nodeActions.replace.set(oldElement, newElement);\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, stateIdentifier) {\n if (!nodeActions.append.has(stateIdentifier)) {\n nodeActions.append.set(stateIdentifier, new Set());\n }\n nodeActions.append.get(stateIdentifier).add(nodeToAppend);\n}\nexport function addStateAttributeToNode(attributeNode, value) {\n const nodeActions = getNodeActionsForNode(attributeNode);\n setStateNodeAction(attributeNode, nodeActions, value);\n}\nexport function addAppendActionToNode(node, nodeToAppend, stateIdentifier) {\n const nodeActions = getNodeActionsForNode(node);\n addAppendAction(nodeActions, nodeToAppend, stateIdentifier);\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() {\n return ({\n // Nodes to append to the end of node's children, \n // keys are state objects, or state props (string) \n // to prevent duplicate pending\n append: new Map(),\n // Replace each key node on Map, with value node\n replace: new Map(),\n // Insert value node after key node in parent node's children\n after: new Map(),\n // Remove these nodes from the DOM\n // keys are state objects, or state props (string) \n // to prevent duplicate pending\n remove: new Map(),\n get hasPendingActions() {\n return (this.append.size || this.replace.size || this.after.size || this.remove.size);\n }\n });\n}\n\n\n// This *updates*/*\"fills\"* the nodeActionsMap!\nexport function generateStateNodeActions(stateManager, stateProp) {\n const { nodeActionsMap } = NODES_STATE;\n const value = stateManager.state[stateProp];\n const stateNodes = stateManager.stateNodes[stateProp];\n const stateMaps = stateManager.stateArrayMaps[stateProp];\n const conditionallyRenderingElements = stateManager.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 handleStateChange, and it won't reach here.\n if (stateNodes) {\n stateNodes.forEach(node=> {\n if (!nodeActionsMap.has(node)) nodeActionsMap.set(node, {});\n const nodeActionsObject = nodeActionsMap.get(node);\n setStateNodeAction(node, nodeActionsObject, value);\n });\n }\n\n if (stateMaps) {\n const stateMapArray = value;\n stateMaps.forEach(({ customElementName, parentElement})=> {\n const stateMapNodeActions = getNewNodeActionsObject();\n let currentStateMapArrayIndex = -1;\n const isParentAList = isElementAList(parentElement);\n // Compares state map arrays to actual DOM elements (by comparing state objects)\n if (parentElement.children.length) {\n Array.prototype.forEach.call(parentElement.children, (childElement, currentIndex)=> {\n let customElement = childElement;\n // State map elements inside Lists are wrapped with a <li>\n if (isParentAList) customElement = childElement.firstElementChild;\n let stateItem = stateMapArray[currentIndex]; \n if (stateItem?.hasOwnProperty('state')) stateItem = stateItem.state;\n if (!stateItem) {\n addRemoveAction(stateMapNodeActions, childElement);\n }\n else if (customElement.state !== stateItem) {\n const replaceWithChild = stateToElement(stateItem, customElementName, isElementAList(parentElement) ? \"li\" : undefined);\n addReplaceAction(stateMapNodeActions, childElement, replaceWithChild);\n }\n currentStateMapArrayIndex = currentIndex;\n });\n }\n\n // If there are more state objects in the stateMapArray - append equivalent child elements \n currentStateMapArrayIndex++;\n for (let i = currentStateMapArrayIndex, len=stateMapArray.length; i<len; i++) {\n const stateItem = stateMapArray[i];\n // New state item === new child element to append\n if (stateItem) {\n // Make sure we don't already have a pending append action for the same state object\n const newChild = stateToElement(stateItem, customElementName, isElementAList(parentElement) ? \"li\" : undefined);\n addAppendAction(stateMapNodeActions, newChild, stateItem);\n }\n }\n\n if (stateMapNodeActions.hasPendingActions) {\n nodeActionsMap.set(parentElement, stateMapNodeActions);\n }\n });\n }\n\n if (conditionallyRenderingElements) {\n // Should be slot element\n conditionallyRenderingElements.forEach(element=> {\n queueConditionalRender(this, ()=> element.render());\n });\n }\n}\n\nfunction resolveNodeActionsMapToDOMActions() {\n const batchActions = [];\n const { nodeActionsMap } = NODES_STATE;\n\n nodeActionsMap.forEach((nodeActions, node)=> {\n console.log (nodeActions);\n // Attribute change\n if (nodeActions.hasOwnProperty(\"setAttribute\")) {\n const value = nodeActions.setAttribute;\n if (typeof value === \"boolean\") {\n if (!node.hasOwnProperty(\"originalOwnerElement\")) {\n console.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 batchActions.push(()=> {\n node.originalOwnerElement.removeAttributeNode(node);\n });\n }\n }\n // state changed to true\n else {\n if (!node.originalOwnerElement.hasAttribute(node.name)) {\n batchActions.push(()=> {\n node.originalOwnerElement.setAttributeNode(node);\n });\n }\n }\n }\n else {\n if (typeof value === \"string\" && node.nodeValue !== value) {\n batchActions.push (()=> node.nodeValue = value);\n }\n }\n }\n\n // Text change\n else if (nodeActions.hasOwnProperty(\"textContent\")) {\n const value = String(nodeActions.textContent);\n if (node.nodeValue === value) return;\n batchActions.push (()=> node.nodeValue = value);\n }\n\n // DOM change\n else {\n nodeActions.replace.forEach((newNode, oldNode)=> {\n batchActions.push(()=> \n //oldNode.replaceWith(newNode));\n node.replaceChild(newNode, oldNode));\n });\n for (const removes of nodeActions.remove.values()) {\n for (const nodeToRemove of removes) {\n if (nodeToRemove.parentNode && nodeToRemove.parentNode === node) {\n batchActions.push(()=> node.removeChild(nodeToRemove));\n }\n }\n }\n for (const appends of nodeActions.append.values()) {\n for (const newChildElement of appends) {\n batchActions.push(()=> node.appendChild(newChildElement));\n }\n }\n }\n });\n return batchActions;\n}\n\n// For debugging purposes\nexport function logNodeActions() {\n const { nodeActionsMap } = NODES_STATE;\n [...nodeActionsMap.entries()]\n .map(([node, actions])=> {\n\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 replaceElements = [...actions.replace.entries()];\n if (replaceElements.length) {\n console.log(\"Append\", replaceElements);\n }\n if (actions.remove.size) {\n console.log (\"Remove\", actions.remove);\n }\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// This function runs on requestAnimationFrame to run pending Node actions\nexport function doUpdateDOM() {\n let { nodeActionsMap } = NODES_STATE;\n if (nodeActionsMap.size) {\n const DOMActions = resolveNodeActionsMapToDOMActions(nodeActionsMap);\n DOMActions.forEach(DOMAction=> DOMAction());\n NODES_STATE.nodeActionsMap = new Map();\n }\n}","import { doUpdateDOM } from \"./node_actions\";\nimport { NODES_STATE, MAX_OPERATIONS_PER_ANIMATION_FRAME } from \"./consts\";\n\nlet { \n paintRafId,\n eventBindingFunctions, \n eventBindRafId, \n conditionalRenderRafId,\n conditionalRenders,\n nodeActionsMap\n} = NODES_STATE; \n\nexport function queueBindEvents(element, bindFunction) {\n eventBindingFunctions.set(element, bindFunction);\n if (eventBindingFunctions.size+1 >= MAX_OPERATIONS_PER_ANIMATION_FRAME) return;\n if (eventBindRafId) cancelAnimationFrame(eventBindRafId);\n eventBindRafId = requestAnimationFrame(()=> {\n eventBindRafId = null;\n eventBindingFunctions.forEach(bindFn=> bindFn());\n eventBindingFunctions = new Map();\n });\n}\nexport function queuePaint() {\n if (nodeActionsMap.size+1 >= MAX_OPERATIONS_PER_ANIMATION_FRAME) return;\n if (paintRafId) cancelAnimationFrame(paintRafId);\n paintRafId = requestAnimationFrame(()=> {\n paintRafId = null;\n doUpdateDOM();\n })\n}\nexport function queueConditionalRender(element, renderFunction) {\n conditionalRenders.set(element, renderFunction);\n if (conditionalRenders.size >= MAX_OPERATIONS_PER_ANIMATION_FRAME) return;\n if (conditionalRenderRafId) cancelAnimationFrame(conditionalRenderRafId);\n conditionalRenderRafId = requestAnimationFrame(()=> {\n conditionalRenderRafId = null;\n conditionalRenders.forEach(renderFn=> renderFn());\n conditionalRenders = new Map();\n })\n}","\n// Sets an internal read-only \"hidden\" property on an object:\nexport function setHiddenProperty(obj, propName, propValue, enumerable=false) {\n Object.defineProperty(obj, propName, {\n value: propValue,\n configurable: false,\n writable: false,\n enumerable,\n });\n}","import StateManager from \"./StateManager.js\";\nimport { handleStateChange } from \"./state_utils.js\";\nimport StatefulArray from \"./StatefulArray.js\";\nimport { BUILT_IN_STATE_PROPS, ERROR_MESSAGES } from \"./consts.js\";\n\nexport const StatefulArrayHandler = function(parentStateManager, arrayStateProp, appScope = window) {\n return {\n set(targetArray, property, value) {\n // Return if the value is the same\n // A change in array length triggers state change in the array state prop\n if (property === \"length\") {\n const setResult = Reflect.set(targetArray, property, value);\n handleStateChange(parentStateManager, arrayStateProp);\n return setResult;\n }\n\n if (targetArray[property] === value) return true;\n\n const index = Number(property);\n if (!isNaN(index)) { // Check if the property is a numeric index\n // If we set it to a new object, convert it to a state object\n if (typeof value === 'object' && (!value.hasOwnProperty('_stateManager') && !value.hasOwnProperty('state'))) {\n value = new StateManager(value, arrayStateProp, parentStateManager, false, 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 (value.hasOwnProperty('_stateManager')) {\n value = value._stateManager;\n }\n // This means the object actions are part of a native array function ('splice' etc.), and that we should NOT\n // mark $$mapAction on values\n if (!targetArray.hasOwnProperty('$$operation')) {\n\n let doStateChangeHandle = false;\n if (index < targetArray.length) {\n doStateChangeHandle = true;\n }\n const setResult = Reflect.set(targetArray, property, value);\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 handleStateChange(parentStateManager, arrayStateProp);\n }\n return setResult;\n }\n }\n return Reflect.set(targetArray, property, value);\n },\n \n get(targetArray, property, receiver) {\n if (typeof property === 'symbol') return Reflect.get(...arguments);\n if (property === 'hasOwnProperty') return Reflect.get(...arguments);\n const index = Number(property);\n if (!isNaN(index)) {\n if (!targetArray[index]) return undefined;\n if (targetArray[index].hasOwnProperty('state')) return targetArray[index].state;\n // Could be another array\n return targetArray[index];\n }\n\n /*\n // If this property is set on the array, it means the get is part of a \"dependency check\"\n if (targetArray.hasOwnProperty(\"_gettingDependenciesFor\")) {\n targetArray.dependencyProps.set(property, targetArray._gettingDependenciesFor);\n delete targetArray._gettingDependenciesFor;\n }\n */\n \n return Reflect.get(...arguments);\n }\n }\n}\n\nexport const StateHandler = function(stateObj, appScope = window) {\n return {\n defineProperty(targetState, stateProp, descriptor) {\n if (BUILT_IN_STATE_PROPS.includes(stateProp) || targetState?._binding) {\n return Reflect.defineProperty(...arguments);\n }\n const origTargetState = targetState;\n const dependencies = new Set();\n // Will be the actual prop name if this is a state hook setter\n let setStateProp;\n targetState = new Proxy(targetState, {\n get(target, property, receiver) {\n if (property === \"_global\") {\n target._global._gettingDependenciesFor = stateProp;\n target._global._localStateManager = target._stateManager;\n\n }\n if (BUILT_IN_STATE_PROPS.includes(property)) {\n return Reflect.get(...arguments);\n }\n if (Array.isArray(target[property])) {\n target[property]._gettingDependenciesFor = stateProp;\n }\n dependencies.add(property);\n return Reflect.get(...arguments);\n }\n });\n if (typeof descriptor?.value !== \"undefined\") {\n const value = descriptor.value;\n // Could already be a StatefulArray (needs to find better way to detect this)\n if (Array.isArray(value)) {\n // Setter Hook\n if (stateProp.indexOf('set_') === 0) {\n const deps = value?.[1];\n if (!deps) throw Error(ERROR_MESSAGES.NO_DEPENDENCIES_ARRAY_IN_SET_HOOK(stateProp));\n // Second item should be an array of dependencies\n value?.[1].forEach(depProp=> {\n dependencies.add(depProp);\n });\n // Third item can be a boolean stating if to run the setter on initialization\n if (value?.[2] === true) {\n setStateProp = stateProp.substring(4);\n const func = value?.[0];\n if (func && typeof func === \"function\") {\n stateObj[setStateProp] = func.call(stateObj);\n }\n }\n else {\n if (value?.[3]) {\n stateObj[setStateProp] = value[3]\n }\n }\n }\n else if (!value?.[0]?._stateManager) {\n descriptor.value = new StatefulArray(descriptor.value, stateObj, stateProp, false, appScope);\n }\n }\n }\n else if (typeof descriptor?.get === \"function\") {\n descriptor.get.call(targetState);\n }\n\n if (dependencies.size) {\n dependencies.forEach(dep=> stateObj._stateManager.addStateDependency(dep, stateProp));\n }\n\n // Don't use \"arguments\" here - they are not linked to argument changes in 'strict'\n const definePropertyResult = Reflect.defineProperty(origTargetState, stateProp, descriptor);\n const stateManager = stateObj._stateManager;\n if (setStateProp) stateProp = setStateProp;\n if (!origTargetState.hasOwnProperty(\"_populate\"))\n handleStateChange(stateManager, stateProp);\n return definePropertyResult;\n },\n get(targetState, property, receiver) {\n if (property === 'hasOwnProperty') return Reflect.get(...arguments);\n // Global state access\n if (!targetState.hasOwnProperty('_global')) {\n if (targetState.hasOwnProperty(\"_gettingDependenciesFor\")) {\n targetState._stateManager.addGlobalStateDependency(property, targetState._gettingDependenciesFor, targetState._localStateManager);\n delete targetState._gettingDependenciesFor;\n delete targetState._localStateManager;\n return Reflect.get(...arguments);\n }\n }\n // property can be a Symbol on rare occasions, then indexOf will be undefined (that's the reason for the question mark)\n // This handles using the negate operator on state properties\n if (typeof property?.indexOf === 'function' && property?.indexOf('!') === 0) {\n const originalProperty = property.substring(1);\n if (targetState.hasOwnProperty(originalProperty)) {\n return !targetState[originalProperty];\n }\n }\n return Reflect.get(...arguments);\n }\n }\n};\n","import { BOOLEAN_ATTRIBUTES, BUILT_IN_STATE_PROPS } from \"./consts.js\";\nimport { generateStateNodeActions } from './node_actions.js';\nimport { setHiddenProperty } from \"./prop_utils.js\";\nimport { queuePaint } from \"./paint_utils.js\";\nimport { NODES_STATE } from \"./consts.js\";\nimport { isElementAList } from \"./DOM_utils.js\";\n\nconst { nodeActionsMap } = NODES_STATE;\n\nif (typeof HTMLElement === 'undefined') {\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}\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\n\nexport const setAttribute = function(attrName, attrValue) {\n if (BOOLEAN_ATTRIBUTES.includes(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, stateProp) {\n let equalityValue = null;\n if (stateProp.indexOf(':') !== -1) {\n if (stateProp.indexOf('is_') === 0) {\n const colonIndex = stateProp.indexOf(':');\n if (colonIndex === -1) {\n throw Error(\"When using conditional equality state attribute, you must include a colon character followed by an equality value!\");\n }\n equalityValue = stateProp.substring(colonIndex+1);\n stateProp = stateProp.substring(3, colonIndex);\n }\n }\n let [stateVal, theState] = this.getState(stateProp, true); \n\n if (stateVal === undefined) {\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 if (equalityValue) {\n const conditionalStateProp = \"is_\"+stateProp+equalityValue;\n const originalStateProp = stateProp;\n Object.defineProperty(theState, conditionalStateProp, {\n get() {\n return this[originalStateProp] === equalityValue\n },\n enumerable: false\n });\n theState._stateManager.addStateDependency(stateProp, conditionalStateProp);\n stateVal = theState[conditionalStateProp];\n stateProp = conditionalStateProp;\n }\n\n const valueToSet = stateVal;\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/*\n Object.defineProperty(stateAttrNode, \"stateValue\", {\n value: valueToSet,\n writeable: true,\n configurable: false,\n enumerable: true\n });\n*/\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 // Adds the attribute to the element\n if (valueToSet !== false) {\n this.setAttributeNode(stateAttrNode);\n }\n\n theState._stateManager.addStateNode(stateProp, stateAttrNode, typeof valueToSet === \"boolean\");\n\n}\nexport const setStateText = function(stateProp) {\n const [stateVal, theState] = this.getState(stateProp, true); \n\n if (stateVal === undefined || stateVal === null) {\n console.warn(`State value for ${stateProp} is undefined or null for _text command`);\n return;\n }\n if (!theState) {\n console.warn (\"No State object with state prop: \" + stateProp);\n return;\n }\n const valueToSet = stateVal;\n const textNode = document.createTextNode(valueToSet);\n setHiddenProperty(textNode, \"isStateAttribute\", true);\n this.appendChild(textNode);\n theState._stateManager.addStateNode(stateProp, textNode);\n}\n\n// Convert a stateObject to a custom element, used in State Map Arrays\nexport function stateToElement(stateObject, elemName, wrapInElement) {\n const customElementInstance = document.createElement(elemName);\n customElementInstance.setInitialState(stateObject);\n let returnElement;\n if (wrapInElement) {\n returnElement = document.createElement(wrapInElement);\n returnElement.appendChild(customElementInstance);\n }\n else {\n returnElement = customElementInstance;\n }\n return returnElement;\n}\n\nexport function mapStateArrayToElements(stateItems, elemName, wrapInElement) {\n // Each state item should be a stateManager\n return stateItems.map(stateItem => {\n if (stateItem.hasOwnProperty('state')) stateItem = stateItem.state;\n if (typeof stateItem !== 'object') {\n console.warn(\"item in State array for _map is not an object: \", stateItem);\n return {};\n }\n return stateToElement(stateItem, elemName, wrapInElement);\n });\n}\n\n// Main function that handles all state changes in a state object\nexport function handleStateChange(stateManager, stateProp) {\n if (BUILT_IN_STATE_PROPS.includes(stateProp)) return;\n // Populate the next Node Actions to perform\n generateStateNodeActions(stateManager, stateProp);\n const state = stateManager.state;\n\n // Run on[stateProp]Change hooks\n if (state.hasOwnProperty(`on_${stateProp}Change`)) {\n if (typeof state[`on_${stateProp}Change`] === \"function\")\n state[`on_${stateProp}Change`].call(state);\n }\n\n const stateDependencies = stateManager.stateDependencies[stateProp];\n if (stateDependencies) {\n stateDependencies.forEach(depStateProp=> {\n // A \"Setter\" hook\n if (depStateProp.indexOf('set_') === 0) {\n const setStateProp = depStateProp.substring(4);\n const func = state[depStateProp][0];\n if (func && typeof func === \"function\") {\n state[setStateProp] = func.call(state);\n return;\n }\n }\n generateStateNodeActions(stateManager, depStateProp);\n if (state.hasOwnProperty(`on${depStateProp}Change`)) {\n if (typeof state[`on${depStateProp}Change`] === \"function\")\n state[`on${depStateProp}Change`].call(state);\n }\n });\n }\n\n // Global state\n if (!state._global) {\n const globalStateDependencies = stateManager.globalStateDependencies[stateProp];\n globalStateDependencies?.forEach((depStateProps, depStateManager)=> {\n const depState = depStateManager.state;\n depStateProps.forEach(depStateProp=> {\n // A \"Setter\" hook\n if (depStateProp.indexOf('set_') === 0) {\n const setStateProp = depStateProp.substring(4);\n const func = state[depStateProp][0];\n if (func && typeof func === \"function\") {\n depState[setStateProp] = func.call(depState);\n return;\n }\n }\n generateStateNodeActions(depStateManager, depStateProp);\n if (state.hasOwnProperty(`on${depStateProp}Change`)) {\n if (typeof state[`on${depStateProp}Change`] === \"function\")\n depState[`on${depStateProp}Change`].call(depState);\n }\n });\n });\n }\n\n if (nodeActionsMap.size) {\n queuePaint();\n }\n}\n\nexport function populateStateFromInitialState(state, initialState) {\n state._populate = true;\n const descriptors = Object.getOwnPropertyDescriptors(initialState);\n let descrp;\n for (let key in descriptors) {\n if (BUILT_IN_STATE_PROPS.includes(key)) {\n delete descriptors[key];\n continue;\n }\n descrp = descriptors[key];\n if (descrp.hasOwnProperty('get') && typeof descrp.get === \"function\") {\n descrp.get.bind(state);\n }\n if (descrp.hasOwnProperty('value')) {\n const value = descrp.value;\n if (typeof value === \"function\") {\n descrp.value.bind(state);\n }\n else if (Array.isArray(value) && key.indexOf(\"set_\") === 0) {\n const func = value?.[0];\n if (func && typeof func === \"function\") {\n func.bind(state);\n }\n }\n }\n \n }\n\n // If state set hooks should run on initialization - \n // they should run by the proxy handler for \"defineProperty\"\n Object.defineProperties(state, descriptors);\n delete state._populate;\n}\n\n/* Experimental rendering of state maps using DocumentFragment. Not stable */\n/* \nexport function resolveStateMapToDocumentFragment({ customElementName, parentElement}, stateMapArray) {\n const resolvedDocumentFragment = new DocumentFragment();\n // const stateMapNodeActions = getNewNodeActionsObject();\n let currentStateMapArrayIndex = -1;\n const isParentAList = isElementAList(parentElement);\n // Compares state map arrays to actual DOM elements (by comparing state objects)\n if (parentElement.children.length) {\n Array.prototype.forEach.call(parentElement.children, (childElement, currentIndex)=> {\n let customElementChild = childElement;\n // State map elements inside Lists are wrapped with a <li>\n if (isParentAList) customElementChild = childElement.firstElementChild;\n let stateItem = stateMapArray[currentIndex]; \n if (stateItem?.hasOwnProperty('state')) stateItem = stateItem.state;\n if (stateItem && customElementChild.state !== stateItem) {\n const newCustomElementChild = stateToElement(stateItem, customElementName, isElementAList(parentElement) ? \"li\" : undefined);\n resolvedDocumentFragment.appendChild(newCustomElementChild);\n }\n else {\n resolvedDocumentFragment.append(childElement)\n }\n currentStateMapArrayIndex = currentIndex;\n });\n }\n\n // If there are more state objects in the stateMapArray - append equivalent child elements \n currentStateMapArrayIndex++;\n for (let i = currentStateMapArrayIndex, len=stateMapArray.length; i<len; i++) {\n const stateItem = stateMapArray[i];\n // New state item === new child element to append\n if (stateItem) {\n // Make sure we don't already have a pending append action for the same state object\n const newChild = stateToElement(stateItem, customElementName, isElementAList(parentElement) ? \"li\" : undefined);\n resolvedDocumentFragment.appendChild(newChild);\n }\n }\n\n return resolvedDocumentFragment;\n if (resolvedDocumentFragment.children.length) {\n parentElement.innerHTML = '';\n //addReplaceAction(stateMapNodeActions, childElement, replaceWithChild);\n //nodeActionsMap.set(parentElement, stateMapNodeActions);\n } \n}\n*/\n\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { extendElementClassWithReactiveElementClass } from \"./ReactiveElement.js\";\nimport StateManager from \"./StateManager.js\";\nimport { GLOBAL_STATE_VAR_NAME, GLOBAL_STATE_FUNCTION_NAME, HTML_ELEMENTS_CLASSES_MAP } from \"./consts.js\";\nimport SproutBuild from '../build/index.js';\nimport { putObjectInDebugMode } from \"./debug_utils.js\";\nimport { DEBUG_MODE } from \"./consts.js\";\nimport { setHiddenProperty } from \"./prop_utils.js\";\nimport { getConditionalElementClass } from \"./ConditionalElement.js\";\n\nconst allowAppScopeAccess = document.currentScript.hasAttribute(\"allowappscopeaccess\");\n\nglobalThis.SproutInitApp = function(appName) {\n \n let appScope = (function() { return { window, document: window?.document }})(window);\n\n const config = {\n useShadow: true, // Always use shadow DOM for now, may add configurability later\n allowAppScopeAccess: allowAppScopeAccess\n }\n\n if (config.allowAppScopeAccess) {\n Object.defineProperty(globalThis, \"sproutApps\", {\n value: {},\n writable: false\n });\n Object.defineProperty(globalThis.sproutApps, appName, {\n value: appScope,\n writable: false\n });\n \n }\n\n appScope.SPROUT_CONFIG = Object.seal(config);\n\n // Prevent \"hasOwnProperty\" shenanigans\n const hasOwnProperty = Object.prototype.hasOwnProperty;\n setHiddenProperty(Object.prototype, \"hasOwnProperty\", hasOwnProperty);\n\n appScope[GLOBAL_STATE_FUNCTION_NAME] = function() {\n return {};\n }\n // If initialState is passed - also sets it to global state\n appScope.setGlobalState = function(initialState = {}) {\n const globalState = new StateManager(initialState, undefined, undefined, true, appScope).state;\n const globalStateVarName = GLOBAL_STATE_VAR_NAME;\n Object.defineProperty(appScope, globalStateVarName, {\n value: globalState,\n writable: DEBUG_MODE ? true : false,\n configurable: false\n });\n Object.defineProperty(appScope, GLOBAL_STATE_FUNCTION_NAME, {\n value: function() {\n return appScope[globalStateVarName];\n },\n });\n };\n\n\n appScope.ReactiveElement = extendElementClassWithReactiveElementClass(HTMLElement, appScope);\n\n // Extend specific HTMLElement classes to enable reactivity (use it by adding an \"is\" attribute to an element)\n HTML_ELEMENTS_CLASSES_MAP.forEach(itemDefinition => \n customElements.define(\n `reactive-${itemDefinition.element}`, \n extendElementClassWithReactiveElementClass(itemDefinition.class, appScope, true),\n { extends: itemDefinition.element })\n \n );\n\n const ReactiveConditionalElementClass = extendElementClassWithReactiveElementClass(HTMLElement, appScope, true);\n const ConditionalElementClass = getConditionalElementClass(ReactiveConditionalElementClass); \n customElements.define('conditional-render', ConditionalElementClass);\n\n return function() {\n SproutBuild(appScope, appName);\n }.bind(appScope);\n}\n\n\n\n"],"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","_defineProperties","_toPropertyKey","key","_createClass","_toPrimitive","toPrimitive","String","Number","_classCallCheck","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","apply","_assertThisInitialized","ReferenceError","Boolean","valueOf","bind","_inherits","_setPrototypeOf","asyncGeneratorStep","_asyncToGenerator","arguments","_next","_throw","appScope","appName","defineElementFromTemplate","_x","_x2","_x3","_defineElementFromTemplate","_callee","template","elemName","globalStylesheet","templateContent","style","runtime","_callee$","_context","document","importNode","content","querySelector","removeChild","customElements","_appScope$ReactiveEle","_class","textContent","ReactiveElement","build","globalStyle","concat","CSSStyleSheet","replaceSync","Array","querySelectorAll","getAttribute","globalThis","globalRuntimeFunction","attributeValueToTypedValue","CONDITIONAL_OPERATORS","queueConditionalRender","resolveConditional","conditional","conditionStateValue","typeOf","includes","conditionFn","Function","getConditionalElementClass","ReactiveElementClass","_conditionStateProp","WeakMap","_renderMap","_wasMounted","ConditionalElement","_ReactiveElementClass","_this","_len","args","_key","_classPrivateFieldInitSpec","render","_this2","isFirstRender","undefined","stateValue","_classPrivateFieldGet","indexOf","host","substring","getState","elementsToRender","elements","_toConsumableArray","innerHTML","append","connectedCallback","getRootNode","conditionAttributeValue","children","statePropName","_classPrivateFieldSet","isConditionStatic","stateObject","_this$getState","_this$getState2","_slicedToArray","renderMap","Map","set","conditionalChild","_if","expectedValue","has","get","_stateManager","addConditionallyRenderingElements","isElementAList","element","tagName","COMMANDS","COMMAND_ATTRIBUTES","BOOLEAN_ATTRIBUTES","SUPPORTED_ATTRIBUTES_FOR_BINDING","GLOBAL_STATE_FUNCTION_NAME","DEFAULT_TEMPLATE_DOM","setAttribute","setStateAttribute","setStateText","StateManager","putObjectInDebugMode","DEBUG_MODE","queueBindEvents","extendElementClassWithReactiveElementClass","elementClass","window","noRender","_onMount","_boundAttributesToState","_templateContent","_stylesheet","_globalStylesheet","_events","_boundEventNames","_eventHandler","_changeEventHandler","_ReactiveElement_brand","WeakSet","_elementClass","runtimeScript","_classPrivateMethodInitSpec","_defineProperty","isReactiveElement","isSpecialElement","isNativeElement","hasAttribute","dynamicRuntimeFn","_assertClassBrand","_setRuntime","cloneNode","stylesheet","ref","setInitialState","initState","initialState","assign","bindAttributeToState","attrName","unbindAttributeToState","updateStateFromProperty","propertyName","newValue","stateProp","theState","resolveTextContentTemplateStringTag","strings","attributeNames","reduce","result","str","_this2$host","replaceAll","disconnectedCallback","_this$host","thisRefName","_unbindEvents","_this3","getAttributeNames","attrValue","_iterator","_createForOfIteratorHelper","_step","_this$initialState","err","_setActiveStateFromInitialState","changeEvent","Event","bubbles","composed","dispatchEvent","addEventListener","_renderTemplate","commands","_iterator2","_step2","initialSetAttribute","command","_ref","_COMMAND_ATTRIBUTES$c","_bindEvents","queueMicrotask","_onRender","_resolveTextContentTemplateString","attributeChangedCallback","attributeName","oldValue","isConnected","refValue","_updateStateFromAttribute","returnStateObject","thisInstance","stateVal","state","_thisInstance$state","globalState","_thisInstance$state2","_globalState","findElement","refName","root","SPROUT_CONFIG","useShadow","shadowRoot","_this4","events","onMount","attachShadow","mode","adoptedStyleSheets","appendChild","fragment","DocumentFragment","_this5","removeEventListener","thiselement","eventName","_this6","_classPrivateFieldGet2","eventRefNames","clickActions","otherActions","eventNames","event","eventsObject","elementsPath","composedPath","target","find","_eventsObject$ref","_loop","_eventNames2","_i","_this$getState3","_this$getState4","resolveTextContentFn","map","toLowerCase","initialSetText","attributeValue","valueToSet","handleStateChange","populateStateFromInitialState","StateHandler","setHiddenProperty","parentStateProp","parentStateManager","isGlobal","Proxy","globalStateDependencies","addGlobalStateDependency","depStateProp","stateManager","Set","add","addStateDependency","stateDependencies","addStateMap","customElementName","parentElement","stateArrayMaps","_element$host","conditionallyRenderingElements","originalParentElement","addStateNode","stateNode","isBooleanStateProp","stateNodes","setAndBindStateProperty","stateObj","originalStateProp","descriptor","getOwnPropertyDescriptor","_global","isValueProp","privateState","_binding","currentVal","negateStateProp","StatefulArrayHandler","StatefulArray","_Array","initialArray","parentStateObject","arrayStateProp","noConvertToStateItems","isArray","rawArray","statefulArray","item","index","splice","_get2","$$operation","_get","shift","_get3","_len2","_key2","unshift","_get4","_len3","_key3","sort","_get5","_len4","_key4","_get6","_len5","_key5","fill","_get7","_len6","_key6","copyWithin","_get8","_len7","_key7","_get9","_len8","_key8","toArray","species","_wrapNativeSuper","typedValue","isSpecialAttribute","attrNode","nodeName","nodeValue","mapStateArrayToElements","SUPPORTED_PROPERTIES_FOR_BINDING","SUPPORTED_INPUT_TYPES_FOR_VALUE_BINDING","mapStateToElements","stateItemsPropertyName","_parentElement$getSta","_parentElement$getSta2","stateItemsArray","console","warn","wrapInElement","commandValue","_commandValue$split","split","_commandValue$split2","text","_commandValue$split3","_commandValue$split4","condition","slotHost","slotChildren","nodesToAssign","slotChildElement","conditionalSlotChild","slotChildChildren","child","requestAnimationFrame","BUILT_IN_STATE_PROPS","GLOBAL_STATE_VAR_NAME","ERROR_MESSAGES","NO_DEPENDENCIES_ARRAY_IN_SET_HOOK","HTML_ELEMENTS_CLASSES_MAP","HTMLAnchorElement","HTMLAreaElement","HTMLAudioElement","HTMLBaseElement","HTMLBodyElement","HTMLBRElement","HTMLButtonElement","HTMLCanvasElement","HTMLDataElement","HTMLDataListElement","HTMLDetailsElement","HTMLDialogElement","HTMLDivElement","HTMLDListElement","HTMLEmbedElement","HTMLFieldSetElement","HTMLFormElement","HTMLHeadingElement","HTMLHRElement","HTMLHtmlElement","HTMLIFrameElement","HTMLImageElement","HTMLInputElement","HTMLLabelElement","HTMLLegendElement","HTMLLIElement","HTMLLinkElement","HTMLMapElement","HTMLMetaElement","HTMLMeterElement","HTMLObjectElement","HTMLOListElement","HTMLOptGroupElement","HTMLOptionElement","HTMLOutputElement","HTMLParagraphElement","HTMLParamElement","HTMLPictureElement","HTMLPreElement","HTMLProgressElement","HTMLQuoteElement","HTMLScriptElement","HTMLSelectElement","HTMLSourceElement","HTMLSpanElement","HTMLStyleElement","HTMLTableElement","HTMLTableCellElement","HTMLTableRowElement","HTMLTableSectionElement","HTMLTextAreaElement","HTMLTimeElement","HTMLTitleElement","HTMLTrackElement","HTMLUListElement","HTMLVideoElement","HTMLSlotElement","_HTMLElement","HTMLElement","createElement","NODES_STATE","nodeActionsMap","eventBindingFunctions","conditionalRenders","paintRafId","eventBindRafId","conditionalRenderRafId","MAX_OPERATIONS_PER_ANIMATION_FRAME","debugGetProxyHandler","scopeName","originalObject","property","receiver","debug","debugApplyProxyHandler","funcName","newTarget","thisArg","argumentsList","obj","stateToElement","resolveStateMapToDocumentFragment","getNodeActionsForNode","node","getNewNodeActionsObject","nodeActions","setStateNodeAction","nodeActionsObject","nodeType","Node","ATTRIBUTE_NODE","TEXT_NODE","addRemoveAction","elementToRemove","stateIdentifier","remove","addReplaceAction","oldElement","newElement","replace","addAppendAction","nodeToAppend","addStateAttributeToNode","attributeNode","addAppendActionToNode","after","hasPendingActions","size","generateStateNodeActions","stateMaps","stateMapArray","stateMapNodeActions","currentStateMapArrayIndex","isParentAList","childElement","currentIndex","_stateItem","customElement","firstElementChild","stateItem","replaceWithChild","len","newChild","resolveNodeActionsMapToDOMActions","batchActions","log","error","originalOwnerElement","removeAttributeNode","setAttributeNode","newNode","oldNode","replaceChild","removes","_iterator3","_step3","nodeToRemove","parentNode","appends","_iterator4","_step4","_loop2","newChildElement","logNodeActions","entries","_ref2","_ref3","actions","ELEMENT_NODE","appendElements","replaceElements","doUpdateDOM","DOMActions","DOMAction","bindFunction","cancelAnimationFrame","bindFn","queuePaint","renderFunction","renderFn","propName","propValue","targetArray","setResult","doStateChangeHandle","targetState","_targetState","origTargetState","dependencies","setStateProp","_gettingDependenciesFor","_localStateManager","_value$","deps","depProp","func","dep","definePropertyResult","originalProperty","removeAttribute","elementSetAttribute","equalityValue","colonIndex","conditionalStateProp","stateAttrNode","createAttribute","textNode","createTextNode","customElementInstance","returnElement","stateItems","depStateProps","depStateManager","depState","_populate","descriptors","getOwnPropertyDescriptors","descrp","defineProperties","SproutBuild","allowAppScopeAccess","currentScript","SproutInitApp","_window","config","sproutApps","seal","setGlobalState","globalStateVarName","itemDefinition","ReactiveConditionalElementClass","ConditionalElementClass"],"sourceRoot":""}