@nocobase/plugin-action-import 1.5.0-beta.2 → 1.5.0-beta.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.
@@ -7,27 +7,4 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
 
10
- (function(c,a){typeof exports=="object"&&typeof module!="undefined"?a(exports,require("react/jsx-runtime"),require("@formily/shared"),require("@nocobase/client"),require("antd"),require("react-i18next"),require("@formily/antd-v5"),require("@formily/react"),require("react"),require("react-dom"),require("@ant-design/icons"),require("lodash")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","@formily/shared","@nocobase/client","antd","react-i18next","@formily/antd-v5","@formily/react","react","react-dom","@ant-design/icons","lodash"],a):(c=typeof globalThis!="undefined"?globalThis:c||self,a(c["@nocobase/plugin-action-import"]={},c.jsxRuntime,c["@formily/shared"],c["@nocobase/client"],c.antd,c["react-i18next"],c["@formily/antd-v5"],c["@formily/react"],c.react,c["react-dom"],c["@ant-design/icons"],c.lodash))})(this,function(c,a,y,i,E,F,N,M,g,j,R,$){"use strict";var Te=Object.defineProperty,Ce=Object.defineProperties;var Ee=Object.getOwnPropertyDescriptors;var ue=Object.getOwnPropertySymbols;var Me=Object.prototype.hasOwnProperty,Fe=Object.prototype.propertyIsEnumerable;var xe=(c,a,y)=>a in c?Te(c,a,{enumerable:!0,configurable:!0,writable:!0,value:y}):c[a]=y,O=(c,a)=>{for(var y in a||(a={}))Me.call(a,y)&&xe(c,y,a[y]);if(ue)for(var y of ue(a))Fe.call(a,y)&&xe(c,y,a[y]);return c},he=(c,a)=>Ce(c,Ee(a));var q=(c,a,y)=>new Promise((i,E)=>{var F=g=>{try{M(y.next(g))}catch(j){E(j)}},N=g=>{try{M(y.throw(g))}catch(j){E(j)}},M=g=>g.done?i(g.value):Promise.resolve(g.value).then(F,N);M((y=y.apply(c,a)).next())});const C="action-import",fe="action-import";function V(){return F.useTranslation([fe,"client"],{nsMode:"fallback"})}const ge=["id","createdAt","createdBy","updatedAt","updatedBy"],X=t=>{const{getCollectionFields:e}=i.useCollectionManager_deprecated(),l=e(t),p=(s,n)=>{var f;if(!s.interface||ge.includes(s.interface))return;const m={name:s.name,title:((f=s==null?void 0:s.uiSchema)==null?void 0:f.title)||s.name,schema:s==null?void 0:s.uiSchema};if(!s.target||n>=2)return m;if(s.target&&["hasOne","hasMany","belongsTo","belongsToMany","belongsToArray"].includes(s.type)){const o=e(s.target),r=x(o,n+1).filter(Boolean);m.children=m.children||[],m.children.push(...r)}return m},x=(s,n)=>{const m=[];return s.forEach(f=>{const o=p(f,n);o&&m.push(o)}),m};return x(l,1)},ye=t=>({importColumns:t==null?void 0:t.filter(l=>!l.children).map(l=>({dataIndex:[l.name]})),explain:""}),G=()=>{const{t}=V();return a.jsx(E.Alert,{type:"warning",style:{marginBottom:"10px"},message:t("Import warnings",{limit:2e3})})},W=()=>{const{t}=V();return a.jsx(E.Alert,{type:"info",style:{marginBottom:"10px",whiteSpace:"pre-line"},message:t("Download tips")})},J=()=>{const t=i.useSchemaInitializerItem(),{insert:e}=i.useSchemaInitializer(),{name:l}=i.useCollection_deprecated(),p=X(l),x={type:"void",title:'{{ t("Import") }}',"x-action":"importXlsx","x-action-settings":{importSettings:{importColumns:[],explain:""}},"x-toolbar":"ActionSchemaToolbar","x-settings":"actionSettings:import","x-component":"Action","x-component-props":{icon:"CloudUploadOutlined",openMode:"modal"},properties:{modal:{type:"void",title:`{{ t("Import Data", {ns: "${C}" }) }}`,"x-component":"Action.Modal","x-decorator":"Form","x-component-props":{width:"100%",style:{maxWidth:"750px"},className:i.css`
11
- .ant-formily-item-label {
12
- height: var(--controlHeightLG);
13
- }
14
- `},properties:{formLayout:{type:"void","x-component":"FormLayout",properties:{warning:{type:"void","x-component":"ImportWarning"},download:{type:"void",title:`{{ t("Step 1: Download template", {ns: "${C}" }) }}`,"x-component":"FormItem","x-acl-ignore":!0,properties:{tip:{type:"void","x-component":"DownloadTips"},downloadAction:{type:"void",title:`{{ t("Download template", {ns: "${C}" }) }}`,"x-component":"Action","x-component-props":{className:i.css`
15
- margin-top: 5px;
16
- `,useAction:"{{ useDownloadXlsxTemplateAction }}"}}}},upload:{type:"array",title:`{{ t("Step 2: Upload Excel", {ns: "${C}" }) }}`,"x-decorator":"FormItem","x-acl-ignore":!0,"x-component":"Upload.Dragger","x-validator":"{{ uploadValidator }}","x-component-props":{action:"",height:"150px",tipContent:`{{ t("Upload placeholder", {ns: "${C}" }) }}`,beforeUpload:"{{ beforeUploadHandler }}"}}}},footer:{"x-component":"Action.Modal.Footer","x-component-props":{},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{},properties:{cancel:{type:"void",title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},startImport:{type:"void",title:`{{ t("Start import", {ns: "${C}" }) }}`,"x-component":"Action","x-component-props":{type:"primary",htmlType:"submit",useAction:"{{ useImportStartAction }}"},"x-reactions":{dependencies:["upload"],fulfill:{run:"validateUpload($form, $self, $deps)"}}}}}}}}}}};return a.jsx(i.SchemaInitializerItem,{title:t.title,onClick:()=>{var n;x["x-action-settings"].importSettings=ye(p);const s=y.merge(x||{},t.schema||{});(n=t==null?void 0:t.schemaInitialize)==null||n.call(t,s),e(s)}})},Ie=["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.ms-excel","application/wps-office.xlsx"],z=()=>{const{t}=F.useTranslation(C),{name:e}=i.useCollection_deprecated(),l=X(e);return{importSettingsSchema:{type:"void","x-component":"Grid",properties:{explain:{type:"string",title:`{{ t("Import explain", {ns: "${C}"}) }}`,"x-decorator":"FormItem","x-component":"Input.TextArea"},importColumns:{type:"array","x-component":"ArrayItems","x-decorator":"FormItem",items:{type:"object",properties:{space:{type:"void","x-component":"Space","x-component-props":{className:i.css`
17
- width: 100%;
18
- & .ant-space-item:nth-child(2) {
19
- flex: 1;
20
- }
21
- `},properties:{sort:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.SortHandle"},dataIndex:{type:"array","x-decorator":"FormItem","x-component":i.Cascader,required:!0,enum:l,"x-component-props":{fieldNames:{label:"title",value:"name",children:"children"},changeOnSelect:!1}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:`{{ t("Add importable field", {ns: "${C}"}) }}`,"x-component":"ArrayItems.Addition","x-component-props":{className:i.css`
22
- border-color: var(--colorSettings);
23
- color: var(--colorSettings);
24
- &.ant-btn-dashed:hover {
25
- border-color: var(--colorSettings);
26
- color: var(--colorSettings);
27
- }
28
- `}}}}}},beforeUploadHandler(){return!1},uploadValidator(p,x){var n;if(p.length>1)return{type:"error",message:t("Only one file is allowed to be uploaded")};const s=(n=p[0])!=null?n:{};return s.size>10*1024*1024?{type:"error",message:t("File size cannot exceed 10M")}:Ie.includes(s.type)?"":{type:"error",message:t("Please upload the file of Excel")}},validateUpload(p,x,s){var m;const[n]=s;x.disabled=(n==null?void 0:n.length)===0,x.componentProps=he(O({},x.componentProps),{disabled:(n==null?void 0:n.length)===0||((m=p.errors)==null?void 0:m.length)>0})}}},K=()=>{var m,f,o,r,h,d;const t=M.useField(),e=M.useFieldSchema(),{t:l}=F.useTranslation(),{dn:p}=i.useDesignable(),[x,s]=g.useState(),{importSettingsSchema:n}=z();return g.useEffect(()=>{s(n)},[t.address,(m=e==null?void 0:e["x-action-settings"])==null?void 0:m.importSettings]),a.jsxs(i.GeneralSchemaDesigner,{disableInitializer:!0,children:[a.jsx(i.SchemaSettingsModalItem,{title:l("Edit button"),schema:{type:"object",title:l("Edit button"),properties:{title:{"x-decorator":"FormItem","x-component":"Input",title:l("Button title"),default:e.title,"x-component-props":{}},icon:{"x-decorator":"FormItem","x-component":"IconPicker",title:l("Button icon"),default:(f=e==null?void 0:e["x-component-props"])==null?void 0:f.icon,"x-component-props":{}},type:{"x-decorator":"FormItem","x-component":"Radio.Group",title:l("Button background color"),default:(o=e==null?void 0:e["x-component-props"])!=null&&o.danger?"danger":((r=e==null?void 0:e["x-component-props"])==null?void 0:r.type)==="primary"?"primary":"default",enum:[{value:"default",label:'{{t("Default")}}'},{value:"primary",label:'{{t("Highlight")}}'},{value:"danger",label:'{{t("Danger red")}}'}]}}},onSubmit:({title:u,icon:I,type:v})=>{e.title=u,t.title=u,t.componentProps.icon=I,t.componentProps.danger=v==="danger",t.componentProps.type=v,e["x-component-props"]=e["x-component-props"]||{},e["x-component-props"].icon=I,e["x-component-props"].danger=v==="danger",e["x-component-props"].type=v,p.emit("patch",{schema:{"x-uid":e["x-uid"],title:u,"x-component-props":O({},e["x-component-props"])}}),p.refresh()}}),a.jsx(i.SchemaSettingsActionModalItem,{title:l("Importable fields"),schema:x,initialValues:O({},(d=(h=e==null?void 0:e["x-action-settings"])==null?void 0:h.importSettings)!=null?d:{}),components:{ArrayItems:N.ArrayItems},onSubmit:({importColumns:u,explain:I})=>{const v=u==null?void 0:u.filter(A=>{var b;return(b=A==null?void 0:A.dataIndex)==null?void 0:b.length}).map(A=>({dataIndex:A.dataIndex.map(b=>{var S;return(S=b.name)!=null?S:b}),title:A.title}));e["x-action-settings"].importSettings={importColumns:v,explain:I},p.emit("patch",{schema:{"x-uid":e["x-uid"],"x-action-settings":e["x-action-settings"]}}),p.refresh()}}),a.jsx(i.SchemaSettingsDivider,{}),a.jsx(i.SchemaSettingsRemove,{removeParentsIfNoChildren:!0,breakRemoveOn:u=>u["x-component"]==="Space"||u["x-component"].endsWith("ActionBar"),confirm:{title:l("Delete action")}})]})},H=g.createContext(null);H.displayName="ImportContext";const Y=()=>g.useContext(H);var U=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},Q={exports:{}};(function(t,e){(function(l,p){p()})(U,function(){function l(o,r){return typeof r=="undefined"?r={autoBom:!1}:typeof r!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),r={autoBom:!r}),r.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(o.type)?new Blob(["\uFEFF",o],{type:o.type}):o}function p(o,r,h){var d=new XMLHttpRequest;d.open("GET",o),d.responseType="blob",d.onload=function(){f(d.response,r,h)},d.onerror=function(){console.error("could not download file")},d.send()}function x(o){var r=new XMLHttpRequest;r.open("HEAD",o,!1);try{r.send()}catch(h){}return 200<=r.status&&299>=r.status}function s(o){try{o.dispatchEvent(new MouseEvent("click"))}catch(h){var r=document.createEvent("MouseEvents");r.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),o.dispatchEvent(r)}}var n=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof U=="object"&&U.global===U?U:void 0,m=n.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),f=n.saveAs||(typeof window!="object"||window!==n?function(){}:"download"in HTMLAnchorElement.prototype&&!m?function(o,r,h){var d=n.URL||n.webkitURL,u=document.createElement("a");r=r||o.name||"download",u.download=r,u.rel="noopener",typeof o=="string"?(u.href=o,u.origin===location.origin?s(u):x(u.href)?p(o,r,h):s(u,u.target="_blank")):(u.href=d.createObjectURL(o),setTimeout(function(){d.revokeObjectURL(u.href)},4e4),setTimeout(function(){s(u)},0))}:"msSaveOrOpenBlob"in navigator?function(o,r,h){if(r=r||o.name||"download",typeof o!="string")navigator.msSaveOrOpenBlob(l(o,h),r);else if(x(o))p(o,r,h);else{var d=document.createElement("a");d.href=o,d.target="_blank",setTimeout(function(){s(d)})}}:function(o,r,h,d){if(d=d||open("","_blank"),d&&(d.document.title=d.document.body.innerText="downloading..."),typeof o=="string")return p(o,r,h);var u=o.type==="application/octet-stream",I=/constructor/i.test(n.HTMLElement)||n.safari,v=/CriOS\/[\d]+/.test(navigator.userAgent);if((v||u&&I||m)&&typeof FileReader!="undefined"){var A=new FileReader;A.onloadend=function(){var w=A.result;w=v?w:w.replace(/^data:[^;]*;/,"data:attachment/file;"),d?d.location.href=w:location=w,d=null},A.readAsDataURL(o)}else{var b=n.URL||n.webkitURL,S=b.createObjectURL(o);d?d.location=S:location.href=S,d=null,setTimeout(function(){b.revokeObjectURL(S)},4e4)}});n.saveAs=f.saveAs=f,t.exports=f})})(Q);var Z=Q.exports;const D={IMPORTING:1,IMPORTED:2},ve=t=>{const{t:e}=F.useTranslation(C),{importModalVisible:l,importStatus:p,importResult:x,setImportModalVisible:s}=Y(),{data:n,meta:m}=x!=null?x:{},f=()=>{s(!1)},o=()=>{const r=new Int8Array(n==null?void 0:n.data),h=new Blob([r],{type:"application/x-xls"});Z.saveAs(h,"fail.xlsx")};return a.jsx(E.Modal,{title:e("Import Data"),width:"50%",styles:{body:{height:"calc(80vh - 200px)"}},open:l,footer:null,closable:p===D.IMPORTED,onCancel:f,children:a.jsxs("div",{className:i.css`
29
- display: flex;
30
- justify-content: center;
31
- align-items: center;
32
- height: 100%;
33
- `,children:[p===D.IMPORTING&&a.jsx(E.Spin,{indicator:a.jsx(R.LoadingOutlined,{style:{fontSize:24},spin:!0}),tip:e("Excel data importing")}),p===D.IMPORTED&&a.jsxs(E.Space,{direction:"vertical",align:"center",children:[a.jsx(R.ExclamationCircleFilled,{style:{fontSize:72,color:"#1890ff"}}),a.jsx("p",{children:e("{{successCount}} records have been successfully imported",O({},m!=null?m:{}))}),a.jsxs(E.Space,{children:[(m==null?void 0:m.failureCount)>0&&a.jsx(E.Button,{onClick:o,children:e("To download the failure data")}),a.jsx(E.Button,{type:"primary",onClick:f,children:e("Done")})]})]})]})})},ee=t=>{let e=t;for(;e&&e["x-action"]!=="importXlsx";)e=e.parent;return{schema:e}},te=t=>!t||!Array.isArray(t)?[]:t,oe=()=>{const{service:t,resource:e}=i.useBlockRequestContext();i.useAPIClient();const l=M.useFieldSchema(),p=i.useCompile(),{getCollectionJoinField:x,getCollectionField:s}=i.useCollectionManager_deprecated(),{name:n,title:m,getField:f}=i.useCollection_deprecated();F.useTranslation(C);const{schema:o}=ee(l);return{run(){return q(this,null,function*(){var A,b;const{importColumns:h,explain:d}=$.cloneDeep((b=(A=o==null?void 0:o["x-action-settings"])==null?void 0:A.importSettings)!=null?b:{}),u=te(h).map(S=>{var ie,k;const w=s(`${n}.${S.dataIndex[0]}`);if(w){if(S.defaultTitle=p((ie=w==null?void 0:w.uiSchema)==null?void 0:ie.title)||w.name,S.dataIndex.length>1){const P=x(`${n}.${S.dataIndex.join(".")}`);if(!P)return;S.defaultTitle=S.defaultTitle+"/"+p((k=P==null?void 0:P.uiSchema)==null?void 0:k.title)||P.name}return w.interface==="chinaRegion"&&S.dataIndex.push("name"),S}}).filter(Boolean),{data:I}=yield e.downloadXlsxTemplate({values:{title:p(m),explain:d,columns:p(u)}},{method:"post",responseType:"blob"}),v=new Blob([I],{type:"application/x-xls"});Z.saveAs(v,`${p(m)}.xlsx`)})}}},ne=()=>{var k;const{service:t,resource:e}=i.useBlockRequestContext(),l=i.useAPIClient(),p=M.useFieldSchema(),x=i.useCompile(),{getCollectionJoinField:s,getCollectionField:n}=i.useCollectionManager_deprecated(),{name:m,title:f,getField:o}=i.useCollection_deprecated();F.useTranslation(C);const{schema:r}=ee(p),h=M.useForm(),{setVisible:d,fieldSchema:u}=i.useActionContext(),{setImportModalVisible:I,setImportStatus:v,setImportResult:A}=Y(),{upload:b}=h.values,S=i.useDataBlockProps()||{},w=i.useDataSourceHeaders(S.dataSource);return g.useEffect(()=>{h.reset()},[]),{run(){return q(this,null,function*(){var ce,pe,le;const{importColumns:P,explain:Ae}=$.cloneDeep((pe=(ce=r==null?void 0:r["x-action-settings"])==null?void 0:ce.importSettings)!=null?pe:{}),be=te(P).map(T=>{var de,me;const B=n(`${m}.${T.dataIndex[0]}`);if(B){if(T.defaultTitle=x((de=B==null?void 0:B.uiSchema)==null?void 0:de.title)||B.name,T.dataIndex.length>1){const L=s(`${m}.${T.dataIndex.join(".")}`);if(!L)return;T.defaultTitle=T.defaultTitle+"/"+x((me=L==null?void 0:L.uiSchema)==null?void 0:me.title)||L.name}return B.interface==="chinaRegion"&&T.dataIndex.push("name"),T}}).filter(Boolean),_=new FormData,we=h.values.upload.map(T=>T.originFileObj);_.append("file",we[0]),_.append("columns",JSON.stringify(be)),_.append("explain",Ae),d(!1),I(!0),v(D.IMPORTING);try{const{data:T}=yield l.axios.post(`${m}:importXlsx`,_,{headers:w,timeout:6e5});A(T),h.reset(),yield(le=t==null?void 0:t.refresh)==null?void 0:le.call(t),v(D.IMPORTED)}catch(T){I(!1),d(!0)}})},disabled:(b==null?void 0:b.length)===0||((k=h.errors)==null?void 0:k.length)>0}},re=t=>{const{uploadValidator:e,beforeUploadHandler:l,validateUpload:p}=z();return a.jsx(i.SchemaComponentOptions,{components:{ImportActionInitializer:J,ImportDesigner:K,ImportWarning:G,DownloadTips:W},scope:{uploadValidator:e,validateUpload:p,beforeUploadHandler:l,useDownloadXlsxTemplateAction:oe,useImportStartAction:ne},children:a.jsx(ae,{children:t.children})})},ae=t=>{const[e,l]=g.useState(!1),[p,x]=g.useState(D.IMPORTING),[s,n]=g.useState(null);return a.jsxs(H.Provider,{value:{importModalVisible:e,setImportModalVisible:l,importStatus:p,setImportStatus:x,importResult:s,setImportResult:n},children:[j.createPortal(a.jsx(ve,{}),document.body),t.children]})},Se=new i.SchemaSettings({name:"actionSettings:import",items:[{name:"editButton",Component:i.ButtonEditor,useComponentProps(){const{buttonEditorProps:t}=i.useSchemaToolbar();return t}},{name:"importableFields",type:"actionModal",useComponentProps(){var m,f,o;const t=M.useField(),e=M.useFieldSchema(),{t:l}=F.useTranslation(),{dn:p}=i.useDesignable(),[x,s]=g.useState(),{importSettingsSchema:n}=z();return g.useEffect(()=>{s(n)},[t.address,(m=e==null?void 0:e["x-action-settings"])==null?void 0:m.importSettings]),{title:l("Importable fields"),schema:x,initialValues:O({},(o=(f=e==null?void 0:e["x-action-settings"])==null?void 0:f.importSettings)!=null?o:{}),components:{ArrayItems:N.ArrayItems},onSubmit:({importColumns:r,explain:h})=>{const d=r==null?void 0:r.filter(u=>{var I;return(I=u==null?void 0:u.dataIndex)==null?void 0:I.length}).map(u=>({dataIndex:u.dataIndex.map(I=>{var v;return(v=I.name)!=null?v:I}),title:u.title}));e["x-action-settings"].importSettings={importColumns:d,explain:h},p.emit("patch",{schema:{"x-uid":e["x-uid"],"x-action-settings":e["x-action-settings"]}}),p.refresh()}}}},{name:"divider",type:"divider"},{name:"delete",type:"remove",useComponentProps(){const{t}=F.useTranslation();return{removeParentsIfNoChildren:!0,breakRemoveOn:e=>e["x-component"]==="Space"||e["x-component"].endsWith("ActionBar"),confirm:{title:t("Delete action")}}}}]});class se extends i.Plugin{load(){return q(this,null,function*(){this.app.use(re);const e={title:"{{t('Import')}}",Component:"ImportActionInitializer",schema:{"x-align":"right","x-decorator":"ACLActionProvider","x-acl-action":"importXlsx","x-acl-action-props":{skipScopeCheck:!0}},useVisible:()=>i.useActionAvailable("import")},l=this.app.schemaInitializerManager.get("table:configureActions");l==null||l.add("enableActions.import",e),this.app.schemaInitializerManager.addItem("gantt:configureActions","enableActions.import",e),this.app.schemaSettingsManager.add(Se)})}}c.DownloadTips=W,c.ImportActionInitializer=J,c.ImportContextProvider=ae,c.ImportDesigner=K,c.ImportPluginProvider=re,c.ImportWarning=G,c.PluginActionImportClient=se,c.default=se,c.useDownloadXlsxTemplateAction=oe,c.useImportStartAction=ne,Object.defineProperties(c,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
10
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react-i18next"),require("@formily/antd-v5"),require("react"),require("@formily/shared"),require("react-dom"),require("file-saver"),require("@nocobase/client"),require("lodash"),require("antd"),require("@ant-design/icons"),require("@formily/react")):"function"==typeof define&&define.amd?define("@nocobase/plugin-action-import",["react-i18next","@formily/antd-v5","react","@formily/shared","react-dom","file-saver","@nocobase/client","lodash","antd","@ant-design/icons","@formily/react"],t):"object"==typeof exports?exports["@nocobase/plugin-action-import"]=t(require("react-i18next"),require("@formily/antd-v5"),require("react"),require("@formily/shared"),require("react-dom"),require("file-saver"),require("@nocobase/client"),require("lodash"),require("antd"),require("@ant-design/icons"),require("@formily/react")):e["@nocobase/plugin-action-import"]=t(e["react-i18next"],e["@formily/antd-v5"],e.react,e["@formily/shared"],e["react-dom"],e["file-saver"],e["@nocobase/client"],e.lodash,e.antd,e["@ant-design/icons"],e["@formily/react"])}(self,function(e,t,n,r,o,i,a,l,c,u,s){return function(){"use strict";var p={482:function(e){e.exports=u},632:function(e){e.exports=t},505:function(e){e.exports=s},875:function(e){e.exports=r},772:function(e){e.exports=a},721:function(e){e.exports=c},346:function(e){e.exports=i},467:function(e){e.exports=l},156:function(e){e.exports=n},111:function(e){e.exports=o},238:function(t){t.exports=e}},d={};function f(e){var t=d[e];if(void 0!==t)return t.exports;var n=d[e]={exports:{}};return p[e](n,n.exports,f),n.exports}f.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(t,{a:t}),t},f.d=function(e,t){for(var n in t)f.o(t,n)&&!f.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},f.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var m={};f.r(m),f.d(m,{ImportActionInitializer:function(){return D},PluginActionImportClient:function(){return eS},default:function(){return eI},useImportStartAction:function(){return ea},ImportDesigner:function(){return G},ImportPluginProvider:function(){return eu},ImportWarning:function(){return E},DownloadTips:function(){return T},ImportContextProvider:function(){return es},useDownloadXlsxTemplateAction:function(){return ei}});var v=f("875"),y=f("772"),b=f("721"),h=f("156"),g=f.n(h),x="action-import",S=f("238");function I(){return(0,S.useTranslation)(["action-import","client"],{nsMode:"fallback"})}function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var A=["id","createdAt","createdBy","updatedAt","updatedBy"],w=function(e){var t=(0,y.useCollectionManager_deprecated)().getCollectionFields,n=t(e),r=function(e,n){if(!(!e.interface||A.includes(e.interface))){var r={name:e.name,title:(null==e?void 0:null===(i=e.uiSchema)||void 0===i?void 0:i.title)||e.name,schema:null==e?void 0:e.uiSchema};if(!e.target||n>=2)return r;if(e.target&&["hasOne","hasMany","belongsTo","belongsToMany","belongsToArray"].includes(e.type)){var i,a,l,c=o(t(e.target),n+1).filter(Boolean);r.children=r.children||[],(a=r.children).push.apply(a,function(e){if(Array.isArray(e))return O(e)}(l=c)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(l)||function(e,t){if(e){if("string"==typeof e)return O(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return O(e,t)}}(l)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())}return r}},o=function(e,t){var n=[];return e.forEach(function(e){var o=r(e,t);o&&n.push(o)}),n};return o(n,1)};function j(e,t){return!t&&(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function P(){var e=j(["\n .ant-formily-item-label {\n height: var(--controlHeightLG);\n }\n "]);return P=function(){return e},e}function C(){var e=j(["\n margin-top: 5px;\n "]);return C=function(){return e},e}var E=function(){var e=I().t;return g().createElement(b.Alert,{type:"warning",style:{marginBottom:"10px"},message:e("Import warnings",{limit:2e3})})},T=function(){var e=I().t;return g().createElement(b.Alert,{type:"info",style:{marginBottom:"10px",whiteSpace:"pre-line"},message:e("Download tips")})},D=function(){var e=(0,y.useSchemaInitializerItem)(),t=(0,y.useSchemaInitializer)().insert,n=w((0,y.useCollection_deprecated)().name),r={type:"void",title:'{{ t("Import") }}',"x-action":"importXlsx","x-action-settings":{importSettings:{importColumns:[],explain:""}},"x-toolbar":"ActionSchemaToolbar","x-settings":"actionSettings:import","x-component":"Action","x-component-props":{icon:"CloudUploadOutlined",openMode:"modal"},properties:{modal:{type:"void",title:'{{ t("Import Data", {ns: "'.concat(x,'" }) }}'),"x-component":"Action.Modal","x-decorator":"Form","x-component-props":{width:"100%",style:{maxWidth:"750px"},className:(0,y.css)(P())},properties:{formLayout:{type:"void","x-component":"FormLayout",properties:{warning:{type:"void","x-component":"ImportWarning"},download:{type:"void",title:'{{ t("Step 1: Download template", {ns: "'.concat(x,'" }) }}'),"x-component":"FormItem","x-acl-ignore":!0,properties:{tip:{type:"void","x-component":"DownloadTips"},downloadAction:{type:"void",title:'{{ t("Download template", {ns: "'.concat(x,'" }) }}'),"x-component":"Action","x-component-props":{className:(0,y.css)(C()),useAction:"{{ useDownloadXlsxTemplateAction }}"}}}},upload:{type:"array",title:'{{ t("Step 2: Upload Excel", {ns: "'.concat(x,'" }) }}'),"x-decorator":"FormItem","x-acl-ignore":!0,"x-component":"Upload.Dragger","x-validator":"{{ uploadValidator }}","x-component-props":{action:"",height:"150px",tipContent:'{{ t("Upload placeholder", {ns: "'.concat(x,'" }) }}'),beforeUpload:"{{ beforeUploadHandler }}"}}}},footer:{"x-component":"Action.Modal.Footer","x-component-props":{},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{},properties:{cancel:{type:"void",title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},startImport:{type:"void",title:'{{ t("Start import", {ns: "'.concat(x,'" }) }}'),"x-component":"Action","x-component-props":{type:"primary",htmlType:"submit",useAction:"{{ useImportStartAction }}"},"x-reactions":{dependencies:["upload"],fulfill:{run:"validateUpload($form, $self, $deps)"}}}}}}}}}}};return g().createElement(y.SchemaInitializerItem,{title:e.title,onClick:function(){r["x-action-settings"].importSettings={importColumns:null==(o=n)?void 0:o.filter(function(e){return!e.children}).map(function(e){return{dataIndex:[e.name]}}),explain:""};var o,i,a=(0,v.merge)(r||{},e.schema||{});null==e||null===(i=e.schemaInitialize)||void 0===i||i.call(e,a),t(a)}})},M=f("632"),F=f("505");function k(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function R(e,t){return!t&&(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function q(){var e=R(["\n width: 100%;\n & .ant-space-item:nth-child(2) {\n flex: 1;\n }\n "]);return q=function(){return e},e}function B(){var e=R(["\n border-color: var(--colorSettings);\n color: var(--colorSettings);\n &.ant-btn-dashed:hover {\n border-color: var(--colorSettings);\n color: var(--colorSettings);\n }\n "]);return B=function(){return e},e}var z=["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.ms-excel","application/wps-office.xlsx"],_=function(){var e=(0,S.useTranslation)(x).t,t=w((0,y.useCollection_deprecated)().name);return{importSettingsSchema:{type:"void","x-component":"Grid",properties:{explain:{type:"string",title:'{{ t("Import explain", {ns: "'.concat(x,'"}) }}'),"x-decorator":"FormItem","x-component":"Input.TextArea"},importColumns:{type:"array","x-component":"ArrayItems","x-decorator":"FormItem",items:{type:"object",properties:{space:{type:"void","x-component":"Space","x-component-props":{className:(0,y.css)(q())},properties:{sort:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.SortHandle"},dataIndex:{type:"array","x-decorator":"FormItem","x-component":y.Cascader,required:!0,enum:t,"x-component-props":{fieldNames:{label:"title",value:"name",children:"children"},changeOnSelect:!1}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:'{{ t("Add importable field", {ns: "'.concat(x,'"}) }}'),"x-component":"ArrayItems.Addition","x-component-props":{className:(0,y.css)(B())}}}}}},beforeUploadHandler:function(){return!1},uploadValidator:function(t,n){if(t.length>1)return{type:"error",message:e("Only one file is allowed to be uploaded")};var r,o=null!==(r=t[0])&&void 0!==r?r:{};return o.size>0xa00000?{type:"error",message:e("File size cannot exceed 10M")}:z.includes(o.type)?"":{type:"error",message:e("Please upload the file of Excel")}},validateUpload:function(e,t,n){var r,o,i,a,l,c=(a=1,function(e){if(Array.isArray(e))return e}(i=n)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,l=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(e){l=!0,r=e}finally{try{!a&&null!=o.return&&o.return()}finally{if(l)throw r}}return i}}(i,1)||function(e,t){if(e){if("string"==typeof e)return k(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return k(e,t)}}(i,a)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];t.disabled=(null==c?void 0:c.length)===0,t.componentProps=(r=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,i;r=e,o=t,i=n[t],o in r?Object.defineProperty(r,o,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[o]=i})}return e}({},t.componentProps),o=(o={disabled:(null==c?void 0:c.length)===0||(null===(l=e.errors)||void 0===l?void 0:l.length)>0},o),Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(o)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))}),r)}}};function U(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function N(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function V(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){N(e,t,n[t])})}return e}var G=function(){var e,t,n,r,o,i,a,l,c=(0,F.useField)(),u=(0,F.useFieldSchema)(),s=(0,S.useTranslation)().t,p=(0,y.useDesignable)().dn;var d=(e=(0,h.useState)(),t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,l=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(e){l=!0,r=e}finally{try{!a&&null!=o.return&&o.return()}finally{if(l)throw r}}return i}}(e,2)||function(e,t){if(e){if("string"==typeof e)return U(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return U(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),f=d[0],m=d[1],v=_().importSettingsSchema;return(0,h.useEffect)(function(){m(v)},[c.address,null==u?void 0:null===(n=u["x-action-settings"])||void 0===n?void 0:n.importSettings]),g().createElement(y.GeneralSchemaDesigner,{disableInitializer:!0},g().createElement(y.SchemaSettingsModalItem,{title:s("Edit button"),schema:{type:"object",title:s("Edit button"),properties:{title:{"x-decorator":"FormItem","x-component":"Input",title:s("Button title"),default:u.title,"x-component-props":{}},icon:{"x-decorator":"FormItem","x-component":"IconPicker",title:s("Button icon"),default:null==u?void 0:null===(r=u["x-component-props"])||void 0===r?void 0:r.icon,"x-component-props":{}},type:{"x-decorator":"FormItem","x-component":"Radio.Group",title:s("Button background color"),default:(null==u?void 0:null===(o=u["x-component-props"])||void 0===o?void 0:o.danger)?"danger":(null==u?void 0:null===(i=u["x-component-props"])||void 0===i?void 0:i.type)==="primary"?"primary":"default",enum:[{value:"default",label:'{{t("Default")}}'},{value:"primary",label:'{{t("Highlight")}}'},{value:"danger",label:'{{t("Danger red")}}'}]}}},onSubmit:function(e){var t,n=e.title,r=e.icon,o=e.type;u.title=n,c.title=n,c.componentProps.icon=r,c.componentProps.danger="danger"===o,c.componentProps.type=o,u["x-component-props"]=u["x-component-props"]||{},u["x-component-props"].icon=r,u["x-component-props"].danger="danger"===o,u["x-component-props"].type=o,p.emit("patch",{schema:(N(t={},"x-uid",u["x-uid"]),N(t,"title",n),N(t,"x-component-props",V({},u["x-component-props"])),t)}),p.refresh()}}),g().createElement(y.SchemaSettingsActionModalItem,{title:s("Importable fields"),schema:f,initialValues:V({},null!==(l=null==u?void 0:null===(a=u["x-action-settings"])||void 0===a?void 0:a.importSettings)&&void 0!==l?l:{}),components:{ArrayItems:M.ArrayItems},onSubmit:function(e){var t,n=e.importColumns,r=e.explain,o=null==n?void 0:n.filter(function(e){var t;return null==e?void 0:null===(t=e.dataIndex)||void 0===t?void 0:t.length}).map(function(e){return{dataIndex:e.dataIndex.map(function(e){var t;return null!==(t=e.name)&&void 0!==t?t:e}),title:e.title}});u["x-action-settings"].importSettings={importColumns:o,explain:r},p.emit("patch",{schema:(N(t={},"x-uid",u["x-uid"]),N(t,"x-action-settings",u["x-action-settings"]),t)}),p.refresh()}}),g().createElement(y.SchemaSettingsDivider,null),g().createElement(y.SchemaSettingsRemove,{removeParentsIfNoChildren:!0,breakRemoveOn:function(e){return"Space"===e["x-component"]||e["x-component"].endsWith("ActionBar")},confirm:{title:s("Delete action")}}))},H=f("111"),X=(0,h.createContext)(null);X.displayName="ImportContext";var $=function(){return(0,h.useContext)(X)},W=f("482"),L=f("346");function J(){var e,t,n=(e=["\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n "],!t&&(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return J=function(){return n},n}var K={IMPORTING:1,IMPORTED:2},Q=function(e){var t=(0,S.useTranslation)(x).t,n=$(),r=n.importModalVisible,o=n.importStatus,i=n.importResult,a=n.setImportModalVisible,l=null!=i?i:{},c=l.data,u=l.meta,s=function(){a(!1)};return g().createElement(b.Modal,{title:t("Import Data"),width:"50%",styles:{body:{height:"calc(80vh - 200px)"}},open:r,footer:null,closable:o===K.IMPORTED,onCancel:s},g().createElement("div",{className:(0,y.css)(J())},o===K.IMPORTING&&g().createElement(b.Spin,{indicator:g().createElement(W.LoadingOutlined,{style:{fontSize:24},spin:!0}),tip:t("Excel data importing")}),o===K.IMPORTED&&g().createElement(b.Space,{direction:"vertical",align:"center"},g().createElement(W.ExclamationCircleFilled,{style:{fontSize:72,color:"#1890ff"}}),g().createElement("p",null,t("{{successCount}} records have been successfully imported",function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,i;r=e,o=t,i=n[t],o in r?Object.defineProperty(r,o,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[o]=i})}return e}({},null!=u?u:{}))),g().createElement(b.Space,null,(null==u?void 0:u.failureCount)>0&&g().createElement(b.Button,{onClick:function(){var e=new Blob([new Int8Array(null==c?void 0:c.data)],{type:"application/x-xls"});(0,L.saveAs)(e,"fail.xlsx")}},t("To download the failure data")),g().createElement(b.Button,{type:"primary",onClick:s},t("Done"))))))},Y=f("467"),Z=f.n(Y);function ee(e,t,n,r,o,i,a){try{var l=e[i](a),c=l.value}catch(e){n(e);return}l.done?t(c):Promise.resolve(c).then(r,o)}function et(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){ee(i,r,o,a,l,"next",e)}function l(e){ee(i,r,o,a,l,"throw",e)}a(void 0)})}}function en(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(i){return function(l){return function(i){if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}}var er=function(e){for(var t=e;t&&"importXlsx"!==t["x-action"];)t=t.parent;return{schema:t}},eo=function(e){return e&&Array.isArray(e)?e:[]},ei=function(){var e=(0,y.useBlockRequestContext)(),t=(e.service,e.resource);(0,y.useAPIClient)();var n=(0,F.useFieldSchema)(),r=(0,y.useCompile)(),o=(0,y.useCollectionManager_deprecated)(),i=o.getCollectionJoinField,a=o.getCollectionField,l=(0,y.useCollection_deprecated)(),c=l.name,u=l.title;l.getField,(0,S.useTranslation)(x).t;var s=er(n).schema;return{run:function(){return et(function(){var e,n,o,l,p,d,f;return en(this,function(m){switch(m.label){case 0:return l=(o=Z().cloneDeep(null!==(n=null==s?void 0:null===(e=s["x-action-settings"])||void 0===e?void 0:e.importSettings)&&void 0!==n?n:{})).importColumns,p=o.explain,d=eo(l).map(function(e){var t=a("".concat(c,".").concat(e.dataIndex[0]));if(!!t){if(e.defaultTitle=r(null==t?void 0:null===(n=t.uiSchema)||void 0===n?void 0:n.title)||t.name,e.dataIndex.length>1){var n,o,l=i("".concat(c,".").concat(e.dataIndex.join(".")));if(!l)return;e.defaultTitle=e.defaultTitle+"/"+r(null==l?void 0:null===(o=l.uiSchema)||void 0===o?void 0:o.title)||l.name}return"chinaRegion"===t.interface&&e.dataIndex.push("name"),e}}).filter(Boolean),[4,t.downloadXlsxTemplate({values:{title:r(u),explain:p,columns:r(d)}},{method:"post",responseType:"blob"})];case 1:return f=new Blob([m.sent().data],{type:"application/x-xls"}),(0,L.saveAs)(f,"".concat(r(u),".xlsx")),[2]}})})()}}},ea=function(){var e,t=(0,y.useBlockRequestContext)(),n=t.service;t.resource,(0,y.useAPIClient)();var r=(0,F.useFieldSchema)(),o=(0,y.useCompile)(),i=(0,y.useCollectionManager_deprecated)(),a=i.getCollectionJoinField,l=i.getCollectionField,c=(0,y.useCollection_deprecated)(),u=c.name;c.title,c.getField,(0,S.useTranslation)(x).t;var s=er(r).schema,p=(0,F.useForm)(),d=(0,y.useActionContext)(),f=d.setVisible;d.fieldSchema;var m=$(),v=m.setImportModalVisible,b=m.setImportStatus,g=m.setImportResult,I=p.values.upload,O=(0,y.useDataBlockProps)()||{};(0,y.useDataSourceHeaders)(O.dataSource);var A=(0,y.useDataBlockResource)();return(0,h.useEffect)(function(){p.reset()},[]),{run:function(){return et(function(){var e,t,r,i,c,d,m,y,h,x;return en(this,function(x){switch(x.label){case 0:i=(r=Z().cloneDeep(null!==(t=null==s?void 0:null===(e=s["x-action-settings"])||void 0===e?void 0:e.importSettings)&&void 0!==t?t:{})).importColumns,c=r.explain,d=eo(i).map(function(e){var t=l("".concat(u,".").concat(e.dataIndex[0]));if(!!t){if(e.defaultTitle=o(null==t?void 0:null===(n=t.uiSchema)||void 0===n?void 0:n.title)||t.name,e.dataIndex.length>1){var n,r,i=a("".concat(u,".").concat(e.dataIndex.join(".")));if(!i)return;e.defaultTitle=e.defaultTitle+"/"+o(null==i?void 0:null===(r=i.uiSchema)||void 0===r?void 0:r.title)||i.name}return"chinaRegion"===t.interface&&e.dataIndex.push("name"),e}}).filter(Boolean),m=new FormData,y=p.values.upload.map(function(e){return e.originFileObj}),m.append("file",y[0]),m.append("columns",JSON.stringify(d)),m.append("explain",c),f(!1),v(!0),b(K.IMPORTING),x.label=1;case 1:return x.trys.push([1,4,,5]),[4,A.importXlsx({values:m},{timeout:6e5})];case 2:return g(x.sent().data),p.reset(),[4,null==n?void 0:null===(h=n.refresh)||void 0===h?void 0:h.call(n)];case 3:return x.sent(),b(K.IMPORTED),[3,5];case 4:return x.sent(),v(!1),f(!0),[3,5];case 5:return[2]}})})()},disabled:(null==I?void 0:I.length)===0||(null===(e=p.errors)||void 0===e?void 0:e.length)>0}};function el(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ec(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,l=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(e){l=!0,r=e}finally{try{!a&&null!=o.return&&o.return()}finally{if(l)throw r}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return el(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return el(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var eu=function(e){var t=_(),n=t.uploadValidator,r=t.beforeUploadHandler,o=t.validateUpload;return g().createElement(y.SchemaComponentOptions,{components:{ImportActionInitializer:D,ImportDesigner:G,ImportWarning:E,DownloadTips:T},scope:{uploadValidator:n,validateUpload:o,beforeUploadHandler:r,useDownloadXlsxTemplateAction:ei,useImportStartAction:ea}},g().createElement(es,null,e.children))},es=function(e){var t=ec((0,h.useState)(!1),2),n=t[0],r=t[1],o=ec((0,h.useState)(K.IMPORTING),2),i=o[0],a=o[1],l=ec((0,h.useState)(null),2),c=l[0],u=l[1];return g().createElement(X.Provider,{value:{importModalVisible:n,setImportModalVisible:r,importStatus:i,setImportStatus:a,importResult:c,setImportResult:u}},(0,H.createPortal)(g().createElement(Q,null),document.body),e.children)};function ep(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ed(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ef=new y.SchemaSettings({name:"actionSettings:import",items:[{name:"editButton",Component:y.ButtonEditor,useComponentProps:function(){return(0,y.useSchemaToolbar)().buttonEditorProps}},{name:"importableFields",type:"actionModal",useComponentProps:function(){var e,t,n,r,o,i=(0,F.useField)(),a=(0,F.useFieldSchema)(),l=(0,S.useTranslation)().t,c=(0,y.useDesignable)().dn;var u=(e=(0,h.useState)(),t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,l=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(e){l=!0,r=e}finally{try{!a&&null!=o.return&&o.return()}finally{if(l)throw r}}return i}}(e,2)||function(e,t){if(e){if("string"==typeof e)return ep(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ep(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),s=u[0],p=u[1],d=_().importSettingsSchema;return(0,h.useEffect)(function(){p(d)},[i.address,null==a?void 0:null===(n=a["x-action-settings"])||void 0===n?void 0:n.importSettings]),{title:l("Importable fields"),schema:s,initialValues:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){ed(e,t,n[t])})}return e}({},null!==(o=null==a?void 0:null===(r=a["x-action-settings"])||void 0===r?void 0:r.importSettings)&&void 0!==o?o:{}),components:{ArrayItems:M.ArrayItems},onSubmit:function(e){var t,n=e.importColumns,r=e.explain,o=null==n?void 0:n.filter(function(e){var t;return null==e?void 0:null===(t=e.dataIndex)||void 0===t?void 0:t.length}).map(function(e){return{dataIndex:e.dataIndex.map(function(e){var t;return null!==(t=e.name)&&void 0!==t?t:e}),title:e.title}});a["x-action-settings"].importSettings={importColumns:o,explain:r},c.emit("patch",{schema:(ed(t={},"x-uid",a["x-uid"]),ed(t,"x-action-settings",a["x-action-settings"]),t)}),c.refresh()}}}},{name:"divider",type:"divider"},{name:"delete",type:"remove",useComponentProps:function(){return{removeParentsIfNoChildren:!0,breakRemoveOn:function(e){return"Space"===e["x-component"]||e["x-component"].endsWith("ActionBar")},confirm:{title:(0,(0,S.useTranslation)().t)("Delete action")}}}}]});function em(e,t,n,r,o,i,a){try{var l=e[i](a),c=l.value}catch(e){n(e);return}l.done?t(c):Promise.resolve(c).then(r,o)}function ev(e,t,n){return(ev=ex()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&eh(o,n.prototype),o}).apply(null,arguments)}function ey(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function eb(e){return(eb=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function eh(e,t){return(eh=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function eg(e){var t="function"==typeof Map?new Map:void 0;return(eg=function(e){var n;if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return ev(e,arguments,eb(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),eh(r,e)})(e)}function ex(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(ex=function(){return!!e})()}var eS=function(e){var t,n,r;function o(){var e,t,n;return!function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}(this,o),e=this,t=o,n=arguments,t=eb(t),function(e,t){return t&&("object"===function(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}(t)||"function"==typeof t)?t:function(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,ex()?Reflect.construct(t,n||[],eb(e).constructor):t.apply(e,n))}return!function(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&eh(e,t)}(o,e),t=o,n=[{key:"load",value:function(){var e,t=this;return(e=function(){var e,n;return function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(i){return function(l){return function(i){if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}}(this,function(r){return t.app.use(eu),e={title:"{{t('Import')}}",Component:"ImportActionInitializer",schema:{"x-align":"right","x-decorator":"ACLActionProvider","x-acl-action":"importXlsx","x-acl-action-props":{skipScopeCheck:!0}},useVisible:function(){return(0,y.useActionAvailable)("import")}},null==(n=t.app.schemaInitializerManager.get("table:configureActions"))||n.add("enableActions.import",e),t.app.schemaInitializerManager.addItem("gantt:configureActions","enableActions.import",e),t.app.schemaSettingsManager.add(ef),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){em(i,r,o,a,l,"next",e)}function l(e){em(i,r,o,a,l,"throw",e)}a(void 0)})})()}}],ey(t.prototype,n),o}(eg(y.Plugin)),eI=eS;return m}()});
@@ -10,21 +10,22 @@
10
10
  module.exports = {
11
11
  "@formily/react": "2.3.0",
12
12
  "@formily/shared": "2.3.2",
13
- "@nocobase/client": "1.5.0-beta.2",
13
+ "@nocobase/client": "1.5.0-beta.4",
14
14
  "antd": "5.12.8",
15
15
  "react": "18.2.0",
16
16
  "@formily/antd-v5": "1.1.9",
17
17
  "react-i18next": "11.18.6",
18
18
  "@ant-design/icons": "5.2.6",
19
+ "file-saver": "2.0.5",
19
20
  "react-dom": "18.2.0",
20
21
  "lodash": "4.17.21",
21
22
  "@formily/core": "2.3.0",
22
- "@nocobase/server": "1.5.0-beta.2",
23
- "@nocobase/actions": "1.5.0-beta.2",
24
- "@nocobase/database": "1.5.0-beta.2",
25
- "async-mutex": "0.3.2",
26
- "@nocobase/data-source-manager": "1.5.0-beta.2",
27
- "@nocobase/utils": "1.5.0-beta.2",
23
+ "@nocobase/server": "1.5.0-beta.4",
24
+ "@nocobase/actions": "1.5.0-beta.4",
25
+ "@nocobase/database": "1.5.0-beta.4",
26
+ "async-mutex": "0.5.0",
27
+ "@nocobase/data-source-manager": "1.5.0-beta.4",
28
+ "@nocobase/utils": "1.5.0-beta.4",
28
29
  "sequelize": "6.35.2",
29
30
  "mathjs": "10.6.4"
30
31
  };
@@ -1 +1 @@
1
- {"name":"xlsx","version":"0.20.2","author":"sheetjs","description":"SheetJS Spreadsheet data parser and writer","keywords":["excel","xls","xlsx","xlsb","xlsm","ods","csv","dbf","dif","sylk","office","spreadsheet"],"bin":{"xlsx":"./bin/xlsx.njs"},"main":"xlsx.js","module":"xlsx.mjs","unpkg":"dist/xlsx.full.min.js","jsdelivr":"dist/xlsx.full.min.js","types":"types/index.d.ts","exports":{".":{"import":"./xlsx.mjs","require":"./xlsx.js","types":"./types/index.d.ts"},"./xlsx.mjs":{"import":"./xlsx.mjs","types":"./types/index.d.ts"},"./xlsx.js":{"require":"./xlsx.js","types":"./types/index.d.ts"},"./dist/xlsx.core.min":{"import":"./dist/xlsx.core.min.js","require":"./dist/xlsx.core.min.js","types":"./types/index.d.ts"},"./dist/xlsx.core.min.js":{"import":"./dist/xlsx.core.min.js","require":"./dist/xlsx.core.min.js","types":"./types/index.d.ts"},"./dist/xlsx.full.min":{"import":"./dist/xlsx.full.min.js","require":"./dist/xlsx.full.min.js","types":"./types/index.d.ts"},"./dist/xlsx.full.min.js":{"import":"./dist/xlsx.full.min.js","require":"./dist/xlsx.full.min.js","types":"./types/index.d.ts"},"./dist/xlsx.mini.min":{"import":"./dist/xlsx.mini.min.js","require":"./dist/xlsx.mini.min.js","types":"./types/index.d.ts"},"./dist/xlsx.mini.min.js":{"import":"./dist/xlsx.mini.min.js","require":"./dist/xlsx.mini.min.js","types":"./types/index.d.ts"},"./dist/xlsx.zahl":{"import":"./dist/xlsx.zahl.mjs","require":"./dist/xlsx.zahl.js","types":"./dist/zahl.d.ts"},"./dist/xlsx.zahl.mjs":{"import":"./dist/xlsx.zahl.mjs","types":"./dist/zahl.d.ts"},"./dist/xlsx.zahl.js":{"require":"./dist/xlsx.zahl.js","types":"./dist/zahl.d.ts"},"./dist/cpexcel":{"import":"./dist/cpexcel.full.mjs","require":"./dist/cpexcel.js","types":"./dist/cpexcel.d.ts"},"./dist/cpexcel.js":{"require":"./dist/cpexcel.js","types":"./dist/cpexcel.d.ts"},"./dist/cpexcel.full":{"import":"./dist/cpexcel.full.mjs","require":"./dist/cpexcel.js","types":"./dist/cpexcel.d.ts"},"./dist/cpexcel.full.mjs":{"import":"./dist/cpexcel.full.mjs","types":"./dist/cpexcel.d.ts"}},"browser":{"buffer":false,"crypto":false,"stream":false,"process":false,"fs":false},"sideEffects":false,"dependencies":{},"devDependencies":{"@sheetjs/uglify-js":"~2.7.3","@types/node":"^8.5.9","acorn":"7.4.1","adler-32":"~1.3.1","alex":"8.1.1","blanket":"~1.2.3","cfb":"~1.2.2","codepage":"~1.15.0","commander":"~2.17.1","crc-32":"~1.2.2","dtslint":"^0.1.2","eslint":"7.23.0","eslint-plugin-html":"^6.1.2","eslint-plugin-json":"^2.1.2","exit-on-epipe":"~1.0.1","fflate":"^0.7.1","jsdom":"~11.1.0","markdown-spellcheck":"^1.3.1","mocha":"~2.5.3","sinon":"^1.17.7","ssf":"~0.11.2","typescript":"2.2.0","wmf":"~1.0.1","word":"~0.3.0"},"repository":{"type":"git","url":"https://git.sheetjs.com/SheetJS/sheetjs"},"scripts":{"pretest":"npm run lint","test":"npm run tests-only","pretest-only":"git submodule init && git submodule update","tests-only":"make travis","build":"make","lint":"make fullint","dtslint":"dtslint types"},"config":{"blanket":{"pattern":"xlsx.js"}},"alex":{"allow":["chinese","special","simple","just","crash","wtf","holes"]},"homepage":"https://sheetjs.com/","files":["CHANGELOG.md","LICENSE","README.md","bower.json","package.json","xlsx.js","xlsx.mjs","xlsxworker.js","bin/xlsx.njs","dist/LICENSE","dist/*.mjs","dist/*.js","dist/*.map","dist/*.d.ts","types/index.d.ts","types/tsconfig.json"],"bugs":{"url":"https://git.sheetjs.com/SheetJS/sheetjs/issues"},"license":"Apache-2.0","engines":{"node":">=0.8"},"_lastModified":"2024-12-06T08:56:34.333Z"}
1
+ {"name":"xlsx","version":"0.20.2","author":"sheetjs","description":"SheetJS Spreadsheet data parser and writer","keywords":["excel","xls","xlsx","xlsb","xlsm","ods","csv","dbf","dif","sylk","office","spreadsheet"],"bin":{"xlsx":"./bin/xlsx.njs"},"main":"xlsx.js","module":"xlsx.mjs","unpkg":"dist/xlsx.full.min.js","jsdelivr":"dist/xlsx.full.min.js","types":"types/index.d.ts","exports":{".":{"import":"./xlsx.mjs","require":"./xlsx.js","types":"./types/index.d.ts"},"./xlsx.mjs":{"import":"./xlsx.mjs","types":"./types/index.d.ts"},"./xlsx.js":{"require":"./xlsx.js","types":"./types/index.d.ts"},"./dist/xlsx.core.min":{"import":"./dist/xlsx.core.min.js","require":"./dist/xlsx.core.min.js","types":"./types/index.d.ts"},"./dist/xlsx.core.min.js":{"import":"./dist/xlsx.core.min.js","require":"./dist/xlsx.core.min.js","types":"./types/index.d.ts"},"./dist/xlsx.full.min":{"import":"./dist/xlsx.full.min.js","require":"./dist/xlsx.full.min.js","types":"./types/index.d.ts"},"./dist/xlsx.full.min.js":{"import":"./dist/xlsx.full.min.js","require":"./dist/xlsx.full.min.js","types":"./types/index.d.ts"},"./dist/xlsx.mini.min":{"import":"./dist/xlsx.mini.min.js","require":"./dist/xlsx.mini.min.js","types":"./types/index.d.ts"},"./dist/xlsx.mini.min.js":{"import":"./dist/xlsx.mini.min.js","require":"./dist/xlsx.mini.min.js","types":"./types/index.d.ts"},"./dist/xlsx.zahl":{"import":"./dist/xlsx.zahl.mjs","require":"./dist/xlsx.zahl.js","types":"./dist/zahl.d.ts"},"./dist/xlsx.zahl.mjs":{"import":"./dist/xlsx.zahl.mjs","types":"./dist/zahl.d.ts"},"./dist/xlsx.zahl.js":{"require":"./dist/xlsx.zahl.js","types":"./dist/zahl.d.ts"},"./dist/cpexcel":{"import":"./dist/cpexcel.full.mjs","require":"./dist/cpexcel.js","types":"./dist/cpexcel.d.ts"},"./dist/cpexcel.js":{"require":"./dist/cpexcel.js","types":"./dist/cpexcel.d.ts"},"./dist/cpexcel.full":{"import":"./dist/cpexcel.full.mjs","require":"./dist/cpexcel.js","types":"./dist/cpexcel.d.ts"},"./dist/cpexcel.full.mjs":{"import":"./dist/cpexcel.full.mjs","types":"./dist/cpexcel.d.ts"}},"browser":{"buffer":false,"crypto":false,"stream":false,"process":false,"fs":false},"sideEffects":false,"dependencies":{},"devDependencies":{"@sheetjs/uglify-js":"~2.7.3","@types/node":"^8.5.9","acorn":"7.4.1","adler-32":"~1.3.1","alex":"8.1.1","blanket":"~1.2.3","cfb":"~1.2.2","codepage":"~1.15.0","commander":"~2.17.1","crc-32":"~1.2.2","dtslint":"^0.1.2","eslint":"7.23.0","eslint-plugin-html":"^6.1.2","eslint-plugin-json":"^2.1.2","exit-on-epipe":"~1.0.1","fflate":"^0.7.1","jsdom":"~11.1.0","markdown-spellcheck":"^1.3.1","mocha":"~2.5.3","sinon":"^1.17.7","ssf":"~0.11.2","typescript":"2.2.0","wmf":"~1.0.1","word":"~0.3.0"},"repository":{"type":"git","url":"https://git.sheetjs.com/SheetJS/sheetjs"},"scripts":{"pretest":"npm run lint","test":"npm run tests-only","pretest-only":"git submodule init && git submodule update","tests-only":"make travis","build":"make","lint":"make fullint","dtslint":"dtslint types"},"config":{"blanket":{"pattern":"xlsx.js"}},"alex":{"allow":["chinese","special","simple","just","crash","wtf","holes"]},"homepage":"https://sheetjs.com/","files":["CHANGELOG.md","LICENSE","README.md","bower.json","package.json","xlsx.js","xlsx.mjs","xlsxworker.js","bin/xlsx.njs","dist/LICENSE","dist/*.mjs","dist/*.js","dist/*.map","dist/*.d.ts","types/index.d.ts","types/tsconfig.json"],"bugs":{"url":"https://git.sheetjs.com/SheetJS/sheetjs/issues"},"license":"Apache-2.0","engines":{"node":">=0.8"},"_lastModified":"2024-12-11T07:08:12.187Z"}
@@ -40,10 +40,10 @@ __export(import_xlsx_exports, {
40
40
  });
41
41
  module.exports = __toCommonJS(import_xlsx_exports);
42
42
  var import_xlsx = __toESM(require("xlsx"));
43
- var import_xlsx_importer = require("../services/xlsx-importer");
44
43
  var import_async_mutex = require("async-mutex");
45
- const mutex = new import_async_mutex.Mutex();
44
+ var import_xlsx_importer = require("../services/xlsx-importer");
46
45
  const IMPORT_LIMIT_COUNT = 2e3;
46
+ const mutex = new import_async_mutex.Mutex();
47
47
  async function importXlsxAction(ctx, next) {
48
48
  let columns = ctx.request.body.columns;
49
49
  if (typeof columns === "string") {
@@ -66,7 +66,8 @@ async function importXlsxAction(ctx, next) {
66
66
  collection,
67
67
  columns,
68
68
  workbook,
69
- explain: ctx.request.body.explain
69
+ explain: ctx.request.body.explain,
70
+ repository
70
71
  });
71
72
  const importedCount = await importer.run({
72
73
  context: ctx
@@ -22,6 +22,7 @@ type ImporterOptions = {
22
22
  workbook: WorkBook;
23
23
  chunkSize?: number;
24
24
  explain?: string;
25
+ repository?: any;
25
26
  };
26
27
  type RunOptions = {
27
28
  transaction?: Transaction;
@@ -29,6 +30,7 @@ type RunOptions = {
29
30
  };
30
31
  export declare class XlsxImporter extends EventEmitter {
31
32
  private options;
33
+ private repository;
32
34
  constructor(options: ImporterOptions);
33
35
  run(options?: RunOptions): Promise<number>;
34
36
  resetSeq(options?: RunOptions): Promise<void>;
@@ -49,7 +49,9 @@ class XlsxImporter extends import_events.default {
49
49
  if (options.columns.length == 0) {
50
50
  throw new Error(`columns is empty`);
51
51
  }
52
+ this.repository = options.repository ? options.repository : options.collection.repository;
52
53
  }
54
+ repository;
53
55
  async run(options = {}) {
54
56
  let transaction = options.transaction;
55
57
  if (!transaction && this.options.collectionManager.db) {
@@ -148,7 +150,7 @@ class XlsxImporter extends import_events.default {
148
150
  }
149
151
  rowValues[dataKey] = await interfaceInstance.toValue(this.trimString(str), ctx);
150
152
  }
151
- await this.options.collection.repository.create({
153
+ await this.repository.create({
152
154
  values: rowValues,
153
155
  context: options == null ? void 0 : options.context,
154
156
  transaction
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "displayName.zh-CN": "操作:导入记录",
5
5
  "description": "Import records using excel templates. You can configure which fields to import and templates will be generated automatically.",
6
6
  "description.zh-CN": "使用 Excel 模板导入数据,可以配置导入哪些字段,自动生成模板。",
7
- "version": "1.5.0-beta.2",
7
+ "version": "1.5.0-beta.4",
8
8
  "license": "AGPL-3.0",
9
9
  "main": "./dist/server/index.js",
10
10
  "homepage": "https://docs.nocobase.com/handbook/action-import",
@@ -18,6 +18,7 @@
18
18
  "@koa/multer": "^3.0.2",
19
19
  "@types/node-xlsx": "^0.15.1",
20
20
  "antd": "5.x",
21
+ "async-mutex": "^0.5.0",
21
22
  "file-saver": "^2.0.5",
22
23
  "mathjs": "^10.6.0",
23
24
  "node-xlsx": "^0.16.1",
@@ -34,7 +35,7 @@
34
35
  "@nocobase/test": "1.x",
35
36
  "@nocobase/utils": "1.x"
36
37
  },
37
- "gitHead": "8a9c29fdac5c6295dcc7abf00c3fa81bd9e01a36",
38
+ "gitHead": "f5ca1548fe8d8eda32699137434306c44a5df84c",
38
39
  "keywords": [
39
40
  "Actions"
40
41
  ]