{"version":3,"file":"transfer-panel2.mjs","sources":["../../../../../../packages/components/transfer/src/transfer-panel.vue"],"sourcesContent":["<template>\n  <div\n    :class=\"ns.b('panel')\"\n    :style=\"panelStyle\"\n    data-test-name=\"transfer-panel\"\n    data-test-variant=\"\"\n    data-test-state=\"\"\n  >\n    <div :class=\"ns.be('panel', 'header')\">\n      <b-checkbox\n        v-model=\"allChecked\"\n        plain\n        :indeterminate=\"isIndeterminate\"\n        @change=\"handleAllCheckedChange\"\n      >\n        {{ title }}\n      </b-checkbox>\n      <span>{{ checkedSummary }}</span>\n    </div>\n\n    <b-input\n      v-if=\"filterable\"\n      v-model=\"query\"\n      :class=\"ns.be('panel', 'filter')\"\n      :placeholder=\"placeholder\"\n      :prefix-icon=\"Search\"\n      clearable\n      @mouseenter=\"inputHover = true\"\n      @mouseleave=\"inputHover = false\"\n    />\n\n    <div :class=\"[ns.be('panel', 'body')]\">\n      <div :class=\"[ns.be('panel', 'body-inner')]\">\n        <b-checkbox-group\n          v-show=\"!hasNoMatch && !isEmpty(data)\"\n          v-model=\"checked\"\n          vertical\n          :class=\"[ns.is('filterable', filterable), ns.be('panel', 'list')]\"\n        >\n          <b-checkbox\n            v-for=\"item in filteredData\"\n            :key=\"item[propsAlias.key]\"\n            :class=\"ns.be('panel', 'item')\"\n            :value=\"item[propsAlias.key]\"\n            :disabled=\"item[propsAlias.disabled]\"\n            plain\n          >\n            <option-content :option=\"optionRender?.(item)\" />\n          </b-checkbox>\n        </b-checkbox-group>\n\n        <p\n          v-show=\"hasNoMatch || isEmpty(data)\"\n          :class=\"ns.be('panel', 'empty')\"\n        >\n          {{ hasNoMatch ? t('b.transfer.noMatch') : t('b.transfer.noData') }}\n        </p>\n      </div>\n    </div>\n    <div v-if=\"hasFooter\" :class=\"ns.be('panel', 'footer')\">\n      <slot />\n    </div>\n  </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, reactive, toRefs, useSlots } from 'vue'\nimport { isEmpty } from '@bigin/utils'\nimport { useLocale, useNamespace } from '@bigin/hooks'\nimport { BCheckbox, BCheckboxGroup } from '@bigin/components/checkbox'\nimport { BInput } from '@bigin/components/input'\nimport { Search } from '@bigin/icons-vue'\nimport { transferPanelEmits, transferPanelProps } from './transfer-panel'\nimport { useCheck, usePropsAlias } from './composables'\n\nimport type { VNode } from 'vue'\nimport type { TransferPanelState } from './transfer-panel'\n\ndefineOptions({\n  name: 'BTransferPanel',\n})\n\nconst props = defineProps(transferPanelProps)\nconst emit = defineEmits(transferPanelEmits)\nconst slots = useSlots()\n\nconst OptionContent = ({ option }: { option: VNode | VNode[] }) => option\n\nconst { t } = useLocale()\nconst ns = useNamespace('transfer')\n\nconst panelState = reactive<TransferPanelState>({\n  checked: [],\n  allChecked: false,\n  query: '',\n  inputHover: false,\n  checkChangeByUser: true,\n})\n\nconst propsAlias = usePropsAlias(props)\n\nconst {\n  filteredData,\n  checkedSummary,\n  isIndeterminate,\n  handleAllCheckedChange,\n} = useCheck(props, panelState, emit)\n\nconst hasNoMatch = computed(\n  () => !isEmpty(panelState.query) && isEmpty(filteredData.value)\n)\n\nconst hasFooter = computed(() => !isEmpty(slots.default!()[0].children))\n\nconst { checked, allChecked, query, inputHover } = toRefs(panelState)\nconst panelStyle = computed(() => ({\n  width: `${props.width}px`,\n  height: `${props.height}px`,\n}))\n\ndefineExpose({\n  /** @description filter keyword */\n  query,\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;mCA8Ec,CAAA;AAAA,EACZ,IAAM,EAAA,gBAAA;AACR,CAAA,CAAA,CAAA;;;;;;;AAIA,IAAA,MAAM,QAAQ,QAAS,EAAA,CAAA;AAEvB,IAAA,MAAM,aAAgB,GAAA,CAAC,EAAE,MAAA,EAA0C,KAAA,MAAA,CAAA;AAE7D,IAAA,MAAA,EAAE,CAAE,EAAA,GAAI,SAAU,EAAA,CAAA;AAClB,IAAA,MAAA,EAAA,GAAK,aAAa,UAAU,CAAA,CAAA;AAElC,IAAA,MAAM,aAAa,QAA6B,CAAA;AAAA,MAC9C,SAAS,EAAC;AAAA,MACV,UAAY,EAAA,KAAA;AAAA,MACZ,KAAO,EAAA,EAAA;AAAA,MACP,UAAY,EAAA,KAAA;AAAA,MACZ,iBAAmB,EAAA,IAAA;AAAA,KACpB,CAAA,CAAA;AAEK,IAAA,MAAA,UAAA,GAAa,cAAc,KAAK,CAAA,CAAA;AAEhC,IAAA,MAAA;AAAA,MACJ,YAAA;AAAA,MACA,cAAA;AAAA,MACA,eAAA;AAAA,MACA,sBAAA;AAAA,KACE,GAAA,QAAA,CAAS,KAAO,EAAA,UAAA,EAAY,IAAI,CAAA,CAAA;AAEpC,IAAA,MAAM,UAAa,GAAA,QAAA;AAAA,MACjB,MAAM,CAAC,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAK,IAAA,OAAA,CAAQ,aAAa,KAAK,CAAA;AAAA,KAChE,CAAA;AAEM,IAAA,MAAA,SAAA,GAAY,QAAS,CAAA,MAAM,CAAC,OAAA,CAAQ,MAAM,OAAS,EAAA,CAAE,CAAG,CAAA,CAAA,QAAQ,CAAC,CAAA,CAAA;AAEvE,IAAA,MAAM,EAAE,OAAS,EAAA,UAAA,EAAY,OAAO,UAAW,EAAA,GAAI,OAAO,UAAU,CAAA,CAAA;AAC9D,IAAA,MAAA,UAAA,GAAa,SAAS,OAAO;AAAA,MACjC,KAAA,EAAO,GAAG,KAAM,CAAA,KAAA,CAAA,EAAA,CAAA;AAAA,MAChB,MAAA,EAAQ,GAAG,KAAM,CAAA,MAAA,CAAA,EAAA,CAAA;AAAA,KACjB,CAAA,CAAA,CAAA;AAEW,IAAA,MAAA,CAAA;AAAA,MAEX,KAAA;AAAA,KACD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}