@kaskad/core 0.0.6 → 0.0.8

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":"kaskad-core.mjs","sources":["../../../../libs/core/src/lib/util/template-loading-tracker.ts","../../../../libs/core/src/lib/lowering/lower-formula-ast-node.ts","../../../../libs/core/src/lib/lowering/lower-formula.ts","../../../../libs/core/src/lib/bindings/bind-array.ts","../../../../libs/core/src/lib/bindings/bind-mirror.ts","../../../../libs/core/src/lib/bindings/bind-object.ts","../../../../libs/core/src/lib/bindings/bind-selection.ts","../../../../libs/core/src/lib/bindings/add-binding.ts","../../../../libs/core/src/lib/constants.ts","../../../../libs/core/src/lib/lowering/lower-node-schema.ts","../../../../libs/core/src/lib/lowering/lower-computation-schema.ts","../../../../libs/core/src/lib/reactivity/computation/activate-for.ts","../../../../libs/core/src/lib/reactivity/structure/activate-array.ts","../../../../libs/core/src/lib/hooker.ts","../../../../libs/core/src/lib/reactivity/structure/activate-component.ts","../../../../libs/core/src/lib/reactivity/structure/activate-map.ts","../../../../libs/core/src/lib/reactivity/structure/activate-object.ts","../../../../libs/core/src/lib/reactivity/structure/activate-shape.ts","../../../../libs/core/src/lib/reactivity/structure/activate-variant-shape.ts","../../../../libs/core/src/lib/reactivity/activate-structure.ts","../../../../libs/core/src/lib/reactivity/computation/activate-formula.ts","../../../../libs/core/src/lib/reactivity/computation/activate-template.ts","../../../../libs/core/src/lib/reactivity/activate-computation.ts","../../../../libs/core/src/lib/reactivity/activate-node.ts","../../../../libs/core/src/lib/common/commands/append-array-item.ts","../../../../libs/core/src/lib/common/commands/collect-values-array.ts","../../../../libs/core/src/lib/common/commands/collect-values-map.ts","../../../../libs/core/src/lib/common/commands/delay.ts","../../../../libs/core/src/lib/common/commands/get.ts","../../../../libs/core/src/lib/common/commands/remove-array-item.ts","../../../../libs/core/src/lib/common/commands/run.ts","../../../../libs/core/src/lib/common/commands/run-component-method.ts","../../../../libs/core/src/lib/common/commands/set.ts","../../../../libs/core/src/lib/common/commands/index.ts","../../../../libs/core/src/lib/common/functions/and.ts","../../../../libs/core/src/lib/common/functions/array-pluck.ts","../../../../libs/core/src/lib/common/functions/at.ts","../../../../libs/core/src/lib/common/functions/bool.ts","../../../../libs/core/src/lib/common/functions/ceil.ts","../../../../libs/core/src/lib/common/functions/collect-values-array.ts","../../../../libs/core/src/lib/common/functions/collect-values-map.ts","../../../../libs/core/src/lib/common/functions/concat.ts","../../../../libs/core/src/lib/common/functions/delay.ts","../../../../libs/core/src/lib/common/functions/divide.ts","../../../../libs/core/src/lib/common/functions/empty.ts","../../../../libs/core/src/lib/common/functions/empty-object.ts","../../../../libs/core/src/lib/common/functions/eq.ts","../../../../libs/core/src/lib/common/functions/equal.ts","../../../../libs/core/src/lib/common/functions/evaluating.ts","../../../../libs/core/src/lib/common/functions/every.ts","../../../../libs/core/src/lib/common/functions/failed.ts","../../../../libs/core/src/lib/common/functions/filter-in.ts","../../../../libs/core/src/lib/common/functions/find-all-by.ts","../../../../libs/core/src/lib/common/functions/find-by.ts","../../../../libs/core/src/lib/common/functions/flatten.ts","../../../../libs/core/src/lib/common/functions/floor.ts","../../../../libs/core/src/lib/common/functions/get.ts","../../../../libs/core/src/lib/common/functions/gt.ts","../../../../libs/core/src/lib/common/functions/gte.ts","../../../../libs/core/src/lib/common/functions/id.ts","../../../../libs/core/src/lib/common/functions/if.ts","../../../../libs/core/src/lib/common/functions/in.ts","../../../../libs/core/src/lib/common/functions/json.ts","../../../../libs/core/src/lib/common/functions/keys.ts","../../../../libs/core/src/lib/common/functions/length.ts","../../../../libs/core/src/lib/common/functions/lt.ts","../../../../libs/core/src/lib/common/functions/lte.ts","../../../../libs/core/src/lib/common/functions/minus.ts","../../../../libs/core/src/lib/common/functions/multiply.ts","../../../../libs/core/src/lib/common/functions/neq.ts","../../../../libs/core/src/lib/common/functions/not.ts","../../../../libs/core/src/lib/common/functions/number.ts","../../../../libs/core/src/lib/common/functions/object.ts","../../../../libs/core/src/lib/common/functions/or.ts","../../../../libs/core/src/lib/common/functions/pluck.ts","../../../../libs/core/src/lib/common/functions/plus.ts","../../../../libs/core/src/lib/common/functions/repeat.ts","../../../../libs/core/src/lib/common/functions/round.ts","../../../../libs/core/src/lib/common/functions/running.ts","../../../../libs/core/src/lib/common/functions/slice.ts","../../../../libs/core/src/lib/common/functions/some.ts","../../../../libs/core/src/lib/common/functions/string.ts","../../../../libs/core/src/lib/common/functions/switch.ts","../../../../libs/core/src/lib/common/functions/to-lower-case.ts","../../../../libs/core/src/lib/common/functions/to-upper-case.ts","../../../../libs/core/src/lib/common/functions/index.ts","../../../../libs/core/src/lib/common/register.ts","../../../../libs/core/src/lib/run-command.ts","../../../../libs/core/src/lib/modules/common/components/definitions.ts","../../../../libs/core/src/lib/modules/common/register.ts","../../../../libs/core/src/lib/modules/browser/components/definitions.ts","../../../../libs/core/src/lib/modules/browser/register.ts","../../../../libs/core/src/lib/modules/forms/components/definitions.ts","../../../../libs/core/src/lib/modules/forms/validator-registry.ts","../../../../libs/core/src/lib/modules/forms/functions/validate.ts","../../../../libs/core/src/lib/modules/forms/functions/index.ts","../../../../libs/core/src/lib/modules/forms/validators/email.ts","../../../../libs/core/src/lib/modules/forms/validators/equals.ts","../../../../libs/core/src/lib/modules/forms/validators/max-length.ts","../../../../libs/core/src/lib/modules/forms/validators/min.ts","../../../../libs/core/src/lib/modules/forms/validators/min-length.ts","../../../../libs/core/src/lib/modules/forms/validators/required.ts","../../../../libs/core/src/lib/modules/forms/validators/index.ts","../../../../libs/core/src/lib/modules/forms/register.ts","../../../../libs/core/src/lib/init.ts","../../../../libs/core/src/kaskad-core.ts"],"sourcesContent":["class TemplateLoadingTracker {\n private pendingLoads = new Set<string>();\n private completionPromise: Promise<void> | null = null;\n private resolveCompletion: (() => void) | null = null;\n\n get allLoadsComplete(): Promise<void> {\n if (!this.completionPromise) {\n return Promise.resolve();\n }\n return this.completionPromise;\n }\n\n startLoading(templateKey: string): void {\n this.pendingLoads.add(templateKey);\n\n if (!this.completionPromise) {\n this.completionPromise = new Promise((resolve) => {\n this.resolveCompletion = resolve;\n });\n }\n }\n\n finishLoading(templateKey: string): void {\n // Only process if this load was actually being tracked\n if (!this.pendingLoads.has(templateKey)) {\n return;\n }\n\n this.pendingLoads.delete(templateKey);\n\n if (this.pendingLoads.size === 0) {\n this.resolveCompletion?.();\n this.completionPromise = null;\n this.resolveCompletion = null;\n }\n }\n}\n\n// Export a singleton instance for tracking template loading operations\nexport const templateLoadingTracker = new TemplateLoadingTracker();\n","import { EvalNode } from '@kaskad/eval-tree';\nimport {\n ArrayAstNode,\n FormulaAstNode,\n FunctionAstNode,\n GroupAstNode,\n IdentifierAstNode,\n NotAstNode,\n ObjectAstNode,\n OperatorAstNode,\n ReferenceAstNode,\n TernaryAstNode,\n ValueAstNode,\n} from '@kaskad/formula-parser';\n\nconst lowerValue = (astNode: ValueAstNode): EvalNode => ({\n type: 'value',\n value: astNode.value,\n});\n\nconst lowerReference = (astNode: ReferenceAstNode): EvalNode => ({\n type: 'function',\n name: 'get',\n args: [\n {\n type: 'value',\n value: astNode.name,\n },\n ],\n});\n\nconst lowerIdentifier = (astNode: IdentifierAstNode): EvalNode => ({\n type: 'value',\n value: astNode.name,\n});\n\nconst lowerArray = (astNode: ArrayAstNode): EvalNode => ({\n type: 'array',\n items: astNode.items.map(lowerFormulaAstNode),\n});\n\nconst lowerObject = (astNode: ObjectAstNode): EvalNode => ({\n type: 'object',\n properties: astNode.properties.map(({ key, value }) => ({\n key: lowerFormulaAstNode(key),\n value: lowerFormulaAstNode(value),\n })),\n});\n\nconst lowerFunction = (astNode: FunctionAstNode): EvalNode => ({\n type: 'function',\n name: astNode.name,\n args: astNode.args.map(lowerFormulaAstNode),\n});\n\nconst lowerNot = (astNode: NotAstNode): EvalNode => {\n if (!astNode.operand) {\n throw new Error('Invert node must have an item');\n }\n return {\n type: 'function',\n name: 'not',\n args: [lowerFormulaAstNode(astNode.operand)],\n };\n};\n\nconst lowerGroup = (astNode: GroupAstNode): EvalNode => lowerFormulaAstNode(astNode.item);\n\nconst lowerTernary = (astNode: TernaryAstNode): EvalNode => {\n if (!astNode.thenBranch || !astNode.elseBranch) {\n throw new Error('Ternary expression must have both then and else branches');\n }\n return {\n type: 'function',\n name: 'if',\n args: [\n lowerFormulaAstNode(astNode.condition),\n lowerFormulaAstNode(astNode.thenBranch),\n lowerFormulaAstNode(astNode.elseBranch),\n ],\n };\n};\n\nconst lowerBinaryOperation = (astNode: OperatorAstNode): EvalNode => {\n if (!astNode.right) {\n throw new Error(`Binary operation \"${astNode.type}\" must have a right operand`);\n }\n return {\n type: 'function',\n name: astNode.type,\n args: [lowerFormulaAstNode(astNode.left), lowerFormulaAstNode(astNode.right)],\n };\n};\n\nconst astNodeLowerers: Record<string, (astNode: FormulaAstNode) => EvalNode> = {\n value: (astNode) => lowerValue(astNode as ValueAstNode),\n reference: (astNode) => lowerReference(astNode as ReferenceAstNode),\n identifier: (astNode) => lowerIdentifier(astNode as IdentifierAstNode),\n array: (astNode) => lowerArray(astNode as ArrayAstNode),\n object: (astNode) => lowerObject(astNode as ObjectAstNode),\n function: (astNode) => lowerFunction(astNode as FunctionAstNode),\n not: (astNode) => lowerNot(astNode as NotAstNode),\n multiply: (astNode) => lowerBinaryOperation(astNode as OperatorAstNode),\n divide: (astNode) => lowerBinaryOperation(astNode as OperatorAstNode),\n plus: (astNode) => lowerBinaryOperation(astNode as OperatorAstNode),\n minus: (astNode) => lowerBinaryOperation(astNode as OperatorAstNode),\n eq: (astNode) => lowerBinaryOperation(astNode as OperatorAstNode),\n neq: (astNode) => lowerBinaryOperation(astNode as OperatorAstNode),\n gt: (astNode) => lowerBinaryOperation(astNode as OperatorAstNode),\n lt: (astNode) => lowerBinaryOperation(astNode as OperatorAstNode),\n gte: (astNode) => lowerBinaryOperation(astNode as OperatorAstNode),\n lte: (astNode) => lowerBinaryOperation(astNode as OperatorAstNode),\n group: (astNode) => lowerGroup(astNode as GroupAstNode),\n ternary: (astNode) => lowerTernary(astNode as TernaryAstNode),\n};\n\nexport function lowerFormulaAstNode(astNode: FormulaAstNode): EvalNode {\n const lowerer = astNodeLowerers[astNode.type];\n if (lowerer) {\n return lowerer(astNode);\n }\n\n throw new Error(`Unsupported Formula AST node type: ${astNode.type}`);\n}\n","import { log } from '@kaskad/config';\nimport { EvalNode } from '@kaskad/eval-tree';\nimport { FormulaAstNode, parseFormula } from '@kaskad/formula-parser';\n\nimport { lowerFormulaAstNode } from './lower-formula-ast-node';\n\nexport function lowerFormula(formula: string): EvalNode {\n let formulaAst: FormulaAstNode;\n try {\n formulaAst = parseFormula(formula);\n } catch (e) {\n log.trace(e);\n return { type: 'value', value: null };\n }\n\n return lowerFormulaAstNode(formulaAst);\n}\n","import { AbstractNode, ComponentStore, ComponentTreeApi, TComponent } from '@kaskad/component-tree';\nimport { EvalState, evaluateNode } from '@kaskad/eval-tree';\nimport { ArrayValueType, ComponentId, ValueType } from '@kaskad/types';\nimport { comparer, reaction, runInAction } from 'mobx';\n\nimport { lowerFormula } from '../lowering/lower-formula';\n\nexport function bindArray(\n node: AbstractNode<ValueType>,\n component: TComponent,\n cfg: {\n componentSelector: string;\n valueProp: string;\n valueType: ValueType;\n },\n) {\n const { componentSelector, valueProp } = cfg;\n\n const evalNode = lowerFormula(`propArray('${componentSelector}', '${valueProp}')`);\n if (!node.position.componentId) {\n throw new Error('Node does not have a component context');\n }\n const { computed, disposers } = evaluateNode<EvalState<unknown[]>>(evalNode, {\n componentId: node.position.componentId,\n });\n node.disposers.push(...disposers);\n\n const disposer = reaction<[unknown[] | null, ComponentId[], EvalState<unknown[]>], boolean>(\n () => [\n (node as AbstractNode<ArrayValueType>).extractedValue,\n ComponentTreeApi.findComponentsIds(component.id, componentSelector),\n computed.get(),\n ],\n ([value, componentsIds, evalState], prev) => {\n let newValue: unknown[];\n if (!prev) {\n // first run\n if (value && value.length > 0) {\n newValue = [...value];\n } else {\n newValue = evalState.value;\n }\n } else {\n if (!comparer.structural(value, prev[0])) {\n // console.log('100', JSON.stringify(value), JSON.stringify(prev[0]));\n newValue = value ? [...value] : [];\n } else {\n // console.log('200');\n newValue = [...evalState.value];\n if (value && evalState.value.length > prev[2].value.length) {\n newValue = [...value];\n }\n }\n }\n\n // console.log(JSON.stringify(newValue));\n\n const components = componentsIds.map((id) => ComponentStore.getInstance().getComponentOrThrow(id));\n\n runInAction(() => {\n const store = ComponentStore.getInstance();\n store.setNodeRawSchema(node, newValue);\n\n for (let i = 0; i < components.length; i++) {\n const c = components[i];\n const value = newValue[i];\n const valueNode = c.getNode(valueProp);\n store.setNodeRawSchema(valueNode, value);\n }\n });\n },\n { fireImmediately: true, equals: comparer.structural },\n );\n node.disposers.push(disposer);\n}\n","import { AbstractNode, ComponentStore, TComponent } from '@kaskad/component-tree';\nimport { log } from '@kaskad/config';\nimport { MirrorBindingSchema, ValueType } from '@kaskad/types';\nimport { comparer, reaction } from 'mobx';\n\nexport function bindMirror(component: TComponent, node: AbstractNode<ValueType>, cfg: MirrorBindingSchema): void {\n const store = ComponentStore.getInstance();\n\n let targetNode: AbstractNode<ValueType>;\n try {\n // For Facade components, start lookup from parent. This handles inline bindings\n // on template contract variables, where the Facade has a variable with the same\n // name - we need to find the parent's variable, not self.\n const lookupFromId = component.componentType === 'sys.Facade' ? component.position.componentId : component.id;\n\n if (!lookupFromId) {\n log.error(`Cannot activate mirror binding: no parent component for selector \"${cfg.selector}\"`);\n return;\n }\n\n targetNode = store.getNode(lookupFromId, cfg.selector);\n } catch (error) {\n log.error(`Cannot activate mirror binding: ${error}`);\n return;\n }\n\n const disposer = reaction<[unknown, unknown], boolean>(\n () => [targetNode.extractedValue, node.extractedValue],\n (curr, prev) => {\n const [targetValue, sourceValue = null] = curr;\n const [prevTargetValue, prevSourceValue] = prev || [null, null];\n\n if (comparer.structural(targetValue, sourceValue)) {\n return;\n }\n\n if (!prev && targetValue !== null) {\n store.setNodeRawSchema(node, targetValue);\n return;\n }\n\n if (targetValue !== prevTargetValue) {\n store.setNodeRawSchema(node, targetValue);\n return;\n }\n\n if (sourceValue !== prevSourceValue) {\n store.setNodeRawSchema(targetNode, sourceValue);\n }\n },\n { fireImmediately: true },\n );\n\n node.disposers.push(disposer);\n}\n","import { AbstractNode, ComponentStore, ComponentTreeApi, TComponent } from '@kaskad/component-tree';\nimport { EvalState, evaluateNode } from '@kaskad/eval-tree';\nimport { isObject } from '@kaskad/schema';\nimport { ComponentId, ObjectValueType, ValueType } from '@kaskad/types';\nimport { comparer as equal, reaction, runInAction } from 'mobx';\n\nimport { lowerFormula } from '../lowering/lower-formula';\n\nexport function bindObject(\n node: AbstractNode<ValueType>,\n component: TComponent,\n cfg: {\n componentSelector: string;\n keyProp: string;\n valueProp: string;\n valueType: ValueType;\n },\n) {\n const { componentSelector, keyProp, valueProp } = cfg;\n\n const evalNode = lowerFormula(`propObject('${componentSelector}', '${keyProp}', '${valueProp}')`);\n if (!node.position.componentId) {\n throw new Error('Node does not have a component context');\n }\n const { computed, disposers } = evaluateNode<EvalState<Record<string, unknown>>>(evalNode, {\n componentId: node.position.componentId,\n });\n node.disposers.push(...disposers);\n\n let preservedNodeValue: Record<string, unknown> = {};\n\n const disposer = reaction<\n [Record<string, unknown> | null, ComponentId[], EvalState<Record<string, unknown>>],\n boolean\n >(\n () => [\n (node as AbstractNode<ObjectValueType>).extractedValue,\n ComponentTreeApi.findComponentsIds(component.id, componentSelector),\n computed.get(),\n ],\n ([nodeValue, componentsIds, evalState], prev) => {\n const currentValue = nodeValue || {};\n\n if (equal.structural(evalState.value, currentValue)) {\n return;\n }\n\n const firstRun = !prev;\n const nodeChanged = !firstRun && !equal.structural(nodeValue, prev[0]);\n\n if (firstRun || nodeChanged) {\n preservedNodeValue = currentValue;\n } else {\n preservedNodeValue = shallowMerge(preservedNodeValue, evalState.value);\n }\n\n let componentValues: Record<string, unknown>;\n\n if (firstRun) {\n const hasInitialValue = Object.keys(currentValue).length > 0;\n componentValues = hasInitialValue\n ? syncNodeValueAndComponents(currentValue, evalState)\n : { ...evalState.value };\n } else if (nodeChanged) {\n componentValues = syncNodeValueAndComponents(currentValue, evalState);\n } else {\n componentValues = handleComponentsChanged(evalState, preservedNodeValue);\n }\n\n runInAction(() => {\n const store = ComponentStore.getInstance();\n store.setNodeRawSchema(node, componentValues);\n\n updateComponentsValues(componentsIds, componentValues, keyProp, valueProp);\n });\n },\n { fireImmediately: true, equals: equal.structural },\n );\n node.disposers.push(disposer);\n}\n\nfunction handleComponentsChanged(\n evalState: EvalState<Record<string, unknown>>,\n preservedNodeValue: Record<string, unknown>,\n): Record<string, unknown> {\n const componentValues: Record<string, unknown> = {};\n\n for (const [inputKey, currentValue] of Object.entries(evalState.value)) {\n const preservedValue = preservedNodeValue[inputKey];\n\n if (isObject(currentValue) && isObject(preservedValue)) {\n componentValues[inputKey] = mergePreservedWithChildGroup(currentValue, preservedValue);\n continue;\n }\n\n componentValues[inputKey] = currentValue ?? preservedValue;\n }\n\n return componentValues;\n}\n\nfunction mergePreservedWithChildGroup(\n currentValue: Record<string, unknown>,\n preservedValue: Record<string, unknown>,\n): Record<string, unknown> {\n const merged = { ...currentValue };\n\n for (const [key, value] of Object.entries(currentValue)) {\n if (value !== null) {\n continue;\n }\n\n if (preservedValue[key] === undefined || preservedValue[key] === null) {\n continue;\n }\n\n merged[key] = preservedValue[key];\n }\n\n return merged;\n}\n\nfunction syncNodeValueAndComponents(\n nodeValue: Record<string, unknown>,\n evalState: EvalState<Record<string, unknown>>,\n): Record<string, unknown> {\n const componentValues: Record<string, unknown> = {};\n\n for (const fieldKey of Object.keys(evalState.value)) {\n if (!(fieldKey in nodeValue)) {\n componentValues[fieldKey] = null;\n continue;\n }\n\n componentValues[fieldKey] = nodeValue[fieldKey];\n }\n\n return componentValues;\n}\n\nfunction updateComponentsValues(\n componentsIds: ComponentId[],\n componentValues: Record<string, unknown>,\n keyProp: string,\n valueProp: string,\n): void {\n const store = ComponentStore.getInstance();\n const components = componentsIds.map((id) => store.getComponentOrThrow(id));\n\n for (const cmp of components) {\n const key = cmp.getNodeValue<string>(keyProp);\n if (!key) continue;\n\n const value = componentValues[key];\n const valueNode = cmp.getNode(valueProp);\n store.setNodeRawSchema(valueNode, value);\n }\n}\n\nfunction shallowMerge(target: Record<string, unknown>, source: Record<string, unknown>): Record<string, unknown> {\n const merged = { ...target };\n\n for (const [key, value] of Object.entries(source)) {\n if (value === null || value === undefined) {\n continue;\n }\n\n if (isObject(value) && isObject(merged[key])) {\n merged[key] = { ...merged[key], ...value };\n continue;\n }\n\n merged[key] = value;\n }\n\n return merged;\n}\n","import { AbstractNode, ComponentStore, ComponentTreeApi, TComponent } from '@kaskad/component-tree';\nimport { EvalState, evaluateNode } from '@kaskad/eval-tree';\nimport { ComponentId, SetValueType, ValueType } from '@kaskad/types';\nimport { comparer as equal, reaction, runInAction } from 'mobx';\n\nimport { lowerFormula } from '../lowering/lower-formula';\n\nexport function bindSelection(\n node: AbstractNode<ValueType>,\n component: TComponent,\n cfg: {\n componentSelector: string;\n keyProp: string;\n valueProp: string;\n valueType: ValueType;\n },\n) {\n const { componentSelector, keyProp, valueProp } = cfg;\n\n const evalNode = lowerFormula(`propObject('${componentSelector}', '${keyProp}', '${valueProp}')`);\n if (!node.position.componentId) {\n throw new Error('Node does not have a component context');\n }\n const { computed, disposers } = evaluateNode<EvalState<Record<string, unknown>>>(evalNode, {\n componentId: node.position.componentId,\n });\n node.disposers.push(...disposers);\n\n let preservedNodeValue: Record<string, unknown> | null = null;\n\n const disposer = reaction<[Set<unknown> | null, ComponentId[], EvalState<Record<string, unknown>>], boolean>(\n () => [\n (node as AbstractNode<SetValueType>).extractedValue,\n ComponentTreeApi.findComponentsIds(component.id, componentSelector),\n computed.get(),\n ],\n ([nodeValue, componentsIds, evalState], prev) => {\n const currentValue = toObject(nodeValue);\n\n const firstRun = !prev;\n const nodeChanged = !firstRun && !equal.structural(nodeValue, prev[0]);\n\n if (firstRun || nodeChanged) {\n preservedNodeValue = currentValue;\n }\n\n if (equal.structural(evalState.value, currentValue)) {\n return;\n }\n\n let componentValues: Record<string, unknown>;\n if (firstRun) {\n const initialNodeValue = Object.keys(currentValue).length > 0;\n componentValues = initialNodeValue\n ? syncNodeValueAndComponents(currentValue, evalState, preservedNodeValue)\n : { ...evalState.value };\n } else if (nodeChanged) {\n componentValues = syncNodeValueAndComponents(currentValue, evalState, preservedNodeValue);\n } else {\n componentValues = syncComponentsAndPreserved(evalState, preservedNodeValue, currentValue);\n }\n\n const selectionValue = toSelectionSet(componentValues);\n\n runInAction(() => {\n const store = ComponentStore.getInstance();\n store.setNodeRawSchema(node, selectionValue);\n\n updateComponentsValues(componentsIds, componentValues, keyProp, valueProp);\n });\n },\n { fireImmediately: true, equals: equal.structural },\n );\n\n node.disposers.push(disposer);\n}\n\nfunction syncNodeValueAndComponents(\n nodeValue: Record<string, unknown>,\n evalState: EvalState<Record<string, unknown>>,\n preservedNodeValue: Record<string, unknown> | null,\n): Record<string, unknown> {\n const componentValues = { ...nodeValue };\n\n // Keep keys in preservedNodeValue to handle async component loading\n for (const key of Object.keys(componentValues)) {\n if (!(key in evalState.value) && (!preservedNodeValue || !(key in preservedNodeValue))) {\n delete componentValues[key];\n }\n }\n for (const key of Object.keys(evalState.value)) {\n if (!(key in componentValues)) {\n componentValues[key] = false;\n }\n }\n\n return componentValues;\n}\n\nfunction syncComponentsAndPreserved(\n evalState: EvalState<Record<string, unknown>>,\n preservedNodeValue: Record<string, unknown> | null,\n currentValue: Record<string, unknown>,\n): Record<string, unknown> {\n const componentValues = { ...evalState.value };\n\n if (preservedNodeValue) {\n for (const key of Object.keys(evalState.value)) {\n if (evalState.value[key] === null) {\n componentValues[key] = preservedNodeValue[key] ?? false;\n }\n }\n // Preserve selection for components being recreated\n for (const key of Object.keys(preservedNodeValue)) {\n if (!(key in componentValues)) {\n componentValues[key] = preservedNodeValue[key];\n }\n }\n }\n\n // Include user changes not yet in preservedNodeValue\n for (const key of Object.keys(currentValue)) {\n if (!(key in componentValues)) {\n componentValues[key] = currentValue[key];\n }\n }\n\n return componentValues;\n}\n\nfunction updateComponentsValues(\n componentsIds: ComponentId[],\n componentValues: Record<string, unknown>,\n keyProp: string,\n valueProp: string,\n): void {\n const store = ComponentStore.getInstance();\n const components = componentsIds.map((id) => store.getComponentOrThrow(id));\n\n for (const cmp of components) {\n const key = cmp.getNodeValue<string>(keyProp);\n if (!key) continue;\n\n const value = componentValues[key];\n const valueNode = cmp.getNode(valueProp);\n store.setNodeRawSchema(valueNode, value);\n }\n}\n\nfunction toSelectionSet(componentValues: Record<string, unknown>): Set<string> {\n return new Set(\n Object.entries(componentValues)\n .filter(([, fieldValue]) => !!fieldValue)\n .map(([key]) => key),\n );\n}\n\nfunction toObject(selectionSet: Set<unknown> | null): Record<string, unknown> {\n return Object.fromEntries(Array.from(selectionSet || []).map((key) => [key, true]));\n}\n","import { AbstractNode, ComponentStore } from '@kaskad/component-tree';\nimport { ValueType } from '@kaskad/types';\nimport { when } from 'mobx';\n\nimport { bindArray } from './bind-array';\nimport { bindMirror } from './bind-mirror';\nimport { bindObject } from './bind-object';\nimport { bindSelection } from './bind-selection';\n\nexport async function addBinding(node: AbstractNode<ValueType>, extra = false): Promise<void> {\n await when(() => !node.evaluating);\n\n const store = ComponentStore.getInstance();\n\n if (!node.position.componentId) {\n throw new Error('Cannot add binding without component context');\n }\n\n const component = store.getComponent(node.position.componentId);\n if (!component) {\n return;\n }\n\n const bindingSchema = extra ? node.extraBinding : node.bindingSchema;\n if (!bindingSchema) {\n return;\n }\n const valueType = node.valueType;\n\n switch (bindingSchema.bindingType) {\n case 'object':\n bindObject(node, component, {\n componentSelector: bindingSchema.componentSelector,\n keyProp: bindingSchema.mapping.key,\n valueProp: bindingSchema.mapping.value,\n valueType,\n });\n break;\n\n case 'selection':\n bindSelection(node, component, {\n componentSelector: bindingSchema.componentSelector,\n keyProp: bindingSchema.mapping.key,\n valueProp: bindingSchema.mapping.selected,\n valueType,\n });\n break;\n\n case 'array':\n bindArray(node, component, {\n componentSelector: bindingSchema.componentSelector,\n valueProp: bindingSchema.mapping.value,\n valueType,\n });\n break;\n\n case 'mirror':\n bindMirror(component, node, bindingSchema);\n break;\n }\n}\n","import { Delimiters } from '@kaskad/config';\nimport { ComponentId, NodePosition } from '@kaskad/types';\n\nexport const debugName = (position: NodePosition, thing: string) => {\n return [position.componentId, position.path.join(Delimiters.NodePath), thing].join('|');\n};\n\nexport const componentInstanceMap = new Map<ComponentId, unknown>();\n","import { EvalNode, ObjectEvalNodeField } from '@kaskad/eval-tree';\nimport { NodeSchema, VariantShapeValue, VariantShapeValueType } from '@kaskad/types';\n\nimport { lowerComputationSchema } from './lower-computation-schema';\n\nconst lowerSimpleValue = (schema: NodeSchema): EvalNode => ({\n type: 'value',\n value: schema.value,\n});\n\nconst lowerObjectOrMap = (schema: NodeSchema): EvalNode => {\n if (!schema.value) {\n return { type: 'value', value: null };\n }\n const entries = Object.entries(schema.value as Record<string, NodeSchema>);\n return {\n type: 'object',\n properties: entries.map(([key, value]) => ({\n key: { type: 'value', value: key },\n value: lowerSchema(value),\n })),\n };\n};\n\nconst lowerArrayOrSet = (schema: NodeSchema): EvalNode => {\n if (!schema.value) {\n throw new Error(`${schema.valueType.type} schema without value`);\n }\n return {\n type: 'array',\n items: (schema.value as NodeSchema[]).map((item) => lowerSchema(item)),\n };\n};\n\nconst lowerShape = (): EvalNode => {\n throw new Error('Shape lowering not implemented');\n};\n\nconst lowerVariantShape = (schema: NodeSchema): EvalNode => {\n if (!schema.value) {\n return { type: 'value', value: null };\n }\n\n const variantShapeValue = schema.value as VariantShapeValue;\n const variantField = `${(schema.valueType as VariantShapeValueType).shapeType}Type`;\n\n const entries = Object.entries(variantShapeValue);\n const properties: ObjectEvalNodeField[] = entries\n .filter(([key]) => key !== 'kind')\n .map(([key, value]) => ({\n key: { type: 'value', value: key },\n value: typeof value === 'string' ? { type: 'value', value } : lowerSchema(value),\n }));\n\n properties.push({\n key: { type: 'value', value: variantField },\n value: { type: 'value', value: variantShapeValue['kind'] },\n });\n\n return {\n type: 'object',\n properties,\n };\n};\n\nconst schemaLowerers: Record<string, (schema: NodeSchema) => EvalNode> = {\n string: lowerSimpleValue,\n number: lowerSimpleValue,\n boolean: lowerSimpleValue,\n unknown: lowerSimpleValue,\n component: lowerSimpleValue,\n command: lowerSimpleValue,\n componentSchema: lowerSimpleValue,\n object: lowerObjectOrMap,\n map: lowerObjectOrMap,\n array: lowerArrayOrSet,\n set: lowerArrayOrSet,\n shape: lowerShape,\n variantShape: lowerVariantShape,\n};\n\nexport function lowerSchema(schema: NodeSchema): EvalNode {\n // If schema has a computation, lower it\n if (schema.computation) {\n return lowerComputationSchema(schema.computation);\n }\n\n // Otherwise lower the value based on valueType\n const lowerer = schemaLowerers[schema.valueType.type];\n if (lowerer) {\n return lowerer(schema);\n }\n\n throw new Error(`Unsupported value type: ${schema.valueType.type}`);\n}\n","import { ArrayEvalNode, EvalNode, ObjectEvalNode } from '@kaskad/eval-tree';\nimport {\n ComputationSchema,\n ForComputationSchema,\n FormulaComputationSchema,\n IfComputationSchema,\n SwitchComputationSchema,\n TemplateComputationSchema,\n} from '@kaskad/types';\n\nimport { lowerFormula } from './lower-formula';\nimport { lowerSchema } from './lower-node-schema';\n\nexport function lowerForLoop(forComputation: ForComputationSchema): EvalNode {\n const dimensionsNode: ArrayEvalNode = {\n type: 'array',\n items: forComputation.dimensions.map((dimension) => {\n // Extract trackBy expression to be evaluated in RefSpace context where $item is available\n let trackByExpression: unknown = null;\n if (dimension.trackBy.computation && dimension.trackBy.computation.computationType === 'formula') {\n trackByExpression = `=${(dimension.trackBy.computation as FormulaComputationSchema).formula}`;\n } else if (dimension.trackBy.value !== null) {\n trackByExpression = dimension.trackBy.value;\n }\n\n return {\n type: 'object',\n properties: [\n { key: { type: 'value', value: 'items' }, value: lowerSchema(dimension.items) },\n { key: { type: 'value', value: 'itemsType' }, value: { type: 'value', value: dimension.itemsType } },\n { key: { type: 'value', value: 'item' }, value: lowerSchema(dimension.item) },\n { key: { type: 'value', value: 'index' }, value: lowerSchema(dimension.index) },\n { key: { type: 'value', value: 'first' }, value: lowerSchema(dimension.first) },\n { key: { type: 'value', value: 'last' }, value: lowerSchema(dimension.last) },\n { key: { type: 'value', value: 'trackBy' }, value: { type: 'value', value: trackByExpression } },\n ],\n } as ObjectEvalNode;\n }),\n };\n\n const yieldNode = lowerSchema(forComputation.yield);\n\n return {\n type: 'function',\n name: 'repeat',\n args: [dimensionsNode, yieldNode],\n };\n}\n\nexport function lowerTemplate(templateComputation: TemplateComputationSchema): EvalNode {\n return {\n type: 'value',\n value: templateComputation,\n };\n}\n\nexport function lowerIfStatement(ifNode: IfComputationSchema): EvalNode {\n return {\n type: 'function',\n name: 'if',\n args: [lowerSchema(ifNode.if), lowerSchema(ifNode.then), lowerSchema(ifNode.else)],\n };\n}\n\nexport function lowerSwitch(switchComputation: SwitchComputationSchema): EvalNode {\n // Lower the source\n const sourceEvalNode = lowerSchema(switchComputation.source);\n\n // Build cases array as flat array: [value1, result1, value2, result2, ...]\n // Extract .value from ComponentSchemaNodeSchema to get the actual component schema\n const casesArrayItems: EvalNode[] = [];\n for (const caseItem of switchComputation.cases) {\n casesArrayItems.push({ type: 'value', value: caseItem.equals });\n // caseItem.then is a ComponentSchemaNodeSchema, extract its .value property\n casesArrayItems.push({ type: 'value', value: caseItem.then.value });\n }\n\n const casesArrayNode: ArrayEvalNode = {\n type: 'array',\n items: casesArrayItems,\n };\n\n // Lower the default value - extract .value from ComponentSchemaNodeSchema\n const defaultNode: EvalNode = { type: 'value', value: switchComputation.default.value };\n\n return {\n type: 'function',\n name: 'switch',\n args: [sourceEvalNode, casesArrayNode, defaultNode],\n };\n}\n\nconst computationLowerers: Record<string, (schema: ComputationSchema) => EvalNode> = {\n formula: (schema) => lowerFormula((schema as FormulaComputationSchema).formula),\n for: (schema) => lowerForLoop(schema as ForComputationSchema),\n template: (schema) => lowerTemplate(schema as TemplateComputationSchema),\n if: (schema) => lowerIfStatement(schema as IfComputationSchema),\n switch: (schema) => lowerSwitch(schema as SwitchComputationSchema),\n};\n\nexport function lowerComputationSchema(computationSchema: ComputationSchema): EvalNode {\n const lowerer = computationLowerers[computationSchema.computationType];\n if (lowerer) {\n return lowerer(computationSchema);\n }\n throw new Error(`Unsupported computation type: ${computationSchema.computationType}`);\n}\n","import { AbstractNode, ArrayNode, ComponentStore } from '@kaskad/component-tree';\nimport { EvalState, evaluateNode } from '@kaskad/eval-tree';\nimport { ComponentRecipe } from '@kaskad/schema';\nimport { ValueType } from '@kaskad/types';\nimport { reaction } from 'mobx';\n\nimport { debugName } from '../../constants';\nimport { lowerComputationSchema } from '../../lowering/lower-computation-schema';\nimport { activateNode } from '../activate-node';\n\nexport function activateForComputation(node: AbstractNode<ValueType>): void {\n const store = ComponentStore.getInstance();\n\n const currentFrame = node.computationStack.top;\n if (!currentFrame) {\n throw new Error('Cannot activate for computation: no current frame');\n }\n\n const evalNode = lowerComputationSchema(currentFrame.schema);\n if (!node.position.componentId) {\n throw new Error('Node does not have a component context');\n }\n const { computed, disposers } = evaluateNode<EvalState<ComponentRecipe[]>>(evalNode, {\n componentId: node.position.componentId,\n });\n currentFrame.disposers.push(...disposers);\n\n const computationDisposer = reaction(\n () => computed.get(),\n ({ value: newItems }) => {\n const toAdd = store.reconcileForLoopChildren(node as ArrayNode, newItems);\n\n // Activate only newly added children\n const structure = (node as ArrayNode).structure || [];\n for (const index of toAdd) {\n const child = structure[index];\n if (child) {\n activateNode(child);\n }\n }\n },\n { fireImmediately: true, name: debugName(node.position, 'repeatable-reaction') },\n );\n currentFrame.disposers.push(computationDisposer);\n currentFrame.markActivated();\n}\n","import { AbstractNode } from '@kaskad/component-tree';\nimport { ArrayValueType } from '@kaskad/types';\n\nimport { activateNode } from '../activate-node';\n\nexport function activateArrayStructure(node: AbstractNode<ArrayValueType>) {\n const structure = node.structure;\n if (structure === null) {\n return;\n }\n\n structure.forEach((item) => {\n activateNode(item);\n });\n}\n","import { TComponent } from '@kaskad/component-tree';\nimport { log } from '@kaskad/config';\nimport { reaction } from 'mobx';\n\n/**\n * Activates node change handlers for a component by setting up MobX reactions.\n * Each handler watches a node selector and executes its command when the node value changes.\n */\nexport function activateNodeChangeHandlers(component: TComponent): void {\n for (const handler of component.onNodeChange) {\n const disposer = reaction(\n // Track the node value using the selector\n () => component.getNodeValue(handler.selector),\n // Execute the command when node value changes\n async (nodeValue) => {\n const src = component.sourceUrl ? `[${component.sourceUrl}] ` : '';\n log.trace(`${src}onNodeChange \"${handler.selector}\" triggered on ${component.id}`);\n try {\n await handler.command.viewModel.execute(nodeValue);\n } catch (error) {\n const src = component.sourceUrl ? `[${component.sourceUrl}] ` : '';\n log.error(\n `${src}onNodeChange handler failed for component ${component.id}, selector \"${handler.selector}\":`,\n error,\n );\n // Re-throw to maintain existing error behavior\n throw error;\n }\n },\n {\n // Fire immediately on setup to handle initial state\n fireImmediately: true,\n },\n );\n\n component.handlerDisposers.push(disposer);\n }\n}\n","import { AbstractNode, ComponentStore, TComponent } from '@kaskad/component-tree';\nimport { ComponentValueType } from '@kaskad/types';\n\nimport { activateNodeChangeHandlers } from '../../hooker';\nimport { activateNode } from '../activate-node';\n\nexport function activateComponentStructure(node: AbstractNode<ComponentValueType>) {\n const structure = node.structure;\n if (structure === null) {\n return;\n }\n\n const component = ComponentStore.getInstance().getComponentOrThrow(structure);\n\n activateComponent(component);\n}\n\nexport function activateComponent(component: TComponent): void {\n ComponentStore.getInstance().componentsToPreload.add(component.componentType);\n\n for (const node of component.props.values()) {\n activateNode(node);\n }\n\n for (const node of component.variables.values()) {\n activateNode(node);\n }\n\n for (const handler of component.onNodeChange) {\n activateNode(handler.command);\n }\n\n activateNodeChangeHandlers(component);\n}\n","import { AbstractNode } from '@kaskad/component-tree';\nimport { MapValueType } from '@kaskad/types';\n\nimport { activateNode } from '../activate-node';\n\nexport function activateMapStructure(node: AbstractNode<MapValueType>) {\n const structure = node.structure;\n if (structure === null) {\n return;\n }\n\n for (const item of Object.values(structure)) {\n activateNode(item);\n }\n}\n","import { AbstractNode } from '@kaskad/component-tree';\nimport { ObjectValueType } from '@kaskad/types';\n\nimport { activateNode } from '../activate-node';\n\nexport function activateObjectStructure(node: AbstractNode<ObjectValueType>) {\n const structure = node.structure;\n if (structure === null) {\n return;\n }\n\n for (const node of Object.values(structure)) {\n activateNode(node);\n }\n}\n","import { AbstractNode } from '@kaskad/component-tree';\nimport { DefinitionStore } from '@kaskad/definition';\nimport { ShapeValueType } from '@kaskad/types';\n\nimport { activateNode } from '../activate-node';\n\nexport function activateShapeStructure(node: AbstractNode<ShapeValueType>): void {\n const { valueType, structure } = node;\n if (structure === null) {\n return;\n }\n\n const objectValueType = DefinitionStore.getInstance().getShape(valueType.shapeType);\n\n for (const key of Object.keys(objectValueType.fields)) {\n activateNode(structure[key]);\n }\n}\n","import { AbstractNode } from '@kaskad/component-tree';\nimport { DefinitionStore } from '@kaskad/definition';\nimport { VariantShapeValueType } from '@kaskad/types';\n\nimport { activateNode } from '../activate-node';\n\nexport function activateVariantShapeStructure(node: AbstractNode<VariantShapeValueType>) {\n const { valueType, structure } = node;\n if (structure === null) {\n return;\n }\n\n const objectValueType = DefinitionStore.getInstance().getVariantShape(valueType.shapeType, structure.kind);\n\n for (const key of Object.keys(objectValueType.fields)) {\n activateNode(structure.fields[key]);\n }\n}\n","import { AbstractNode } from '@kaskad/component-tree';\nimport {\n ArrayValueType,\n ComponentValueType,\n MapValueType,\n ObjectValueType,\n ShapeValueType,\n ValueType,\n VariantShapeValueType,\n} from '@kaskad/types';\n\nimport { activateArrayStructure } from './structure/activate-array';\nimport { activateComponentStructure } from './structure/activate-component';\nimport { activateMapStructure } from './structure/activate-map';\nimport { activateObjectStructure } from './structure/activate-object';\nimport { activateShapeStructure } from './structure/activate-shape';\nimport { activateVariantShapeStructure } from './structure/activate-variant-shape';\n\nconst structureActivators: Record<string, (node: AbstractNode<ValueType>) => void> = {\n shape: (node) => activateShapeStructure(node as AbstractNode<ShapeValueType>),\n variantShape: (node) => activateVariantShapeStructure(node as AbstractNode<VariantShapeValueType>),\n array: (node) => activateArrayStructure(node as AbstractNode<ArrayValueType>),\n object: (node) => activateObjectStructure(node as AbstractNode<ObjectValueType>),\n map: (node) => activateMapStructure(node as AbstractNode<MapValueType>),\n component: (node) => activateComponentStructure(node as AbstractNode<ComponentValueType>),\n};\n\nexport function activateStructure(node: AbstractNode<ValueType>) {\n const value = node.structure;\n if (value === null) {\n return;\n }\n\n const activator = structureActivators[node.nodeType];\n if (activator) {\n activator(node);\n }\n}\n","import { AbstractNode, ComponentStore, getComponent } from '@kaskad/component-tree';\nimport { EvalState, evaluateNode } from '@kaskad/eval-tree';\nimport { ValueType } from '@kaskad/types';\nimport { reaction } from 'mobx';\n\nimport { debugName } from '../../constants';\nimport { lowerComputationSchema } from '../../lowering/lower-computation-schema';\nimport { activateComputation } from '../activate-computation';\nimport { activateStructure } from '../activate-structure';\n\nexport function activateFormulaComputation(node: AbstractNode<ValueType>): void {\n const store = ComponentStore.getInstance();\n\n const currentFrame = node.computationStack.top;\n if (!currentFrame) {\n throw new Error('Cannot activate formula computation: no current frame');\n }\n\n const thisFrameDepth = node.computationStack.depth;\n\n const evalNode = lowerComputationSchema(currentFrame.schema);\n if (!node.position.componentId) {\n throw new Error('Node does not have a component context');\n }\n const component = getComponent(node);\n const { computed, disposers } = evaluateNode<EvalState>(evalNode, {\n componentId: node.position.componentId,\n sourceUrl: component.sourceUrl ?? undefined,\n });\n currentFrame.disposers.push(...disposers);\n\n const computationDisposer = reaction(\n () => computed.get(),\n (computationState) => {\n const { evaluating, value: rawSchema, failed } = computationState;\n node.evaluating = evaluating;\n\n if (evaluating) {\n return;\n }\n\n node.failed = failed;\n\n // Clear result frames from this depth onward (not all results!)\n // Example: if this is depth 2, clear frames 2, 3, 4... but keep 0, 1\n node.computationStack.popFrom(thisFrameDepth);\n\n store.setNodeRawSchema(node, rawSchema);\n\n if (node.computationStack.depth > thisFrameDepth) {\n // If a nested computation was pushed onto the stack, activate it\n activateComputation(node);\n } else {\n activateStructure(node);\n }\n },\n {\n fireImmediately: true,\n name: debugName(node.position, 'formula-reaction'),\n },\n );\n\n currentFrame.disposers.push(computationDisposer);\n currentFrame.markActivated();\n}\n","import { AbstractNode, ComponentStore, getComponent } from '@kaskad/component-tree';\nimport { Delimiters, log } from '@kaskad/config';\nimport { loadTemplates, templateRegistry, unfoldNodeSchema } from '@kaskad/schema';\nimport { ComponentId, ComponentNodeInlineValue, NodeSchema, TemplateComputationSchema, ValueType } from '@kaskad/types';\n\nimport { templateLoadingTracker } from '../../util/template-loading-tracker';\nimport { activateComponent } from '../structure/activate-component';\n\nexport function activateTemplateComputation(node: AbstractNode<ValueType>) {\n const store = ComponentStore.getInstance();\n const nodePath = node.position.path;\n const component = getComponent(node);\n\n const currentFrame = node.computationStack.top;\n if (!currentFrame) {\n throw new Error('Cannot activate template computation: no current frame');\n }\n\n const { defer, path, contractVariables, ref } = currentFrame.schema as TemplateComputationSchema;\n const taskKey = `template-${component.id}-${nodePath}`;\n\n if (defer) {\n templateLoadingTracker.startLoading(taskKey);\n store.setNodeSchema(node, defer.placeholder);\n\n // Fire-and-forget: load template asynchronously\n loadTemplates({ templateUrl: path })\n .then(() => {\n const cacheEntry = templateRegistry.get(path);\n\n if (!cacheEntry) {\n // Loading failed - show error schema\n store.setNodeSchema(node, defer.error);\n templateLoadingTracker.finishLoading(taskKey);\n return;\n }\n\n // Loading succeeded - create and set the template schema\n setTemplateOnNode(node, cacheEntry, path, contractVariables, ref);\n templateLoadingTracker.finishLoading(taskKey);\n })\n .catch((error) => {\n // Handle any unhandled errors during template creation\n log.error(`Failed to activate template \"${path}\":`, error);\n store.setNodeSchema(node, defer.error);\n templateLoadingTracker.finishLoading(taskKey);\n });\n\n // Mark as activated immediately (don't wait for loading)\n currentFrame.markActivated();\n return;\n }\n\n const cacheEntry = templateRegistry.get(path);\n\n if (!cacheEntry) {\n const src = component.sourceUrl ? `[${component.sourceUrl}] ` : '';\n throw new Error(`${src}Template not found in cache: ${path}`);\n }\n\n // Non-defer path: template is already loaded, create schema synchronously\n setTemplateOnNode(node, cacheEntry, path, contractVariables, ref);\n currentFrame.markActivated();\n}\n\nfunction setTemplateOnNode(\n node: AbstractNode<ValueType>,\n cacheEntry: ReturnType<typeof templateRegistry.get>,\n path: string,\n contractVariables: Record<string, unknown>,\n ref: string | undefined,\n): void {\n const store = ComponentStore.getInstance();\n const rawFacadeSchema = createRawFacadeSchema(cacheEntry, path, contractVariables, ref);\n store.setNodeRawSchema(node, rawFacadeSchema);\n\n // Activate the facade component after it's created (only for regular component nodes)\n if (node.nodeType !== 'componentSchema') {\n const facadeId = node.structure as ComponentId;\n const facade = store.getComponentOrThrow(facadeId);\n facade.sourceUrl = path;\n activateComponent(facade);\n }\n}\n\nfunction createRawFacadeSchema(\n cacheEntry: ReturnType<typeof templateRegistry.get>,\n path: string,\n contractVariables: Record<string, unknown>,\n ref: string | undefined,\n): Record<string, unknown> {\n if (!cacheEntry) {\n throw new Error(`Template cache entry is undefined for path: ${path}`);\n }\n\n const { recipe } = cacheEntry;\n const { types: _types, importTypes: _importTypes, contract = {}, defaultSlot, ...componentRecipe } = recipe;\n const rootSchema = unfoldNodeSchema(componentRecipe, { type: 'component' });\n const rootValue = rootSchema.value as ComponentNodeInlineValue;\n\n if (!rootValue) {\n const recipeKeys = Object.keys(componentRecipe).join(', ');\n throw new Error(\n `Template \"${path}\": Root schema has no value. ` +\n `The recipe root must define a component (implicit or explicit componentType). ` +\n `Found keys: [${recipeKeys}]`,\n );\n }\n\n // Collect value types from the root schema for each mapped variable\n const valueTypes: Record<string, ValueType> = {};\n for (const [facadeKey, rootKey] of Object.entries(contract)) {\n const sourceNodeSchema = getSourceNodeOrThrow(rootValue, rootKey, path);\n valueTypes[facadeKey] = sourceNodeSchema.valueType;\n }\n\n const prefixedVariables = createFacadeVariables(path, contractVariables, contract, valueTypes, defaultSlot);\n const contentWithBindings = addSynchronizeBindings(contract, rootSchema);\n\n // Return the raw facade schema object\n return {\n componentType: 'sys.Facade',\n ref,\n content: contentWithBindings,\n ...prefixedVariables,\n };\n}\n\nfunction createFacadeVariables(\n templatePath: string,\n contractVariables: Record<string, unknown>,\n contract: Record<string, string>,\n valueTypes: Record<string, ValueType>,\n flatWrapperSlot?: string,\n): Record<string, unknown> {\n const contractKeys = Object.keys(contractVariables);\n const contractPropKeys = Object.keys(contract);\n\n const unmappedVariables = contractKeys.filter((key) => key !== 'slot' && !contractPropKeys.includes(key));\n\n if (unmappedVariables.length > 0) {\n // Detect if unmapped keys look like variable declarations (have $ prefix or @ type annotation)\n const variableDeclarations = unmappedVariables.filter((key) => key.startsWith('$') || key.includes('@'));\n const regularProps = unmappedVariables.filter((key) => !key.startsWith('$') && !key.includes('@'));\n\n if (variableDeclarations.length > 0) {\n throw new Error(\n `Template \"${templatePath}\": Variable declarations cannot be siblings of templateUrl. ` +\n `Found: ${variableDeclarations.join(', ')}. ` +\n `Pass values directly or wrap templateUrl in a component.`,\n );\n } else if (regularProps.length > 0) {\n log.warn(\n `Template \"${templatePath}\": Unknown properties: ${regularProps.join(', ')}. ` +\n `Expected: ${contractPropKeys.join(', ')}`,\n );\n }\n }\n\n const prefixedVariables: Record<string, unknown> = {};\n for (const facadeKey of contractPropKeys) {\n const prefixedKey = `${Delimiters.Variable}${facadeKey}`;\n prefixedVariables[prefixedKey] = unfoldNodeSchema(contractVariables[facadeKey], valueTypes[facadeKey]);\n }\n\n if ('slot' in contractVariables) {\n const slotComponent = contractVariables['slot'];\n let targetSlot = flatWrapperSlot;\n\n // Find default component slot if not explicitly specified\n if (!targetSlot) {\n const componentSlots = Object.keys(valueTypes).filter((key) => valueTypes[key].type === 'component');\n if (componentSlots.length !== 1) {\n throw new Error(\n `Cannot find default slot for template computation. Found ${\n componentSlots.length\n } slots: ${componentSlots.join(', ')}`,\n );\n }\n targetSlot = componentSlots[0];\n }\n\n const prefixedKey = `${Delimiters.Variable}${targetSlot}`;\n prefixedVariables[prefixedKey] = unfoldNodeSchema(slotComponent, valueTypes[targetSlot]);\n }\n\n return prefixedVariables;\n}\n\nfunction addSynchronizeBindings(contract: Record<string, string>, rootSchema: NodeSchema): NodeSchema {\n const rootValue = rootSchema.value as ComponentNodeInlineValue;\n\n for (const [facadeKey, templateKey] of Object.entries(contract)) {\n // This will always succeed because mapping was already validated in createRawFacadeSchema\n const sourceNodeSchema = getSourceNodeOrThrow(rootValue, templateKey, '');\n\n sourceNodeSchema.extraBinding = {\n bindingType: 'mirror' as const,\n selector: `^sys.Facade->$${facadeKey}`,\n };\n }\n\n return rootSchema;\n}\n\nfunction getSourceNodeOrThrow(rootValue: ComponentNodeInlineValue, key: string, templatePath: string): NodeSchema {\n const isVariable = key.startsWith('$');\n const source = isVariable ? rootValue.variables : rootValue.props;\n\n if (!source) {\n const kind = isVariable ? 'variables' : 'props';\n throw new Error(\n `Template \"${templatePath}\": Cannot resolve contract key \"${key}\" — ` +\n `root component \"${rootValue.componentType}\" has no ${kind}. ` +\n `Ensure the template recipe declares \"${key}\" as a ${isVariable ? 'variable' : 'property'}.`,\n );\n }\n\n const node = source.get(isVariable ? key.slice(1) : key);\n\n if (!node) {\n const kind = isVariable ? 'variable' : 'property';\n const lookupKey = isVariable ? key.slice(1) : key;\n const available = [...source.keys()].map((k) => (isVariable ? `$${k}` : k));\n throw new Error(\n `Template \"${templatePath}\": Contract key \"${key}\" not found as ${kind} \"${lookupKey}\" ` +\n `in root component \"${rootValue.componentType}\". ` +\n `Available ${kind}s: [${available.join(', ')}]`,\n );\n }\n return node;\n}\n","import { AbstractNode } from '@kaskad/component-tree';\nimport { ValueType } from '@kaskad/types';\n\nimport { activateForComputation } from './computation/activate-for';\nimport { activateFormulaComputation } from './computation/activate-formula';\nimport { activateTemplateComputation } from './computation/activate-template';\n\nconst computationActivators: Record<string, (node: AbstractNode<ValueType>) => void> = {\n if: (node) => activateFormulaComputation(node),\n formula: (node) => activateFormulaComputation(node),\n switch: (node) => activateFormulaComputation(node),\n for: (node) => activateForComputation(node),\n template: (node) => activateTemplateComputation(node),\n};\n\nexport function activateComputation(node: AbstractNode<ValueType>): void {\n const frame = node.computationStack.top;\n if (!frame) {\n return;\n }\n\n // Idempotency: don't re-activate an already activated frame\n if (frame.activated) {\n return;\n }\n\n const activator = computationActivators[frame.schema.computationType];\n if (activator) {\n activator(node);\n }\n}\n","import { AbstractNode } from '@kaskad/component-tree';\nimport { ValueType } from '@kaskad/types';\n\nimport { addBinding } from '../bindings/add-binding';\nimport { activateComputation } from './activate-computation';\nimport { activateStructure } from './activate-structure';\n\nexport function activateNode(node: AbstractNode<ValueType>): void {\n if (node.fullyActivated) {\n return;\n }\n\n activateStructure(node);\n\n if (!node.computationStack.isEmpty) {\n activateComputation(node);\n }\n\n if (node.bindingSchema) {\n void addBinding(node);\n }\n\n if (node.extraBinding) {\n void addBinding(node, true);\n }\n\n node.markActivated();\n}\n","import { ArrayNode, ComponentTreeApi } from '@kaskad/component-tree';\nimport { CommandContext } from '@kaskad/definition';\n\nimport { activateNode } from '../../reactivity/activate-node';\n\nexport function execute(ctx: CommandContext, selector: string, item: unknown): void {\n ComponentTreeApi.appendArrayItem(ctx.componentId, selector, item);\n\n const arrayNode = ComponentTreeApi.findNode(ctx.componentId, selector) as ArrayNode | null;\n if (arrayNode) {\n // Activate the last item in the array (the one we just appended)\n const lastIndex = (arrayNode.structure?.length ?? 1) - 1;\n const newItem = arrayNode.structure?.[lastIndex];\n if (newItem) {\n activateNode(newItem);\n }\n }\n}\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { CommandContext } from '@kaskad/definition';\n\nexport function execute(ctx: CommandContext, selector: string, path: string): unknown[] {\n return ComponentTreeApi.collectValuesArray(ctx.componentId, selector, path);\n}\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { CommandContext } from '@kaskad/definition';\n\nexport function execute(\n ctx: CommandContext,\n selector: string,\n objectKey: string,\n objectValue: string,\n): Record<string, unknown> {\n return ComponentTreeApi.collectValuesMap(ctx.componentId, selector, objectKey, objectValue);\n}\n","import { CommandContext } from '@kaskad/definition';\n\nexport function execute(_ctx: CommandContext, ms: number): Promise<void> {\n return new Promise<void>((resolve) => setTimeout(() => resolve(), ms));\n}\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { CommandContext } from '@kaskad/definition';\n\nexport function execute(ctx: CommandContext, selector: string): unknown {\n return ComponentTreeApi.findNode(ctx.componentId, selector)?.extractedValue ?? null;\n}\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { CommandContext } from '@kaskad/definition';\n\nexport function execute(ctx: CommandContext, selector: string, index: number): void {\n ComponentTreeApi.removeArrayItem(ctx.componentId, selector, index);\n}\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { CommandContext } from '@kaskad/definition';\n\nexport function execute(ctx: CommandContext, selector: string, ...args: unknown[]): unknown {\n return ComponentTreeApi.runCommandNode(ctx.componentId, selector, ...args);\n}\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { CommandContext } from '@kaskad/definition';\n\nimport { componentInstanceMap } from '../../constants';\n\nexport function execute(\n ctx: CommandContext,\n componentSelector: string,\n methodName: string,\n ...args: unknown[]\n): unknown {\n const component = ComponentTreeApi.getComponent(ctx.componentId, componentSelector);\n\n const instance = componentInstanceMap.get(component.id) as Record<string, unknown>;\n if (!instance) {\n throw new Error(`Cannot find component instance for component with id \"${component.id}\"`);\n }\n\n const method = instance[methodName];\n if (!method || typeof method !== 'function') {\n throw new Error(`Cannot find method \"${methodName}\" in component of type \"${component.componentType}\"`);\n }\n\n return method.call(instance, ...args);\n}\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { CommandContext } from '@kaskad/definition';\n\nimport { activateStructure } from '../../reactivity/activate-structure';\n\nexport function execute(ctx: CommandContext, selector: string, value: unknown): void {\n ComponentTreeApi.setNodeRawSchema(ctx.componentId, selector, value);\n\n const node = ComponentTreeApi.findNode(ctx.componentId, selector);\n if (node) {\n activateStructure(node);\n }\n}\n","import { CommandDefinition } from '@kaskad/definition';\n\nimport * as appendArrayItem from './append-array-item';\nimport * as collectValuesArray from './collect-values-array';\nimport * as collectValuesMap from './collect-values-map';\nimport * as delay from './delay';\nimport * as get from './get';\nimport * as removeArrayItem from './remove-array-item';\nimport * as run from './run';\nimport * as runComponentMethod from './run-component-method';\nimport * as set from './set';\n\nexport const commands: Record<string, CommandDefinition> = {\n delay,\n // New names\n collectValuesMap,\n collectValuesArray,\n // Legacy aliases for backwards compatibility\n propObject: collectValuesMap,\n propArray: collectValuesArray,\n\n appendArrayItem,\n removeArrayItem,\n\n runComponentMethod,\n\n get,\n set,\n run,\n};\n","import { EvalState, FunctionExecutionStateBuilder, ReactiveFunctionDefinition } from '@kaskad/eval-tree';\nimport { computed, IComputedValue } from 'mobx';\n\n/**\n * Variadic AND function with short-circuit evaluation.\n * Stops at the first falsy value.\n */\nexport const and: ReactiveFunctionDefinition = {\n kind: 'reactive',\n execute: (args: IComputedValue<EvalState>[]) => {\n if (args.length === 0) {\n throw new Error('and requires at least 1 argument');\n }\n\n return computed(() => {\n const state = new FunctionExecutionStateBuilder();\n\n for (const argComputed of args) {\n const argState = argComputed.get();\n\n const earlyReturn = state.checkReady(argState);\n if (earlyReturn) return earlyReturn;\n\n if (!argState.value) {\n return state.success(false);\n }\n }\n\n return state.success(true);\n });\n },\n signature: '(...unknown) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(source: Record<string, unknown>[], path: string[]): unknown {\n const takeDeep = (source: unknown, path: string[]): unknown =>\n path.reduce<unknown>((current, step) => {\n return (current as Record<string, unknown>)?.[step];\n }, source);\n\n return source.map((element) => takeDeep(element, path));\n}\n\nexport const arrayPluck: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown{}[], string[]) => unknown',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(value: unknown[], index: number): unknown {\n return value[index];\n}\n\nexport const at: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown[], number) => unknown',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(value: unknown): boolean {\n return Boolean(value);\n}\n\nexport const bool: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(value: number): number {\n return Math.ceil(value);\n}\n\nexport const ceil: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(number) => number',\n};\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { EvalContext, FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(ctx: EvalContext, selector: string, path: string) {\n return ComponentTreeApi.collectValuesArray<unknown[]>(ctx.componentId, selector, path);\n}\n\nexport const collectValuesArray: FunctionDefinition = {\n kind: 'imperative',\n contextual: true,\n execute,\n signature: '(string, string) => unknown[]',\n};\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { EvalContext, FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(ctx: EvalContext, selector: string, objectKey: string, objectValue: string) {\n return ComponentTreeApi.collectValuesMap(ctx.componentId, selector, objectKey, objectValue);\n}\n\nexport const collectValuesMap: FunctionDefinition = {\n kind: 'imperative',\n contextual: true,\n execute,\n signature: '(string, string, string) => unknown{}',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(strings: string[], separator = ''): string {\n return strings.join(separator);\n}\n\nexport const concat: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown[], string) => string',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nconst execute = (value: unknown): Promise<unknown> => {\n return new Promise((resolve) => setTimeout(() => resolve(value), 500));\n};\n\nexport const delay: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown) => unknown',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(num1: number, num2: number): number {\n return num1 / num2;\n}\n\nexport const divide: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(number, number) => number',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(items: unknown[]): boolean {\n return items.length === 0;\n}\n\nexport const empty: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown[]) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(object: Record<string, unknown>): boolean {\n return Object.keys(object).length === 0;\n}\n\nexport const emptyObject: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown{}) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nconst execute = (a: unknown, b: unknown): boolean => a === b;\n\nexport const eq: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown, unknown) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(value1: unknown, value2: unknown): boolean {\n return value1 === value2;\n}\n\nexport const equal: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown, unknown) => boolean',\n};\n","import { ComponentTreeApi, NodeViewModel } from '@kaskad/component-tree';\nimport { EvalContext, FunctionDefinition } from '@kaskad/eval-tree';\nimport { ValueType } from '@kaskad/types';\n\nexport function execute(ctx: EvalContext, selector: string): NodeViewModel<ValueType> {\n return ComponentTreeApi.getNode(ctx.componentId, selector).evaluating;\n}\n\nexport const evaluating: FunctionDefinition = {\n kind: 'imperative',\n contextual: true,\n execute,\n signature: '(string) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(items: unknown[]): boolean {\n return items.every((item) => !!item);\n}\n\nexport const every: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown[]) => boolean',\n};\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { EvalContext, FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(ctx: EvalContext, selector: string): boolean {\n return ComponentTreeApi.getNode(ctx.componentId, selector).failed;\n}\n\nexport const failed: FunctionDefinition = {\n kind: 'imperative',\n contextual: true,\n execute,\n signature: '(string) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(array: unknown[], allowedValues: unknown[] | Set<unknown> | null): unknown[] {\n if (!allowedValues) {\n return [];\n }\n if (allowedValues instanceof Set) {\n return array.filter((item) => allowedValues.has(item));\n }\n return array.filter((item) => allowedValues.includes(item));\n}\n\nexport const filterIn: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown[], unknown[]) => unknown[]',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(collection: Record<string, unknown>[], key: string, values: unknown[]): unknown | null {\n return values\n .map((value) => collection.find((element) => element[key] === value))\n .filter((item): item is Record<string, unknown> => item !== undefined);\n}\n\nexport const findAllBy: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown{}[], string, unknown[]) => unknown{}[]',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(collection: Record<string, unknown>[], key: string, value: unknown): unknown | null {\n const found = collection.find((element) => element[key] === value);\n return found || null;\n}\n\nexport const findBy: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown{}[], string, unknown) => unknown',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(array: Array<Array<unknown>>): unknown | null {\n return array.flat();\n}\n\nexport const flatten: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown[][]) => unknown[]',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(value: number): number {\n return Math.floor(value);\n}\n\nexport const floor: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(number) => number',\n};\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { log } from '@kaskad/config';\nimport {\n EvalContext,\n FunctionExecutionStateBuilder,\n PromiseValue,\n ReactiveFunctionDefinition,\n} from '@kaskad/eval-tree';\nimport { computed } from 'mobx';\n\nfunction createFailedAsyncValue(error: Error | unknown): PromiseValue {\n return {\n kind: 'promise',\n current: null,\n error: error instanceof Error ? error : new Error('Node lookup failed'),\n pending: false,\n };\n}\n\nfunction warnNodeNotFound(selector: string): void {\n const baseName = selector.split('.')[0];\n const isVariable = baseName.startsWith('$');\n const name = isVariable ? baseName.slice(1) : baseName;\n const type = isVariable ? 'Variable' : 'Property';\n log.trace(`${type} \"${name}\" not found`);\n}\n\nexport const getFn: ReactiveFunctionDefinition = {\n kind: 'reactive',\n contextual: true,\n execute: (ctx: EvalContext, args) => {\n return computed(() => {\n const state = new FunctionExecutionStateBuilder();\n\n // Check if selector argument is ready\n const selectorState = args[0].get();\n const earlyReturn = state.checkReady(selectorState);\n if (earlyReturn) return earlyReturn;\n\n const selector = selectorState.value as string;\n const isOptional = selector.includes('?->') || selector.includes('?.');\n\n // Try to find the target node\n let targetNode;\n try {\n targetNode = ComponentTreeApi.findNode(ctx.componentId, selector);\n } catch (error) {\n // Warn about non-existing variables/properties (only for required selectors)\n if (!isOptional && error instanceof Error && error.message.includes('not found')) {\n warnNodeNotFound(selector);\n }\n\n // Optional selectors return null, required selectors fail with AsyncValue\n return state.success(isOptional ? null : createFailedAsyncValue(error));\n }\n\n // Handle case where findNode returns null (e.g., optional component selector, or traversing missing path)\n if (!targetNode) {\n return state.success(isOptional ? null : createFailedAsyncValue(new Error(`Node not found: ${selector}`)));\n }\n\n // Wrap node value in AsyncValue if needed to propagate evaluating/failed state\n if (targetNode.evaluating || targetNode.failed) {\n const asyncValue: PromiseValue = {\n kind: 'promise',\n current: targetNode.extractedValue,\n error: targetNode.failed ? new Error('Target node failed') : null,\n pending: targetNode.evaluating,\n };\n return state.success(asyncValue);\n }\n\n return state.success(targetNode.extractedValue);\n });\n },\n signature: '(string) => unknown',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nconst execute = (a: number, b: number): boolean => a > b;\n\nexport const gt: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(number, number) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nconst execute = (a: number, b: number): boolean => a >= b;\n\nexport const gte: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(number, number) => boolean',\n};\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { EvalContext, FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(ctx: EvalContext, componentSelector: string) {\n return ComponentTreeApi.findComponent(ctx.componentId, componentSelector)?.id ?? null;\n}\n\nexport const idFn: FunctionDefinition = {\n kind: 'imperative',\n contextual: true,\n execute,\n signature: '(string) => string',\n};\n","import { EvalState, FunctionExecutionStateBuilder, ReactiveFunctionDefinition } from '@kaskad/eval-tree';\nimport { computed, IComputedValue } from 'mobx';\n\n/**\n * Conditional branching with lazy evaluation.\n * Only evaluates the selected branch.\n */\nexport const ifFn: ReactiveFunctionDefinition = {\n kind: 'reactive',\n execute: (args: IComputedValue<EvalState>[]) => {\n if (args.length !== 3) {\n throw new Error('if requires exactly 3 arguments: condition, trueValue, falseValue');\n }\n\n const [conditionComputed, trueComputed, falseComputed] = args;\n\n return computed(() => {\n const state = new FunctionExecutionStateBuilder();\n\n const conditionState = conditionComputed.get();\n const earlyReturn = state.checkReady(conditionState);\n if (earlyReturn) return earlyReturn;\n\n const branchState = conditionState.value ? trueComputed.get() : falseComputed.get();\n const branchEarlyReturn = state.checkReady(branchState);\n if (branchEarlyReturn) return branchEarlyReturn;\n\n return state.success(branchState.value);\n });\n },\n signature: '(unknown, unknown, unknown) => unknown',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(collection: unknown[] | Set<unknown>, value: unknown): boolean {\n if (collection instanceof Set) {\n return collection.has(value);\n }\n return collection.includes(value);\n}\n\nexport const inFn: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown[], unknown) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nfunction replacer(_key: string, value: unknown): unknown {\n if (value instanceof Set) {\n return Array.from(value);\n }\n return value;\n}\n\nexport function execute(arg: unknown): string {\n return JSON.stringify(arg, replacer);\n}\n\nexport const json: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown) => string',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(object: Record<string, unknown>): string[] {\n return Object.keys(object);\n}\n\nexport const keys: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown{}) => string[]',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(value: unknown[]): number {\n return value.length;\n}\n\nexport const length: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown[]) => number',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nconst execute = (a: number, b: number): boolean => a < b;\n\nexport const lt: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(number, number) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nconst execute = (a: number, b: number): boolean => a <= b;\n\nexport const lte: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(number, number) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(num: number, delta: number): number {\n return num - delta;\n}\n\nexport const minus: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(number, number) => number',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(num1: number, num2: number): number {\n return num1 * num2;\n}\n\nexport const multiply: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(number, number) => number',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nconst execute = (a: unknown, b: unknown): boolean => a !== b;\n\nexport const neq: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown, unknown) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(value: unknown): boolean {\n return !value;\n}\n\nexport const not: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(value: unknown): number {\n const number = Number(value);\n if (Number.isNaN(number)) {\n throw new Error(`Cannot convert value ${value} to number`);\n }\n return number;\n}\n\nexport const number: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown) => number',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(parts: unknown[]): Record<string, unknown> {\n const result: Record<string, unknown> = {};\n\n for (let i = 0; i < parts.length; i += 2) {\n const key = parts[i];\n if (typeof key !== 'string') {\n throw new Error(`Invalid key type: ${typeof key}. Expected string`);\n }\n\n result[key] = parts[i + 1];\n }\n\n return result;\n}\n\nexport const objectFn: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown[]) => unknown{}',\n};\n","import { EvalState, FunctionExecutionStateBuilder, ReactiveFunctionDefinition } from '@kaskad/eval-tree';\nimport { computed, IComputedValue } from 'mobx';\n\n/**\n * Variadic OR function with short-circuit evaluation.\n * Stops at the first truthy value.\n */\nexport const or: ReactiveFunctionDefinition = {\n kind: 'reactive',\n execute: (args: IComputedValue<EvalState>[]) => {\n if (args.length === 0) {\n throw new Error('or requires at least 1 argument');\n }\n\n return computed(() => {\n const state = new FunctionExecutionStateBuilder();\n\n for (const argComputed of args) {\n const argState = argComputed.get();\n\n const earlyReturn = state.checkReady(argState);\n if (earlyReturn) return earlyReturn;\n\n if (argState.value) {\n return state.success(true);\n }\n }\n\n return state.success(false);\n });\n },\n signature: '(...unknown) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(source: Record<string, unknown>, path: string[]): unknown {\n return path.reduce<unknown>((current, step) => {\n return (current as Record<string, unknown>)?.[step];\n }, source);\n}\n\nexport const pluck: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown{}, string[]) => unknown',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(a: unknown, b: unknown): unknown {\n return (a as number) + (b as number);\n}\n\nexport const plus: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown, unknown) => unknown',\n};\n","import { AbstractNode } from '@kaskad/component-tree';\nimport { Delimiters } from '@kaskad/config';\nimport { FunctionDefinition } from '@kaskad/eval-tree';\nimport { ComponentRecipe, RawNode } from '@kaskad/schema';\nimport { ArrayValueType, ValueType } from '@kaskad/types';\n\ninterface Dimension {\n items: unknown[];\n itemsType: ArrayValueType;\n item: string;\n index: string;\n first: string | null;\n last: string | null;\n trackBy: string | null; // null = use index, \"\" = use item value directly, \"id\"/\"user.id\" = use property\n}\n\n/**\n * Get a nested property value from an object using dot notation\n * e.g., getNestedProperty({ user: { id: 123 } }, \"user.id\") => 123\n */\nfunction getNestedProperty(obj: unknown, path: string): unknown {\n if (obj === null || obj === undefined) {\n return undefined;\n }\n\n const parts = path.split('.');\n let current: unknown = obj;\n\n for (const part of parts) {\n if (current === null || current === undefined || typeof current !== 'object') {\n return undefined;\n }\n current = (current as Record<string, unknown>)[part];\n }\n\n return current;\n}\n\nexport function execute(dimensions: Dimension[], content: AbstractNode<ValueType>): ComponentRecipe[] {\n return generateCombinations(dimensions).map(({ variables }) => ({\n componentType: 'sys.RefSpace',\n content,\n ...variables,\n }));\n}\n\ninterface CombinationResult {\n variables: Record<string, RawNode>;\n key: unknown;\n}\n\nfunction generateCombinations(dimensions: Dimension[]): CombinationResult[] {\n let results: CombinationResult[] = [{ variables: {}, key: 0 }];\n\n dimensions.forEach((dimension, dimensionIndex) => {\n const tempResults: CombinationResult[] = [];\n\n results.forEach((result) => {\n dimension.items.forEach((item, index) => {\n const newVariables: Record<string, RawNode> = {\n ...result.variables,\n [`${Delimiters.Variable}${dimension.index}`]: {\n _valueType: { type: 'number' },\n _value: index,\n _computation: null,\n _binding: null,\n },\n [`${Delimiters.Variable}${dimension.item}`]: {\n _valueType: dimension.itemsType.item,\n _value: item,\n _computation: null,\n _binding: null,\n },\n };\n if (dimension.first !== null) {\n newVariables[`${Delimiters.Variable}first`] = {\n _valueType: { type: 'boolean' },\n _value: index === 0,\n _computation: null,\n _binding: null,\n };\n }\n\n if (dimension.last !== null) {\n newVariables[`${Delimiters.Variable}last`] = {\n _valueType: { type: 'boolean' },\n _value: dimension.items.length - 1 === index,\n _computation: null,\n _binding: null,\n };\n }\n\n // Compute key for stable identity tracking\n // dimension.trackBy: null = use index, \"\" = use item value, \"prop\" = use property\n let keyPart: unknown;\n\n if (dimension.trackBy !== null) {\n let trackByValue: unknown;\n\n if (dimension.trackBy === '') {\n trackByValue = item;\n } else {\n trackByValue = getNestedProperty(item, dimension.trackBy);\n }\n\n if (trackByValue === null || trackByValue === undefined || trackByValue === '') {\n keyPart = index;\n } else {\n keyPart = trackByValue;\n }\n } else {\n keyPart = index;\n }\n\n const prevKey = result.key;\n const key = dimensionIndex === 0 ? keyPart : `${prevKey}:${keyPart}`;\n\n newVariables[`${Delimiters.Variable}trackBy`] = {\n _valueType: { type: 'string' },\n _value: String(key),\n _computation: null,\n _binding: null,\n };\n\n tempResults.push({ variables: newVariables, key });\n });\n });\n\n results = tempResults;\n });\n\n return results;\n}\n\nexport const repeat: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature:\n '({items: unknown[], itemsType: unknown, item: string, index: string, first: unknown, last: unknown, trackBy: unknown}[], componentSchema) => componentSchema[]',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(value: number, precision = 0): number {\n const multiplier = Math.pow(10, precision);\n return Math.round(value * multiplier) / multiplier;\n}\n\nexport const round: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(number, number) => number',\n};\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { EvalContext, FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(ctx: EvalContext, selector: string): boolean {\n return ComponentTreeApi.isCommandRunning(ctx.componentId, selector);\n}\n\nexport const running: FunctionDefinition = {\n kind: 'imperative',\n contextual: true,\n execute,\n signature: '(string) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(value: unknown[], start: number, end?: number): unknown[] {\n return value.slice(start, end);\n}\n\nexport const slice: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown[], number, number) => unknown[]',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(items: unknown[]): boolean {\n return items.some((item) => !!item);\n}\n\nexport const some: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown[]) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(value: unknown): string {\n return String(value);\n}\n\nexport const string: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown) => string',\n};\n","import { EvalState, FunctionExecutionStateBuilder, ReactiveFunctionDefinition } from '@kaskad/eval-tree';\nimport { computed, IComputedValue } from 'mobx';\n\n/**\n * Switch statement with lazy case evaluation.\n * Supports array mode (legacy) and variadic mode.\n */\nexport const switchFn: ReactiveFunctionDefinition = {\n kind: 'reactive',\n execute: (args: IComputedValue<EvalState>[]) => {\n if (args.length < 2) {\n throw new Error('switch requires at least 2 arguments: value and default');\n }\n\n const valueComputed = args[0];\n\n return computed(() => {\n const state = new FunctionExecutionStateBuilder();\n\n const valueState = valueComputed.get();\n const earlyReturn = state.checkReady(valueState);\n if (earlyReturn) return earlyReturn;\n\n const value = valueState.value;\n\n if (args.length === 3) {\n const casesState = args[1].get();\n const defaultState = args[2].get();\n\n const casesEarlyReturn = state.checkReady(casesState);\n if (casesEarlyReturn) return casesEarlyReturn;\n\n const defaultEarlyReturn = state.checkReady(defaultState);\n if (defaultEarlyReturn) return defaultEarlyReturn;\n\n const cases = casesState.value;\n if (Array.isArray(cases)) {\n if (cases.length % 2 !== 0) {\n throw new Error('Cases array should have even number of elements');\n }\n\n const matchIndex = cases.findIndex((caseValue, index) => index % 2 === 0 && caseValue === value);\n const returnValue = matchIndex >= 0 ? cases[matchIndex + 1] : defaultState.value;\n return state.success(returnValue);\n }\n }\n\n const defaultComputed = args[args.length - 1];\n const caseArgs = args.slice(1, -1);\n\n if (caseArgs.length % 2 !== 0) {\n throw new Error('switch requires an even number of case arguments (key-value pairs)');\n }\n\n for (let i = 0; i < caseArgs.length; i += 2) {\n const caseKeyComputed = caseArgs[i];\n const caseValueComputed = caseArgs[i + 1];\n\n const caseKeyState = caseKeyComputed.get();\n const keyEarlyReturn = state.checkReady(caseKeyState);\n if (keyEarlyReturn) return keyEarlyReturn;\n\n const caseKey = caseKeyState.value;\n\n if (caseKey === value) {\n const caseValueState = caseValueComputed.get();\n const valueEarlyReturn = state.checkReady(caseValueState);\n if (valueEarlyReturn) return valueEarlyReturn;\n\n return state.success(caseValueState.value);\n }\n }\n\n const defaultState = defaultComputed.get();\n const defaultEarlyReturn = state.checkReady(defaultState);\n if (defaultEarlyReturn) return defaultEarlyReturn;\n\n return state.success(defaultState.value);\n });\n },\n signature: '(...unknown) => unknown',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(value: string): string {\n return value.toLowerCase();\n}\n\nexport const toLowerCase: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(string) => string',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(value: string): string {\n return value.toUpperCase();\n}\n\nexport const toUpperCase: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(string) => string',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nimport { and } from './and';\nimport { arrayPluck } from './array-pluck';\nimport { at } from './at';\nimport { bool } from './bool';\nimport { ceil } from './ceil';\nimport { collectValuesArray } from './collect-values-array';\nimport { collectValuesMap } from './collect-values-map';\nimport { concat } from './concat';\nimport { delay } from './delay';\nimport { divide } from './divide';\nimport { empty } from './empty';\nimport { emptyObject } from './empty-object';\nimport { eq } from './eq';\nimport { equal } from './equal';\nimport { evaluating } from './evaluating';\nimport { every } from './every';\nimport { failed } from './failed';\nimport { filterIn } from './filter-in';\nimport { findAllBy } from './find-all-by';\nimport { findBy } from './find-by';\nimport { flatten } from './flatten';\nimport { floor } from './floor';\nimport { getFn } from './get';\nimport { gt } from './gt';\nimport { gte } from './gte';\nimport { idFn } from './id';\n// Reactive functions - now the primary implementations\nimport { ifFn } from './if';\nimport { inFn } from './in';\nimport { json } from './json';\nimport { keys } from './keys';\nimport { length } from './length';\nimport { lt } from './lt';\nimport { lte } from './lte';\nimport { minus } from './minus';\nimport { multiply } from './multiply';\nimport { neq } from './neq';\nimport { not } from './not';\nimport { number } from './number';\nimport { objectFn } from './object';\nimport { or } from './or';\nimport { pluck } from './pluck';\nimport { plus } from './plus';\nimport { repeat } from './repeat';\nimport { round } from './round';\nimport { running } from './running';\nimport { slice } from './slice';\nimport { some } from './some';\nimport { string } from './string';\nimport { switchFn } from './switch';\nimport { toLowerCase } from './to-lower-case';\nimport { toUpperCase } from './to-upper-case';\n\n/**\n * All formula functions available in the system.\n *\n * Control flow functions use reactive implementations with lazy evaluation:\n * - `if`: Conditional evaluation (3 args: condition, trueValue, falseValue)\n * - `and`, `or`: Variadic logical operators with short-circuit evaluation\n * - `switch`: Variadic pattern matching with lazy case evaluation\n * - `some`, `every`: Array element checkers (imperative, not lazy)\n */\nexport const formulaFunctions: Record<string, FunctionDefinition> = {\n // Collection functions\n collectValuesMap,\n collectValuesArray,\n propObject: collectValuesMap,\n propArray: collectValuesArray,\n findBy,\n findAllBy,\n at,\n not,\n equal,\n\n // Array element checkers (imperative)\n some,\n every,\n\n // Control flow (reactive with lazy evaluation)\n if: ifFn,\n and,\n or,\n switch: switchFn,\n\n // Utilities\n in: inFn,\n object: objectFn,\n bool,\n length,\n empty,\n concat,\n pluck,\n flatten,\n json,\n minus,\n plus,\n divide,\n multiply,\n running,\n get: getFn,\n id: idFn,\n repeat,\n emptyObject,\n arrayPluck,\n string,\n number,\n delay,\n evaluating,\n failed,\n keys,\n toUpperCase,\n toLowerCase,\n ceil,\n floor,\n round,\n slice,\n filterIn,\n eq,\n neq,\n gt,\n lt,\n gte,\n lte,\n};\n","import { DefinitionStore } from '@kaskad/definition';\nimport { FunctionRegistry } from '@kaskad/eval-tree';\n\nimport { commands } from './commands';\nimport { formulaFunctions } from './functions';\n\nexport function registerCommonDefinitions() {\n const defStore = DefinitionStore.getInstance();\n defStore.setCommands(commands);\n\n // Register all functions (FunctionRegistry wraps imperative functions automatically)\n FunctionRegistry.getInstance().setFunctions(formulaFunctions);\n}\n","import { CommandNode, CommandNodeStructure, ComponentStore, TComponent } from '@kaskad/component-tree';\nimport { log } from '@kaskad/config';\nimport { CommandExecute, DefinitionStore } from '@kaskad/definition';\nimport { AnyFn } from '@kaskad/types';\nimport { IComputedValue, isComputed } from 'mobx';\nimport { firstValueFrom, Observable as RxObservable } from 'rxjs';\n\nconst compiledCache = new WeakMap<\n CommandNodeStructure,\n {\n target?: AnyFn;\n init?: AnyFn;\n finalize?: AnyFn;\n }\n>();\n\nfunction getOrCompile(structure: CommandNodeStructure, key: 'target' | 'init' | 'finalize'): AnyFn {\n let cached = compiledCache.get(structure);\n if (!cached) {\n cached = {};\n compiledCache.set(structure, cached);\n }\n if (!cached[key]) {\n cached[key] = createJsFunction(structure[key] as string);\n }\n return cached[key];\n}\n\nexport async function runCommand(node: CommandNode, ...args: unknown[]): Promise<unknown> {\n const structure = node.structure;\n\n if (!structure) {\n const comp = node.position.componentId\n ? ComponentStore.getInstance().getComponent(node.position.componentId)\n : null;\n const src = comp?.sourceUrl ? `[${comp.sourceUrl}] ` : '';\n log.trace(`${src}Command is empty — no handler was bound to it.`);\n return null;\n }\n\n const component = ComponentStore.getInstance().getComponentOrThrow(structure.owner);\n const src = component.sourceUrl ? `[${component.sourceUrl}] ` : '';\n const functionsProxy = proxifySubCommands(component);\n\n try {\n if (structure.init) {\n log.trace(`${src}Running init hook`);\n const initFunc = getOrCompile(structure, 'init');\n await initFunc(functionsProxy, args);\n }\n if (structure.runnerType === 'inline') {\n log.trace(`${src}Executing inline callback (${args.length} args)`);\n return await (structure.target as unknown as AnyFn)(...args);\n }\n const preview = (structure.target as string).slice(0, 80);\n log.trace(`${src}Executing command: ${preview}`);\n const targetFunc = getOrCompile(structure, 'target');\n return await targetFunc(functionsProxy, args);\n } catch (e) {\n throw new Error(`${src}Error executing ${structure.runnerType === 'inline' ? 'inline callback' : 'command'}`, {\n cause: e,\n });\n } finally {\n if (structure.finalize) {\n try {\n log.trace(`${src}Running finalize hook`);\n const finalizeFunc = getOrCompile(structure, 'finalize');\n await finalizeFunc(functionsProxy, args);\n } catch (finalizeError) {\n log.error(`${src}Error in finalize hook`, finalizeError);\n }\n }\n }\n}\n\nfunction proxifySubCommands(component: TComponent): Record<string, unknown> {\n return new Proxy(\n {},\n {\n get(\n target: Record<string, CommandExecute<unknown>>,\n functionName: string | symbol,\n ): (...args: unknown[]) => unknown {\n return (...functionArgs: unknown[]) => {\n let execute: CommandExecute<unknown>;\n if (functionName in target) {\n execute = target[functionName as string];\n } else {\n const def = DefinitionStore.getInstance().getCommand(functionName as string);\n execute = target[functionName as string] = def.execute;\n }\n\n const commandCtx = {\n componentId: component.id,\n };\n const result = execute(commandCtx, ...functionArgs);\n\n if (result instanceof RxObservable) {\n return firstValueFrom(result);\n }\n if (result instanceof Promise) {\n return result;\n }\n if (isComputed(result)) {\n return (result as IComputedValue<unknown>).get();\n }\n return result;\n };\n },\n },\n );\n}\n\n/**\n * Creates a JavaScript function from a string of code.\n *\n * SECURITY WARNING: This function uses `new Function()` to execute dynamic code.\n * Only use with schemas from trusted sources. Malicious schemas could execute\n * arbitrary code in the browser context, leading to XSS or data theft.\n *\n * The code has access to:\n * - All registered commands via destructured parameters\n * - Function arguments via the `args` parameter\n */\nfunction createJsFunction(func: string): AnyFn {\n const commandNames = DefinitionStore.getInstance().getCommandNames();\n const commandsStr = commandNames.length ? `{ ${commandNames.join(', ')} }` : 'commands';\n\n return new Function(commandsStr, 'args', `return (async () => { ${func} })();`) as AnyFn;\n}\n","import { ComponentRawDefinition } from '@kaskad/schema';\n\nexport const componentsDefinitions: Record<string, ComponentRawDefinition> = {\n 'sys.Box': {\n properties: {\n 'content@component': null,\n },\n },\n 'sys.Group': {\n properties: {\n 'children@component[]': [],\n },\n },\n 'sys.RefSpace': {\n traits: ['sys.Box'],\n properties: {},\n },\n 'sys.Facade': {\n traits: ['sys.Box'],\n properties: {},\n },\n};\n","import { DefinitionStore } from '@kaskad/definition';\nimport { unfoldComponentDefinitions } from '@kaskad/schema';\n\nimport { componentsDefinitions } from './components/definitions';\n\nexport function autoRegisterCommonDefinitions() {\n DefinitionStore.getInstance().setComponents(unfoldComponentDefinitions(componentsDefinitions));\n}\n","import { ComponentRawDefinition } from '@kaskad/schema';\n\nexport const componentsDefinitions: Record<string, ComponentRawDefinition> = {\n 'browser.Styled': {\n properties: {\n 'styleClass@string': null,\n },\n },\n 'browser.Element': {\n traits: ['sys.Group', 'browser.Styled'],\n properties: {\n 'tag@string': null,\n 'innerHTML@string': null,\n },\n },\n 'browser.Clickable': {\n traits: ['sys.Box'],\n properties: {\n 'click@()': null,\n 'stopPropagation@boolean': null,\n },\n },\n 'browser.Focusable': {\n traits: ['sys.Box'],\n properties: {\n 'tabIndex@number': null,\n 'blur@command': null,\n },\n },\n 'browser.Dialog': {\n traits: ['sys.Box', 'browser.Styled'],\n properties: {\n 'close@(unknown)': null,\n },\n },\n};\n","import { DefinitionStore } from '@kaskad/definition';\nimport { unfoldComponentDefinitions } from '@kaskad/schema';\n\nimport { componentsDefinitions } from './components/definitions';\n\nexport function autoRegisterBrowserDefinitions() {\n DefinitionStore.getInstance().setComponents(unfoldComponentDefinitions(componentsDefinitions));\n}\n","import { ComponentRawDefinition } from '@kaskad/schema';\n\nexport const componentsDefinitions: Record<string, ComponentRawDefinition> = {\n 'forms.Input': {\n properties: {\n 'inputKey@string': null,\n 'value@unknown': null,\n 'setValue@(unknown)': `set('value', args[0])`,\n 'disabled@boolean': false,\n 'dirty@boolean': false,\n 'touched@boolean': false,\n 'touch@()': `set('touched', true)`,\n 'validators@validator[]': [],\n 'validity@forms.Validity': '=> validate(value, validators)',\n },\n },\n 'forms.BooleanInput': {\n traits: ['forms.Input'],\n properties: {\n 'value@boolean': null,\n 'setValue@(boolean)': `set('value', args[0])`,\n },\n },\n 'forms.StringInput': {\n traits: ['forms.Input'],\n properties: {\n 'value@string': null,\n 'setValue@(string)': `set('value', args[0])`,\n },\n },\n 'forms.NumberInput': {\n traits: ['forms.Input'],\n properties: {\n 'value@number': null,\n 'setValue@(number)': `set('value', args[0])`,\n },\n },\n 'forms.CustomInput': {\n traits: ['sys.Box', 'forms.Input'],\n properties: {},\n },\n 'forms.InputComposite': {\n traits: ['forms.Input'],\n properties: {\n 'touched@boolean': `=> some(propArray(':forms.Input', 'touched'))`,\n 'dirty@boolean': `=> some(propArray(':forms.Input', 'dirty'))`,\n 'subInputsValid@boolean': `=> every(propArray(':forms.Input', 'validity.valid'))`,\n 'selfValidity@forms.Validity': '=> validate(value, validators)',\n 'validity@forms.Validity': `=> { valid: every([selfValidity.valid, subInputsValid]), errors: selfValidity.errors }`,\n },\n },\n 'forms.InputGroup': {\n traits: ['sys.Box', 'forms.InputComposite'],\n properties: {\n 'value@unknown{}': {\n bindingType: 'object',\n componentSelector: ':forms.Input',\n mapping: {\n key: 'inputKey',\n value: 'value',\n },\n },\n },\n },\n 'forms.BooleanInputGroup': {\n traits: ['sys.Box', 'forms.InputComposite'],\n properties: {\n 'value@unknown#': {\n bindingType: 'selection',\n componentSelector: ':forms.Input',\n mapping: {\n key: 'inputKey',\n selected: 'value',\n },\n },\n },\n },\n 'forms.InputArray': {\n traits: ['sys.Box', 'forms.InputComposite'],\n properties: {\n 'value@unknown[]': {\n bindingType: 'array',\n componentSelector: ':forms.Input',\n mapping: {\n value: 'value',\n },\n },\n },\n },\n};\n","import { ValidatorDefinition } from './validator.types';\n\nexport class ValidatorRegistry {\n private static instance: ValidatorRegistry;\n private validators: Record<string, ValidatorDefinition> = {};\n\n static getInstance(): ValidatorRegistry {\n if (!ValidatorRegistry.instance) {\n ValidatorRegistry.instance = new ValidatorRegistry();\n }\n return ValidatorRegistry.instance;\n }\n\n register(validatorType: string, validator: ValidatorDefinition) {\n this.validators[validatorType] = validator;\n }\n\n get(validatorType: string): ValidatorDefinition {\n return this.validators[validatorType];\n }\n}\n","import { log } from '@kaskad/config';\nimport { ImperativeFunctionDefinition } from '@kaskad/eval-tree';\n\nimport { ValidatorRegistry } from '../validator-registry';\nimport { ValidatorProperty } from '../validator.types';\n\nexport interface ValidationError {\n validator: string;\n message: string;\n}\n\nexport interface Validity {\n valid: boolean;\n errors: ValidationError[];\n}\n\nexport async function execute(value: unknown, validators: ValidatorProperty[]): Promise<Validity> {\n const errors: Validity = { valid: true, errors: [] };\n for (const validator of validators) {\n try {\n const result = await runValidator(value, validator);\n if (result) {\n errors.valid = false;\n errors.errors.push(result);\n break;\n }\n } catch (e) {\n log.error(`Error running validator \"${validator.validatorType}\":`, e);\n errors.valid = false;\n break;\n }\n }\n return errors;\n}\n\nasync function runValidator(value: unknown, validator: ValidatorProperty): Promise<ValidationError | null> {\n const validatorDef = ValidatorRegistry.getInstance().get(validator.validatorType);\n if (!validatorDef) {\n throw new Error(`Validator \"${validator.validatorType}\" not registered`);\n }\n\n if (validator.disabled) {\n return null;\n }\n\n if (validatorDef.createMessage) {\n validator.message = validatorDef.createMessage(validator.params);\n }\n validator.message = replacePlaceholders(validator.message || validatorDef.defaultMessage, validator.params);\n\n const validationResult = await validatorDef.validate(value, validator);\n if (validationResult) {\n return { validator: validator.validatorType, message: validationResult.message };\n }\n return null;\n}\n\nfunction replacePlaceholders(template: string, params: Record<string, unknown>): string {\n return template.replace(/\\[\\[(\\w+)]]/g, (match, key) => {\n if (key in params) {\n return String(params[key]);\n }\n return match;\n });\n}\n\nexport const validate: ImperativeFunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown, unknown[]) => {valid: boolean, errors: {validator: string, message: string}[]}',\n};\n","import { ReactiveFunctionDefinition, wrapImperativeAsReactive } from '@kaskad/eval-tree';\n\nimport { validate } from './validate';\n\nexport const formulaFunctions: Record<string, ReactiveFunctionDefinition> = {\n validate: wrapImperativeAsReactive(validate),\n};\n","import { ValidationResult, ValidatorDefinition } from '../validator.types';\n\nconst pattern =\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n\nexport const email: ValidatorDefinition<object> = {\n params: {},\n defaultMessage: 'The field must be a valid email address',\n validate(value: unknown, validator): ValidationResult {\n if (!value) {\n return null;\n }\n\n const invalid = typeof value !== 'string' || !value.toLowerCase().match(pattern);\n if (invalid) {\n return { message: validator.message };\n }\n\n return null;\n },\n};\n","import { ValidationResult, ValidatorDefinition } from '../validator.types';\n\nexport const equals: ValidatorDefinition<{ value: unknown }> = {\n params: {\n value: { type: 'unknown' },\n },\n defaultMessage: 'The value must be equal to [[value]]',\n validate(value: unknown, validator): ValidationResult {\n if (!value) {\n return null;\n }\n\n const invalid = value !== validator.params.value;\n if (invalid) {\n return { message: validator.message };\n }\n\n return null;\n },\n};\n","import { ValidationResult, ValidatorDefinition } from '../validator.types';\n\nexport const maxLength: ValidatorDefinition<{ maxLength: number }> = {\n params: {\n maxLength: { type: 'number' },\n },\n defaultMessage: 'The field must have at most [[maxLength]] characters',\n validate(value: unknown, validator): ValidationResult {\n if (!value) {\n return null;\n }\n\n const invalid = typeof value !== 'string' || value.length > validator.params.maxLength;\n if (invalid) {\n return { message: validator.message };\n }\n\n return null;\n },\n};\n","import { ValidationResult, ValidatorDefinition } from '../validator.types';\n\nexport const min: ValidatorDefinition<{ min: number }> = {\n params: {\n min: { type: 'number' },\n },\n defaultMessage: 'The value must be [[min]] or higher',\n validate(value: unknown, validator): ValidationResult {\n if (!value) {\n return null;\n }\n\n const invalid = typeof value !== 'number' || value < validator.params.min;\n if (invalid) {\n return { message: validator.message };\n }\n\n return null;\n },\n};\n","import { ValidationResult, ValidatorDefinition } from '../validator.types';\n\nexport const minLength: ValidatorDefinition<{ minLength: number }> = {\n params: {\n minLength: { type: 'number' },\n },\n defaultMessage: `The field must have at least [[minLength]] characters`,\n validate(value: unknown, validator): ValidationResult {\n if (!value) {\n return null;\n }\n\n const invalid = typeof value !== 'string' || value.length < validator.params.minLength;\n if (invalid) {\n return { message: validator.message };\n }\n\n return null;\n },\n};\n","import { ValidationResult, ValidatorDefinition } from '../validator.types';\n\nexport const required: ValidatorDefinition<object> = {\n params: {},\n defaultMessage: 'The field is required',\n validate(value: unknown, validator): ValidationResult {\n const invalid = value === undefined || value === null || value === '' || Number.isNaN(value);\n if (invalid) {\n return { message: validator.message };\n }\n\n return null;\n },\n};\n","import { ValidatorDefinition } from '../validator.types';\nimport { email } from './email';\nimport { equals } from './equals';\nimport { maxLength } from './max-length';\nimport { min } from './min';\nimport { minLength } from './min-length';\nimport { required } from './required';\n\nexport const validators: Record<string, ValidatorDefinition> = {\n required,\n email,\n min,\n maxLength,\n minLength,\n equals,\n};\n","import { DefinitionStore } from '@kaskad/definition';\nimport { FunctionRegistry } from '@kaskad/eval-tree';\nimport { unfoldComponentDefinitions } from '@kaskad/schema';\n\nimport { componentsDefinitions } from './components/definitions';\nimport { formulaFunctions } from './functions';\nimport { ValidatorRegistry } from './validator-registry';\nimport { ValidatorDefinition } from './validator.types';\nimport { validators } from './validators';\n\nexport function registerValidator(validatorType: string, def: ValidatorDefinition) {\n DefinitionStore.getInstance().setVariantShapeKind('validator', validatorType, {\n params: { type: 'object', fields: def.params },\n });\n ValidatorRegistry.getInstance().register(validatorType, def);\n}\n\nexport function registerValidators(validators: Record<string, ValidatorDefinition>): void {\n for (const [validatorType, def] of Object.entries(validators)) {\n registerValidator(validatorType, def);\n }\n}\n\nfunction registerShapes(): void {\n DefinitionStore.getInstance().setVariantShape('validator', {\n message: { type: 'string' },\n disabled: { type: 'boolean' },\n });\n DefinitionStore.getInstance().setShape('forms.Validity', {\n valid: { type: 'boolean' },\n errors: {\n type: 'array',\n item: {\n type: 'object',\n fields: {\n validator: { type: 'string' },\n message: { type: 'string' },\n },\n },\n },\n });\n}\n\nexport function autoRegisterFormsDefinitions() {\n registerShapes();\n registerValidators(validators);\n FunctionRegistry.getInstance().setFunctions(formulaFunctions);\n DefinitionStore.getInstance().setComponents(unfoldComponentDefinitions(componentsDefinitions));\n}\n","import { componentTreeConfig } from '@kaskad/component-tree';\n\nimport { runCommand } from './run-command';\n\nexport function initRuntime(): void {\n componentTreeConfig.runCommand = runCommand;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["equal","syncNodeValueAndComponents","updateComponentsValues","execute","delay","collectValuesMap","collectValuesArray","formulaFunctions","RxObservable","componentsDefinitions"],"mappings":"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"}
1
+ {"version":3,"file":"kaskad-core.mjs","sources":["../../../../libs/core/src/lib/util/template-loading-tracker.ts","../../../../libs/core/src/lib/plugins/common/commands/delay.ts","../../../../libs/core/src/lib/plugins/common/commands/index.ts","../../../../libs/core/src/lib/plugins/common/functions/and.ts","../../../../libs/core/src/lib/plugins/common/functions/array-pluck.ts","../../../../libs/core/src/lib/plugins/common/functions/at.ts","../../../../libs/core/src/lib/plugins/common/functions/bool.ts","../../../../libs/core/src/lib/plugins/common/functions/ceil.ts","../../../../libs/core/src/lib/plugins/common/functions/concat.ts","../../../../libs/core/src/lib/plugins/common/functions/delay.ts","../../../../libs/core/src/lib/plugins/common/functions/divide.ts","../../../../libs/core/src/lib/plugins/common/functions/empty.ts","../../../../libs/core/src/lib/plugins/common/functions/empty-object.ts","../../../../libs/core/src/lib/plugins/common/functions/eq.ts","../../../../libs/core/src/lib/plugins/common/functions/every.ts","../../../../libs/core/src/lib/plugins/common/functions/filter-in.ts","../../../../libs/core/src/lib/plugins/common/functions/find-all-by.ts","../../../../libs/core/src/lib/plugins/common/functions/find-by.ts","../../../../libs/core/src/lib/plugins/common/functions/flatten.ts","../../../../libs/core/src/lib/plugins/common/functions/floor.ts","../../../../libs/core/src/lib/plugins/common/functions/gt.ts","../../../../libs/core/src/lib/plugins/common/functions/gte.ts","../../../../libs/core/src/lib/plugins/common/functions/if.ts","../../../../libs/core/src/lib/plugins/common/functions/in.ts","../../../../libs/core/src/lib/plugins/common/functions/json.ts","../../../../libs/core/src/lib/plugins/common/functions/keys.ts","../../../../libs/core/src/lib/plugins/common/functions/length.ts","../../../../libs/core/src/lib/plugins/common/functions/lt.ts","../../../../libs/core/src/lib/plugins/common/functions/lte.ts","../../../../libs/core/src/lib/plugins/common/functions/minus.ts","../../../../libs/core/src/lib/plugins/common/functions/modulo.ts","../../../../libs/core/src/lib/plugins/common/functions/multiply.ts","../../../../libs/core/src/lib/plugins/common/functions/negate.ts","../../../../libs/core/src/lib/plugins/common/functions/neq.ts","../../../../libs/core/src/lib/plugins/common/functions/not.ts","../../../../libs/core/src/lib/plugins/common/functions/null-coalesce.ts","../../../../libs/core/src/lib/plugins/common/functions/number.ts","../../../../libs/core/src/lib/plugins/common/functions/object.ts","../../../../libs/core/src/lib/plugins/common/functions/or.ts","../../../../libs/core/src/lib/plugins/common/functions/pluck.ts","../../../../libs/core/src/lib/plugins/common/functions/plus.ts","../../../../libs/core/src/lib/plugins/common/functions/round.ts","../../../../libs/core/src/lib/plugins/common/functions/slice.ts","../../../../libs/core/src/lib/plugins/common/functions/some.ts","../../../../libs/core/src/lib/plugins/common/functions/string.ts","../../../../libs/core/src/lib/plugins/common/functions/switch.ts","../../../../libs/core/src/lib/plugins/common/functions/to-lower-case.ts","../../../../libs/core/src/lib/plugins/common/functions/to-upper-case.ts","../../../../libs/core/src/lib/plugins/common/functions/index.ts","../../../../libs/core/src/lib/plugins/common/register.ts","../../../../libs/core/src/lib/plugins/register-plugin.ts","../../../../libs/core/src/lib/lowering/lower-formula-ast-node.ts","../../../../libs/core/src/lib/lowering/lower-formula.ts","../../../../libs/core/src/lib/bindings/bind-array.ts","../../../../libs/core/src/lib/bindings/bind-mirror.ts","../../../../libs/core/src/lib/bindings/bind-object.ts","../../../../libs/core/src/lib/bindings/bind-selection.ts","../../../../libs/core/src/lib/bindings/add-binding.ts","../../../../libs/core/src/lib/constants.ts","../../../../libs/core/src/lib/lowering/lower-node-schema.ts","../../../../libs/core/src/lib/lowering/lower-computation-schema.ts","../../../../libs/core/src/lib/reactivity/computation/activate-for.ts","../../../../libs/core/src/lib/reactivity/structure/activate-array.ts","../../../../libs/core/src/lib/hooker.ts","../../../../libs/core/src/lib/reactivity/structure/activate-component.ts","../../../../libs/core/src/lib/reactivity/structure/activate-map.ts","../../../../libs/core/src/lib/reactivity/structure/activate-object.ts","../../../../libs/core/src/lib/reactivity/structure/activate-shape.ts","../../../../libs/core/src/lib/reactivity/structure/activate-variant-shape.ts","../../../../libs/core/src/lib/reactivity/activate-structure.ts","../../../../libs/core/src/lib/reactivity/computation/activate-formula.ts","../../../../libs/core/src/lib/reactivity/computation/activate-template.ts","../../../../libs/core/src/lib/reactivity/activate-computation.ts","../../../../libs/core/src/lib/reactivity/activate-node.ts","../../../../libs/core/src/lib/run-command.ts","../../../../libs/core/src/lib/plugins/sys/commands/append-array-item.ts","../../../../libs/core/src/lib/plugins/sys/commands/get.ts","../../../../libs/core/src/lib/plugins/sys/commands/prop-array.ts","../../../../libs/core/src/lib/plugins/sys/commands/prop-object.ts","../../../../libs/core/src/lib/plugins/sys/commands/remove-array-item.ts","../../../../libs/core/src/lib/plugins/sys/commands/run.ts","../../../../libs/core/src/lib/plugins/sys/commands/run-component-method.ts","../../../../libs/core/src/lib/plugins/sys/commands/set.ts","../../../../libs/core/src/lib/plugins/sys/commands/index.ts","../../../../libs/core/src/lib/plugins/sys/components/definitions.ts","../../../../libs/core/src/lib/plugins/sys/functions/evaluating.ts","../../../../libs/core/src/lib/plugins/sys/functions/failed.ts","../../../../libs/core/src/lib/plugins/sys/functions/get.ts","../../../../libs/core/src/lib/plugins/sys/functions/id.ts","../../../../libs/core/src/lib/plugins/sys/functions/prop-array.ts","../../../../libs/core/src/lib/plugins/sys/functions/prop-object.ts","../../../../libs/core/src/lib/plugins/sys/functions/repeat.ts","../../../../libs/core/src/lib/plugins/sys/functions/running.ts","../../../../libs/core/src/lib/plugins/sys/functions/index.ts","../../../../libs/core/src/lib/plugins/sys/register.ts","../../../../libs/core/src/lib/plugins/browser/components/definitions.ts","../../../../libs/core/src/lib/plugins/browser/register.ts","../../../../libs/core/src/lib/plugins/forms/components/definitions.ts","../../../../libs/core/src/lib/plugins/forms/validator-registry.ts","../../../../libs/core/src/lib/plugins/forms/functions/validate.ts","../../../../libs/core/src/lib/plugins/forms/functions/index.ts","../../../../libs/core/src/lib/plugins/forms/validators/email.ts","../../../../libs/core/src/lib/plugins/forms/validators/equals.ts","../../../../libs/core/src/lib/plugins/forms/validators/max-length.ts","../../../../libs/core/src/lib/plugins/forms/validators/min.ts","../../../../libs/core/src/lib/plugins/forms/validators/min-length.ts","../../../../libs/core/src/lib/plugins/forms/validators/required.ts","../../../../libs/core/src/lib/plugins/forms/validators/index.ts","../../../../libs/core/src/lib/plugins/forms/register.ts","../../../../libs/core/src/lib/init.ts","../../../../libs/core/src/kaskad-core.ts"],"sourcesContent":["class TemplateLoadingTracker {\n private pendingLoads = new Set<string>();\n private completionPromise: Promise<void> | null = null;\n private resolveCompletion: (() => void) | null = null;\n\n get allLoadsComplete(): Promise<void> {\n if (!this.completionPromise) {\n return Promise.resolve();\n }\n return this.completionPromise;\n }\n\n startLoading(templateKey: string): void {\n this.pendingLoads.add(templateKey);\n\n if (!this.completionPromise) {\n this.completionPromise = new Promise((resolve) => {\n this.resolveCompletion = resolve;\n });\n }\n }\n\n finishLoading(templateKey: string): void {\n // Only process if this load was actually being tracked\n if (!this.pendingLoads.has(templateKey)) {\n return;\n }\n\n this.pendingLoads.delete(templateKey);\n\n if (this.pendingLoads.size === 0) {\n this.resolveCompletion?.();\n this.completionPromise = null;\n this.resolveCompletion = null;\n }\n }\n}\n\n// Export a singleton instance for tracking template loading operations\nexport const templateLoadingTracker = new TemplateLoadingTracker();\n","import { CommandContext } from '@kaskad/definition';\n\nexport function execute(_ctx: CommandContext, ms: number): Promise<void> {\n return new Promise<void>((resolve) => setTimeout(() => resolve(), ms));\n}\n","import { CommandDefinition } from '@kaskad/definition';\n\nimport * as delay from './delay';\n\nexport const commands: Record<string, CommandDefinition> = {\n delay,\n};\n","import { EvalState, FunctionExecutionStateBuilder, ReactiveFunctionDefinition } from '@kaskad/eval-tree';\nimport { computed, IComputedValue } from 'mobx';\n\n/**\n * Variadic AND function with short-circuit evaluation.\n * Stops at the first falsy value.\n */\nexport const and: ReactiveFunctionDefinition = {\n kind: 'reactive',\n execute: (args: IComputedValue<EvalState>[]) => {\n if (args.length === 0) {\n throw new Error('and requires at least 1 argument');\n }\n\n return computed(() => {\n const state = new FunctionExecutionStateBuilder();\n\n for (const argComputed of args) {\n const argState = argComputed.get();\n\n const earlyReturn = state.checkReady(argState);\n if (earlyReturn) return earlyReturn;\n\n if (!argState.value) {\n return state.success(false);\n }\n }\n\n return state.success(true);\n });\n },\n signature: '(...unknown) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(source: Record<string, unknown>[], path: string[]): unknown {\n const takeDeep = (source: unknown, path: string[]): unknown =>\n path.reduce<unknown>((current, step) => {\n return (current as Record<string, unknown>)?.[step];\n }, source);\n\n return source.map((element) => takeDeep(element, path));\n}\n\nexport const arrayPluck: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown{}[], string[]) => unknown',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(value: unknown[], index: number): unknown {\n return value[index];\n}\n\nexport const at: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown[], number) => unknown',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(value: unknown): boolean {\n return Boolean(value);\n}\n\nexport const bool: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(value: number): number {\n return Math.ceil(value);\n}\n\nexport const ceil: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(number) => number',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(strings: string[], separator = ''): string {\n return strings.join(separator);\n}\n\nexport const concat: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown[], string) => string',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nconst execute = (value: unknown): Promise<unknown> => {\n return new Promise((resolve) => setTimeout(() => resolve(value), 500));\n};\n\nexport const delay: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown) => unknown',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(num1: number, num2: number): number {\n return num1 / num2;\n}\n\nexport const divide: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(number, number) => number',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(items: unknown[]): boolean {\n return items.length === 0;\n}\n\nexport const empty: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown[]) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(object: Record<string, unknown>): boolean {\n return Object.keys(object).length === 0;\n}\n\nexport const emptyObject: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown{}) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nconst execute = (a: unknown, b: unknown): boolean => a === b;\n\nexport const eq: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown, unknown) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(items: unknown[]): boolean {\n return items.every((item) => !!item);\n}\n\nexport const every: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown[]) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(array: unknown[], allowedValues: unknown[] | Set<unknown> | null): unknown[] {\n if (!allowedValues) {\n return [];\n }\n if (allowedValues instanceof Set) {\n return array.filter((item) => allowedValues.has(item));\n }\n return array.filter((item) => allowedValues.includes(item));\n}\n\nexport const filterIn: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown[], unknown[]) => unknown[]',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(collection: Record<string, unknown>[], key: string, values: unknown[]): unknown | null {\n return values\n .map((value) => collection.find((element) => element[key] === value))\n .filter((item): item is Record<string, unknown> => item !== undefined);\n}\n\nexport const findAllBy: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown{}[], string, unknown[]) => unknown{}[]',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(collection: Record<string, unknown>[], key: string, value: unknown): unknown | null {\n const found = collection.find((element) => element[key] === value);\n return found || null;\n}\n\nexport const findBy: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown{}[], string, unknown) => unknown',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(array: Array<Array<unknown>>): unknown | null {\n return array.flat();\n}\n\nexport const flatten: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown[][]) => unknown[]',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(value: number): number {\n return Math.floor(value);\n}\n\nexport const floor: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(number) => number',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nconst execute = (a: number, b: number): boolean => a > b;\n\nexport const gt: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(number, number) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nconst execute = (a: number, b: number): boolean => a >= b;\n\nexport const gte: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(number, number) => boolean',\n};\n","import { EvalState, FunctionExecutionStateBuilder, ReactiveFunctionDefinition } from '@kaskad/eval-tree';\nimport { computed, IComputedValue } from 'mobx';\n\n/**\n * Conditional branching with lazy evaluation.\n * Only evaluates the selected branch.\n */\nexport const ifFn: ReactiveFunctionDefinition = {\n kind: 'reactive',\n execute: (args: IComputedValue<EvalState>[]) => {\n if (args.length !== 3) {\n throw new Error('if requires exactly 3 arguments: condition, trueValue, falseValue');\n }\n\n const [conditionComputed, trueComputed, falseComputed] = args;\n\n return computed(() => {\n const state = new FunctionExecutionStateBuilder();\n\n const conditionState = conditionComputed.get();\n const earlyReturn = state.checkReady(conditionState);\n if (earlyReturn) return earlyReturn;\n\n const branchState = conditionState.value ? trueComputed.get() : falseComputed.get();\n const branchEarlyReturn = state.checkReady(branchState);\n if (branchEarlyReturn) return branchEarlyReturn;\n\n return state.success(branchState.value);\n });\n },\n signature: '(unknown, unknown, unknown) => unknown',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(collection: unknown[] | Set<unknown>, value: unknown): boolean {\n if (collection instanceof Set) {\n return collection.has(value);\n }\n return collection.includes(value);\n}\n\nexport const inFn: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown[], unknown) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nfunction replacer(_key: string, value: unknown): unknown {\n if (value instanceof Set) {\n return Array.from(value);\n }\n return value;\n}\n\nexport function execute(arg: unknown): string {\n return JSON.stringify(arg, replacer);\n}\n\nexport const json: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown) => string',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(object: Record<string, unknown>): string[] {\n return Object.keys(object);\n}\n\nexport const keys: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown{}) => string[]',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(value: unknown[]): number {\n return value.length;\n}\n\nexport const length: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown[]) => number',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nconst execute = (a: number, b: number): boolean => a < b;\n\nexport const lt: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(number, number) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nconst execute = (a: number, b: number): boolean => a <= b;\n\nexport const lte: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(number, number) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(num: number, delta: number): number {\n return num - delta;\n}\n\nexport const minus: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(number, number) => number',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(a: number, b: number): number {\n return a % b;\n}\n\nexport const modulo: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(number, number) => number',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(num1: number, num2: number): number {\n return num1 * num2;\n}\n\nexport const multiply: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(number, number) => number',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(num: number): number {\n return -num;\n}\n\nexport const negate: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(number) => number',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nconst execute = (a: unknown, b: unknown): boolean => a !== b;\n\nexport const neq: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown, unknown) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(value: unknown): boolean {\n return !value;\n}\n\nexport const not: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown) => boolean',\n};\n","import { EvalState, FunctionExecutionStateBuilder, ReactiveFunctionDefinition } from '@kaskad/eval-tree';\nimport { computed, IComputedValue } from 'mobx';\n\n/**\n * Null coalescing with lazy evaluation.\n * Returns left if non-null, otherwise evaluates and returns right.\n */\nexport const nullCoalesce: ReactiveFunctionDefinition = {\n kind: 'reactive',\n execute: (args: IComputedValue<EvalState>[]) => {\n if (args.length !== 2) {\n throw new Error('nullCoalesce requires exactly 2 arguments');\n }\n\n const [leftComputed, rightComputed] = args;\n\n return computed(() => {\n const state = new FunctionExecutionStateBuilder();\n\n const leftState = leftComputed.get();\n const earlyReturn = state.checkReady(leftState);\n if (earlyReturn) return earlyReturn;\n\n if (leftState.value != null) {\n return state.success(leftState.value);\n }\n\n const rightState = rightComputed.get();\n const rightEarlyReturn = state.checkReady(rightState);\n if (rightEarlyReturn) return rightEarlyReturn;\n\n return state.success(rightState.value);\n });\n },\n signature: '(unknown, unknown) => unknown',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(value: unknown): number {\n const number = Number(value);\n if (Number.isNaN(number)) {\n throw new Error(`Cannot convert value ${value} to number`);\n }\n return number;\n}\n\nexport const number: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown) => number',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(parts: unknown[]): Record<string, unknown> {\n const result: Record<string, unknown> = {};\n\n for (let i = 0; i < parts.length; i += 2) {\n const key = parts[i];\n if (typeof key !== 'string') {\n throw new Error(`Invalid key type: ${typeof key}. Expected string`);\n }\n\n result[key] = parts[i + 1];\n }\n\n return result;\n}\n\nexport const objectFn: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown[]) => unknown{}',\n};\n","import { EvalState, FunctionExecutionStateBuilder, ReactiveFunctionDefinition } from '@kaskad/eval-tree';\nimport { computed, IComputedValue } from 'mobx';\n\n/**\n * Variadic OR function with short-circuit evaluation.\n * Stops at the first truthy value.\n */\nexport const or: ReactiveFunctionDefinition = {\n kind: 'reactive',\n execute: (args: IComputedValue<EvalState>[]) => {\n if (args.length === 0) {\n throw new Error('or requires at least 1 argument');\n }\n\n return computed(() => {\n const state = new FunctionExecutionStateBuilder();\n\n for (const argComputed of args) {\n const argState = argComputed.get();\n\n const earlyReturn = state.checkReady(argState);\n if (earlyReturn) return earlyReturn;\n\n if (argState.value) {\n return state.success(true);\n }\n }\n\n return state.success(false);\n });\n },\n signature: '(...unknown) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(source: Record<string, unknown>, path: string[]): unknown {\n return path.reduce<unknown>((current, step) => {\n return (current as Record<string, unknown>)?.[step];\n }, source);\n}\n\nexport const pluck: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown{}, string[]) => unknown',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(a: unknown, b: unknown): unknown {\n return (a as number) + (b as number);\n}\n\nexport const plus: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown, unknown) => unknown',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(value: number, precision = 0): number {\n const multiplier = Math.pow(10, precision);\n return Math.round(value * multiplier) / multiplier;\n}\n\nexport const round: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(number, number) => number',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(value: unknown[], start: number, end?: number): unknown[] {\n return value.slice(start, end);\n}\n\nexport const slice: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown[], number, number) => unknown[]',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(items: unknown[]): boolean {\n return items.some((item) => !!item);\n}\n\nexport const some: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown[]) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(value: unknown): string {\n return String(value);\n}\n\nexport const string: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown) => string',\n};\n","import { EvalState, FunctionExecutionStateBuilder, ReactiveFunctionDefinition } from '@kaskad/eval-tree';\nimport { computed, IComputedValue } from 'mobx';\n\n/**\n * Switch statement with lazy case evaluation.\n * Supports array mode (legacy) and variadic mode.\n */\nexport const switchFn: ReactiveFunctionDefinition = {\n kind: 'reactive',\n execute: (args: IComputedValue<EvalState>[]) => {\n if (args.length < 2) {\n throw new Error('switch requires at least 2 arguments: value and default');\n }\n\n const valueComputed = args[0];\n\n return computed(() => {\n const state = new FunctionExecutionStateBuilder();\n\n const valueState = valueComputed.get();\n const earlyReturn = state.checkReady(valueState);\n if (earlyReturn) return earlyReturn;\n\n const value = valueState.value;\n\n if (args.length === 3) {\n const casesState = args[1].get();\n const defaultState = args[2].get();\n\n const casesEarlyReturn = state.checkReady(casesState);\n if (casesEarlyReturn) return casesEarlyReturn;\n\n const defaultEarlyReturn = state.checkReady(defaultState);\n if (defaultEarlyReturn) return defaultEarlyReturn;\n\n const cases = casesState.value;\n if (Array.isArray(cases)) {\n if (cases.length % 2 !== 0) {\n throw new Error('Cases array should have even number of elements');\n }\n\n const matchIndex = cases.findIndex((caseValue, index) => index % 2 === 0 && caseValue === value);\n const returnValue = matchIndex >= 0 ? cases[matchIndex + 1] : defaultState.value;\n return state.success(returnValue);\n }\n }\n\n const defaultComputed = args[args.length - 1];\n const caseArgs = args.slice(1, -1);\n\n if (caseArgs.length % 2 !== 0) {\n throw new Error('switch requires an even number of case arguments (key-value pairs)');\n }\n\n for (let i = 0; i < caseArgs.length; i += 2) {\n const caseKeyComputed = caseArgs[i];\n const caseValueComputed = caseArgs[i + 1];\n\n const caseKeyState = caseKeyComputed.get();\n const keyEarlyReturn = state.checkReady(caseKeyState);\n if (keyEarlyReturn) return keyEarlyReturn;\n\n const caseKey = caseKeyState.value;\n\n if (caseKey === value) {\n const caseValueState = caseValueComputed.get();\n const valueEarlyReturn = state.checkReady(caseValueState);\n if (valueEarlyReturn) return valueEarlyReturn;\n\n return state.success(caseValueState.value);\n }\n }\n\n const defaultState = defaultComputed.get();\n const defaultEarlyReturn = state.checkReady(defaultState);\n if (defaultEarlyReturn) return defaultEarlyReturn;\n\n return state.success(defaultState.value);\n });\n },\n signature: '(...unknown) => unknown',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(value: string): string {\n return value.toLowerCase();\n}\n\nexport const toLowerCase: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(string) => string',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(value: string): string {\n return value.toUpperCase();\n}\n\nexport const toUpperCase: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(string) => string',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nimport { and } from './and';\nimport { arrayPluck } from './array-pluck';\nimport { at } from './at';\nimport { bool } from './bool';\nimport { ceil } from './ceil';\nimport { concat } from './concat';\nimport { delay } from './delay';\nimport { divide } from './divide';\nimport { empty } from './empty';\nimport { emptyObject } from './empty-object';\nimport { eq } from './eq';\nimport { every } from './every';\nimport { filterIn } from './filter-in';\nimport { findAllBy } from './find-all-by';\nimport { findBy } from './find-by';\nimport { flatten } from './flatten';\nimport { floor } from './floor';\nimport { gt } from './gt';\nimport { gte } from './gte';\nimport { ifFn } from './if';\nimport { inFn } from './in';\nimport { json } from './json';\nimport { keys } from './keys';\nimport { length } from './length';\nimport { lt } from './lt';\nimport { lte } from './lte';\nimport { minus } from './minus';\nimport { modulo } from './modulo';\nimport { multiply } from './multiply';\nimport { negate } from './negate';\nimport { neq } from './neq';\nimport { not } from './not';\nimport { nullCoalesce } from './null-coalesce';\nimport { number } from './number';\nimport { objectFn } from './object';\nimport { or } from './or';\nimport { pluck } from './pluck';\nimport { plus } from './plus';\nimport { round } from './round';\nimport { slice } from './slice';\nimport { some } from './some';\nimport { string } from './string';\nimport { switchFn } from './switch';\nimport { toLowerCase } from './to-lower-case';\nimport { toUpperCase } from './to-upper-case';\n\n/**\n * Shared utility formula functions.\n *\n * Control flow functions use reactive implementations with lazy evaluation:\n * - `if`: Conditional evaluation (3 args: condition, trueValue, falseValue)\n * - `and`, `or`: Variadic logical operators with short-circuit evaluation\n * - `switch`: Variadic pattern matching with lazy case evaluation\n * - `some`, `every`: Array element checkers (imperative, not lazy)\n */\nexport const formulaFunctions: Record<string, FunctionDefinition> = {\n // Collection functions\n findBy,\n findAllBy,\n at,\n not,\n\n // Array element checkers (imperative)\n some,\n every,\n\n // Control flow (reactive with lazy evaluation)\n if: ifFn,\n and,\n or,\n nullCoalesce,\n switch: switchFn,\n\n // Utilities\n in: inFn,\n object: objectFn,\n bool,\n length,\n empty,\n concat,\n pluck,\n flatten,\n json,\n minus,\n modulo,\n negate,\n plus,\n divide,\n multiply,\n emptyObject,\n arrayPluck,\n string,\n number,\n delay,\n keys,\n toUpperCase,\n toLowerCase,\n ceil,\n floor,\n round,\n slice,\n filterIn,\n eq,\n neq,\n gt,\n lt,\n gte,\n lte,\n};\n","import { KaskadPlugin } from '../register-plugin';\nimport { commands } from './commands';\nimport { formulaFunctions } from './functions';\n\nexport const common: KaskadPlugin = {\n commands,\n functions: formulaFunctions,\n};\n","import { DefinitionStore, type CommandDefinition } from '@kaskad/definition';\nimport { FunctionRegistry, type FunctionDefinition } from '@kaskad/eval-tree';\nimport { unfoldComponentDefinitions, type ComponentRawDefinition } from '@kaskad/schema';\nimport { type ValueType } from '@kaskad/types';\n\nexport interface KaskadPlugin {\n definitions?: Record<string, ComponentRawDefinition>;\n shapes?: Record<string, Record<string, ValueType>>;\n functions?: Record<string, FunctionDefinition>;\n commands?: Record<string, CommandDefinition>;\n setup?: () => void;\n}\n\nexport function registerPlugin(plugin: KaskadPlugin): void {\n const defStore = DefinitionStore.getInstance();\n\n // setup() may register shapes/variant shapes needed by definitions\n if (plugin.setup) {\n plugin.setup();\n }\n\n // Shapes must be registered before definitions (definitions reference shape types)\n if (plugin.shapes) {\n for (const [shapeType, properties] of Object.entries(plugin.shapes)) {\n defStore.setShape(shapeType, properties);\n }\n }\n\n if (plugin.definitions) {\n defStore.setComponents(unfoldComponentDefinitions(plugin.definitions));\n }\n\n if (plugin.commands) {\n defStore.setCommands(plugin.commands);\n }\n\n if (plugin.functions) {\n FunctionRegistry.getInstance().setFunctions(plugin.functions);\n }\n}\n\nexport function registerPlugins(...plugins: KaskadPlugin[]): void {\n for (const plugin of plugins) {\n registerPlugin(plugin);\n }\n}\n","import { EvalNode } from '@kaskad/eval-tree';\nimport {\n ArrayAstNode,\n FormulaAstNode,\n FunctionAstNode,\n GroupAstNode,\n IdentifierAstNode,\n NegateAstNode,\n NotAstNode,\n ObjectAstNode,\n OperatorAstNode,\n ReferenceAstNode,\n TernaryAstNode,\n ValueAstNode,\n} from '@kaskad/formula-parser';\n\nconst lowerValue = (astNode: ValueAstNode): EvalNode => ({\n type: 'value',\n value: astNode.value,\n});\n\nconst lowerReference = (astNode: ReferenceAstNode): EvalNode => ({\n type: 'function',\n name: 'get',\n args: [\n {\n type: 'value',\n value: astNode.name,\n },\n ],\n});\n\nconst lowerIdentifier = (astNode: IdentifierAstNode): EvalNode => ({\n type: 'value',\n value: astNode.name,\n});\n\nconst lowerArray = (astNode: ArrayAstNode): EvalNode => ({\n type: 'array',\n items: astNode.items.map(lowerFormulaAstNode),\n});\n\nconst lowerObject = (astNode: ObjectAstNode): EvalNode => ({\n type: 'object',\n properties: astNode.properties.map(({ key, value }) => ({\n key: lowerFormulaAstNode(key),\n value: lowerFormulaAstNode(value),\n })),\n});\n\nconst lowerFunction = (astNode: FunctionAstNode): EvalNode => ({\n type: 'function',\n name: astNode.name,\n args: astNode.args.map(lowerFormulaAstNode),\n});\n\nconst lowerNot = (astNode: NotAstNode): EvalNode => {\n if (!astNode.operand) {\n throw new Error('Invert node must have an item');\n }\n return {\n type: 'function',\n name: 'not',\n args: [lowerFormulaAstNode(astNode.operand)],\n };\n};\n\nconst lowerNegate = (astNode: NegateAstNode): EvalNode => {\n if (!astNode.operand) {\n throw new Error('Negate node must have an operand');\n }\n return {\n type: 'function',\n name: 'negate',\n args: [lowerFormulaAstNode(astNode.operand)],\n };\n};\n\nconst lowerGroup = (astNode: GroupAstNode): EvalNode => lowerFormulaAstNode(astNode.item);\n\nconst lowerTernary = (astNode: TernaryAstNode): EvalNode => {\n if (!astNode.thenBranch || !astNode.elseBranch) {\n throw new Error('Ternary expression must have both then and else branches');\n }\n return {\n type: 'function',\n name: 'if',\n args: [\n lowerFormulaAstNode(astNode.condition),\n lowerFormulaAstNode(astNode.thenBranch),\n lowerFormulaAstNode(astNode.elseBranch),\n ],\n };\n};\n\nconst lowerBinaryOperation = (astNode: OperatorAstNode): EvalNode => {\n if (!astNode.right) {\n throw new Error(`Binary operation \"${astNode.type}\" must have a right operand`);\n }\n return {\n type: 'function',\n name: astNode.type,\n args: [lowerFormulaAstNode(astNode.left), lowerFormulaAstNode(astNode.right)],\n };\n};\n\nconst astNodeLowerers: Record<string, (astNode: FormulaAstNode) => EvalNode> = {\n value: (astNode) => lowerValue(astNode as ValueAstNode),\n reference: (astNode) => lowerReference(astNode as ReferenceAstNode),\n identifier: (astNode) => lowerIdentifier(astNode as IdentifierAstNode),\n array: (astNode) => lowerArray(astNode as ArrayAstNode),\n object: (astNode) => lowerObject(astNode as ObjectAstNode),\n function: (astNode) => lowerFunction(astNode as FunctionAstNode),\n not: (astNode) => lowerNot(astNode as NotAstNode),\n negate: (astNode) => lowerNegate(astNode as NegateAstNode),\n multiply: (astNode) => lowerBinaryOperation(astNode as OperatorAstNode),\n divide: (astNode) => lowerBinaryOperation(astNode as OperatorAstNode),\n modulo: (astNode) => lowerBinaryOperation(astNode as OperatorAstNode),\n plus: (astNode) => lowerBinaryOperation(astNode as OperatorAstNode),\n minus: (astNode) => lowerBinaryOperation(astNode as OperatorAstNode),\n eq: (astNode) => lowerBinaryOperation(astNode as OperatorAstNode),\n neq: (astNode) => lowerBinaryOperation(astNode as OperatorAstNode),\n gt: (astNode) => lowerBinaryOperation(astNode as OperatorAstNode),\n lt: (astNode) => lowerBinaryOperation(astNode as OperatorAstNode),\n gte: (astNode) => lowerBinaryOperation(astNode as OperatorAstNode),\n lte: (astNode) => lowerBinaryOperation(astNode as OperatorAstNode),\n and: (astNode) => lowerBinaryOperation(astNode as OperatorAstNode),\n or: (astNode) => lowerBinaryOperation(astNode as OperatorAstNode),\n nullCoalesce: (astNode) => lowerBinaryOperation(astNode as OperatorAstNode),\n group: (astNode) => lowerGroup(astNode as GroupAstNode),\n ternary: (astNode) => lowerTernary(astNode as TernaryAstNode),\n};\n\nexport function lowerFormulaAstNode(astNode: FormulaAstNode): EvalNode {\n const lowerer = astNodeLowerers[astNode.type];\n if (lowerer) {\n return lowerer(astNode);\n }\n\n throw new Error(`Unsupported Formula AST node type: ${astNode.type}`);\n}\n","import { log } from '@kaskad/config';\nimport { EvalNode } from '@kaskad/eval-tree';\nimport { FormulaAstNode, parseFormula } from '@kaskad/formula-parser';\n\nimport { lowerFormulaAstNode } from './lower-formula-ast-node';\n\nexport function lowerFormula(formula: string): EvalNode {\n let formulaAst: FormulaAstNode;\n try {\n formulaAst = parseFormula(formula);\n } catch (e) {\n log.trace(e);\n return { type: 'value', value: null };\n }\n\n return lowerFormulaAstNode(formulaAst);\n}\n","import { AbstractNode, ComponentStore, ComponentTreeApi, TComponent } from '@kaskad/component-tree';\nimport { EvalState, evaluateNode } from '@kaskad/eval-tree';\nimport { ArrayValueType, ComponentId, ValueType } from '@kaskad/types';\nimport { comparer, reaction, runInAction } from 'mobx';\n\nimport { lowerFormula } from '../lowering/lower-formula';\n\nexport function bindArray(\n node: AbstractNode<ValueType>,\n component: TComponent,\n cfg: {\n componentSelector: string;\n valueProp: string;\n valueType: ValueType;\n },\n) {\n const { componentSelector, valueProp } = cfg;\n\n const evalNode = lowerFormula(`propArray('${componentSelector}', '${valueProp}')`);\n if (!node.position.componentId) {\n throw new Error('Node does not have a component context');\n }\n const { computed, disposers } = evaluateNode<EvalState<unknown[]>>(evalNode, {\n componentId: node.position.componentId,\n });\n node.disposers.push(...disposers);\n\n const disposer = reaction<[unknown[] | null, ComponentId[], EvalState<unknown[]>], boolean>(\n () => [\n (node as AbstractNode<ArrayValueType>).extractedValue,\n ComponentTreeApi.findComponentsIds(component.id, componentSelector),\n computed.get(),\n ],\n ([value, componentsIds, evalState], prev) => {\n let newValue: unknown[];\n if (!prev) {\n // first run\n if (value && value.length > 0) {\n newValue = [...value];\n } else {\n newValue = evalState.value;\n }\n } else {\n if (!comparer.structural(value, prev[0])) {\n // console.log('100', JSON.stringify(value), JSON.stringify(prev[0]));\n newValue = value ? [...value] : [];\n } else {\n // console.log('200');\n newValue = [...evalState.value];\n if (value && evalState.value.length > prev[2].value.length) {\n newValue = [...value];\n }\n }\n }\n\n // console.log(JSON.stringify(newValue));\n\n const components = componentsIds.map((id) => ComponentStore.getInstance().getComponentOrThrow(id));\n\n runInAction(() => {\n const store = ComponentStore.getInstance();\n store.setNodeRawSchema(node, newValue);\n\n for (let i = 0; i < components.length; i++) {\n const c = components[i];\n const value = newValue[i];\n const valueNode = c.getNode(valueProp);\n store.setNodeRawSchema(valueNode, value);\n }\n });\n },\n { fireImmediately: true, equals: comparer.structural },\n );\n node.disposers.push(disposer);\n}\n","import { AbstractNode, ComponentStore, TComponent } from '@kaskad/component-tree';\nimport { log } from '@kaskad/config';\nimport { MirrorBindingSchema, ValueType } from '@kaskad/types';\nimport { comparer, reaction } from 'mobx';\n\nexport function bindMirror(component: TComponent, node: AbstractNode<ValueType>, cfg: MirrorBindingSchema): void {\n const store = ComponentStore.getInstance();\n\n let targetNode: AbstractNode<ValueType>;\n try {\n // For Facade components, start lookup from parent. This handles inline bindings\n // on template contract variables, where the Facade has a variable with the same\n // name - we need to find the parent's variable, not self.\n const lookupFromId = component.componentType === 'sys.Facade' ? component.position.componentId : component.id;\n\n if (!lookupFromId) {\n log.error(`Cannot activate mirror binding: no parent component for selector \"${cfg.selector}\"`);\n return;\n }\n\n targetNode = store.getNode(lookupFromId, cfg.selector);\n } catch (error) {\n log.error(`Cannot activate mirror binding: ${error}`);\n return;\n }\n\n const disposer = reaction<[unknown, unknown], boolean>(\n () => [targetNode.extractedValue, node.extractedValue],\n (curr, prev) => {\n const [targetValue, sourceValue = null] = curr;\n const [prevTargetValue, prevSourceValue] = prev || [null, null];\n\n if (comparer.structural(targetValue, sourceValue)) {\n return;\n }\n\n if (!prev && targetValue !== null) {\n store.setNodeRawSchema(node, targetValue);\n return;\n }\n\n if (targetValue !== prevTargetValue) {\n store.setNodeRawSchema(node, targetValue);\n return;\n }\n\n if (sourceValue !== prevSourceValue) {\n store.setNodeRawSchema(targetNode, sourceValue);\n }\n },\n { fireImmediately: true },\n );\n\n node.disposers.push(disposer);\n}\n","import { AbstractNode, ComponentStore, ComponentTreeApi, TComponent } from '@kaskad/component-tree';\nimport { EvalState, evaluateNode } from '@kaskad/eval-tree';\nimport { isObject } from '@kaskad/schema';\nimport { ComponentId, ObjectValueType, ValueType } from '@kaskad/types';\nimport { comparer as equal, reaction, runInAction } from 'mobx';\n\nimport { lowerFormula } from '../lowering/lower-formula';\n\nexport function bindObject(\n node: AbstractNode<ValueType>,\n component: TComponent,\n cfg: {\n componentSelector: string;\n keyProp: string;\n valueProp: string;\n valueType: ValueType;\n },\n) {\n const { componentSelector, keyProp, valueProp } = cfg;\n\n const evalNode = lowerFormula(`propObject('${componentSelector}', '${keyProp}', '${valueProp}')`);\n if (!node.position.componentId) {\n throw new Error('Node does not have a component context');\n }\n const { computed, disposers } = evaluateNode<EvalState<Record<string, unknown>>>(evalNode, {\n componentId: node.position.componentId,\n });\n node.disposers.push(...disposers);\n\n let preservedNodeValue: Record<string, unknown> = {};\n\n const disposer = reaction<\n [Record<string, unknown> | null, ComponentId[], EvalState<Record<string, unknown>>],\n boolean\n >(\n () => [\n (node as AbstractNode<ObjectValueType>).extractedValue,\n ComponentTreeApi.findComponentsIds(component.id, componentSelector),\n computed.get(),\n ],\n ([nodeValue, componentsIds, evalState], prev) => {\n const currentValue = nodeValue || {};\n\n if (equal.structural(evalState.value, currentValue)) {\n return;\n }\n\n const firstRun = !prev;\n const nodeChanged = !firstRun && !equal.structural(nodeValue, prev[0]);\n\n if (firstRun || nodeChanged) {\n preservedNodeValue = currentValue;\n } else {\n preservedNodeValue = shallowMerge(preservedNodeValue, evalState.value);\n }\n\n let componentValues: Record<string, unknown>;\n\n if (firstRun) {\n const hasInitialValue = Object.keys(currentValue).length > 0;\n componentValues = hasInitialValue\n ? syncNodeValueAndComponents(currentValue, evalState)\n : { ...evalState.value };\n } else if (nodeChanged) {\n componentValues = syncNodeValueAndComponents(currentValue, evalState);\n } else {\n componentValues = handleComponentsChanged(evalState, preservedNodeValue);\n }\n\n runInAction(() => {\n const store = ComponentStore.getInstance();\n store.setNodeRawSchema(node, componentValues);\n\n updateComponentsValues(componentsIds, componentValues, keyProp, valueProp);\n });\n },\n { fireImmediately: true, equals: equal.structural },\n );\n node.disposers.push(disposer);\n}\n\nfunction handleComponentsChanged(\n evalState: EvalState<Record<string, unknown>>,\n preservedNodeValue: Record<string, unknown>,\n): Record<string, unknown> {\n const componentValues: Record<string, unknown> = {};\n\n for (const [inputKey, currentValue] of Object.entries(evalState.value)) {\n const preservedValue = preservedNodeValue[inputKey];\n\n if (isObject(currentValue) && isObject(preservedValue)) {\n componentValues[inputKey] = mergePreservedWithChildGroup(currentValue, preservedValue);\n continue;\n }\n\n componentValues[inputKey] = currentValue ?? preservedValue;\n }\n\n return componentValues;\n}\n\nfunction mergePreservedWithChildGroup(\n currentValue: Record<string, unknown>,\n preservedValue: Record<string, unknown>,\n): Record<string, unknown> {\n const merged = { ...currentValue };\n\n for (const [key, value] of Object.entries(currentValue)) {\n if (value !== null) {\n continue;\n }\n\n if (preservedValue[key] === undefined || preservedValue[key] === null) {\n continue;\n }\n\n merged[key] = preservedValue[key];\n }\n\n return merged;\n}\n\nfunction syncNodeValueAndComponents(\n nodeValue: Record<string, unknown>,\n evalState: EvalState<Record<string, unknown>>,\n): Record<string, unknown> {\n const componentValues: Record<string, unknown> = {};\n\n for (const fieldKey of Object.keys(evalState.value)) {\n if (!(fieldKey in nodeValue)) {\n componentValues[fieldKey] = null;\n continue;\n }\n\n componentValues[fieldKey] = nodeValue[fieldKey];\n }\n\n return componentValues;\n}\n\nfunction updateComponentsValues(\n componentsIds: ComponentId[],\n componentValues: Record<string, unknown>,\n keyProp: string,\n valueProp: string,\n): void {\n const store = ComponentStore.getInstance();\n const components = componentsIds.map((id) => store.getComponentOrThrow(id));\n\n for (const cmp of components) {\n const key = cmp.getNodeValue<string>(keyProp);\n if (!key) continue;\n\n const value = componentValues[key];\n const valueNode = cmp.getNode(valueProp);\n store.setNodeRawSchema(valueNode, value);\n }\n}\n\nfunction shallowMerge(target: Record<string, unknown>, source: Record<string, unknown>): Record<string, unknown> {\n const merged = { ...target };\n\n for (const [key, value] of Object.entries(source)) {\n if (value === null || value === undefined) {\n continue;\n }\n\n if (isObject(value) && isObject(merged[key])) {\n merged[key] = { ...merged[key], ...value };\n continue;\n }\n\n merged[key] = value;\n }\n\n return merged;\n}\n","import { AbstractNode, ComponentStore, ComponentTreeApi, TComponent } from '@kaskad/component-tree';\nimport { EvalState, evaluateNode } from '@kaskad/eval-tree';\nimport { ComponentId, SetValueType, ValueType } from '@kaskad/types';\nimport { comparer as equal, reaction, runInAction } from 'mobx';\n\nimport { lowerFormula } from '../lowering/lower-formula';\n\nexport function bindSelection(\n node: AbstractNode<ValueType>,\n component: TComponent,\n cfg: {\n componentSelector: string;\n keyProp: string;\n valueProp: string;\n valueType: ValueType;\n },\n) {\n const { componentSelector, keyProp, valueProp } = cfg;\n\n const evalNode = lowerFormula(`propObject('${componentSelector}', '${keyProp}', '${valueProp}')`);\n if (!node.position.componentId) {\n throw new Error('Node does not have a component context');\n }\n const { computed, disposers } = evaluateNode<EvalState<Record<string, unknown>>>(evalNode, {\n componentId: node.position.componentId,\n });\n node.disposers.push(...disposers);\n\n let preservedNodeValue: Record<string, unknown> | null = null;\n\n const disposer = reaction<[Set<unknown> | null, ComponentId[], EvalState<Record<string, unknown>>], boolean>(\n () => [\n (node as AbstractNode<SetValueType>).extractedValue,\n ComponentTreeApi.findComponentsIds(component.id, componentSelector),\n computed.get(),\n ],\n ([nodeValue, componentsIds, evalState], prev) => {\n const currentValue = toObject(nodeValue);\n\n const firstRun = !prev;\n const nodeChanged = !firstRun && !equal.structural(nodeValue, prev[0]);\n\n if (firstRun || nodeChanged) {\n preservedNodeValue = currentValue;\n }\n\n if (equal.structural(evalState.value, currentValue)) {\n return;\n }\n\n let componentValues: Record<string, unknown>;\n if (firstRun) {\n const initialNodeValue = Object.keys(currentValue).length > 0;\n componentValues = initialNodeValue\n ? syncNodeValueAndComponents(currentValue, evalState, preservedNodeValue)\n : { ...evalState.value };\n } else if (nodeChanged) {\n componentValues = syncNodeValueAndComponents(currentValue, evalState, preservedNodeValue);\n } else {\n componentValues = syncComponentsAndPreserved(evalState, preservedNodeValue, currentValue);\n }\n\n const selectionValue = toSelectionSet(componentValues);\n\n runInAction(() => {\n const store = ComponentStore.getInstance();\n store.setNodeRawSchema(node, selectionValue);\n\n updateComponentsValues(componentsIds, componentValues, keyProp, valueProp);\n });\n },\n { fireImmediately: true, equals: equal.structural },\n );\n\n node.disposers.push(disposer);\n}\n\nfunction syncNodeValueAndComponents(\n nodeValue: Record<string, unknown>,\n evalState: EvalState<Record<string, unknown>>,\n preservedNodeValue: Record<string, unknown> | null,\n): Record<string, unknown> {\n const componentValues = { ...nodeValue };\n\n // Keep keys in preservedNodeValue to handle async component loading\n for (const key of Object.keys(componentValues)) {\n if (!(key in evalState.value) && (!preservedNodeValue || !(key in preservedNodeValue))) {\n delete componentValues[key];\n }\n }\n for (const key of Object.keys(evalState.value)) {\n if (!(key in componentValues)) {\n componentValues[key] = false;\n }\n }\n\n return componentValues;\n}\n\nfunction syncComponentsAndPreserved(\n evalState: EvalState<Record<string, unknown>>,\n preservedNodeValue: Record<string, unknown> | null,\n currentValue: Record<string, unknown>,\n): Record<string, unknown> {\n const componentValues = { ...evalState.value };\n\n if (preservedNodeValue) {\n for (const key of Object.keys(evalState.value)) {\n if (evalState.value[key] === null) {\n componentValues[key] = preservedNodeValue[key] ?? false;\n }\n }\n // Preserve selection for components being recreated\n for (const key of Object.keys(preservedNodeValue)) {\n if (!(key in componentValues)) {\n componentValues[key] = preservedNodeValue[key];\n }\n }\n }\n\n // Include user changes not yet in preservedNodeValue\n for (const key of Object.keys(currentValue)) {\n if (!(key in componentValues)) {\n componentValues[key] = currentValue[key];\n }\n }\n\n return componentValues;\n}\n\nfunction updateComponentsValues(\n componentsIds: ComponentId[],\n componentValues: Record<string, unknown>,\n keyProp: string,\n valueProp: string,\n): void {\n const store = ComponentStore.getInstance();\n const components = componentsIds.map((id) => store.getComponentOrThrow(id));\n\n for (const cmp of components) {\n const key = cmp.getNodeValue<string>(keyProp);\n if (!key) continue;\n\n const value = componentValues[key];\n const valueNode = cmp.getNode(valueProp);\n store.setNodeRawSchema(valueNode, value);\n }\n}\n\nfunction toSelectionSet(componentValues: Record<string, unknown>): Set<string> {\n return new Set(\n Object.entries(componentValues)\n .filter(([, fieldValue]) => !!fieldValue)\n .map(([key]) => key),\n );\n}\n\nfunction toObject(selectionSet: Set<unknown> | null): Record<string, unknown> {\n return Object.fromEntries(Array.from(selectionSet || []).map((key) => [key, true]));\n}\n","import { AbstractNode, ComponentStore } from '@kaskad/component-tree';\nimport { ValueType } from '@kaskad/types';\nimport { when } from 'mobx';\n\nimport { bindArray } from './bind-array';\nimport { bindMirror } from './bind-mirror';\nimport { bindObject } from './bind-object';\nimport { bindSelection } from './bind-selection';\n\nexport async function addBinding(node: AbstractNode<ValueType>, extra = false): Promise<void> {\n await when(() => !node.evaluating);\n\n const store = ComponentStore.getInstance();\n\n if (!node.position.componentId) {\n throw new Error('Cannot add binding without component context');\n }\n\n const component = store.getComponent(node.position.componentId);\n if (!component) {\n return;\n }\n\n const bindingSchema = extra ? node.extraBinding : node.bindingSchema;\n if (!bindingSchema) {\n return;\n }\n const valueType = node.valueType;\n\n switch (bindingSchema.bindingType) {\n case 'object':\n bindObject(node, component, {\n componentSelector: bindingSchema.componentSelector,\n keyProp: bindingSchema.mapping.key,\n valueProp: bindingSchema.mapping.value,\n valueType,\n });\n break;\n\n case 'selection':\n bindSelection(node, component, {\n componentSelector: bindingSchema.componentSelector,\n keyProp: bindingSchema.mapping.key,\n valueProp: bindingSchema.mapping.selected,\n valueType,\n });\n break;\n\n case 'array':\n bindArray(node, component, {\n componentSelector: bindingSchema.componentSelector,\n valueProp: bindingSchema.mapping.value,\n valueType,\n });\n break;\n\n case 'mirror':\n bindMirror(component, node, bindingSchema);\n break;\n }\n}\n","import { Delimiters } from '@kaskad/config';\nimport { ComponentId, NodePosition } from '@kaskad/types';\n\nexport const debugName = (position: NodePosition, thing: string) => {\n return [position.componentId, position.path.join(Delimiters.NodePath), thing].join('|');\n};\n\nexport const componentInstanceMap = new Map<ComponentId, unknown>();\n","import { EvalNode, ObjectEvalNodeField } from '@kaskad/eval-tree';\nimport { NodeSchema, VariantShapeValue, VariantShapeValueType } from '@kaskad/types';\n\nimport { lowerComputationSchema } from './lower-computation-schema';\n\nconst lowerSimpleValue = (schema: NodeSchema): EvalNode => ({\n type: 'value',\n value: schema.value,\n});\n\nconst lowerObjectOrMap = (schema: NodeSchema): EvalNode => {\n if (!schema.value) {\n return { type: 'value', value: null };\n }\n const entries = Object.entries(schema.value as Record<string, NodeSchema>);\n return {\n type: 'object',\n properties: entries.map(([key, value]) => ({\n key: { type: 'value', value: key },\n value: lowerSchema(value),\n })),\n };\n};\n\nconst lowerArrayOrSet = (schema: NodeSchema): EvalNode => {\n if (!schema.value) {\n throw new Error(`${schema.valueType.type} schema without value`);\n }\n return {\n type: 'array',\n items: (schema.value as NodeSchema[]).map((item) => lowerSchema(item)),\n };\n};\n\nconst lowerShape = (): EvalNode => {\n throw new Error('Shape lowering not implemented');\n};\n\nconst lowerVariantShape = (schema: NodeSchema): EvalNode => {\n if (!schema.value) {\n return { type: 'value', value: null };\n }\n\n const variantShapeValue = schema.value as VariantShapeValue;\n const variantField = `${(schema.valueType as VariantShapeValueType).shapeType}Type`;\n\n const entries = Object.entries(variantShapeValue);\n const properties: ObjectEvalNodeField[] = entries\n .filter(([key]) => key !== 'kind')\n .map(([key, value]) => ({\n key: { type: 'value', value: key },\n value: typeof value === 'string' ? { type: 'value', value } : lowerSchema(value),\n }));\n\n properties.push({\n key: { type: 'value', value: variantField },\n value: { type: 'value', value: variantShapeValue['kind'] },\n });\n\n return {\n type: 'object',\n properties,\n };\n};\n\nconst schemaLowerers: Record<string, (schema: NodeSchema) => EvalNode> = {\n string: lowerSimpleValue,\n number: lowerSimpleValue,\n boolean: lowerSimpleValue,\n unknown: lowerSimpleValue,\n component: lowerSimpleValue,\n command: lowerSimpleValue,\n componentSchema: lowerSimpleValue,\n object: lowerObjectOrMap,\n map: lowerObjectOrMap,\n array: lowerArrayOrSet,\n set: lowerArrayOrSet,\n shape: lowerShape,\n variantShape: lowerVariantShape,\n};\n\nexport function lowerSchema(schema: NodeSchema): EvalNode {\n // If schema has a computation, lower it\n if (schema.computation) {\n return lowerComputationSchema(schema.computation);\n }\n\n // Otherwise lower the value based on valueType\n const lowerer = schemaLowerers[schema.valueType.type];\n if (lowerer) {\n return lowerer(schema);\n }\n\n throw new Error(`Unsupported value type: ${schema.valueType.type}`);\n}\n","import { ArrayEvalNode, EvalNode, ObjectEvalNode } from '@kaskad/eval-tree';\nimport {\n ComputationSchema,\n ForComputationSchema,\n FormulaComputationSchema,\n IfComputationSchema,\n SwitchComputationSchema,\n TemplateComputationSchema,\n} from '@kaskad/types';\n\nimport { lowerFormula } from './lower-formula';\nimport { lowerSchema } from './lower-node-schema';\n\nexport function lowerForLoop(forComputation: ForComputationSchema): EvalNode {\n const dimensionsNode: ArrayEvalNode = {\n type: 'array',\n items: forComputation.dimensions.map((dimension) => {\n // Extract trackBy expression to be evaluated in RefSpace context where $item is available\n let trackByExpression: unknown = null;\n if (dimension.trackBy.computation && dimension.trackBy.computation.computationType === 'formula') {\n trackByExpression = `=${(dimension.trackBy.computation as FormulaComputationSchema).formula}`;\n } else if (dimension.trackBy.value !== null) {\n trackByExpression = dimension.trackBy.value;\n }\n\n return {\n type: 'object',\n properties: [\n { key: { type: 'value', value: 'items' }, value: lowerSchema(dimension.items) },\n { key: { type: 'value', value: 'itemsType' }, value: { type: 'value', value: dimension.itemsType } },\n { key: { type: 'value', value: 'item' }, value: lowerSchema(dimension.item) },\n { key: { type: 'value', value: 'index' }, value: lowerSchema(dimension.index) },\n { key: { type: 'value', value: 'first' }, value: lowerSchema(dimension.first) },\n { key: { type: 'value', value: 'last' }, value: lowerSchema(dimension.last) },\n { key: { type: 'value', value: 'trackBy' }, value: { type: 'value', value: trackByExpression } },\n ],\n } as ObjectEvalNode;\n }),\n };\n\n const yieldNode = lowerSchema(forComputation.yield);\n\n return {\n type: 'function',\n name: 'repeat',\n args: [dimensionsNode, yieldNode],\n };\n}\n\nexport function lowerTemplate(templateComputation: TemplateComputationSchema): EvalNode {\n return {\n type: 'value',\n value: templateComputation,\n };\n}\n\nexport function lowerIfStatement(ifNode: IfComputationSchema): EvalNode {\n return {\n type: 'function',\n name: 'if',\n args: [lowerSchema(ifNode.if), lowerSchema(ifNode.then), lowerSchema(ifNode.else)],\n };\n}\n\nexport function lowerSwitch(switchComputation: SwitchComputationSchema): EvalNode {\n // Lower the source\n const sourceEvalNode = lowerSchema(switchComputation.source);\n\n // Build cases array as flat array: [value1, result1, value2, result2, ...]\n // Extract .value from ComponentSchemaNodeSchema to get the actual component schema\n const casesArrayItems: EvalNode[] = [];\n for (const caseItem of switchComputation.cases) {\n casesArrayItems.push({ type: 'value', value: caseItem.equals });\n // caseItem.then is a ComponentSchemaNodeSchema, extract its .value property\n casesArrayItems.push({ type: 'value', value: caseItem.then.value });\n }\n\n const casesArrayNode: ArrayEvalNode = {\n type: 'array',\n items: casesArrayItems,\n };\n\n // Lower the default value - extract .value from ComponentSchemaNodeSchema\n const defaultNode: EvalNode = { type: 'value', value: switchComputation.default.value };\n\n return {\n type: 'function',\n name: 'switch',\n args: [sourceEvalNode, casesArrayNode, defaultNode],\n };\n}\n\nconst computationLowerers: Record<string, (schema: ComputationSchema) => EvalNode> = {\n formula: (schema) => lowerFormula((schema as FormulaComputationSchema).formula),\n for: (schema) => lowerForLoop(schema as ForComputationSchema),\n template: (schema) => lowerTemplate(schema as TemplateComputationSchema),\n if: (schema) => lowerIfStatement(schema as IfComputationSchema),\n switch: (schema) => lowerSwitch(schema as SwitchComputationSchema),\n};\n\nexport function lowerComputationSchema(computationSchema: ComputationSchema): EvalNode {\n const lowerer = computationLowerers[computationSchema.computationType];\n if (lowerer) {\n return lowerer(computationSchema);\n }\n throw new Error(`Unsupported computation type: ${computationSchema.computationType}`);\n}\n","import { AbstractNode, ArrayNode, ComponentStore } from '@kaskad/component-tree';\nimport { EvalState, evaluateNode } from '@kaskad/eval-tree';\nimport { ComponentRecipe } from '@kaskad/schema';\nimport { ValueType } from '@kaskad/types';\nimport { reaction } from 'mobx';\n\nimport { debugName } from '../../constants';\nimport { lowerComputationSchema } from '../../lowering/lower-computation-schema';\nimport { activateNode } from '../activate-node';\n\nexport function activateForComputation(node: AbstractNode<ValueType>): void {\n const store = ComponentStore.getInstance();\n\n const currentFrame = node.computationStack.top;\n if (!currentFrame) {\n throw new Error('Cannot activate for computation: no current frame');\n }\n\n const evalNode = lowerComputationSchema(currentFrame.schema);\n if (!node.position.componentId) {\n throw new Error('Node does not have a component context');\n }\n const { computed, disposers } = evaluateNode<EvalState<ComponentRecipe[]>>(evalNode, {\n componentId: node.position.componentId,\n });\n currentFrame.disposers.push(...disposers);\n\n const computationDisposer = reaction(\n () => computed.get(),\n ({ value: newItems }) => {\n const toAdd = store.reconcileForLoopChildren(node as ArrayNode, newItems);\n\n // Activate only newly added children\n const structure = (node as ArrayNode).structure || [];\n for (const index of toAdd) {\n const child = structure[index];\n if (child) {\n activateNode(child);\n }\n }\n },\n { fireImmediately: true, name: debugName(node.position, 'repeatable-reaction') },\n );\n currentFrame.disposers.push(computationDisposer);\n currentFrame.markActivated();\n}\n","import { AbstractNode } from '@kaskad/component-tree';\nimport { ArrayValueType } from '@kaskad/types';\n\nimport { activateNode } from '../activate-node';\n\nexport function activateArrayStructure(node: AbstractNode<ArrayValueType>) {\n const structure = node.structure;\n if (structure === null) {\n return;\n }\n\n structure.forEach((item) => {\n activateNode(item);\n });\n}\n","import { TComponent } from '@kaskad/component-tree';\nimport { log } from '@kaskad/config';\nimport { reaction } from 'mobx';\n\n/**\n * Activates node change handlers for a component by setting up MobX reactions.\n * Each handler watches a node selector and executes its command when the node value changes.\n */\nexport function activateNodeChangeHandlers(component: TComponent): void {\n for (const handler of component.onNodeChange) {\n const disposer = reaction(\n () => component.getNodeValue(handler.selector),\n (nodeValue) => {\n const src = component.sourceUrl ? `[${component.sourceUrl}] ` : '';\n log.trace(`${src}onNodeChange \"${handler.selector}\" triggered on ${component.id}`);\n handler.command.viewModel.execute(nodeValue);\n },\n {\n fireImmediately: true,\n },\n );\n\n component.handlerDisposers.push(disposer);\n }\n}\n","import { AbstractNode, ComponentStore, TComponent } from '@kaskad/component-tree';\nimport { ComponentValueType } from '@kaskad/types';\n\nimport { activateNodeChangeHandlers } from '../../hooker';\nimport { activateNode } from '../activate-node';\n\nexport function activateComponentStructure(node: AbstractNode<ComponentValueType>) {\n const structure = node.structure;\n if (structure === null) {\n return;\n }\n\n const component = ComponentStore.getInstance().getComponentOrThrow(structure);\n\n activateComponent(component);\n}\n\nexport function activateComponent(component: TComponent): void {\n ComponentStore.getInstance().componentsToPreload.add(component.componentType);\n\n for (const node of component.props.values()) {\n activateNode(node);\n }\n\n for (const node of component.variables.values()) {\n activateNode(node);\n }\n\n for (const handler of component.onNodeChange) {\n activateNode(handler.command);\n }\n\n activateNodeChangeHandlers(component);\n}\n","import { AbstractNode } from '@kaskad/component-tree';\nimport { MapValueType } from '@kaskad/types';\n\nimport { activateNode } from '../activate-node';\n\nexport function activateMapStructure(node: AbstractNode<MapValueType>) {\n const structure = node.structure;\n if (structure === null) {\n return;\n }\n\n for (const item of Object.values(structure)) {\n activateNode(item);\n }\n}\n","import { AbstractNode } from '@kaskad/component-tree';\nimport { ObjectValueType } from '@kaskad/types';\n\nimport { activateNode } from '../activate-node';\n\nexport function activateObjectStructure(node: AbstractNode<ObjectValueType>) {\n const structure = node.structure;\n if (structure === null) {\n return;\n }\n\n for (const node of Object.values(structure)) {\n activateNode(node);\n }\n}\n","import { AbstractNode } from '@kaskad/component-tree';\nimport { DefinitionStore } from '@kaskad/definition';\nimport { ShapeValueType } from '@kaskad/types';\n\nimport { activateNode } from '../activate-node';\n\nexport function activateShapeStructure(node: AbstractNode<ShapeValueType>): void {\n const { valueType, structure } = node;\n if (structure === null) {\n return;\n }\n\n const objectValueType = DefinitionStore.getInstance().getShape(valueType.shapeType);\n\n for (const key of Object.keys(objectValueType.fields)) {\n activateNode(structure[key]);\n }\n}\n","import { AbstractNode } from '@kaskad/component-tree';\nimport { DefinitionStore } from '@kaskad/definition';\nimport { VariantShapeValueType } from '@kaskad/types';\n\nimport { activateNode } from '../activate-node';\n\nexport function activateVariantShapeStructure(node: AbstractNode<VariantShapeValueType>) {\n const { valueType, structure } = node;\n if (structure === null) {\n return;\n }\n\n const objectValueType = DefinitionStore.getInstance().getVariantShape(valueType.shapeType, structure.kind);\n\n for (const key of Object.keys(objectValueType.fields)) {\n activateNode(structure.fields[key]);\n }\n}\n","import { AbstractNode } from '@kaskad/component-tree';\nimport {\n ArrayValueType,\n ComponentValueType,\n MapValueType,\n ObjectValueType,\n ShapeValueType,\n ValueType,\n VariantShapeValueType,\n} from '@kaskad/types';\n\nimport { activateArrayStructure } from './structure/activate-array';\nimport { activateComponentStructure } from './structure/activate-component';\nimport { activateMapStructure } from './structure/activate-map';\nimport { activateObjectStructure } from './structure/activate-object';\nimport { activateShapeStructure } from './structure/activate-shape';\nimport { activateVariantShapeStructure } from './structure/activate-variant-shape';\n\nconst structureActivators: Record<string, (node: AbstractNode<ValueType>) => void> = {\n shape: (node) => activateShapeStructure(node as AbstractNode<ShapeValueType>),\n variantShape: (node) => activateVariantShapeStructure(node as AbstractNode<VariantShapeValueType>),\n array: (node) => activateArrayStructure(node as AbstractNode<ArrayValueType>),\n object: (node) => activateObjectStructure(node as AbstractNode<ObjectValueType>),\n map: (node) => activateMapStructure(node as AbstractNode<MapValueType>),\n component: (node) => activateComponentStructure(node as AbstractNode<ComponentValueType>),\n};\n\nexport function activateStructure(node: AbstractNode<ValueType>) {\n const value = node.structure;\n if (value === null) {\n return;\n }\n\n const activator = structureActivators[node.nodeType];\n if (activator) {\n activator(node);\n }\n}\n","import { AbstractNode, ComponentStore, getComponent } from '@kaskad/component-tree';\nimport { EvalState, evaluateNode } from '@kaskad/eval-tree';\nimport { ValueType } from '@kaskad/types';\nimport { reaction } from 'mobx';\n\nimport { debugName } from '../../constants';\nimport { lowerComputationSchema } from '../../lowering/lower-computation-schema';\nimport { activateComputation } from '../activate-computation';\nimport { activateStructure } from '../activate-structure';\n\nexport function activateFormulaComputation(node: AbstractNode<ValueType>): void {\n const store = ComponentStore.getInstance();\n\n const currentFrame = node.computationStack.top;\n if (!currentFrame) {\n throw new Error('Cannot activate formula computation: no current frame');\n }\n\n const thisFrameDepth = node.computationStack.depth;\n\n const evalNode = lowerComputationSchema(currentFrame.schema);\n if (!node.position.componentId) {\n throw new Error('Node does not have a component context');\n }\n const component = getComponent(node);\n const { computed, disposers } = evaluateNode<EvalState>(evalNode, {\n componentId: node.position.componentId,\n sourceUrl: component.sourceUrl ?? undefined,\n });\n currentFrame.disposers.push(...disposers);\n\n const computationDisposer = reaction(\n () => computed.get(),\n (computationState) => {\n const { evaluating, value: rawSchema, failed } = computationState;\n node.evaluating = evaluating;\n\n if (evaluating) {\n return;\n }\n\n node.failed = failed;\n\n // Clear result frames from this depth onward (not all results!)\n // Example: if this is depth 2, clear frames 2, 3, 4... but keep 0, 1\n node.computationStack.popFrom(thisFrameDepth);\n\n store.setNodeRawSchema(node, rawSchema);\n\n if (node.computationStack.depth > thisFrameDepth) {\n // If a nested computation was pushed onto the stack, activate it\n activateComputation(node);\n } else {\n activateStructure(node);\n }\n },\n {\n fireImmediately: true,\n name: debugName(node.position, 'formula-reaction'),\n },\n );\n\n currentFrame.disposers.push(computationDisposer);\n currentFrame.markActivated();\n}\n","import { AbstractNode, ComponentStore, getComponent } from '@kaskad/component-tree';\nimport { Delimiters, log } from '@kaskad/config';\nimport { loadTemplates, templateRegistry, unfoldNodeSchema } from '@kaskad/schema';\nimport { ComponentId, ComponentNodeInlineValue, NodeSchema, TemplateComputationSchema, ValueType } from '@kaskad/types';\n\nimport { templateLoadingTracker } from '../../util/template-loading-tracker';\nimport { activateComponent } from '../structure/activate-component';\n\nexport function activateTemplateComputation(node: AbstractNode<ValueType>) {\n const store = ComponentStore.getInstance();\n const nodePath = node.position.path;\n const component = getComponent(node);\n\n const currentFrame = node.computationStack.top;\n if (!currentFrame) {\n throw new Error('Cannot activate template computation: no current frame');\n }\n\n const { defer, path, contractVariables, ref } = currentFrame.schema as TemplateComputationSchema;\n const taskKey = `template-${component.id}-${nodePath}`;\n\n if (defer) {\n templateLoadingTracker.startLoading(taskKey);\n store.setNodeSchema(node, defer.placeholder);\n\n // Fire-and-forget: load template asynchronously\n loadTemplates({ templateUrl: path })\n .then(() => {\n const cacheEntry = templateRegistry.get(path);\n\n if (!cacheEntry) {\n // Loading failed - show error schema\n store.setNodeSchema(node, defer.error);\n templateLoadingTracker.finishLoading(taskKey);\n return;\n }\n\n // Loading succeeded - create and set the template schema\n setTemplateOnNode(node, cacheEntry, path, contractVariables, ref);\n templateLoadingTracker.finishLoading(taskKey);\n })\n .catch((error) => {\n // Handle any unhandled errors during template creation\n log.error(`Failed to activate template \"${path}\":`, error);\n store.setNodeSchema(node, defer.error);\n templateLoadingTracker.finishLoading(taskKey);\n });\n\n // Mark as activated immediately (don't wait for loading)\n currentFrame.markActivated();\n return;\n }\n\n const cacheEntry = templateRegistry.get(path);\n\n if (!cacheEntry) {\n const src = component.sourceUrl ? `[${component.sourceUrl}] ` : '';\n throw new Error(`${src}Template not found in cache: ${path}`);\n }\n\n // Non-defer path: template is already loaded, create schema synchronously\n setTemplateOnNode(node, cacheEntry, path, contractVariables, ref);\n currentFrame.markActivated();\n}\n\nfunction setTemplateOnNode(\n node: AbstractNode<ValueType>,\n cacheEntry: ReturnType<typeof templateRegistry.get>,\n path: string,\n contractVariables: Record<string, unknown>,\n ref: string | undefined,\n): void {\n const store = ComponentStore.getInstance();\n const rawFacadeSchema = createRawFacadeSchema(cacheEntry, path, contractVariables, ref);\n store.setNodeRawSchema(node, rawFacadeSchema);\n\n // Activate the facade component after it's created (only for regular component nodes)\n if (node.nodeType !== 'componentSchema') {\n const facadeId = node.structure as ComponentId;\n const facade = store.getComponentOrThrow(facadeId);\n facade.sourceUrl = path;\n activateComponent(facade);\n }\n}\n\nfunction createRawFacadeSchema(\n cacheEntry: ReturnType<typeof templateRegistry.get>,\n path: string,\n contractVariables: Record<string, unknown>,\n ref: string | undefined,\n): Record<string, unknown> {\n if (!cacheEntry) {\n throw new Error(`Template cache entry is undefined for path: ${path}`);\n }\n\n const { recipe } = cacheEntry;\n const { types: _types, importTypes: _importTypes, contract = {}, defaultSlot, ...componentRecipe } = recipe;\n const rootSchema = unfoldNodeSchema(componentRecipe, { type: 'component' });\n const rootValue = rootSchema.value as ComponentNodeInlineValue;\n\n if (!rootValue) {\n const recipeKeys = Object.keys(componentRecipe).join(', ');\n throw new Error(\n `Template \"${path}\": Root schema has no value. ` +\n `The recipe root must define a component (implicit or explicit componentType). ` +\n `Found keys: [${recipeKeys}]`,\n );\n }\n\n // Collect value types from the root schema for each mapped variable\n const valueTypes: Record<string, ValueType> = {};\n for (const [facadeKey, rootKey] of Object.entries(contract)) {\n const sourceNodeSchema = getSourceNodeOrThrow(rootValue, rootKey, path);\n valueTypes[facadeKey] = sourceNodeSchema.valueType;\n }\n\n const prefixedVariables = createFacadeVariables(path, contractVariables, contract, valueTypes, defaultSlot);\n const contentWithBindings = addSynchronizeBindings(contract, rootSchema);\n\n // Return the raw facade schema object\n return {\n componentType: 'sys.Facade',\n ref,\n content: contentWithBindings,\n ...prefixedVariables,\n };\n}\n\nfunction createFacadeVariables(\n templatePath: string,\n contractVariables: Record<string, unknown>,\n contract: Record<string, string>,\n valueTypes: Record<string, ValueType>,\n flatWrapperSlot?: string,\n): Record<string, unknown> {\n const contractKeys = Object.keys(contractVariables);\n const contractPropKeys = Object.keys(contract);\n\n const unmappedVariables = contractKeys.filter((key) => key !== 'slot' && !contractPropKeys.includes(key));\n\n if (unmappedVariables.length > 0) {\n // Detect if unmapped keys look like variable declarations (have $ prefix or @ type annotation)\n const variableDeclarations = unmappedVariables.filter((key) => key.startsWith('$') || key.includes('@'));\n const regularProps = unmappedVariables.filter((key) => !key.startsWith('$') && !key.includes('@'));\n\n if (variableDeclarations.length > 0) {\n throw new Error(\n `Template \"${templatePath}\": Variable declarations cannot be siblings of templateUrl. ` +\n `Found: ${variableDeclarations.join(', ')}. ` +\n `Pass values directly or wrap templateUrl in a component.`,\n );\n } else if (regularProps.length > 0) {\n log.warn(\n `Template \"${templatePath}\": Unknown properties: ${regularProps.join(', ')}. ` +\n `Expected: ${contractPropKeys.join(', ')}`,\n );\n }\n }\n\n const prefixedVariables: Record<string, unknown> = {};\n for (const facadeKey of contractPropKeys) {\n const prefixedKey = `${Delimiters.Variable}${facadeKey}`;\n prefixedVariables[prefixedKey] = unfoldNodeSchema(contractVariables[facadeKey], valueTypes[facadeKey]);\n }\n\n if ('slot' in contractVariables) {\n const slotComponent = contractVariables['slot'];\n let targetSlot = flatWrapperSlot;\n\n // Find default component slot if not explicitly specified\n if (!targetSlot) {\n const componentSlots = Object.keys(valueTypes).filter((key) => valueTypes[key].type === 'component');\n if (componentSlots.length !== 1) {\n throw new Error(\n `Cannot find default slot for template computation. Found ${\n componentSlots.length\n } slots: ${componentSlots.join(', ')}`,\n );\n }\n targetSlot = componentSlots[0];\n }\n\n const prefixedKey = `${Delimiters.Variable}${targetSlot}`;\n prefixedVariables[prefixedKey] = unfoldNodeSchema(slotComponent, valueTypes[targetSlot]);\n }\n\n return prefixedVariables;\n}\n\nfunction addSynchronizeBindings(contract: Record<string, string>, rootSchema: NodeSchema): NodeSchema {\n const rootValue = rootSchema.value as ComponentNodeInlineValue;\n\n for (const [facadeKey, templateKey] of Object.entries(contract)) {\n // This will always succeed because mapping was already validated in createRawFacadeSchema\n const sourceNodeSchema = getSourceNodeOrThrow(rootValue, templateKey, '');\n\n sourceNodeSchema.extraBinding = {\n bindingType: 'mirror' as const,\n selector: `^sys.Facade->$${facadeKey}`,\n };\n }\n\n return rootSchema;\n}\n\nfunction getSourceNodeOrThrow(rootValue: ComponentNodeInlineValue, key: string, templatePath: string): NodeSchema {\n const isVariable = key.startsWith('$');\n const source = isVariable ? rootValue.variables : rootValue.props;\n\n if (!source) {\n const kind = isVariable ? 'variables' : 'props';\n throw new Error(\n `Template \"${templatePath}\": Cannot resolve contract key \"${key}\" — ` +\n `root component \"${rootValue.componentType}\" has no ${kind}. ` +\n `Ensure the template recipe declares \"${key}\" as a ${isVariable ? 'variable' : 'property'}.`,\n );\n }\n\n const node = source.get(isVariable ? key.slice(1) : key);\n\n if (!node) {\n const kind = isVariable ? 'variable' : 'property';\n const lookupKey = isVariable ? key.slice(1) : key;\n const available = [...source.keys()].map((k) => (isVariable ? `$${k}` : k));\n throw new Error(\n `Template \"${templatePath}\": Contract key \"${key}\" not found as ${kind} \"${lookupKey}\" ` +\n `in root component \"${rootValue.componentType}\". ` +\n `Available ${kind}s: [${available.join(', ')}]`,\n );\n }\n return node;\n}\n","import { AbstractNode } from '@kaskad/component-tree';\nimport { ValueType } from '@kaskad/types';\n\nimport { activateForComputation } from './computation/activate-for';\nimport { activateFormulaComputation } from './computation/activate-formula';\nimport { activateTemplateComputation } from './computation/activate-template';\n\nconst computationActivators: Record<string, (node: AbstractNode<ValueType>) => void> = {\n if: (node) => activateFormulaComputation(node),\n formula: (node) => activateFormulaComputation(node),\n switch: (node) => activateFormulaComputation(node),\n for: (node) => activateForComputation(node),\n template: (node) => activateTemplateComputation(node),\n};\n\nexport function activateComputation(node: AbstractNode<ValueType>): void {\n const frame = node.computationStack.top;\n if (!frame) {\n return;\n }\n\n // Idempotency: don't re-activate an already activated frame\n if (frame.activated) {\n return;\n }\n\n const activator = computationActivators[frame.schema.computationType];\n if (activator) {\n activator(node);\n }\n}\n","import { AbstractNode } from '@kaskad/component-tree';\nimport { ValueType } from '@kaskad/types';\n\nimport { addBinding } from '../bindings/add-binding';\nimport { activateComputation } from './activate-computation';\nimport { activateStructure } from './activate-structure';\n\nexport function activateNode(node: AbstractNode<ValueType>): void {\n if (node.fullyActivated) {\n return;\n }\n\n activateStructure(node);\n\n if (!node.computationStack.isEmpty) {\n activateComputation(node);\n }\n\n if (node.bindingSchema) {\n void addBinding(node);\n }\n\n if (node.extraBinding) {\n void addBinding(node, true);\n }\n\n node.markActivated();\n}\n","import { CommandNode, CommandNodeStructure, ComponentStore, TComponent } from '@kaskad/component-tree';\nimport { log } from '@kaskad/config';\nimport { CommandExecute, DefinitionStore } from '@kaskad/definition';\nimport { AnyFn } from '@kaskad/types';\nimport { IComputedValue, isComputed } from 'mobx';\nimport { firstValueFrom, Observable as RxObservable } from 'rxjs';\n\nconst compiledCache = new WeakMap<\n CommandNodeStructure,\n {\n target?: AnyFn;\n init?: AnyFn;\n finalize?: AnyFn;\n }\n>();\n\nfunction getOrCompile(structure: CommandNodeStructure, key: 'target' | 'init' | 'finalize'): AnyFn {\n let cached = compiledCache.get(structure);\n if (!cached) {\n cached = {};\n compiledCache.set(structure, cached);\n }\n if (!cached[key]) {\n cached[key] = createJsFunction(structure[key] as string);\n }\n return cached[key];\n}\n\nexport async function runCommand(node: CommandNode, ...args: unknown[]): Promise<unknown> {\n const structure = node.structure;\n\n if (!structure) {\n const comp = node.position.componentId\n ? ComponentStore.getInstance().getComponent(node.position.componentId)\n : null;\n const src = comp?.sourceUrl ? `[${comp.sourceUrl}] ` : '';\n log.trace(`${src}Command is empty — no handler was bound to it.`);\n return null;\n }\n\n const component = ComponentStore.getInstance().getComponentOrThrow(structure.owner);\n const src = component.sourceUrl ? `[${component.sourceUrl}] ` : '';\n const functionsProxy = proxifySubCommands(component);\n\n try {\n if (structure.init) {\n log.trace(`${src}Running init hook`);\n const initFunc = getOrCompile(structure, 'init');\n await initFunc(functionsProxy, args);\n }\n if (structure.runnerType === 'inline') {\n log.trace(`${src}Executing inline callback (${args.length} args)`);\n return await (structure.target as unknown as AnyFn)(...args);\n }\n const preview = (structure.target as string).slice(0, 80);\n log.trace(`${src}Executing command: ${preview}`);\n const targetFunc = getOrCompile(structure, 'target');\n return await targetFunc(functionsProxy, args);\n } catch (e) {\n throw new Error(`${src}Error executing ${structure.runnerType === 'inline' ? 'inline callback' : 'command'}`, {\n cause: e,\n });\n } finally {\n if (structure.finalize) {\n try {\n log.trace(`${src}Running finalize hook`);\n const finalizeFunc = getOrCompile(structure, 'finalize');\n await finalizeFunc(functionsProxy, args);\n } catch (finalizeError) {\n log.error(`${src}Error in finalize hook`, finalizeError);\n }\n }\n }\n}\n\nfunction proxifySubCommands(component: TComponent): Record<string, unknown> {\n return new Proxy(\n {},\n {\n get(\n target: Record<string, CommandExecute<unknown>>,\n functionName: string | symbol,\n ): (...args: unknown[]) => unknown {\n return (...functionArgs: unknown[]) => {\n let execute: CommandExecute<unknown>;\n if (functionName in target) {\n execute = target[functionName as string];\n } else {\n const def = DefinitionStore.getInstance().getCommand(functionName as string);\n execute = target[functionName as string] = def.execute;\n }\n\n const commandCtx = {\n componentId: component.id,\n };\n const result = execute(commandCtx, ...functionArgs);\n\n if (result instanceof RxObservable) {\n return firstValueFrom(result);\n }\n if (result instanceof Promise) {\n return result;\n }\n if (isComputed(result)) {\n return (result as IComputedValue<unknown>).get();\n }\n return result;\n };\n },\n },\n );\n}\n\n/**\n * Creates a JavaScript function from a string of code.\n *\n * SECURITY WARNING: This function uses `new Function()` to execute dynamic code.\n * Only use with schemas from trusted sources. Malicious schemas could execute\n * arbitrary code in the browser context, leading to XSS or data theft.\n *\n * The code has access to:\n * - All registered commands via destructured parameters\n * - Function arguments via the `args` parameter\n */\nfunction createJsFunction(func: string): AnyFn {\n const commandNames = DefinitionStore.getInstance().getCommandNames();\n const commandsStr = commandNames.length ? `{ ${commandNames.join(', ')} }` : 'commands';\n\n return new Function(commandsStr, 'args', `return (async () => { ${func} })();`) as AnyFn;\n}\n","import { ArrayNode, ComponentTreeApi } from '@kaskad/component-tree';\nimport { CommandContext } from '@kaskad/definition';\n\nimport { activateNode } from '../../../reactivity/activate-node';\n\nexport function execute(ctx: CommandContext, selector: string, item: unknown): void {\n ComponentTreeApi.appendArrayItem(ctx.componentId, selector, item);\n\n const arrayNode = ComponentTreeApi.findNode(ctx.componentId, selector) as ArrayNode | null;\n if (arrayNode) {\n // Activate the last item in the array (the one we just appended)\n const lastIndex = (arrayNode.structure?.length ?? 1) - 1;\n const newItem = arrayNode.structure?.[lastIndex];\n if (newItem) {\n activateNode(newItem);\n }\n }\n}\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { CommandContext } from '@kaskad/definition';\n\nexport function execute(ctx: CommandContext, selector: string): unknown {\n return ComponentTreeApi.findNode(ctx.componentId, selector)?.extractedValue ?? null;\n}\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { CommandContext } from '@kaskad/definition';\n\nexport function execute(ctx: CommandContext, selector: string, path: string): unknown[] {\n return ComponentTreeApi.collectValuesArray(ctx.componentId, selector, path);\n}\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { CommandContext } from '@kaskad/definition';\n\nexport function execute(\n ctx: CommandContext,\n selector: string,\n objectKey: string,\n objectValue: string,\n): Record<string, unknown> {\n return ComponentTreeApi.collectValuesMap(ctx.componentId, selector, objectKey, objectValue);\n}\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { CommandContext } from '@kaskad/definition';\n\nexport function execute(ctx: CommandContext, selector: string, index: number): void {\n ComponentTreeApi.removeArrayItem(ctx.componentId, selector, index);\n}\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { CommandContext } from '@kaskad/definition';\n\nexport function execute(ctx: CommandContext, selector: string, ...args: unknown[]): unknown {\n return ComponentTreeApi.runCommandNode(ctx.componentId, selector, ...args);\n}\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { CommandContext } from '@kaskad/definition';\n\nimport { componentInstanceMap } from '../../../constants';\n\nexport function execute(\n ctx: CommandContext,\n componentSelector: string,\n methodName: string,\n ...args: unknown[]\n): unknown {\n const component = ComponentTreeApi.getComponent(ctx.componentId, componentSelector);\n\n const instance = componentInstanceMap.get(component.id) as Record<string, unknown>;\n if (!instance) {\n throw new Error(`Cannot find component instance for component with id \"${component.id}\"`);\n }\n\n const method = instance[methodName];\n if (!method || typeof method !== 'function') {\n throw new Error(`Cannot find method \"${methodName}\" in component of type \"${component.componentType}\"`);\n }\n\n return method.call(instance, ...args);\n}\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { CommandContext } from '@kaskad/definition';\n\nimport { activateStructure } from '../../../reactivity/activate-structure';\n\nexport function execute(ctx: CommandContext, selector: string, value: unknown): void {\n ComponentTreeApi.setNodeRawSchema(ctx.componentId, selector, value);\n\n const node = ComponentTreeApi.findNode(ctx.componentId, selector);\n if (node) {\n activateStructure(node);\n }\n}\n","import { CommandDefinition } from '@kaskad/definition';\n\nimport * as appendArrayItem from './append-array-item';\nimport * as get from './get';\nimport * as propArray from './prop-array';\nimport * as propObject from './prop-object';\nimport * as removeArrayItem from './remove-array-item';\nimport * as run from './run';\nimport * as runComponentMethod from './run-component-method';\nimport * as set from './set';\n\nexport const commands: Record<string, CommandDefinition> = {\n propObject,\n propArray,\n\n appendArrayItem,\n removeArrayItem,\n\n runComponentMethod,\n\n get,\n set,\n run,\n};\n","import { ComponentRawDefinition } from '@kaskad/schema';\n\nexport const componentsDefinitions: Record<string, ComponentRawDefinition> = {\n 'sys.Box': {\n properties: {\n 'content@component': null,\n },\n },\n 'sys.Group': {\n properties: {\n 'children@component[]': [],\n },\n },\n 'sys.RefSpace': {\n traits: ['sys.Box'],\n properties: {},\n },\n 'sys.Facade': {\n traits: ['sys.Box'],\n properties: {},\n },\n};\n","import { ComponentTreeApi, NodeViewModel } from '@kaskad/component-tree';\nimport { EvalContext, FunctionDefinition } from '@kaskad/eval-tree';\nimport { ValueType } from '@kaskad/types';\n\nexport function execute(ctx: EvalContext, selector: string): NodeViewModel<ValueType> {\n return ComponentTreeApi.getNode(ctx.componentId, selector).evaluating;\n}\n\nexport const evaluating: FunctionDefinition = {\n kind: 'imperative',\n contextual: true,\n execute,\n signature: '(string) => boolean',\n};\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { EvalContext, FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(ctx: EvalContext, selector: string): boolean {\n return ComponentTreeApi.getNode(ctx.componentId, selector).failed;\n}\n\nexport const failed: FunctionDefinition = {\n kind: 'imperative',\n contextual: true,\n execute,\n signature: '(string) => boolean',\n};\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { log } from '@kaskad/config';\nimport {\n EvalContext,\n FunctionExecutionStateBuilder,\n PromiseValue,\n ReactiveFunctionDefinition,\n} from '@kaskad/eval-tree';\nimport { computed } from 'mobx';\n\nfunction createFailedAsyncValue(error: Error | unknown): PromiseValue {\n return {\n kind: 'promise',\n current: null,\n error: error instanceof Error ? error : new Error('Node lookup failed'),\n pending: false,\n };\n}\n\nfunction warnNodeNotFound(selector: string): void {\n const baseName = selector.split('.')[0];\n const isVariable = baseName.startsWith('$');\n const name = isVariable ? baseName.slice(1) : baseName;\n const type = isVariable ? 'Variable' : 'Property';\n log.trace(`${type} \"${name}\" not found`);\n}\n\nexport const getFn: ReactiveFunctionDefinition = {\n kind: 'reactive',\n contextual: true,\n execute: (ctx: EvalContext, args) => {\n return computed(() => {\n const state = new FunctionExecutionStateBuilder();\n\n // Check if selector argument is ready\n const selectorState = args[0].get();\n const earlyReturn = state.checkReady(selectorState);\n if (earlyReturn) return earlyReturn;\n\n const selector = selectorState.value as string;\n const isOptional = selector.includes('?->') || selector.includes('?.');\n\n // Try to find the target node\n let targetNode;\n try {\n targetNode = ComponentTreeApi.findNode(ctx.componentId, selector);\n } catch (error) {\n // Warn about non-existing variables/properties (only for required selectors)\n if (!isOptional && error instanceof Error && error.message.includes('not found')) {\n warnNodeNotFound(selector);\n }\n\n // Optional selectors return null, required selectors fail with AsyncValue\n return state.success(isOptional ? null : createFailedAsyncValue(error));\n }\n\n // Handle case where findNode returns null (e.g., optional component selector, or traversing missing path)\n if (!targetNode) {\n return state.success(isOptional ? null : createFailedAsyncValue(new Error(`Node not found: ${selector}`)));\n }\n\n // Wrap node value in AsyncValue if needed to propagate evaluating/failed state\n if (targetNode.evaluating || targetNode.failed) {\n const asyncValue: PromiseValue = {\n kind: 'promise',\n current: targetNode.extractedValue,\n error: targetNode.failed ? new Error('Target node failed') : null,\n pending: targetNode.evaluating,\n };\n return state.success(asyncValue);\n }\n\n return state.success(targetNode.extractedValue);\n });\n },\n signature: '(string) => unknown',\n};\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { EvalContext, FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(ctx: EvalContext, componentSelector: string) {\n return ComponentTreeApi.findComponent(ctx.componentId, componentSelector)?.id ?? null;\n}\n\nexport const idFn: FunctionDefinition = {\n kind: 'imperative',\n contextual: true,\n execute,\n signature: '(string) => string',\n};\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { EvalContext, FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(ctx: EvalContext, selector: string, path: string) {\n return ComponentTreeApi.collectValuesArray<unknown[]>(ctx.componentId, selector, path);\n}\n\nexport const propArray: FunctionDefinition = {\n kind: 'imperative',\n contextual: true,\n execute,\n signature: '(string, string) => unknown[]',\n};\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { EvalContext, FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(ctx: EvalContext, selector: string, objectKey: string, objectValue: string) {\n return ComponentTreeApi.collectValuesMap(ctx.componentId, selector, objectKey, objectValue);\n}\n\nexport const propObject: FunctionDefinition = {\n kind: 'imperative',\n contextual: true,\n execute,\n signature: '(string, string, string) => unknown{}',\n};\n","import { AbstractNode } from '@kaskad/component-tree';\nimport { Delimiters } from '@kaskad/config';\nimport { FunctionDefinition } from '@kaskad/eval-tree';\nimport { ComponentRecipe, RawNode } from '@kaskad/schema';\nimport { ArrayValueType, ValueType } from '@kaskad/types';\n\ninterface Dimension {\n items: unknown[];\n itemsType: ArrayValueType;\n item: string;\n index: string;\n first: string | null;\n last: string | null;\n trackBy: string | null; // null = use index, \"\" = use item value directly, \"id\"/\"user.id\" = use property\n}\n\n/**\n * Get a nested property value from an object using dot notation\n * e.g., getNestedProperty({ user: { id: 123 } }, \"user.id\") => 123\n */\nfunction getNestedProperty(obj: unknown, path: string): unknown {\n if (obj === null || obj === undefined) {\n return undefined;\n }\n\n const parts = path.split('.');\n let current: unknown = obj;\n\n for (const part of parts) {\n if (current === null || current === undefined || typeof current !== 'object') {\n return undefined;\n }\n current = (current as Record<string, unknown>)[part];\n }\n\n return current;\n}\n\nexport function execute(dimensions: Dimension[], content: AbstractNode<ValueType>): ComponentRecipe[] {\n return generateCombinations(dimensions).map(({ variables }) => ({\n componentType: 'sys.RefSpace',\n content,\n ...variables,\n }));\n}\n\ninterface CombinationResult {\n variables: Record<string, RawNode>;\n key: unknown;\n}\n\nfunction generateCombinations(dimensions: Dimension[]): CombinationResult[] {\n let results: CombinationResult[] = [{ variables: {}, key: 0 }];\n\n dimensions.forEach((dimension, dimensionIndex) => {\n const tempResults: CombinationResult[] = [];\n\n results.forEach((result) => {\n dimension.items.forEach((item, index) => {\n const newVariables: Record<string, RawNode> = {\n ...result.variables,\n [`${Delimiters.Variable}${dimension.index}`]: {\n _valueType: { type: 'number' },\n _value: index,\n _computation: null,\n _binding: null,\n },\n [`${Delimiters.Variable}${dimension.item}`]: {\n _valueType: dimension.itemsType.item,\n _value: item,\n _computation: null,\n _binding: null,\n },\n };\n if (dimension.first !== null) {\n newVariables[`${Delimiters.Variable}first`] = {\n _valueType: { type: 'boolean' },\n _value: index === 0,\n _computation: null,\n _binding: null,\n };\n }\n\n if (dimension.last !== null) {\n newVariables[`${Delimiters.Variable}last`] = {\n _valueType: { type: 'boolean' },\n _value: dimension.items.length - 1 === index,\n _computation: null,\n _binding: null,\n };\n }\n\n // Compute key for stable identity tracking\n // dimension.trackBy: null = use index, \"\" = use item value, \"prop\" = use property\n let keyPart: unknown;\n\n if (dimension.trackBy !== null) {\n let trackByValue: unknown;\n\n if (dimension.trackBy === '') {\n trackByValue = item;\n } else {\n trackByValue = getNestedProperty(item, dimension.trackBy);\n }\n\n if (trackByValue === null || trackByValue === undefined || trackByValue === '') {\n keyPart = index;\n } else {\n keyPart = trackByValue;\n }\n } else {\n keyPart = index;\n }\n\n const prevKey = result.key;\n const key = dimensionIndex === 0 ? keyPart : `${prevKey}:${keyPart}`;\n\n newVariables[`${Delimiters.Variable}trackBy`] = {\n _valueType: { type: 'string' },\n _value: String(key),\n _computation: null,\n _binding: null,\n };\n\n tempResults.push({ variables: newVariables, key });\n });\n });\n\n results = tempResults;\n });\n\n return results;\n}\n\nexport const repeat: FunctionDefinition = {\n kind: 'imperative',\n execute,\n signature:\n '({items: unknown[], itemsType: unknown, item: string, index: string, first: unknown, last: unknown, trackBy: unknown}[], componentSchema) => componentSchema[]',\n};\n","import { ComponentTreeApi } from '@kaskad/component-tree';\nimport { EvalContext, FunctionDefinition } from '@kaskad/eval-tree';\n\nexport function execute(ctx: EvalContext, selector: string): boolean {\n return ComponentTreeApi.isCommandRunning(ctx.componentId, selector);\n}\n\nexport const running: FunctionDefinition = {\n kind: 'imperative',\n contextual: true,\n execute,\n signature: '(string) => boolean',\n};\n","import { FunctionDefinition } from '@kaskad/eval-tree';\n\nimport { evaluating } from './evaluating';\nimport { failed } from './failed';\nimport { getFn } from './get';\nimport { idFn } from './id';\nimport { propArray } from './prop-array';\nimport { propObject } from './prop-object';\nimport { repeat } from './repeat';\nimport { running } from './running';\n\nexport const formulaFunctions: Record<string, FunctionDefinition> = {\n propObject,\n propArray,\n\n get: getFn,\n id: idFn,\n evaluating,\n failed,\n running,\n repeat,\n};\n","import { KaskadPlugin } from '../register-plugin';\nimport { commands } from './commands';\nimport { componentsDefinitions } from './components/definitions';\nimport { formulaFunctions } from './functions';\n\nexport const sys: KaskadPlugin = {\n definitions: componentsDefinitions,\n commands,\n functions: formulaFunctions,\n};\n","import { ComponentRawDefinition } from '@kaskad/schema';\n\nexport const componentsDefinitions: Record<string, ComponentRawDefinition> = {\n 'browser.Styled': {\n properties: {\n 'styleClass@string': null,\n },\n },\n 'browser.Element': {\n traits: ['sys.Group', 'browser.Styled'],\n properties: {\n 'tag@string': null,\n 'innerHTML@string': null,\n },\n },\n 'browser.Clickable': {\n traits: ['sys.Box'],\n properties: {\n 'click@()': null,\n 'stopPropagation@boolean': null,\n 'contextMenu@()': null,\n },\n },\n 'browser.Focusable': {\n traits: ['sys.Box'],\n properties: {\n 'tabIndex@number': null,\n 'blur@()': null,\n },\n },\n 'browser.Dialog': {\n traits: ['sys.Box', 'browser.Styled'],\n properties: {\n 'close@()': null,\n },\n },\n 'browser.Popover': {\n traits: ['sys.Box', 'browser.Styled'],\n properties: {\n 'close@()': null,\n 'mode@string': 'auto',\n 'anchor@string': null,\n 'positionArea@string': null,\n },\n },\n 'browser.Link': {\n traits: ['sys.Group', 'browser.Styled'],\n properties: {\n 'href@string': null,\n 'target@string': null,\n 'rel@string': null,\n },\n },\n 'browser.Image': {\n traits: ['browser.Styled'],\n properties: {\n 'src@string': null,\n 'alt@string': null,\n 'loading@string': null,\n },\n },\n 'browser.Hoverable': {\n traits: ['sys.Box'],\n properties: {\n 'mouseEnter@()': null,\n 'mouseLeave@()': null,\n },\n },\n 'browser.KeyListener': {\n traits: ['sys.Box'],\n properties: {\n 'keyDown@(string)': null,\n 'keyUp@(string)': null,\n },\n },\n 'browser.Scrollable': {\n traits: ['sys.Box'],\n properties: {\n 'scroll@()': null,\n },\n },\n 'browser.Animated': {\n traits: ['sys.Box'],\n properties: {\n 'animationEnd@()': null,\n 'transitionEnd@()': null,\n },\n },\n 'browser.Visible': {\n traits: ['sys.Box'],\n properties: {\n 'visible@()': null,\n 'invisible@()': null,\n },\n },\n 'browser.Resizable': {\n traits: ['sys.Box'],\n properties: {\n 'resize@()': null,\n },\n },\n};\n","import { KaskadPlugin } from '../register-plugin';\nimport { componentsDefinitions } from './components/definitions';\n\nexport const browser: KaskadPlugin = {\n definitions: componentsDefinitions,\n};\n","import { ComponentRawDefinition } from '@kaskad/schema';\n\nexport const componentsDefinitions: Record<string, ComponentRawDefinition> = {\n 'forms.Input': {\n properties: {\n 'inputKey@string': null,\n 'value@unknown': null,\n 'setValue@(unknown)': `set('value', args[0])`,\n 'disabled@boolean': false,\n 'dirty@boolean': false,\n 'touched@boolean': false,\n 'touch@()': `set('touched', true)`,\n 'validators@validator[]': [],\n 'validity@forms.Validity': '=> validate(value, validators)',\n },\n },\n 'forms.BooleanInput': {\n traits: ['forms.Input'],\n properties: {\n 'value@boolean': null,\n 'setValue@(boolean)': `set('value', args[0])`,\n },\n },\n 'forms.StringInput': {\n traits: ['forms.Input'],\n properties: {\n 'value@string': null,\n 'setValue@(string)': `set('value', args[0])`,\n },\n },\n 'forms.NumberInput': {\n traits: ['forms.Input'],\n properties: {\n 'value@number': null,\n 'setValue@(number)': `set('value', args[0])`,\n },\n },\n 'forms.CustomInput': {\n traits: ['sys.Box', 'forms.Input'],\n properties: {},\n },\n 'forms.InputComposite': {\n traits: ['forms.Input'],\n properties: {\n 'touched@boolean': `=> some(propArray(':forms.Input', 'touched'))`,\n 'dirty@boolean': `=> some(propArray(':forms.Input', 'dirty'))`,\n 'subInputsValid@boolean': `=> every(propArray(':forms.Input', 'validity.valid'))`,\n 'selfValidity@forms.Validity': '=> validate(value, validators)',\n 'validity@forms.Validity': `=> { valid: every([selfValidity.valid, subInputsValid]), errors: selfValidity.errors }`,\n },\n },\n 'forms.InputGroup': {\n traits: ['sys.Box', 'forms.InputComposite'],\n properties: {\n 'value@unknown{}': {\n bindingType: 'object',\n componentSelector: ':forms.Input',\n mapping: {\n key: 'inputKey',\n value: 'value',\n },\n },\n },\n },\n 'forms.BooleanInputGroup': {\n traits: ['sys.Box', 'forms.InputComposite'],\n properties: {\n 'value@unknown#': {\n bindingType: 'selection',\n componentSelector: ':forms.Input',\n mapping: {\n key: 'inputKey',\n selected: 'value',\n },\n },\n },\n },\n 'forms.InputArray': {\n traits: ['sys.Box', 'forms.InputComposite'],\n properties: {\n 'value@unknown[]': {\n bindingType: 'array',\n componentSelector: ':forms.Input',\n mapping: {\n value: 'value',\n },\n },\n },\n },\n};\n","import { ValidatorDefinition } from './validator.types';\n\nexport class ValidatorRegistry {\n private static instance: ValidatorRegistry;\n private validators: Record<string, ValidatorDefinition> = {};\n\n static getInstance(): ValidatorRegistry {\n if (!ValidatorRegistry.instance) {\n ValidatorRegistry.instance = new ValidatorRegistry();\n }\n return ValidatorRegistry.instance;\n }\n\n register(validatorType: string, validator: ValidatorDefinition) {\n this.validators[validatorType] = validator;\n }\n\n get(validatorType: string): ValidatorDefinition {\n return this.validators[validatorType];\n }\n}\n","import { log } from '@kaskad/config';\nimport { ImperativeFunctionDefinition } from '@kaskad/eval-tree';\n\nimport { ValidatorRegistry } from '../validator-registry';\nimport { ValidatorProperty } from '../validator.types';\n\nexport interface ValidationError {\n validator: string;\n message: string;\n}\n\nexport interface Validity {\n valid: boolean;\n errors: ValidationError[];\n}\n\nexport async function execute(value: unknown, validators: ValidatorProperty[]): Promise<Validity> {\n const errors: Validity = { valid: true, errors: [] };\n for (const validator of validators) {\n try {\n const result = await runValidator(value, validator);\n if (result) {\n errors.valid = false;\n errors.errors.push(result);\n break;\n }\n } catch (e) {\n log.error(`Error running validator \"${validator.validatorType}\":`, e);\n errors.valid = false;\n break;\n }\n }\n return errors;\n}\n\nasync function runValidator(value: unknown, validator: ValidatorProperty): Promise<ValidationError | null> {\n const validatorDef = ValidatorRegistry.getInstance().get(validator.validatorType);\n if (!validatorDef) {\n throw new Error(`Validator \"${validator.validatorType}\" not registered`);\n }\n\n if (validator.disabled) {\n return null;\n }\n\n if (validatorDef.createMessage) {\n validator.message = validatorDef.createMessage(validator.params);\n }\n validator.message = replacePlaceholders(validator.message || validatorDef.defaultMessage, validator.params);\n\n const validationResult = await validatorDef.validate(value, validator);\n if (validationResult) {\n return { validator: validator.validatorType, message: validationResult.message };\n }\n return null;\n}\n\nfunction replacePlaceholders(template: string, params: Record<string, unknown>): string {\n return template.replace(/\\[\\[(\\w+)]]/g, (match, key) => {\n if (key in params) {\n return String(params[key]);\n }\n return match;\n });\n}\n\nexport const validate: ImperativeFunctionDefinition = {\n kind: 'imperative',\n execute,\n signature: '(unknown, unknown[]) => {valid: boolean, errors: {validator: string, message: string}[]}',\n};\n","import { ReactiveFunctionDefinition, wrapImperativeAsReactive } from '@kaskad/eval-tree';\n\nimport { validate } from './validate';\n\nexport const formulaFunctions: Record<string, ReactiveFunctionDefinition> = {\n validate: wrapImperativeAsReactive(validate),\n};\n","import { ValidationResult, ValidatorDefinition } from '../validator.types';\n\nconst pattern =\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n\nexport const email: ValidatorDefinition<object> = {\n params: {},\n defaultMessage: 'The field must be a valid email address',\n validate(value: unknown, validator): ValidationResult {\n if (!value) {\n return null;\n }\n\n const invalid = typeof value !== 'string' || !value.toLowerCase().match(pattern);\n if (invalid) {\n return { message: validator.message };\n }\n\n return null;\n },\n};\n","import { ValidationResult, ValidatorDefinition } from '../validator.types';\n\nexport const equals: ValidatorDefinition<{ value: unknown }> = {\n params: {\n value: { type: 'unknown' },\n },\n defaultMessage: 'The value must be equal to [[value]]',\n validate(value: unknown, validator): ValidationResult {\n if (!value) {\n return null;\n }\n\n const invalid = value !== validator.params.value;\n if (invalid) {\n return { message: validator.message };\n }\n\n return null;\n },\n};\n","import { ValidationResult, ValidatorDefinition } from '../validator.types';\n\nexport const maxLength: ValidatorDefinition<{ maxLength: number }> = {\n params: {\n maxLength: { type: 'number' },\n },\n defaultMessage: 'The field must have at most [[maxLength]] characters',\n validate(value: unknown, validator): ValidationResult {\n if (!value) {\n return null;\n }\n\n const invalid = typeof value !== 'string' || value.length > validator.params.maxLength;\n if (invalid) {\n return { message: validator.message };\n }\n\n return null;\n },\n};\n","import { ValidationResult, ValidatorDefinition } from '../validator.types';\n\nexport const min: ValidatorDefinition<{ min: number }> = {\n params: {\n min: { type: 'number' },\n },\n defaultMessage: 'The value must be [[min]] or higher',\n validate(value: unknown, validator): ValidationResult {\n if (!value) {\n return null;\n }\n\n const invalid = typeof value !== 'number' || value < validator.params.min;\n if (invalid) {\n return { message: validator.message };\n }\n\n return null;\n },\n};\n","import { ValidationResult, ValidatorDefinition } from '../validator.types';\n\nexport const minLength: ValidatorDefinition<{ minLength: number }> = {\n params: {\n minLength: { type: 'number' },\n },\n defaultMessage: `The field must have at least [[minLength]] characters`,\n validate(value: unknown, validator): ValidationResult {\n if (!value) {\n return null;\n }\n\n const invalid = typeof value !== 'string' || value.length < validator.params.minLength;\n if (invalid) {\n return { message: validator.message };\n }\n\n return null;\n },\n};\n","import { ValidationResult, ValidatorDefinition } from '../validator.types';\n\nexport const required: ValidatorDefinition<object> = {\n params: {},\n defaultMessage: 'The field is required',\n validate(value: unknown, validator): ValidationResult {\n const invalid = value === undefined || value === null || value === '' || Number.isNaN(value);\n if (invalid) {\n return { message: validator.message };\n }\n\n return null;\n },\n};\n","import { ValidatorDefinition } from '../validator.types';\nimport { email } from './email';\nimport { equals } from './equals';\nimport { maxLength } from './max-length';\nimport { min } from './min';\nimport { minLength } from './min-length';\nimport { required } from './required';\n\nexport const validators: Record<string, ValidatorDefinition> = {\n required,\n email,\n min,\n maxLength,\n minLength,\n equals,\n};\n","import { DefinitionStore } from '@kaskad/definition';\n\nimport { KaskadPlugin } from '../register-plugin';\nimport { componentsDefinitions } from './components/definitions';\nimport { formulaFunctions } from './functions';\nimport { ValidatorRegistry } from './validator-registry';\nimport { ValidatorDefinition } from './validator.types';\nimport { validators } from './validators';\n\nexport function registerValidator(validatorType: string, def: ValidatorDefinition) {\n DefinitionStore.getInstance().setVariantShapeKind('validator', validatorType, {\n params: { type: 'object', fields: def.params },\n });\n ValidatorRegistry.getInstance().register(validatorType, def);\n}\n\nexport function registerValidators(validators: Record<string, ValidatorDefinition>): void {\n for (const [validatorType, def] of Object.entries(validators)) {\n registerValidator(validatorType, def);\n }\n}\n\nfunction registerShapes(): void {\n DefinitionStore.getInstance().setVariantShape('validator', {\n message: { type: 'string' },\n disabled: { type: 'boolean' },\n });\n DefinitionStore.getInstance().setShape('forms.Validity', {\n valid: { type: 'boolean' },\n errors: {\n type: 'array',\n item: {\n type: 'object',\n fields: {\n validator: { type: 'string' },\n message: { type: 'string' },\n },\n },\n },\n });\n}\n\nexport const forms: KaskadPlugin = {\n definitions: componentsDefinitions,\n functions: formulaFunctions,\n setup() {\n registerShapes();\n registerValidators(validators);\n },\n};\n","import { componentTreeConfig } from '@kaskad/component-tree';\n\nimport { runCommand } from './run-command';\n\nexport function initRuntime(): void {\n componentTreeConfig.runCommand = runCommand;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["execute","commands","delay","formulaFunctions","equal","syncNodeValueAndComponents","updateComponentsValues","RxObservable","propObject","propArray","componentsDefinitions"],"mappings":";;;;;;;;;;;;;;AAAA,MAAM,sBAAsB,CAAA;AAClB,IAAA,YAAY,GAAG,IAAI,GAAG,EAAU;IAChC,iBAAiB,GAAyB,IAAI;IAC9C,iBAAiB,GAAwB,IAAI;AAErD,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AAC3B,YAAA,OAAO,OAAO,CAAC,OAAO,EAAE;;QAE1B,OAAO,IAAI,CAAC,iBAAiB;;AAG/B,IAAA,YAAY,CAAC,WAAmB,EAAA;AAC9B,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC;AAElC,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3B,IAAI,CAAC,iBAAiB,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;AAC/C,gBAAA,IAAI,CAAC,iBAAiB,GAAG,OAAO;AAClC,aAAC,CAAC;;;AAIN,IAAA,aAAa,CAAC,WAAmB,EAAA;;QAE/B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YACvC;;AAGF,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC;QAErC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,iBAAiB,IAAI;AAC1B,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;AAC7B,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;;;AAGlC;AAED;AACO,MAAM,sBAAsB,GAAG,IAAI,sBAAsB;;ACrC1D,SAAUA,SAAO,CAAC,IAAoB,EAAE,EAAU,EAAA;AACtD,IAAA,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,KAAK,UAAU,CAAC,MAAM,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;AACxE;;;;;;;ACAO,MAAMC,UAAQ,GAAsC;WACzDC,OAAK;CACN;;ACHD;;;AAGG;AACI,MAAM,GAAG,GAA+B;AAC7C,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,OAAO,EAAE,CAAC,IAAiC,KAAI;AAC7C,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,YAAA,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC;;QAGrD,OAAO,QAAQ,CAAC,MAAK;AACnB,YAAA,MAAM,KAAK,GAAG,IAAI,6BAA6B,EAAE;AAEjD,YAAA,KAAK,MAAM,WAAW,IAAI,IAAI,EAAE;AAC9B,gBAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;gBAElC,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;AAC9C,gBAAA,IAAI,WAAW;AAAE,oBAAA,OAAO,WAAW;AAEnC,gBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AACnB,oBAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;;;AAI/B,YAAA,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AAC5B,SAAC,CAAC;KACH;AACD,IAAA,SAAS,EAAE,yBAAyB;CACrC;;AC9BK,SAAUF,SAAO,CAAC,MAAiC,EAAE,IAAc,EAAA;AACvE,IAAA,MAAM,QAAQ,GAAG,CAAC,MAAe,EAAE,IAAc,KAC/C,IAAI,CAAC,MAAM,CAAU,CAAC,OAAO,EAAE,IAAI,KAAI;AACrC,QAAA,OAAQ,OAAmC,GAAG,IAAI,CAAC;KACpD,EAAE,MAAM,CAAC;AAEZ,IAAA,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACzD;AAEO,MAAM,UAAU,GAAuB;AAC5C,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,oCAAoC;CAChD;;ACbK,SAAUA,SAAO,CAAC,KAAgB,EAAE,KAAa,EAAA;AACrD,IAAA,OAAO,KAAK,CAAC,KAAK,CAAC;AACrB;AAEO,MAAM,EAAE,GAAuB;AACpC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,gCAAgC;CAC5C;;ACRK,SAAUA,SAAO,CAAC,KAAc,EAAA;AACpC,IAAA,OAAO,OAAO,CAAC,KAAK,CAAC;AACvB;AAEO,MAAM,IAAI,GAAuB;AACtC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,sBAAsB;CAClC;;ACRK,SAAUA,SAAO,CAAC,KAAa,EAAA;AACnC,IAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACzB;AAEO,MAAM,IAAI,GAAuB;AACtC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,oBAAoB;CAChC;;SCReA,SAAO,CAAC,OAAiB,EAAE,SAAS,GAAG,EAAE,EAAA;AACvD,IAAA,OAAO,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;AAChC;AAEO,MAAM,MAAM,GAAuB;AACxC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,+BAA+B;CAC3C;;ACRD,MAAMA,SAAO,GAAG,CAAC,KAAc,KAAsB;IACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;AACxE,CAAC;AAEM,MAAM,KAAK,GAAuB;AACvC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,sBAAsB;CAClC;;ACRK,SAAUA,SAAO,CAAC,IAAY,EAAE,IAAY,EAAA;IAChD,OAAO,IAAI,GAAG,IAAI;AACpB;AAEO,MAAM,MAAM,GAAuB;AACxC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,4BAA4B;CACxC;;ACRK,SAAUA,SAAO,CAAC,KAAgB,EAAA;AACtC,IAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAC3B;AAEO,MAAM,KAAK,GAAuB;AACvC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,wBAAwB;CACpC;;ACRK,SAAUA,SAAO,CAAC,MAA+B,EAAA;IACrD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;AACzC;AAEO,MAAM,WAAW,GAAuB;AAC7C,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,wBAAwB;CACpC;;ACRD,MAAMA,SAAO,GAAG,CAAC,CAAU,EAAE,CAAU,KAAc,CAAC,KAAK,CAAC;AAErD,MAAM,EAAE,GAAuB;AACpC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,+BAA+B;CAC3C;;ACNK,SAAUA,SAAO,CAAC,KAAgB,EAAA;AACtC,IAAA,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC;AACtC;AAEO,MAAM,KAAK,GAAuB;AACvC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,wBAAwB;CACpC;;ACRK,SAAUA,SAAO,CAAC,KAAgB,EAAE,aAA8C,EAAA;IACtF,IAAI,CAAC,aAAa,EAAE;AAClB,QAAA,OAAO,EAAE;;AAEX,IAAA,IAAI,aAAa,YAAY,GAAG,EAAE;AAChC,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;;AAExD,IAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7D;AAEO,MAAM,QAAQ,GAAuB;AAC1C,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,qCAAqC;CACjD;;SCdeA,SAAO,CAAC,UAAqC,EAAE,GAAW,EAAE,MAAiB,EAAA;AAC3F,IAAA,OAAO;SACJ,GAAG,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC;SACnE,MAAM,CAAC,CAAC,IAAI,KAAsC,IAAI,KAAK,SAAS,CAAC;AAC1E;AAEO,MAAM,SAAS,GAAuB;AAC3C,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,iDAAiD;CAC7D;;SCVeA,SAAO,CAAC,UAAqC,EAAE,GAAW,EAAE,KAAc,EAAA;AACxF,IAAA,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC;IAClE,OAAO,KAAK,IAAI,IAAI;AACtB;AAEO,MAAM,MAAM,GAAuB;AACxC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,2CAA2C;CACvD;;ACTK,SAAUA,SAAO,CAAC,KAA4B,EAAA;AAClD,IAAA,OAAO,KAAK,CAAC,IAAI,EAAE;AACrB;AAEO,MAAM,OAAO,GAAuB;AACzC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,4BAA4B;CACxC;;ACRK,SAAUA,SAAO,CAAC,KAAa,EAAA;AACnC,IAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AAC1B;AAEO,MAAM,KAAK,GAAuB;AACvC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,oBAAoB;CAChC;;ACRD,MAAMA,SAAO,GAAG,CAAC,CAAS,EAAE,CAAS,KAAc,CAAC,GAAG,CAAC;AAEjD,MAAM,EAAE,GAAuB;AACpC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,6BAA6B;CACzC;;ACND,MAAMA,SAAO,GAAG,CAAC,CAAS,EAAE,CAAS,KAAc,CAAC,IAAI,CAAC;AAElD,MAAM,GAAG,GAAuB;AACrC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,6BAA6B;CACzC;;ACLD;;;AAGG;AACI,MAAM,IAAI,GAA+B;AAC9C,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,OAAO,EAAE,CAAC,IAAiC,KAAI;AAC7C,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,YAAA,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC;;QAGtF,MAAM,CAAC,iBAAiB,EAAE,YAAY,EAAE,aAAa,CAAC,GAAG,IAAI;QAE7D,OAAO,QAAQ,CAAC,MAAK;AACnB,YAAA,MAAM,KAAK,GAAG,IAAI,6BAA6B,EAAE;AAEjD,YAAA,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,EAAE;YAC9C,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;AACpD,YAAA,IAAI,WAAW;AAAE,gBAAA,OAAO,WAAW;AAEnC,YAAA,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,GAAG,EAAE;YACnF,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;AACvD,YAAA,IAAI,iBAAiB;AAAE,gBAAA,OAAO,iBAAiB;YAE/C,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;AACzC,SAAC,CAAC;KACH;AACD,IAAA,SAAS,EAAE,wCAAwC;CACpD;;AC7BK,SAAUA,SAAO,CAAC,UAAoC,EAAE,KAAc,EAAA;AAC1E,IAAA,IAAI,UAAU,YAAY,GAAG,EAAE;AAC7B,QAAA,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;;AAE9B,IAAA,OAAO,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;AACnC;AAEO,MAAM,IAAI,GAAuB;AACtC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,iCAAiC;CAC7C;;ACXD,SAAS,QAAQ,CAAC,IAAY,EAAE,KAAc,EAAA;AAC5C,IAAA,IAAI,KAAK,YAAY,GAAG,EAAE;AACxB,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;;AAE1B,IAAA,OAAO,KAAK;AACd;AAEM,SAAUA,SAAO,CAAC,GAAY,EAAA;IAClC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC;AACtC;AAEO,MAAM,IAAI,GAAuB;AACtC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,qBAAqB;CACjC;;ACfK,SAAUA,SAAO,CAAC,MAA+B,EAAA;AACrD,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5B;AAEO,MAAM,IAAI,GAAuB;AACtC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,yBAAyB;CACrC;;ACRK,SAAUA,SAAO,CAAC,KAAgB,EAAA;IACtC,OAAO,KAAK,CAAC,MAAM;AACrB;AAEO,MAAM,MAAM,GAAuB;AACxC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,uBAAuB;CACnC;;ACRD,MAAMA,SAAO,GAAG,CAAC,CAAS,EAAE,CAAS,KAAc,CAAC,GAAG,CAAC;AAEjD,MAAM,EAAE,GAAuB;AACpC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,6BAA6B;CACzC;;ACND,MAAMA,SAAO,GAAG,CAAC,CAAS,EAAE,CAAS,KAAc,CAAC,IAAI,CAAC;AAElD,MAAM,GAAG,GAAuB;AACrC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,6BAA6B;CACzC;;ACNK,SAAUA,SAAO,CAAC,GAAW,EAAE,KAAa,EAAA;IAChD,OAAO,GAAG,GAAG,KAAK;AACpB;AAEO,MAAM,KAAK,GAAuB;AACvC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,4BAA4B;CACxC;;ACRK,SAAUA,SAAO,CAAC,CAAS,EAAE,CAAS,EAAA;IAC1C,OAAO,CAAC,GAAG,CAAC;AACd;AAEO,MAAM,MAAM,GAAuB;AACxC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,4BAA4B;CACxC;;ACRK,SAAUA,SAAO,CAAC,IAAY,EAAE,IAAY,EAAA;IAChD,OAAO,IAAI,GAAG,IAAI;AACpB;AAEO,MAAM,QAAQ,GAAuB;AAC1C,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,4BAA4B;CACxC;;ACRK,SAAUA,SAAO,CAAC,GAAW,EAAA;IACjC,OAAO,CAAC,GAAG;AACb;AAEO,MAAM,MAAM,GAAuB;AACxC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,oBAAoB;CAChC;;ACRD,MAAMA,SAAO,GAAG,CAAC,CAAU,EAAE,CAAU,KAAc,CAAC,KAAK,CAAC;AAErD,MAAM,GAAG,GAAuB;AACrC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,+BAA+B;CAC3C;;ACNK,SAAUA,SAAO,CAAC,KAAc,EAAA;IACpC,OAAO,CAAC,KAAK;AACf;AAEO,MAAM,GAAG,GAAuB;AACrC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,sBAAsB;CAClC;;ACPD;;;AAGG;AACI,MAAM,YAAY,GAA+B;AACtD,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,OAAO,EAAE,CAAC,IAAiC,KAAI;AAC7C,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,YAAA,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC;;AAG9D,QAAA,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,GAAG,IAAI;QAE1C,OAAO,QAAQ,CAAC,MAAK;AACnB,YAAA,MAAM,KAAK,GAAG,IAAI,6BAA6B,EAAE;AAEjD,YAAA,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,EAAE;YACpC,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;AAC/C,YAAA,IAAI,WAAW;AAAE,gBAAA,OAAO,WAAW;AAEnC,YAAA,IAAI,SAAS,CAAC,KAAK,IAAI,IAAI,EAAE;gBAC3B,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC;;AAGvC,YAAA,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,EAAE;YACtC,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC;AACrD,YAAA,IAAI,gBAAgB;AAAE,gBAAA,OAAO,gBAAgB;YAE7C,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;AACxC,SAAC,CAAC;KACH;AACD,IAAA,SAAS,EAAE,+BAA+B;CAC3C;;ACjCK,SAAUA,SAAO,CAAC,KAAc,EAAA;AACpC,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;AAC5B,IAAA,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACxB,QAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAA,UAAA,CAAY,CAAC;;AAE5D,IAAA,OAAO,MAAM;AACf;AAEO,MAAM,MAAM,GAAuB;AACxC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,qBAAqB;CACjC;;ACZK,SAAUA,SAAO,CAAC,KAAgB,EAAA;IACtC,MAAM,MAAM,GAA4B,EAAE;AAE1C,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AACxC,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;AACpB,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,CAAA,kBAAA,EAAqB,OAAO,GAAG,CAAA,iBAAA,CAAmB,CAAC;;QAGrE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;;AAG5B,IAAA,OAAO,MAAM;AACf;AAEO,MAAM,QAAQ,GAAuB;AAC1C,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,0BAA0B;CACtC;;AClBD;;;AAGG;AACI,MAAM,EAAE,GAA+B;AAC5C,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,OAAO,EAAE,CAAC,IAAiC,KAAI;AAC7C,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,YAAA,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC;;QAGpD,OAAO,QAAQ,CAAC,MAAK;AACnB,YAAA,MAAM,KAAK,GAAG,IAAI,6BAA6B,EAAE;AAEjD,YAAA,KAAK,MAAM,WAAW,IAAI,IAAI,EAAE;AAC9B,gBAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;gBAElC,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;AAC9C,gBAAA,IAAI,WAAW;AAAE,oBAAA,OAAO,WAAW;AAEnC,gBAAA,IAAI,QAAQ,CAAC,KAAK,EAAE;AAClB,oBAAA,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;;;AAI9B,YAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAC7B,SAAC,CAAC;KACH;AACD,IAAA,SAAS,EAAE,yBAAyB;CACrC;;AC9BK,SAAUA,SAAO,CAAC,MAA+B,EAAE,IAAc,EAAA;IACrE,OAAO,IAAI,CAAC,MAAM,CAAU,CAAC,OAAO,EAAE,IAAI,KAAI;AAC5C,QAAA,OAAQ,OAAmC,GAAG,IAAI,CAAC;KACpD,EAAE,MAAM,CAAC;AACZ;AAEO,MAAM,KAAK,GAAuB;AACvC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,kCAAkC;CAC9C;;ACVK,SAAUA,SAAO,CAAC,CAAU,EAAE,CAAU,EAAA;IAC5C,OAAQ,CAAY,GAAI,CAAY;AACtC;AAEO,MAAM,IAAI,GAAuB;AACtC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,+BAA+B;CAC3C;;SCReA,SAAO,CAAC,KAAa,EAAE,SAAS,GAAG,CAAC,EAAA;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC;IAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,UAAU;AACpD;AAEO,MAAM,KAAK,GAAuB;AACvC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,4BAA4B;CACxC;;SCTeA,SAAO,CAAC,KAAgB,EAAE,KAAa,EAAE,GAAY,EAAA;IACnE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;AAChC;AAEO,MAAM,KAAK,GAAuB;AACvC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,0CAA0C;CACtD;;ACRK,SAAUA,SAAO,CAAC,KAAgB,EAAA;AACtC,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC;AACrC;AAEO,MAAM,IAAI,GAAuB;AACtC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,wBAAwB;CACpC;;ACRK,SAAUA,SAAO,CAAC,KAAc,EAAA;AACpC,IAAA,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB;AAEO,MAAM,MAAM,GAAuB;AACxC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,qBAAqB;CACjC;;ACPD;;;AAGG;AACI,MAAM,QAAQ,GAA+B;AAClD,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,OAAO,EAAE,CAAC,IAAiC,KAAI;AAC7C,QAAA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACnB,YAAA,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC;;AAG5E,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC;QAE7B,OAAO,QAAQ,CAAC,MAAK;AACnB,YAAA,MAAM,KAAK,GAAG,IAAI,6BAA6B,EAAE;AAEjD,YAAA,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,EAAE;YACtC,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC;AAChD,YAAA,IAAI,WAAW;AAAE,gBAAA,OAAO,WAAW;AAEnC,YAAA,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK;AAE9B,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;gBAChC,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;gBAElC,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC;AACrD,gBAAA,IAAI,gBAAgB;AAAE,oBAAA,OAAO,gBAAgB;gBAE7C,MAAM,kBAAkB,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC;AACzD,gBAAA,IAAI,kBAAkB;AAAE,oBAAA,OAAO,kBAAkB;AAEjD,gBAAA,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK;AAC9B,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACxB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;AAC1B,wBAAA,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC;;oBAGpE,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,KAAK,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,SAAS,KAAK,KAAK,CAAC;oBAChG,MAAM,WAAW,GAAG,UAAU,IAAI,CAAC,GAAG,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK;AAChF,oBAAA,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;;;YAIrC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAElC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;AAC7B,gBAAA,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC;;AAGvF,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC3C,gBAAA,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC;gBACnC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;AAEzC,gBAAA,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,EAAE;gBAC1C,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC;AACrD,gBAAA,IAAI,cAAc;AAAE,oBAAA,OAAO,cAAc;AAEzC,gBAAA,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK;AAElC,gBAAA,IAAI,OAAO,KAAK,KAAK,EAAE;AACrB,oBAAA,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,EAAE;oBAC9C,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;AACzD,oBAAA,IAAI,gBAAgB;AAAE,wBAAA,OAAO,gBAAgB;oBAE7C,OAAO,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC;;;AAI9C,YAAA,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,EAAE;YAC1C,MAAM,kBAAkB,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC;AACzD,YAAA,IAAI,kBAAkB;AAAE,gBAAA,OAAO,kBAAkB;YAEjD,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC;AAC1C,SAAC,CAAC;KACH;AACD,IAAA,SAAS,EAAE,yBAAyB;CACrC;;AC/EK,SAAUA,SAAO,CAAC,KAAa,EAAA;AACnC,IAAA,OAAO,KAAK,CAAC,WAAW,EAAE;AAC5B;AAEO,MAAM,WAAW,GAAuB;AAC7C,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,oBAAoB;CAChC;;ACRK,SAAUA,SAAO,CAAC,KAAa,EAAA;AACnC,IAAA,OAAO,KAAK,CAAC,WAAW,EAAE;AAC5B;AAEO,MAAM,WAAW,GAAuB;AAC7C,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EAAE,oBAAoB;CAChC;;ACsCD;;;;;;;;AAQG;AACI,MAAMG,kBAAgB,GAAuC;;IAElE,MAAM;IACN,SAAS;IACT,EAAE;IACF,GAAG;;IAGH,IAAI;IACJ,KAAK;;AAGL,IAAA,EAAE,EAAE,IAAI;IACR,GAAG;IACH,EAAE;IACF,YAAY;AACZ,IAAA,MAAM,EAAE,QAAQ;;AAGhB,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,MAAM,EAAE,QAAQ;IAChB,IAAI;IACJ,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,IAAI;IACJ,KAAK;IACL,MAAM;IACN,MAAM;IACN,IAAI;IACJ,MAAM;IACN,QAAQ;IACR,WAAW;IACX,UAAU;IACV,MAAM;IACN,MAAM;IACN,KAAK;IACL,IAAI;IACJ,WAAW;IACX,WAAW;IACX,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,QAAQ;IACR,EAAE;IACF,GAAG;IACH,EAAE;IACF,EAAE;IACF,GAAG;IACH,GAAG;CACJ;;AC1GM,MAAM,MAAM,GAAiB;cAClCF,UAAQ;AACR,IAAA,SAAS,EAAEE,kBAAgB;;;ACOvB,SAAU,cAAc,CAAC,MAAoB,EAAA;AACjD,IAAA,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,EAAE;;AAG9C,IAAA,IAAI,MAAM,CAAC,KAAK,EAAE;QAChB,MAAM,CAAC,KAAK,EAAE;;;AAIhB,IAAA,IAAI,MAAM,CAAC,MAAM,EAAE;AACjB,QAAA,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;AACnE,YAAA,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;;;AAI5C,IAAA,IAAI,MAAM,CAAC,WAAW,EAAE;QACtB,QAAQ,CAAC,aAAa,CAAC,0BAA0B,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;;AAGxE,IAAA,IAAI,MAAM,CAAC,QAAQ,EAAE;AACnB,QAAA,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC;;AAGvC,IAAA,IAAI,MAAM,CAAC,SAAS,EAAE;QACpB,gBAAgB,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC;;AAEjE;AAEM,SAAU,eAAe,CAAC,GAAG,OAAuB,EAAA;AACxD,IAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,cAAc,CAAC,MAAM,CAAC;;AAE1B;;AC7BA,MAAM,UAAU,GAAG,CAAC,OAAqB,MAAgB;AACvD,IAAA,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,OAAO,CAAC,KAAK;AACrB,CAAA,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,OAAyB,MAAgB;AAC/D,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE;AACJ,QAAA;AACE,YAAA,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,OAAO,CAAC,IAAI;AACpB,SAAA;AACF,KAAA;AACF,CAAA,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,OAA0B,MAAgB;AACjE,IAAA,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,OAAO,CAAC,IAAI;AACpB,CAAA,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,OAAqB,MAAgB;AACvD,IAAA,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAC9C,CAAA,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,OAAsB,MAAgB;AACzD,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM;AACtD,QAAA,GAAG,EAAE,mBAAmB,CAAC,GAAG,CAAC;AAC7B,QAAA,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC;AAClC,KAAA,CAAC,CAAC;AACJ,CAAA,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,OAAwB,MAAgB;AAC7D,IAAA,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,OAAO,CAAC,IAAI;IAClB,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAC5C,CAAA,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,OAAmB,KAAc;AACjD,IAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACpB,QAAA,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC;;IAElD,OAAO;AACL,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KAC7C;AACH,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,OAAsB,KAAc;AACvD,IAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACpB,QAAA,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC;;IAErD,OAAO;AACL,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KAC7C;AACH,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,OAAqB,KAAe,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC;AAEzF,MAAM,YAAY,GAAG,CAAC,OAAuB,KAAc;IACzD,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AAC9C,QAAA,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC;;IAE7E,OAAO;AACL,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,IAAI,EAAE;AACJ,YAAA,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC;AACtC,YAAA,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC;AACvC,YAAA,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC;AACxC,SAAA;KACF;AACH,CAAC;AAED,MAAM,oBAAoB,GAAG,CAAC,OAAwB,KAAc;AAClE,IAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,CAAA,kBAAA,EAAqB,OAAO,CAAC,IAAI,CAAA,2BAAA,CAA6B,CAAC;;IAEjF,OAAO;AACL,QAAA,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO,CAAC,IAAI;AAClB,QAAA,IAAI,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC9E;AACH,CAAC;AAED,MAAM,eAAe,GAA0D;IAC7E,KAAK,EAAE,CAAC,OAAO,KAAK,UAAU,CAAC,OAAuB,CAAC;IACvD,SAAS,EAAE,CAAC,OAAO,KAAK,cAAc,CAAC,OAA2B,CAAC;IACnE,UAAU,EAAE,CAAC,OAAO,KAAK,eAAe,CAAC,OAA4B,CAAC;IACtE,KAAK,EAAE,CAAC,OAAO,KAAK,UAAU,CAAC,OAAuB,CAAC;IACvD,MAAM,EAAE,CAAC,OAAO,KAAK,WAAW,CAAC,OAAwB,CAAC;IAC1D,QAAQ,EAAE,CAAC,OAAO,KAAK,aAAa,CAAC,OAA0B,CAAC;IAChE,GAAG,EAAE,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAqB,CAAC;IACjD,MAAM,EAAE,CAAC,OAAO,KAAK,WAAW,CAAC,OAAwB,CAAC;IAC1D,QAAQ,EAAE,CAAC,OAAO,KAAK,oBAAoB,CAAC,OAA0B,CAAC;IACvE,MAAM,EAAE,CAAC,OAAO,KAAK,oBAAoB,CAAC,OAA0B,CAAC;IACrE,MAAM,EAAE,CAAC,OAAO,KAAK,oBAAoB,CAAC,OAA0B,CAAC;IACrE,IAAI,EAAE,CAAC,OAAO,KAAK,oBAAoB,CAAC,OAA0B,CAAC;IACnE,KAAK,EAAE,CAAC,OAAO,KAAK,oBAAoB,CAAC,OAA0B,CAAC;IACpE,EAAE,EAAE,CAAC,OAAO,KAAK,oBAAoB,CAAC,OAA0B,CAAC;IACjE,GAAG,EAAE,CAAC,OAAO,KAAK,oBAAoB,CAAC,OAA0B,CAAC;IAClE,EAAE,EAAE,CAAC,OAAO,KAAK,oBAAoB,CAAC,OAA0B,CAAC;IACjE,EAAE,EAAE,CAAC,OAAO,KAAK,oBAAoB,CAAC,OAA0B,CAAC;IACjE,GAAG,EAAE,CAAC,OAAO,KAAK,oBAAoB,CAAC,OAA0B,CAAC;IAClE,GAAG,EAAE,CAAC,OAAO,KAAK,oBAAoB,CAAC,OAA0B,CAAC;IAClE,GAAG,EAAE,CAAC,OAAO,KAAK,oBAAoB,CAAC,OAA0B,CAAC;IAClE,EAAE,EAAE,CAAC,OAAO,KAAK,oBAAoB,CAAC,OAA0B,CAAC;IACjE,YAAY,EAAE,CAAC,OAAO,KAAK,oBAAoB,CAAC,OAA0B,CAAC;IAC3E,KAAK,EAAE,CAAC,OAAO,KAAK,UAAU,CAAC,OAAuB,CAAC;IACvD,OAAO,EAAE,CAAC,OAAO,KAAK,YAAY,CAAC,OAAyB,CAAC;CAC9D;AAEK,SAAU,mBAAmB,CAAC,OAAuB,EAAA;IACzD,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7C,IAAI,OAAO,EAAE;AACX,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC;;IAGzB,MAAM,IAAI,KAAK,CAAC,CAAA,mCAAA,EAAsC,OAAO,CAAC,IAAI,CAAA,CAAE,CAAC;AACvE;;ACtIM,SAAU,YAAY,CAAC,OAAe,EAAA;AAC1C,IAAA,IAAI,UAA0B;AAC9B,IAAA,IAAI;AACF,QAAA,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC;;IAClC,OAAO,CAAC,EAAE;AACV,QAAA,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACZ,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;;AAGvC,IAAA,OAAO,mBAAmB,CAAC,UAAU,CAAC;AACxC;;SCTgB,SAAS,CACvB,IAA6B,EAC7B,SAAqB,EACrB,GAIC,EAAA;AAED,IAAA,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,GAAG;IAE5C,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAA,WAAA,EAAc,iBAAiB,CAAA,IAAA,EAAO,SAAS,CAAA,EAAA,CAAI,CAAC;AAClF,IAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AAC9B,QAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;;IAE3D,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,YAAY,CAAuB,QAAQ,EAAE;AAC3E,QAAA,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;AACvC,KAAA,CAAC;IACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;AAEjC,IAAA,MAAM,QAAQ,GAAG,QAAQ,CACvB,MAAM;AACH,QAAA,IAAqC,CAAC,cAAc;QACrD,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,EAAE,iBAAiB,CAAC;QACnE,QAAQ,CAAC,GAAG,EAAE;KACf,EACD,CAAC,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,IAAI,KAAI;AAC1C,QAAA,IAAI,QAAmB;QACvB,IAAI,CAAC,IAAI,EAAE;;YAET,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7B,gBAAA,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC;;iBAChB;AACL,gBAAA,QAAQ,GAAG,SAAS,CAAC,KAAK;;;aAEvB;AACL,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;;AAExC,gBAAA,QAAQ,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE;;iBAC7B;;AAEL,gBAAA,QAAQ,GAAG,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;AAC/B,gBAAA,IAAI,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE;AAC1D,oBAAA,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC;;;;;QAO3B,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,cAAc,CAAC,WAAW,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAElG,WAAW,CAAC,MAAK;AACf,YAAA,MAAM,KAAK,GAAG,cAAc,CAAC,WAAW,EAAE;AAC1C,YAAA,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC;AAEtC,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,gBAAA,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;AACvB,gBAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC;gBACzB,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;AACtC,gBAAA,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC;;AAE5C,SAAC,CAAC;AACJ,KAAC,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,CACvD;AACD,IAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC/B;;SCrEgB,UAAU,CAAC,SAAqB,EAAE,IAA6B,EAAE,GAAwB,EAAA;AACvG,IAAA,MAAM,KAAK,GAAG,cAAc,CAAC,WAAW,EAAE;AAE1C,IAAA,IAAI,UAAmC;AACvC,IAAA,IAAI;;;;QAIF,MAAM,YAAY,GAAG,SAAS,CAAC,aAAa,KAAK,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,EAAE;QAE7G,IAAI,CAAC,YAAY,EAAE;YACjB,GAAG,CAAC,KAAK,CAAC,CAAA,kEAAA,EAAqE,GAAG,CAAC,QAAQ,CAAA,CAAA,CAAG,CAAC;YAC/F;;QAGF,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,QAAQ,CAAC;;IACtD,OAAO,KAAK,EAAE;AACd,QAAA,GAAG,CAAC,KAAK,CAAC,mCAAmC,KAAK,CAAA,CAAE,CAAC;QACrD;;IAGF,MAAM,QAAQ,GAAG,QAAQ,CACvB,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,EACtD,CAAC,IAAI,EAAE,IAAI,KAAI;QACb,MAAM,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC,GAAG,IAAI;AAC9C,QAAA,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;QAE/D,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE;YACjD;;AAGF,QAAA,IAAI,CAAC,IAAI,IAAI,WAAW,KAAK,IAAI,EAAE;AACjC,YAAA,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC;YACzC;;AAGF,QAAA,IAAI,WAAW,KAAK,eAAe,EAAE;AACnC,YAAA,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC;YACzC;;AAGF,QAAA,IAAI,WAAW,KAAK,eAAe,EAAE;AACnC,YAAA,KAAK,CAAC,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC;;AAEnD,KAAC,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B;AAED,IAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC/B;;SC9CgB,UAAU,CACxB,IAA6B,EAC7B,SAAqB,EACrB,GAKC,EAAA;IAED,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,GAAG;AAErD,IAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAA,YAAA,EAAe,iBAAiB,CAAA,IAAA,EAAO,OAAO,CAAA,IAAA,EAAO,SAAS,CAAA,EAAA,CAAI,CAAC;AACjG,IAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AAC9B,QAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;;IAE3D,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,YAAY,CAAqC,QAAQ,EAAE;AACzF,QAAA,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;AACvC,KAAA,CAAC;IACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAEjC,IAAI,kBAAkB,GAA4B,EAAE;AAEpD,IAAA,MAAM,QAAQ,GAAG,QAAQ,CAIvB,MAAM;AACH,QAAA,IAAsC,CAAC,cAAc;QACtD,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,EAAE,iBAAiB,CAAC;QACnE,QAAQ,CAAC,GAAG,EAAE;KACf,EACD,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,IAAI,KAAI;AAC9C,QAAA,MAAM,YAAY,GAAG,SAAS,IAAI,EAAE;QAEpC,IAAIC,QAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE;YACnD;;AAGF,QAAA,MAAM,QAAQ,GAAG,CAAC,IAAI;AACtB,QAAA,MAAM,WAAW,GAAG,CAAC,QAAQ,IAAI,CAACA,QAAK,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAEtE,QAAA,IAAI,QAAQ,IAAI,WAAW,EAAE;YAC3B,kBAAkB,GAAG,YAAY;;aAC5B;YACL,kBAAkB,GAAG,YAAY,CAAC,kBAAkB,EAAE,SAAS,CAAC,KAAK,CAAC;;AAGxE,QAAA,IAAI,eAAwC;QAE5C,IAAI,QAAQ,EAAE;AACZ,YAAA,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC;AAC5D,YAAA,eAAe,GAAG;AAChB,kBAAEC,4BAA0B,CAAC,YAAY,EAAE,SAAS;AACpD,kBAAE,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE;;aACrB,IAAI,WAAW,EAAE;AACtB,YAAA,eAAe,GAAGA,4BAA0B,CAAC,YAAY,EAAE,SAAS,CAAC;;aAChE;AACL,YAAA,eAAe,GAAG,uBAAuB,CAAC,SAAS,EAAE,kBAAkB,CAAC;;QAG1E,WAAW,CAAC,MAAK;AACf,YAAA,MAAM,KAAK,GAAG,cAAc,CAAC,WAAW,EAAE;AAC1C,YAAA,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,eAAe,CAAC;YAE7CC,wBAAsB,CAAC,aAAa,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,CAAC;AAC5E,SAAC,CAAC;AACJ,KAAC,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAEF,QAAK,CAAC,UAAU,EAAE,CACpD;AACD,IAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC/B;AAEA,SAAS,uBAAuB,CAC9B,SAA6C,EAC7C,kBAA2C,EAAA;IAE3C,MAAM,eAAe,GAA4B,EAAE;AAEnD,IAAA,KAAK,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AACtE,QAAA,MAAM,cAAc,GAAG,kBAAkB,CAAC,QAAQ,CAAC;QAEnD,IAAI,QAAQ,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,EAAE;YACtD,eAAe,CAAC,QAAQ,CAAC,GAAG,4BAA4B,CAAC,YAAY,EAAE,cAAc,CAAC;YACtF;;AAGF,QAAA,eAAe,CAAC,QAAQ,CAAC,GAAG,YAAY,IAAI,cAAc;;AAG5D,IAAA,OAAO,eAAe;AACxB;AAEA,SAAS,4BAA4B,CACnC,YAAqC,EACrC,cAAuC,EAAA;AAEvC,IAAA,MAAM,MAAM,GAAG,EAAE,GAAG,YAAY,EAAE;AAElC,IAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AACvD,QAAA,IAAI,KAAK,KAAK,IAAI,EAAE;YAClB;;AAGF,QAAA,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YACrE;;QAGF,MAAM,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC;;AAGnC,IAAA,OAAO,MAAM;AACf;AAEA,SAASC,4BAA0B,CACjC,SAAkC,EAClC,SAA6C,EAAA;IAE7C,MAAM,eAAe,GAA4B,EAAE;AAEnD,IAAA,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AACnD,QAAA,IAAI,EAAE,QAAQ,IAAI,SAAS,CAAC,EAAE;AAC5B,YAAA,eAAe,CAAC,QAAQ,CAAC,GAAG,IAAI;YAChC;;QAGF,eAAe,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC;;AAGjD,IAAA,OAAO,eAAe;AACxB;AAEA,SAASC,wBAAsB,CAC7B,aAA4B,EAC5B,eAAwC,EACxC,OAAe,EACf,SAAiB,EAAA;AAEjB,IAAA,MAAM,KAAK,GAAG,cAAc,CAAC,WAAW,EAAE;AAC1C,IAAA,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;AAE3E,IAAA,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;QAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,CAAS,OAAO,CAAC;AAC7C,QAAA,IAAI,CAAC,GAAG;YAAE;AAEV,QAAA,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC;QAClC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;AACxC,QAAA,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC;;AAE5C;AAEA,SAAS,YAAY,CAAC,MAA+B,EAAE,MAA+B,EAAA;AACpF,IAAA,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE;AAE5B,IAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACjD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;YACzC;;AAGF,QAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;AAC5C,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE;YAC1C;;AAGF,QAAA,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK;;AAGrB,IAAA,OAAO,MAAM;AACf;;SCzKgB,aAAa,CAC3B,IAA6B,EAC7B,SAAqB,EACrB,GAKC,EAAA;IAED,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,GAAG;AAErD,IAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAA,YAAA,EAAe,iBAAiB,CAAA,IAAA,EAAO,OAAO,CAAA,IAAA,EAAO,SAAS,CAAA,EAAA,CAAI,CAAC;AACjG,IAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AAC9B,QAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;;IAE3D,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,YAAY,CAAqC,QAAQ,EAAE;AACzF,QAAA,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;AACvC,KAAA,CAAC;IACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAEjC,IAAI,kBAAkB,GAAmC,IAAI;AAE7D,IAAA,MAAM,QAAQ,GAAG,QAAQ,CACvB,MAAM;AACH,QAAA,IAAmC,CAAC,cAAc;QACnD,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,EAAE,iBAAiB,CAAC;QACnE,QAAQ,CAAC,GAAG,EAAE;KACf,EACD,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,IAAI,KAAI;AAC9C,QAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC;AAExC,QAAA,MAAM,QAAQ,GAAG,CAAC,IAAI;AACtB,QAAA,MAAM,WAAW,GAAG,CAAC,QAAQ,IAAI,CAACF,QAAK,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAEtE,QAAA,IAAI,QAAQ,IAAI,WAAW,EAAE;YAC3B,kBAAkB,GAAG,YAAY;;QAGnC,IAAIA,QAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE;YACnD;;AAGF,QAAA,IAAI,eAAwC;QAC5C,IAAI,QAAQ,EAAE;AACZ,YAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC;AAC7D,YAAA,eAAe,GAAG;kBACd,0BAA0B,CAAC,YAAY,EAAE,SAAS,EAAE,kBAAkB;AACxE,kBAAE,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE;;aACrB,IAAI,WAAW,EAAE;YACtB,eAAe,GAAG,0BAA0B,CAAC,YAAY,EAAE,SAAS,EAAE,kBAAkB,CAAC;;aACpF;YACL,eAAe,GAAG,0BAA0B,CAAC,SAAS,EAAE,kBAAkB,EAAE,YAAY,CAAC;;AAG3F,QAAA,MAAM,cAAc,GAAG,cAAc,CAAC,eAAe,CAAC;QAEtD,WAAW,CAAC,MAAK;AACf,YAAA,MAAM,KAAK,GAAG,cAAc,CAAC,WAAW,EAAE;AAC1C,YAAA,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC;YAE5C,sBAAsB,CAAC,aAAa,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,CAAC;AAC5E,SAAC,CAAC;AACJ,KAAC,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAEA,QAAK,CAAC,UAAU,EAAE,CACpD;AAED,IAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC/B;AAEA,SAAS,0BAA0B,CACjC,SAAkC,EAClC,SAA6C,EAC7C,kBAAkD,EAAA;AAElD,IAAA,MAAM,eAAe,GAAG,EAAE,GAAG,SAAS,EAAE;;IAGxC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;QAC9C,IAAI,EAAE,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,IAAI,EAAE,GAAG,IAAI,kBAAkB,CAAC,CAAC,EAAE;AACtF,YAAA,OAAO,eAAe,CAAC,GAAG,CAAC;;;AAG/B,IAAA,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AAC9C,QAAA,IAAI,EAAE,GAAG,IAAI,eAAe,CAAC,EAAE;AAC7B,YAAA,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK;;;AAIhC,IAAA,OAAO,eAAe;AACxB;AAEA,SAAS,0BAA0B,CACjC,SAA6C,EAC7C,kBAAkD,EAClD,YAAqC,EAAA;IAErC,MAAM,eAAe,GAAG,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE;IAE9C,IAAI,kBAAkB,EAAE;AACtB,QAAA,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC9C,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;gBACjC,eAAe,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,KAAK;;;;QAI3D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;AACjD,YAAA,IAAI,EAAE,GAAG,IAAI,eAAe,CAAC,EAAE;gBAC7B,eAAe,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC;;;;;IAMpD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AAC3C,QAAA,IAAI,EAAE,GAAG,IAAI,eAAe,CAAC,EAAE;YAC7B,eAAe,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC;;;AAI5C,IAAA,OAAO,eAAe;AACxB;AAEA,SAAS,sBAAsB,CAC7B,aAA4B,EAC5B,eAAwC,EACxC,OAAe,EACf,SAAiB,EAAA;AAEjB,IAAA,MAAM,KAAK,GAAG,cAAc,CAAC,WAAW,EAAE;AAC1C,IAAA,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;AAE3E,IAAA,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;QAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,CAAS,OAAO,CAAC;AAC7C,QAAA,IAAI,CAAC,GAAG;YAAE;AAEV,QAAA,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC;QAClC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;AACxC,QAAA,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC;;AAE5C;AAEA,SAAS,cAAc,CAAC,eAAwC,EAAA;IAC9D,OAAO,IAAI,GAAG,CACZ,MAAM,CAAC,OAAO,CAAC,eAAe;AAC3B,SAAA,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,UAAU;SACvC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CACvB;AACH;AAEA,SAAS,QAAQ,CAAC,YAAiC,EAAA;IACjD,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AACrF;;ACtJO,eAAe,UAAU,CAAC,IAA6B,EAAE,KAAK,GAAG,KAAK,EAAA;IAC3E,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AAElC,IAAA,MAAM,KAAK,GAAG,cAAc,CAAC,WAAW,EAAE;AAE1C,IAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AAC9B,QAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC;;AAGjE,IAAA,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC/D,IAAI,CAAC,SAAS,EAAE;QACd;;AAGF,IAAA,MAAM,aAAa,GAAG,KAAK,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa;IACpE,IAAI,CAAC,aAAa,EAAE;QAClB;;AAEF,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;AAEhC,IAAA,QAAQ,aAAa,CAAC,WAAW;AAC/B,QAAA,KAAK,QAAQ;AACX,YAAA,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE;gBAC1B,iBAAiB,EAAE,aAAa,CAAC,iBAAiB;AAClD,gBAAA,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG;AAClC,gBAAA,SAAS,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK;gBACtC,SAAS;AACV,aAAA,CAAC;YACF;AAEF,QAAA,KAAK,WAAW;AACd,YAAA,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE;gBAC7B,iBAAiB,EAAE,aAAa,CAAC,iBAAiB;AAClD,gBAAA,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG;AAClC,gBAAA,SAAS,EAAE,aAAa,CAAC,OAAO,CAAC,QAAQ;gBACzC,SAAS;AACV,aAAA,CAAC;YACF;AAEF,QAAA,KAAK,OAAO;AACV,YAAA,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE;gBACzB,iBAAiB,EAAE,aAAa,CAAC,iBAAiB;AAClD,gBAAA,SAAS,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK;gBACtC,SAAS;AACV,aAAA,CAAC;YACF;AAEF,QAAA,KAAK,QAAQ;AACX,YAAA,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC;YAC1C;;AAEN;;MCzDa,SAAS,GAAG,CAAC,QAAsB,EAAE,KAAa,KAAI;IACjE,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACzF;AAEO,MAAM,oBAAoB,GAAG,IAAI,GAAG;;ACF3C,MAAM,gBAAgB,GAAG,CAAC,MAAkB,MAAgB;AAC1D,IAAA,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,MAAM,CAAC,KAAK;AACpB,CAAA,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,MAAkB,KAAc;AACxD,IAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;QACjB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;;IAEvC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAmC,CAAC;IAC1E,OAAO;AACL,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM;YACzC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;AAClC,YAAA,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC;AAC1B,SAAA,CAAC,CAAC;KACJ;AACH,CAAC;AAED,MAAM,eAAe,GAAG,CAAC,MAAkB,KAAc;AACvD,IAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;QACjB,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAA,qBAAA,CAAuB,CAAC;;IAElE,OAAO;AACL,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,KAAK,EAAG,MAAM,CAAC,KAAsB,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC;KACvE;AACH,CAAC;AAED,MAAM,UAAU,GAAG,MAAe;AAChC,IAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC;AACnD,CAAC;AAED,MAAM,iBAAiB,GAAG,CAAC,MAAkB,KAAc;AACzD,IAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;QACjB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;;AAGvC,IAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,KAA0B;IAC3D,MAAM,YAAY,GAAG,CAAA,EAAI,MAAM,CAAC,SAAmC,CAAC,SAAS,CAAA,IAAA,CAAM;IAEnF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC;IACjD,MAAM,UAAU,GAA0B;SACvC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,MAAM;SAChC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM;QACtB,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;QAClC,KAAK,EAAE,OAAO,KAAK,KAAK,QAAQ,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC;AACjF,KAAA,CAAC,CAAC;IAEL,UAAU,CAAC,IAAI,CAAC;QACd,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE;AAC3C,QAAA,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE;AAC3D,KAAA,CAAC;IAEF,OAAO;AACL,QAAA,IAAI,EAAE,QAAQ;QACd,UAAU;KACX;AACH,CAAC;AAED,MAAM,cAAc,GAAqD;AACvE,IAAA,MAAM,EAAE,gBAAgB;AACxB,IAAA,MAAM,EAAE,gBAAgB;AACxB,IAAA,OAAO,EAAE,gBAAgB;AACzB,IAAA,OAAO,EAAE,gBAAgB;AACzB,IAAA,SAAS,EAAE,gBAAgB;AAC3B,IAAA,OAAO,EAAE,gBAAgB;AACzB,IAAA,eAAe,EAAE,gBAAgB;AACjC,IAAA,MAAM,EAAE,gBAAgB;AACxB,IAAA,GAAG,EAAE,gBAAgB;AACrB,IAAA,KAAK,EAAE,eAAe;AACtB,IAAA,GAAG,EAAE,eAAe;AACpB,IAAA,KAAK,EAAE,UAAU;AACjB,IAAA,YAAY,EAAE,iBAAiB;CAChC;AAEK,SAAU,WAAW,CAAC,MAAkB,EAAA;;AAE5C,IAAA,IAAI,MAAM,CAAC,WAAW,EAAE;AACtB,QAAA,OAAO,sBAAsB,CAAC,MAAM,CAAC,WAAW,CAAC;;;IAInD,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;IACrD,IAAI,OAAO,EAAE;AACX,QAAA,OAAO,OAAO,CAAC,MAAM,CAAC;;IAGxB,MAAM,IAAI,KAAK,CAAC,CAAA,wBAAA,EAA2B,MAAM,CAAC,SAAS,CAAC,IAAI,CAAA,CAAE,CAAC;AACrE;;ACjFM,SAAU,YAAY,CAAC,cAAoC,EAAA;AAC/D,IAAA,MAAM,cAAc,GAAkB;AACpC,QAAA,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,KAAI;;YAEjD,IAAI,iBAAiB,GAAY,IAAI;AACrC,YAAA,IAAI,SAAS,CAAC,OAAO,CAAC,WAAW,IAAI,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,KAAK,SAAS,EAAE;gBAChG,iBAAiB,GAAG,CAAA,CAAA,EAAK,SAAS,CAAC,OAAO,CAAC,WAAwC,CAAC,OAAO,CAAA,CAAE;;iBACxF,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE;AAC3C,gBAAA,iBAAiB,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK;;YAG7C,OAAO;AACL,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,UAAU,EAAE;oBACV,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;oBAC/E,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,EAAE;oBACpG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBAC7E,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;oBAC/E,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;oBAC/E,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBAC7E,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE;AACjG,iBAAA;aACgB;AACrB,SAAC,CAAC;KACH;IAED,MAAM,SAAS,GAAG,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC;IAEnD,OAAO;AACL,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,IAAI,EAAE,CAAC,cAAc,EAAE,SAAS,CAAC;KAClC;AACH;AAEM,SAAU,aAAa,CAAC,mBAA8C,EAAA;IAC1E,OAAO;AACL,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,KAAK,EAAE,mBAAmB;KAC3B;AACH;AAEM,SAAU,gBAAgB,CAAC,MAA2B,EAAA;IAC1D,OAAO;AACL,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KACnF;AACH;AAEM,SAAU,WAAW,CAAC,iBAA0C,EAAA;;IAEpE,MAAM,cAAc,GAAG,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC;;;IAI5D,MAAM,eAAe,GAAe,EAAE;AACtC,IAAA,KAAK,MAAM,QAAQ,IAAI,iBAAiB,CAAC,KAAK,EAAE;AAC9C,QAAA,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;;AAE/D,QAAA,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;;AAGrE,IAAA,MAAM,cAAc,GAAkB;AACpC,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,KAAK,EAAE,eAAe;KACvB;;AAGD,IAAA,MAAM,WAAW,GAAa,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE;IAEvF,OAAO;AACL,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,IAAI,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,WAAW,CAAC;KACpD;AACH;AAEA,MAAM,mBAAmB,GAA4D;IACnF,OAAO,EAAE,CAAC,MAAM,KAAK,YAAY,CAAE,MAAmC,CAAC,OAAO,CAAC;IAC/E,GAAG,EAAE,CAAC,MAAM,KAAK,YAAY,CAAC,MAA8B,CAAC;IAC7D,QAAQ,EAAE,CAAC,MAAM,KAAK,aAAa,CAAC,MAAmC,CAAC;IACxE,EAAE,EAAE,CAAC,MAAM,KAAK,gBAAgB,CAAC,MAA6B,CAAC;IAC/D,MAAM,EAAE,CAAC,MAAM,KAAK,WAAW,CAAC,MAAiC,CAAC;CACnE;AAEK,SAAU,sBAAsB,CAAC,iBAAoC,EAAA;IACzE,MAAM,OAAO,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,eAAe,CAAC;IACtE,IAAI,OAAO,EAAE;AACX,QAAA,OAAO,OAAO,CAAC,iBAAiB,CAAC;;IAEnC,MAAM,IAAI,KAAK,CAAC,CAAA,8BAAA,EAAiC,iBAAiB,CAAC,eAAe,CAAA,CAAE,CAAC;AACvF;;AChGM,SAAU,sBAAsB,CAAC,IAA6B,EAAA;AAClE,IAAA,MAAM,KAAK,GAAG,cAAc,CAAC,WAAW,EAAE;AAE1C,IAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG;IAC9C,IAAI,CAAC,YAAY,EAAE;AACjB,QAAA,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC;;IAGtE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,YAAY,CAAC,MAAM,CAAC;AAC5D,IAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AAC9B,QAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;;IAE3D,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,YAAY,CAA+B,QAAQ,EAAE;AACnF,QAAA,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;AACvC,KAAA,CAAC;IACF,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;AAEzC,IAAA,MAAM,mBAAmB,GAAG,QAAQ,CAClC,MAAM,QAAQ,CAAC,GAAG,EAAE,EACpB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAI;QACtB,MAAM,KAAK,GAAG,KAAK,CAAC,wBAAwB,CAAC,IAAiB,EAAE,QAAQ,CAAC;;AAGzE,QAAA,MAAM,SAAS,GAAI,IAAkB,CAAC,SAAS,IAAI,EAAE;AACrD,QAAA,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE;AACzB,YAAA,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;YAC9B,IAAI,KAAK,EAAE;gBACT,YAAY,CAAC,KAAK,CAAC;;;AAGzB,KAAC,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC,EAAE,CACjF;AACD,IAAA,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC;IAChD,YAAY,CAAC,aAAa,EAAE;AAC9B;;ACxCM,SAAU,sBAAsB,CAAC,IAAkC,EAAA;AACvE,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;AAChC,IAAA,IAAI,SAAS,KAAK,IAAI,EAAE;QACtB;;AAGF,IAAA,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;QACzB,YAAY,CAAC,IAAI,CAAC;AACpB,KAAC,CAAC;AACJ;;ACVA;;;AAGG;AACG,SAAU,0BAA0B,CAAC,SAAqB,EAAA;AAC9D,IAAA,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,YAAY,EAAE;AAC5C,QAAA,MAAM,QAAQ,GAAG,QAAQ,CACvB,MAAM,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,EAC9C,CAAC,SAAS,KAAI;AACZ,YAAA,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,GAAG,CAAA,CAAA,EAAI,SAAS,CAAC,SAAS,CAAA,EAAA,CAAI,GAAG,EAAE;AAClE,YAAA,GAAG,CAAC,KAAK,CAAC,CAAA,EAAG,GAAG,CAAA,cAAA,EAAiB,OAAO,CAAC,QAAQ,kBAAkB,SAAS,CAAC,EAAE,CAAA,CAAE,CAAC;YAClF,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC;AAC9C,SAAC,EACD;AACE,YAAA,eAAe,EAAE,IAAI;AACtB,SAAA,CACF;AAED,QAAA,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;;AAE7C;;AClBM,SAAU,0BAA0B,CAAC,IAAsC,EAAA;AAC/E,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;AAChC,IAAA,IAAI,SAAS,KAAK,IAAI,EAAE;QACtB;;IAGF,MAAM,SAAS,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC;IAE7E,iBAAiB,CAAC,SAAS,CAAC;AAC9B;AAEM,SAAU,iBAAiB,CAAC,SAAqB,EAAA;AACrD,IAAA,cAAc,CAAC,WAAW,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC;IAE7E,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE;QAC3C,YAAY,CAAC,IAAI,CAAC;;IAGpB,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE;QAC/C,YAAY,CAAC,IAAI,CAAC;;AAGpB,IAAA,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,YAAY,EAAE;AAC5C,QAAA,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;;IAG/B,0BAA0B,CAAC,SAAS,CAAC;AACvC;;AC5BM,SAAU,oBAAoB,CAAC,IAAgC,EAAA;AACnE,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;AAChC,IAAA,IAAI,SAAS,KAAK,IAAI,EAAE;QACtB;;IAGF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;QAC3C,YAAY,CAAC,IAAI,CAAC;;AAEtB;;ACTM,SAAU,uBAAuB,CAAC,IAAmC,EAAA;AACzE,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;AAChC,IAAA,IAAI,SAAS,KAAK,IAAI,EAAE;QACtB;;IAGF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;QAC3C,YAAY,CAAC,IAAI,CAAC;;AAEtB;;ACRM,SAAU,sBAAsB,CAAC,IAAkC,EAAA;AACvE,IAAA,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI;AACrC,IAAA,IAAI,SAAS,KAAK,IAAI,EAAE;QACtB;;AAGF,IAAA,MAAM,eAAe,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC;AAEnF,IAAA,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;AACrD,QAAA,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;;AAEhC;;ACXM,SAAU,6BAA6B,CAAC,IAAyC,EAAA;AACrF,IAAA,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI;AACrC,IAAA,IAAI,SAAS,KAAK,IAAI,EAAE;QACtB;;AAGF,IAAA,MAAM,eAAe,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC;AAE1G,IAAA,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;QACrD,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;;AAEvC;;ACCA,MAAM,mBAAmB,GAA4D;IACnF,KAAK,EAAE,CAAC,IAAI,KAAK,sBAAsB,CAAC,IAAoC,CAAC;IAC7E,YAAY,EAAE,CAAC,IAAI,KAAK,6BAA6B,CAAC,IAA2C,CAAC;IAClG,KAAK,EAAE,CAAC,IAAI,KAAK,sBAAsB,CAAC,IAAoC,CAAC;IAC7E,MAAM,EAAE,CAAC,IAAI,KAAK,uBAAuB,CAAC,IAAqC,CAAC;IAChF,GAAG,EAAE,CAAC,IAAI,KAAK,oBAAoB,CAAC,IAAkC,CAAC;IACvE,SAAS,EAAE,CAAC,IAAI,KAAK,0BAA0B,CAAC,IAAwC,CAAC;CAC1F;AAEK,SAAU,iBAAiB,CAAC,IAA6B,EAAA;AAC7D,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS;AAC5B,IAAA,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB;;IAGF,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC;IACpD,IAAI,SAAS,EAAE;QACb,SAAS,CAAC,IAAI,CAAC;;AAEnB;;AC3BM,SAAU,0BAA0B,CAAC,IAA6B,EAAA;AACtE,IAAA,MAAM,KAAK,GAAG,cAAc,CAAC,WAAW,EAAE;AAE1C,IAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG;IAC9C,IAAI,CAAC,YAAY,EAAE;AACjB,QAAA,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC;;AAG1E,IAAA,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK;IAElD,MAAM,QAAQ,GAAG,sBAAsB,CAAC,YAAY,CAAC,MAAM,CAAC;AAC5D,IAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AAC9B,QAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;;AAE3D,IAAA,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC;IACpC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,YAAY,CAAY,QAAQ,EAAE;AAChE,QAAA,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;AACtC,QAAA,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,SAAS;AAC5C,KAAA,CAAC;IACF,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;AAEzC,IAAA,MAAM,mBAAmB,GAAG,QAAQ,CAClC,MAAM,QAAQ,CAAC,GAAG,EAAE,EACpB,CAAC,gBAAgB,KAAI;QACnB,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,gBAAgB;AACjE,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;QAE5B,IAAI,UAAU,EAAE;YACd;;AAGF,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;;AAIpB,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,cAAc,CAAC;AAE7C,QAAA,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC;QAEvC,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,cAAc,EAAE;;YAEhD,mBAAmB,CAAC,IAAI,CAAC;;aACpB;YACL,iBAAiB,CAAC,IAAI,CAAC;;AAE3B,KAAC,EACD;AACE,QAAA,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC;AACnD,KAAA,CACF;AAED,IAAA,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC;IAChD,YAAY,CAAC,aAAa,EAAE;AAC9B;;ACxDM,SAAU,2BAA2B,CAAC,IAA6B,EAAA;AACvE,IAAA,MAAM,KAAK,GAAG,cAAc,CAAC,WAAW,EAAE;AAC1C,IAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI;AACnC,IAAA,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC;AAEpC,IAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG;IAC9C,IAAI,CAAC,YAAY,EAAE;AACjB,QAAA,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC;;AAG3E,IAAA,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,MAAmC;IAChG,MAAM,OAAO,GAAG,CAAA,SAAA,EAAY,SAAS,CAAC,EAAE,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAE;IAEtD,IAAI,KAAK,EAAE;AACT,QAAA,sBAAsB,CAAC,YAAY,CAAC,OAAO,CAAC;QAC5C,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC;;AAG5C,QAAA,aAAa,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;aAChC,IAAI,CAAC,MAAK;YACT,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;YAE7C,IAAI,CAAC,UAAU,EAAE;;gBAEf,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC;AACtC,gBAAA,sBAAsB,CAAC,aAAa,CAAC,OAAO,CAAC;gBAC7C;;;YAIF,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,CAAC;AACjE,YAAA,sBAAsB,CAAC,aAAa,CAAC,OAAO,CAAC;AAC/C,SAAC;AACA,aAAA,KAAK,CAAC,CAAC,KAAK,KAAI;;YAEf,GAAG,CAAC,KAAK,CAAC,CAAA,6BAAA,EAAgC,IAAI,CAAA,EAAA,CAAI,EAAE,KAAK,CAAC;YAC1D,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC;AACtC,YAAA,sBAAsB,CAAC,aAAa,CAAC,OAAO,CAAC;AAC/C,SAAC,CAAC;;QAGJ,YAAY,CAAC,aAAa,EAAE;QAC5B;;IAGF,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;IAE7C,IAAI,CAAC,UAAU,EAAE;AACf,QAAA,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,GAAG,CAAA,CAAA,EAAI,SAAS,CAAC,SAAS,CAAA,EAAA,CAAI,GAAG,EAAE;QAClE,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,GAAG,CAAA,6BAAA,EAAgC,IAAI,CAAA,CAAE,CAAC;;;IAI/D,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,CAAC;IACjE,YAAY,CAAC,aAAa,EAAE;AAC9B;AAEA,SAAS,iBAAiB,CACxB,IAA6B,EAC7B,UAAmD,EACnD,IAAY,EACZ,iBAA0C,EAC1C,GAAuB,EAAA;AAEvB,IAAA,MAAM,KAAK,GAAG,cAAc,CAAC,WAAW,EAAE;AAC1C,IAAA,MAAM,eAAe,GAAG,qBAAqB,CAAC,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,CAAC;AACvF,IAAA,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,eAAe,CAAC;;AAG7C,IAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,iBAAiB,EAAE;AACvC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAwB;QAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC;AAClD,QAAA,MAAM,CAAC,SAAS,GAAG,IAAI;QACvB,iBAAiB,CAAC,MAAM,CAAC;;AAE7B;AAEA,SAAS,qBAAqB,CAC5B,UAAmD,EACnD,IAAY,EACZ,iBAA0C,EAC1C,GAAuB,EAAA;IAEvB,IAAI,CAAC,UAAU,EAAE;AACf,QAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,IAAI,CAAA,CAAE,CAAC;;AAGxE,IAAA,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU;IAC7B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,GAAG,EAAE,EAAE,WAAW,EAAE,GAAG,eAAe,EAAE,GAAG,MAAM;AAC3G,IAAA,MAAM,UAAU,GAAG,gBAAgB,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC3E,IAAA,MAAM,SAAS,GAAG,UAAU,CAAC,KAAiC;IAE9D,IAAI,CAAC,SAAS,EAAE;AACd,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1D,QAAA,MAAM,IAAI,KAAK,CACb,CAAA,UAAA,EAAa,IAAI,CAAA,6BAAA,CAA+B;YAC9C,CAAA,8EAAA,CAAgF;YAChF,CAAA,aAAA,EAAgB,UAAU,CAAA,CAAA,CAAG,CAChC;;;IAIH,MAAM,UAAU,GAA8B,EAAE;AAChD,IAAA,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC3D,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC;AACvE,QAAA,UAAU,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC,SAAS;;AAGpD,IAAA,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC;IAC3G,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,QAAQ,EAAE,UAAU,CAAC;;IAGxE,OAAO;AACL,QAAA,aAAa,EAAE,YAAY;QAC3B,GAAG;AACH,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,GAAG,iBAAiB;KACrB;AACH;AAEA,SAAS,qBAAqB,CAC5B,YAAoB,EACpB,iBAA0C,EAC1C,QAAgC,EAChC,UAAqC,EACrC,eAAwB,EAAA;IAExB,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;IACnD,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;IAE9C,MAAM,iBAAiB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAEzG,IAAA,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;;QAEhC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxG,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAElG,QAAA,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,KAAK,CACb,CAAA,UAAA,EAAa,YAAY,CAAA,4DAAA,CAA8D;AACrF,gBAAA,CAAA,OAAA,EAAU,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAA,CAAI;AAC7C,gBAAA,CAAA,wDAAA,CAA0D,CAC7D;;AACI,aAAA,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,YAAA,GAAG,CAAC,IAAI,CACN,CAAA,UAAA,EAAa,YAAY,CAAA,uBAAA,EAA0B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAA,CAAI;gBAC5E,CAAA,UAAA,EAAa,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CAC7C;;;IAIL,MAAM,iBAAiB,GAA4B,EAAE;AACrD,IAAA,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE;QACxC,MAAM,WAAW,GAAG,CAAA,EAAG,UAAU,CAAC,QAAQ,CAAA,EAAG,SAAS,CAAA,CAAE;AACxD,QAAA,iBAAiB,CAAC,WAAW,CAAC,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;;AAGxG,IAAA,IAAI,MAAM,IAAI,iBAAiB,EAAE;AAC/B,QAAA,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC;QAC/C,IAAI,UAAU,GAAG,eAAe;;QAGhC,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC;AACpG,YAAA,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/B,gBAAA,MAAM,IAAI,KAAK,CACb,CAAA,yDAAA,EACE,cAAc,CAAC,MACjB,CAAA,QAAA,EAAW,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CACvC;;AAEH,YAAA,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC;;QAGhC,MAAM,WAAW,GAAG,CAAA,EAAG,UAAU,CAAC,QAAQ,CAAA,EAAG,UAAU,CAAA,CAAE;AACzD,QAAA,iBAAiB,CAAC,WAAW,CAAC,GAAG,gBAAgB,CAAC,aAAa,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;;AAG1F,IAAA,OAAO,iBAAiB;AAC1B;AAEA,SAAS,sBAAsB,CAAC,QAAgC,EAAE,UAAsB,EAAA;AACtF,IAAA,MAAM,SAAS,GAAG,UAAU,CAAC,KAAiC;AAE9D,IAAA,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;;QAE/D,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE,CAAC;QAEzE,gBAAgB,CAAC,YAAY,GAAG;AAC9B,YAAA,WAAW,EAAE,QAAiB;YAC9B,QAAQ,EAAE,CAAA,cAAA,EAAiB,SAAS,CAAA,CAAE;SACvC;;AAGH,IAAA,OAAO,UAAU;AACnB;AAEA,SAAS,oBAAoB,CAAC,SAAmC,EAAE,GAAW,EAAE,YAAoB,EAAA;IAClG,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;AACtC,IAAA,MAAM,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK;IAEjE,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO;AAC/C,QAAA,MAAM,IAAI,KAAK,CACb,aAAa,YAAY,CAAA,gCAAA,EAAmC,GAAG,CAAA,IAAA,CAAM;AACnE,YAAA,CAAA,gBAAA,EAAmB,SAAS,CAAC,aAAa,CAAA,SAAA,EAAY,IAAI,CAAA,EAAA,CAAI;AAC9D,YAAA,CAAA,qCAAA,EAAwC,GAAG,CAAA,OAAA,EAAU,UAAU,GAAG,UAAU,GAAG,UAAU,CAAA,CAAA,CAAG,CAC/F;;IAGH,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAExD,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU;AACjD,QAAA,MAAM,SAAS,GAAG,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG;AACjD,QAAA,MAAM,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,UAAU,GAAG,CAAA,CAAA,EAAI,CAAC,CAAA,CAAE,GAAG,CAAC,CAAC,CAAC;QAC3E,MAAM,IAAI,KAAK,CACb,CAAA,UAAA,EAAa,YAAY,CAAA,iBAAA,EAAoB,GAAG,CAAA,eAAA,EAAkB,IAAI,CAAA,EAAA,EAAK,SAAS,CAAA,EAAA,CAAI;YACtF,CAAA,mBAAA,EAAsB,SAAS,CAAC,aAAa,CAAA,GAAA,CAAK;YAClD,CAAA,UAAA,EAAa,IAAI,CAAA,IAAA,EAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAA,CAAG,CAClD;;AAEH,IAAA,OAAO,IAAI;AACb;;AChOA,MAAM,qBAAqB,GAA4D;IACrF,EAAE,EAAE,CAAC,IAAI,KAAK,0BAA0B,CAAC,IAAI,CAAC;IAC9C,OAAO,EAAE,CAAC,IAAI,KAAK,0BAA0B,CAAC,IAAI,CAAC;IACnD,MAAM,EAAE,CAAC,IAAI,KAAK,0BAA0B,CAAC,IAAI,CAAC;IAClD,GAAG,EAAE,CAAC,IAAI,KAAK,sBAAsB,CAAC,IAAI,CAAC;IAC3C,QAAQ,EAAE,CAAC,IAAI,KAAK,2BAA2B,CAAC,IAAI,CAAC;CACtD;AAEK,SAAU,mBAAmB,CAAC,IAA6B,EAAA;AAC/D,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG;IACvC,IAAI,CAAC,KAAK,EAAE;QACV;;;AAIF,IAAA,IAAI,KAAK,CAAC,SAAS,EAAE;QACnB;;IAGF,MAAM,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC;IACrE,IAAI,SAAS,EAAE;QACb,SAAS,CAAC,IAAI,CAAC;;AAEnB;;ACvBM,SAAU,YAAY,CAAC,IAA6B,EAAA;AACxD,IAAA,IAAI,IAAI,CAAC,cAAc,EAAE;QACvB;;IAGF,iBAAiB,CAAC,IAAI,CAAC;AAEvB,IAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;QAClC,mBAAmB,CAAC,IAAI,CAAC;;AAG3B,IAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,QAAA,KAAK,UAAU,CAAC,IAAI,CAAC;;AAGvB,IAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,QAAA,KAAK,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;;IAG7B,IAAI,CAAC,aAAa,EAAE;AACtB;;ACpBA,MAAM,aAAa,GAAG,IAAI,OAAO,EAO9B;AAEH,SAAS,YAAY,CAAC,SAA+B,EAAE,GAAmC,EAAA;IACxF,IAAI,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;IACzC,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,GAAG,EAAE;AACX,QAAA,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC;;AAEtC,IAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;QAChB,MAAM,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAW,CAAC;;AAE1D,IAAA,OAAO,MAAM,CAAC,GAAG,CAAC;AACpB;AAEO,eAAe,UAAU,CAAC,IAAiB,EAAE,GAAG,IAAe,EAAA;AACpE,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;IAEhC,IAAI,CAAC,SAAS,EAAE;AACd,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;AACzB,cAAE,cAAc,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW;cACnE,IAAI;AACR,QAAA,MAAM,GAAG,GAAG,IAAI,EAAE,SAAS,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,SAAS,CAAA,EAAA,CAAI,GAAG,EAAE;AACzD,QAAA,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,8CAAA,CAAgD,CAAC;AACjE,QAAA,OAAO,IAAI;;AAGb,IAAA,MAAM,SAAS,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,KAAK,CAAC;AACnF,IAAA,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,GAAG,CAAA,CAAA,EAAI,SAAS,CAAC,SAAS,CAAA,EAAA,CAAI,GAAG,EAAE;AAClE,IAAA,MAAM,cAAc,GAAG,kBAAkB,CAAC,SAAS,CAAC;AAEpD,IAAA,IAAI;AACF,QAAA,IAAI,SAAS,CAAC,IAAI,EAAE;AAClB,YAAA,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,iBAAA,CAAmB,CAAC;YACpC,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC;AAChD,YAAA,MAAM,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC;;AAEtC,QAAA,IAAI,SAAS,CAAC,UAAU,KAAK,QAAQ,EAAE;YACrC,GAAG,CAAC,KAAK,CAAC,CAAA,EAAG,GAAG,CAAA,2BAAA,EAA8B,IAAI,CAAC,MAAM,CAAA,MAAA,CAAQ,CAAC;YAClE,OAAO,MAAO,SAAS,CAAC,MAA2B,CAAC,GAAG,IAAI,CAAC;;AAE9D,QAAA,MAAM,OAAO,GAAI,SAAS,CAAC,MAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QACzD,GAAG,CAAC,KAAK,CAAC,CAAA,EAAG,GAAG,CAAA,mBAAA,EAAsB,OAAO,CAAA,CAAE,CAAC;QAChD,MAAM,UAAU,GAAG,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC;AACpD,QAAA,OAAO,MAAM,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC;;IAC7C,OAAO,CAAC,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,GAAG,CAAA,gBAAA,EAAmB,SAAS,CAAC,UAAU,KAAK,QAAQ,GAAG,iBAAiB,GAAG,SAAS,EAAE,EAAE;AAC5G,YAAA,KAAK,EAAE,CAAC;AACT,SAAA,CAAC;;YACM;AACR,QAAA,IAAI,SAAS,CAAC,QAAQ,EAAE;AACtB,YAAA,IAAI;AACF,gBAAA,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,qBAAA,CAAuB,CAAC;gBACxC,MAAM,YAAY,GAAG,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC;AACxD,gBAAA,MAAM,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC;;YACxC,OAAO,aAAa,EAAE;gBACtB,GAAG,CAAC,KAAK,CAAC,CAAA,EAAG,GAAG,CAAA,sBAAA,CAAwB,EAAE,aAAa,CAAC;;;;AAIhE;AAEA,SAAS,kBAAkB,CAAC,SAAqB,EAAA;AAC/C,IAAA,OAAO,IAAI,KAAK,CACd,EAAE,EACF;QACE,GAAG,CACD,MAA+C,EAC/C,YAA6B,EAAA;AAE7B,YAAA,OAAO,CAAC,GAAG,YAAuB,KAAI;AACpC,gBAAA,IAAI,OAAgC;AACpC,gBAAA,IAAI,YAAY,IAAI,MAAM,EAAE;AAC1B,oBAAA,OAAO,GAAG,MAAM,CAAC,YAAsB,CAAC;;qBACnC;oBACL,MAAM,GAAG,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,YAAsB,CAAC;oBAC5E,OAAO,GAAG,MAAM,CAAC,YAAsB,CAAC,GAAG,GAAG,CAAC,OAAO;;AAGxD,gBAAA,MAAM,UAAU,GAAG;oBACjB,WAAW,EAAE,SAAS,CAAC,EAAE;iBAC1B;gBACD,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,YAAY,CAAC;AAEnD,gBAAA,IAAI,MAAM,YAAYG,UAAY,EAAE;AAClC,oBAAA,OAAO,cAAc,CAAC,MAAM,CAAC;;AAE/B,gBAAA,IAAI,MAAM,YAAY,OAAO,EAAE;AAC7B,oBAAA,OAAO,MAAM;;AAEf,gBAAA,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;AACtB,oBAAA,OAAQ,MAAkC,CAAC,GAAG,EAAE;;AAElD,gBAAA,OAAO,MAAM;AACf,aAAC;SACF;AACF,KAAA,CACF;AACH;AAEA;;;;;;;;;;AAUG;AACH,SAAS,gBAAgB,CAAC,IAAY,EAAA;IACpC,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC,eAAe,EAAE;IACpE,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,GAAG,CAAA,EAAA,EAAK,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAA,CAAI,GAAG,UAAU;IAEvF,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAA,sBAAA,EAAyB,IAAI,CAAA,MAAA,CAAQ,CAAU;AAC1F;;SC5HgBP,SAAO,CAAC,GAAmB,EAAE,QAAgB,EAAE,IAAa,EAAA;IAC1E,gBAAgB,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC;AAEjE,IAAA,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAqB;IAC1F,IAAI,SAAS,EAAE;;AAEb,QAAA,MAAM,SAAS,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC;QACxD,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;QAChD,IAAI,OAAO,EAAE;YACX,YAAY,CAAC,OAAO,CAAC;;;AAG3B;;;;;;;ACdM,SAAUA,SAAO,CAAC,GAAmB,EAAE,QAAgB,EAAA;AAC3D,IAAA,OAAO,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,cAAc,IAAI,IAAI;AACrF;;;;;;;SCFgBA,SAAO,CAAC,GAAmB,EAAE,QAAgB,EAAE,IAAY,EAAA;AACzE,IAAA,OAAO,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC;AAC7E;;;;;;;ACFM,SAAUA,SAAO,CACrB,GAAmB,EACnB,QAAgB,EAChB,SAAiB,EACjB,WAAmB,EAAA;AAEnB,IAAA,OAAO,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC;AAC7F;;;;;;;SCPgBA,SAAO,CAAC,GAAmB,EAAE,QAAgB,EAAE,KAAa,EAAA;IAC1E,gBAAgB,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC;AACpE;;;;;;;ACFM,SAAUA,SAAO,CAAC,GAAmB,EAAE,QAAgB,EAAE,GAAG,IAAe,EAAA;AAC/E,IAAA,OAAO,gBAAgB,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;AAC5E;;;;;;;ACAM,SAAUA,SAAO,CACrB,GAAmB,EACnB,iBAAyB,EACzB,UAAkB,EAClB,GAAG,IAAe,EAAA;AAElB,IAAA,MAAM,SAAS,GAAG,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,iBAAiB,CAAC;IAEnF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAA4B;IAClF,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,CAAA,sDAAA,EAAyD,SAAS,CAAC,EAAE,CAAA,CAAA,CAAG,CAAC;;AAG3F,IAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC;IACnC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;QAC3C,MAAM,IAAI,KAAK,CAAC,CAAA,oBAAA,EAAuB,UAAU,CAAA,wBAAA,EAA2B,SAAS,CAAC,aAAa,CAAA,CAAA,CAAG,CAAC;;IAGzG,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;AACvC;;;;;;;SCnBgBA,SAAO,CAAC,GAAmB,EAAE,QAAgB,EAAE,KAAc,EAAA;IAC3E,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC;AAEnE,IAAA,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC;IACjE,IAAI,IAAI,EAAE;QACR,iBAAiB,CAAC,IAAI,CAAC;;AAE3B;;;;;;;ACDO,MAAM,QAAQ,GAAsC;gBACzDQ,YAAU;eACVC,WAAS;IAET,eAAe;IACf,eAAe;IAEf,kBAAkB;IAElB,GAAG;IACH,GAAG;IACH,GAAG;CACJ;;ACrBM,MAAMC,uBAAqB,GAA2C;AAC3E,IAAA,SAAS,EAAE;AACT,QAAA,UAAU,EAAE;AACV,YAAA,mBAAmB,EAAE,IAAI;AAC1B,SAAA;AACF,KAAA;AACD,IAAA,WAAW,EAAE;AACX,QAAA,UAAU,EAAE;AACV,YAAA,sBAAsB,EAAE,EAAE;AAC3B,SAAA;AACF,KAAA;AACD,IAAA,cAAc,EAAE;QACd,MAAM,EAAE,CAAC,SAAS,CAAC;AACnB,QAAA,UAAU,EAAE,EAAE;AACf,KAAA;AACD,IAAA,YAAY,EAAE;QACZ,MAAM,EAAE,CAAC,SAAS,CAAC;AACnB,QAAA,UAAU,EAAE,EAAE;AACf,KAAA;CACF;;ACjBK,SAAUV,SAAO,CAAC,GAAgB,EAAE,QAAgB,EAAA;AACxD,IAAA,OAAO,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,UAAU;AACvE;AAEO,MAAM,UAAU,GAAuB;AAC5C,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,UAAU,EAAE,IAAI;aAChBA,SAAO;AACP,IAAA,SAAS,EAAE,qBAAqB;CACjC;;ACVK,SAAUA,SAAO,CAAC,GAAgB,EAAE,QAAgB,EAAA;AACxD,IAAA,OAAO,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,MAAM;AACnE;AAEO,MAAM,MAAM,GAAuB;AACxC,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,UAAU,EAAE,IAAI;aAChBA,SAAO;AACP,IAAA,SAAS,EAAE,qBAAqB;CACjC;;ACFD,SAAS,sBAAsB,CAAC,KAAsB,EAAA;IACpD,OAAO;AACL,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,OAAO,EAAE,IAAI;AACb,QAAA,KAAK,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,oBAAoB,CAAC;AACvE,QAAA,OAAO,EAAE,KAAK;KACf;AACH;AAEA,SAAS,gBAAgB,CAAC,QAAgB,EAAA;IACxC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;AAC3C,IAAA,MAAM,IAAI,GAAG,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ;IACtD,MAAM,IAAI,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU;IACjD,GAAG,CAAC,KAAK,CAAC,CAAA,EAAG,IAAI,CAAA,EAAA,EAAK,IAAI,CAAA,WAAA,CAAa,CAAC;AAC1C;AAEO,MAAM,KAAK,GAA+B;AAC/C,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,OAAO,EAAE,CAAC,GAAgB,EAAE,IAAI,KAAI;QAClC,OAAO,QAAQ,CAAC,MAAK;AACnB,YAAA,MAAM,KAAK,GAAG,IAAI,6BAA6B,EAAE;;YAGjD,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;YACnC,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC;AACnD,YAAA,IAAI,WAAW;AAAE,gBAAA,OAAO,WAAW;AAEnC,YAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAe;AAC9C,YAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;;AAGtE,YAAA,IAAI,UAAU;AACd,YAAA,IAAI;gBACF,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC;;YACjE,OAAO,KAAK,EAAE;;AAEd,gBAAA,IAAI,CAAC,UAAU,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;oBAChF,gBAAgB,CAAC,QAAQ,CAAC;;;AAI5B,gBAAA,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;;;YAIzE,IAAI,CAAC,UAAU,EAAE;gBACf,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,GAAG,sBAAsB,CAAC,IAAI,KAAK,CAAC,CAAA,gBAAA,EAAmB,QAAQ,CAAA,CAAE,CAAC,CAAC,CAAC;;;YAI5G,IAAI,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE;AAC9C,gBAAA,MAAM,UAAU,GAAiB;AAC/B,oBAAA,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,UAAU,CAAC,cAAc;AAClC,oBAAA,KAAK,EAAE,UAAU,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,oBAAoB,CAAC,GAAG,IAAI;oBACjE,OAAO,EAAE,UAAU,CAAC,UAAU;iBAC/B;AACD,gBAAA,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;;YAGlC,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC;AACjD,SAAC,CAAC;KACH;AACD,IAAA,SAAS,EAAE,qBAAqB;CACjC;;ACzEK,SAAUA,SAAO,CAAC,GAAgB,EAAE,iBAAyB,EAAA;AACjE,IAAA,OAAO,gBAAgB,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE,EAAE,IAAI,IAAI;AACvF;AAEO,MAAM,IAAI,GAAuB;AACtC,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,UAAU,EAAE,IAAI;aAChBA,SAAO;AACP,IAAA,SAAS,EAAE,oBAAoB;CAChC;;SCTeA,SAAO,CAAC,GAAgB,EAAE,QAAgB,EAAE,IAAY,EAAA;AACtE,IAAA,OAAO,gBAAgB,CAAC,kBAAkB,CAAY,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC;AACxF;AAEO,MAAM,SAAS,GAAuB;AAC3C,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,UAAU,EAAE,IAAI;aAChBA,SAAO;AACP,IAAA,SAAS,EAAE,+BAA+B;CAC3C;;ACTK,SAAUA,SAAO,CAAC,GAAgB,EAAE,QAAgB,EAAE,SAAiB,EAAE,WAAmB,EAAA;AAChG,IAAA,OAAO,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC;AAC7F;AAEO,MAAM,UAAU,GAAuB;AAC5C,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,UAAU,EAAE,IAAI;aAChBA,SAAO;AACP,IAAA,SAAS,EAAE,uCAAuC;CACnD;;ACID;;;AAGG;AACH,SAAS,iBAAiB,CAAC,GAAY,EAAE,IAAY,EAAA;IACnD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;AACrC,QAAA,OAAO,SAAS;;IAGlB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;IAC7B,IAAI,OAAO,GAAY,GAAG;AAE1B,IAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACxB,QAAA,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC5E,YAAA,OAAO,SAAS;;AAElB,QAAA,OAAO,GAAI,OAAmC,CAAC,IAAI,CAAC;;AAGtD,IAAA,OAAO,OAAO;AAChB;AAEM,SAAUA,SAAO,CAAC,UAAuB,EAAE,OAAgC,EAAA;AAC/E,IAAA,OAAO,oBAAoB,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM;AAC9D,QAAA,aAAa,EAAE,cAAc;QAC7B,OAAO;AACP,QAAA,GAAG,SAAS;AACb,KAAA,CAAC,CAAC;AACL;AAOA,SAAS,oBAAoB,CAAC,UAAuB,EAAA;AACnD,IAAA,IAAI,OAAO,GAAwB,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IAE9D,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,cAAc,KAAI;QAC/C,MAAM,WAAW,GAAwB,EAAE;AAE3C,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;YACzB,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AACtC,gBAAA,MAAM,YAAY,GAA4B;oBAC5C,GAAG,MAAM,CAAC,SAAS;oBACnB,CAAC,CAAA,EAAG,UAAU,CAAC,QAAQ,CAAA,EAAG,SAAS,CAAC,KAAK,CAAA,CAAE,GAAG;AAC5C,wBAAA,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC9B,wBAAA,MAAM,EAAE,KAAK;AACb,wBAAA,YAAY,EAAE,IAAI;AAClB,wBAAA,QAAQ,EAAE,IAAI;AACf,qBAAA;oBACD,CAAC,CAAA,EAAG,UAAU,CAAC,QAAQ,CAAA,EAAG,SAAS,CAAC,IAAI,CAAA,CAAE,GAAG;AAC3C,wBAAA,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,IAAI;AACpC,wBAAA,MAAM,EAAE,IAAI;AACZ,wBAAA,YAAY,EAAE,IAAI;AAClB,wBAAA,QAAQ,EAAE,IAAI;AACf,qBAAA;iBACF;AACD,gBAAA,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,EAAE;AAC5B,oBAAA,YAAY,CAAC,CAAA,EAAG,UAAU,CAAC,QAAQ,CAAA,KAAA,CAAO,CAAC,GAAG;AAC5C,wBAAA,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;wBAC/B,MAAM,EAAE,KAAK,KAAK,CAAC;AACnB,wBAAA,YAAY,EAAE,IAAI;AAClB,wBAAA,QAAQ,EAAE,IAAI;qBACf;;AAGH,gBAAA,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,EAAE;AAC3B,oBAAA,YAAY,CAAC,CAAA,EAAG,UAAU,CAAC,QAAQ,CAAA,IAAA,CAAM,CAAC,GAAG;AAC3C,wBAAA,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;wBAC/B,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,KAAK;AAC5C,wBAAA,YAAY,EAAE,IAAI;AAClB,wBAAA,QAAQ,EAAE,IAAI;qBACf;;;;AAKH,gBAAA,IAAI,OAAgB;AAEpB,gBAAA,IAAI,SAAS,CAAC,OAAO,KAAK,IAAI,EAAE;AAC9B,oBAAA,IAAI,YAAqB;AAEzB,oBAAA,IAAI,SAAS,CAAC,OAAO,KAAK,EAAE,EAAE;wBAC5B,YAAY,GAAG,IAAI;;yBACd;wBACL,YAAY,GAAG,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC;;AAG3D,oBAAA,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,EAAE,EAAE;wBAC9E,OAAO,GAAG,KAAK;;yBACV;wBACL,OAAO,GAAG,YAAY;;;qBAEnB;oBACL,OAAO,GAAG,KAAK;;AAGjB,gBAAA,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG;AAC1B,gBAAA,MAAM,GAAG,GAAG,cAAc,KAAK,CAAC,GAAG,OAAO,GAAG,CAAA,EAAG,OAAO,CAAA,CAAA,EAAI,OAAO,EAAE;AAEpE,gBAAA,YAAY,CAAC,CAAA,EAAG,UAAU,CAAC,QAAQ,CAAA,OAAA,CAAS,CAAC,GAAG;AAC9C,oBAAA,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC9B,oBAAA,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC;AACnB,oBAAA,YAAY,EAAE,IAAI;AAClB,oBAAA,QAAQ,EAAE,IAAI;iBACf;gBAED,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;AACpD,aAAC,CAAC;AACJ,SAAC,CAAC;QAEF,OAAO,GAAG,WAAW;AACvB,KAAC,CAAC;AAEF,IAAA,OAAO,OAAO;AAChB;AAEO,MAAM,MAAM,GAAuB;AACxC,IAAA,IAAI,EAAE,YAAY;aAClBA,SAAO;AACP,IAAA,SAAS,EACP,gKAAgK;CACnK;;ACxIK,SAAUA,SAAO,CAAC,GAAgB,EAAE,QAAgB,EAAA;IACxD,OAAO,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC;AACrE;AAEO,MAAM,OAAO,GAAuB;AACzC,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,UAAU,EAAE,IAAI;aAChBA,SAAO;AACP,IAAA,SAAS,EAAE,qBAAqB;CACjC;;ACDM,MAAMG,kBAAgB,GAAuC;IAClE,UAAU;IACV,SAAS;AAET,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,EAAE,EAAE,IAAI;IACR,UAAU;IACV,MAAM;IACN,OAAO;IACP,MAAM;CACP;;AChBM,MAAM,GAAG,GAAiB;AAC/B,IAAA,WAAW,EAAEO,uBAAqB;IAClC,QAAQ;AACR,IAAA,SAAS,EAAEP,kBAAgB;;;ACNtB,MAAMO,uBAAqB,GAA2C;AAC3E,IAAA,gBAAgB,EAAE;AAChB,QAAA,UAAU,EAAE;AACV,YAAA,mBAAmB,EAAE,IAAI;AAC1B,SAAA;AACF,KAAA;AACD,IAAA,iBAAiB,EAAE;AACjB,QAAA,MAAM,EAAE,CAAC,WAAW,EAAE,gBAAgB,CAAC;AACvC,QAAA,UAAU,EAAE;AACV,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,kBAAkB,EAAE,IAAI;AACzB,SAAA;AACF,KAAA;AACD,IAAA,mBAAmB,EAAE;QACnB,MAAM,EAAE,CAAC,SAAS,CAAC;AACnB,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,yBAAyB,EAAE,IAAI;AAC/B,YAAA,gBAAgB,EAAE,IAAI;AACvB,SAAA;AACF,KAAA;AACD,IAAA,mBAAmB,EAAE;QACnB,MAAM,EAAE,CAAC,SAAS,CAAC;AACnB,QAAA,UAAU,EAAE;AACV,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,SAAS,EAAE,IAAI;AAChB,SAAA;AACF,KAAA;AACD,IAAA,gBAAgB,EAAE;AAChB,QAAA,MAAM,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC;AACrC,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,IAAI;AACjB,SAAA;AACF,KAAA;AACD,IAAA,iBAAiB,EAAE;AACjB,QAAA,MAAM,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC;AACrC,QAAA,UAAU,EAAE;AACV,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,aAAa,EAAE,MAAM;AACrB,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,qBAAqB,EAAE,IAAI;AAC5B,SAAA;AACF,KAAA;AACD,IAAA,cAAc,EAAE;AACd,QAAA,MAAM,EAAE,CAAC,WAAW,EAAE,gBAAgB,CAAC;AACvC,QAAA,UAAU,EAAE;AACV,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,YAAY,EAAE,IAAI;AACnB,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;QACf,MAAM,EAAE,CAAC,gBAAgB,CAAC;AAC1B,QAAA,UAAU,EAAE;AACV,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,gBAAgB,EAAE,IAAI;AACvB,SAAA;AACF,KAAA;AACD,IAAA,mBAAmB,EAAE;QACnB,MAAM,EAAE,CAAC,SAAS,CAAC;AACnB,QAAA,UAAU,EAAE;AACV,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,eAAe,EAAE,IAAI;AACtB,SAAA;AACF,KAAA;AACD,IAAA,qBAAqB,EAAE;QACrB,MAAM,EAAE,CAAC,SAAS,CAAC;AACnB,QAAA,UAAU,EAAE;AACV,YAAA,kBAAkB,EAAE,IAAI;AACxB,YAAA,gBAAgB,EAAE,IAAI;AACvB,SAAA;AACF,KAAA;AACD,IAAA,oBAAoB,EAAE;QACpB,MAAM,EAAE,CAAC,SAAS,CAAC;AACnB,QAAA,UAAU,EAAE;AACV,YAAA,WAAW,EAAE,IAAI;AAClB,SAAA;AACF,KAAA;AACD,IAAA,kBAAkB,EAAE;QAClB,MAAM,EAAE,CAAC,SAAS,CAAC;AACnB,QAAA,UAAU,EAAE;AACV,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,kBAAkB,EAAE,IAAI;AACzB,SAAA;AACF,KAAA;AACD,IAAA,iBAAiB,EAAE;QACjB,MAAM,EAAE,CAAC,SAAS,CAAC;AACnB,QAAA,UAAU,EAAE;AACV,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,cAAc,EAAE,IAAI;AACrB,SAAA;AACF,KAAA;AACD,IAAA,mBAAmB,EAAE;QACnB,MAAM,EAAE,CAAC,SAAS,CAAC;AACnB,QAAA,UAAU,EAAE;AACV,YAAA,WAAW,EAAE,IAAI;AAClB,SAAA;AACF,KAAA;CACF;;AClGM,MAAM,OAAO,GAAiB;AACnC,IAAA,WAAW,EAAEA,uBAAqB;;;ACF7B,MAAM,qBAAqB,GAA2C;AAC3E,IAAA,aAAa,EAAE;AACb,QAAA,UAAU,EAAE;AACV,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,oBAAoB,EAAE,CAAA,qBAAA,CAAuB;AAC7C,YAAA,kBAAkB,EAAE,KAAK;AACzB,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,iBAAiB,EAAE,KAAK;AACxB,YAAA,UAAU,EAAE,CAAA,oBAAA,CAAsB;AAClC,YAAA,wBAAwB,EAAE,EAAE;AAC5B,YAAA,yBAAyB,EAAE,gCAAgC;AAC5D,SAAA;AACF,KAAA;AACD,IAAA,oBAAoB,EAAE;QACpB,MAAM,EAAE,CAAC,aAAa,CAAC;AACvB,QAAA,UAAU,EAAE;AACV,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,oBAAoB,EAAE,CAAA,qBAAA,CAAuB;AAC9C,SAAA;AACF,KAAA;AACD,IAAA,mBAAmB,EAAE;QACnB,MAAM,EAAE,CAAC,aAAa,CAAC;AACvB,QAAA,UAAU,EAAE;AACV,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,mBAAmB,EAAE,CAAA,qBAAA,CAAuB;AAC7C,SAAA;AACF,KAAA;AACD,IAAA,mBAAmB,EAAE;QACnB,MAAM,EAAE,CAAC,aAAa,CAAC;AACvB,QAAA,UAAU,EAAE;AACV,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,mBAAmB,EAAE,CAAA,qBAAA,CAAuB;AAC7C,SAAA;AACF,KAAA;AACD,IAAA,mBAAmB,EAAE;AACnB,QAAA,MAAM,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC;AAClC,QAAA,UAAU,EAAE,EAAE;AACf,KAAA;AACD,IAAA,sBAAsB,EAAE;QACtB,MAAM,EAAE,CAAC,aAAa,CAAC;AACvB,QAAA,UAAU,EAAE;AACV,YAAA,iBAAiB,EAAE,CAAA,6CAAA,CAA+C;AAClE,YAAA,eAAe,EAAE,CAAA,2CAAA,CAA6C;AAC9D,YAAA,wBAAwB,EAAE,CAAA,qDAAA,CAAuD;AACjF,YAAA,6BAA6B,EAAE,gCAAgC;AAC/D,YAAA,yBAAyB,EAAE,CAAA,sFAAA,CAAwF;AACpH,SAAA;AACF,KAAA;AACD,IAAA,kBAAkB,EAAE;AAClB,QAAA,MAAM,EAAE,CAAC,SAAS,EAAE,sBAAsB,CAAC;AAC3C,QAAA,UAAU,EAAE;AACV,YAAA,iBAAiB,EAAE;AACjB,gBAAA,WAAW,EAAE,QAAQ;AACrB,gBAAA,iBAAiB,EAAE,cAAc;AACjC,gBAAA,OAAO,EAAE;AACP,oBAAA,GAAG,EAAE,UAAU;AACf,oBAAA,KAAK,EAAE,OAAO;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,yBAAyB,EAAE;AACzB,QAAA,MAAM,EAAE,CAAC,SAAS,EAAE,sBAAsB,CAAC;AAC3C,QAAA,UAAU,EAAE;AACV,YAAA,gBAAgB,EAAE;AAChB,gBAAA,WAAW,EAAE,WAAW;AACxB,gBAAA,iBAAiB,EAAE,cAAc;AACjC,gBAAA,OAAO,EAAE;AACP,oBAAA,GAAG,EAAE,UAAU;AACf,oBAAA,QAAQ,EAAE,OAAO;AAClB,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,kBAAkB,EAAE;AAClB,QAAA,MAAM,EAAE,CAAC,SAAS,EAAE,sBAAsB,CAAC;AAC3C,QAAA,UAAU,EAAE;AACV,YAAA,iBAAiB,EAAE;AACjB,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,iBAAiB,EAAE,cAAc;AACjC,gBAAA,OAAO,EAAE;AACP,oBAAA,KAAK,EAAE,OAAO;AACf,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;CACF;;MCvFY,iBAAiB,CAAA;IACpB,OAAO,QAAQ;IACf,UAAU,GAAwC,EAAE;AAE5D,IAAA,OAAO,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;AAC/B,YAAA,iBAAiB,CAAC,QAAQ,GAAG,IAAI,iBAAiB,EAAE;;QAEtD,OAAO,iBAAiB,CAAC,QAAQ;;IAGnC,QAAQ,CAAC,aAAqB,EAAE,SAA8B,EAAA;AAC5D,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,SAAS;;AAG5C,IAAA,GAAG,CAAC,aAAqB,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;;AAExC;;ACJM,eAAe,OAAO,CAAC,KAAc,EAAE,UAA+B,EAAA;IAC3E,MAAM,MAAM,GAAa,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;AACpD,IAAA,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;AAClC,QAAA,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;YACnD,IAAI,MAAM,EAAE;AACV,gBAAA,MAAM,CAAC,KAAK,GAAG,KAAK;AACpB,gBAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC1B;;;QAEF,OAAO,CAAC,EAAE;YACV,GAAG,CAAC,KAAK,CAAC,CAAA,yBAAA,EAA4B,SAAS,CAAC,aAAa,CAAA,EAAA,CAAI,EAAE,CAAC,CAAC;AACrE,YAAA,MAAM,CAAC,KAAK,GAAG,KAAK;YACpB;;;AAGJ,IAAA,OAAO,MAAM;AACf;AAEA,eAAe,YAAY,CAAC,KAAc,EAAE,SAA4B,EAAA;AACtE,IAAA,MAAM,YAAY,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC;IACjF,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,IAAI,KAAK,CAAC,CAAA,WAAA,EAAc,SAAS,CAAC,aAAa,CAAA,gBAAA,CAAkB,CAAC;;AAG1E,IAAA,IAAI,SAAS,CAAC,QAAQ,EAAE;AACtB,QAAA,OAAO,IAAI;;AAGb,IAAA,IAAI,YAAY,CAAC,aAAa,EAAE;QAC9B,SAAS,CAAC,OAAO,GAAG,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC;;AAElE,IAAA,SAAS,CAAC,OAAO,GAAG,mBAAmB,CAAC,SAAS,CAAC,OAAO,IAAI,YAAY,CAAC,cAAc,EAAE,SAAS,CAAC,MAAM,CAAC;IAE3G,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IACtE,IAAI,gBAAgB,EAAE;AACpB,QAAA,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,aAAa,EAAE,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE;;AAElF,IAAA,OAAO,IAAI;AACb;AAEA,SAAS,mBAAmB,CAAC,QAAgB,EAAE,MAA+B,EAAA;IAC5E,OAAO,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,GAAG,KAAI;AACrD,QAAA,IAAI,GAAG,IAAI,MAAM,EAAE;AACjB,YAAA,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;;AAE5B,QAAA,OAAO,KAAK;AACd,KAAC,CAAC;AACJ;AAEO,MAAM,QAAQ,GAAiC;AACpD,IAAA,IAAI,EAAE,YAAY;IAClB,OAAO;AACP,IAAA,SAAS,EAAE,0FAA0F;CACtG;;AClEM,MAAM,gBAAgB,GAA+C;AAC1E,IAAA,QAAQ,EAAE,wBAAwB,CAAC,QAAQ,CAAC;CAC7C;;ACJD,MAAM,OAAO,GACX,sJAAsJ;AAEjJ,MAAM,KAAK,GAAgC;AAChD,IAAA,MAAM,EAAE,EAAE;AACV,IAAA,cAAc,EAAE,yCAAyC;IACzD,QAAQ,CAAC,KAAc,EAAE,SAAS,EAAA;QAChC,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,IAAI;;AAGb,QAAA,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;QAChF,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE;;AAGvC,QAAA,OAAO,IAAI;KACZ;CACF;;AClBM,MAAM,MAAM,GAA4C;AAC7D,IAAA,MAAM,EAAE;AACN,QAAA,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;AAC3B,KAAA;AACD,IAAA,cAAc,EAAE,sCAAsC;IACtD,QAAQ,CAAC,KAAc,EAAE,SAAS,EAAA;QAChC,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,IAAI;;QAGb,MAAM,OAAO,GAAG,KAAK,KAAK,SAAS,CAAC,MAAM,CAAC,KAAK;QAChD,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE;;AAGvC,QAAA,OAAO,IAAI;KACZ;CACF;;ACjBM,MAAM,SAAS,GAA+C;AACnE,IAAA,MAAM,EAAE;AACN,QAAA,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC9B,KAAA;AACD,IAAA,cAAc,EAAE,sDAAsD;IACtE,QAAQ,CAAC,KAAc,EAAE,SAAS,EAAA;QAChC,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,IAAI;;AAGb,QAAA,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS;QACtF,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE;;AAGvC,QAAA,OAAO,IAAI;KACZ;CACF;;ACjBM,MAAM,GAAG,GAAyC;AACvD,IAAA,MAAM,EAAE;AACN,QAAA,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACxB,KAAA;AACD,IAAA,cAAc,EAAE,qCAAqC;IACrD,QAAQ,CAAC,KAAc,EAAE,SAAS,EAAA;QAChC,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,IAAI;;AAGb,QAAA,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG;QACzE,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE;;AAGvC,QAAA,OAAO,IAAI;KACZ;CACF;;ACjBM,MAAM,SAAS,GAA+C;AACnE,IAAA,MAAM,EAAE;AACN,QAAA,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC9B,KAAA;AACD,IAAA,cAAc,EAAE,CAAA,qDAAA,CAAuD;IACvE,QAAQ,CAAC,KAAc,EAAE,SAAS,EAAA;QAChC,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,IAAI;;AAGb,QAAA,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS;QACtF,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE;;AAGvC,QAAA,OAAO,IAAI;KACZ;CACF;;ACjBM,MAAM,QAAQ,GAAgC;AACnD,IAAA,MAAM,EAAE,EAAE;AACV,IAAA,cAAc,EAAE,uBAAuB;IACvC,QAAQ,CAAC,KAAc,EAAE,SAAS,EAAA;QAChC,MAAM,OAAO,GAAG,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QAC5F,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE;;AAGvC,QAAA,OAAO,IAAI;KACZ;CACF;;ACLM,MAAM,UAAU,GAAwC;IAC7D,QAAQ;IACR,KAAK;IACL,GAAG;IACH,SAAS;IACT,SAAS;IACT,MAAM;CACP;;ACNK,SAAU,iBAAiB,CAAC,aAAqB,EAAE,GAAwB,EAAA;IAC/E,eAAe,CAAC,WAAW,EAAE,CAAC,mBAAmB,CAAC,WAAW,EAAE,aAAa,EAAE;QAC5E,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;AAC/C,KAAA,CAAC;IACF,iBAAiB,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC;AAC9D;AAEM,SAAU,kBAAkB,CAAC,UAA+C,EAAA;AAChF,IAAA,KAAK,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC7D,QAAA,iBAAiB,CAAC,aAAa,EAAE,GAAG,CAAC;;AAEzC;AAEA,SAAS,cAAc,GAAA;AACrB,IAAA,eAAe,CAAC,WAAW,EAAE,CAAC,eAAe,CAAC,WAAW,EAAE;AACzD,QAAA,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC3B,QAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;AAC9B,KAAA,CAAC;AACF,IAAA,eAAe,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,EAAE;AACvD,QAAA,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;AAC1B,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,IAAI,EAAE;AACJ,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC7B,oBAAA,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC5B,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA,CAAC;AACJ;AAEO,MAAM,KAAK,GAAiB;AACjC,IAAA,WAAW,EAAE,qBAAqB;AAClC,IAAA,SAAS,EAAE,gBAAgB;IAC3B,KAAK,GAAA;AACH,QAAA,cAAc,EAAE;QAChB,kBAAkB,CAAC,UAAU,CAAC;KAC/B;;;SC5Ca,WAAW,GAAA;AACzB,IAAA,mBAAmB,CAAC,UAAU,GAAG,UAAU;AAC7C;;ACNA;;AAEG;;;;"}