fast-element-plus 1.0.2 → 1.0.4

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.
Files changed (92) hide show
  1. package/dist/index.full.js +159 -104
  2. package/dist/index.full.js.map +1 -1
  3. package/dist/index.full.min.js +1 -1
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +1 -1
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +159 -104
  8. package/dist/index.full.mjs.map +1 -1
  9. package/dist/styles/index.css +1 -1
  10. package/es/components/avatar/src/avatar.d.ts +10 -9
  11. package/es/components/avatar/src/avatar.mjs +1 -1
  12. package/es/components/avatar/src/avatar.mjs.map +1 -1
  13. package/es/components/button/src/button.d.ts +4 -4
  14. package/es/components/carNumber/src/carNumber.d.ts +3 -3
  15. package/es/components/dialog/src/dialog.mjs +1 -1
  16. package/es/components/dialog/src/dialog.mjs.map +1 -1
  17. package/es/components/drawer/src/drawer.mjs +1 -1
  18. package/es/components/drawer/src/drawer.mjs.map +1 -1
  19. package/es/components/form/src/formItem.d.ts +18 -4
  20. package/es/components/image/src/image.d.ts +7 -0
  21. package/es/components/image/src/image.mjs +1 -1
  22. package/es/components/image/src/image.mjs.map +1 -1
  23. package/es/components/index.mjs +1 -1
  24. package/es/components/table/index.d.ts +2 -2
  25. package/es/components/table/index.mjs +1 -1
  26. package/es/components/table/index.mjs.map +1 -1
  27. package/es/components/table/src/table.d.ts +45 -11
  28. package/es/components/table/src/table.mjs +1 -1
  29. package/es/components/table/src/table.mjs.map +1 -1
  30. package/es/components/table/src/table.state.d.ts +0 -4
  31. package/es/components/table/src/table.type.d.ts +3 -62
  32. package/es/components/table/src/table.type.mjs.map +1 -1
  33. package/es/components/table/src/tableColumn.d.ts +9 -0
  34. package/es/components/table/src/tableColumn.mjs +1 -1
  35. package/es/components/table/src/tableColumn.mjs.map +1 -1
  36. package/es/components/table/src/tableColumnSettingDialog.d.ts +3 -3
  37. package/es/components/table/src/tableColumnSettingDialog.mjs +1 -1
  38. package/es/components/table/src/tableColumnSettingDialog.mjs.map +1 -1
  39. package/es/components/table/src/useTable.mjs +1 -1
  40. package/es/components/table/src/useTable.mjs.map +1 -1
  41. package/es/components/table/utils/table.mjs +1 -1
  42. package/es/components/table/utils/table.mjs.map +1 -1
  43. package/es/components/upload/src/upload.d.ts +4 -4
  44. package/es/components/uploadImage/src/uploadImage.d.ts +4 -4
  45. package/es/components/uploadImages/src/uploadImages.d.ts +4 -4
  46. package/es/index.mjs +1 -1
  47. package/es/index.mjs.map +1 -1
  48. package/es/version.d.ts +1 -1
  49. package/es/version.mjs +1 -1
  50. package/es/version.mjs.map +1 -1
  51. package/lib/components/avatar/src/avatar.d.ts +10 -9
  52. package/lib/components/avatar/src/avatar.js +1 -1
  53. package/lib/components/avatar/src/avatar.js.map +1 -1
  54. package/lib/components/button/src/button.d.ts +4 -4
  55. package/lib/components/carNumber/src/carNumber.d.ts +3 -3
  56. package/lib/components/dialog/src/dialog.js +1 -1
  57. package/lib/components/dialog/src/dialog.js.map +1 -1
  58. package/lib/components/drawer/src/drawer.js +1 -1
  59. package/lib/components/drawer/src/drawer.js.map +1 -1
  60. package/lib/components/form/src/formItem.d.ts +18 -4
  61. package/lib/components/image/src/image.d.ts +7 -0
  62. package/lib/components/image/src/image.js +1 -1
  63. package/lib/components/image/src/image.js.map +1 -1
  64. package/lib/components/index.js +1 -1
  65. package/lib/components/table/index.d.ts +2 -2
  66. package/lib/components/table/index.js +1 -1
  67. package/lib/components/table/index.js.map +1 -1
  68. package/lib/components/table/src/table.d.ts +45 -11
  69. package/lib/components/table/src/table.js +1 -1
  70. package/lib/components/table/src/table.js.map +1 -1
  71. package/lib/components/table/src/table.state.d.ts +0 -4
  72. package/lib/components/table/src/table.type.d.ts +3 -62
  73. package/lib/components/table/src/table.type.js.map +1 -1
  74. package/lib/components/table/src/tableColumn.d.ts +9 -0
  75. package/lib/components/table/src/tableColumn.js +1 -1
  76. package/lib/components/table/src/tableColumn.js.map +1 -1
  77. package/lib/components/table/src/tableColumnSettingDialog.d.ts +3 -3
  78. package/lib/components/table/src/tableColumnSettingDialog.js +1 -1
  79. package/lib/components/table/src/tableColumnSettingDialog.js.map +1 -1
  80. package/lib/components/table/src/useTable.js +1 -1
  81. package/lib/components/table/src/useTable.js.map +1 -1
  82. package/lib/components/table/utils/table.js +1 -1
  83. package/lib/components/table/utils/table.js.map +1 -1
  84. package/lib/components/upload/src/upload.d.ts +4 -4
  85. package/lib/components/uploadImage/src/uploadImage.d.ts +4 -4
  86. package/lib/components/uploadImages/src/uploadImages.d.ts +4 -4
  87. package/lib/index.js +1 -1
  88. package/lib/version.d.ts +1 -1
  89. package/lib/version.js +1 -1
  90. package/lib/version.js.map +1 -1
  91. package/package.json +5 -5
  92. package/styles/components/table.scss +1 -1
@@ -530,7 +530,7 @@
530
530
  display: flex;
531
531
  align-items: center;
532
532
  justify-content: space-between;
533
- margin-bottom: 5px;
533
+ margin-bottom: 10px;
534
534
  }
535
535
  .fa-table .fa-table__main .fa-table__main-header .fa-table__main-header-left {
536
536
  display: inline-flex;
@@ -5,9 +5,9 @@ export declare const faAvatarProps: {
5
5
  type: import('vue').PropType<string | Component>;
6
6
  default: () => string | Component;
7
7
  };
8
- /**
9
- * @description 原图
10
- */
8
+ /** @description Base64图片 */
9
+ base64: BooleanConstructor;
10
+ /** @description 原图 */
11
11
  original: BooleanConstructor;
12
12
  /** @description 标准 */
13
13
  normal: BooleanConstructor;
@@ -37,9 +37,9 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
37
37
  type: import('vue').PropType<string | Component>;
38
38
  default: () => string | Component;
39
39
  };
40
- /**
41
- * @description 原图
42
- */
40
+ /** @description Base64图片 */
41
+ base64: BooleanConstructor;
42
+ /** @description 原图 */
43
43
  original: BooleanConstructor;
44
44
  /** @description 标准 */
45
45
  normal: BooleanConstructor;
@@ -64,9 +64,9 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
64
64
  type: import('vue').PropType<string | Component>;
65
65
  default: () => string | Component;
66
66
  };
67
- /**
68
- * @description 原图
69
- */
67
+ /** @description Base64图片 */
68
+ base64: BooleanConstructor;
69
+ /** @description 原图 */
70
70
  original: BooleanConstructor;
71
71
  /** @description 标准 */
72
72
  normal: BooleanConstructor;
@@ -86,6 +86,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
86
86
  small: boolean;
87
87
  size: import('element-plus/es/utils/index.mjs').EpPropMergeType<readonly [NumberConstructor, StringConstructor], "" | "small" | "default" | "large", number>;
88
88
  icon: string | Component;
89
+ base64: boolean;
89
90
  original: boolean;
90
91
  normal: boolean;
91
92
  thumb: boolean;
@@ -1,2 +1,2 @@
1
- import{defineComponent as r,reactive as s,computed as o,createVNode as t,mergeProps as a}from"vue";import{avatarProps as e,avatarEmits as l,ElAvatar as n}from"element-plus";import{Picture as m}from"@element-plus/icons-vue";import{definePropType as c,useProps as u,useRender as i,useExpose as f,makeSlots as p}from"@fast-china/utils";const d={...e,icon:{type:c([String,Object,Function]),default:()=>m},original:Boolean,normal:Boolean,small:Boolean,thumb:Boolean},v={...l},b=/* @__PURE__ */r({name:"FaAvatar",props:d,emits:v,slots:p(),setup(r,{attrs:l,slots:m,emit:c,expose:p}){const d=s({src:o(()=>{if(r.src)return r.original?r.src:r.normal?`${r.src}@!normal`:r.small?`${r.src}@!small`:(r.thumb,`${r.src}@!thumb`)})}),v=u(r,e,["src"]);return i(()=>t(n,a(v.value,{class:"fa-avatar",src:d.src,onError:r=>c("error",r)}),{default:()=>[m.default&&m.default({src:d.src})]})),f(p,{src:d.src})}});export{b as default,v as faAvatarEmits,d as faAvatarProps};
1
+ import{defineComponent as r,reactive as s,computed as a,createVNode as o,mergeProps as e}from"vue";import{avatarProps as t,avatarEmits as l,ElAvatar as n}from"element-plus";import{Picture as m}from"@element-plus/icons-vue";import{definePropType as c,useProps as i,useRender as u,useExpose as p,makeSlots as f}from"@fast-china/utils";const b={...t,icon:{type:c([String,Object,Function]),default:()=>m},base64:Boolean,original:Boolean,normal:Boolean,small:Boolean,thumb:Boolean},d={...l},g=/* @__PURE__ */r({name:"FaAvatar",props:b,emits:d,slots:f(),setup(r,{attrs:l,slots:m,emit:c,expose:f}){const b=s({src:a(()=>{if(r.src)return r.base64?`data:image/png;base64,${r.src}`:r.original?r.src:r.normal?`${r.src}@!normal`:r.small?`${r.src}@!small`:(r.thumb,`${r.src}@!thumb`)})}),d=i(r,t,["src"]);return u(()=>o(n,e(d.value,{class:"fa-avatar",src:b.src,onError:r=>c("error",r)}),{default:()=>[m.default&&m.default({src:b.src})]})),p(f,{src:b.src})}});export{g as default,d as faAvatarEmits,b as faAvatarProps};
2
2
  //# sourceMappingURL=avatar.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"avatar.mjs","sources":["../../../../../packages/components/avatar/src/avatar.tsx"],"sourcesContent":["import { computed, defineComponent, reactive } from \"vue\";\nimport { ElAvatar, avatarEmits, avatarProps } from \"element-plus\";\nimport { Picture } from \"@element-plus/icons-vue\";\nimport { definePropType, makeSlots, useExpose, useProps, useRender } from \"@fast-china/utils\";\nimport type { Component } from \"vue\";\n\nexport const faAvatarProps = {\n\t...avatarProps,\n\t/** @description representation type to icon, more info on icon component. */\n\ticon: {\n\t\ttype: definePropType<string | Component>([String, Object, Function]),\n\t\tdefault: (): string | Component => Picture,\n\t},\n\t/**\n\t * @description 原图\n\t */\n\toriginal: Boolean,\n\t/** @description 标准 */\n\tnormal: Boolean,\n\t/** @description 小图 */\n\tsmall: Boolean,\n\t/** @description 缩略图 */\n\tthumb: Boolean,\n};\n\nexport const faAvatarEmits = {\n\t...avatarEmits,\n};\n\ntype FaAvatarSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: { src: string };\n};\n\nexport default defineComponent({\n\tname: \"FaAvatar\",\n\tprops: faAvatarProps,\n\temits: faAvatarEmits,\n\tslots: makeSlots<FaAvatarSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst state = reactive({\n\t\t\tsrc: computed(() => {\n\t\t\t\tif (props.src) {\n\t\t\t\t\tif (props.original) {\n\t\t\t\t\t\treturn props.src;\n\t\t\t\t\t} else if (props.normal) {\n\t\t\t\t\t\treturn `${props.src}@!normal`;\n\t\t\t\t\t} else if (props.small) {\n\t\t\t\t\t\treturn `${props.src}@!small`;\n\t\t\t\t\t} else if (props.thumb) {\n\t\t\t\t\t\treturn `${props.src}@!thumb`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// 默认使用缩略图\n\t\t\t\t\t\treturn `${props.src}@!thumb`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn undefined;\n\t\t\t}),\n\t\t});\n\n\t\tconst elAvatarProps = useProps(props, avatarProps, [\"src\"]);\n\n\t\tuseRender(() => (\n\t\t\t<ElAvatar {...elAvatarProps.value} class=\"fa-avatar\" src={state.src} onError={(evt: Event) => emit(\"error\", evt)}>\n\t\t\t\t{slots.default && slots.default({ src: state.src })}\n\t\t\t</ElAvatar>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 图片路径 */\n\t\t\tsrc: state.src,\n\t\t});\n\t},\n});\n"],"names":["faAvatarProps","avatarProps","icon","type","definePropType","String","Object","Function","default","Picture","original","Boolean","normal","small","thumb","faAvatarEmits","avatarEmits","Avatar","name","props","emits","slots","makeSlots","setup","attrs","emit","expose","state","reactive","src","computed","elAvatarProps","useProps","useRender","_createVNode","ElAvatar","_mergeProps","value","class","onError","evt","useExpose"],"mappings":"6UAMO,MAAMA,EAAgB,IACzBC,EAEHC,KAAM,CACLC,KAAMC,EAAmC,CAACC,OAAQC,OAAQC,WAC1DC,QAASA,IAA0BC,GAKpCC,SAAUC,QAEVC,OAAQD,QAERE,MAAOF,QAEPG,MAAOH,SAGKI,EAAgB,IACzBC,GAQJC,mBAA+B,CAC9BC,KAAM,WACNC,MAAOnB,EACPoB,MAAOL,EACPM,MAAOC,IACPC,KAAAA,CAAMJ,GAAOK,MAAEA,EAAAA,MAAOH,EAAAA,KAAOI,EAAAA,OAAMC,IAClC,MAAMC,EAAQC,EAAS,CACtBC,IAAKC,EAAS,KACb,GAAIX,EAAMU,IACT,OAAIV,EAAMT,SACFS,EAAMU,IACHV,EAAMP,OACT,GAAGO,EAAMU,cACNV,EAAMN,MACT,GAAGM,EAAMU,cACNV,EAAML,MACT,GAAGK,EAAMU,kBAUdE,EAAgBC,EAASb,EAAOlB,EAAa,CAAC,QAQpD,OANAgC,EAAU,IAAAC,EAAAC,EAAAC,EACKL,EAAcM,MAAK,CAAAC,MAAA,YAAAT,IAAyBF,EAAME,IAAGU,QAAYC,GAAef,EAAK,QAASe,KAAI,CAAAhC,QAAAA,IAAA,CAC9Ga,EAAMb,SAAWa,EAAMb,QAAQ,CAAEqB,IAAKF,EAAME,UAIxCY,EAAUf,EAAQ,CAExBG,IAAKF,EAAME,KAEb"}
1
+ {"version":3,"file":"avatar.mjs","sources":["../../../../../packages/components/avatar/src/avatar.tsx"],"sourcesContent":["import { computed, defineComponent, reactive } from \"vue\";\nimport { ElAvatar, avatarEmits, avatarProps } from \"element-plus\";\nimport { Picture } from \"@element-plus/icons-vue\";\nimport { definePropType, makeSlots, useExpose, useProps, useRender } from \"@fast-china/utils\";\nimport type { Component } from \"vue\";\n\nexport const faAvatarProps = {\n\t...avatarProps,\n\t/** @description representation type to icon, more info on icon component. */\n\ticon: {\n\t\ttype: definePropType<string | Component>([String, Object, Function]),\n\t\tdefault: (): string | Component => Picture,\n\t},\n\t/** @description Base64图片 */\n\tbase64: Boolean,\n\t/** @description 原图 */\n\toriginal: Boolean,\n\t/** @description 标准 */\n\tnormal: Boolean,\n\t/** @description 小图 */\n\tsmall: Boolean,\n\t/** @description 缩略图 */\n\tthumb: Boolean,\n};\n\nexport const faAvatarEmits = {\n\t...avatarEmits,\n};\n\ntype FaAvatarSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: { src: string };\n};\n\nexport default defineComponent({\n\tname: \"FaAvatar\",\n\tprops: faAvatarProps,\n\temits: faAvatarEmits,\n\tslots: makeSlots<FaAvatarSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst state = reactive({\n\t\t\tsrc: computed(() => {\n\t\t\t\tif (!props.src) return undefined;\n\t\t\t\tif (props.base64) {\n\t\t\t\t\treturn `data:image/png;base64,${props.src}`;\n\t\t\t\t} else if (props.original) {\n\t\t\t\t\treturn props.src;\n\t\t\t\t} else if (props.normal) {\n\t\t\t\t\treturn `${props.src}@!normal`;\n\t\t\t\t} else if (props.small) {\n\t\t\t\t\treturn `${props.src}@!small`;\n\t\t\t\t} else if (props.thumb) {\n\t\t\t\t\treturn `${props.src}@!thumb`;\n\t\t\t\t} else {\n\t\t\t\t\t// 默认使用缩略图\n\t\t\t\t\treturn `${props.src}@!thumb`;\n\t\t\t\t}\n\t\t\t}),\n\t\t});\n\n\t\tconst elAvatarProps = useProps(props, avatarProps, [\"src\"]);\n\n\t\tuseRender(() => (\n\t\t\t<ElAvatar {...elAvatarProps.value} class=\"fa-avatar\" src={state.src} onError={(evt: Event) => emit(\"error\", evt)}>\n\t\t\t\t{slots.default && slots.default({ src: state.src })}\n\t\t\t</ElAvatar>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 图片路径 */\n\t\t\tsrc: state.src,\n\t\t});\n\t},\n});\n"],"names":["faAvatarProps","avatarProps","icon","type","definePropType","String","Object","Function","default","Picture","base64","Boolean","original","normal","small","thumb","faAvatarEmits","avatarEmits","Avatar","name","props","emits","slots","makeSlots","setup","attrs","emit","expose","state","reactive","src","computed","elAvatarProps","useProps","useRender","_createVNode","ElAvatar","_mergeProps","value","class","onError","evt","useExpose"],"mappings":"6UAMO,MAAMA,EAAgB,IACzBC,EAEHC,KAAM,CACLC,KAAMC,EAAmC,CAACC,OAAQC,OAAQC,WAC1DC,QAASA,IAA0BC,GAGpCC,OAAQC,QAERC,SAAUD,QAEVE,OAAQF,QAERG,MAAOH,QAEPI,MAAOJ,SAGKK,EAAgB,IACzBC,GAQJC,mBAA+B,CAC9BC,KAAM,WACNC,MAAOpB,EACPqB,MAAOL,EACPM,MAAOC,IACPC,KAAAA,CAAMJ,GAAOK,MAAEA,EAAAA,MAAOH,EAAAA,KAAOI,EAAAA,OAAMC,IAClC,MAAMC,EAAQC,EAAS,CACtBC,IAAKC,EAAS,KACb,GAAKX,EAAMU,IACX,OAAIV,EAAMV,OACF,yBAAyBU,EAAMU,MAC5BV,EAAMR,SACTQ,EAAMU,IACHV,EAAMP,OACT,GAAGO,EAAMU,cACNV,EAAMN,MACT,GAAGM,EAAMU,cACNV,EAAML,MACT,GAAGK,EAAMU,kBAQbE,EAAgBC,EAASb,EAAOnB,EAAa,CAAC,QAQpD,OANAiC,EAAU,IAAAC,EAAAC,EAAAC,EACKL,EAAcM,MAAK,CAAAC,MAAA,YAAAT,IAAyBF,EAAME,IAAGU,QAAYC,GAAef,EAAK,QAASe,KAAI,CAAAjC,QAAAA,IAAA,CAC9Gc,EAAMd,SAAWc,EAAMd,QAAQ,CAAEsB,IAAKF,EAAME,UAIxCY,EAAUf,EAAQ,CAExBG,IAAKF,EAAME,KAEb"}
@@ -16,7 +16,7 @@ export declare const faButtonProps: {
16
16
  readonly validator: ((val: unknown) => boolean) | undefined;
17
17
  __epPropKey: true;
18
18
  };
19
- disabled: BooleanConstructor;
19
+ disabled: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
20
20
  type: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, "" | "text" | "default" | "primary" | "success" | "warning" | "info" | "danger", unknown, "", boolean>;
21
21
  icon: {
22
22
  readonly type: import('vue').PropType<import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => (string | Component) & {}) | (() => string | Component) | ((new (...args: any[]) => (string | Component) & {}) | (() => string | Component))[], unknown, unknown>>;
@@ -70,7 +70,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
70
70
  readonly validator: ((val: unknown) => boolean) | undefined;
71
71
  __epPropKey: true;
72
72
  };
73
- disabled: BooleanConstructor;
73
+ disabled: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
74
74
  type: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, "" | "text" | "default" | "primary" | "success" | "warning" | "info" | "danger", unknown, "", boolean>;
75
75
  icon: {
76
76
  readonly type: import('vue').PropType<import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => (string | Component) & {}) | (() => string | Component) | ((new (...args: any[]) => (string | Component) & {}) | (() => string | Component))[], unknown, unknown>>;
@@ -129,7 +129,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
129
129
  readonly validator: ((val: unknown) => boolean) | undefined;
130
130
  __epPropKey: true;
131
131
  };
132
- disabled: BooleanConstructor;
132
+ disabled: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
133
133
  type: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, "" | "text" | "default" | "primary" | "success" | "warning" | "info" | "danger", unknown, "", boolean>;
134
134
  icon: {
135
135
  readonly type: import('vue').PropType<import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => (string | Component) & {}) | (() => string | Component) | ((new (...args: any[]) => (string | Component) & {}) | (() => string | Component))[], unknown, unknown>>;
@@ -161,7 +161,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
161
161
  loading: boolean;
162
162
  loadingIcon: string | Component;
163
163
  disabledLoading: boolean;
164
- disabled: boolean;
164
+ disabled: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>;
165
165
  nativeType: import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "button" | "reset" | "submit", unknown>;
166
166
  bg: boolean;
167
167
  autofocus: boolean;
@@ -14,7 +14,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
14
14
  readonly validator: ((val: unknown) => boolean) | undefined;
15
15
  __epPropKey: true;
16
16
  };
17
- disabled: BooleanConstructor;
17
+ disabled: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
18
18
  modelValue: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => string | number) | (() => string | number | null | undefined) | ((new (...args: any[]) => string | number) | (() => string | number | null | undefined))[], unknown, unknown, "", boolean>;
19
19
  modelModifiers: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => import('element-plus').InputModelModifiers) | (() => import('element-plus').InputModelModifiers) | ((new (...args: any[]) => import('element-plus').InputModelModifiers) | (() => import('element-plus').InputModelModifiers))[], unknown, unknown, () => {}, boolean>;
20
20
  maxlength: {
@@ -112,7 +112,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
112
112
  readonly validator: ((val: unknown) => boolean) | undefined;
113
113
  __epPropKey: true;
114
114
  };
115
- disabled: BooleanConstructor;
115
+ disabled: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
116
116
  modelValue: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => string | number) | (() => string | number | null | undefined) | ((new (...args: any[]) => string | number) | (() => string | number | null | undefined))[], unknown, unknown, "", boolean>;
117
117
  modelModifiers: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => import('element-plus').InputModelModifiers) | (() => import('element-plus').InputModelModifiers) | ((new (...args: any[]) => import('element-plus').InputModelModifiers) | (() => import('element-plus').InputModelModifiers))[], unknown, unknown, () => {}, boolean>;
118
118
  maxlength: {
@@ -195,7 +195,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
195
195
  }>, {
196
196
  type: import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => string) | (() => import('element-plus').InputType) | ((new (...args: any[]) => string) | (() => import('element-plus').InputType))[], unknown, unknown>;
197
197
  id: string;
198
- disabled: boolean;
198
+ disabled: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>;
199
199
  autofocus: boolean;
200
200
  placeholder: string;
201
201
  inputmode: import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => "search" | "text" | "none" | "url" | "email" | "tel" | "numeric" | "decimal") | (() => "search" | "text" | "none" | "url" | "email" | "tel" | "numeric" | "decimal" | undefined) | ((new (...args: any[]) => "search" | "text" | "none" | "url" | "email" | "tel" | "numeric" | "decimal") | (() => "search" | "text" | "none" | "url" | "email" | "tel" | "numeric" | "decimal" | undefined))[], unknown, unknown>;
@@ -1,2 +1,2 @@
1
- import{defineComponent as e,reactive as l,ref as o,nextTick as a,watch as n,createVNode as i,mergeProps as t,Fragment as s,withDirectives as d,resolveDirective as r,computed as u}from"vue";import{dialogProps as f,dialogEmits as c,useGlobalSize as g,ElMessage as _,ElMessageBox as h,ElDialog as p,ElButton as m,ElScrollbar as C,ElIcon as v}from"element-plus";import{Eleme as B,Refresh as b,FullScreen as y,Close as w}from"@element-plus/icons-vue";import{FullScreenExit as k}from"@fast-element-plus/icons-vue";import{definePropType as F,execFunction as x,consoleError as T,useProps as D,useRender as O,useExpose as S,makeSlots as V}from"@fast-china/utils";import{isBoolean as A}from"lodash-unified";const R={...f,alignCenter:{type:Boolean,default:!0},appendToBody:{type:Boolean,default:!0},draggable:{type:Boolean,default:!0},destroyOnClose:{type:Boolean,default:!0},overflow:{type:Boolean,default:!0},top:{type:String,default:"5vh"},width:{type:[String,Number],default:"90%"},showRefresh:{type:Boolean,default:!0},showFullscreen:{type:Boolean,default:!0},showCloseButton:{type:Boolean,default:!0},showConfirmButton:{type:Boolean,default:!0},disabledConfirmButton:Boolean,closeButtonText:{type:String,default:"取消"},confirmButtonText:{type:String,default:"确认"},hideFooter:Boolean,fillHeight:Boolean,showBeforeClose:Boolean,afterOpen:{type:F(Function)}},H={...c,"update:modelValue":e=>A(e),confirmClick:()=>!0},P=/* @__PURE__ */e({name:"FaDialog",props:R,emits:H,slots:V(),setup(e,{attrs:c,slots:F,emit:V,expose:A}){const R=g(),H=l({loading:!1,visible:!1,fullscreen:!1,refreshing:!1}),P=o();let q;const I=l=>{H.visible=!0,q=l,a(()=>{H.loading=!0,x(e.afterOpen??l).then(()=>{V("open")}).catch(e=>{T("FaDialog",e),H.visible=!1}).finally(()=>{H.loading=!1})})},L=e=>{H.loading=!0,x(e).then(()=>{V("close"),H.visible=!1}).catch(e=>{T("FaDialog",e)}).finally(()=>{H.loading=!1})},N=()=>{H.loading||(H.refreshing=!0,H.loading=!0,setTimeout(()=>{H.refreshing=!1,I(q),_.success("刷新成功")},500))},U=l=>{if(H.loading)return;if(document.querySelector(".el-image-viewer__wrapper"))return;const o=()=>{x(e.beforeClose).then(()=>{V("close"),l()}).catch(e=>{T("FaDialog",e)})};e.showBeforeClose?h.confirm("确定关闭?",{type:"warning"}).then(()=>{o()}):o()},$=()=>{H.loading||(H.fullscreen=!H.fullscreen)},j=()=>{H.loading||V("confirmClick")},z=()=>{H.loading||L()};n(()=>H.visible,e=>{V("update:modelValue",e)});const E=D(e,f,["modelValue","fullscreen","showClose","beforeClose"]);return O(()=>i(p,t(E.value,{ref:P,class:["fa-dialog",`fa-dialog-${R.value}`,{"fa-dialog__fill-height":e.fillHeight,"fa-dialog__fullscreen":H.fullscreen}],modelValue:H.visible,"onUpdate:modelValue":e=>H.visible=e,fullscreen:H.fullscreen,showClose:!1,beforeClose:U,onOpened:()=>V("opened"),onClosed:()=>V("closed"),onOpenAutoFocus:()=>V("openAutoFocus"),onCloseAutoFocus:()=>V("closeAutoFocus")}),{header:()=>i(s,null,[i("div",{class:"fa-dialog__header-title"},[e.title,F.header&&F.header({loading:H.loading,close:z})]),e.showRefresh&&i("div",{title:"刷新",class:["fa-dialog__header-icon",H.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:N},[i(v,null,{default:()=>[i(b,null,null)]})]),e.showFullscreen&&i("div",{title:H.fullscreen?"关闭全屏显示":"全屏显示",class:["fa-dialog__header-icon",H.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:$},[i(v,null,{default:()=>[H.fullscreen?i(k,null,null):i(y,null,null)]})]),e.showClose&&i("div",{title:"关闭",class:["fa-dialog__header-icon",H.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:z},[i(v,null,{default:()=>[i(w,null,null)]})])]),default:()=>d(i(C,{"element-loading-text":"加载中..."},{default:()=>[!H.refreshing&&F.default&&F.default(H)]}),[[r("loading"),H.loading]]),...!e.hideFooter&&{footer:()=>i(s,null,[F.footer&&F.footer({loading:H.loading,close:z}),e.showCloseButton&&i(m,{disabled:H.loading,onClick:z},{default:()=>[e.closeButtonText]}),e.showConfirmButton&&i(m,{loading:H.loading,loadingIcon:B,disabled:e.disabledConfirmButton,type:"primary",onClick:j},{default:()=>[H.loading?"加载中...":e.confirmButtonText]})])}})),S(A,{dialogContentRef:u(()=>P.value?.dialogContentRef),resetPosition:u(()=>P.value?.resetPosition),loading:u(()=>H.loading),visible:u(()=>H.visible),open:I,close:L,refresh:N,doLoading:e=>{H.loading=!0,x(e).then().catch(e=>{T("FaDialog",e)}).finally(()=>{H.loading=!1})}})}});export{P as default,H as faDialogEmits,R as faDialogProps};
1
+ import{defineComponent as e,reactive as l,ref as o,nextTick as a,watch as n,createVNode as i,mergeProps as t,Fragment as s,withDirectives as d,resolveDirective as r,computed as u}from"vue";import{dialogProps as f,dialogEmits as c,useGlobalSize as g,ElMessage as _,ElMessageBox as h,ElDialog as p,ElButton as m,ElScrollbar as C,ElIcon as v}from"element-plus";import{Eleme as B,Refresh as b,Close as y}from"@element-plus/icons-vue";import{FullScreenExit as w,FullScreen as k}from"@fast-element-plus/icons-vue";import{definePropType as F,execFunction as x,consoleError as T,useProps as D,useRender as O,useExpose as S,makeSlots as V}from"@fast-china/utils";import{isBoolean as A}from"lodash-unified";const R={...f,alignCenter:{type:Boolean,default:!0},appendToBody:{type:Boolean,default:!0},draggable:{type:Boolean,default:!0},destroyOnClose:{type:Boolean,default:!0},overflow:{type:Boolean,default:!0},top:{type:String,default:"5vh"},width:{type:[String,Number],default:"90%"},showRefresh:{type:Boolean,default:!0},showFullscreen:{type:Boolean,default:!0},showCloseButton:{type:Boolean,default:!0},showConfirmButton:{type:Boolean,default:!0},disabledConfirmButton:Boolean,closeButtonText:{type:String,default:"取消"},confirmButtonText:{type:String,default:"确认"},hideFooter:Boolean,fillHeight:Boolean,showBeforeClose:Boolean,afterOpen:{type:F(Function)}},H={...c,"update:modelValue":e=>A(e),confirmClick:()=>!0},P=/* @__PURE__ */e({name:"FaDialog",props:R,emits:H,slots:V(),setup(e,{attrs:c,slots:F,emit:V,expose:A}){const R=g(),H=l({loading:!1,visible:!1,fullscreen:!1,refreshing:!1}),P=o();let q;const I=l=>{H.visible=!0,q=l,a(()=>{H.loading=!0,x(e.afterOpen??l).then(()=>{V("open")}).catch(e=>{T("FaDialog",e),H.visible=!1}).finally(()=>{H.loading=!1})})},L=e=>{H.loading=!0,x(e).then(()=>{V("close"),H.visible=!1}).catch(e=>{T("FaDialog",e)}).finally(()=>{H.loading=!1})},N=()=>{H.loading||(H.refreshing=!0,H.loading=!0,setTimeout(()=>{H.refreshing=!1,I(q),_.success("刷新成功")},500))},U=l=>{if(H.loading)return;if(document.querySelector(".el-image-viewer__wrapper"))return;const o=()=>{x(e.beforeClose).then(()=>{V("close"),l()}).catch(e=>{T("FaDialog",e)})};e.showBeforeClose?h.confirm("确定关闭?",{type:"warning"}).then(()=>{o()}):o()},$=()=>{H.loading||(H.fullscreen=!H.fullscreen)},j=()=>{H.loading||V("confirmClick")},z=()=>{H.loading||L()};n(()=>H.visible,e=>{V("update:modelValue",e)});const E=D(e,f,["modelValue","fullscreen","showClose","beforeClose"]);return O(()=>i(p,t(E.value,{ref:P,class:["fa-dialog",`fa-dialog-${R.value}`,{"fa-dialog__fill-height":e.fillHeight,"fa-dialog__fullscreen":H.fullscreen}],modelValue:H.visible,"onUpdate:modelValue":e=>H.visible=e,fullscreen:H.fullscreen,showClose:!1,beforeClose:U,onOpened:()=>V("opened"),onClosed:()=>V("closed"),onOpenAutoFocus:()=>V("openAutoFocus"),onCloseAutoFocus:()=>V("closeAutoFocus")}),{header:()=>i(s,null,[i("div",{class:"fa-dialog__header-title"},[e.title,F.header&&F.header({loading:H.loading,close:z})]),e.showRefresh&&i("div",{title:"刷新",class:["fa-dialog__header-icon",H.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:N},[i(v,null,{default:()=>[i(b,null,null)]})]),e.showFullscreen&&i("div",{title:H.fullscreen?"关闭全屏显示":"全屏显示",class:["fa-dialog__header-icon",H.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:$},[i(v,null,{default:()=>[H.fullscreen?i(w,null,null):i(k,null,null)]})]),e.showClose&&i("div",{title:"关闭",class:["fa-dialog__header-icon",H.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:z},[i(v,null,{default:()=>[i(y,null,null)]})])]),default:()=>d(i(C,{"element-loading-text":"加载中..."},{default:()=>[!H.refreshing&&F.default&&F.default(H)]}),[[r("loading"),H.loading]]),...!e.hideFooter&&{footer:()=>i(s,null,[F.footer&&F.footer({loading:H.loading,close:z}),e.showCloseButton&&i(m,{disabled:H.loading,onClick:z},{default:()=>[e.closeButtonText]}),e.showConfirmButton&&i(m,{loading:H.loading,loadingIcon:B,disabled:e.disabledConfirmButton,type:"primary",onClick:j},{default:()=>[H.loading?"加载中...":e.confirmButtonText]})])}})),S(A,{dialogContentRef:u(()=>P.value?.dialogContentRef),resetPosition:u(()=>P.value?.resetPosition),loading:u(()=>H.loading),visible:u(()=>H.visible),open:I,close:L,refresh:N,doLoading:e=>{H.loading=!0,x(e).then().catch(e=>{T("FaDialog",e)}).finally(()=>{H.loading=!1})}})}});export{P as default,H as faDialogEmits,R as faDialogProps};
2
2
  //# sourceMappingURL=dialog.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.mjs","sources":["../../../../../packages/components/dialog/src/dialog.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, nextTick, reactive, ref, watch } from \"vue\";\nimport { ElButton, ElDialog, ElIcon, ElMessage, ElMessageBox, ElScrollbar, dialogEmits, dialogProps, useGlobalSize } from \"element-plus\";\nimport { Close, Eleme, FullScreen, Refresh } from \"@element-plus/icons-vue\";\nimport { FullScreenExit } from \"@fast-element-plus/icons-vue\";\nimport { consoleError, definePropType, execFunction, makeSlots, useExpose, useProps, useRender } from \"@fast-china/utils\";\nimport { isBoolean } from \"lodash-unified\";\nimport type { DialogInstance } from \"element-plus\";\nimport type { VNode } from \"vue\";\n\nexport const faDialogProps = {\n\t...dialogProps,\n\t/** @description whether to align the dialog both horizontally and vertically*/\n\talignCenter: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description whether to append Dialog itself to body. A nested Dialog should have this attribute set to `true` */\n\tappendToBody: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description enable dragging feature for Dialog */\n\tdraggable: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description destroy elements in Dialog when closed */\n\tdestroyOnClose: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description draggable Dialog can overflow the viewport */\n\toverflow: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description value for `margin-top` of Dialog CSS, default is 15vh */\n\ttop: {\n\t\ttype: String,\n\t\tdefault: \"5vh\",\n\t},\n\t/** @description width of Dialog, default is 50% */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"90%\",\n\t},\n\t/** @description 显示刷新按钮 */\n\tshowRefresh: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示全屏图标 */\n\tshowFullscreen: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示关闭按钮 */\n\tshowCloseButton: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示确认按钮 */\n\tshowConfirmButton: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 禁用确认按钮 */\n\tdisabledConfirmButton: Boolean,\n\t/** @description 关闭按钮文字,默认取消 */\n\tcloseButtonText: {\n\t\ttype: String,\n\t\tdefault: \"取消\",\n\t},\n\t/** @description 确认按钮文字,默认确认 */\n\tconfirmButtonText: {\n\t\ttype: String,\n\t\tdefault: \"确认\",\n\t},\n\t/** @description 隐藏底部操作 */\n\thideFooter: Boolean,\n\t/** @description 撑满高度 */\n\tfillHeight: Boolean,\n\t/** @description 显示关闭回调 */\n\tshowBeforeClose: Boolean,\n\t/** @description 打开之后 */\n\tafterOpen: {\n\t\ttype: definePropType<() => void>(Function),\n\t},\n};\n\nexport const faDialogEmits = {\n\t...dialogEmits,\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: boolean): boolean => isBoolean(value),\n\t/** @description 确认按钮点击事件 */\n\tconfirmClick: (): boolean => true,\n};\n\ntype FaDialogSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: { loading: boolean };\n\t/** @description 头部插槽 */\n\theader: { loading: boolean; close: () => void };\n\t/** @description 底部插槽 */\n\tfooter: { loading: boolean; close: () => void };\n};\n\nexport default defineComponent({\n\tname: \"FaDialog\",\n\tprops: faDialogProps,\n\temits: faDialogEmits,\n\tslots: makeSlots<FaDialogSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst _globalSize = useGlobalSize();\n\n\t\tconst state = reactive({\n\t\t\tloading: false,\n\t\t\tvisible: false,\n\t\t\tfullscreen: false,\n\t\t\trefreshing: false,\n\t\t});\n\n\t\tconst dialogRef = ref<DialogInstance>();\n\n\t\tlet cacheOpenFunction = undefined;\n\n\t\tconst handleOpen = (openFunction?: () => void | Promise<void>): void => {\n\t\t\tstate.visible = true;\n\t\t\tcacheOpenFunction = openFunction;\n\t\t\tnextTick(() => {\n\t\t\t\tstate.loading = true;\n\t\t\t\texecFunction(props.afterOpen ?? openFunction)\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\temit(\"open\");\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t\t\t// 自动关闭\n\t\t\t\t\t\tstate.visible = false;\n\t\t\t\t\t})\n\t\t\t\t\t.finally(() => {\n\t\t\t\t\t\tstate.loading = false;\n\t\t\t\t\t});\n\t\t\t});\n\t\t};\n\n\t\tconst handleClose = (closeFunction?: () => void | Promise<void>): void => {\n\t\t\tstate.loading = true;\n\t\t\texecFunction(closeFunction)\n\t\t\t\t.then(() => {\n\t\t\t\t\temit(\"close\");\n\t\t\t\t\tstate.visible = false;\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t});\n\t\t};\n\n\t\tconst handleLoading = (loadingFunction: () => void | Promise<void>): void => {\n\t\t\tstate.loading = true;\n\t\t\texecFunction(loadingFunction)\n\t\t\t\t.then()\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t});\n\t\t};\n\n\t\tconst handleRefresh = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\tstate.refreshing = true;\n\t\t\tstate.loading = true;\n\t\t\tsetTimeout(() => {\n\t\t\t\tstate.refreshing = false;\n\t\t\t\thandleOpen(cacheOpenFunction);\n\t\t\t\tElMessage.success(\"刷新成功\");\n\t\t\t}, 500);\n\t\t};\n\n\t\tconst handleBeforeClose = (done: () => void): void => {\n\t\t\tif (state.loading) return;\n\t\t\t// 解决 image 预览摁下 ese 会关闭弹窗的问题\n\t\t\tif (document.querySelector(\".el-image-viewer__wrapper\")) return;\n\n\t\t\tconst newDone = (): void => {\n\t\t\t\texecFunction(props.beforeClose)\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\temit(\"close\");\n\t\t\t\t\t\tdone();\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t\t});\n\t\t\t};\n\n\t\t\tif (props.showBeforeClose) {\n\t\t\t\tElMessageBox.confirm(\"确定关闭?\", { type: \"warning\" }).then(() => {\n\t\t\t\t\tnewDone();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tnewDone();\n\t\t\t}\n\t\t};\n\n\t\tconst handleFullscreen = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\tstate.fullscreen = !state.fullscreen;\n\t\t};\n\n\t\tconst handleConfirmClick = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\temit(\"confirmClick\");\n\t\t};\n\n\t\tconst handleCloseClick = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\thandleClose();\n\t\t};\n\n\t\twatch(\n\t\t\t() => state.visible,\n\t\t\t(newValue) => {\n\t\t\t\temit(\"update:modelValue\", newValue);\n\t\t\t}\n\t\t);\n\n\t\tconst elDialogProps = useProps(props, dialogProps, [\"modelValue\", \"fullscreen\", \"showClose\", \"beforeClose\"]);\n\n\t\tuseRender(() => (\n\t\t\t<ElDialog\n\t\t\t\t{...elDialogProps.value}\n\t\t\t\tref={dialogRef}\n\t\t\t\tclass={[\n\t\t\t\t\t\"fa-dialog\",\n\t\t\t\t\t`fa-dialog-${_globalSize.value}`,\n\t\t\t\t\t{ \"fa-dialog__fill-height\": props.fillHeight, \"fa-dialog__fullscreen\": state.fullscreen },\n\t\t\t\t]}\n\t\t\t\tvModel={state.visible}\n\t\t\t\tfullscreen={state.fullscreen}\n\t\t\t\tshowClose={false}\n\t\t\t\tbeforeClose={handleBeforeClose}\n\t\t\t\tonOpened={() => emit(\"opened\")}\n\t\t\t\tonClosed={() => emit(\"closed\")}\n\t\t\t\tonOpenAutoFocus={() => emit(\"openAutoFocus\")}\n\t\t\t\tonCloseAutoFocus={() => emit(\"closeAutoFocus\")}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\theader: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t<div class=\"fa-dialog__header-title\">\n\t\t\t\t\t\t\t\t{props.title}\n\t\t\t\t\t\t\t\t{slots.header && slots.header({ loading: state.loading, close: handleCloseClick })}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{props.showRefresh && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle=\"刷新\"\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-dialog__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleRefresh}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon>\n\t\t\t\t\t\t\t\t\t\t<Refresh />\n\t\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{props.showFullscreen && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle={state.fullscreen ? \"关闭全屏显示\" : \"全屏显示\"}\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-dialog__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleFullscreen}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon>{state.fullscreen ? <FullScreenExit /> : <FullScreen />}</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{props.showClose && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle=\"关闭\"\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-dialog__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleCloseClick}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon>\n\t\t\t\t\t\t\t\t\t\t<Close />\n\t\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t<ElScrollbar vLoading={state.loading} element-loading-text=\"加载中...\">\n\t\t\t\t\t\t\t{!state.refreshing && slots.default && slots.default(state)}\n\t\t\t\t\t\t</ElScrollbar>\n\t\t\t\t\t),\n\t\t\t\t\t...(!props.hideFooter && {\n\t\t\t\t\t\tfooter: (): VNode[] => (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t{slots.footer && slots.footer({ loading: state.loading, close: handleCloseClick })}\n\t\t\t\t\t\t\t\t{props.showCloseButton && (\n\t\t\t\t\t\t\t\t\t<ElButton disabled={state.loading} onClick={handleCloseClick}>\n\t\t\t\t\t\t\t\t\t\t{props.closeButtonText}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{props.showConfirmButton && (\n\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\tloading={state.loading}\n\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\tdisabled={props.disabledConfirmButton}\n\t\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\t\tonClick={handleConfirmClick}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{state.loading ? \"加载中...\" : props.confirmButtonText}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t),\n\t\t\t\t\t}),\n\t\t\t\t}}\n\t\t\t</ElDialog>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 弹窗内容引用 */\n\t\t\tdialogContentRef: computed(() => dialogRef.value?.dialogContentRef),\n\t\t\t/** @description 重置位置 */\n\t\t\tresetPosition: computed(() => dialogRef.value?.resetPosition),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 是否显示 */\n\t\t\tvisible: computed(() => state.visible),\n\t\t\t/** @description 打开弹窗 */\n\t\t\topen: handleOpen,\n\t\t\t/** @description 关闭弹窗 */\n\t\t\tclose: handleClose,\n\t\t\t/** @description 刷新弹窗 */\n\t\t\trefresh: handleRefresh,\n\t\t\t/** @description 弹窗加载 */\n\t\t\tdoLoading: handleLoading,\n\t\t});\n\t},\n});\n"],"names":["faDialogProps","dialogProps","alignCenter","type","Boolean","default","appendToBody","draggable","destroyOnClose","overflow","top","String","width","Number","showRefresh","showFullscreen","showCloseButton","showConfirmButton","disabledConfirmButton","closeButtonText","confirmButtonText","hideFooter","fillHeight","showBeforeClose","afterOpen","definePropType","Function","faDialogEmits","dialogEmits","value","isBoolean","confirmClick","Dialog","name","props","emits","slots","makeSlots","setup","attrs","emit","expose","_globalSize","useGlobalSize","state","reactive","loading","visible","fullscreen","refreshing","dialogRef","ref","cacheOpenFunction","handleOpen","openFunction","nextTick","execFunction","then","catch","error","consoleError","finally","handleClose","closeFunction","handleRefresh","setTimeout","ElMessage","success","handleBeforeClose","done","document","querySelector","newDone","beforeClose","ElMessageBox","confirm","handleFullscreen","handleConfirmClick","handleCloseClick","watch","newValue","elDialogProps","useProps","useRender","_createVNode","ElDialog","_mergeProps","class","modelValue","$event","showClose","onOpened","onClosed","onOpenAutoFocus","onCloseAutoFocus","header","_Fragment","title","close","onClick","ElIcon","Refresh","FullScreenExit","FullScreen","Close","_withDirectives","ElScrollbar","_resolveDirective","footer","ElButton","disabled","loadingIcon","Eleme","useExpose","dialogContentRef","computed","resetPosition","open","refresh","doLoading","loadingFunction"],"mappings":"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"}
1
+ {"version":3,"file":"dialog.mjs","sources":["../../../../../packages/components/dialog/src/dialog.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, nextTick, reactive, ref, watch } from \"vue\";\nimport { ElButton, ElDialog, ElIcon, ElMessage, ElMessageBox, ElScrollbar, dialogEmits, dialogProps, useGlobalSize } from \"element-plus\";\nimport { Close, Eleme, Refresh } from \"@element-plus/icons-vue\";\nimport { FullScreen, FullScreenExit } from \"@fast-element-plus/icons-vue\";\nimport { consoleError, definePropType, execFunction, makeSlots, useExpose, useProps, useRender } from \"@fast-china/utils\";\nimport { isBoolean } from \"lodash-unified\";\nimport type { DialogInstance } from \"element-plus\";\nimport type { VNode } from \"vue\";\n\nexport const faDialogProps = {\n\t...dialogProps,\n\t/** @description whether to align the dialog both horizontally and vertically*/\n\talignCenter: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description whether to append Dialog itself to body. A nested Dialog should have this attribute set to `true` */\n\tappendToBody: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description enable dragging feature for Dialog */\n\tdraggable: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description destroy elements in Dialog when closed */\n\tdestroyOnClose: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description draggable Dialog can overflow the viewport */\n\toverflow: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description value for `margin-top` of Dialog CSS, default is 15vh */\n\ttop: {\n\t\ttype: String,\n\t\tdefault: \"5vh\",\n\t},\n\t/** @description width of Dialog, default is 50% */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"90%\",\n\t},\n\t/** @description 显示刷新按钮 */\n\tshowRefresh: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示全屏图标 */\n\tshowFullscreen: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示关闭按钮 */\n\tshowCloseButton: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示确认按钮 */\n\tshowConfirmButton: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 禁用确认按钮 */\n\tdisabledConfirmButton: Boolean,\n\t/** @description 关闭按钮文字,默认取消 */\n\tcloseButtonText: {\n\t\ttype: String,\n\t\tdefault: \"取消\",\n\t},\n\t/** @description 确认按钮文字,默认确认 */\n\tconfirmButtonText: {\n\t\ttype: String,\n\t\tdefault: \"确认\",\n\t},\n\t/** @description 隐藏底部操作 */\n\thideFooter: Boolean,\n\t/** @description 撑满高度 */\n\tfillHeight: Boolean,\n\t/** @description 显示关闭回调 */\n\tshowBeforeClose: Boolean,\n\t/** @description 打开之后 */\n\tafterOpen: {\n\t\ttype: definePropType<() => void>(Function),\n\t},\n};\n\nexport const faDialogEmits = {\n\t...dialogEmits,\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: boolean): boolean => isBoolean(value),\n\t/** @description 确认按钮点击事件 */\n\tconfirmClick: (): boolean => true,\n};\n\ntype FaDialogSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: { loading: boolean };\n\t/** @description 头部插槽 */\n\theader: { loading: boolean; close: () => void };\n\t/** @description 底部插槽 */\n\tfooter: { loading: boolean; close: () => void };\n};\n\nexport default defineComponent({\n\tname: \"FaDialog\",\n\tprops: faDialogProps,\n\temits: faDialogEmits,\n\tslots: makeSlots<FaDialogSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst _globalSize = useGlobalSize();\n\n\t\tconst state = reactive({\n\t\t\tloading: false,\n\t\t\tvisible: false,\n\t\t\tfullscreen: false,\n\t\t\trefreshing: false,\n\t\t});\n\n\t\tconst dialogRef = ref<DialogInstance>();\n\n\t\tlet cacheOpenFunction = undefined;\n\n\t\tconst handleOpen = (openFunction?: () => void | Promise<void>): void => {\n\t\t\tstate.visible = true;\n\t\t\tcacheOpenFunction = openFunction;\n\t\t\tnextTick(() => {\n\t\t\t\tstate.loading = true;\n\t\t\t\texecFunction(props.afterOpen ?? openFunction)\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\temit(\"open\");\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t\t\t// 自动关闭\n\t\t\t\t\t\tstate.visible = false;\n\t\t\t\t\t})\n\t\t\t\t\t.finally(() => {\n\t\t\t\t\t\tstate.loading = false;\n\t\t\t\t\t});\n\t\t\t});\n\t\t};\n\n\t\tconst handleClose = (closeFunction?: () => void | Promise<void>): void => {\n\t\t\tstate.loading = true;\n\t\t\texecFunction(closeFunction)\n\t\t\t\t.then(() => {\n\t\t\t\t\temit(\"close\");\n\t\t\t\t\tstate.visible = false;\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t});\n\t\t};\n\n\t\tconst handleLoading = (loadingFunction: () => void | Promise<void>): void => {\n\t\t\tstate.loading = true;\n\t\t\texecFunction(loadingFunction)\n\t\t\t\t.then()\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t});\n\t\t};\n\n\t\tconst handleRefresh = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\tstate.refreshing = true;\n\t\t\tstate.loading = true;\n\t\t\tsetTimeout(() => {\n\t\t\t\tstate.refreshing = false;\n\t\t\t\thandleOpen(cacheOpenFunction);\n\t\t\t\tElMessage.success(\"刷新成功\");\n\t\t\t}, 500);\n\t\t};\n\n\t\tconst handleBeforeClose = (done: () => void): void => {\n\t\t\tif (state.loading) return;\n\t\t\t// 解决 image 预览摁下 ese 会关闭弹窗的问题\n\t\t\tif (document.querySelector(\".el-image-viewer__wrapper\")) return;\n\n\t\t\tconst newDone = (): void => {\n\t\t\t\texecFunction(props.beforeClose)\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\temit(\"close\");\n\t\t\t\t\t\tdone();\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t\t});\n\t\t\t};\n\n\t\t\tif (props.showBeforeClose) {\n\t\t\t\tElMessageBox.confirm(\"确定关闭?\", { type: \"warning\" }).then(() => {\n\t\t\t\t\tnewDone();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tnewDone();\n\t\t\t}\n\t\t};\n\n\t\tconst handleFullscreen = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\tstate.fullscreen = !state.fullscreen;\n\t\t};\n\n\t\tconst handleConfirmClick = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\temit(\"confirmClick\");\n\t\t};\n\n\t\tconst handleCloseClick = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\thandleClose();\n\t\t};\n\n\t\twatch(\n\t\t\t() => state.visible,\n\t\t\t(newValue) => {\n\t\t\t\temit(\"update:modelValue\", newValue);\n\t\t\t}\n\t\t);\n\n\t\tconst elDialogProps = useProps(props, dialogProps, [\"modelValue\", \"fullscreen\", \"showClose\", \"beforeClose\"]);\n\n\t\tuseRender(() => (\n\t\t\t<ElDialog\n\t\t\t\t{...elDialogProps.value}\n\t\t\t\tref={dialogRef}\n\t\t\t\tclass={[\n\t\t\t\t\t\"fa-dialog\",\n\t\t\t\t\t`fa-dialog-${_globalSize.value}`,\n\t\t\t\t\t{ \"fa-dialog__fill-height\": props.fillHeight, \"fa-dialog__fullscreen\": state.fullscreen },\n\t\t\t\t]}\n\t\t\t\tvModel={state.visible}\n\t\t\t\tfullscreen={state.fullscreen}\n\t\t\t\tshowClose={false}\n\t\t\t\tbeforeClose={handleBeforeClose}\n\t\t\t\tonOpened={() => emit(\"opened\")}\n\t\t\t\tonClosed={() => emit(\"closed\")}\n\t\t\t\tonOpenAutoFocus={() => emit(\"openAutoFocus\")}\n\t\t\t\tonCloseAutoFocus={() => emit(\"closeAutoFocus\")}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\theader: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t<div class=\"fa-dialog__header-title\">\n\t\t\t\t\t\t\t\t{props.title}\n\t\t\t\t\t\t\t\t{slots.header && slots.header({ loading: state.loading, close: handleCloseClick })}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{props.showRefresh && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle=\"刷新\"\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-dialog__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleRefresh}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon>\n\t\t\t\t\t\t\t\t\t\t<Refresh />\n\t\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{props.showFullscreen && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle={state.fullscreen ? \"关闭全屏显示\" : \"全屏显示\"}\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-dialog__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleFullscreen}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon>{state.fullscreen ? <FullScreenExit /> : <FullScreen />}</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{props.showClose && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle=\"关闭\"\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-dialog__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleCloseClick}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon>\n\t\t\t\t\t\t\t\t\t\t<Close />\n\t\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t<ElScrollbar vLoading={state.loading} element-loading-text=\"加载中...\">\n\t\t\t\t\t\t\t{!state.refreshing && slots.default && slots.default(state)}\n\t\t\t\t\t\t</ElScrollbar>\n\t\t\t\t\t),\n\t\t\t\t\t...(!props.hideFooter && {\n\t\t\t\t\t\tfooter: (): VNode[] => (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t{slots.footer && slots.footer({ loading: state.loading, close: handleCloseClick })}\n\t\t\t\t\t\t\t\t{props.showCloseButton && (\n\t\t\t\t\t\t\t\t\t<ElButton disabled={state.loading} onClick={handleCloseClick}>\n\t\t\t\t\t\t\t\t\t\t{props.closeButtonText}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{props.showConfirmButton && (\n\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\tloading={state.loading}\n\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\tdisabled={props.disabledConfirmButton}\n\t\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\t\tonClick={handleConfirmClick}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{state.loading ? \"加载中...\" : props.confirmButtonText}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t),\n\t\t\t\t\t}),\n\t\t\t\t}}\n\t\t\t</ElDialog>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 弹窗内容引用 */\n\t\t\tdialogContentRef: computed(() => dialogRef.value?.dialogContentRef),\n\t\t\t/** @description 重置位置 */\n\t\t\tresetPosition: computed(() => dialogRef.value?.resetPosition),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 是否显示 */\n\t\t\tvisible: computed(() => state.visible),\n\t\t\t/** @description 打开弹窗 */\n\t\t\topen: handleOpen,\n\t\t\t/** @description 关闭弹窗 */\n\t\t\tclose: handleClose,\n\t\t\t/** @description 刷新弹窗 */\n\t\t\trefresh: handleRefresh,\n\t\t\t/** @description 弹窗加载 */\n\t\t\tdoLoading: handleLoading,\n\t\t});\n\t},\n});\n"],"names":["faDialogProps","dialogProps","alignCenter","type","Boolean","default","appendToBody","draggable","destroyOnClose","overflow","top","String","width","Number","showRefresh","showFullscreen","showCloseButton","showConfirmButton","disabledConfirmButton","closeButtonText","confirmButtonText","hideFooter","fillHeight","showBeforeClose","afterOpen","definePropType","Function","faDialogEmits","dialogEmits","value","isBoolean","confirmClick","Dialog","name","props","emits","slots","makeSlots","setup","attrs","emit","expose","_globalSize","useGlobalSize","state","reactive","loading","visible","fullscreen","refreshing","dialogRef","ref","cacheOpenFunction","handleOpen","openFunction","nextTick","execFunction","then","catch","error","consoleError","finally","handleClose","closeFunction","handleRefresh","setTimeout","ElMessage","success","handleBeforeClose","done","document","querySelector","newDone","beforeClose","ElMessageBox","confirm","handleFullscreen","handleConfirmClick","handleCloseClick","watch","newValue","elDialogProps","useProps","useRender","_createVNode","ElDialog","_mergeProps","class","modelValue","$event","showClose","onOpened","onClosed","onOpenAutoFocus","onCloseAutoFocus","header","_Fragment","title","close","onClick","ElIcon","Refresh","FullScreenExit","FullScreen","Close","_withDirectives","ElScrollbar","_resolveDirective","footer","ElButton","disabled","loadingIcon","Eleme","useExpose","dialogContentRef","computed","resetPosition","open","refresh","doLoading","loadingFunction"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{defineComponent as e,reactive as l,ref as o,nextTick as a,watch as n,createVNode as t,mergeProps as i,Fragment as s,withDirectives as d,resolveDirective as r,computed as u}from"vue";import{drawerProps as c,drawerEmits as f,useGlobalSize as _,ElMessage as m,ElMessageBox as g,ElDrawer as h,ElButton as p,ElScrollbar as w,ElIcon as v}from"element-plus";import{Eleme as b,Refresh as C,FullScreen as B,Close as y}from"@element-plus/icons-vue";import{FullScreenExit as k}from"@fast-element-plus/icons-vue";import{definePropType as F,execFunction as x,consoleError as z,useProps as T,useRender as D,useExpose as O,makeSlots as V}from"@fast-china/utils";import{isBoolean as A}from"lodash-unified";const L={...c,appendToBody:{type:Boolean,default:!0},draggable:{type:Boolean,default:!0},destroyOnClose:{type:Boolean,default:!0},showRefresh:{type:Boolean,default:!0},showFullscreen:{type:Boolean,default:!0},showCloseButton:{type:Boolean,default:!0},showConfirmButton:{type:Boolean,default:!0},disabledConfirmButton:Boolean,closeButtonText:{type:String,default:"取消"},confirmButtonText:{type:String,default:"确认"},hideFooter:Boolean,showBeforeClose:Boolean,afterOpen:{type:F(Function)}},S={...f,"update:modelValue":e=>A(e),confirmClick:()=>!0},W=/* @__PURE__ */e({name:"FaDrawer",props:L,emits:S,slots:V(),setup(e,{attrs:f,slots:F,emit:V,expose:A}){const L=_(),S=l({loading:!1,visible:!1,fullscreen:!1,size:e.size??"30%",dragging:!1,refreshing:!1}),W=o();let E;const R=l=>{S.visible=!0,E=l,a(()=>{S.loading=!0,x(e.afterOpen??l).then(()=>{V("open")}).catch(e=>{z("FaDrawer",e),S.visible=!1}).finally(()=>{S.loading=!1})})},$=e=>{S.loading=!0,x(e).then(()=>{V("close"),S.visible=!1}).catch(e=>{z("FaDrawer",e)}).finally(()=>{S.loading=!1})},q=()=>{S.refreshing=!0,S.loading=!0,setTimeout(()=>{S.refreshing=!1,R(E),m.success("刷新成功")},500)},I=l=>{if(S.loading)return;if(document.querySelector(".el-image-viewer__wrapper"))return;const o=()=>{x(e.beforeClose).then(()=>{V("close"),l()}).catch(e=>{z("FaDialog",e)})};e.showBeforeClose?g.confirm("确定关闭?",{type:"warning"}).then(()=>{o()}):o()},U=()=>{S.loading||(S.fullscreen=!S.fullscreen)},X=()=>{S.loading||V("confirmClick")},j=()=>{S.loading||$()};n(()=>S.visible,e=>{V("update:modelValue",e)});const G=()=>{document.onmousemove=e=>{let l=document.body.clientWidth-e.pageX;const o=.2*document.body.clientWidth,a=.95*document.body.clientWidth;l=l>a?a:l<o?o:l,S.size=`${l}px`},document.onmouseup=()=>{document.onmousemove=document.onmouseup=null}},H=T(e,c,["modelValue","size","showClose","beforeClose"]);return D(()=>t(h,i(H.value,{ref:W,class:["fa-drawer",`fa-drawer-${L.value}`,{"fa-drawer__fullscreen":S.fullscreen}],modelValue:S.visible,"onUpdate:modelValue":e=>S.visible=e,size:S.size,showClose:!1,beforeClose:I,onOpened:()=>V("opened"),onClosed:()=>V("closed"),onOpenAutoFocus:()=>V("openAutoFocus"),onCloseAutoFocus:()=>V("closeAutoFocus")}),{header:()=>t(s,null,[t("div",{class:"fa-drawer__header-title"},[e.title,F.header&&F.header({loading:S.loading,close:j})]),e.showRefresh&&t("div",{title:"刷新",class:["fa-drawer__header-icon",S.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:q},[t(v,{class:"icon"},{default:()=>[t(C,null,null)]})]),e.showFullscreen&&t("div",{title:S.fullscreen?"关闭全屏显示":"全屏显示",class:["fa-drawer__header-icon",S.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:U},[t(v,null,{default:()=>[S.fullscreen?t(k,null,null):t(B,null,null)]})]),e.showClose&&t("div",{title:"关闭",class:["fa-drawer__header-icon",S.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:j},[t(v,{class:"icon"},{default:()=>[t(y,null,null)]})])]),default:()=>t(s,null,[e.draggable&&t("div",{class:"fa-drawer__draggable",onmousedown:G},null),d(t(w,{"element-loading-text":"加载中..."},{default:()=>[!S.refreshing&&F.default&&F.default(S)]}),[[r("loading"),S.loading]])]),...!e.hideFooter&&{footer:()=>t(s,null,[F.footer&&F.footer({loading:S.loading,close:j}),e.showCloseButton&&t(p,{disabled:S.loading,onClick:j},{default:()=>[e.closeButtonText]}),e.showConfirmButton&&t(p,{loading:S.loading,loadingIcon:b,disabled:e.disabledConfirmButton,type:"primary",onClick:X},{default:()=>[S.loading?"加载中...":e.confirmButtonText]})])}})),O(A,{handleClose:u(()=>W.value?.handleClose),afterEnter:u(()=>W.value?.afterEnter),afterLeave:u(()=>W.value?.afterLeave),loading:u(()=>S.loading),visible:u(()=>S.visible),open:R,close:$,refresh:q,doLoading:e=>{S.loading=!0,x(e).then().catch(e=>{z("FaDrawer",e)}).finally(()=>{S.loading=!1})}})}});export{W as default,S as faDrawerEmits,L as faDrawerProps};
1
+ import{defineComponent as e,reactive as l,ref as o,nextTick as a,watch as n,createVNode as t,mergeProps as i,Fragment as s,withDirectives as d,resolveDirective as r,computed as u}from"vue";import{drawerProps as c,drawerEmits as f,useGlobalSize as _,ElMessage as m,ElMessageBox as g,ElDrawer as h,ElButton as p,ElScrollbar as w,ElIcon as v}from"element-plus";import{Eleme as b,Refresh as C,Close as B}from"@element-plus/icons-vue";import{FullScreenExit as y,FullScreen as k}from"@fast-element-plus/icons-vue";import{definePropType as F,execFunction as x,consoleError as z,useProps as T,useRender as D,useExpose as O,makeSlots as V}from"@fast-china/utils";import{isBoolean as A}from"lodash-unified";const L={...c,appendToBody:{type:Boolean,default:!0},draggable:{type:Boolean,default:!0},destroyOnClose:{type:Boolean,default:!0},showRefresh:{type:Boolean,default:!0},showFullscreen:{type:Boolean,default:!0},showCloseButton:{type:Boolean,default:!0},showConfirmButton:{type:Boolean,default:!0},disabledConfirmButton:Boolean,closeButtonText:{type:String,default:"取消"},confirmButtonText:{type:String,default:"确认"},hideFooter:Boolean,showBeforeClose:Boolean,afterOpen:{type:F(Function)}},S={...f,"update:modelValue":e=>A(e),confirmClick:()=>!0},W=/* @__PURE__ */e({name:"FaDrawer",props:L,emits:S,slots:V(),setup(e,{attrs:f,slots:F,emit:V,expose:A}){const L=_(),S=l({loading:!1,visible:!1,fullscreen:!1,size:e.size??"30%",dragging:!1,refreshing:!1}),W=o();let E;const R=l=>{S.visible=!0,E=l,a(()=>{S.loading=!0,x(e.afterOpen??l).then(()=>{V("open")}).catch(e=>{z("FaDrawer",e),S.visible=!1}).finally(()=>{S.loading=!1})})},$=e=>{S.loading=!0,x(e).then(()=>{V("close"),S.visible=!1}).catch(e=>{z("FaDrawer",e)}).finally(()=>{S.loading=!1})},q=()=>{S.refreshing=!0,S.loading=!0,setTimeout(()=>{S.refreshing=!1,R(E),m.success("刷新成功")},500)},I=l=>{if(S.loading)return;if(document.querySelector(".el-image-viewer__wrapper"))return;const o=()=>{x(e.beforeClose).then(()=>{V("close"),l()}).catch(e=>{z("FaDialog",e)})};e.showBeforeClose?g.confirm("确定关闭?",{type:"warning"}).then(()=>{o()}):o()},U=()=>{S.loading||(S.fullscreen=!S.fullscreen)},X=()=>{S.loading||V("confirmClick")},j=()=>{S.loading||$()};n(()=>S.visible,e=>{V("update:modelValue",e)});const G=()=>{document.onmousemove=e=>{let l=document.body.clientWidth-e.pageX;const o=.2*document.body.clientWidth,a=.95*document.body.clientWidth;l=l>a?a:l<o?o:l,S.size=`${l}px`},document.onmouseup=()=>{document.onmousemove=document.onmouseup=null}},H=T(e,c,["modelValue","size","showClose","beforeClose"]);return D(()=>t(h,i(H.value,{ref:W,class:["fa-drawer",`fa-drawer-${L.value}`,{"fa-drawer__fullscreen":S.fullscreen}],modelValue:S.visible,"onUpdate:modelValue":e=>S.visible=e,size:S.size,showClose:!1,beforeClose:I,onOpened:()=>V("opened"),onClosed:()=>V("closed"),onOpenAutoFocus:()=>V("openAutoFocus"),onCloseAutoFocus:()=>V("closeAutoFocus")}),{header:()=>t(s,null,[t("div",{class:"fa-drawer__header-title"},[e.title,F.header&&F.header({loading:S.loading,close:j})]),e.showRefresh&&t("div",{title:"刷新",class:["fa-drawer__header-icon",S.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:q},[t(v,{class:"icon"},{default:()=>[t(C,null,null)]})]),e.showFullscreen&&t("div",{title:S.fullscreen?"关闭全屏显示":"全屏显示",class:["fa-drawer__header-icon",S.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:U},[t(v,null,{default:()=>[S.fullscreen?t(y,null,null):t(k,null,null)]})]),e.showClose&&t("div",{title:"关闭",class:["fa-drawer__header-icon",S.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:j},[t(v,{class:"icon"},{default:()=>[t(B,null,null)]})])]),default:()=>t(s,null,[e.draggable&&t("div",{class:"fa-drawer__draggable",onmousedown:G},null),d(t(w,{"element-loading-text":"加载中..."},{default:()=>[!S.refreshing&&F.default&&F.default(S)]}),[[r("loading"),S.loading]])]),...!e.hideFooter&&{footer:()=>t(s,null,[F.footer&&F.footer({loading:S.loading,close:j}),e.showCloseButton&&t(p,{disabled:S.loading,onClick:j},{default:()=>[e.closeButtonText]}),e.showConfirmButton&&t(p,{loading:S.loading,loadingIcon:b,disabled:e.disabledConfirmButton,type:"primary",onClick:X},{default:()=>[S.loading?"加载中...":e.confirmButtonText]})])}})),O(A,{handleClose:u(()=>W.value?.handleClose),afterEnter:u(()=>W.value?.afterEnter),afterLeave:u(()=>W.value?.afterLeave),loading:u(()=>S.loading),visible:u(()=>S.visible),open:R,close:$,refresh:q,doLoading:e=>{S.loading=!0,x(e).then().catch(e=>{z("FaDrawer",e)}).finally(()=>{S.loading=!1})}})}});export{W as default,S as faDrawerEmits,L as faDrawerProps};
2
2
  //# sourceMappingURL=drawer.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"drawer.mjs","sources":["../../../../../packages/components/drawer/src/drawer.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, nextTick, reactive, ref, watch } from \"vue\";\nimport { ElButton, ElDrawer, ElIcon, ElMessage, ElMessageBox, ElScrollbar, drawerEmits, drawerProps, useGlobalSize } from \"element-plus\";\nimport { Close, Eleme, FullScreen, Refresh } from \"@element-plus/icons-vue\";\nimport { FullScreenExit } from \"@fast-element-plus/icons-vue\";\nimport { consoleError, definePropType, execFunction, makeSlots, useExpose, useProps, useRender } from \"@fast-china/utils\";\nimport { isBoolean } from \"lodash-unified\";\nimport type { VNode } from \"vue\";\n\nexport const faDrawerProps = {\n\t...drawerProps,\n\t/** @description whether to append Dialog itself to body. A nested Dialog should have this attribute set to `true` */\n\tappendToBody: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description enable dragging feature for Dialog */\n\tdraggable: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description destroy elements in Dialog when closed */\n\tdestroyOnClose: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示刷新按钮 */\n\tshowRefresh: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示全屏图标 */\n\tshowFullscreen: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示关闭按钮 */\n\tshowCloseButton: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示确认按钮 */\n\tshowConfirmButton: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 禁用确认按钮 */\n\tdisabledConfirmButton: Boolean,\n\t/** @description 关闭按钮文字,默认取消 */\n\tcloseButtonText: {\n\t\ttype: String,\n\t\tdefault: \"取消\",\n\t},\n\t/** @description 确认按钮文字,默认确认 */\n\tconfirmButtonText: {\n\t\ttype: String,\n\t\tdefault: \"确认\",\n\t},\n\t/** @description 隐藏底部操作 */\n\thideFooter: Boolean,\n\t/** @description 显示关闭回调 */\n\tshowBeforeClose: Boolean,\n\t/** @description 打开之后 */\n\tafterOpen: {\n\t\ttype: definePropType<() => void>(Function),\n\t},\n};\n\nexport const faDrawerEmits = {\n\t...drawerEmits,\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: boolean): boolean => isBoolean(value),\n\t/** @description 确认按钮点击事件 */\n\tconfirmClick: (): boolean => true,\n};\n\ntype FaDrawerSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: { loading: boolean };\n\t/** @description 头部插槽 */\n\theader: { loading: boolean; close: () => void };\n\t/** @description 底部插槽 */\n\tfooter: { loading: boolean; close: () => void };\n};\n\nexport default defineComponent({\n\tname: \"FaDrawer\",\n\tprops: faDrawerProps,\n\temits: faDrawerEmits,\n\tslots: makeSlots<FaDrawerSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst _globalSize = useGlobalSize();\n\n\t\tconst state = reactive({\n\t\t\tloading: false,\n\t\t\tvisible: false,\n\t\t\tfullscreen: false,\n\t\t\tsize: props.size ?? \"30%\",\n\t\t\tdragging: false,\n\t\t\trefreshing: false,\n\t\t});\n\n\t\tconst drawerRef = ref<InstanceType<typeof ElDrawer>>();\n\n\t\tlet cacheOpenFunction = undefined;\n\n\t\tconst handleOpen = (openFunction?: () => void | Promise<void>): void => {\n\t\t\tstate.visible = true;\n\t\t\tcacheOpenFunction = openFunction;\n\t\t\tnextTick(() => {\n\t\t\t\tstate.loading = true;\n\t\t\t\texecFunction(props.afterOpen ?? openFunction)\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\temit(\"open\");\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tconsoleError(\"FaDrawer\", error);\n\t\t\t\t\t\t// 自动关闭\n\t\t\t\t\t\tstate.visible = false;\n\t\t\t\t\t})\n\t\t\t\t\t.finally(() => {\n\t\t\t\t\t\tstate.loading = false;\n\t\t\t\t\t});\n\t\t\t});\n\t\t};\n\n\t\tconst handleClose = (closeFunction?: () => void | Promise<void>): void => {\n\t\t\tstate.loading = true;\n\t\t\texecFunction(closeFunction)\n\t\t\t\t.then(() => {\n\t\t\t\t\temit(\"close\");\n\t\t\t\t\tstate.visible = false;\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsoleError(\"FaDrawer\", error);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t});\n\t\t};\n\n\t\tconst handleLoading = (loadingFunction: () => void | Promise<void>): void => {\n\t\t\tstate.loading = true;\n\t\t\texecFunction(loadingFunction)\n\t\t\t\t.then()\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsoleError(\"FaDrawer\", error);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t});\n\t\t};\n\n\t\tconst handleRefresh = (): void => {\n\t\t\tstate.refreshing = true;\n\t\t\tstate.loading = true;\n\t\t\tsetTimeout(() => {\n\t\t\t\tstate.refreshing = false;\n\t\t\t\thandleOpen(cacheOpenFunction);\n\t\t\t\tElMessage.success(\"刷新成功\");\n\t\t\t}, 500);\n\t\t};\n\n\t\tconst handleBeforeClose = (done: () => void): void => {\n\t\t\tif (state.loading) return;\n\t\t\t// 解决 image 预览摁下 ese 会关闭弹窗的问题\n\t\t\tif (document.querySelector(\".el-image-viewer__wrapper\")) return;\n\n\t\t\tconst newDone = (): void => {\n\t\t\t\texecFunction(props.beforeClose)\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\temit(\"close\");\n\t\t\t\t\t\tdone();\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t\t});\n\t\t\t};\n\n\t\t\tif (props.showBeforeClose) {\n\t\t\t\tElMessageBox.confirm(\"确定关闭?\", { type: \"warning\" }).then(() => {\n\t\t\t\t\tnewDone();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tnewDone();\n\t\t\t}\n\t\t};\n\n\t\tconst handleFullscreen = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\tstate.fullscreen = !state.fullscreen;\n\t\t};\n\n\t\tconst handleConfirmClick = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\temit(\"confirmClick\");\n\t\t};\n\n\t\tconst handleCloseClick = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\thandleClose();\n\t\t};\n\n\t\twatch(\n\t\t\t() => state.visible,\n\t\t\t(newValue) => {\n\t\t\t\temit(\"update:modelValue\", newValue);\n\t\t\t}\n\t\t);\n\n\t\t/**\n\t\t * 处理拖拽\n\t\t */\n\t\tconst handleDraggableMousedown = (): void => {\n\t\t\tdocument.onmousemove = (moveEvent: MouseEvent): void => {\n\t\t\t\t// 获取鼠标距离浏览器右边缘的距离\n\t\t\t\tlet realWidth = document.body.clientWidth - moveEvent.pageX;\n\t\t\t\tconst width20 = document.body.clientWidth * 0.2;\n\t\t\t\tconst width95 = document.body.clientWidth * 0.95;\n\t\t\t\t// 宽度不能大于浏览器宽度 95%,不能小于宽度的 20%\n\t\t\t\trealWidth = realWidth > width95 ? width95 : realWidth < width20 ? width20 : realWidth;\n\t\t\t\tstate.size = `${realWidth}px`;\n\t\t\t};\n\t\t\tdocument.onmouseup = (): void => {\n\t\t\t\tdocument.onmousemove = document.onmouseup = null;\n\t\t\t};\n\t\t};\n\n\t\tconst elDrawerProps = useProps(props, drawerProps, [\"modelValue\", \"size\", \"showClose\", \"beforeClose\"]);\n\n\t\tuseRender(() => (\n\t\t\t<ElDrawer\n\t\t\t\t{...elDrawerProps.value}\n\t\t\t\tref={drawerRef}\n\t\t\t\tclass={[\"fa-drawer\", `fa-drawer-${_globalSize.value}`, { \"fa-drawer__fullscreen\": state.fullscreen }]}\n\t\t\t\tvModel={state.visible}\n\t\t\t\tsize={state.size}\n\t\t\t\tshowClose={false}\n\t\t\t\tbeforeClose={handleBeforeClose}\n\t\t\t\tonOpened={() => emit(\"opened\")}\n\t\t\t\tonClosed={() => emit(\"closed\")}\n\t\t\t\tonOpenAutoFocus={() => emit(\"openAutoFocus\")}\n\t\t\t\tonCloseAutoFocus={() => emit(\"closeAutoFocus\")}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\theader: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t<div class=\"fa-drawer__header-title\">\n\t\t\t\t\t\t\t\t{props.title}\n\t\t\t\t\t\t\t\t{slots.header && slots.header({ loading: state.loading, close: handleCloseClick })}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{props.showRefresh && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle=\"刷新\"\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-drawer__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleRefresh}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon class=\"icon\">\n\t\t\t\t\t\t\t\t\t\t<Refresh />\n\t\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{props.showFullscreen && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle={state.fullscreen ? \"关闭全屏显示\" : \"全屏显示\"}\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-drawer__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleFullscreen}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon>{state.fullscreen ? <FullScreenExit /> : <FullScreen />}</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{props.showClose && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle=\"关闭\"\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-drawer__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleCloseClick}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon class=\"icon\">\n\t\t\t\t\t\t\t\t\t\t<Close />\n\t\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t{props.draggable && <div class=\"fa-drawer__draggable\" onmousedown={handleDraggableMousedown} />}\n\t\t\t\t\t\t\t<ElScrollbar vLoading={state.loading} element-loading-text=\"加载中...\">\n\t\t\t\t\t\t\t\t{!state.refreshing && slots.default && slots.default(state)}\n\t\t\t\t\t\t\t</ElScrollbar>\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t\t...(!props.hideFooter && {\n\t\t\t\t\t\tfooter: (): VNode[] => (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t{slots.footer && slots.footer({ loading: state.loading, close: handleCloseClick })}\n\t\t\t\t\t\t\t\t{props.showCloseButton && (\n\t\t\t\t\t\t\t\t\t<ElButton disabled={state.loading} onClick={handleCloseClick}>\n\t\t\t\t\t\t\t\t\t\t{props.closeButtonText}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{props.showConfirmButton && (\n\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\tloading={state.loading}\n\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\tdisabled={props.disabledConfirmButton}\n\t\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\t\tonClick={handleConfirmClick}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{state.loading ? \"加载中...\" : props.confirmButtonText}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t),\n\t\t\t\t\t}),\n\t\t\t\t}}\n\t\t\t</ElDrawer>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 用于关闭 Drawer, 该方法会调用传入的 before-close 方法 */\n\t\t\thandleClose: computed(() => drawerRef.value?.handleClose),\n\t\t\t/** @description 进入动画后的回调 */\n\t\t\tafterEnter: computed(() => drawerRef.value?.afterEnter),\n\t\t\t/** @description 离开动画后的回调 */\n\t\t\tafterLeave: computed(() => drawerRef.value?.afterLeave),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 是否显示 */\n\t\t\tvisible: computed(() => state.visible),\n\t\t\t/** @description 打开弹窗 */\n\t\t\topen: handleOpen,\n\t\t\t/** @description 关闭弹窗 */\n\t\t\tclose: handleClose,\n\t\t\t/** @description 刷新弹窗 */\n\t\t\trefresh: handleRefresh,\n\t\t\t/** @description 弹窗加载 */\n\t\t\tdoLoading: handleLoading,\n\t\t});\n\t},\n});\n"],"names":["faDrawerProps","drawerProps","appendToBody","type","Boolean","default","draggable","destroyOnClose","showRefresh","showFullscreen","showCloseButton","showConfirmButton","disabledConfirmButton","closeButtonText","String","confirmButtonText","hideFooter","showBeforeClose","afterOpen","definePropType","Function","faDrawerEmits","drawerEmits","value","isBoolean","confirmClick","Drawer","name","props","emits","slots","makeSlots","setup","attrs","emit","expose","_globalSize","useGlobalSize","state","reactive","loading","visible","fullscreen","size","dragging","refreshing","drawerRef","ref","cacheOpenFunction","handleOpen","openFunction","nextTick","execFunction","then","catch","error","consoleError","finally","handleClose","closeFunction","handleRefresh","setTimeout","ElMessage","success","handleBeforeClose","done","document","querySelector","newDone","beforeClose","ElMessageBox","confirm","handleFullscreen","handleConfirmClick","handleCloseClick","watch","newValue","handleDraggableMousedown","onmousemove","moveEvent","realWidth","body","clientWidth","pageX","width20","width95","onmouseup","elDrawerProps","useProps","useRender","_createVNode","ElDrawer","_mergeProps","class","modelValue","$event","showClose","onOpened","onClosed","onOpenAutoFocus","onCloseAutoFocus","header","_Fragment","title","close","onClick","ElIcon","Refresh","FullScreenExit","FullScreen","Close","onmousedown","_withDirectives","ElScrollbar","_resolveDirective","footer","ElButton","disabled","loadingIcon","Eleme","useExpose","computed","afterEnter","afterLeave","open","refresh","doLoading","loadingFunction"],"mappings":"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"}
1
+ {"version":3,"file":"drawer.mjs","sources":["../../../../../packages/components/drawer/src/drawer.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, nextTick, reactive, ref, watch } from \"vue\";\nimport { ElButton, ElDrawer, ElIcon, ElMessage, ElMessageBox, ElScrollbar, drawerEmits, drawerProps, useGlobalSize } from \"element-plus\";\nimport { Close, Eleme, Refresh } from \"@element-plus/icons-vue\";\nimport { FullScreen, FullScreenExit } from \"@fast-element-plus/icons-vue\";\nimport { consoleError, definePropType, execFunction, makeSlots, useExpose, useProps, useRender } from \"@fast-china/utils\";\nimport { isBoolean } from \"lodash-unified\";\nimport type { VNode } from \"vue\";\n\nexport const faDrawerProps = {\n\t...drawerProps,\n\t/** @description whether to append Dialog itself to body. A nested Dialog should have this attribute set to `true` */\n\tappendToBody: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description enable dragging feature for Dialog */\n\tdraggable: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description destroy elements in Dialog when closed */\n\tdestroyOnClose: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示刷新按钮 */\n\tshowRefresh: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示全屏图标 */\n\tshowFullscreen: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示关闭按钮 */\n\tshowCloseButton: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示确认按钮 */\n\tshowConfirmButton: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 禁用确认按钮 */\n\tdisabledConfirmButton: Boolean,\n\t/** @description 关闭按钮文字,默认取消 */\n\tcloseButtonText: {\n\t\ttype: String,\n\t\tdefault: \"取消\",\n\t},\n\t/** @description 确认按钮文字,默认确认 */\n\tconfirmButtonText: {\n\t\ttype: String,\n\t\tdefault: \"确认\",\n\t},\n\t/** @description 隐藏底部操作 */\n\thideFooter: Boolean,\n\t/** @description 显示关闭回调 */\n\tshowBeforeClose: Boolean,\n\t/** @description 打开之后 */\n\tafterOpen: {\n\t\ttype: definePropType<() => void>(Function),\n\t},\n};\n\nexport const faDrawerEmits = {\n\t...drawerEmits,\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: boolean): boolean => isBoolean(value),\n\t/** @description 确认按钮点击事件 */\n\tconfirmClick: (): boolean => true,\n};\n\ntype FaDrawerSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: { loading: boolean };\n\t/** @description 头部插槽 */\n\theader: { loading: boolean; close: () => void };\n\t/** @description 底部插槽 */\n\tfooter: { loading: boolean; close: () => void };\n};\n\nexport default defineComponent({\n\tname: \"FaDrawer\",\n\tprops: faDrawerProps,\n\temits: faDrawerEmits,\n\tslots: makeSlots<FaDrawerSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst _globalSize = useGlobalSize();\n\n\t\tconst state = reactive({\n\t\t\tloading: false,\n\t\t\tvisible: false,\n\t\t\tfullscreen: false,\n\t\t\tsize: props.size ?? \"30%\",\n\t\t\tdragging: false,\n\t\t\trefreshing: false,\n\t\t});\n\n\t\tconst drawerRef = ref<InstanceType<typeof ElDrawer>>();\n\n\t\tlet cacheOpenFunction = undefined;\n\n\t\tconst handleOpen = (openFunction?: () => void | Promise<void>): void => {\n\t\t\tstate.visible = true;\n\t\t\tcacheOpenFunction = openFunction;\n\t\t\tnextTick(() => {\n\t\t\t\tstate.loading = true;\n\t\t\t\texecFunction(props.afterOpen ?? openFunction)\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\temit(\"open\");\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tconsoleError(\"FaDrawer\", error);\n\t\t\t\t\t\t// 自动关闭\n\t\t\t\t\t\tstate.visible = false;\n\t\t\t\t\t})\n\t\t\t\t\t.finally(() => {\n\t\t\t\t\t\tstate.loading = false;\n\t\t\t\t\t});\n\t\t\t});\n\t\t};\n\n\t\tconst handleClose = (closeFunction?: () => void | Promise<void>): void => {\n\t\t\tstate.loading = true;\n\t\t\texecFunction(closeFunction)\n\t\t\t\t.then(() => {\n\t\t\t\t\temit(\"close\");\n\t\t\t\t\tstate.visible = false;\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsoleError(\"FaDrawer\", error);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t});\n\t\t};\n\n\t\tconst handleLoading = (loadingFunction: () => void | Promise<void>): void => {\n\t\t\tstate.loading = true;\n\t\t\texecFunction(loadingFunction)\n\t\t\t\t.then()\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsoleError(\"FaDrawer\", error);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t});\n\t\t};\n\n\t\tconst handleRefresh = (): void => {\n\t\t\tstate.refreshing = true;\n\t\t\tstate.loading = true;\n\t\t\tsetTimeout(() => {\n\t\t\t\tstate.refreshing = false;\n\t\t\t\thandleOpen(cacheOpenFunction);\n\t\t\t\tElMessage.success(\"刷新成功\");\n\t\t\t}, 500);\n\t\t};\n\n\t\tconst handleBeforeClose = (done: () => void): void => {\n\t\t\tif (state.loading) return;\n\t\t\t// 解决 image 预览摁下 ese 会关闭弹窗的问题\n\t\t\tif (document.querySelector(\".el-image-viewer__wrapper\")) return;\n\n\t\t\tconst newDone = (): void => {\n\t\t\t\texecFunction(props.beforeClose)\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\temit(\"close\");\n\t\t\t\t\t\tdone();\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t\t});\n\t\t\t};\n\n\t\t\tif (props.showBeforeClose) {\n\t\t\t\tElMessageBox.confirm(\"确定关闭?\", { type: \"warning\" }).then(() => {\n\t\t\t\t\tnewDone();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tnewDone();\n\t\t\t}\n\t\t};\n\n\t\tconst handleFullscreen = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\tstate.fullscreen = !state.fullscreen;\n\t\t};\n\n\t\tconst handleConfirmClick = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\temit(\"confirmClick\");\n\t\t};\n\n\t\tconst handleCloseClick = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\thandleClose();\n\t\t};\n\n\t\twatch(\n\t\t\t() => state.visible,\n\t\t\t(newValue) => {\n\t\t\t\temit(\"update:modelValue\", newValue);\n\t\t\t}\n\t\t);\n\n\t\t/**\n\t\t * 处理拖拽\n\t\t */\n\t\tconst handleDraggableMousedown = (): void => {\n\t\t\tdocument.onmousemove = (moveEvent: MouseEvent): void => {\n\t\t\t\t// 获取鼠标距离浏览器右边缘的距离\n\t\t\t\tlet realWidth = document.body.clientWidth - moveEvent.pageX;\n\t\t\t\tconst width20 = document.body.clientWidth * 0.2;\n\t\t\t\tconst width95 = document.body.clientWidth * 0.95;\n\t\t\t\t// 宽度不能大于浏览器宽度 95%,不能小于宽度的 20%\n\t\t\t\trealWidth = realWidth > width95 ? width95 : realWidth < width20 ? width20 : realWidth;\n\t\t\t\tstate.size = `${realWidth}px`;\n\t\t\t};\n\t\t\tdocument.onmouseup = (): void => {\n\t\t\t\tdocument.onmousemove = document.onmouseup = null;\n\t\t\t};\n\t\t};\n\n\t\tconst elDrawerProps = useProps(props, drawerProps, [\"modelValue\", \"size\", \"showClose\", \"beforeClose\"]);\n\n\t\tuseRender(() => (\n\t\t\t<ElDrawer\n\t\t\t\t{...elDrawerProps.value}\n\t\t\t\tref={drawerRef}\n\t\t\t\tclass={[\"fa-drawer\", `fa-drawer-${_globalSize.value}`, { \"fa-drawer__fullscreen\": state.fullscreen }]}\n\t\t\t\tvModel={state.visible}\n\t\t\t\tsize={state.size}\n\t\t\t\tshowClose={false}\n\t\t\t\tbeforeClose={handleBeforeClose}\n\t\t\t\tonOpened={() => emit(\"opened\")}\n\t\t\t\tonClosed={() => emit(\"closed\")}\n\t\t\t\tonOpenAutoFocus={() => emit(\"openAutoFocus\")}\n\t\t\t\tonCloseAutoFocus={() => emit(\"closeAutoFocus\")}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\theader: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t<div class=\"fa-drawer__header-title\">\n\t\t\t\t\t\t\t\t{props.title}\n\t\t\t\t\t\t\t\t{slots.header && slots.header({ loading: state.loading, close: handleCloseClick })}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{props.showRefresh && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle=\"刷新\"\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-drawer__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleRefresh}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon class=\"icon\">\n\t\t\t\t\t\t\t\t\t\t<Refresh />\n\t\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{props.showFullscreen && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle={state.fullscreen ? \"关闭全屏显示\" : \"全屏显示\"}\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-drawer__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleFullscreen}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon>{state.fullscreen ? <FullScreenExit /> : <FullScreen />}</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{props.showClose && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle=\"关闭\"\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-drawer__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleCloseClick}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon class=\"icon\">\n\t\t\t\t\t\t\t\t\t\t<Close />\n\t\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t{props.draggable && <div class=\"fa-drawer__draggable\" onmousedown={handleDraggableMousedown} />}\n\t\t\t\t\t\t\t<ElScrollbar vLoading={state.loading} element-loading-text=\"加载中...\">\n\t\t\t\t\t\t\t\t{!state.refreshing && slots.default && slots.default(state)}\n\t\t\t\t\t\t\t</ElScrollbar>\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t\t...(!props.hideFooter && {\n\t\t\t\t\t\tfooter: (): VNode[] => (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t{slots.footer && slots.footer({ loading: state.loading, close: handleCloseClick })}\n\t\t\t\t\t\t\t\t{props.showCloseButton && (\n\t\t\t\t\t\t\t\t\t<ElButton disabled={state.loading} onClick={handleCloseClick}>\n\t\t\t\t\t\t\t\t\t\t{props.closeButtonText}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{props.showConfirmButton && (\n\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\tloading={state.loading}\n\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\tdisabled={props.disabledConfirmButton}\n\t\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\t\tonClick={handleConfirmClick}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{state.loading ? \"加载中...\" : props.confirmButtonText}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t),\n\t\t\t\t\t}),\n\t\t\t\t}}\n\t\t\t</ElDrawer>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 用于关闭 Drawer, 该方法会调用传入的 before-close 方法 */\n\t\t\thandleClose: computed(() => drawerRef.value?.handleClose),\n\t\t\t/** @description 进入动画后的回调 */\n\t\t\tafterEnter: computed(() => drawerRef.value?.afterEnter),\n\t\t\t/** @description 离开动画后的回调 */\n\t\t\tafterLeave: computed(() => drawerRef.value?.afterLeave),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 是否显示 */\n\t\t\tvisible: computed(() => state.visible),\n\t\t\t/** @description 打开弹窗 */\n\t\t\topen: handleOpen,\n\t\t\t/** @description 关闭弹窗 */\n\t\t\tclose: handleClose,\n\t\t\t/** @description 刷新弹窗 */\n\t\t\trefresh: handleRefresh,\n\t\t\t/** @description 弹窗加载 */\n\t\t\tdoLoading: handleLoading,\n\t\t});\n\t},\n});\n"],"names":["faDrawerProps","drawerProps","appendToBody","type","Boolean","default","draggable","destroyOnClose","showRefresh","showFullscreen","showCloseButton","showConfirmButton","disabledConfirmButton","closeButtonText","String","confirmButtonText","hideFooter","showBeforeClose","afterOpen","definePropType","Function","faDrawerEmits","drawerEmits","value","isBoolean","confirmClick","Drawer","name","props","emits","slots","makeSlots","setup","attrs","emit","expose","_globalSize","useGlobalSize","state","reactive","loading","visible","fullscreen","size","dragging","refreshing","drawerRef","ref","cacheOpenFunction","handleOpen","openFunction","nextTick","execFunction","then","catch","error","consoleError","finally","handleClose","closeFunction","handleRefresh","setTimeout","ElMessage","success","handleBeforeClose","done","document","querySelector","newDone","beforeClose","ElMessageBox","confirm","handleFullscreen","handleConfirmClick","handleCloseClick","watch","newValue","handleDraggableMousedown","onmousemove","moveEvent","realWidth","body","clientWidth","pageX","width20","width95","onmouseup","elDrawerProps","useProps","useRender","_createVNode","ElDrawer","_mergeProps","class","modelValue","$event","showClose","onOpened","onClosed","onOpenAutoFocus","onCloseAutoFocus","header","_Fragment","title","close","onClick","ElIcon","Refresh","FullScreenExit","FullScreen","Close","onmousedown","_withDirectives","ElScrollbar","_resolveDirective","footer","ElButton","disabled","loadingIcon","Eleme","useExpose","computed","afterEnter","afterLeave","open","refresh","doLoading","loadingFunction"],"mappings":"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"}
@@ -18,7 +18,12 @@ export declare const faFormItemProps: {
18
18
  /** @description 独占一行。如果设置 span 则无效 */
19
19
  row: BooleanConstructor;
20
20
  label: StringConstructor;
21
- labelWidth: import('element-plus/es/utils/index.mjs').EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>;
21
+ labelWidth: {
22
+ readonly type: import('vue').PropType<import('element-plus/es/utils/index.mjs').EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>>;
23
+ readonly required: false;
24
+ readonly validator: ((val: unknown) => boolean) | undefined;
25
+ __epPropKey: true;
26
+ };
22
27
  labelPosition: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, "" | "left" | "right" | "top", unknown, "", boolean>;
23
28
  prop: {
24
29
  readonly type: import('vue').PropType<import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => string | string[]) | (() => import('element-plus').FormItemProp) | ((new (...args: any[]) => string | string[]) | (() => import('element-plus').FormItemProp))[], unknown, unknown>>;
@@ -82,7 +87,12 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
82
87
  /** @description 独占一行。如果设置 span 则无效 */
83
88
  row: BooleanConstructor;
84
89
  label: StringConstructor;
85
- labelWidth: import('element-plus/es/utils/index.mjs').EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>;
90
+ labelWidth: {
91
+ readonly type: import('vue').PropType<import('element-plus/es/utils/index.mjs').EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>>;
92
+ readonly required: false;
93
+ readonly validator: ((val: unknown) => boolean) | undefined;
94
+ __epPropKey: true;
95
+ };
86
96
  labelPosition: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, "" | "left" | "right" | "top", unknown, "", boolean>;
87
97
  prop: {
88
98
  readonly type: import('vue').PropType<import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => string | string[]) | (() => import('element-plus').FormItemProp) | ((new (...args: any[]) => string | string[]) | (() => import('element-plus').FormItemProp))[], unknown, unknown>>;
@@ -146,7 +156,12 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
146
156
  /** @description 独占一行。如果设置 span 则无效 */
147
157
  row: BooleanConstructor;
148
158
  label: StringConstructor;
149
- labelWidth: import('element-plus/es/utils/index.mjs').EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>;
159
+ labelWidth: {
160
+ readonly type: import('vue').PropType<import('element-plus/es/utils/index.mjs').EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>>;
161
+ readonly required: false;
162
+ readonly validator: ((val: unknown) => boolean) | undefined;
163
+ __epPropKey: true;
164
+ };
150
165
  labelPosition: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, "" | "left" | "right" | "top", unknown, "", boolean>;
151
166
  prop: {
152
167
  readonly type: import('vue').PropType<import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => string | string[]) | (() => import('element-plus').FormItemProp) | ((new (...args: any[]) => string | string[]) | (() => import('element-plus').FormItemProp))[], unknown, unknown>>;
@@ -181,7 +196,6 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
181
196
  required: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>;
182
197
  offset: string | number;
183
198
  labelPosition: import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "" | "top" | "left" | "right", unknown>;
184
- labelWidth: import('element-plus/es/utils/index.mjs').EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
185
199
  inlineMessage: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>;
186
200
  showMessage: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>;
187
201
  grid: boolean;
@@ -14,6 +14,8 @@ export declare const faImageProps: {
14
14
  type: BooleanConstructor;
15
15
  default: boolean;
16
16
  };
17
+ /** @description Base64图片 */
18
+ base64: BooleanConstructor;
17
19
  /** @description 原图 */
18
20
  original: BooleanConstructor;
19
21
  /** @description 标准 */
@@ -89,6 +91,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
89
91
  type: BooleanConstructor;
90
92
  default: boolean;
91
93
  };
94
+ /** @description Base64图片 */
95
+ base64: BooleanConstructor;
92
96
  /** @description 原图 */
93
97
  original: BooleanConstructor;
94
98
  /** @description 标准 */
@@ -153,6 +157,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
153
157
  type: BooleanConstructor;
154
158
  default: boolean;
155
159
  };
160
+ /** @description Base64图片 */
161
+ base64: BooleanConstructor;
156
162
  /** @description 原图 */
157
163
  original: BooleanConstructor;
158
164
  /** @description 标准 */
@@ -203,6 +209,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
203
209
  };
204
210
  }>> & Readonly<{}>, {
205
211
  small: boolean;
212
+ base64: boolean;
206
213
  original: boolean;
207
214
  normal: boolean;
208
215
  thumb: boolean;
@@ -1,2 +1,2 @@
1
- import{defineComponent as e,reactive as r,computed as l,createVNode as o,mergeProps as a}from"vue";import{imageProps as s,ElImage as t,ElIcon as i}from"element-plus";import{Picture as c}from"@element-plus/icons-vue";import{useProps as p,useRender as n,makeSlots as m}from"@fast-china/utils";const u={...s,hideOnClickModal:{type:Boolean,default:!0},previewTeleported:{type:Boolean,default:!0},lazy:{type:Boolean,default:!0},original:Boolean,normal:Boolean,small:Boolean,thumb:Boolean,preview:{type:Boolean,default:!0}},f=/* @__PURE__ */e({name:"FaImage",props:u,slots:m(),setup(e,{attrs:m,slots:u,expose:f}){const v=r({src:l(()=>{if(e.src)return e.original?e.src:e.normal?`${e.src}@!normal`:e.small?`${e.src}@!small`:(e.thumb,`${e.src}@!thumb`)}),previewList:l(()=>e.preview?[e.src]:[])}),d=p(e,s,["src","previewSrcList"]);n(()=>o(t,a(d.value,{class:"fa-image",src:v.src,previewSrcList:v.previewList}),{error:()=>u.error?u.error():o("div",{class:"fa-image__error-image"},[o(i,{class:"icon"},{default:()=>[o(c,null,null)]})]),...u.placeholder&&{placeholder:()=>u.placeholder()},...u.viewer&&{viewer:()=>u.viewer({src:v.src})}}))}});export{f as default,u as faImageProps};
1
+ import{defineComponent as e,reactive as r,computed as a,createVNode as l,mergeProps as o}from"vue";import{imageProps as s,ElImage as t,ElIcon as i}from"element-plus";import{Picture as c}from"@element-plus/icons-vue";import{useProps as n,useRender as p,makeSlots as m}from"@fast-china/utils";const u={...s,hideOnClickModal:{type:Boolean,default:!0},previewTeleported:{type:Boolean,default:!0},lazy:{type:Boolean,default:!0},base64:Boolean,original:Boolean,normal:Boolean,small:Boolean,thumb:Boolean,preview:{type:Boolean,default:!0}},d=/* @__PURE__ */e({name:"FaImage",props:u,slots:m(),setup(e,{attrs:m,slots:u,expose:d}){const f=r({src:a(()=>{if(e.src)return e.base64?`data:image/png;base64,${e.src}`:e.original?e.src:e.normal?`${e.src}@!normal`:e.small?`${e.src}@!small`:(e.thumb,`${e.src}@!thumb`)}),previewList:a(()=>e.preview?[e.base64?`data:image/png;base64,${e.src}`:e.src]:[])}),v=n(e,s,["src","previewSrcList"]);p(()=>l(t,o(v.value,{class:"fa-image",src:f.src,previewSrcList:f.previewList}),{error:()=>u.error?u.error():l("div",{class:"fa-image__error-image"},[l(i,{class:"icon"},{default:()=>[l(c,null,null)]})]),...u.placeholder&&{placeholder:()=>u.placeholder()},...u.viewer&&{viewer:()=>u.viewer({src:f.src})}}))}});export{d as default,u as faImageProps};
2
2
  //# sourceMappingURL=image.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"image.mjs","sources":["../../../../../packages/components/image/src/image.tsx"],"sourcesContent":["import { computed, defineComponent, reactive } from \"vue\";\nimport { ElIcon, ElImage, imageProps } from \"element-plus\";\nimport { Picture as ElIconPicture } from \"@element-plus/icons-vue\";\nimport { makeSlots, useProps, useRender } from \"@fast-china/utils\";\nimport type { VNode } from \"vue\";\n\nexport const faImageProps = {\n\t...imageProps,\n\t/** @description when enabling preview, use this flag to control whether clicking on backdrop can exit preview mode. */\n\thideOnClickModal: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description whether to append image-viewer to body. A nested parent element attribute transform should have this attribute set to `true`. */\n\tpreviewTeleported: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description whether to use lazy load. */\n\tlazy: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 原图 */\n\toriginal: Boolean,\n\t/** @description 标准 */\n\tnormal: Boolean,\n\t/** @description 小图 */\n\tsmall: Boolean,\n\t/** @description 缩略图 */\n\tthumb: Boolean,\n\t/** @description 是否可以预览图片 */\n\tpreview: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n};\n\ntype FaImageSlots = {\n\t/** @description 当图像尚未加载时,自定义的占位符内容 */\n\tplaceholder: never;\n\t/** @description 自定义图像加载失败的内容 */\n\terror: never;\n\t/** @description 当图像预览时自定义内容 */\n\tviewer: { src: string };\n};\n\nexport default defineComponent({\n\tname: \"FaImage\",\n\tprops: faImageProps,\n\tslots: makeSlots<FaImageSlots>(),\n\tsetup(props, { attrs, slots, expose }) {\n\t\tconst state = reactive({\n\t\t\tsrc: computed(() => {\n\t\t\t\tif (!props.src) return undefined;\n\t\t\t\tif (props.original) {\n\t\t\t\t\treturn props.src;\n\t\t\t\t} else if (props.normal) {\n\t\t\t\t\treturn `${props.src}@!normal`;\n\t\t\t\t} else if (props.small) {\n\t\t\t\t\treturn `${props.src}@!small`;\n\t\t\t\t} else if (props.thumb) {\n\t\t\t\t\treturn `${props.src}@!thumb`;\n\t\t\t\t} else {\n\t\t\t\t\t// 默认使用缩略图\n\t\t\t\t\treturn `${props.src}@!thumb`;\n\t\t\t\t}\n\t\t\t}),\n\t\t\tpreviewList: computed(() => (props.preview ? [props.src] : [])),\n\t\t});\n\n\t\tconst bindProps = useProps(props, imageProps, [\"src\", \"previewSrcList\"]);\n\n\t\tuseRender(() => (\n\t\t\t<ElImage {...bindProps.value} class=\"fa-image\" src={state.src} previewSrcList={state.previewList}>\n\t\t\t\t{{\n\t\t\t\t\terror: () =>\n\t\t\t\t\t\tslots.error ? (\n\t\t\t\t\t\t\tslots.error()\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<div class=\"fa-image__error-image\">\n\t\t\t\t\t\t\t\t<ElIcon class=\"icon\">\n\t\t\t\t\t\t\t\t\t<ElIconPicture />\n\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t),\n\t\t\t\t\t...(slots.placeholder && { placeholder: (): VNode[] => slots.placeholder() }),\n\t\t\t\t\t...(slots.viewer && { viewer: (): VNode[] => slots.viewer({ src: state.src }) }),\n\t\t\t\t}}\n\t\t\t</ElImage>\n\t\t));\n\t},\n});\n"],"names":["faImageProps","imageProps","hideOnClickModal","type","Boolean","default","previewTeleported","lazy","original","normal","small","thumb","preview","Image","name","props","slots","makeSlots","setup","attrs","expose","state","reactive","src","computed","previewList","bindProps","useProps","useRender","_createVNode","ElImage","_mergeProps","value","class","previewSrcList","error","ElIcon","ElIconPicture","placeholder","viewer"],"mappings":"mSAMO,MAAMA,EAAe,IACxBC,EAEHC,iBAAkB,CACjBC,KAAMC,QACNC,SAAS,GAGVC,kBAAmB,CAClBH,KAAMC,QACNC,SAAS,GAGVE,KAAM,CACLJ,KAAMC,QACNC,SAAS,GAGVG,SAAUJ,QAEVK,OAAQL,QAERM,MAAON,QAEPO,MAAOP,QAEPQ,QAAS,CACRT,KAAMC,QACNC,SAAS,IAaXQ,mBAA+B,CAC9BC,KAAM,UACNC,MAAOf,EACPgB,MAAOC,IACPC,KAAAA,CAAMH,GAAOI,MAAEA,EAAAA,MAAOH,EAAAA,OAAOI,IAC5B,MAAMC,EAAQC,EAAS,CACtBC,IAAKC,EAAS,KACb,GAAKT,EAAMQ,IACX,OAAIR,EAAMP,SACFO,EAAMQ,IACHR,EAAMN,OACT,GAAGM,EAAMQ,cACNR,EAAML,MACT,GAAGK,EAAMQ,cACNR,EAAMJ,MACT,GAAGI,EAAMQ,gBAMlBE,YAAaD,EAAS,IAAOT,EAAMH,QAAU,CAACG,EAAMQ,KAAO,MAGtDG,EAAYC,EAASZ,EAAOd,EAAY,CAAC,MAAO,mBAEtD2B,EAAU,IAAAC,EAAAC,EAAAC,EACIL,EAAUM,MAAK,CAAAC,MAAA,WAAAV,IAAwBF,EAAME,IAAGW,eAAkBb,EAAMI,cAAW,CAE9FU,MAAOA,IACNnB,EAAMmB,MACLnB,EAAMmB,QAAON,EAAA,MAAA,CAAAI,MAAA,yBAAA,CAAAJ,EAAAO,EAAA,CAAAH,MAAA,QAAA,CAAA5B,QAAAA,IAAA,CAAAwB,EAAAQ,EAAA,KAAA,cAQXrB,EAAMsB,aAAe,CAAEA,YAAaA,IAAetB,EAAMsB,kBACzDtB,EAAMuB,QAAU,CAAEA,OAAQA,IAAevB,EAAMuB,OAAO,CAAEhB,IAAKF,EAAME,SAI3E"}
1
+ {"version":3,"file":"image.mjs","sources":["../../../../../packages/components/image/src/image.tsx"],"sourcesContent":["import { computed, defineComponent, reactive } from \"vue\";\nimport { ElIcon, ElImage, imageProps } from \"element-plus\";\nimport { Picture as ElIconPicture } from \"@element-plus/icons-vue\";\nimport { makeSlots, useProps, useRender } from \"@fast-china/utils\";\nimport type { VNode } from \"vue\";\n\nexport const faImageProps = {\n\t...imageProps,\n\t/** @description when enabling preview, use this flag to control whether clicking on backdrop can exit preview mode. */\n\thideOnClickModal: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description whether to append image-viewer to body. A nested parent element attribute transform should have this attribute set to `true`. */\n\tpreviewTeleported: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description whether to use lazy load. */\n\tlazy: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description Base64图片 */\n\tbase64: Boolean,\n\t/** @description 原图 */\n\toriginal: Boolean,\n\t/** @description 标准 */\n\tnormal: Boolean,\n\t/** @description 小图 */\n\tsmall: Boolean,\n\t/** @description 缩略图 */\n\tthumb: Boolean,\n\t/** @description 是否可以预览图片 */\n\tpreview: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n};\n\ntype FaImageSlots = {\n\t/** @description 当图像尚未加载时,自定义的占位符内容 */\n\tplaceholder: never;\n\t/** @description 自定义图像加载失败的内容 */\n\terror: never;\n\t/** @description 当图像预览时自定义内容 */\n\tviewer: { src: string };\n};\n\nexport default defineComponent({\n\tname: \"FaImage\",\n\tprops: faImageProps,\n\tslots: makeSlots<FaImageSlots>(),\n\tsetup(props, { attrs, slots, expose }) {\n\t\tconst state = reactive({\n\t\t\tsrc: computed(() => {\n\t\t\t\tif (!props.src) return undefined;\n\t\t\t\tif (props.base64) {\n\t\t\t\t\treturn `data:image/png;base64,${props.src}`;\n\t\t\t\t} else if (props.original) {\n\t\t\t\t\treturn props.src;\n\t\t\t\t} else if (props.normal) {\n\t\t\t\t\treturn `${props.src}@!normal`;\n\t\t\t\t} else if (props.small) {\n\t\t\t\t\treturn `${props.src}@!small`;\n\t\t\t\t} else if (props.thumb) {\n\t\t\t\t\treturn `${props.src}@!thumb`;\n\t\t\t\t} else {\n\t\t\t\t\t// 默认使用缩略图\n\t\t\t\t\treturn `${props.src}@!thumb`;\n\t\t\t\t}\n\t\t\t}),\n\t\t\tpreviewList: computed(() => (props.preview ? [props.base64 ? `data:image/png;base64,${props.src}` : props.src] : [])),\n\t\t});\n\n\t\tconst bindProps = useProps(props, imageProps, [\"src\", \"previewSrcList\"]);\n\n\t\tuseRender(() => (\n\t\t\t<ElImage {...bindProps.value} class=\"fa-image\" src={state.src} previewSrcList={state.previewList}>\n\t\t\t\t{{\n\t\t\t\t\terror: () =>\n\t\t\t\t\t\tslots.error ? (\n\t\t\t\t\t\t\tslots.error()\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<div class=\"fa-image__error-image\">\n\t\t\t\t\t\t\t\t<ElIcon class=\"icon\">\n\t\t\t\t\t\t\t\t\t<ElIconPicture />\n\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t),\n\t\t\t\t\t...(slots.placeholder && { placeholder: (): VNode[] => slots.placeholder() }),\n\t\t\t\t\t...(slots.viewer && { viewer: (): VNode[] => slots.viewer({ src: state.src }) }),\n\t\t\t\t}}\n\t\t\t</ElImage>\n\t\t));\n\t},\n});\n"],"names":["faImageProps","imageProps","hideOnClickModal","type","Boolean","default","previewTeleported","lazy","base64","original","normal","small","thumb","preview","Image","name","props","slots","makeSlots","setup","attrs","expose","state","reactive","src","computed","previewList","bindProps","useProps","useRender","_createVNode","ElImage","_mergeProps","value","class","previewSrcList","error","ElIcon","ElIconPicture","placeholder","viewer"],"mappings":"mSAMO,MAAMA,EAAe,IACxBC,EAEHC,iBAAkB,CACjBC,KAAMC,QACNC,SAAS,GAGVC,kBAAmB,CAClBH,KAAMC,QACNC,SAAS,GAGVE,KAAM,CACLJ,KAAMC,QACNC,SAAS,GAGVG,OAAQJ,QAERK,SAAUL,QAEVM,OAAQN,QAERO,MAAOP,QAEPQ,MAAOR,QAEPS,QAAS,CACRV,KAAMC,QACNC,SAAS,IAaXS,mBAA+B,CAC9BC,KAAM,UACNC,MAAOhB,EACPiB,MAAOC,IACPC,KAAAA,CAAMH,GAAOI,MAAEA,EAAAA,MAAOH,EAAAA,OAAOI,IAC5B,MAAMC,EAAQC,EAAS,CACtBC,IAAKC,EAAS,KACb,GAAKT,EAAMQ,IACX,OAAIR,EAAMR,OACF,yBAAyBQ,EAAMQ,MAC5BR,EAAMP,SACTO,EAAMQ,IACHR,EAAMN,OACT,GAAGM,EAAMQ,cACNR,EAAML,MACT,GAAGK,EAAMQ,cACNR,EAAMJ,MACT,GAAGI,EAAMQ,gBAMlBE,YAAaD,EAAS,IAAOT,EAAMH,QAAU,CAACG,EAAMR,OAAS,yBAAyBQ,EAAMQ,MAAQR,EAAMQ,KAAO,MAG5GG,EAAYC,EAASZ,EAAOf,EAAY,CAAC,MAAO,mBAEtD4B,EAAU,IAAAC,EAAAC,EAAAC,EACIL,EAAUM,MAAK,CAAAC,MAAA,WAAAV,IAAwBF,EAAME,IAAGW,eAAkBb,EAAMI,cAAW,CAE9FU,MAAOA,IACNnB,EAAMmB,MACLnB,EAAMmB,QAAON,EAAA,MAAA,CAAAI,MAAA,yBAAA,CAAAJ,EAAAO,EAAA,CAAAH,MAAA,QAAA,CAAA7B,QAAAA,IAAA,CAAAyB,EAAAQ,EAAA,KAAA,cAQXrB,EAAMsB,aAAe,CAAEA,YAAaA,IAAetB,EAAMsB,kBACzDtB,EAAMuB,QAAU,CAAEA,OAAQA,IAAevB,EAAMuB,OAAO,CAAEhB,IAAKF,EAAME,SAI3E"}
@@ -1,2 +1,2 @@
1
- import{FaAvatar as m}from"./avatar/index.mjs";import{FaButton as r}from"./button/index.mjs";import{FaCarNumber as o}from"./carNumber/index.mjs";import{FaContextMenu as e}from"./contextMenu/index.mjs";import{FaDialog as t}from"./dialog/index.mjs";import{FaDrawer as i}from"./drawer/index.mjs";import{FaForm as s,FaFormItem as p}from"./form/index.mjs";import{FaFormItemTip as f}from"./formItemTip/index.mjs";import{FaIcon as j}from"./icon/index.mjs";import{FaIconSelector as a}from"./iconSelector/index.mjs";import{FaImage as c}from"./image/index.mjs";import{FaLayoutGrid as l,FaLayoutGridItem as d}from"./layoutGrid/index.mjs";import{FaSelect as n,FaSelectOption as x}from"./select/index.mjs";import{FaSelectPage as u}from"./selectPage/index.mjs";import{FaSelectV2 as b}from"./selectV2/index.mjs";import{FaTable as g,FaTableColumn as I}from"./table/index.mjs";import{FaTree as S}from"./tree/index.mjs";import{FaTreeSelect as y}from"./treeSelect/index.mjs";import{FaUpload as P}from"./upload/index.mjs";import{FaUploadImage as T}from"./uploadImage/index.mjs";import{FaUploadImages as V}from"./uploadImages/index.mjs";import{faButtonEmits as N,faButtonProps as v}from"./button/src/button.mjs";import{CarNumberArea as w,CarNumberDigit as C,CarNumberLetter as G}from"./carNumber/src/common.mjs";import{faDialogEmits as M,faDialogProps as h}from"./dialog/src/dialog.mjs";import{formUtil as k}from"./form/utils/form.mjs";import{faFormProps as q}from"./form/src/form.mjs";import{faFormItemProps as z}from"./form/src/formItem.mjs";import{faFormItemTipProps as A}from"./formItemTip/src/formItemTip.mjs";import{faImageProps as B}from"./image/src/image.mjs";import{SelectProps as D,faSelectProps as E}from"./select/src/select.mjs";import{faSelectPageEmits as F,faSelectPageProps as H}from"./selectPage/src/selectPage.mjs";import{SelectV2Props as J,faSelectV2Props as K}from"./selectV2/src/selectV2.mjs";import{PagedSearchTypeEnum as L}from"./table/src/page.type.mjs";import{getTableDefaultSlots as O}from"./table/src/table.type.mjs";import{tableUtil as Q}from"./table/utils/table.mjs";import{tableProps as R}from"./table/src/table.mjs";import{tableColumnProps as U}from"./table/src/tableColumn.mjs";import{faTreeEmits as W,faTreeProps as X}from"./tree/src/tree.mjs";import{faTreeSelectEmits as Y,faTreeSelectProps as Z}from"./treeSelect/src/treeSelect.mjs";import{faUploadEmits as $,faUploadProps as _}from"./upload/src/upload.mjs";import{faUploadImageEmits as mm,faUploadImageProps as rm}from"./uploadImage/src/uploadImage.mjs";export{w as CarNumberArea,C as CarNumberDigit,G as CarNumberLetter,m as FaAvatar,r as FaButton,o as FaCarNumber,e as FaContextMenu,t as FaDialog,i as FaDrawer,s as FaForm,p as FaFormItem,f as FaFormItemTip,j as FaIcon,a as FaIconSelector,c as FaImage,l as FaLayoutGrid,d as FaLayoutGridItem,n as FaSelect,x as FaSelectOption,u as FaSelectPage,b as FaSelectV2,g as FaTable,I as FaTableColumn,S as FaTree,y as FaTreeSelect,P as FaUpload,T as FaUploadImage,V as FaUploadImages,L as PagedSearchTypeEnum,D as SelectProps,J as SelectV2Props,N as faButtonEmits,v as faButtonProps,M as faDialogEmits,h as faDialogProps,z as faFormItemProps,A as faFormItemTipProps,q as faFormProps,B as faImageProps,F as faSelectPageEmits,H as faSelectPageProps,E as faSelectProps,K as faSelectV2Props,W as faTreeEmits,X as faTreeProps,Y as faTreeSelectEmits,Z as faTreeSelectProps,$ as faUploadEmits,mm as faUploadImageEmits,rm as faUploadImageProps,_ as faUploadProps,k as formUtil,O as getTableDefaultSlots,U as tableColumnProps,R as tableProps,Q as tableUtil};
1
+ import{FaAvatar as m}from"./avatar/index.mjs";import{FaButton as r}from"./button/index.mjs";import{FaCarNumber as o}from"./carNumber/index.mjs";import{FaContextMenu as e}from"./contextMenu/index.mjs";import{FaDialog as t}from"./dialog/index.mjs";import{FaDrawer as i}from"./drawer/index.mjs";import{FaForm as s,FaFormItem as p}from"./form/index.mjs";import{FaFormItemTip as f}from"./formItemTip/index.mjs";import{FaIcon as j}from"./icon/index.mjs";import{FaIconSelector as a}from"./iconSelector/index.mjs";import{FaImage as c}from"./image/index.mjs";import{FaLayoutGrid as l,FaLayoutGridItem as d}from"./layoutGrid/index.mjs";import{FaSelect as n,FaSelectOption as x}from"./select/index.mjs";import{FaSelectPage as u}from"./selectPage/index.mjs";import{FaSelectV2 as b}from"./selectV2/index.mjs";import{FaTable as g,FaTableColumn as I}from"./table/index.mjs";import{FaTree as S}from"./tree/index.mjs";import{FaTreeSelect as y}from"./treeSelect/index.mjs";import{FaUpload as P}from"./upload/index.mjs";import{FaUploadImage as T}from"./uploadImage/index.mjs";import{FaUploadImages as V}from"./uploadImages/index.mjs";import{faButtonEmits as N,faButtonProps as v}from"./button/src/button.mjs";import{CarNumberArea as w,CarNumberDigit as C,CarNumberLetter as G}from"./carNumber/src/common.mjs";import{faDialogEmits as M,faDialogProps as h}from"./dialog/src/dialog.mjs";import{formUtil as k}from"./form/utils/form.mjs";import{faFormProps as q}from"./form/src/form.mjs";import{faFormItemProps as z}from"./form/src/formItem.mjs";import{faFormItemTipProps as A}from"./formItemTip/src/formItemTip.mjs";import{faImageProps as B}from"./image/src/image.mjs";import{SelectProps as D,faSelectProps as E}from"./select/src/select.mjs";import{faSelectPageEmits as F,faSelectPageProps as H}from"./selectPage/src/selectPage.mjs";import{SelectV2Props as J,faSelectV2Props as K}from"./selectV2/src/selectV2.mjs";import{PagedSearchTypeEnum as L}from"./table/src/page.type.mjs";import{getTableDefaultSlots as O}from"./table/src/table.type.mjs";import{tableUtil as Q}from"./table/utils/table.mjs";import{faTableEmits as R,faTableProps as U,tableProps as W}from"./table/src/table.mjs";import{tableColumnProps as X}from"./table/src/tableColumn.mjs";import{faTreeEmits as Y,faTreeProps as Z}from"./tree/src/tree.mjs";import{faTreeSelectEmits as $,faTreeSelectProps as _}from"./treeSelect/src/treeSelect.mjs";import{faUploadEmits as mm,faUploadProps as rm}from"./upload/src/upload.mjs";import{faUploadImageEmits as om,faUploadImageProps as em}from"./uploadImage/src/uploadImage.mjs";export{w as CarNumberArea,C as CarNumberDigit,G as CarNumberLetter,m as FaAvatar,r as FaButton,o as FaCarNumber,e as FaContextMenu,t as FaDialog,i as FaDrawer,s as FaForm,p as FaFormItem,f as FaFormItemTip,j as FaIcon,a as FaIconSelector,c as FaImage,l as FaLayoutGrid,d as FaLayoutGridItem,n as FaSelect,x as FaSelectOption,u as FaSelectPage,b as FaSelectV2,g as FaTable,I as FaTableColumn,S as FaTree,y as FaTreeSelect,P as FaUpload,T as FaUploadImage,V as FaUploadImages,L as PagedSearchTypeEnum,D as SelectProps,J as SelectV2Props,N as faButtonEmits,v as faButtonProps,M as faDialogEmits,h as faDialogProps,z as faFormItemProps,A as faFormItemTipProps,q as faFormProps,B as faImageProps,F as faSelectPageEmits,H as faSelectPageProps,E as faSelectProps,K as faSelectV2Props,R as faTableEmits,U as faTableProps,Y as faTreeEmits,Z as faTreeProps,$ as faTreeSelectEmits,_ as faTreeSelectProps,mm as faUploadEmits,om as faUploadImageEmits,em as faUploadImageProps,rm as faUploadProps,k as formUtil,O as getTableDefaultSlots,X as tableColumnProps,W as tableProps,Q as tableUtil};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1,6 +1,6 @@
1
1
  import { ExtractPropTypes } from "vue";
2
2
  import { TSXWithInstall } from "@fast-china/utils";
3
- import { default as Table, faTableEmits, faTableProps, tableProps } from "./src/table";
3
+ import { FaTableSlots, default as Table, faTableEmits, faTableProps, tableProps } from "./src/table";
4
4
  import { default as TableColumn, tableColumnProps } from "./src/tableColumn";
5
5
  import { default as TableColumnsSettingDialog } from "./src/tableColumnSettingDialog";
6
6
  import { default as TablePagination } from "./src/tablePagination";
@@ -22,7 +22,7 @@ export * from "./src/page.type";
22
22
  export * from "./src/table.state";
23
23
  export * from "./src/table.type";
24
24
 
25
- export { tableProps, tableColumnProps, faTableProps, faTableEmits };
25
+ export { tableProps, tableColumnProps, faTableProps, faTableEmits, FaTableSlots };
26
26
 
27
27
  export declare type FaTableInstance = InstanceType<typeof Table>;
28
28
 
@@ -1,2 +1,2 @@
1
- import{withInstall as m,withNoopInstall as r}from"@fast-china/utils";import t from"./src/table.mjs";import{tableProps as o}from"./src/table.mjs";import a from"./src/tableColumn.mjs";import{tableColumnProps as e}from"./src/tableColumn.mjs";import s from"./src/tableColumnSettingDialog.mjs";import l from"./src/tablePagination.mjs";import i from"./src/tableSearchForm.mjs";import c from"./src/tableSearchFormItem.mjs";import{PagedSearchTypeEnum as p}from"./src/page.type.mjs";import"./src/table.state.mjs";import{getTableDefaultSlots as b}from"./src/table.type.mjs";import{tableUtil as f}from"./utils/table.mjs";const n=m(t,{TableColumn:a,TableColumnsSettingDialog:s,TablePagination:l,TableSearchForm:i,TableSearchFormItem:c}),j=r(a);export{n as FaTable,j as FaTableColumn,p as PagedSearchTypeEnum,n as default,b as getTableDefaultSlots,e as tableColumnProps,o as tableProps,f as tableUtil};
1
+ import{withInstall as m,withNoopInstall as r}from"@fast-china/utils";import t from"./src/table.mjs";import{faTableEmits as o,faTableProps as a,tableProps as e}from"./src/table.mjs";import s from"./src/tableColumn.mjs";import{tableColumnProps as l}from"./src/tableColumn.mjs";import i from"./src/tableColumnSettingDialog.mjs";import c from"./src/tablePagination.mjs";import p from"./src/tableSearchForm.mjs";import b from"./src/tableSearchFormItem.mjs";import{PagedSearchTypeEnum as f}from"./src/page.type.mjs";import"./src/table.state.mjs";import{getTableDefaultSlots as n}from"./src/table.type.mjs";import{tableUtil as j}from"./utils/table.mjs";const u=m(t,{TableColumn:s,TableColumnsSettingDialog:i,TablePagination:c,TableSearchForm:p,TableSearchFormItem:b}),g=r(s);export{u as FaTable,g as FaTableColumn,f as PagedSearchTypeEnum,u as default,o as faTableEmits,a as faTableProps,n as getTableDefaultSlots,l as tableColumnProps,e as tableProps,j as tableUtil};
2
2
  //# sourceMappingURL=index.mjs.map