"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const event = require("../../../constants/event.js");
const shared_esmBundler = require("../../../../../@vue/shared/dist/shared.esm-bundler.js");
const runtime = require("../../../utils/vue/props/runtime.js");
const typescript = require("../../../utils/typescript.js");
const isNil = require("../../../../../lodash-es/isNil.js");
const LEFT_CHECK_CHANGE_EVENT = "left-check-change";
const RIGHT_CHECK_CHANGE_EVENT = "right-check-change";
const transferProps = runtime.buildProps({
  data: {
    type: runtime.definePropType(Array),
    default: () => []
  },
  titles: {
    type: runtime.definePropType(Array),
    default: () => []
  },
  buttonTexts: {
    type: runtime.definePropType(Array),
    default: () => []
  },
  filterPlaceholder: String,
  filterMethod: { type: runtime.definePropType(Function) },
  leftDefaultChecked: {
    type: runtime.definePropType(Array),
    default: () => []
  },
  rightDefaultChecked: {
    type: runtime.definePropType(Array),
    default: () => []
  },
  renderContent: { type: runtime.definePropType(Function) },
  modelValue: {
    type: runtime.definePropType(Array),
    default: () => []
  },
  format: {
    type: runtime.definePropType(Object),
    default: () => ({})
  },
  filterable: Boolean,
  props: {
    type: runtime.definePropType(Object),
    default: () => typescript.mutable({
      label: "label",
      key: "key",
      disabled: "disabled"
    })
  },
  targetOrder: {
    type: String,
    values: [
      "original",
      "push",
      "unshift"
    ],
    default: "original"
  },
  validateEvent: {
    type: Boolean,
    default: true
  }
});
const transferCheckedChangeFn = (value, movedKeys) => [value, movedKeys].every(shared_esmBundler.isArray) || shared_esmBundler.isArray(value) && isNil.default(movedKeys);
const transferEmits = {
  [event.CHANGE_EVENT]: (value, direction, movedKeys) => [value, movedKeys].every(shared_esmBundler.isArray) && ["left", "right"].includes(direction),
  [event.UPDATE_MODEL_EVENT]: (value) => shared_esmBundler.isArray(value),
  [LEFT_CHECK_CHANGE_EVENT]: transferCheckedChangeFn,
  [RIGHT_CHECK_CHANGE_EVENT]: transferCheckedChangeFn
};
exports.LEFT_CHECK_CHANGE_EVENT = LEFT_CHECK_CHANGE_EVENT;
exports.RIGHT_CHECK_CHANGE_EVENT = RIGHT_CHECK_CHANGE_EVENT;
exports.transferCheckedChangeFn = transferCheckedChangeFn;
exports.transferEmits = transferEmits;
exports.transferProps = transferProps;
