{"version":3,"file":"index.mjs","sources":["../../../../../packages/formily/preview-text/index.ts"],"sourcesContent":["import { computed, defineComponent, h, toRef } from 'vue'\nimport { Field } from '@formily/core'\nimport { observer } from '@formily/reactive-vue'\nimport { useField } from '@formily/vue'\nimport { isArr, isUndef, isValid } from '@formily/shared'\nimport { ElSpace, ElTag, ElText, formatter, useLocale } from 'element-plus'\nimport { isDef } from '@element-plus/utils'\nimport { getDefaultFormat } from '../date-picker/util'\nimport {\n  composeExport,\n  createContext,\n  resolveComponent,\n  useContext,\n} from '../__builtins__/shared'\nimport { stylePrefix } from '../__builtins__/configs'\n\nimport type { SelectProps } from '../select'\nimport type { CascaderProps } from '../cascader'\nimport type { DatePickerProps } from '../date-picker/util'\nimport type { TimePickerProps } from '../time-picker'\nimport type { Component, Ref } from 'vue'\n\nconst prefixCls = `${stylePrefix}-preview-text`\nconst PlaceholderContext = createContext('N/A')\nconst defaultSeparator = '; '\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: {\n    value: {\n      type: null,\n    },\n  },\n  setup(props, { attrs, slots }) {\n    const value = toRef(props, 'value')\n    const placeholder = usePlaceholder(value)\n    return () => {\n      return h(\n        ElSpace,\n        {\n          class: [prefixCls, `${prefixCls}__input`],\n          style: { ...(attrs.style ?? {}) },\n        },\n        {\n          default: () => [\n            slots?.prepend?.(),\n            slots?.prefix?.(),\n            placeholder.value,\n            slots?.suffix?.(),\n            slots?.append?.(),\n          ],\n        }\n      )\n    }\n  },\n})\n\nconst Select = observer(\n  defineComponent<SelectProps & { type: string; separator: string }>({\n    name: 'FPreviewTextSelect',\n    setup(_props, { attrs }) {\n      const fieldRef = useField<Field>()\n      const field = fieldRef.value\n      const props = attrs as unknown as SelectProps\n      const isTag = attrs.displayType !== 'text' // 渲染类型 tag|text\n      const separator = attrs.separator ?? defaultSeparator // text分隔符\n      const dataSource: any[] = field?.dataSource?.length\n        ? field.dataSource\n        : props?.options?.length\n        ? props.options\n        : []\n      const placeholder = usePlaceholder()\n      const getSelected = () => {\n        const value = props.value\n        if (props.multiple) {\n          return isArr(value)\n            ? value.map((val) => ({ label: val, value: val }))\n            : []\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            (isTag ? ElTag : ElText) as Component,\n            isTag\n              ? {\n                  type: 'info',\n                  effect: 'light',\n                }\n              : {},\n            {\n              default: () => placeholder.value,\n            }\n          )\n        }\n        return isTag\n          ? selected.map(({ value, label }, key) => {\n              const text =\n                dataSource?.find((item) => item.value == value)?.label || label\n              return h(\n                ElTag,\n                {\n                  key,\n                  type: 'info',\n                  effect: 'light',\n                },\n                {\n                  default: () => text || placeholder.value,\n                }\n              )\n            })\n          : h(\n              ElText,\n              {},\n              {\n                default: () =>\n                  selected\n                    .map(\n                      ({ value, label }) =>\n                        dataSource?.find((item) => item.value == value)\n                          ?.label ||\n                        label ||\n                        placeholder.value\n                    )\n                    .filter((_) => _)\n                    .join(separator as string),\n              }\n            )\n      }\n\n      return () => {\n        return h(\n          ElSpace,\n          {\n            class: [prefixCls, `${prefixCls}__select`],\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 field = fieldRef.value\n      const props = attrs as unknown as CascaderProps\n      const isTag = attrs.displayType !== 'text' // 渲染类型 tag|text\n      const separator = attrs.separator ?? defaultSeparator // text分隔符\n      const dataSource: any[] = field?.dataSource?.length\n        ? field.dataSource\n        : props?.options?.length\n        ? props.options\n        : []\n      const placeholder = usePlaceholder()\n      const valueKey = props.props?.value || 'value'\n      const labelKey = props.props?.label || 'label'\n      const getSelected = () => {\n        // return isArr(props.value) ? props.value : []\n        return isArr(props.value)\n          ? props.value\n          : isUndef(props.value)\n          ? []\n          : [props.value]\n      }\n\n      const findLabel = (value: any, dataSource: any[]): any => {\n        for (let i = 0; i < dataSource?.length; i++) {\n          const item = dataSource[i]\n          if (item?.[valueKey] === value) {\n            return item?.[labelKey]\n          } else {\n            const childLabel = findLabel(value, item?.children)\n            if (childLabel) return childLabel\n          }\n        }\n      }\n\n      const getLabels = () => {\n        const selected = getSelected()\n        if (!selected?.length) {\n          return h(\n            (isTag ? ElTag : ElText) as Component,\n            isTag\n              ? {\n                  type: 'info',\n                  effect: 'light',\n                }\n              : {},\n            {\n              default: () => placeholder.value,\n            }\n          )\n        }\n        return isTag\n          ? selected.map((value, key) => {\n              const text = findLabel(value, dataSource)\n              return h(\n                ElTag,\n                {\n                  key,\n                  type: 'info',\n                  effect: 'light',\n                },\n                {\n                  default: () => text || placeholder.value,\n                }\n              )\n            })\n          : h(\n              ElText,\n              {},\n              {\n                default: () =>\n                  selected\n                    .map(\n                      (value) =>\n                        findLabel(value, dataSource) || placeholder.value\n                    )\n                    .filter((_) => _)\n                    .join(separator as string),\n              }\n            )\n      }\n\n      return () => {\n        return h(\n          ElSpace,\n          {\n            class: [prefixCls, `${prefixCls}__cascader`],\n            style: { ...(attrs.style ?? {}) },\n          },\n          {\n            default: () => getLabels(),\n          }\n        )\n      }\n    },\n  })\n)\n\nconst DatePicker = defineComponent<\n  DatePickerProps & { value: DatePickerProps['modelValue'] }\n>({\n  name: 'FPreviewTextDatePicker',\n  setup(_props, { attrs }) {\n    const { lang } = useLocale()\n    const placeholder = usePlaceholder()\n    const format = getDefaultFormat(attrs as DatePickerProps)\n\n    const getLabels = () => {\n      if (isArr(attrs.value)) {\n        const labels = attrs.value.map(\n          (value: string | Date) =>\n            formatter(value, format as string, lang.value) || placeholder.value\n        )\n        return labels.join('~')\n      } else {\n        return isDef(attrs.value)\n          ? formatter(\n              attrs.value as string | Date,\n              format as string,\n              lang.value\n            )\n          : placeholder.value\n      }\n    }\n\n    return () => {\n      return h(\n        'div',\n        {\n          class: [prefixCls, `${prefixCls}__date-picker`],\n          style: attrs.style,\n        },\n        {\n          default: () => getLabels(),\n        }\n      )\n    }\n  },\n})\n\nconst TimePicker = defineComponent<\n  TimePickerProps & { value: TimePickerProps['modelValue'] }\n>({\n  name: 'FPreviewTextTimePicker',\n  setup(_props, { attrs }) {\n    const { lang } = useLocale()\n    const placeholder = usePlaceholder()\n    const format = attrs.format || 'HH:mm:ss'\n\n    const getLabels = () => {\n      if (isArr(attrs.value)) {\n        const labels = attrs.value.map(\n          (value: string | Date) =>\n            formatter(value, format as string, lang.value) || placeholder.value\n        )\n        return labels.join('~')\n      } else {\n        return isDef(attrs.value)\n          ? formatter(\n              attrs.value as string | Date,\n              format as string,\n              lang.value\n            )\n          : placeholder.value\n      }\n    }\n\n    return () => {\n      return h(\n        'div',\n        {\n          class: [prefixCls, `${prefixCls}__time-picker`],\n          style: attrs.style,\n        },\n        {\n          default: () => getLabels(),\n        }\n      )\n    }\n  },\n})\n\nconst Text = defineComponent<any>({\n  name: 'FPreviewText',\n  setup(_props, { attrs }) {\n    const placeholder = usePlaceholder()\n\n    return () => {\n      return h(\n        'div',\n        {\n          class: [prefixCls, `${prefixCls}__text`],\n          style: attrs.style,\n        },\n        {\n          default: () => placeholder.value,\n        }\n      )\n    }\n  },\n})\n\nconst TextSwitch = defineComponent({\n  name: 'FPreviewTextSwitch',\n  setup(props, { attrs }) {\n    const value = toRef(attrs, 'value')\n    const activeText = attrs.activeText ?? attrs['active-text']\n    const inactiveText = attrs.inactiveText ?? attrs['inactive-text']\n    const activeValue = attrs.activeValue ?? attrs['active-value']\n    const inactiveValue = attrs.inactiveValue ?? attrs['inactive-value']\n\n    return () => {\n      const placeholder = usePlaceholder(value)\n      const realValue = value.value\n\n      const text =\n        isUndef(activeValue) && isUndef(inactiveValue)\n          ? (realValue ? activeText : inactiveText) ?? placeholder.value\n          : realValue === activeValue\n          ? activeText\n          : realValue === inactiveValue\n          ? inactiveText\n          : placeholder.value\n\n      return h(\n        ElSpace,\n        {\n          class: [prefixCls, `${prefixCls}__switch`],\n          style: { ...(attrs.style ?? {}) },\n        },\n        {\n          default: () => String(text),\n        }\n      )\n    }\n  },\n})\n\nexport const PreviewText = composeExport(Text, {\n  Input,\n  Select,\n  Cascader,\n  DatePicker,\n  TimePicker,\n  Placeholder: PlaceholderContext.Provider,\n  usePlaceholder,\n  TextSwitch,\n})\n\nexport default PreviewText\n"],"names":["_a","dataSource","_b"],"mappings":"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"}