@rainte/ant 0.0.71 → 0.0.72
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.
- package/dist/index.js +44 -13
- package/dist/index.umd.cjs +1 -1
- package/dist/types/lib.d.ts +1 -1
- package/dist/types/utils/file.d.ts +93 -0
- package/package.json +1 -1
- package/dist/types/utils/misc.d.ts +0 -1
package/dist/index.js
CHANGED
|
@@ -148,19 +148,50 @@ var I = /* @__PURE__ */ T({
|
|
|
148
148
|
}) : R[t];
|
|
149
149
|
} }), H = new Proxy({}, { get(e, t) {
|
|
150
150
|
return t === "success" ? (e = "操作成功", t, n) => L.success(e, t, n) : t === "error" ? (e = "操作失败", t, n) => L.error(e, t, n) : L[t];
|
|
151
|
-
} }), U = /* @__PURE__ */ T({
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
151
|
+
} }), U = /* @__PURE__ */ T({
|
|
152
|
+
base64ToUploadFile: () => Y,
|
|
153
|
+
extFromMime: () => q,
|
|
154
|
+
fileToUploadFile: () => J,
|
|
155
|
+
toBase64: () => W,
|
|
156
|
+
toFile: () => G,
|
|
157
|
+
toRcFile: () => K
|
|
158
|
+
}), W = (e) => new Promise((t, n) => {
|
|
159
|
+
let r = new FileReader();
|
|
160
|
+
r.onload = () => {
|
|
161
|
+
let e = r.result;
|
|
162
|
+
typeof e == "string" ? t(e) : n(/* @__PURE__ */ Error("toBase64: FileReader result is not a string"));
|
|
163
|
+
}, r.onerror = () => n(r.error ?? /* @__PURE__ */ Error("toBase64: read failed")), r.onabort = () => n(/* @__PURE__ */ Error("toBase64: read aborted")), r.readAsDataURL(e);
|
|
164
|
+
}), G = (e, t) => {
|
|
165
|
+
let n = "application/octet-stream", r = e;
|
|
166
|
+
if (e.startsWith("data:")) {
|
|
167
|
+
let t = e.indexOf(",");
|
|
168
|
+
if (t === -1) throw Error("toFile: 非法 Data URL,缺少逗号分隔符");
|
|
169
|
+
n = e.slice(5, t).split(";")[0] || n, r = e.slice(t + 1);
|
|
161
170
|
}
|
|
162
|
-
|
|
163
|
-
|
|
171
|
+
let i = atob(r), a = new Uint8Array(i.length);
|
|
172
|
+
for (let e = 0; e < i.length; e++) a[e] = i.charCodeAt(e);
|
|
173
|
+
return new File([a], t, { type: n });
|
|
174
|
+
}, K = (e) => {
|
|
175
|
+
let t = e;
|
|
176
|
+
return t.uid = `-${Date.now()}-${Math.random().toString(36).slice(2)}`, Object.defineProperty(t, "lastModifiedDate", {
|
|
177
|
+
value: new Date(e.lastModified),
|
|
178
|
+
writable: !0,
|
|
179
|
+
configurable: !0
|
|
180
|
+
}), t;
|
|
181
|
+
}, q = (e) => {
|
|
182
|
+
let t = e.split("/")[1];
|
|
183
|
+
return t ? t === "jpeg" ? "jpg" : t : "bin";
|
|
184
|
+
}, J = (e, t) => {
|
|
185
|
+
let n = K(e), r = t ?? e.name ?? `image.${q(e.type || "application/octet-stream")}`;
|
|
186
|
+
return {
|
|
187
|
+
uid: n.uid,
|
|
188
|
+
name: r,
|
|
189
|
+
status: "done",
|
|
190
|
+
url: URL.createObjectURL(e),
|
|
191
|
+
originFileObj: n
|
|
192
|
+
};
|
|
193
|
+
}, Y = (e, t) => J(G(e, t ?? (e.startsWith("data:") ? `image.${q(e.slice(5, e.indexOf(";")))}` : "file")), t), X = /* @__PURE__ */ T({ createRouter: () => Z });
|
|
194
|
+
function Z(t, n, r) {
|
|
164
195
|
let i = t.map((t) => ({
|
|
165
196
|
path: t.url,
|
|
166
197
|
Component: e(t.component)
|
|
@@ -177,4 +208,4 @@ function K(t, n, r) {
|
|
|
177
208
|
element: o
|
|
178
209
|
}]);
|
|
179
210
|
}
|
|
180
|
-
export { E as Editor, M as Form, P as Layout, A as Provider, F as Table, O as Upload, I as antd, U as
|
|
211
|
+
export { E as Editor, M as Form, P as Layout, A as Provider, F as Table, O as Upload, I as antd, U as file, X as router };
|
package/dist/index.umd.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("react"),require("quill"),require("quill/dist/quill.snow.css"),require("react/jsx-runtime"),require("@ant-design/pro-components"),require("antd"),require("react-icons/ai"),require("react-router")):typeof define==`function`&&define.amd?define([`exports`,`react`,`quill`,`quill/dist/quill.snow.css`,`react/jsx-runtime`,`@ant-design/pro-components`,`antd`,`react-icons/ai`,`react-router`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e[`@rainte/ant`]={},e.React,e.Quill,e.QuillSnowCSS,e.ReactJSXRuntime,e.ProComponents,e.antd,e.ReactIconsAI,e.ReactRouter))})(this,function(e,t,n,r,i,a,o,s,c){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var l=Object.create,u=Object.defineProperty,d=Object.getOwnPropertyDescriptor,f=Object.getOwnPropertyNames,p=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty,h=(e,t)=>{let n={};for(var r in e)u(n,r,{get:e[r],enumerable:!0});return t||u(n,Symbol.toStringTag,{value:`Module`}),n},g=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=f(t),a=0,o=i.length,s;a<o;a++)s=i[a],!m.call(e,s)&&s!==n&&u(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=d(t,s))||r.enumerable});return e};n=((e,t,n)=>(n=e==null?{}:l(p(e)),g(u(n,`default`,{value:e,enumerable:!0}),e)))(n,1);function _(e){let{value:r,style:a,...o}=e,s=(0,t.useRef)(null),c=(0,t.useRef)(null);return(0,t.useEffect)(()=>{let e=s.current,t=document.createElement(`div`);Object.assign(t.style,a??{});let r=new n.default(e.appendChild(t),{theme:`snow`,...o});c.current=r;let i=()=>o.onChange?.(r.root.innerHTML||``);return r.on(`text-change`,i),()=>{r.off(`text-change`,i),c.current=null,e.innerHTML=``}},[]),(0,t.useEffect)(()=>{let e=c.current;if(!e)return;let t=r||``;e.root.innerHTML!==t&&e.clipboard.dangerouslyPasteHTML(t)},[r]),(0,i.jsx)(`div`,{ref:s,style:{height:`100%`}})}var v=e=>{if(Array.isArray(e))return e;if(e&&typeof e==`object`&&`fileList`in e)return e.fileList};function y(e){let{value:t,onChange:n,maxCount:r=1,multiple:a,listType:c,...l}=e,u=v(t)??[],d=u.length>=r,f=c?.startsWith(`picture-`)?(0,i.jsx)(s.AiOutlineUpload,{}):(0,i.jsx)(o.Button,{icon:(0,i.jsx)(s.AiOutlineUpload,{}),children:`上传`});return(0,i.jsx)(o.Upload,{...l,maxCount:r,multiple:a??r>1,listType:c,showUploadList:l.showUploadList??!0,fileList:u,onChange:e=>n?.(e.fileList),children:d?null:f})}var b={upload:{formItemRender:(e,t)=>(0,i.jsx)(y,{...t.fieldProps})},editor:{formItemRender:(e,t)=>(0,i.jsx)(_,{...t.fieldProps})}};function x({children:e}){let n=(0,t.useContext)(a.ProProvider);return(0,i.jsx)(a.ProProvider.Provider,{value:{...n,valueTypeMap:{...n.valueTypeMap,...b}},children:e})}var S=()=>a.ProForm.useForm()[0],C=e=>(0,i.jsx)(x,{children:(0,i.jsx)(a.BetaSchemaForm,{layout:`horizontal`,colon:!1,scrollToFirstError:!0,submitter:{render:(e,t)=>(0,i.jsx)(a.ProForm.Item,{wrapperCol:{offset:4,span:8},children:(0,i.jsx)(o.Space,{children:t})})},...e})});C.useForm=S;var w=(e,t)=>(0,i.jsx)(c.Link,{to:e.path||`/`,children:t});function T({routes:e,...t}){let n=(0,c.useLocation)();return(0,i.jsx)(a.ProLayout,{title:`Rainte`,token:{bgLayout:`#fff`},menuItemRender:w,...t,route:{path:`/`,...t.route,...e===void 0?{}:{routes:e}},location:t.location??{pathname:n.pathname},children:(0,i.jsx)(a.PageContainer,{title:!1,children:(0,i.jsx)(a.ProCard,{children:(0,i.jsx)(c.Outlet,{})})})})}function E(e){return(0,i.jsx)(x,{children:(0,i.jsx)(a.ProTable,{rowKey:`id`,pagination:{pageSize:10},tableAlertRender:({selectedRowKeys:e})=>(0,i.jsxs)(o.Space,{children:[`已选 `,e.length,` 项`]}),...e})})}var D=h({AntdAppHolder:()=>j,message:()=>N,modal:()=>M,notification:()=>A}),O,k,A,j=()=>{let e=o.App.useApp();return O=e.message,k=e.modal,A=e.notification,null},M=new Proxy({},{get(e,t){return t===`confirm`?e=>k.confirm({title:`提示`,content:`确认操作?`,...e}):k[t]}}),N=new Proxy({},{get(e,t){return t===`success`?(e=`操作成功`,t,n)=>O.success(e,t,n):t===`error`?(e=`操作失败`,t,n)=>O.error(e,t,n):O[t]}}),P=h({
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("react"),require("quill"),require("quill/dist/quill.snow.css"),require("react/jsx-runtime"),require("@ant-design/pro-components"),require("antd"),require("react-icons/ai"),require("react-router")):typeof define==`function`&&define.amd?define([`exports`,`react`,`quill`,`quill/dist/quill.snow.css`,`react/jsx-runtime`,`@ant-design/pro-components`,`antd`,`react-icons/ai`,`react-router`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e[`@rainte/ant`]={},e.React,e.Quill,e.QuillSnowCSS,e.ReactJSXRuntime,e.ProComponents,e.antd,e.ReactIconsAI,e.ReactRouter))})(this,function(e,t,n,r,i,a,o,s,c){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var l=Object.create,u=Object.defineProperty,d=Object.getOwnPropertyDescriptor,f=Object.getOwnPropertyNames,p=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty,h=(e,t)=>{let n={};for(var r in e)u(n,r,{get:e[r],enumerable:!0});return t||u(n,Symbol.toStringTag,{value:`Module`}),n},g=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=f(t),a=0,o=i.length,s;a<o;a++)s=i[a],!m.call(e,s)&&s!==n&&u(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=d(t,s))||r.enumerable});return e};n=((e,t,n)=>(n=e==null?{}:l(p(e)),g(u(n,`default`,{value:e,enumerable:!0}),e)))(n,1);function _(e){let{value:r,style:a,...o}=e,s=(0,t.useRef)(null),c=(0,t.useRef)(null);return(0,t.useEffect)(()=>{let e=s.current,t=document.createElement(`div`);Object.assign(t.style,a??{});let r=new n.default(e.appendChild(t),{theme:`snow`,...o});c.current=r;let i=()=>o.onChange?.(r.root.innerHTML||``);return r.on(`text-change`,i),()=>{r.off(`text-change`,i),c.current=null,e.innerHTML=``}},[]),(0,t.useEffect)(()=>{let e=c.current;if(!e)return;let t=r||``;e.root.innerHTML!==t&&e.clipboard.dangerouslyPasteHTML(t)},[r]),(0,i.jsx)(`div`,{ref:s,style:{height:`100%`}})}var v=e=>{if(Array.isArray(e))return e;if(e&&typeof e==`object`&&`fileList`in e)return e.fileList};function y(e){let{value:t,onChange:n,maxCount:r=1,multiple:a,listType:c,...l}=e,u=v(t)??[],d=u.length>=r,f=c?.startsWith(`picture-`)?(0,i.jsx)(s.AiOutlineUpload,{}):(0,i.jsx)(o.Button,{icon:(0,i.jsx)(s.AiOutlineUpload,{}),children:`上传`});return(0,i.jsx)(o.Upload,{...l,maxCount:r,multiple:a??r>1,listType:c,showUploadList:l.showUploadList??!0,fileList:u,onChange:e=>n?.(e.fileList),children:d?null:f})}var b={upload:{formItemRender:(e,t)=>(0,i.jsx)(y,{...t.fieldProps})},editor:{formItemRender:(e,t)=>(0,i.jsx)(_,{...t.fieldProps})}};function x({children:e}){let n=(0,t.useContext)(a.ProProvider);return(0,i.jsx)(a.ProProvider.Provider,{value:{...n,valueTypeMap:{...n.valueTypeMap,...b}},children:e})}var S=()=>a.ProForm.useForm()[0],C=e=>(0,i.jsx)(x,{children:(0,i.jsx)(a.BetaSchemaForm,{layout:`horizontal`,colon:!1,scrollToFirstError:!0,submitter:{render:(e,t)=>(0,i.jsx)(a.ProForm.Item,{wrapperCol:{offset:4,span:8},children:(0,i.jsx)(o.Space,{children:t})})},...e})});C.useForm=S;var w=(e,t)=>(0,i.jsx)(c.Link,{to:e.path||`/`,children:t});function T({routes:e,...t}){let n=(0,c.useLocation)();return(0,i.jsx)(a.ProLayout,{title:`Rainte`,token:{bgLayout:`#fff`},menuItemRender:w,...t,route:{path:`/`,...t.route,...e===void 0?{}:{routes:e}},location:t.location??{pathname:n.pathname},children:(0,i.jsx)(a.PageContainer,{title:!1,children:(0,i.jsx)(a.ProCard,{children:(0,i.jsx)(c.Outlet,{})})})})}function E(e){return(0,i.jsx)(x,{children:(0,i.jsx)(a.ProTable,{rowKey:`id`,pagination:{pageSize:10},tableAlertRender:({selectedRowKeys:e})=>(0,i.jsxs)(o.Space,{children:[`已选 `,e.length,` 项`]}),...e})})}var D=h({AntdAppHolder:()=>j,message:()=>N,modal:()=>M,notification:()=>A}),O,k,A,j=()=>{let e=o.App.useApp();return O=e.message,k=e.modal,A=e.notification,null},M=new Proxy({},{get(e,t){return t===`confirm`?e=>k.confirm({title:`提示`,content:`确认操作?`,...e}):k[t]}}),N=new Proxy({},{get(e,t){return t===`success`?(e=`操作成功`,t,n)=>O.success(e,t,n):t===`error`?(e=`操作失败`,t,n)=>O.error(e,t,n):O[t]}}),P=h({base64ToUploadFile:()=>B,extFromMime:()=>R,fileToUploadFile:()=>z,toBase64:()=>F,toFile:()=>I,toRcFile:()=>L}),F=e=>new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{let e=r.result;typeof e==`string`?t(e):n(Error(`toBase64: FileReader result is not a string`))},r.onerror=()=>n(r.error??Error(`toBase64: read failed`)),r.onabort=()=>n(Error(`toBase64: read aborted`)),r.readAsDataURL(e)}),I=(e,t)=>{let n=`application/octet-stream`,r=e;if(e.startsWith(`data:`)){let t=e.indexOf(`,`);if(t===-1)throw Error(`toFile: 非法 Data URL,缺少逗号分隔符`);n=e.slice(5,t).split(`;`)[0]||n,r=e.slice(t+1)}let i=atob(r),a=new Uint8Array(i.length);for(let e=0;e<i.length;e++)a[e]=i.charCodeAt(e);return new File([a],t,{type:n})},L=e=>{let t=e;return t.uid=`-${Date.now()}-${Math.random().toString(36).slice(2)}`,Object.defineProperty(t,"lastModifiedDate",{value:new Date(e.lastModified),writable:!0,configurable:!0}),t},R=e=>{let t=e.split(`/`)[1];return t?t===`jpeg`?`jpg`:t:`bin`},z=(e,t)=>{let n=L(e),r=t??e.name??`image.${R(e.type||`application/octet-stream`)}`;return{uid:n.uid,name:r,status:`done`,url:URL.createObjectURL(e),originFileObj:n}},B=(e,t)=>z(I(e,t??(e.startsWith(`data:`)?`image.${R(e.slice(5,e.indexOf(`;`)))}`:`file`)),t),V=h({createRouter:()=>H});function H(e,n,r){let a=e.map(e=>({path:e.url,Component:(0,t.lazy)(e.component)})),o=(0,i.jsx)(c.Navigate,{to:n});return(0,c.createHashRouter)([{path:`/`,Component:(0,t.lazy)(r),children:[{index:!0,element:o},...a]},{path:`*`,element:o}])}e.Editor=_,e.Form=C,e.Layout=T,e.Provider=x,e.Table=E,e.Upload=y,Object.defineProperty(e,"antd",{enumerable:!0,get:function(){return D}}),Object.defineProperty(e,"file",{enumerable:!0,get:function(){return P}}),Object.defineProperty(e,"router",{enumerable:!0,get:function(){return V}})});
|
package/dist/types/lib.d.ts
CHANGED
|
@@ -10,5 +10,5 @@ export type { TableProps } from './components/Table';
|
|
|
10
10
|
export { default as Upload } from './components/Upload';
|
|
11
11
|
export type { UploadProps } from './components/Upload';
|
|
12
12
|
export * as antd from './utils/antd';
|
|
13
|
-
export * as
|
|
13
|
+
export * as file from './utils/file';
|
|
14
14
|
export * as router from './utils/router';
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { UploadFile } from 'antd';
|
|
2
|
+
/** 从 UploadFile 推断 RcFile 类型,避免依赖 antd 内部导入路径 */
|
|
3
|
+
type RcFile = NonNullable<UploadFile['originFileObj']>;
|
|
4
|
+
/**
|
|
5
|
+
* 将 Blob 转为 base64 Data URL 字符串。
|
|
6
|
+
*
|
|
7
|
+
* @param blob 待转换的 Blob
|
|
8
|
+
* @returns Promise<string>,resolve 为 data URL(如 "data:image/png;base64,...")
|
|
9
|
+
* @throws FileReader 读取失败时 reject 对应的 DOMException
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* const dataUrl = await toBase64(new Blob(['hi'], { type: 'text/plain' }))
|
|
13
|
+
*/
|
|
14
|
+
export declare const toBase64: (blob: Blob) => Promise<string>;
|
|
15
|
+
/**
|
|
16
|
+
* 将 Base64 字符串或 Data URL 转为 File。
|
|
17
|
+
*
|
|
18
|
+
* 支持两种输入:
|
|
19
|
+
* - 完整 Data URL:`data:image/png;base64,xxxx`,MIME 从头部解析
|
|
20
|
+
* - 纯 Base64 字符串:`xxxx`,MIME 为 application/octet-stream
|
|
21
|
+
*
|
|
22
|
+
* @param base64 Base64 字符串或 Data URL
|
|
23
|
+
* @param filename 生成 File 的文件名
|
|
24
|
+
* @returns 解析后的 File 对象
|
|
25
|
+
* @throws Data URL 缺少逗号分隔符时抛错;payload 非法 Base64 时 atob 抛 DOMException
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* toFile('data:text/plain;base64,aGk=', 'a.txt')
|
|
29
|
+
* // => File { name: 'a.txt', type: 'text/plain' }
|
|
30
|
+
*
|
|
31
|
+
* toFile('aGk=', 'a.bin')
|
|
32
|
+
* // => File { name: 'a.bin', type: 'application/octet-stream' }
|
|
33
|
+
*/
|
|
34
|
+
export declare const toFile: (base64: string, filename: string) => File;
|
|
35
|
+
/**
|
|
36
|
+
* 给原生 File 补上 RcFile 需要的 uid / lastModifiedDate。
|
|
37
|
+
*
|
|
38
|
+
* 为什么不用直接赋值:
|
|
39
|
+
* - uid 用时间戳 + 随机串,避免同一毫秒创建多个文件时 uid 冲突
|
|
40
|
+
* - lastModifiedDate 在 RcFile 类型里是只读属性,直接赋值会报错,用 defineProperty 写入
|
|
41
|
+
*
|
|
42
|
+
* @param file 原生 File
|
|
43
|
+
* @returns 补充了 uid / lastModifiedDate 的 RcFile
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* toRcFile(new File(['hi'], 'a.txt'))
|
|
47
|
+
* // => RcFile { name: 'a.txt', uid: '-1730000000000-abc', lastModifiedDate: Date }
|
|
48
|
+
*/
|
|
49
|
+
export declare const toRcFile: (file: File) => RcFile;
|
|
50
|
+
/**
|
|
51
|
+
* 根据 MIME 推断扩展名。
|
|
52
|
+
*
|
|
53
|
+
* jpeg 统一映射为 jpg,其余取 MIME 的 subtype。
|
|
54
|
+
*
|
|
55
|
+
* @param mime MIME 类型,如 'image/png'
|
|
56
|
+
* @returns 扩展名,如 'png';无法解析时返回 'bin'
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* extFromMime('image/png') // => 'png'
|
|
60
|
+
* extFromMime('image/jpeg') // => 'jpg'
|
|
61
|
+
* extFromMime('') // => 'bin'
|
|
62
|
+
*/
|
|
63
|
+
export declare const extFromMime: (mime: string) => string;
|
|
64
|
+
/**
|
|
65
|
+
* 把 File 包装成 antd UploadFile(带预览 url)。
|
|
66
|
+
*
|
|
67
|
+
* 调用方负责在不再需要时 URL.revokeObjectURL(result.url),否则会内存泄漏。
|
|
68
|
+
*
|
|
69
|
+
* @param file 原生 File
|
|
70
|
+
* @param filename 可选,覆盖 File 的展示名;不传时用 file.name 或按 MIME 推断
|
|
71
|
+
* @returns antd UploadFile,originFileObj 为补全后的 RcFile
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* const uploadFile = fileToUploadFile(new File(['hi'], 'a.txt'))
|
|
75
|
+
* // => { uid: '-...', name: 'a.txt', status: 'done', url: 'blob:...', originFileObj: RcFile }
|
|
76
|
+
*/
|
|
77
|
+
export declare const fileToUploadFile: (file: File, filename?: string) => UploadFile;
|
|
78
|
+
/**
|
|
79
|
+
* Base64 -> antd UploadFile。
|
|
80
|
+
*
|
|
81
|
+
* 先转 File,再复用 fileToUploadFile,保证 Base64 和 File 两种输入走同一套包装逻辑。
|
|
82
|
+
* 调用方负责在不再需要时 URL.revokeObjectURL(result.url)。
|
|
83
|
+
*
|
|
84
|
+
* @param base64 Base64 字符串或 Data URL
|
|
85
|
+
* @param filename 可选,覆盖展示名;不传时按 MIME 推断
|
|
86
|
+
* @returns antd UploadFile
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* base64ToUploadFile('data:image/png;base64,iVBOR...')
|
|
90
|
+
* // => { uid: '-...', name: 'image.png', status: 'done', url: 'blob:...', originFileObj: RcFile }
|
|
91
|
+
*/
|
|
92
|
+
export declare const base64ToUploadFile: (base64: string, filename?: string) => UploadFile;
|
|
93
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const onUpload: (options: any) => Promise<void>;
|