UNPKG

tass-ui

Version:

A high quality UI Toolkit built on Vue.js3+.

99 lines (98 loc) 3.59 kB
"use strict"; 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;