winbox-ui-next
Version:
We Design Vue 2.0: A Vue.js 3 UI Library
45 lines (44 loc) • 1.25 kB
JavaScript
;
var vue = require("vue");
var renderFunction = require("../_components/render-function.js");
var globalConfig = require("../_utils/global-config.js");
var index = require("../tooltip/index.js");
var _sfc_main = vue.defineComponent({
name: "ImagePreviewToolbar",
components: {
RenderFunction: renderFunction,
Tooltip: index
},
props: {
actions: {
type: Array,
default: () => []
},
actionsLayout: {
type: Array,
default: () => []
}
},
setup(props) {
const {
actions,
actionsLayout
} = vue.toRefs(props);
const prefixCls = globalConfig.getPrefixCls("image-preview-toolbar");
const resultActions = vue.computed(() => {
const actionsLayoutSet = new Set(actionsLayout.value);
const filterWithLayout = (item) => actionsLayoutSet.has(item.key);
const filteredActions = actions.value.filter(filterWithLayout);
return filteredActions.sort((pre, cur) => {
const preIndex = actionsLayout.value.indexOf(pre.key);
const curIndex = actionsLayout.value.indexOf(cur.key);
return preIndex > curIndex ? 1 : -1;
});
});
return {
prefixCls,
resultActions
};
}
});
module.exports = _sfc_main;