qidian-vue-ui 1.1.23 → 1.1.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,12 @@
1
1
  import type { QdAvatarProps } from './types';
2
- declare var __VLS_6: import("vue").Slot<any> | undefined, __VLS_7: any;
2
+ declare var __VLS_5: {}, __VLS_12: string, __VLS_13: any;
3
3
  type __VLS_Slots = {} & {
4
- [K in NonNullable<typeof __VLS_6>]?: (props: typeof __VLS_7) => any;
4
+ [K in NonNullable<typeof __VLS_12>]?: (props: typeof __VLS_13) => any;
5
+ } & {
6
+ icon?: (props: typeof __VLS_5) => any;
5
7
  };
6
8
  declare const __VLS_component: import("vue").DefineComponent<QdAvatarProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<QdAvatarProps> & Readonly<{}>, {
7
9
  hideOnLoadFailed: boolean;
8
- icon: import("tdesign-vue-next").TNode;
9
10
  mode: "ossId" | "url";
10
11
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
12
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
@@ -1,7 +1,7 @@
1
1
  import _sfc_main from "./index.vue2.mjs";
2
2
  /* empty css */
3
3
  import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
4
- const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-26692975"]]);
4
+ const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4f36ffc5"]]);
5
5
  export {
6
6
  index as default
7
7
  };
@@ -1,6 +1,7 @@
1
- import { defineComponent, mergeDefaults, inject, computed, ref, watch, resolveDirective, createElementBlock, openBlock, withDirectives, createCommentVNode, createBlock, unref, mergeProps, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps, normalizeClass, toDisplayString } from "vue";
1
+ import { defineComponent, mergeDefaults, inject, computed, ref, watch, resolveDirective, createElementBlock, openBlock, withDirectives, createCommentVNode, createBlock, unref, mergeProps, createSlots, withCtx, renderSlot, createVNode, renderList, normalizeProps, guardReactiveProps, normalizeClass, toDisplayString } from "vue";
2
2
  import { Avatar } from "tdesign-vue-next";
3
- import { isEmpty, validator, abortWrapper } from "qidian-shared";
3
+ import { UserIcon } from "tdesign-icons-vue-next";
4
+ import { isEmpty, validator, abortWrapper, filterSlots } from "qidian-shared";
4
5
  import { qdAvatarImageProps, qdAvatarProps } from "./props.mjs";
5
6
  import { PROVIDE_AVATAR } from "../config-provider/config.mjs";
6
7
  import "../../hooks/useAgentChat/index.mjs";
@@ -93,8 +94,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
93
94
  return openBlock(), createElementBlock("div", _hoisted_1, [
94
95
  withDirectives((openBlock(), createBlock(unref(Avatar), mergeProps({ class: __props.avatarClassName }, reProps.value.avatarOptions, {
95
96
  image: typeof reImage.value === "number" ? reImage.value + "" : reImage.value
96
- }), createSlots({ _: 2 }, [
97
- renderList(_ctx.$slots, (name) => {
97
+ }), createSlots({
98
+ icon: withCtx(() => [
99
+ renderSlot(_ctx.$slots, "icon", {}, () => [
100
+ createVNode(unref(UserIcon))
101
+ ], true)
102
+ ]),
103
+ _: 2
104
+ }, [
105
+ renderList(unref(filterSlots)(_ctx.$slots, ["icon"]), (name) => {
98
106
  return {
99
107
  name,
100
108
  fn: withCtx((slotProps) => [
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue2.mjs","sources":["../../../src/components/avatar/index.vue"],"sourcesContent":["<template>\n <div class=\"qd-avatar\">\n <t-avatar\n v-loading=\"{ loading, size: 'small' }\"\n :class=\"avatarClassName\"\n v-bind=\"reProps.avatarOptions\"\n :image=\"typeof reImage === 'number' ? reImage + '' : reImage\"\n >\n <template v-for=\"name in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </t-avatar>\n\n <span v-if=\"reProps.name\" :class=\"`qd-avatar__name ${nameClassName}`\">{{ reProps.name }}</span>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import type { QdAvatarProps } from './types'\n import type { AbortWrapperPromise } from 'qidian-shared'\n import { Avatar as TAvatar } from 'tdesign-vue-next'\n import { abortWrapper, isEmpty, validator } from 'qidian-shared'\n import { qdAvatarImageProps, qdAvatarProps } from './props'\n import { ref, computed, watch, inject } from 'vue'\n import { PROVIDE_AVATAR } from '../config-provider/config'\n import { useUserAvatar } from '../../hooks'\n import { merge } from 'lodash-es'\n\n defineOptions({\n name: 'QdAvatar'\n })\n\n const props = withDefaults(defineProps<QdAvatarProps>(), qdAvatarProps)\n\n const globalAvatarProps = inject(\n PROVIDE_AVATAR,\n computed(() => undefined)\n )\n\n const { loading, getAvatar } = useUserAvatar()\n let serviceAbort: AbortWrapperPromise<Awaited<ReturnType<typeof getAvatar>>> | undefined\n\n const reImage = ref<string | number | undefined>()\n const reProps = computed(() => {\n const {\n name,\n mode,\n avatarClassName,\n nameClassName,\n image,\n service,\n imageProps,\n ...avatarOptions\n } = props\n const reAlt = avatarOptions.alt || name\n const serviceOptions = { service: service || globalAvatarProps.value?.service }\n const reImageProps = merge(imageProps, qdAvatarImageProps)\n\n return {\n avatarOptions: {\n ...avatarOptions,\n imageProps: reImageProps,\n alt: reAlt\n },\n serviceOptions,\n name,\n mode,\n avatarClassName,\n nameClassName,\n image\n }\n })\n\n watch(\n () => reProps.value.image,\n async (newVal, oldVal) => {\n if (newVal === oldVal) return\n\n serviceAbort?.abort?.('abort')\n const { mode, serviceOptions } = reProps.value\n if (mode === 'ossId') {\n const { service } = serviceOptions\n if (!service || isEmpty(newVal) || validator(newVal, 'url')) {\n reImage.value = newVal\n return\n }\n\n serviceAbort = abortWrapper(getAvatar(newVal))\n const res = await serviceAbort\n reImage.value = res\n return\n }\n\n reImage.value = newVal\n },\n { immediate: true }\n )\n</script>\n\n<style lang=\"less\" scoped>\n .qd-avatar {\n display: inline-flex;\n align-items: center;\n font: var(--td-font-body-medium);\n color: var(--td-text-color-primary);\n\n &__name {\n margin-left: var(--td-comp-margin-s);\n }\n }\n</style>\n"],"names":["_openBlock","_createElementBlock","_createBlock","_unref","TAvatar","_mergeProps","$slots","_withCtx","_renderSlot","_normalizeProps","_guardReactiveProps","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCE,UAAM,QAAQ;AAEd,UAAM,oBAAoB;AAAA,MACxB;AAAA,MACA,SAAS,MAAM,MAAS;AAAA,IAAA;AAG1B,UAAM,EAAE,SAAS,UAAA,IAAc,cAAA;AAC/B,QAAI;AAEJ,UAAM,UAAU,IAAA;AAChB,UAAM,UAAU,SAAS,MAAM;AAC7B,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,GAAG;AAAA,MAAA,IACD;AACJ,YAAM,QAAQ,cAAc,OAAO;AACnC,YAAM,iBAAiB,EAAE,SAAS,WAAW,kBAAkB,OAAO,QAAA;AACtE,YAAM,eAAe,MAAM,YAAY,kBAAkB;AAEzD,aAAO;AAAA,QACL,eAAe;AAAA,UACb,GAAG;AAAA,UACH,YAAY;AAAA,UACZ,KAAK;AAAA,QAAA;AAAA,QAEP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IAEJ,CAAC;AAED;AAAA,MACE,MAAM,QAAQ,MAAM;AAAA,MACpB,OAAO,QAAQ,WAAW;AACxB,YAAI,WAAW,OAAQ;AAEvB,sBAAc,QAAQ,OAAO;AAC7B,cAAM,EAAE,MAAM,eAAA,IAAmB,QAAQ;AACzC,YAAI,SAAS,SAAS;AACpB,gBAAM,EAAE,YAAY;AACpB,cAAI,CAAC,WAAW,QAAQ,MAAM,KAAK,UAAU,QAAQ,KAAK,GAAG;AAC3D,oBAAQ,QAAQ;AAChB;AAAA,UACF;AAEA,yBAAe,aAAa,UAAU,MAAM,CAAC;AAC7C,gBAAM,MAAM,MAAM;AAClB,kBAAQ,QAAQ;AAChB;AAAA,QACF;AAEA,gBAAQ,QAAQ;AAAA,MAClB;AAAA,MACA,EAAE,WAAW,KAAA;AAAA,IAAK;;;AA9FpB,aAAAA,UAAA,GAAAC,mBAaM,OAbN,YAaM;AAAA,qCAZJC,YASWC,MAAAC,MAAA,GATXC,WASW,EAPR,OAAO,QAAA,gBAAA,GACA,QAAA,MAAQ,eAAa;AAAA,UAC5B,OAAK,OAAS,QAAA,UAAO,WAAgB,QAAA,aAAe,QAAA;AAAA,QAAA;UAE5BC,WAAAA,KAAAA,SAAR,SAAI;;;cACnB,IAAAC,QAAA,CADwC,cAAS;AAAA,gBACjDC,WAAwC,KAAA,QAA3B,MAAIC,eAAAC,mBAAU,SAAS,CAAA,GAAA,QAAA,IAAA;AAAA,cAAA;;;;0CANzBP,MAAA,OAAA,GAAO,MAAA,QAAA,CAAA;AAAA,QAAA;QAUV,QAAA,MAAQ,qBAApBF,mBAA+F,QAAA;AAAA;UAApE,yCAA0B,QAAA,aAAa,EAAA;AAAA,QAAA,GAAOU,gBAAA,QAAA,MAAQ,IAAI,GAAA,CAAA;;;;;"}
1
+ {"version":3,"file":"index.vue2.mjs","sources":["../../../src/components/avatar/index.vue"],"sourcesContent":["<template>\n <div class=\"qd-avatar\">\n <t-avatar\n v-loading=\"{ loading, size: 'small' }\"\n :class=\"avatarClassName\"\n v-bind=\"reProps.avatarOptions\"\n :image=\"typeof reImage === 'number' ? reImage + '' : reImage\"\n >\n <template #icon>\n <slot name=\"icon\"><user-icon /></slot>\n </template>\n\n <template v-for=\"name in filterSlots($slots, ['icon'])\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </t-avatar>\n\n <span v-if=\"reProps.name\" :class=\"`qd-avatar__name ${nameClassName}`\">{{ reProps.name }}</span>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import type { QdAvatarProps } from './types'\n import type { AbortWrapperPromise } from 'qidian-shared'\n import { Avatar as TAvatar } from 'tdesign-vue-next'\n import { UserIcon } from 'tdesign-icons-vue-next'\n import { abortWrapper, filterSlots, isEmpty, validator } from 'qidian-shared'\n import { qdAvatarImageProps, qdAvatarProps } from './props'\n import { ref, computed, watch, inject } from 'vue'\n import { PROVIDE_AVATAR } from '../config-provider/config'\n import { useUserAvatar } from '../../hooks'\n import { merge } from 'lodash-es'\n\n defineOptions({\n name: 'QdAvatar'\n })\n\n const props = withDefaults(defineProps<QdAvatarProps>(), qdAvatarProps)\n\n const globalAvatarProps = inject(\n PROVIDE_AVATAR,\n computed(() => undefined)\n )\n\n const { loading, getAvatar } = useUserAvatar()\n let serviceAbort: AbortWrapperPromise<Awaited<ReturnType<typeof getAvatar>>> | undefined\n\n const reImage = ref<string | number | undefined>()\n const reProps = computed(() => {\n const {\n name,\n mode,\n avatarClassName,\n nameClassName,\n image,\n service,\n imageProps,\n ...avatarOptions\n } = props\n const reAlt = avatarOptions.alt || name\n const serviceOptions = { service: service || globalAvatarProps.value?.service }\n const reImageProps = merge(imageProps, qdAvatarImageProps)\n\n return {\n avatarOptions: {\n ...avatarOptions,\n imageProps: reImageProps,\n alt: reAlt\n },\n serviceOptions,\n name,\n mode,\n avatarClassName,\n nameClassName,\n image\n }\n })\n\n watch(\n () => reProps.value.image,\n async (newVal, oldVal) => {\n if (newVal === oldVal) return\n\n serviceAbort?.abort?.('abort')\n const { mode, serviceOptions } = reProps.value\n if (mode === 'ossId') {\n const { service } = serviceOptions\n if (!service || isEmpty(newVal) || validator(newVal, 'url')) {\n reImage.value = newVal\n return\n }\n\n serviceAbort = abortWrapper(getAvatar(newVal))\n const res = await serviceAbort\n reImage.value = res\n return\n }\n\n reImage.value = newVal\n },\n { immediate: true }\n )\n</script>\n\n<style lang=\"less\" scoped>\n .qd-avatar {\n display: inline-flex;\n align-items: center;\n font: var(--td-font-body-medium);\n color: var(--td-text-color-primary);\n\n &__name {\n margin-left: var(--td-comp-margin-s);\n }\n }\n</style>\n"],"names":["_openBlock","_createElementBlock","_createBlock","_unref","TAvatar","_mergeProps","_renderSlot","_createVNode","$slots","_withCtx","_normalizeProps","_guardReactiveProps","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCE,UAAM,QAAQ;AAEd,UAAM,oBAAoB;AAAA,MACxB;AAAA,MACA,SAAS,MAAM,MAAS;AAAA,IAAA;AAG1B,UAAM,EAAE,SAAS,UAAA,IAAc,cAAA;AAC/B,QAAI;AAEJ,UAAM,UAAU,IAAA;AAChB,UAAM,UAAU,SAAS,MAAM;AAC7B,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,GAAG;AAAA,MAAA,IACD;AACJ,YAAM,QAAQ,cAAc,OAAO;AACnC,YAAM,iBAAiB,EAAE,SAAS,WAAW,kBAAkB,OAAO,QAAA;AACtE,YAAM,eAAe,MAAM,YAAY,kBAAkB;AAEzD,aAAO;AAAA,QACL,eAAe;AAAA,UACb,GAAG;AAAA,UACH,YAAY;AAAA,UACZ,KAAK;AAAA,QAAA;AAAA,QAEP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IAEJ,CAAC;AAED;AAAA,MACE,MAAM,QAAQ,MAAM;AAAA,MACpB,OAAO,QAAQ,WAAW;AACxB,YAAI,WAAW,OAAQ;AAEvB,sBAAc,QAAQ,OAAO;AAC7B,cAAM,EAAE,MAAM,eAAA,IAAmB,QAAQ;AACzC,YAAI,SAAS,SAAS;AACpB,gBAAM,EAAE,YAAY;AACpB,cAAI,CAAC,WAAW,QAAQ,MAAM,KAAK,UAAU,QAAQ,KAAK,GAAG;AAC3D,oBAAQ,QAAQ;AAChB;AAAA,UACF;AAEA,yBAAe,aAAa,UAAU,MAAM,CAAC;AAC7C,gBAAM,MAAM,MAAM;AAClB,kBAAQ,QAAQ;AAChB;AAAA,QACF;AAEA,gBAAQ,QAAQ;AAAA,MAClB;AAAA,MACA,EAAE,WAAW,KAAA;AAAA,IAAK;;;AAnGpB,aAAAA,UAAA,GAAAC,mBAiBM,OAjBN,YAiBM;AAAA,qCAhBJC,YAaWC,MAAAC,MAAA,GAbXC,WAaW,EAXR,OAAO,QAAA,gBAAA,GACA,QAAA,MAAQ,eAAa;AAAA,UAC5B,OAAK,OAAS,QAAA,UAAO,WAAgB,QAAA,aAAe,QAAA;AAAA,QAAA;UAE1C,cACT,MAAsC;AAAA,YAAtCC,WAAsC,yBAAtC,MAAsC;AAAA,cAApBC,YAAaJ,MAAA,QAAA,CAAA;AAAA,YAAA;;;;qBAGRA,MAAA,WAAA,EAAYK,KAAAA,QAAM,CAAA,MAAA,CAAA,GAAA,CAA1B,SAAI;;;cACnB,IAAAC,QAAA,CAD+D,cAAS;AAAA,gBACxEH,WAAwC,KAAA,QAA3B,MAAII,eAAAC,mBAAU,SAAS,CAAA,GAAA,QAAA,IAAA;AAAA,cAAA;;;;0CAVzBR,MAAA,OAAA,GAAO,MAAA,QAAA,CAAA;AAAA,QAAA;QAcV,QAAA,MAAQ,qBAApBF,mBAA+F,QAAA;AAAA;UAApE,yCAA0B,QAAA,aAAa,EAAA;AAAA,QAAA,GAAOW,gBAAA,QAAA,MAAQ,IAAI,GAAA,CAAA;;;;;"}
@@ -1,6 +1,5 @@
1
1
  export declare const qdAvatarProps: {
2
2
  readonly hideOnLoadFailed: true;
3
- readonly icon: () => () => any;
4
3
  readonly mode: "ossId";
5
4
  };
6
5
  export declare const qdAvatarImageProps: {
@@ -1,8 +1,5 @@
1
- import { createVNode } from "vue";
2
- import { UserIcon } from "tdesign-icons-vue-next";
3
1
  const qdAvatarProps = {
4
2
  hideOnLoadFailed: true,
5
- icon: () => () => createVNode(UserIcon, null, null),
6
3
  mode: "ossId"
7
4
  };
8
5
  const qdAvatarImageProps = {
@@ -1 +1 @@
1
- {"version":3,"file":"props.mjs","sources":["../../../src/components/avatar/props.tsx"],"sourcesContent":["import { UserIcon } from 'tdesign-icons-vue-next'\n\nexport const qdAvatarProps = {\n hideOnLoadFailed: true,\n icon: () => () => <UserIcon />,\n mode: 'ossId'\n} as const\n\nexport const qdAvatarImageProps = {\n lazy: true\n} as const"],"names":["qdAvatarProps","hideOnLoadFailed","icon","_createVNode","UserIcon","mode","qdAvatarImageProps","lazy"],"mappings":";;AAEO,MAAMA,gBAAgB;AAAA,EAC3BC,kBAAkB;AAAA,EAClBC,MAAMA,MAAM,MAAAC,YAAAC,UAAA,MAAA,IAAA;AAAA,EACZC,MAAM;AACR;AAEO,MAAMC,qBAAqB;AAAA,EAChCC,MAAM;AACR;"}
1
+ {"version":3,"file":"props.mjs","sources":["../../../src/components/avatar/props.tsx"],"sourcesContent":["export const qdAvatarProps = {\n hideOnLoadFailed: true,\n mode: 'ossId'\n} as const\n\nexport const qdAvatarImageProps = {\n lazy: true\n} as const\n"],"names":["qdAvatarProps","hideOnLoadFailed","mode","qdAvatarImageProps","lazy"],"mappings":"AAAO,MAAMA,gBAAgB;AAAA,EAC3BC,kBAAkB;AAAA,EAClBC,MAAM;AACR;AAEO,MAAMC,qBAAqB;AAAA,EAChCC,MAAM;AACR;"}
@@ -3,7 +3,13 @@ declare const _default: <OR = unknown, OP extends string | number | (string | nu
3
3
  props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, never> & QdImageProps<OR, OP, TOP> & Partial<{}>> & import("vue").PublicProps;
4
4
  expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
5
5
  attrs: any;
6
- slots: {};
6
+ slots: {
7
+ [x: string]: ((props: any) => any) | undefined;
8
+ } & {
9
+ loading?: (props: {}) => any;
10
+ } & {
11
+ error?: (props: {}) => any;
12
+ };
7
13
  emit: {};
8
14
  }>) => import("vue").VNode & {
9
15
  __ctx?: Awaited<typeof __VLS_setup>;
@@ -1,7 +1,8 @@
1
- import { defineComponent, mergeDefaults, inject, computed, ref, watch, resolveDirective, withDirectives, createBlock, openBlock, unref, mergeProps, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps } from "vue";
1
+ import { defineComponent, mergeDefaults, inject, computed, ref, watch, resolveDirective, withDirectives, createBlock, openBlock, unref, mergeProps, createSlots, withCtx, renderSlot, createVNode, renderList, normalizeProps, guardReactiveProps } from "vue";
2
2
  import { qdImageProps } from "./props.mjs";
3
3
  import { Image } from "tdesign-vue-next";
4
- import { isEmpty, validator, suspectedWrapperPromise, to } from "qidian-shared";
4
+ import { ImageErrorIcon, LoadingIcon } from "tdesign-icons-vue-next";
5
+ import { isEmpty, validator, suspectedWrapperPromise, to, filterSlots } from "qidian-shared";
5
6
  import { PROVIDE_UPLOAD } from "../config-provider/config.mjs";
6
7
  import merge from "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/merge.mjs";
7
8
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -88,7 +89,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
88
89
  res = serviceRes;
89
90
  }
90
91
  reSrc.value = res[0]?.url;
92
+ return;
91
93
  }
94
+ reSrc.value = newVal;
92
95
  },
93
96
  { immediate: true }
94
97
  );
@@ -96,8 +99,20 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
96
99
  const _directive_loading = resolveDirective("loading");
97
100
  return withDirectives((openBlock(), createBlock(unref(Image), mergeProps(reProps.value.imageOptions, {
98
101
  src: typeof reSrc.value === "number" ? reSrc.value + "" : reSrc.value
99
- }), createSlots({ _: 2 }, [
100
- renderList(_ctx.$slots, (name) => {
102
+ }), createSlots({
103
+ loading: withCtx(() => [
104
+ renderSlot(_ctx.$slots, "loading", {}, () => [
105
+ createVNode(unref(LoadingIcon))
106
+ ])
107
+ ]),
108
+ error: withCtx(() => [
109
+ renderSlot(_ctx.$slots, "error", {}, () => [
110
+ createVNode(unref(ImageErrorIcon))
111
+ ])
112
+ ]),
113
+ _: 2
114
+ }, [
115
+ renderList(unref(filterSlots)(_ctx.$slots, ["loading", "error"]), (name) => {
101
116
  return {
102
117
  name,
103
118
  fn: withCtx((slotProps) => [
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue.mjs","sources":["../../../src/components/image/index.vue"],"sourcesContent":["<template>\n <t-image\n v-loading=\"{ loading: serviceLoad, size: 'small' }\"\n v-bind=\"reProps.imageOptions\"\n :src=\"typeof reSrc === 'number' ? reSrc + '' : reSrc\"\n >\n <template v-for=\"name in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </t-image>\n</template>\n\n<script\n setup\n lang=\"ts\"\n generic=\"\n OR = unknown,\n OP extends string | number | (string | number)[] = string | number | (string | number)[],\n TOP = OP\n \"\n>\n import type { QdImageProps } from './types'\n import type { QdUploadListOssByIdsResult } from '../upload/types'\n import { qdImageProps } from './props'\n import { Image as TImage } from 'tdesign-vue-next'\n import { computed, inject, ref, watch } from 'vue'\n import { isEmpty, suspectedWrapperPromise, to, validator } from 'qidian-shared'\n import { PROVIDE_UPLOAD } from '../config-provider/config'\n import { merge } from 'lodash-es'\n\n defineOptions({\n name: 'QdImage'\n })\n\n type Props = QdImageProps<OR, OP, TOP>\n\n const props = withDefaults(defineProps<Props>(), qdImageProps)\n\n const globalUploadProps = inject(\n PROVIDE_UPLOAD,\n computed(() => undefined)\n )\n\n const reSrc = ref<string | number | File | undefined>()\n const reProps = computed(() => {\n const { src, mode, listOssByIds, ...imageOptions } = props\n const reListOssByIds = merge(listOssByIds, globalUploadProps.value?.listOssByIds)\n\n return {\n src,\n mode,\n listOssByIds: reListOssByIds,\n imageOptions\n }\n })\n\n const serviceLoad = ref(false)\n\n watch(\n () => reProps.value.src,\n async (newVal, oldVal) => {\n if (newVal === oldVal) return\n\n const { mode, listOssByIds } = reProps.value\n if (mode === 'ossId') {\n if (\n !listOssByIds ||\n !listOssByIds.service ||\n isEmpty(newVal) ||\n newVal instanceof File ||\n validator(newVal, 'url')\n ) {\n reSrc.value = newVal\n return\n }\n\n const { service, transformParams, transformRes } = listOssByIds\n\n serviceLoad.value = true\n const currentParams = newVal\n let tParams: TOP | undefined\n\n if (transformParams) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformParams(currentParams as OP))\n if (trErr) {\n serviceLoad.value = false\n throw trErr\n }\n\n tParams = trRes\n }\n\n const [serviceErr, serviceRes] = await to(\n service(tParams || (currentParams as unknown as TOP))\n )\n if (serviceErr) {\n serviceLoad.value = false\n throw serviceErr\n }\n\n let res: QdUploadListOssByIdsResult | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n serviceLoad.value = false\n if (trErr) throw trErr\n\n res = trRes\n } else {\n serviceLoad.value = false\n res = serviceRes as QdUploadListOssByIdsResult\n }\n\n reSrc.value = res[0]?.url\n }\n },\n { immediate: true }\n )\n</script>\n"],"names":["_withDirectives","_openBlock","_createBlock","_unref","TImage","_mergeProps","$slots","_withCtx","_renderSlot","_normalizeProps","_guardReactiveProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCE,UAAM,QAAQ;AAEd,UAAM,oBAAoB;AAAA,MACxB;AAAA,MACA,SAAS,MAAM,MAAS;AAAA,IAAA;AAG1B,UAAM,QAAQ,IAAA;AACd,UAAM,UAAU,SAAS,MAAM;AAC7B,YAAM,EAAE,KAAK,MAAM,cAAc,GAAG,iBAAiB;AACrD,YAAM,iBAAiB,MAAM,cAAc,kBAAkB,OAAO,YAAY;AAEhF,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA,cAAc;AAAA,QACd;AAAA,MAAA;AAAA,IAEJ,CAAC;AAED,UAAM,cAAc,IAAI,KAAK;AAE7B;AAAA,MACE,MAAM,QAAQ,MAAM;AAAA,MACpB,OAAO,QAAQ,WAAW;AACxB,YAAI,WAAW,OAAQ;AAEvB,cAAM,EAAE,MAAM,aAAA,IAAiB,QAAQ;AACvC,YAAI,SAAS,SAAS;AACpB,cACE,CAAC,gBACD,CAAC,aAAa,WACd,QAAQ,MAAM,KACd,kBAAkB,QAClB,UAAU,QAAQ,KAAK,GACvB;AACA,kBAAM,QAAQ;AACd;AAAA,UACF;AAEA,gBAAM,EAAE,SAAS,iBAAiB,aAAA,IAAiB;AAEnD,sBAAY,QAAQ;AACpB,gBAAM,gBAAgB;AACtB,cAAI;AAEJ,cAAI,iBAAiB;AACnB,kBAAM,CAAC,OAAO,KAAK,IAAI,MAAM,wBAAwB,gBAAgB,aAAmB,CAAC;AACzF,gBAAI,OAAO;AACT,0BAAY,QAAQ;AACpB,oBAAM;AAAA,YACR;AAEA,sBAAU;AAAA,UACZ;AAEA,gBAAM,CAAC,YAAY,UAAU,IAAI,MAAM;AAAA,YACrC,QAAQ,WAAY,aAAgC;AAAA,UAAA;AAEtD,cAAI,YAAY;AACd,wBAAY,QAAQ;AACpB,kBAAM;AAAA,UACR;AAEA,cAAI;AACJ,cAAI,cAAc;AAChB,kBAAM,CAAC,OAAO,KAAK,IAAI,MAAM,wBAAwB,aAAa,UAAU,CAAC;AAC7E,wBAAY,QAAQ;AACpB,gBAAI,MAAO,OAAM;AAEjB,kBAAM;AAAA,UACR,OAAO;AACL,wBAAY,QAAQ;AACpB,kBAAM;AAAA,UACR;AAEA,gBAAM,QAAQ,IAAI,CAAC,GAAG;AAAA,QACxB;AAAA,MACF;AAAA,MACA,EAAE,WAAW,KAAA;AAAA,IAAK;;;AAlHpB,aAAAA,gBAAAC,aAAAC,YAQUC,MAAAC,KAAA,GARVC,WAEU,QAMA,MANQ,cAAY;AAAA,QAC3B,KAAG,OAAS,MAAA,UAAK,WAAgB,MAAA,aAAa,MAAA;AAAA,MAAA;QAEtBC,WAAAA,KAAAA,SAAR,SAAI;;;YACnB,IAAAC,QAAA,CADwC,cAAS;AAAA,cACjDC,WAAwC,KAAA,QAA3B,MAAIC,eAAAC,mBAAU,SAAS,CAAA,CAAA;AAAA,YAAA;;;;wCALhB,YAAA,OAAW,MAAA,SAAA;AAAA,MAAA;;;;"}
1
+ {"version":3,"file":"index.vue.mjs","sources":["../../../src/components/image/index.vue"],"sourcesContent":["<template>\n <t-image\n v-loading=\"{ loading: serviceLoad, size: 'small' }\"\n v-bind=\"reProps.imageOptions\"\n :src=\"typeof reSrc === 'number' ? reSrc + '' : reSrc\"\n >\n <template #loading>\n <slot name=\"loading\"><loading-icon /></slot>\n </template>\n\n <template #error>\n <slot name=\"error\"><image-error-icon /></slot>\n </template>\n\n <template v-for=\"name in filterSlots($slots, ['loading', 'error'])\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </t-image>\n</template>\n\n<script\n setup\n lang=\"ts\"\n generic=\"\n OR = unknown,\n OP extends string | number | (string | number)[] = string | number | (string | number)[],\n TOP = OP\n \"\n>\n import type { QdImageProps } from './types'\n import type { QdUploadListOssByIdsResult } from '../upload/types'\n import { qdImageProps } from './props'\n import { Image as TImage } from 'tdesign-vue-next'\n import { LoadingIcon, ImageErrorIcon } from 'tdesign-icons-vue-next'\n import { computed, inject, ref, watch } from 'vue'\n import { filterSlots, isEmpty, suspectedWrapperPromise, to, validator } from 'qidian-shared'\n import { PROVIDE_UPLOAD } from '../config-provider/config'\n import { merge } from 'lodash-es'\n\n defineOptions({\n name: 'QdImage'\n })\n\n type Props = QdImageProps<OR, OP, TOP>\n\n const props = withDefaults(defineProps<Props>(), qdImageProps)\n\n const globalUploadProps = inject(\n PROVIDE_UPLOAD,\n computed(() => undefined)\n )\n\n const reSrc = ref<string | number | File | undefined>()\n const reProps = computed(() => {\n const { src, mode, listOssByIds, ...imageOptions } = props\n const reListOssByIds = merge(listOssByIds, globalUploadProps.value?.listOssByIds)\n\n return {\n src,\n mode,\n listOssByIds: reListOssByIds,\n imageOptions\n }\n })\n\n const serviceLoad = ref(false)\n\n watch(\n () => reProps.value.src,\n async (newVal, oldVal) => {\n if (newVal === oldVal) return\n\n const { mode, listOssByIds } = reProps.value\n if (mode === 'ossId') {\n if (\n !listOssByIds ||\n !listOssByIds.service ||\n isEmpty(newVal) ||\n newVal instanceof File ||\n validator(newVal, 'url')\n ) {\n reSrc.value = newVal\n return\n }\n\n const { service, transformParams, transformRes } = listOssByIds\n\n serviceLoad.value = true\n const currentParams = newVal\n let tParams: TOP | undefined\n\n if (transformParams) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformParams(currentParams as OP))\n if (trErr) {\n serviceLoad.value = false\n throw trErr\n }\n\n tParams = trRes\n }\n\n const [serviceErr, serviceRes] = await to(\n service(tParams || (currentParams as unknown as TOP))\n )\n if (serviceErr) {\n serviceLoad.value = false\n throw serviceErr\n }\n\n let res: QdUploadListOssByIdsResult | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n serviceLoad.value = false\n if (trErr) throw trErr\n\n res = trRes\n } else {\n serviceLoad.value = false\n res = serviceRes as QdUploadListOssByIdsResult\n }\n\n reSrc.value = res[0]?.url\n return\n }\n\n reSrc.value = newVal\n },\n { immediate: true }\n )\n</script>\n"],"names":["_withDirectives","_openBlock","_createBlock","_unref","TImage","_mergeProps","_renderSlot","_createVNode","$slots","_withCtx","_normalizeProps","_guardReactiveProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CE,UAAM,QAAQ;AAEd,UAAM,oBAAoB;AAAA,MACxB;AAAA,MACA,SAAS,MAAM,MAAS;AAAA,IAAA;AAG1B,UAAM,QAAQ,IAAA;AACd,UAAM,UAAU,SAAS,MAAM;AAC7B,YAAM,EAAE,KAAK,MAAM,cAAc,GAAG,iBAAiB;AACrD,YAAM,iBAAiB,MAAM,cAAc,kBAAkB,OAAO,YAAY;AAEhF,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA,cAAc;AAAA,QACd;AAAA,MAAA;AAAA,IAEJ,CAAC;AAED,UAAM,cAAc,IAAI,KAAK;AAE7B;AAAA,MACE,MAAM,QAAQ,MAAM;AAAA,MACpB,OAAO,QAAQ,WAAW;AACxB,YAAI,WAAW,OAAQ;AAEvB,cAAM,EAAE,MAAM,aAAA,IAAiB,QAAQ;AACvC,YAAI,SAAS,SAAS;AACpB,cACE,CAAC,gBACD,CAAC,aAAa,WACd,QAAQ,MAAM,KACd,kBAAkB,QAClB,UAAU,QAAQ,KAAK,GACvB;AACA,kBAAM,QAAQ;AACd;AAAA,UACF;AAEA,gBAAM,EAAE,SAAS,iBAAiB,aAAA,IAAiB;AAEnD,sBAAY,QAAQ;AACpB,gBAAM,gBAAgB;AACtB,cAAI;AAEJ,cAAI,iBAAiB;AACnB,kBAAM,CAAC,OAAO,KAAK,IAAI,MAAM,wBAAwB,gBAAgB,aAAmB,CAAC;AACzF,gBAAI,OAAO;AACT,0BAAY,QAAQ;AACpB,oBAAM;AAAA,YACR;AAEA,sBAAU;AAAA,UACZ;AAEA,gBAAM,CAAC,YAAY,UAAU,IAAI,MAAM;AAAA,YACrC,QAAQ,WAAY,aAAgC;AAAA,UAAA;AAEtD,cAAI,YAAY;AACd,wBAAY,QAAQ;AACpB,kBAAM;AAAA,UACR;AAEA,cAAI;AACJ,cAAI,cAAc;AAChB,kBAAM,CAAC,OAAO,KAAK,IAAI,MAAM,wBAAwB,aAAa,UAAU,CAAC;AAC7E,wBAAY,QAAQ;AACpB,gBAAI,MAAO,OAAM;AAEjB,kBAAM;AAAA,UACR,OAAO;AACL,wBAAY,QAAQ;AACpB,kBAAM;AAAA,UACR;AAEA,gBAAM,QAAQ,IAAI,CAAC,GAAG;AACtB;AAAA,QACF;AAEA,cAAM,QAAQ;AAAA,MAChB;AAAA,MACA,EAAE,WAAW,KAAA;AAAA,IAAK;;;AA9HpB,aAAAA,gBAAAC,aAAAC,YAgBUC,MAAAC,KAAA,GAhBVC,WAEU,QAcA,MAdQ,cAAY;AAAA,QAC3B,KAAG,OAAS,MAAA,UAAK,WAAgB,MAAA,aAAa,MAAA;AAAA,MAAA;QAEpC,iBACT,MAA4C;AAAA,UAA5CC,WAA4C,4BAA5C,MAA4C;AAAA,YAAvBC,YAAgBJ,MAAA,WAAA,CAAA;AAAA,UAAA;;QAG5B,eACT,MAA8C;AAAA,UAA9CG,WAA8C,0BAA9C,MAA8C;AAAA,YAA3BC,YAAoBJ,MAAA,cAAA,CAAA;AAAA,UAAA;;;;mBAGhBA,MAAA,WAAA,EAAYK,KAAAA,QAAM,CAAA,WAAA,OAAA,CAAA,GAAA,CAA1B,SAAI;;;YACnB,IAAAC,QAAA,CAD2E,cAAS;AAAA,cACpFH,WAAwC,KAAA,QAA3B,MAAII,eAAAC,mBAAU,SAAS,CAAA,CAAA;AAAA,YAAA;;;;wCAbhB,YAAA,OAAW,MAAA,SAAA;AAAA,MAAA;;;;"}
@@ -1,6 +1,4 @@
1
1
  export declare const qdImageProps: {
2
- readonly loading: () => () => any;
3
- readonly error: () => () => any;
4
2
  readonly mode: "ossId";
5
3
  readonly lazy: true;
6
4
  };
@@ -1,8 +1,4 @@
1
- import { createVNode } from "vue";
2
- import { ImageErrorIcon, LoadingIcon } from "tdesign-icons-vue-next";
3
1
  const qdImageProps = {
4
- loading: () => () => createVNode(LoadingIcon, null, null),
5
- error: () => () => createVNode(ImageErrorIcon, null, null),
6
2
  mode: "ossId",
7
3
  lazy: true
8
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"props.mjs","sources":["../../../src/components/image/props.tsx"],"sourcesContent":["import { ImageErrorIcon, LoadingIcon } from 'tdesign-icons-vue-next'\n\nexport const qdImageProps = {\n loading: () => () => <LoadingIcon />,\n error: () => () => <ImageErrorIcon />,\n mode: 'ossId',\n lazy: true\n} as const\n"],"names":["qdImageProps","loading","_createVNode","LoadingIcon","error","ImageErrorIcon","mode","lazy"],"mappings":";;AAEO,MAAMA,eAAe;AAAA,EAC1BC,SAASA,MAAM,MAAAC,YAAAC,aAAA,MAAA,IAAA;AAAA,EACfC,OAAOA,MAAM,MAAAF,YAAAG,gBAAA,MAAA,IAAA;AAAA,EACbC,MAAM;AAAA,EACNC,MAAM;AACR;"}
1
+ {"version":3,"file":"props.mjs","sources":["../../../src/components/image/props.ts"],"sourcesContent":["export const qdImageProps = {\n mode: 'ossId',\n lazy: true\n} as const\n"],"names":[],"mappings":"AAAO,MAAM,eAAe;AAAA,EAC1B,MAAM;AAAA,EACN,MAAM;AACR;"}
@@ -133,13 +133,13 @@ p {
133
133
  -webkit-box-orient: vertical;
134
134
  -webkit-line-clamp: var(--v07d46710);
135
135
  }
136
- .qd-avatar[data-v-26692975] {
136
+ .qd-avatar[data-v-4f36ffc5] {
137
137
  display: inline-flex;
138
138
  align-items: center;
139
139
  font: var(--td-font-body-medium);
140
140
  color: var(--td-text-color-primary);
141
141
  }
142
- .qd-avatar__name[data-v-26692975] {
142
+ .qd-avatar__name[data-v-4f36ffc5] {
143
143
  margin-left: var(--td-comp-margin-s);
144
144
  }
145
145
  [data-v-cdb247de] .qd-card__header--click {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qidian-vue-ui",
3
- "version": "1.1.23",
3
+ "version": "1.1.25",
4
4
  "description": "基于 TDesign 的 QiDian Vue UI 组件库",
5
5
  "author": "qidian",
6
6
  "license": "MIT",