{"version":3,"file":"index.jsx","sourceRoot":"lib/","sources":["widgets/TextWidget/index.tsx"],"names":[],"mappings":";;;AAAA,6CAAsD;AACtD,yCAAuE;AACvE,sDAAgD;AAChD,qCAAmD;AACnD,2CAA0C;AAS1C,IAAM,mBAAmB,GAAG,IAAA,0BAAe,EAAC;IAC1C,KAAK,EAAE;QACL,aAAa,EAAE,MAAM;QACrB,UAAU,EAAE,MAAM;QAClB,KAAK,EAAE,MAAM;QACb,cAAc,EAAE,MAAM;KACvB;IACD,KAAK,EAAL,UAAM,KAAK,EAAE,EAAS;YAAP,KAAK,WAAA;QAClB,IAAM,UAAU,GAAG,UAAC,OAAsC;YACxD,IAAI,IAAA,cAAK,EAAC,OAAO,CAAC;gBAAE,OAAO,OAAO,CAAA;YAClC,IAAI,IAAA,mBAAU,EAAC,OAAO,CAAC,EAAE;gBACvB,IAAM,IAAI,GAAG,qBAAc,CAAC,mBAAmB,EAAE,CAAA;gBACjD,KAAK,IAAI,GAAG,IAAI,OAAO,EAAE;oBACvB,IAAI,GAAG,CAAC,iBAAiB,EAAE,KAAK,IAAI;wBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAA;iBAC1D;gBACD,OAAM;aACP;YACD,OAAO,OAAO,CAAA;QAChB,CAAC,CAAA;QAED,IAAM,WAAW,GAAG,UAAC,KAAU;YAC7B,IAAI,CAAC,KAAK;gBAAE,OAAM;YAClB,KAAK,GAAG,IAAA,kBAAO,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;YACvE,IAAM,OAAO,GAAG,IAAA,cAAK,EAAC,KAAK,CAAC;gBAC1B,CAAC,CAAC,qBAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC;gBAC1C,CAAC,CAAC,KAAK,CAAA;YACT,IAAI,OAAO;gBAAE,OAAO,UAAU,CAAC,OAAO,CAAC,CAAA;YACvC,OAAO,KAAK,CAAA;QACd,CAAC,CAAA;QACD;;;WAGG;QACH,OAAO;;YAAM,OAAA,CACX,EACE;QAAA,CACE,WAAW,CAAC,MAAA,MAAA,KAAK,CAAC,OAAO,qDAAI,0CAAG,CAAC,CAAC,CAAC;oBACnC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;oBACxB,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CACrC;MAAA,GAAG,CACJ,CAAA;SAAA,CAAA;IACH,CAAC;CACF,CAAC,CAAA;AAEW,QAAA,UAAU,GAAG,IAAA,uBAAQ,EAAC,mBAAmB,CAAC,CAAA","sourcesContent":["import { isStr, isPlainObj } from '@designable/shared'\nimport { GlobalRegistry, IDesignerMiniLocales } from '@designable/core'\nimport { observer } from '@formily/reactive-vue'\nimport { defineComponent, isVNode } from 'vue-demi'\nimport { isText } from '../../utils/vnode'\n\nexport interface ITextWidgetProps {\n  componentName?: string\n  sourceName?: string\n  token?: string | IDesignerMiniLocales\n  defaultMessage?: string | IDesignerMiniLocales\n}\n\nconst TextWidgetComponent = defineComponent({\n  props: {\n    componentName: String,\n    sourceName: String,\n    token: String,\n    defaultMessage: String,\n  },\n  setup(props, { slots }) {\n    const takeLocale = (message: string | IDesignerMiniLocales) => {\n      if (isStr(message)) return message\n      if (isPlainObj(message)) {\n        const lang = GlobalRegistry.getDesignerLanguage()\n        for (let key in message) {\n          if (key.toLocaleLowerCase() === lang) return message[key]\n        }\n        return\n      }\n      return message\n    }\n\n    const takeMessage = (token: any) => {\n      if (!token) return\n      token = isVNode(token) ? isText(token) ? token.children : token : token\n      const message = isStr(token)\n        ? GlobalRegistry.getDesignerMessage(token)\n        : token\n      if (message) return takeLocale(message)\n      return token\n    }\n    /**\n     * 子节点为TextNode的vnode\n     * 子节点为i18n对象\n     */\n    return () => (\n      <>\n        {\n          takeMessage(slots.default?.()?.[0]) ||\n          takeMessage(props.token) ||\n          takeMessage(props.defaultMessage)}\n      </>\n    )\n  },\n})\n\nexport const TextWidget = observer(TextWidgetComponent)\n\n"]}