hongluan-ui
Version:
Hongluan Component Library for Vue 3
54 lines (51 loc) • 1.79 kB
JavaScript
import { defineComponent, getCurrentInstance, watch, provide, openBlock, createElementBlock, normalizeClass, normalizeStyle, renderSlot } from 'vue';
import '../../../hooks/index.mjs';
import '../../../constants/index.mjs';
import { stepsProps, stepsEmits } from './steps.mjs';
import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
import { useOrderedChildren } from '../../../hooks/use-ordered-children/index.mjs';
import { CHANGE_EVENT } from '../../../constants/event.mjs';
const _sfc_main = defineComponent({
name: "Steps",
props: stepsProps,
emits: stepsEmits,
setup(props, { emit }) {
const { namespace } = useNamespace("steps");
const {
children: steps,
addChild: addStep,
removeChild: removeStep
} = useOrderedChildren(getCurrentInstance(), "Step");
watch(steps, () => {
steps.value.forEach((instance, index) => {
instance.setIndex(index);
});
});
provide("Steps", { props, steps, addStep, removeStep });
watch(() => props.active, (newVal, oldVal) => {
emit(CHANGE_EVENT, newVal, oldVal);
});
return {
namespace,
steps
};
}
});
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return openBlock(), createElementBlock("div", {
class: normalizeClass([
_ctx.namespace,
_ctx.dir
]),
style: normalizeStyle([
_ctx.gap ? `--steps-gap: ${_ctx.gap}` : "",
_ctx.itemPadding ? `--steps-item-padding: ${_ctx.itemPadding}` : ""
])
}, [
renderSlot(_ctx.$slots, "default")
], 6);
}
var Steps = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export { Steps as default };
//# sourceMappingURL=steps2.mjs.map