{"version":3,"file":"operate-icon.vue2.mjs","sources":["../../../../../../packages/components/operate-icon/src/operate-icon.vue"],"sourcesContent":["<template>\r\n  <div :class=\"operateIconClass\">\r\n    <!-- 显示的icon -->\r\n    <ll-icon-base\r\n      v-for=\"(item, index) in showIconList\"\r\n      v-bind=\"item\"\r\n      :key=\"item.iconName\"\r\n      :data=\"data\"\r\n      :is-show=\"\r\n        Object.keys(item).includes('isShow') ? item.isShow! : true\r\n      \"\r\n      :tooltip-class=\"bem.e(marginButtonClass(index, showIconList.length - 1))\"\r\n      :tooltip-props=\"tooltipProps\"\r\n    />\r\n    <template v-if=\"modalIconList.length === 1\">\r\n      <ll-icon-base\r\n        v-for=\"(item, index) in modalIconList\"\r\n        :key=\"index\"\r\n        v-bind=\"item\"\r\n        :data=\"data\"\r\n        :tooltip-class=\"`${bem.e('last-icon')}`\"\r\n        :tooltip-props=\"tooltipProps\"\r\n      />\r\n    </template>\r\n    <!-- 下拉提示的icon -->\r\n    <a-dropdown\r\n      v-if=\"showDropdown && modalIconList.length > 1\"\r\n      :overlay-class-name=\"`${bem.e('dropdown')} ${props.overlayClassName}`\"\r\n      :open=\"dropdownOpen\"\r\n      :trigger=\"trigger\"\r\n      :get-popup-container=\"props.getPopupContainer\"\r\n      @open-change=\"handleDropdownOpenChange\"\r\n    >\r\n      <div :class=\"bem.e('dropdown-container')\">\r\n        <ll-tooltip title=\"更多\" v-bind=\"tooltipProps\">\r\n          <ll-icon-base\r\n            :is-show-tooltip=\"false\"\r\n            :is-show-container=\"\r\n              showIconList[0] ? showIconList[0]?.isShowContainer : true\r\n            \"\r\n            :icon-type=\"showIconList[0] ? showIconList[0]?.iconType : 'primary'\"\r\n            :data=\"data\"\r\n            icon-name=\"icon-more\"\r\n            :class=\"bem.e('icon-more')\"\r\n          />\r\n        </ll-tooltip>\r\n      </div>\r\n      <template #overlay>\r\n        <a-menu @click=\"handleDropdownParentClick\">\r\n          <slot>\r\n            <template v-for=\"item in modalIconList\">\r\n              <a-menu-item\r\n                v-if=\"Object.keys(item).includes('isShow') ? item.isShow! : true\"\r\n                :key=\"item.iconName\"\r\n              >\r\n                <ll-icon-base\r\n                  v-bind=\"item\"\r\n                  :data=\"data\"\r\n                  :icon-name=\"showDropdownItemIcon ? item.iconName : ''\"\r\n                />\r\n              </a-menu-item>\r\n            </template>\r\n          </slot>\r\n        </a-menu>\r\n      </template>\r\n    </a-dropdown>\r\n  </div>\r\n</template>\r\n<script lang=\"ts\" setup>\r\nimport { computed, ref, watch } from 'vue'\r\n\r\nimport { createNamespace } from '@ll-plus/utils'\r\n\r\nimport { IconBaseProps, LlIconBase } from '@ll-plus/components'\r\nimport { operateIconEmits, operateIconProps } from './operate-icon'\r\n\r\n// 1.defineOptions\r\ndefineOptions({\r\n  name: 'LlOperateIcon',\r\n})\r\n\r\n// 2.props/emits\r\nconst props = defineProps(operateIconProps)\r\nconst emits = defineEmits(operateIconEmits)\r\n\r\n// 3.ref/const\r\nconst showIconList = ref<IconBaseProps[]>([]) // 显示的icon列表\r\nconst modalIconList = ref<IconBaseProps[]>([]) // 弹窗的icon列表\r\nconst dropdownOpen = ref(false) // 下拉菜单的open\r\nconst defaultList = ref([\r\n  // 默认的icon列表\r\n  {\r\n    iconType: computed(() => props.iconType || 'primary'), // default默认为灰色\r\n    isShowContainer: false, // 是否显示icon容器\r\n    iconName: 'icon-edit',\r\n    tooltipTitle: '编辑',\r\n    disabled: props.disabled,\r\n    onClick: (e: Event, data: any) => {\r\n      emits('edit', e, data)\r\n    },\r\n  },\r\n  {\r\n    iconType: computed(() => props.iconType || 'primary'), // default默认为灰色\r\n    isShowContainer: false, // 是否显示icon容器\r\n    iconName: 'icon-delete',\r\n    tooltipTitle: '删除',\r\n    disabled: props.disabled,\r\n    onClick: (e: Event, data: any) => {\r\n      emits('delete', e, data)\r\n    },\r\n  },\r\n])\r\nconst bem = createNamespace('operate-icon')\r\nconst operateIconClass = computed(() => {\r\n  const isHasDropdown = props.showDropdown && modalIconList.value.length\r\n  return `${bem.b()} ${\r\n    isHasDropdown ? bem.m('has-dropdown') : bem.m('no-dropdown')\r\n  }`\r\n})\r\n// 4.methods\r\n// 点击更多按钮\r\nconst marginButtonClass = (index, length) => {\r\n  return index < length ? 'margin-tooltip' : ''\r\n}\r\nconst handleOpenChange = (open: boolean) => emits('onDropdownOpenChange', open)\r\n// 下拉菜单open\r\nconst handleDropdownOpenChange = (open: boolean) => {\r\n  dropdownOpen.value = open\r\n  handleOpenChange(open)\r\n}\r\nconst handleDropdownParentClick = () => {\r\n  dropdownOpen.value = false\r\n  handleOpenChange(false)\r\n}\r\n\r\nconst closeDropdown = () => {\r\n  dropdownOpen.value = false\r\n}\r\n\r\n// 5.watch\r\nwatch(\r\n  () => [props.list, props.showDropdown],\r\n  (data: any) => {\r\n    const [newList, showDropdown] = data\r\n    const list =\r\n      newList && newList.length\r\n        ? newList.filter(Boolean).filter((item) => {\r\n            const { isShow, disabled } = item\r\n            const d =\r\n              typeof disabled === 'function' ? disabled(props.data) : disabled\r\n            const show =\r\n              typeof isShow === 'function' ? isShow(props.data) : isShow\r\n            item.disabled = d\r\n            item.isShow = show\r\n            return show\r\n          })\r\n        : defaultList.value\r\n    const length = list.length\r\n    if (length >= props.showIconLimit && showDropdown) {\r\n      showIconList.value = list\r\n        .slice(0, props.showIconLimit - 1)\r\n        .map((item) => ({ ...item, isShowTooltip: true })) as IconBaseProps[]\r\n      // 默认modal里面要icon后面跟文字\r\n      const sliceList = list.slice(props.showIconLimit - 1)\r\n      if (sliceList.length === 1) {\r\n        modalIconList.value = sliceList.map((item: any) => ({\r\n          ...item,\r\n          isShowTitle: false,\r\n          isShowTooltip: true,\r\n          isShowContainer: false,\r\n        }))\r\n      } else {\r\n        modalIconList.value = sliceList.map((item: any) => ({\r\n          ...item,\r\n          isShowTitle: true,\r\n        }))\r\n      }\r\n    } else {\r\n      showIconList.value = list.map((item: any) => ({\r\n        ...item,\r\n        isShowTooltip: true,\r\n      })) as IconBaseProps[]\r\n    }\r\n  },\r\n  { immediate: true, deep: true }\r\n)\r\ndefineExpose({\r\n  closeDropdown,\r\n})\r\n</script>\r\n"],"names":["_createElementBlock","_createCommentVNode","_openBlock","_Fragment","_renderList","_createBlock","_unref","_mergeProps","data","tooltipProps","showDropdown","trigger","_createVNode","_renderSlot","showDropdownItemIcon","_createElementVNode","_normalizeClass"],"mappings":"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"}