{"version":3,"file":"filter.mjs","sources":["../../../packages/components/src/filter.tsx"],"sourcesContent":["/*\n * @Author: peng-xiao-shuai\n * @Date: 2023-11-12 22:41:45\n * @LastEditors: peng-xiao-shuai\n * @LastEditTime: 2023-12-05 11:36:23\n * @Description:\n */\nimport type { App } from 'vue'\nimport type {\n  PowerfulTableFilter,\n  PowerfulTableHeaderProps,\n  SFCWithInstall,\n} from '~/index'\nimport {\n  powerfulTableComponentProp,\n  useREmit,\n} from '~/powerful-table/src/powerful-table-data'\n\nexport const filterFun = (\n  s: string | number,\n  filter: PowerfulTableFilter[]\n) => {\n  const current = filter.find((item) => item.key == s)\n  return current ? current.value : s\n}\n\nconst Filter = defineComponent({\n  name: 'PTFilter',\n  props: {\n    ...powerfulTableComponentProp,\n    prop: {\n      type: Object as PropType<PowerfulTableHeaderProps<'text'>>,\n      default: () => ({}),\n    },\n  },\n  emits: ['component-emit'],\n  setup(props, { emit }) {\n    const { REmit, event } = useREmit<'text'>(emit, 'filter', {\n      row: props.row,\n      index: props.index!,\n      props: props.prop,\n    })\n\n    return () => (\n      <>\n        <div\n          onClick={(evt: Event) => {\n            evt.stopPropagation()\n            REmit('click', {\n              evt,\n            })\n            event('click', evt)\n          }}\n        >\n          {typeof props.prop.filters == 'function'\n            ? props.prop.filters(props.row, props.index)\n            : filterFun(props.row[props.prop.prop], props.prop.filters!)}\n        </div>\n      </>\n    )\n  },\n})\nFilter.install = (app: App) => {\n  app.component(Filter.name!, Filter)\n}\nexport const PTFilter = Filter as SFCWithInstall<typeof Filter>\nexport default Filter\n"],"names":["defineComponent","createVNode","Fragment","powerfulTableComponentProp","useREmit","filterFun","s","filter","current","item","Filter","props","emit","REmit","event","_createVNode","_Fragment","evt","app","PTFilter"],"mappings":"AAUA,SAAA,mBAAAA,GAAA,eAAAC,GAAA,YAAAC,SAAA;AAAA,SAAA,8BAAAC,GAAA,YAAAC,SAAA;AAAA,MAAAC,IAAA,CAAAC,GAAAC,MAAA;AACA,QAAAC,IAAAD,EAAA,KAAA,CAAAE,MAAAA,EAAA,OAAAH,CAAA;AACA,SAAAE,IAAAA,EAAA,QAAAF;AACA,GACAI,IAAA,gBAAAV,EAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,IACA,GAAAG;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA,OAAA,CAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,OAAA,CAAA,gBAAA;AAAA,EACA,MAAAQ,GAAA;AAAA,IACA,MAAAC;AAAA,EACA,GAAA;AACA,UAAA;AAAA,MACA,OAAAC;AAAA,MACA,OAAAC;AAAA,IACA,IAAAV,EAAAQ,GAAA,UAAA;AAAA,MACA,KAAAD,EAAA;AAAA,MACA,OAAAA,EAAA;AAAA,MACA,OAAAA,EAAA;AAAA,IACA,CAAA;AACA,WAAA,MAAAI,EAAAC,GAAA,MAAA,CAAAD,EAAA,OAAA;AAAA,MACA,SAAA,CAAAE,MAAA;AACA,QAAAA,EAAA,gBAAA,GACAJ,EAAA,SAAA;AAAA,UACA,KAAAI;AAAA,QACA,CAAA,GACAH,EAAA,SAAAG,CAAA;AAAA,MACA;AAAA,IACA,GAAA,CAAA,OAAAN,EAAA,KAAA,WAAA,aAAAA,EAAA,KAAA,QAAAA,EAAA,KAAAA,EAAA,KAAA,IAAAN,EAAAM,EAAA,IAAAA,EAAA,KAAA,IAAA,GAAAA,EAAA,KAAA,OAAA,CAAA,CAAA,CAAA,CAAA;AAAA,EACA;AACA,CAAA;AACAD,EAAA,UAAA,CAAAQ,MAAA;AACA,EAAAA,EAAA,UAAAR,EAAA,MAAAA,CAAA;AACA;AACA,MAAAS,IAAAT;"}