{"version":3,"file":"createSetupFn.mjs","sources":["../../../../../src/services/config-transport/createSetupFn.ts"],"sourcesContent":["import { DefineComponent, SetupContext, computed, getCurrentInstance, shallowReadonly } from 'vue'\nimport { useComponentConfigProps } from '../component-config'\nimport { omit } from '../../utils/omit'\nimport { type Props } from './shared'\nimport { createProps } from './createProps'\nimport { createAttrs } from './createAttrs'\nimport { createSlots } from './createSlots'\n\nexport const createSetupFn = <T extends DefineComponent>(component: T) => {\n  return (originalProps: Props, ctx: SetupContext) => {\n    const instance = getCurrentInstance()! // Not null during setup call\n    const propsFromConfig = useComponentConfigProps(component, originalProps)\n    const attrsFromConfig = computed(() => {\n      return omit(propsFromConfig.value, Object.keys(originalProps))\n    })\n\n    const props = createProps(instance, propsFromConfig)\n    const attrs = createAttrs(instance, attrsFromConfig)\n    const slots = createSlots(instance, propsFromConfig)\n\n    /**\n     * Patch instance props with Proxy.\n     * This will change props object during render and in Devtools.\n     */\n    instance.props = props\n    instance.attrs = attrs\n    instance.slots = slots\n\n    const setupState = component.setup?.(shallowReadonly(props), {\n      ...ctx,\n      attrs,\n      slots,\n    })\n\n    // Expose everything for now as it was in defineComponent\n    if (typeof setupState === 'object' && !instance.exposed) {\n      ctx.expose(setupState)\n    }\n\n    return setupState\n  }\n}\n"],"names":[],"mappings":";;;;;;AAQa,MAAA,gBAAgB,CAA4B,cAAiB;AACjE,SAAA,CAAC,eAAsB,QAAsB;;AAClD,UAAM,WAAW;AACX,UAAA,kBAAkB,wBAAwB,WAAW,aAAa;AAClE,UAAA,kBAAkB,SAAS,MAAM;AACrC,aAAO,KAAK,gBAAgB,OAAO,OAAO,KAAK,aAAa,CAAC;AAAA,IAAA,CAC9D;AAEK,UAAA,QAAQ,YAAY,UAAU,eAAe;AAC7C,UAAA,QAAQ,YAAY,UAAU,eAAe;AAC7C,UAAA,QAAQ,YAAY,UAAU,eAAe;AAMnD,aAAS,QAAQ;AACjB,aAAS,QAAQ;AACjB,aAAS,QAAQ;AAEjB,UAAM,cAAa,eAAU,UAAV,mCAAkB,gBAAgB,KAAK,GAAG;AAAA,MAC3D,GAAG;AAAA,MACH;AAAA,MACA;AAAA,IAAA;AAIF,QAAI,OAAO,eAAe,YAAY,CAAC,SAAS,SAAS;AACvD,UAAI,OAAO,UAAU;AAAA,IACvB;AAEO,WAAA;AAAA,EAAA;AAEX;"}