{"version":3,"file":"transfer-panel.vue2.mjs","sources":["../../../../../packages/components/transfer/src/transfer-panel.vue"],"sourcesContent":["<template>\n  <div :class=\"ns.b('panel')\">\n    <p :class=\"ns.be('panel', 'header')\">\n      <el-checkbox\n        v-model=\"allChecked\"\n        :indeterminate=\"isIndeterminate\"\n        @change=\"handleAllCheckedChange\"\n      >\n        {{ title }}\n        <span>{{ checkedSummary }}</span>\n      </el-checkbox>\n    </p>\n\n    <div :class=\"[ns.be('panel', 'body'), ns.is('with-footer', hasFooter)]\">\n      <el-input\n        v-if=\"filterable\"\n        v-model=\"query\"\n        :class=\"ns.be('panel', 'filter')\"\n        size=\"default\"\n        :placeholder=\"placeholder\"\n        :prefix-icon=\"SearchIcon\"\n        clearable\n        @mouseenter=\"inputHover = true\"\n        @mouseleave=\"inputHover = false\"\n      >\n      </el-input>\n      <el-checkbox-group\n        v-show=\"!hasNoMatch && data.length > 0\"\n        v-model=\"checked\"\n        :class=\"[ns.is('filterable', filterable), ns.be('panel', 'list')]\"\n      >\n        <el-checkbox\n          v-for=\"item in filteredData\"\n          :key=\"item[keyProp]\"\n          :class=\"ns.be('panel', 'item')\"\n          :value=\"item[keyProp]\"\n          :disabled=\"item[disabledProp]\"\n        >\n          <option-content :option=\"optionRender(item)\" />\n        </el-checkbox>\n      </el-checkbox-group>\n      <p v-show=\"hasNoMatch || data.length === 0\" :class=\"ns.be('panel', 'empty')\">\n        {{ hasNoMatch ? '无匹配数据' : '无数据' }}\n      </p>\n    </div>\n    <p v-if=\"hasFooter\" :class=\"ns.be('panel', 'footer')\">\n      <slot></slot>\n    </p>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, reactive, toRefs } from 'vue'\nimport { useNamespace } from '@element-ultra/hooks'\nimport { ElCheckbox, ElCheckboxGroup } from '@element-ultra/components/checkbox'\nimport ElInput from '@element-ultra/components/input'\nimport { Search } from 'icon-ultra'\nimport { useCheck, useCheckProps, CHECKED_CHANGE_EVENT } from './useCheck'\n\nexport default defineComponent({\n  name: 'ElTransferPanel',\n\n  components: {\n    ElCheckboxGroup,\n    ElCheckbox,\n    ElInput,\n    OptionContent: ({ option }) => option\n  },\n\n  props: useCheckProps,\n\n  emits: [CHECKED_CHANGE_EVENT],\n\n  setup(props, { slots }) {\n    const ns = useNamespace('transfer')\n\n    const panelState = reactive({\n      checked: [],\n      allChecked: false,\n      query: '',\n      inputHover: false,\n      checkChangeByUser: true\n    })\n\n    const {\n      labelProp,\n      keyProp,\n      disabledProp,\n      filteredData,\n      checkedSummary,\n      isIndeterminate,\n      handleAllCheckedChange\n    } = useCheck(props, panelState)\n\n    const hasNoMatch = computed(() => {\n      return panelState.query.length > 0 && filteredData.value.length === 0\n    })\n\n    const hasFooter = computed(() => !!slots.default()[0].children.length)\n\n    const { checked, allChecked, query, inputHover, checkChangeByUser } = toRefs(panelState)\n\n    return {\n      ns,\n      labelProp,\n      keyProp,\n      disabledProp,\n      filteredData,\n      checkedSummary,\n      isIndeterminate,\n      handleAllCheckedChange,\n\n      checked,\n      allChecked,\n      query,\n      inputHover,\n      checkChangeByUser,\n\n      hasNoMatch,\n      SearchIcon: Search,\n      hasFooter\n    }\n  }\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;AA2DA,gBAAe,eAAgB,CAAA;AAAA,EAC7B,IAAM,EAAA,iBAAA;AAAA,EAEN,UAAY,EAAA;AAAA,IACV,eAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA,aAAe,EAAA,CAAC,EAAE,MAAA,EAAa,KAAA,MAAA;AAAA,GACjC;AAAA,EAEA,KAAO,EAAA,aAAA;AAAA,EAEP,KAAA,EAAO,CAAC,oBAAoB,CAAA;AAAA,EAE5B,KAAM,CAAA,KAAA,EAAO,EAAE,KAAA,EAAS,EAAA;AACtB,IAAM,MAAA,EAAA,GAAK,aAAa,UAAU,CAAA,CAAA;AAElC,IAAA,MAAM,aAAa,QAAS,CAAA;AAAA,MAC1B,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;AAED,IAAM,MAAA;AAAA,MACJ,SAAA;AAAA,MACA,OAAA;AAAA,MACA,YAAA;AAAA,MACA,YAAA;AAAA,MACA,cAAA;AAAA,MACA,eAAA;AAAA,MACA,sBAAA;AAAA,KACF,GAAI,QAAS,CAAA,KAAA,EAAO,UAAU,CAAA,CAAA;AAE9B,IAAM,MAAA,UAAA,GAAa,SAAS,MAAM;AAChC,MAAA,OAAO,WAAW,KAAM,CAAA,MAAA,GAAS,CAAK,IAAA,YAAA,CAAa,MAAM,MAAW,KAAA,CAAA,CAAA;AAAA,KACrE,CAAA,CAAA;AAED,IAAM,MAAA,SAAA,GAAY,QAAS,CAAA,MAAM,CAAC,CAAC,KAAM,CAAA,OAAA,EAAU,CAAA,CAAC,CAAE,CAAA,QAAA,CAAS,MAAM,CAAA,CAAA;AAErE,IAAM,MAAA,EAAE,SAAS,UAAY,EAAA,KAAA,EAAO,YAAY,iBAAkB,EAAA,GAAI,OAAO,UAAU,CAAA,CAAA;AAEvF,IAAO,OAAA;AAAA,MACL,EAAA;AAAA,MACA,SAAA;AAAA,MACA,OAAA;AAAA,MACA,YAAA;AAAA,MACA,YAAA;AAAA,MACA,cAAA;AAAA,MACA,eAAA;AAAA,MACA,sBAAA;AAAA,MAEA,OAAA;AAAA,MACA,UAAA;AAAA,MACA,KAAA;AAAA,MACA,UAAA;AAAA,MACA,iBAAA;AAAA,MAEA,UAAA;AAAA,MACA,UAAY,EAAA,MAAA;AAAA,MACZ,SAAA;AAAA,KACF,CAAA;AAAA,GACF;AACF,CAAC,CAAA;;;;"}