{"version":3,"file":"transfer-panel.vue.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":["_resolveComponent","_normalizeClass","_withCtx","_createTextVNode","_createElementVNode","_createBlock","_withDirectives","_createVNode","_createElementBlock","_Fragment","_renderList","_openBlock"],"mappings":"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"}