{"version":3,"file":"TreeHeader2.mjs","sources":["../../../../../../../packages/components/tree/src/TreeHeader.vue"],"sourcesContent":["<template>\n  <div class=\"flex px-2 py-1.5 items-center basic-tree-header\">\n    <slot v-if=\"$slots.headerTitle\" name=\"headerTitle\" />\n    <BasicTitle v-if=\"!$slots.headerTitle && title\" :help-message=\"helpMessage\">\n      {{ title }}\n    </BasicTitle>\n    <div\n      v-if=\"search || toolbar\"\n      class=\"flex flex-1 justify-self-stretch items-center cursor-pointer\"\n    >\n      <div v-if=\"search\" :class=\"getInputSearchCls\">\n        <InputSearch\n          v-model:value=\"searchValue\"\n          :placeholder=\"tavI18n('Tav.common.searchText')\"\n          allow-clear\n          @search=\"handleSearch\"\n        />\n      </div>\n      <Dropdown v-if=\"toolbar\" @click.prevent>\n        <Icon icon=\"ion:ellipsis-vertical\" />\n        <template #overlay>\n          <Menu @click=\"handleMenuClick\">\n            <template v-for=\"item in toolbarList\" :key=\"item.value\">\n              <MenuItem v-bind=\"{ key: item.value }\">\n                {{ item.label }}\n              </MenuItem>\n              <MenuDivider v-if=\"item.divider\" />\n            </template>\n          </Menu>\n        </template>\n      </Dropdown>\n    </div>\n  </div>\n</template>\n<script lang=\"ts\">\nimport { computed, defineComponent, ref, watch } from 'vue'\nimport { Dropdown, Input, Menu } from 'ant-design-vue'\nimport { useDebounceFn } from '@vueuse/core'\nimport { propTypes } from '@tav-ui/utils/propTypes'\nimport BasicTitle from '@tav-ui/components/basic-title'\nimport Icon from '@tav-ui/components/icon'\nimport { tavI18n } from '@tav-ui/locales'\nimport type { PropType } from 'vue'\nenum ToolbarEnum {\n  SELECT_ALL,\n  UN_SELECT_ALL,\n  EXPAND_ALL,\n  UN_EXPAND_ALL,\n  CHECK_STRICTLY,\n  CHECK_UN_STRICTLY,\n}\n\ninterface MenuInfo {\n  key: ToolbarEnum\n}\nexport default defineComponent({\n  name: 'BasicTreeHeader',\n  components: {\n    BasicTitle,\n    Icon,\n    Dropdown,\n    Menu,\n    MenuItem: Menu.Item,\n    MenuDivider: Menu.Divider,\n    InputSearch: Input.Search,\n  },\n  props: {\n    helpMessage: {\n      type: [String, Array] as PropType<string | string[]>,\n      default: '',\n    },\n    title: propTypes.string,\n    toolbar: propTypes.bool,\n    checkable: propTypes.bool,\n    search: propTypes.bool,\n    checkAll: propTypes.func,\n    expandAll: propTypes.func,\n    searchText: propTypes.string,\n    onStrictlyChange: propTypes.func,\n  },\n  emits: ['strictly-change', 'search'],\n  setup(props, { emit, slots }) {\n    const searchValue = ref('')\n\n    const getInputSearchCls = computed(() => {\n      const titleExists = slots.headerTitle || props.title\n      return [\n        'mr-1',\n        'w-full',\n        // titleExists ? 'w-2/3' : 'w-full',\n        {\n          ['ml-5']: titleExists,\n        },\n      ]\n    })\n\n    const toolbarList = computed(() => {\n      const { checkable } = props\n      const defaultToolbarList = [\n        { label: tavI18n('Tav.tree.1'), value: ToolbarEnum.EXPAND_ALL },\n        {\n          label: tavI18n('Tav.tree.2'),\n          value: ToolbarEnum.UN_EXPAND_ALL,\n          divider: checkable,\n        },\n      ]\n\n      return checkable\n        ? [\n            { label: tavI18n('Tav.tree.3'), value: ToolbarEnum.SELECT_ALL },\n            {\n              label: tavI18n('Tav.tree.4'),\n              value: ToolbarEnum.UN_SELECT_ALL,\n              divider: checkable,\n            },\n            ...defaultToolbarList,\n            { label: tavI18n('Tav.tree.5'), value: ToolbarEnum.CHECK_STRICTLY },\n            { label: tavI18n('Tav.tree.6'), value: ToolbarEnum.CHECK_UN_STRICTLY },\n          ]\n        : defaultToolbarList\n    })\n\n    function handleMenuClick(e: MenuInfo) {\n      const { key } = e\n      switch (key) {\n        case ToolbarEnum.SELECT_ALL:\n          props.checkAll?.(true)\n          break\n        case ToolbarEnum.UN_SELECT_ALL:\n          props.checkAll?.(false)\n          break\n        case ToolbarEnum.EXPAND_ALL:\n          props.expandAll?.(true)\n          break\n        case ToolbarEnum.UN_EXPAND_ALL:\n          props.expandAll?.(false)\n          break\n        case ToolbarEnum.CHECK_STRICTLY:\n          emit('strictly-change', false)\n          break\n        case ToolbarEnum.CHECK_UN_STRICTLY:\n          emit('strictly-change', true)\n          break\n      }\n    }\n\n    function emitChange(value?: string): void {\n      emit('search', value)\n    }\n    const debounceEmitChange = useDebounceFn(emitChange, 200)\n\n    // watch(\n    //   () => searchValue.value,\n    //   (v) => {\n    //     debounceEmitChange(v)\n    //   }\n    // )\n    watch(\n      () => props.searchText,\n      (v) => {\n        if (v !== searchValue.value) {\n          searchValue.value = v\n        }\n      }\n    )\n    function handleSearch(e: any): void {\n      debounceEmitChange(e)\n    }\n\n    return { tavI18n, toolbarList, handleMenuClick, searchValue, getInputSearchCls, handleSearch }\n  },\n})\n</script>\n"],"names":["ToolbarEnum","BasicTitle","Icon","_resolveComponent","_withCtx","_createTextVNode","_toDisplayString","_createCommentVNode","_openBlock","_createElementBlock","_normalizeClass","_createVNode","_createBlock","_Fragment","_renderList"],"mappings":"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"}