{"version":3,"file":"tree-panel.mjs","sources":["../../../../../../packages/components/tree-transfer/src/tree-panel.vue"],"sourcesContent":["<template>\n  <div :class=\"['transfer-panel tree-panel']\">\n    <div class=\"panel-header\">\n      {{ title }}\n    </div>\n\n    <div\n      :class=\"['panel-body', hasFooter ? 'is-with-footer' : '']\"\n    >\n      <div\n        v-if=\"filterable\"\n        class=\"panel-filter\"\n      >\n        <hl-input\n          v-model=\"query\"\n          block\n          fill\n          :placeholder=\"placeholder\"\n          @input=\"onInput\"\n          @mouseenter=\"inputHover = true\"\n          @mouseleave=\"inputHover = false\"\n        >\n          <template #suffix>\n            <i :class=\"['input-close', showClose]\" @click=\"clearQuery\"></i>\n          </template>\n          <template #prefix>\n            <hl-icon><system-search /></hl-icon>\n          </template>\n        </hl-input>\n      </div>\n      <hl-tree\n        ref=\"hlTree\"\n        class=\"panel-list\"\n        node-key=\"id\"\n        v-bind=\"treeProps\"\n        :show-checkbox=\"true\"\n        @check-change=\"checkChange\"\n      >\n        <template #default=\"{ data }\">\n          <option-content\n            :option=\"optionRender(data)\"\n          />\n        </template>\n      </hl-tree>\n      <p v-show=\"treeProps.data && treeProps.data.length === 0\" class=\"panel-empty\">\n        {{ t('hl.transfer.noData') }}\n      </p>\n    </div>\n    <p v-if=\"hasFooter\" class=\"panel-footer\">\n      <slot></slot>\n    </p>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue'\nimport { HlInput, HlTree, HlIcon, SystemSearch, useLocale } from 'hongluan-ui'\nimport { debounce } from 'lodash-unified'\n\nimport type { PropType } from 'vue'\nimport type { TreeProps } from '@hongluan-business-ui/components/tree-selector'\n\nexport default defineComponent({\n  name: 'TreePanel',\n\n  components: {\n    HlInput,\n    HlTree,\n    HlIcon,\n    SystemSearch,\n    OptionContent: ({ option }) => option,\n  },\n\n  props: {\n    treeProps: Object as PropType<TreeProps>,\n    placeholder: String,\n    title: String,\n    filterable: Boolean,\n    optionRender: Function,\n  },\n  emits: ['checked-change'],\n  setup(props, { emit, slots }) {\n    const { t } = useLocale()\n    const hlTree = ref(null)\n    const query = ref('')\n    const inputHover = ref(false)\n\n    const hasFooter = computed(() => !!slots.default()[0].children.length)\n    const showClose = computed(() => {\n      return query.value.length > 0 && inputHover.value ? 'show-close' : ''\n    })\n\n    const onInput = debounce(val => {\n      hlTree.value.filter(val)\n    }, 300)\n    const clearQuery = () => {\n      if (showClose.value === 'show-close') {\n        query.value = ''\n        hlTree.value.filter('')\n      }\n    }\n    const callTreeMethod = (name: string, ...args: unknown[]) => {\n      if (hlTree.value[name]) {\n        return hlTree.value[name](...args)\n      }\n      console.error('tree method don\\'t exist!!')\n    }\n    const checkChange = () => {\n      emit('checked-change')\n    }\n\n    return {\n      t,\n      hlTree,\n      query,\n      inputHover,\n      showClose,\n      onInput,\n      clearQuery,\n      hasFooter,\n      checkChange,\n      callTreeMethod,\n    }\n  },\n})\n</script>\n"],"names":["_createElementBlock","_createElementVNode","_toDisplayString","_normalizeClass","_createVNode","_withCtx","_mergeProps","_renderSlot"],"mappings":";;;;;AA8DA,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EAEN,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe,CAAC,EAAE,aAAa;AAAA;AAAA,EAGjC,OAAO;AAAA,IACL,WAAW;AAAA,IACX,aAAa;AAAA,IACb,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,cAAc;AAAA;AAAA,EAEhB,OAAO,CAAC;AAAA,EACR,MAAM,OAAO,EAAE,MAAM,SAAS;AAC5B,UAAM,EAAE,MAAM;AACd,UAAM,SAAS,IAAI;AACnB,UAAM,QAAQ,IAAI;AAClB,UAAM,aAAa,IAAI;AAEvB,UAAM,YAAY,SAAS,MAAM,CAAC,CAAC,MAAM,UAAU,GAAG,SAAS;AAC/D,UAAM,YAAY,SAAS,MAAM;AAC/B,aAAO,MAAM,MAAM,SAAS,KAAK,WAAW,QAAQ,eAAe;AAAA;AAGrE,UAAM,UAAU,SAAS,SAAO;AAC9B,aAAO,MAAM,OAAO;AAAA,OACnB;AACH,UAAM,aAAa,MAAM;AACvB,UAAI,UAAU,UAAU,cAAc;AACpC,cAAM,QAAQ;AACd,eAAO,MAAM,OAAO;AAAA;AAAA;AAGxB,UAAM,iBAAiB,CAAC,SAAiB,SAAoB;AAC3D,UAAI,OAAO,MAAM,OAAO;AACtB,eAAO,OAAO,MAAM,MAAM,GAAG;AAAA;AAE/B,cAAQ,MAAM;AAAA;AAEhB,UAAM,cAAc,MAAM;AACxB,WAAK;AAAA;AAGP,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;;EAxHE,sCAAO;AAAA;qBACN,OAAM;;;EASP,OAAM;AAAA;;;EAqCU,OAAM;AAAA;;;;;;;sBA/C5BA,mBAkDM,OAlDN,YAkDM;AAAA,IAjDJC,mBAEM,OAFN,YAEMC,gBADD,aAAK;AAAA,IAGVD,mBAyCM;AAAA,MAxCH,OAAKE,8BAAiB,iBAAS;AAAA;MAGxB,gCADRH,mBAoBM,OApBN,YAoBM;AAAA,QAhBJI,YAeW;AAAA,sBAdA;AAAA,oFAAK;AAAA,UACd;AAAA,UACA;AAAA,UACC,aAAa;AAAA,UACb,SAAO;AAAA,UACP,cAAU,sCAAE,kBAAU;AAAA,UACtB,cAAU,sCAAE,kBAAU;AAAA;UAEZ,QAAMC,QACf,MAA+D;AAAA,YAA/DJ,mBAA+D;AAAA,cAA3D,OAAKE,+BAAkB;AAAA,cAAa,SAAK,uCAAE;AAAA;;UAEtC,QAAME,QACf,MAAoC;AAAA,YAApCD,YAAoC;AAAA,+BAA3B,MAAiB;AAAA,gBAAjBA,YAAiB;AAAA;AAAA;;;;;;MAIhCA,YAaU,oBAbVE,WAaU;AAAA,QAZR,KAAI;AAAA,QACJ,OAAM;AAAA,QACN,YAAS;AAAA,SACD,gBAAS;AAAA,QAChB,iBAAe;AAAA,QACf,eAAc;AAAA;QAEJ,SAAOD,QAChB,CAEE,EAHkB,WAAI;AAAA,UACxBD,YAEE;AAAA,YADC,QAAQ,kBAAa;AAAA;;;;qBAI5BH,mBAEI,OAFsD,OAAM,iBAAaC,gBACxE,OAAC;AAAA,gBADK,eAAU,QAAQ,eAAU,KAAK,WAAM;AAAA;AAAA;IAI3C,+BAATF,mBAEI,KAFJ,YAEI;AAAA,MADFO,WAAa;AAAA;;;;;;;"}