UNPKG

vuestic-ui

Version:
1 lines 2.2 kB
{"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;"}