{"version":3,"file":"text.mjs","sources":["../../../packages/components/src/text.tsx"],"sourcesContent":["import { ElIcon } from 'element-plus'\nimport { ArrowDown, ArrowUp } from '@element-plus/icons-vue'\nimport type { App } from 'vue'\nimport type {\n  PowerfulTableHeaderProps,\n  SFCWithInstall,\n  SetDataType,\n} from '~/index'\nimport {\n  powerfulTableComponentProp,\n  useREmit,\n} from '~/powerful-table/src/powerful-table-data'\nimport { LangKey, t } from '~/locale/lang'\n\nconst Text = defineComponent({\n  name: 'PTText',\n  props: {\n    ...powerfulTableComponentProp,\n    prop: {\n      type: Object as PropType<PowerfulTableHeaderProps>,\n      default: () => ({}),\n    },\n    listLength: {\n      type: Number,\n      default: 0,\n    },\n  },\n  emits: ['component-emit'],\n  setup(props, { emit }) {\n    const data = props.prop.data as SetDataType<'text'>\n    const { REmit, event } = useREmit<'text'>(emit, 'text', {\n      row: props.row,\n      index: props.index!,\n      props: props.prop,\n    })\n    const develop = ref(Array.from({ length: props.listLength }).fill(false))\n    return () => (\n      <div class={{ content: develop.value[props.index || 0] }}>\n        {/* <!-- 主体内容 --> */}\n        <div\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          style={\n            data && data.develop\n              ? {\n                  display: '-webkit-box',\n                  overflow: 'hidden',\n                  '-webkit-box-orient': 'vertical',\n                  'word-break': 'break-all',\n                  '-webkit-line-clamp': develop.value[props.index || 0]\n                    ? 99999\n                    : (data && data.line) || 3,\n                }\n              : {}\n          }\n        >\n          {data && typeof data.formatting == 'function'\n            ? data.formatting({\n                row: props.row,\n                index: props.index,\n                props: props.prop,\n              })\n            : props.row[props.prop.prop]}\n        </div>\n\n        {/* <!-- 展开全文或收起 --> */}\n        <div\n          v-show={data && data.develop}\n          class=\"develop\"\n          onClick={(event: Event) => {\n            event.stopPropagation()\n            develop.value[props.index || 0] = !develop.value[props.index || 0]\n          }}\n        >\n          <span\n            style={{\n              position: develop.value[props.index || 0] ? 'absolute' : 'static',\n              display: 'flex',\n              'justify-content': 'center',\n              'align-items': 'center',\n            }}\n          >\n            {develop.value[props.index || 0]\n              ? t(LangKey.PackUp)\n              : t(LangKey.ReadFullText)}\n            <ElIcon>\n              {develop.value[props.index || 0] ? <ArrowUp /> : <ArrowDown />}\n            </ElIcon>\n          </span>\n        </div>\n      </div>\n    )\n  },\n})\n\nText.install = (app: App) => {\n  app.component(Text.name!, Text)\n}\nexport const PTText = Text as SFCWithInstall<typeof Text>\nexport default Text\n"],"names":["Text","defineComponent","powerfulTableComponentProp","props","emit","data","REmit","event","useREmit","develop","ref","_createVNode","evt","_withDirectives","t","LangKey","ElIcon","ArrowUp","ArrowDown","_vShow","app","PTText"],"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,IACA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,OAAA,CAAA,gBAAA;AAAA,EACA,MAAAC,GAAA;AAAA,IACA,MAAAC;AAAA,EACA,GAAA;AACA,UAAAC,IAAAF,EAAA,KAAA,MACA;AAAA,MACA,OAAAG;AAAA,MACA,OAAAC;AAAA,IACA,IAAAC,EAAAJ,GAAA,QAAA;AAAA,MACA,KAAAD,EAAA;AAAA,MACA,OAAAA,EAAA;AAAA,MACA,OAAAA,EAAA;AAAA,IACA,CAAA,GACAM,IAAAC,EAAA,MAAA,KAAA;AAAA,MACA,QAAAP,EAAA;AAAA,IACA,CAAA,EAAA,KAAA,EAAA,CAAA;AACA,WAAA,MAAAQ,EAAA,OAAA;AAAA,MACA,OAAA;AAAA,QACA,SAAAF,EAAA,MAAAN,EAAA,SAAA,CAAA;AAAA,MACA;AAAA,IACA,GAAA,CAAAQ,EAAA,OAAA;AAAA,MACA,SAAA,CAAAC,MAAA;AACA,QAAAA,EAAA,gBAAA,GACAN,EAAA,SAAA;AAAA,UACA,KAAAH,EAAA;AAAA,UACA,OAAAA,EAAA;AAAA,UACA,MAAAA,EAAA,KAAA;AAAA,UACA,KAAAS;AAAA,QACA,CAAA,GACAL,EAAA,SAAAK,CAAA;AAAA,MACA;AAAA,MACA,OAAAP,KAAAA,EAAA,UAAA;AAAA,QACA,SAAA;AAAA,QACA,UAAA;AAAA,QACA,sBAAA;AAAA,QACA,cAAA;AAAA,QACA,sBAAAI,EAAA,MAAAN,EAAA,SAAA,CAAA,IAAA,QAAAE,KAAAA,EAAA,QAAA;AAAA,MACA,IAAA,CAAA;AAAA,IACA,GAAA,CAAAA,KAAA,OAAAA,EAAA,cAAA,aAAAA,EAAA,WAAA;AAAA,MACA,KAAAF,EAAA;AAAA,MACA,OAAAA,EAAA;AAAA,MACA,OAAAA,EAAA;AAAA,IACA,CAAA,IAAAA,EAAA,IAAAA,EAAA,KAAA,IAAA,CAAA,CAAA,GAAAU,EAAAF,EAAA,OAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA,CAAAJ,MAAA;AACA,QAAAA,EAAA,gBAAA,GACAE,EAAA,MAAAN,EAAA,SAAA,CAAA,IAAA,CAAAM,EAAA,MAAAN,EAAA,SAAA,CAAA;AAAA,MACA;AAAA,IACA,GAAA,CAAAQ,EAAA,QAAA;AAAA,MACA,OAAA;AAAA,QACA,UAAAF,EAAA,MAAAN,EAAA,SAAA,CAAA,IAAA,aAAA;AAAA,QACA,SAAA;AAAA,QACA,mBAAA;AAAA,QACA,eAAA;AAAA,MACA;AAAA,IACA,GAAA,CAAAM,EAAA,MAAAN,EAAA,SAAA,CAAA,IAAAW,EAAAC,EAAA,MAAA,IAAAD,EAAAC,EAAA,YAAA,GAAAJ,EAAAK,GAAA,MAAA;AAAA,MACA,SAAA,MAAA,CAAAP,EAAA,MAAAN,EAAA,SAAA,CAAA,IAAAQ,EAAAM,GAAA,MAAA,IAAA,IAAAN,EAAAO,GAAA,MAAA,IAAA,CAAA;AAAA,IACA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAAC,GAAAd,KAAAA,EAAA,OAAA,CAAA,CAAA,CAAA,CAAA;AAAA,EACA;AACA,CAAA;AACAL,EAAA,UAAA,CAAAoB,MAAA;AACA,EAAAA,EAAA,UAAApB,EAAA,MAAAA,CAAA;AACA;AACA,MAAAqB,IAAArB;"}