tass-ui
Version:
A high quality UI Toolkit built on Vue.js3+.
99 lines (98 loc) • 3.59 kB
JavaScript
;
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
const vue = require("vue");
require("../../../theme-chalk/src/transfer.scss.js");
const transferItem_vue_vue_type_script_setup_true_name_TassTransferItem_lang = require("./transferItem.vue.js");
const button_vue_vue_type_script_setup_true_name_TassButton_lang = require("../../button/src/button.vue.js");
const useComponentData = require("./composables/use-component-data.js");
const _hoisted_1 = { class: "tas-transfer" };
const _hoisted_2 = { class: "tas-transfer__buttons" };
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
__name: "transfer",
props: {
data: {
type: Array,
default: () => []
},
props: {
type: Object
},
modelValue: {
type: Array
}
},
emits: ["update:modelValue"],
setup(__props, { emit }) {
const props = __props;
let checkState = vue.reactive({
leftState: [],
rightState: []
});
const { leftState, rightState } = vue.toRefs(checkState);
const sourceCheckChange = (leftVal) => {
checkState.leftState = leftVal;
};
const targetCheckChange = (rightVal) => {
checkState.rightState = rightVal;
};
const leftClick = () => {
var _a;
let curVal = (_a = props.modelValue) == null ? void 0 : _a.slice(0);
checkState.rightState.forEach((item) => {
let index = curVal == null ? void 0 : curVal.indexOf(item);
if (index > -1) {
curVal == null ? void 0 : curVal.splice(index, 1);
}
});
emit("update:modelValue", curVal);
};
const rightClick = () => {
var _a;
let curVal = (_a = props.modelValue) == null ? void 0 : _a.slice(0);
curVal = curVal == null ? void 0 : curVal.concat(checkState.leftState);
emit("update:modelValue", curVal);
};
let { sourceData, targetData } = useComponentData.useComponentData(props);
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
vue.createVNode(transferItem_vue_vue_type_script_setup_true_name_TassTransferItem_lang.default, {
data: vue.unref(sourceData),
props,
onCheckChange: sourceCheckChange
}, null, 8, ["data", "props"]),
vue.createElementVNode("div", _hoisted_2, [
vue.createVNode(button_vue_vue_type_script_setup_true_name_TassButton_lang.default, {
type: "primary",
icon: "tas-icon-chevronleft",
size: "small",
onClick: leftClick,
disabled: vue.unref(rightState).length === 0
}, {
default: vue.withCtx(() => [
vue.createTextVNode(" To Left ")
]),
_: 1
}, 8, ["disabled"]),
vue.createVNode(button_vue_vue_type_script_setup_true_name_TassButton_lang.default, {
type: "primary",
icon: "tas-icon-chevronright",
size: "small",
onClick: rightClick,
disabled: vue.unref(leftState).length === 0
}, {
default: vue.withCtx(() => [
vue.createTextVNode(" To Right ")
]),
_: 1
}, 8, ["disabled"])
]),
vue.createVNode(transferItem_vue_vue_type_script_setup_true_name_TassTransferItem_lang.default, {
data: vue.unref(targetData),
props,
onCheckChange: targetCheckChange
}, null, 8, ["data", "props"])
]);
};
}
});
exports.default = _sfc_main;