{"version":3,"file":"tags.mjs","sources":["../../../packages/components/src/tags.tsx"],"sourcesContent":["import { ElTag } from 'element-plus'\nimport { filterFun } from './filter'\nimport type { App } from 'vue'\nimport type {\n  PowerfulTableHeaderProps,\n  SFCWithInstall,\n  SetDataType,\n} from '~/index'\nimport {\n  isProperty,\n  powerfulTableComponentProp,\n  useREmit,\n} from '~/powerful-table/src/powerful-table-data'\nimport { SizeSymbol } from '~/keys'\n\nconst Tags = defineComponent({\n  name: 'PTTags',\n  props: {\n    ...powerfulTableComponentProp,\n    prop: {\n      type: Object as PropType<PowerfulTableHeaderProps>,\n      default: () => ({}),\n    },\n  },\n  emits: ['return-emit', 'component-emit'],\n  setup(props, { emit }) {\n    const data = props.prop.data as SetDataType<'tag'>\n    const size = inject(SizeSymbol)\n    const { REmit, event } = useREmit<'tag'>(\n      emit as (event: 'component-emit', ...args: any[]) => void,\n      'tag',\n      {\n        row: props.row,\n        index: props.index!,\n        props: props.prop,\n      }\n    )\n\n    /* ------ 标签string转array ------ */\n    const tagToArray = (val: string | [], i: number) => {\n      return typeof val !== 'string'\n        ? [...val].splice(0, i)\n        : val.split(',').splice(0, i)\n    }\n\n    return () => (\n      <>\n        {tagToArray(props.row[props.prop.prop], data?.number || 3).map(\n          (tag) => (\n            <ElTag\n              style={{\n                marginRight: '10px',\n                borderColor:\n                  typeof data?.color == 'function' ? 'rgba(0,0,0,0)' : 'auto',\n                ...data?.style,\n              }}\n              size={size}\n              key={tag}\n              type={'primary'}\n              color={\n                (typeof data?.color == 'function' &&\n                  data?.color(props.row, tag)) ||\n                ''\n              }\n              onClick={(evt: Event) => {\n                evt.stopPropagation()\n                REmit('click', {\n                  row: props.row,\n                  index: props.index,\n                  prop: props.prop.prop,\n                  evt,\n                })\n                event('click', evt)\n              }}\n              onClose={(...arg: any) => {\n                REmit('close', ...arg)\n                event('close', ...arg)\n              }}\n              {...isProperty(\n                { row: props.row, index: props.index!, props: props.prop },\n                data?.property\n              )}\n            >\n              {props.prop.filters\n                ? typeof props.prop.filters == 'function'\n                  ? props.prop.filters(props.row, props.index)\n                  : filterFun(tag, props.prop.filters!)\n                : tag}\n            </ElTag>\n          )\n        )}\n      </>\n    )\n  },\n})\n\nTags.install = (app: App) => {\n  app.component(Tags.name!, Tags)\n}\nexport const PTTags = Tags as SFCWithInstall<typeof Tags>\nexport default Tags\n"],"names":["Tags","defineComponent","powerfulTableComponentProp","props","emit","data","size","inject","SizeSymbol","REmit","event","useREmit","tagToArray","val","i","_createVNode","_Fragment","tag","ElTag","_mergeProps","evt","arg","isProperty","filterFun","app","PTTags"],"mappings":";;;;;AAKA,MAAAA,IAAA,gBAAAC,EAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,IACA,GAAAC;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA,OAAA,CAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,OAAA,CAAA,eAAA,gBAAA;AAAA,EACA,MAAAC,GAAA;AAAA,IACA,MAAAC;AAAA,EACA,GAAA;AACA,UAAAC,IAAAF,EAAA,KAAA,MACAG,IAAAC,EAAAC,CAAA,GACA;AAAA,MACA,OAAAC;AAAA,MACA,OAAAC;AAAA,IACA,IAAAC,EAAAP,GAAA,OAAA;AAAA,MACA,KAAAD,EAAA;AAAA,MACA,OAAAA,EAAA;AAAA,MACA,OAAAA,EAAA;AAAA,IACA,CAAA,GAGAS,IAAA,CAAAC,GAAAC,MACA,OAAAD,KAAA,WAAA,CAAA,GAAAA,CAAA,EAAA,OAAA,GAAAC,CAAA,IAAAD,EAAA,MAAA,GAAA,EAAA,OAAA,GAAAC,CAAA;AAEA,WAAA,MAAAC,EAAAC,GAAA,MAAA,CAAAJ,EAAAT,EAAA,IAAAA,EAAA,KAAA,IAAA,IAAAE,KAAA,gBAAAA,EAAA,WAAA,CAAA,EAAA,IAAA,CAAAY,MAAAF,EAAAG,GAAAC,EAAA;AAAA,MACA,OAAA;AAAA,QACA,aAAA;AAAA,QACA,aAAA,QAAAd,KAAA,gBAAAA,EAAA,UAAA,aAAA,kBAAA;AAAA,QACA,GAAAA,KAAA,gBAAAA,EAAA;AAAA,MACA;AAAA,MACA,MAAAC;AAAA,MACA,KAAAW;AAAA,MACA,MAAA;AAAA,MACA,OAAA,QAAAZ,KAAA,gBAAAA,EAAA,UAAA,eAAAA,KAAA,gBAAAA,EAAA,MAAAF,EAAA,KAAAc,OAAA;AAAA,MACA,SAAA,CAAAG,MAAA;AACA,QAAAA,EAAA,gBAAA,GACAX,EAAA,SAAA;AAAA,UACA,KAAAN,EAAA;AAAA,UACA,OAAAA,EAAA;AAAA,UACA,MAAAA,EAAA,KAAA;AAAA,UACA,KAAAiB;AAAA,QACA,CAAA,GACAV,EAAA,SAAAU,CAAA;AAAA,MACA;AAAA,MACA,SAAA,IAAAC,MAAA;AACA,QAAAZ,EAAA,SAAA,GAAAY,CAAA,GACAX,EAAA,SAAA,GAAAW,CAAA;AAAA,MACA;AAAA,IACA,GAAAC,EAAA;AAAA,MACA,KAAAnB,EAAA;AAAA,MACA,OAAAA,EAAA;AAAA,MACA,OAAAA,EAAA;AAAA,IACA,GAAAE,KAAA,gBAAAA,EAAA,QAAA,CAAA,GAAA;AAAA,MACA,SAAA,MAAA,CAAAF,EAAA,KAAA,UAAA,OAAAA,EAAA,KAAA,WAAA,aAAAA,EAAA,KAAA,QAAAA,EAAA,KAAAA,EAAA,KAAA,IAAAoB,EAAAN,GAAAd,EAAA,KAAA,OAAA,IAAAc,CAAA;AAAA,IACA,CAAA,CAAA,CAAA,CAAA;AAAA,EACA;AACA,CAAA;AACAjB,EAAA,UAAA,CAAAwB,MAAA;AACA,EAAAA,EAAA,UAAAxB,EAAA,MAAAA,CAAA;AACA;AACA,MAAAyB,IAAAzB;"}