30 lines
900 B
JavaScript
30 lines
900 B
JavaScript
|
// Composables
|
||
|
import { makeComponentProps } from "../composables/component.mjs"; // Utilities
|
||
|
import { camelize, capitalize, h } from 'vue';
|
||
|
import { genericComponent } from "./defineComponent.mjs";
|
||
|
export function createSimpleFunctional(klass) {
|
||
|
let tag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'div';
|
||
|
let name = arguments.length > 2 ? arguments[2] : undefined;
|
||
|
return genericComponent()({
|
||
|
name: name ?? capitalize(camelize(klass.replace(/__/g, '-'))),
|
||
|
props: {
|
||
|
tag: {
|
||
|
type: String,
|
||
|
default: tag
|
||
|
},
|
||
|
...makeComponentProps()
|
||
|
},
|
||
|
setup(props, _ref) {
|
||
|
let {
|
||
|
slots
|
||
|
} = _ref;
|
||
|
return () => {
|
||
|
return h(props.tag, {
|
||
|
class: [klass, props.class],
|
||
|
style: props.style
|
||
|
}, slots.default?.());
|
||
|
};
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
//# sourceMappingURL=createSimpleFunctional.mjs.map
|