@opentiny/vue-renderless
Version:
An enterprise-class UI component library, support both Vue.js 2 and Vue.js 3, as well as PC and mobile.
39 lines (38 loc) • 1.31 kB
JavaScript
import "../chunk-G2ADBYYC.js";
import {
handleMoreClick,
handleItemClick,
visibleChange,
computedMaxShowNum,
computedSpacing,
computedMoreText,
computedSuffixIcon
} from "./index";
const api = ["state", "handleMoreClick", "handleItemClick", "visibleChange"];
const renderless = (props, { computed, reactive }, { emit, t, designConfig }) => {
const api2 = {};
const state = reactive({
visibleOptions: computed(() => props.options.slice(0, state.maxShowNum)),
isCardMode: computed(() => props.mode === "card"),
moreOptions: computed(() => props.options.slice(state.maxShowNum)),
spacing: computed(() => api2.computedSpacing()),
maxShowNum: computed(() => api2.computedMaxShowNum()),
moreText: computed(() => api2.computedMoreText()),
suffixIcon: computed(() => api2.computedSuffixIcon())
});
Object.assign(api2, {
state,
handleMoreClick: handleMoreClick(emit),
handleItemClick: handleItemClick(emit),
visibleChange: visibleChange(emit),
computedMaxShowNum: computedMaxShowNum({ props, state }),
computedSpacing: computedSpacing({ props, state, designConfig }),
computedMoreText: computedMoreText({ props, state, t }),
computedSuffixIcon: computedSuffixIcon({ props, state })
});
return api2;
};
export {
api,
renderless
};