{"version":3,"file":"index.mjs","sources":["../../../../../../package/formily/preview-text/src/index.ts"],"sourcesContent":["/* eslint-disable indent */\nimport { defineComponent, computed, toRef, Ref, h, withDirectives } from \"vue\";\nimport {\n  createContext,\n  resolveComponent,\n  useContext,\n  composeExport\n} from \"../../__builtins__/shared\";\nimport { Field } from \"@formily/core\";\nimport { observer } from \"@formily/reactive-vue\";\nimport { useField, useFieldSchema } from \"@formily/vue\";\nimport { isArr, isValid } from \"@formily/shared\";\nimport { stylePrefix } from \"../../__builtins__/configs\";\nimport { getPrefixCls } from \"@vue-admin-core/utils/const\";\nimport type { SelectProps } from \"../../select\";\nimport type { CascaderProps } from \"../../cascader\";\nimport type { DatePickerProps } from \"../../date-picker\";\nimport type { TimePickerProps } from \"../../time-picker\";\nimport { Space } from \"../../space\";\nimport { ElTag, dayjs } from \"element-plus\";\nimport numeral from \"numeral\";\nimport \"numeral/locales/chs.js\";\nimport { useGlobalConfig } from \"@vue-admin-core/components/config-provider\";\nimport { isEmpty, isString } from \"lodash-es\";\nimport findTree from \"xe-utils/findTree.js\";\nimport { buildVueDompurifyHTMLDirective } from \"vue-dompurify-html\";\nimport { textToHtml } from \"@vue-admin-core/components/msg-editor/src/utils\";\nnumeral.locale(\"chs\");\n\nconst prefixCls = `${stylePrefix}-preview-text`;\nconst PlaceholderContext = createContext(\"N/A\");\n\nconst domHtml = buildVueDompurifyHTMLDirective({\n  default: {\n    USE_PROFILES: { html: true, mathMl: true }\n  }\n});\n\nexport const usePlaceholder = (value?: Ref<any>) => {\n  const placeholderCtx = useContext(PlaceholderContext);\n  const placeholder = computed(() => {\n    return isValid(value?.value) && value?.value !== \"\"\n      ? value?.value\n      : resolveComponent(placeholderCtx.value) || \"N/A\";\n  });\n  return placeholder;\n};\n\nconst Input = defineComponent({\n  name: \"FPreviewTextInput\",\n  props: [\"value\", \"format\"],\n  setup(props, { attrs, slots }) {\n    const value = toRef(props, \"value\");\n    const formatVal = props.format ? numeral(value.value).format(props.format) : null;\n    const placeholder = usePlaceholder(value);\n    return () => {\n      return h(\n        Space,\n        {\n          class: [prefixCls],\n          style: attrs.style\n        },\n        {\n          default: () =>\n            [\n              slots?.prepend?.(),\n              slots?.prefix?.(),\n              formatVal || placeholder.value,\n              slots?.suffix?.(),\n              slots?.append?.()\n            ].filter((child) => !!child)\n        }\n      );\n    };\n  }\n});\nconst RichText = defineComponent({\n  name: \"FPreviewTextRichText\",\n  props: [\"value\"],\n  setup(props, { attrs }) {\n    const value = toRef(props, \"value\");\n    const placeholder = usePlaceholder(value);\n    return () => {\n      return h(\n        \"div\",\n        {\n          class: [prefixCls, \"w-e-text-container\"],\n          style: attrs.style\n        },\n        {\n          default: () => [\n            withDirectives(h(\"div\", { \"data-slate-editor\": \"\" }), [[domHtml, placeholder.value]])\n          ]\n        }\n      );\n    };\n  }\n});\nconst MsgEditor = defineComponent({\n  name: \"FPreviewTextMsgEditor\",\n  props: [\"value\", \"options\", \"prefix\", \"suffix\"],\n  setup(props, { attrs }) {\n    const fieldRef = useField<Field>();\n    const field = fieldRef.value;\n    const value = toRef(props, \"value\");\n    const placeholder = usePlaceholder(value);\n\n    return () => {\n      let dataSource = field?.dataSource?.length\n        ? field.dataSource\n        : props?.options?.length\n          ? props.options\n          : [];\n      dataSource = dataSource.reduce(\n        (pre: any, next: any) => ({\n          ...pre,\n          [next.value]: { label: next.label, value: next.value }\n        }),\n        {}\n      );\n      return h(\n        \"div\",\n        {\n          class: [prefixCls, `${getPrefixCls(\"msg-editor\")}`],\n          style: attrs.style\n        },\n        {\n          default: () => [\n            withDirectives(h(\"div\", { \"data-slate-editor\": \"\" }), [\n              [\n                domHtml,\n                textToHtml(value.value, dataSource, {\n                  prefix: props.prefix || \"\\\\$\\\\{\",\n                  suffix: props.suffix || \"\\\\}\"\n                }) || placeholder.value\n              ]\n            ])\n          ]\n        }\n      );\n    };\n  }\n});\n\nconst Select = observer(\n  defineComponent<SelectProps>({\n    name: \"FPreviewTextSelect\",\n    setup(_props, { attrs }) {\n      const config = useGlobalConfig();\n      const fieldRef = useField<Field>();\n      const schema = useFieldSchema();\n      const field = fieldRef.value;\n      const props = attrs as unknown as SelectProps;\n      const optionsProps = {\n        label: \"label\",\n        value: \"value\",\n        ...props.props\n      };\n      const valueKey = optionsProps.value;\n      const labelKey = optionsProps.label;\n\n      const placeholder = usePlaceholder();\n      const getSelected = () => {\n        const value = props.value;\n        if (props.multiple) {\n          if (isArr(value)) {\n            return value.map((val) => ({ label: val, value: val }));\n          }\n          if (isString(value)) {\n            return value\n              .split(schema.value[\"x-data\"]?.[\"separator\"] || \",\")\n              .map((val) => ({ label: val, value: val }));\n          }\n          return [];\n        } else {\n          return isValid(value) ? [{ label: value, value }] : [];\n        }\n      };\n\n      const getLabels = () => {\n        const selected = getSelected();\n        if (!selected.length) {\n          return h(\n            ElTag,\n            {},\n            {\n              default: () => placeholder.value\n            }\n          );\n        }\n        const dataSource: any[] = field?.dataSource?.length\n          ? field.dataSource\n          : props?.options?.length\n            ? props.options\n            : [];\n        return selected.map(({ value, label }, key) => {\n          const item = dataSource?.find(\n            (item) => item[valueKey] == value || item[config.value.dictValueKey as string] == value\n          );\n          const text = item?.[labelKey] || item?.[config.value.dictLabelKey as string] || label;\n          return h(\n            ElTag,\n            {\n              key,\n              type: item?.[config.value.elTagTypeKey || \"type\"] || item?.type,\n              effect: \"light\"\n            },\n            {\n              default: () => text || placeholder.value\n            }\n          );\n        });\n      };\n\n      return () => {\n        return h(\n          Space,\n          {\n            class: [prefixCls],\n            style: attrs.style\n          },\n          {\n            default: () => getLabels()\n          }\n        );\n      };\n    }\n  })\n);\n\nconst Cascader = observer(\n  defineComponent<CascaderProps>({\n    name: \"FPreviewTextCascader\",\n    setup(_props, { attrs }) {\n      const fieldRef = useField<Field>();\n      const schema = useFieldSchema();\n      const field = fieldRef.value;\n      const props = attrs as unknown as CascaderProps;\n      const placeholder = usePlaceholder();\n      const valueKey = props.props?.value || \"value\";\n      const labelKey = props.props?.label || \"label\";\n      const childrenKey = props.props?.children || \"children\";\n      const getSelected = () => {\n        if (isString(props.value)) {\n          return props.value\n            .split(schema.value[\"x-data\"]?.[\"separator\"] || \",\")\n            .map((val) => ({ label: val, value: val }));\n        }\n        return isArr(props.value) ? props.value.map((val) => ({ label: val, value: val })) : [];\n      };\n\n      const getLabels = () => {\n        const selected = getSelected();\n        if (!selected?.length) {\n          return placeholder.value;\n        }\n        const dataSource: any[] = field?.dataSource?.length\n          ? field.dataSource\n          : props?.options?.length\n            ? props.options\n            : [];\n        return selected\n          .map(({ label, value }) => {\n            const item = findTree(dataSource, (item) => item?.[valueKey] == value, {\n              children: childrenKey\n            });\n            const text = label;\n            if (item) {\n              return item.item[labelKey];\n            }\n            return text || placeholder.value;\n          })\n          .join(\" / \");\n      };\n\n      return () => {\n        return getLabels();\n      };\n    }\n  })\n);\n\nconst DatePicker = defineComponent<DatePickerProps>({\n  name: \"FPreviewTextDatePicker\",\n  setup(_props, { attrs }) {\n    const props = attrs as unknown as DatePickerProps;\n    const placeholder = usePlaceholder();\n    const config = useGlobalConfig();\n    const format = (attrs.format as string) || config.value.dateTimeFormat;\n    const getLabels = () => {\n      if (isArr(props.value)) {\n        const labels = (props.value as any[]).map(\n          (value: string | Date) => dayjs(value).format(format) || placeholder.value\n        );\n\n        return labels.join(\"~\");\n      } else {\n        return dayjs(props.value).format(format) || placeholder.value;\n      }\n    };\n\n    return () => {\n      return h(\n        \"div\",\n        {\n          class: [prefixCls],\n          style: attrs.style\n        },\n        {\n          default: () => getLabels()\n        }\n      );\n    };\n  }\n});\n\nconst TimePicker = defineComponent<TimePickerProps>({\n  name: \"FPreviewTextTimePicker\",\n  setup(_props, { attrs }) {\n    const props = attrs as unknown as TimePickerProps;\n    const config = useGlobalConfig();\n    const placeholder = usePlaceholder();\n    const format = (attrs.format as string) || config.value.timeFormat;\n    const getLabels = () => {\n      if (isArr(props.value)) {\n        const labels = props.value.map(\n          (value: string | Date) => dayjs(value).format(format) || placeholder.value\n        );\n\n        return labels.join(\"~\");\n      } else {\n        return dayjs(props.value).format(format) || placeholder.value;\n      }\n    };\n\n    return () => {\n      return h(\n        \"div\",\n        {\n          class: [prefixCls],\n          style: attrs.style\n        },\n        {\n          default: () => getLabels()\n        }\n      );\n    };\n  }\n});\n\nconst Text = defineComponent({\n  name: \"FPreviewText\",\n  props: [\"value\", \"format\"],\n  setup(props, { attrs }) {\n    const value = toRef(props, \"value\");\n    const formatVal = props.format ? numeral(value.value).format(props.format) : null;\n    const placeholder = usePlaceholder(value);\n\n    return () => {\n      return h(\n        \"span\",\n        {\n          class: [prefixCls],\n          style: attrs.style\n        },\n        {\n          default: () => formatVal || placeholder.value\n        }\n      );\n    };\n  }\n});\n\nconst TreeSelect = defineComponent({\n  name: \"FPreviewTextTreeSelect\",\n  setup(_props, { attrs }) {\n    const config = useGlobalConfig();\n    const fieldRef = useField<Field>();\n    const schema = useFieldSchema();\n    const field = fieldRef.value;\n    const props = attrs as any;\n    const valueKey = props?.nodeKey || props?.props?.value || \"value\";\n    const labelKey = props?.props?.label || \"label\";\n    const childrenKey = props?.props?.children || \"children\";\n\n    const placeholder = usePlaceholder();\n    const getSelected = () => {\n      const value = props.value;\n      if (props.multiple) {\n        if (isArr(value)) {\n          return value.map((val) => ({ label: val, value: val }));\n        }\n        if (isString(value)) {\n          return value\n            .split(schema.value[\"x-data\"]?.[\"separator\"] || \",\")\n            .map((val) => ({ label: val, value: val }));\n        }\n        return [];\n      } else {\n        return isEmpty(value) ? [] : [{ label: value, value }];\n      }\n    };\n\n    const getLabels = () => {\n      const selected = getSelected();\n      if (!selected.length) {\n        return h(\n          ElTag,\n          {},\n          {\n            default: () => placeholder.value\n          }\n        );\n      }\n      const dataSource: any[] = field?.dataSource?.length\n        ? field.dataSource\n        : props?.data?.length\n          ? props.data\n          : [];\n      return selected.map(({ value, label }, key) => {\n        const item = findTree(dataSource, (item) => item[valueKey] == value, {\n          children: childrenKey\n        });\n        const text = item?.item?.[labelKey] || label || placeholder.value;\n        return h(\n          ElTag,\n          {\n            key,\n            type: item?.item?.[config.value.elTagTypeKey || \"type\"] || item?.item?.type,\n            effect: \"light\"\n          },\n          {\n            default: () => text\n          }\n        );\n      });\n    };\n\n    return () => {\n      return h(\n        Space,\n        {\n          class: [prefixCls],\n          style: attrs.style\n        },\n        {\n          default: () => getLabels()\n        }\n      );\n    };\n  }\n});\n\nexport const PreviewText = composeExport(Text, {\n  Input,\n  Select,\n  CheckboxGroup: Select,\n  RadioGroup: Select,\n  Cascader,\n  DatePicker,\n  TimePicker,\n  TreeSelect,\n  Placeholder: PlaceholderContext.Provider,\n  RichText,\n  MsgEditor,\n  usePlaceholder\n}) as any;\n\nexport default PreviewText;\n"],"names":["item","_a","_b","_c"],"mappings":"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"}