{"version":3,"file":"transfer.mjs","sources":["../../../../../../packages/components/transfer/src/transfer.ts"],"sourcesContent":["import { isNil } from 'lodash-unified'\nimport { buildProps, definePropType, isArray, mutable } from '@bigin/utils'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@bigin/constants'\n\nimport type { ExtractPropTypes, h as H, VNode } from 'vue'\nimport type Transfer from './transfer.vue'\n\nexport type TransferKey = string | number\nexport type TransferDirection = 'left' | 'right'\n\nexport type TransferDataItem = Record<string, any>\n\nexport type renderContent = (\n  h: typeof H,\n  option: TransferDataItem\n) => VNode | VNode[]\n\nexport interface TransferFormat {\n  noChecked?: string\n  hasChecked?: string\n}\n\nexport interface TransferPropsAlias {\n  label?: string\n  key?: string\n  disabled?: string\n}\n\nexport interface TransferCheckedState {\n  leftChecked: TransferKey[]\n  rightChecked: TransferKey[]\n}\n\nexport const LEFT_CHECK_CHANGE_EVENT = 'left-check-change'\nexport const RIGHT_CHECK_CHANGE_EVENT = 'right-check-change'\n\nexport const transferProps = buildProps({\n  data: {\n    type: definePropType<TransferDataItem[]>(Array),\n    default: () => [],\n  },\n  titles: {\n    type: definePropType<[string, string]>(Array),\n    default: () => [],\n  },\n  buttonTexts: {\n    type: definePropType<[string, string]>(Array),\n    default: () => [],\n  },\n  filterPlaceholder: String,\n  filterMethod: {\n    type: definePropType<(query: string, item: TransferDataItem) => boolean>(\n      Function\n    ),\n  },\n  leftDefaultChecked: {\n    type: definePropType<TransferKey[]>(Array),\n    default: () => [],\n  },\n  rightDefaultChecked: {\n    type: definePropType<TransferKey[]>(Array),\n    default: () => [],\n  },\n  renderContent: {\n    type: definePropType<renderContent>(Function),\n  },\n  modelValue: {\n    type: definePropType<TransferKey[]>(Array),\n    default: () => [],\n  },\n  format: {\n    type: definePropType<TransferFormat>(Object),\n    default: () => ({}),\n  },\n  filterable: Boolean,\n  props: {\n    type: definePropType<TransferPropsAlias>(Object),\n    default: () =>\n      mutable({\n        label: 'label',\n        key: 'key',\n        disabled: 'disabled',\n      } as const),\n  },\n  targetOrder: {\n    type: String,\n    values: ['original', 'push', 'unshift'],\n    default: 'original',\n  },\n  validateEvent: {\n    type: Boolean,\n    default: true,\n  },\n  panelWidth: {\n    type: Number,\n    default: 240,\n  },\n  panelHeight: {\n    type: Number,\n    default: 360,\n  },\n} as const)\nexport type TransferProps = ExtractPropTypes<typeof transferProps>\n\nexport const transferCheckedChangeFn = (\n  value: TransferKey[],\n  movedKeys?: TransferKey[]\n) => [value, movedKeys].every(isArray) || (isArray(value) && isNil(movedKeys))\n\nexport const transferEmits = {\n  [CHANGE_EVENT]: (\n    value: TransferKey[],\n    direction: TransferDirection,\n    movedKeys: TransferKey[]\n  ) =>\n    [value, movedKeys].every(isArray) && ['left', 'right'].includes(direction),\n  [UPDATE_MODEL_EVENT]: (value: TransferKey[]) => isArray(value),\n  [LEFT_CHECK_CHANGE_EVENT]: transferCheckedChangeFn,\n  [RIGHT_CHECK_CHANGE_EVENT]: transferCheckedChangeFn,\n}\nexport type TransferEmits = typeof transferEmits\n\nexport type TransferInstance = InstanceType<typeof Transfer>\n"],"names":[],"mappings":"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"}