{
  "version": 3,
  "sources": ["../../src/modulesRuntime/serializeSandboxEntities.ts", "../../src/document/components/chrome/properties/codeComponentRows/utils/isHidden.ts", "../../src/canvas-sandbox/ControlsVisibility.ts"],
  "sourcesContent": ["import type { EntityDefinition } from \"@framerjs/framer-runtime\"\nimport type { SandboxEntityDefinition } from \"@framerjs/framer-runtime/sandbox\"\nimport { isShaderConfig } from \"library/modules/defineShader.ts\"\n\nexport function serializeSandboxEntities(sandbox: Iterable<SandboxEntityDefinition<unknown>>): EntityDefinition[] {\n\tconst host: EntityDefinition[] = []\n\tfor (const sandboxEntity of sandbox) {\n\t\tconst { class: _class, properties, ...bareEntity } = sandboxEntity\n\t\t// Remove callable function from the properties field.\n\t\tconst hostEntity = { ...bareEntity, properties: JSON.parse(JSON.stringify(properties)) }\n\n\t\t// For shaders, include the shader sources so that they can be passed to the shader worker.\n\t\tif (sandboxEntity.type === \"shader\" && isShaderConfig(_class)) {\n\t\t\tObject.assign(hostEntity, {\n\t\t\t\tfragment: _class.fragment,\n\t\t\t\tvertex: _class.vertex,\n\t\t\t\theightmapSource: _class.heightmapSource,\n\t\t\t\tmouse: _class.mouse,\n\t\t\t\tbuffers: _class.buffers,\n\t\t\t})\n\t\t}\n\n\t\thost.push(hostEntity as EntityDefinition)\n\t}\n\treturn host\n}\n", "import { executionTimeBudgets } from \"@framerjs/framer-runtime\"\nimport type { ControlDescription } from \"library/render/types/PropertyControls.ts\"\nimport { isBoolean, isUndefined } from \"utils/typeChecks.ts\"\n\nfunction installHiddenBudgetCheck() {\n\texecutionTimeBudgets.frame.addScope(\"is-hidden\", 1500)\n\texecutionTimeBudgets.component.addScope(\"is-hidden\", 1500)\n}\n\nfunction restoreBudgetCheck() {\n\texecutionTimeBudgets.frame.removeScope(\"is-hidden\")\n\texecutionTimeBudgets.component.removeScope(\"is-hidden\")\n}\n\nexport function isHidden(\n\tcontrolDescription: ControlDescription,\n\tprops: Record<string, unknown>,\n\trootProps: Record<string, unknown>,\n) {\n\tif (isUndefined(controlDescription.hidden)) return false\n\tif (isBoolean(controlDescription.hidden)) return controlDescription.hidden\n\n\ttry {\n\t\tinstallHiddenBudgetCheck()\n\t\tconst result = controlDescription.hidden(props, rootProps)\n\t\trestoreBudgetCheck()\n\t\treturn result\n\t} catch {\n\t\trestoreBudgetCheck()\n\t\treturn false\n\t}\n}\n", "import type { SandboxComponentLoader } from \"@framerjs/framer-runtime/sandbox\"\nimport { assert } from \"@framerjs/shared\"\nimport { isHidden } from \"document/components/chrome/properties/codeComponentRows/utils/isHidden.ts\"\nimport type { CanvasTree, NodeID } from \"document/models/CanvasTree/index.ts\"\nimport { withControlProps } from \"document/models/CanvasTree/traits/WithControlProps.ts\"\nimport type { ControlProps } from \"document/models/controlProps/ControlProp.ts\"\nimport {\n\tgetControlPropValueResolvers,\n\tgetResolvedControlPropValues,\n} from \"document/models/controlProps/getResolvedControlPropValues.ts\"\nimport type { ControlDescription } from \"library/render/types/PropertyControls.ts\"\nimport { ControlType } from \"library/render/types/PropertyControls.ts\"\nimport type { Serializable } from \"utils/rpc/types.ts\"\nimport { isArray, isObject } from \"utils/typeChecks.ts\"\nimport type { VerifiedPropertyControls } from \"../../../runtime/src/host/index.ts\"\n\nexport interface HiddenState {\n\t[controlName: string]: boolean\n}\n\nexport interface HiddenStateByNodeId {\n\t[nodeId: NodeID]: HiddenState\n}\n\nexport interface GetHiddenStateForControlsByNodeArgs {\n\t[nodeId: NodeID]: {\n\t\t/** If controlNames is undefined the result will contain all controlNames */\n\t\tcontrolNames?: readonly string[]\n\t}\n}\n\ninterface GetHiddenStateForActionControlsArgs {\n\tactionIdentifier: string\n\tcontrolNames: string[]\n\tactionProps: Record<string, Serializable>\n}\n\ninterface GetHiddenStateForModuleControlsArgs {\n\tmoduleIdentifier: string\n\tcontrolNames?: string[]\n\tmoduleProps: Record<string, Serializable>\n}\n\nexport class ControlsVisibility {\n\tconstructor(\n\t\tprivate readonly componentLoader: SandboxComponentLoader,\n\t\tprivate readonly engine?: { tree: CanvasTree },\n\t) {}\n\n\tasync getHiddenStateForControlsByNode(args: GetHiddenStateForControlsByNodeArgs): Promise<HiddenStateByNodeId> {\n\t\tconst hiddenControlsByNodeId: HiddenStateByNodeId = {}\n\n\t\tObject.entries(args).forEach(([nodeId, { controlNames: optionalControlNames }]) => {\n\t\t\tconst node = this.engine?.tree.getNode(nodeId)\n\t\t\tif (!node) return\n\n\t\t\tassert(withControlProps(node), \"Node is not a CanvasNode with control props (node.__class: \", node.__class, \")\")\n\t\t\tconst identifier = node.getControlPropSourceIdentifier()\n\t\t\tassert(identifier, \"Cannot find component identifier for node\")\n\n\t\t\tconst propertyControls = this.componentLoader.getPropertyControlsForIdentifier(identifier)\n\t\t\tif (!propertyControls) return\n\n\t\t\tconst controlNames = optionalControlNames ?? Object.keys(propertyControls)\n\n\t\t\tconst componentProps = node.getResolvedControlPropValues(this.componentLoader)\n\n\t\t\thiddenControlsByNodeId[nodeId] = getHiddenStateForControlNames(controlNames, propertyControls, componentProps)\n\t\t})\n\n\t\treturn hiddenControlsByNodeId\n\t}\n\n\tasync getHiddenStateForActionControls({\n\t\tactionIdentifier,\n\t\tcontrolNames,\n\t\tactionProps,\n\t}: GetHiddenStateForActionControlsArgs): Promise<HiddenState> {\n\t\tassert(actionIdentifier, \"Fail to request hidden state for action controls: missing actionIdentifier\")\n\n\t\tconst actionDefinition = this.componentLoader.componentForIdentifier(actionIdentifier)\n\t\tconst hiddenState = controlNames.reduce<HiddenState>((hiddenControls, controlName) => {\n\t\t\tconst controlDefinition = actionDefinition ? actionDefinition.properties[controlName] : undefined\n\t\t\tif (!controlDefinition) {\n\t\t\t\thiddenControls[controlName] = false\n\t\t\t\treturn hiddenControls\n\t\t\t}\n\t\t\thiddenControls[controlName] = isHidden(controlDefinition, actionProps as Record<string, unknown>, actionProps)\n\t\t\treturn hiddenControls\n\t\t}, {})\n\n\t\treturn hiddenState\n\t}\n\n\tasync getHiddenStateForModuleControls({\n\t\tmoduleIdentifier,\n\t\tcontrolNames,\n\t\tmoduleProps,\n\t}: GetHiddenStateForModuleControlsArgs): Promise<HiddenState> {\n\t\tconst propertyControls = this.componentLoader.getPropertyControlsForIdentifier(moduleIdentifier)\n\t\tif (!propertyControls) return {}\n\n\t\tconst resolvers = getControlPropValueResolvers({\n\t\t\tassetResolverWithHash: null,\n\t\t\tvariableValueResolver: {\n\t\t\t\tgetVariableReferenceValue() {\n\t\t\t\t\tthrow new Error(\"getVariableReferenceValue is not implemented for ControlsVisibilityServiceImplementation\")\n\t\t\t\t},\n\t\t\t},\n\t\t\tgetResolvedFetchDataValue: undefined,\n\t\t\tgetVariableControlByReference() {\n\t\t\t\tthrow new Error(\"getVariableControlByReference is not implemented for  ControlsVisibilityServiceImplementation\")\n\t\t\t},\n\t\t\tgetCanvasTree: () => this.engine?.tree,\n\t\t\tcomponentLoader: this.componentLoader,\n\t\t})\n\n\t\treturn getHiddenStateForControlNames(\n\t\t\tcontrolNames ?? Object.keys(propertyControls),\n\t\t\tpropertyControls,\n\t\t\tgetResolvedControlPropValues(propertyControls, moduleProps as unknown as ControlProps, resolvers),\n\t\t)\n\t}\n}\n\nfunction collectHiddenState(\n\tcontrolPath: string,\n\tcontrolKey: string,\n\tcontrol: ControlDescription | undefined,\n\tprops: Readonly<Record<string, unknown>>,\n\trootProps: Readonly<Record<string, unknown>>,\n\thiddenState: HiddenState,\n) {\n\tconst path = controlPath + controlKey\n\n\tif (!control) {\n\t\treturn\n\t}\n\n\tif (control.hidden) {\n\t\thiddenState[path] = isHidden(control, props, rootProps)\n\t}\n\n\t// Calculate hidden state of object props\n\tif (control.type === ControlType.Object) {\n\t\tconst objectProps = props[controlKey]\n\t\tif (!isObject(objectProps)) return\n\n\t\tfor (const objectPropKey in control.controls) {\n\t\t\tconst objectPropControl = control.controls[objectPropKey]\n\t\t\tcollectHiddenState(path + \".\", objectPropKey, objectPropControl, objectProps, rootProps, hiddenState)\n\t\t}\n\t}\n\n\t// Calculate hidden state of array item object props\n\tif (control.type === ControlType.Array && control.control.type === ControlType.Object) {\n\t\tconst items = props[controlKey]\n\t\tif (!isArray(items)) return\n\n\t\tconst itemCount = items.length\n\t\tfor (let index = 0; index < itemCount; index++) {\n\t\t\tconst item = items[index]\n\t\t\tif (!isObject(item)) continue\n\n\t\t\tfor (const objectPropKey in item) {\n\t\t\t\tconst objectPropControl = control.control.controls[objectPropKey]\n\t\t\t\tcollectHiddenState(path + `[${index}].`, objectPropKey, objectPropControl, item, rootProps, hiddenState)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction getHiddenStateForControlNames(\n\tcontrolNames: readonly string[],\n\tpropertyControls: VerifiedPropertyControls,\n\tcomponentProps: Readonly<Record<string, unknown>>,\n): HiddenState {\n\tconst hiddenState: HiddenStateByNodeId[string] = {}\n\n\tfor (const controlName of controlNames) {\n\t\tconst controlDefinition = propertyControls[controlName]\n\t\tcollectHiddenState(\"\", controlName, controlDefinition, componentProps, componentProps, hiddenState)\n\t}\n\n\treturn hiddenState\n}\n"],
  "mappings": "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",
  "names": []
}
