{"version":3,"file":"checkable-tag.vue2.mjs","sources":["../../../../../../packages/components/checkable-tag/src/checkable-tag.vue"],"sourcesContent":["<template>\r\n  <div\r\n    :style=\"{ gap: `${tagGap}px` }\"\r\n    :class=\"[bem.b(), bem.is(size), bem.is(disabled ? 'disabled' : '')]\"\r\n  >\r\n    <template v-for=\"(tag, idx) in newTags\" :key=\"idx\">\r\n      <a-checkable-tag\r\n        :style=\"tagMaxWidth ? { maxWidth: `${tagMaxWidth}px` } : {}\"\r\n        :class=\"[bem.e('tag-content'), bem.is(isChecked(tag) ? 'checked' : '')]\"\r\n        :checked=\"isChecked(tag)\"\r\n        @change=\"(checked) => handleCheck(tag, checked)\"\r\n      >\r\n        <div :class=\"bem.e('tag')\">\r\n          <span>{{ tag[labelKey] || tag[valueKey] }}</span>\r\n          <ll-icon\r\n            v-if=\"showCloseIcon(idx)\"\r\n            icon-name=\"icon-close2\"\r\n            @click=\"handleClose(tag)\"\r\n          />\r\n        </div>\r\n      </a-checkable-tag>\r\n    </template>\r\n    <ll-tag v-if=\"!enableAdd && newTags.length === 0\" shape=\"round\">\r\n      {{ emptyText || '暂无数据' }}\r\n    </ll-tag>\r\n    <!-- 新增标签 -->\r\n    <template v-if=\"enableAdd\">\r\n      <ll-tag\r\n        v-if=\"!inputVisible\"\r\n        shape=\"round\"\r\n        :icon=\"{\r\n          iconName: 'icon-add',\r\n        }\"\r\n        :class=\"[bem.e('add-tag'), bem.is(isDisabledAddTag ? 'disabled' : '')]\"\r\n        @click=\"showInput\"\r\n      >\r\n        {{ addTagText }}\r\n      </ll-tag>\r\n      <ll-input\r\n        v-else\r\n        ref=\"inputRef\"\r\n        v-model:value.trim=\"inputValue\"\r\n        :placeholder=\"placeholder\"\r\n        size=\"small\"\r\n        :style=\"{ width: `${inputWidth}px` }\"\r\n        :class=\"[bem.e('input')]\"\r\n        @blur=\"handleInputConfirm\"\r\n        @keyup.enter=\"handleInputConfirm\"\r\n      />\r\n    </template>\r\n  </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, nextTick, ref, watch } from 'vue'\r\nimport { CheckableTagItem, checkableTagProps } from './checkable-tag'\r\n\r\nimport { createNamespace } from '@ll-plus/utils'\r\nimport { cloneDeep } from 'lodash-es'\r\n\r\ndefineOptions({ name: 'LlCheckableTag' })\r\n\r\nconst props = defineProps(checkableTagProps)\r\nconst emits = defineEmits(['update:value', 'change'])\r\n\r\nconst bem = createNamespace('checkable-tag')\r\n\r\nconst inputRef = ref()\r\nconst inputValue = ref('')\r\nconst inputVisible = ref(false)\r\nconst newTags = ref([] as CheckableTagItem[])\r\n\r\nconst labelKey = computed(() => props.fieldNames?.label || 'label')\r\nconst valueKey = computed(() => props.fieldNames?.value || 'value')\r\n\r\nconst newValue = computed({\r\n  get() {\r\n    return Array.isArray(props.value) ? props.value : []\r\n  },\r\n  set(val) {\r\n    emits('update:value', val)\r\n    emits('change', val)\r\n  },\r\n})\r\n\r\n// 新增标签是否禁用\r\nconst isDisabledAddTag = computed(() => {\r\n  return (\r\n    props.disabled ||\r\n    props.disabledAddTag ||\r\n    (props.maxAddableTags && newTags.value.length >= props.maxAddableTags) ||\r\n    (props.selectionMode === 'multiple' &&\r\n      props.addAutoSelect &&\r\n      props.maxChecked &&\r\n      newValue.value.length >= props.maxChecked)\r\n  )\r\n})\r\n\r\n// 标签是否选中\r\nconst isChecked = computed(() => {\r\n  return (tag: CheckableTagItem) => {\r\n    return newValue.value.includes(tag[valueKey.value])\r\n  }\r\n})\r\n\r\n// 显示关闭图标\r\nconst showCloseIcon = computed(() => {\r\n  return (idx: number) => {\r\n    if (props.deleteRule === 'all') {\r\n      return true\r\n    } else if (props.deleteRule === 'none') {\r\n      return false\r\n    } else if (props.deleteRule === 'exceptFirstN') {\r\n      return idx >= props.exceptCount\r\n    }\r\n    return false\r\n  }\r\n})\r\n\r\n// 关闭标签\r\nconst handleClose = (tag: CheckableTagItem) => {\r\n  if (props.disabled || props.disabledCloseTag) return\r\n\r\n  // 从展示列表中移除（基于 value）\r\n  newTags.value = newTags.value.filter(\r\n    (item) => item[valueKey.value] !== tag[valueKey.value],\r\n  )\r\n\r\n  // 是否存在选中项（基于 value）\r\n  if (newValue.value.includes(tag[valueKey.value])) {\r\n    newValue.value = newValue.value.filter(\r\n      (item) => item !== tag[valueKey.value],\r\n    )\r\n  }\r\n}\r\n\r\n// 选中/取消标签\r\nconst handleCheck = (tag: CheckableTagItem, checked: boolean) => {\r\n  if (props.disabled) return\r\n\r\n  // 单选\r\n  if (props.selectionMode === 'single') {\r\n    newValue.value = checked ? [tag[valueKey.value]] : []\r\n    return\r\n  }\r\n\r\n  // 多选\r\n  if (\r\n    checked &&\r\n    props.maxChecked &&\r\n    newValue.value.length >= props.maxChecked\r\n  ) {\r\n    return\r\n  }\r\n\r\n  newValue.value = checked\r\n    ? [...newValue.value, tag[valueKey.value]]\r\n    : newValue.value.filter((item) => item !== tag[valueKey.value])\r\n}\r\n\r\n// 显示输入框\r\nconst showInput = () => {\r\n  if (isDisabledAddTag.value) return\r\n\r\n  inputVisible.value = true\r\n  nextTick(() => {\r\n    inputRef.value.focus()\r\n  })\r\n}\r\n\r\n// 确认输入框\r\nconst handleInputConfirm = () => {\r\n  const val = inputValue.value.trim()\r\n\r\n  if (val && !newTags.value.some((t) => t[valueKey.value] === val)) {\r\n    // 新增展示标签\r\n    newTags.value.push({ [labelKey.value]: val, [valueKey.value]: val } as any)\r\n\r\n    // 自动选中\r\n    if (props.addAutoSelect) {\r\n      if (props.selectionMode === 'single') {\r\n        newValue.value = [val]\r\n      } else {\r\n        newValue.value = [...newValue.value, val]\r\n      }\r\n    }\r\n  }\r\n\r\n  inputVisible.value = false\r\n  inputValue.value = ''\r\n}\r\n\r\nconst mergeTags = (tags: CheckableTagItem[], value: string[]) => {\r\n  if (!Array.isArray(value)) return tags\r\n\r\n  const existValues = new Set(tags.map((t) => t[valueKey.value]))\r\n  const result = [...tags]\r\n\r\n  value.forEach((v) => {\r\n    // 不存在才补齐\r\n    if (!existValues.has(v)) {\r\n      result.push({ [labelKey.value]: v, [valueKey.value]: v } as any)\r\n      existValues.add(v)\r\n    }\r\n  })\r\n\r\n  return result\r\n}\r\n\r\nwatch(\r\n  () => props.options,\r\n  (options) => {\r\n    const baseTags = cloneDeep(options)\r\n\r\n    newTags.value = mergeTags(baseTags, props.value)\r\n  },\r\n  { immediate: true, deep: true },\r\n)\r\n\r\nwatch(\r\n  () => props.value,\r\n  (value) => {\r\n    const next = mergeTags(newTags.value, value)\r\n\r\n    // 只有真的新增才赋值\r\n    if (next.length !== newTags.value.length) {\r\n      newTags.value = next\r\n    }\r\n  },\r\n  { immediate: true, deep: true },\r\n)\r\n</script>\r\n"],"names":["_createElementBlock","tagGap","_normalizeClass","_unref","size","disabled","_openBlock","_Fragment","_renderList","_createBlock","_normalizeStyle","tagMaxWidth","_createElementVNode","enableAdd","emptyText","_createCommentVNode","addTagText","placeholder","inputWidth"],"mappings":"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"}