vuestic-ui
Version:
Vue 3 UI Framework
36 lines (35 loc) • 1.33 kB
JavaScript
import { getCurrentInstance, computed, shallowReadonly } from "vue";
import { o as omit } from "../../utils/omit.js";
import { c as createProps } from "./createProps.js";
import { c as createAttrs } from "./createAttrs.js";
import { c as createSlots } from "./createSlots.js";
import { u as useComponentConfigProps } from "../component-config/utils/use-component-config-props.js";
const createSetupFn = (component) => {
return (originalProps, ctx) => {
var _a;
const instance = getCurrentInstance();
const propsFromConfig = useComponentConfigProps(component, originalProps);
const attrsFromConfig = computed(() => {
return omit(propsFromConfig.value, Object.keys(originalProps));
});
const props = createProps(instance, propsFromConfig);
const attrs = createAttrs(instance, attrsFromConfig);
const slots = createSlots(instance, propsFromConfig);
instance.props = props;
instance.attrs = attrs;
instance.slots = slots;
const setupState = (_a = component.setup) == null ? void 0 : _a.call(component, shallowReadonly(props), {
...ctx,
attrs,
slots
});
if (typeof setupState === "object" && !instance.exposed) {
ctx.expose(setupState);
}
return setupState;
};
};
export {
createSetupFn as c
};
//# sourceMappingURL=createSetupFn.js.map