UNPKG

@fesjs/fes-design

Version:
56 lines (51 loc) 1.64 kB
import { defineComponent, getCurrentInstance, inject, ref, computed, openBlock, createElementBlock, normalizeClass, renderSlot } from 'vue'; import getPrefixCls from '../_util/getPrefixCls'; import { noop } from '../_util/utils'; import { COMPONENT_NAME, LAYOUT_PROVIDE_KEY } from './const'; const prefixCls = getPrefixCls('layout'); const layoutFooterProps = { embedded: { type: Boolean, default: false }, bordered: { type: Boolean, default: false }, fixed: { type: Boolean, default: false } }; var script = defineComponent({ name: COMPONENT_NAME.FOOTER, props: layoutFooterProps, setup(props) { const vm = getCurrentInstance(); if (!vm.parent || !vm.parent.type || vm.parent.type.name !== COMPONENT_NAME.LAYOUT) { console.warn(`[${COMPONENT_NAME.FOOTER}] must be a child of ${COMPONENT_NAME.LAYOUT}`); } const { addChild, embedded } = inject(LAYOUT_PROVIDE_KEY, { addChild: noop, embedded: ref(false) }); addChild({ type: COMPONENT_NAME.FOOTER }); const classList = computed(() => [`${prefixCls}-footer`, props.bordered && 'is-bordered', (embedded.value || props.embedded) && 'is-embedded', props.fixed && 'is-fixed'].filter(Boolean)); return { classList }; } }); function render(_ctx, _cache, $props, $setup, $data, $options) { return openBlock(), createElementBlock("footer", { class: normalizeClass(_ctx.classList) }, [renderSlot(_ctx.$slots, "default")], 2 /* CLASS */); } script.render = render; script.__file = "components/layout/footer.vue"; export { script as default, layoutFooterProps };