@nocobase/plugin-action-export 1.7.0-beta.3 → 1.7.0-beta.31
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/client/index.js +1 -1
- package/dist/client/useShared.d.ts +4 -11
- package/dist/externalVersion.js +7 -7
- package/dist/locale/nl-NL.json +5 -4
- package/dist/node_modules/xlsx/package.json +1 -1
- package/dist/server/actions/export-xlsx.js +1 -12
- package/dist/server/services/base-exporter.d.ts +10 -2
- package/dist/server/services/base-exporter.js +20 -11
- package/dist/server/services/xlsx-exporter.d.ts +9 -0
- package/dist/server/services/xlsx-exporter.js +12 -0
- package/package.json +2 -2
package/dist/client/index.js
CHANGED
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react-i18next"),require("file-saver"),require("@formily/shared"),require("@nocobase/client"),require("lodash"),require("antd"),require("@formily/react"),require("react"),require("@formily/antd-v5")):"function"==typeof define&&define.amd?define("@nocobase/plugin-action-export",["react-i18next","file-saver","@formily/shared","@nocobase/client","lodash","antd","@formily/react","react","@formily/antd-v5"],t):"object"==typeof exports?exports["@nocobase/plugin-action-export"]=t(require("react-i18next"),require("file-saver"),require("@formily/shared"),require("@nocobase/client"),require("lodash"),require("antd"),require("@formily/react"),require("react"),require("@formily/antd-v5")):e["@nocobase/plugin-action-export"]=t(e["react-i18next"],e["file-saver"],e["@formily/shared"],e["@nocobase/client"],e.lodash,e.antd,e["@formily/react"],e.react,e["@formily/antd-v5"])}(self,function(e,t,n,r,o,i,a,l,u){return function(){"use strict";var c={632:function(e){e.exports=u},505:function(e){e.exports=a},875:function(e){e.exports=n},772:function(e){e.exports=r},721:function(e){e.exports=i},346:function(e){e.exports=t},467:function(e){e.exports=o},156:function(e){e.exports=l},238:function(t){t.exports=e}},s={};function p(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}};return c[e](n,n.exports,p),n.exports}p.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return p.d(t,{a:t}),t},p.d=function(e,t){for(var n in t)p.o(t,n)&&!p.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},p.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},p.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var f={};p.r(f),p.d(f,{ExportPluginProvider:function(){return T},default:function(){return K},ExportDesigner:function(){return k},ExportActionInitializer:function(){return g},PluginActionExportClient:function(){return Y},useExportAction:function(){return z}});var d=p("875"),m=p("772"),v=p("156"),y=p.n(v),b=p("505");function x(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 h=function(e){var t,n=(0,b.useFieldSchema)();null==n||null===(t=n["x-component-props"])||void 0===t||t.nonfilterable;var r=(0,m.useCollectionManager_deprecated)().getCollectionFields,o=r(e),i=function(e,t){if(!!e.interface){var n={name:e.name,title:(null==e?void 0:null===(o=e.uiSchema)||void 0===o?void 0:o.title)||e.name,schema:null==e?void 0:e.uiSchema};if(!e.target||t>=3)return n;if(e.target&&["hasOne","hasMany","belongsTo","belongsToMany","belongsToArray"].includes(e.type)){var o,i,l,u=a(r(e.target),t+1).filter(Boolean);n.children=n.children||[],(i=n.children).push.apply(i,function(e){if(Array.isArray(e))return x(e)}(l=u)||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 x(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 x(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 n}},a=function(e,t){var n=[];return e.forEach(function(e){var r=i(e,t);r&&n.push(r)}),n};return a(o,1)},g=function(){var e=(0,m.useSchemaInitializerItem)(),t=(0,m.useSchemaInitializer)().insert,n=h((0,m.useCollection_deprecated)().name),r={type:"void",title:'{{ t("Export") }}',"x-action":"export","x-action-settings":{exportSettings:[]},"x-toolbar":"ActionSchemaToolbar","x-settings":"actionSettings:export","x-decorator":"ACLActionProvider","x-component":"Action","x-use-component-props":"useExportAction","x-component-props":{icon:"clouddownloadoutlined"}};return y().createElement(m.SchemaInitializerItem,{title:e.title,onClick:function(){r["x-action-settings"].exportSettings=null==(o=n)?void 0:o.filter(function(e){return!e.children}).map(function(e){return{dataIndex:[e.name]}});var o,i,a=(0,d.merge)(r||{},e.schema||{});null==e||null===(i=e.schemaInitialize)||void 0===i||i.call(e,a),t(a)}})},S=p("632");function A(e,t){return!t&&(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function I(){var e=A(["\n width: 100%;\n & .ant-space-item:nth-child(2),\n & .ant-space-item:nth-child(3) {\n flex: 1;\n }\n "]);return I=function(){return e},e}function w(){var e=A(["\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 w=function(){return e},e}var O=function(){var e=h((0,m.useCollection_deprecated)().name);return{schema:{type:"void","x-component":"Grid",properties:{exportSettings:{type:"array","x-component":"ArrayItems","x-decorator":"FormItem",items:{type:"object",properties:{space:{type:"void","x-component":"Space","x-component-props":{className:(0,m.css)(I())},properties:{sort:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.SortHandle"},dataIndex:{type:"array","x-decorator":"FormItem","x-component":m.Cascader,required:!0,enum:e,"x-component-props":{fieldNames:{label:"title",value:"name",children:"children"},changeOnSelect:!1}},title:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{ t("Custom column title") }}'}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:'{{ t("Add exportable field") }}',"x-component":"ArrayItems.Addition","x-component-props":{className:(0,m.css)(w())}}}}}}}},E=p("238");function j(){return(0,E.useTranslation)(["action-export","client"],{nsMode:"fallback"})}function P(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 C(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var k=function(){var e,t,n,r,o,i,a,l=(0,b.useField)(),u=(0,b.useFieldSchema)(),c=j().t,s=(0,m.useDesignable)().dn;var p=(e=(0,v.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 P(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 P(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=p[0],d=p[1],x=O().schema;return(0,v.useEffect)(function(){d(x)},[l.address,null==u?void 0:null===(n=u["x-action-settings"])||void 0===n?void 0:n.exportSettings]),y().createElement(m.GeneralSchemaDesigner,{disableInitializer:!0},y().createElement(m.SchemaSettingsModalItem,{title:c("Edit button"),schema:{type:"object",title:c("Edit button"),properties:{title:{"x-decorator":"FormItem","x-component":"Input",title:c("Button title"),default:u.title,"x-component-props":{}},icon:{"x-decorator":"FormItem","x-component":"IconPicker",title:c("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:c("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,l.title=n,l.componentProps.icon=r,l.componentProps.danger="danger"===o,l.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,s.emit("patch",{schema:(C(t={},"x-uid",u["x-uid"]),C(t,"title",n),C(t,"x-component-props",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){C(e,t,n[t])})}return e}({},u["x-component-props"])),t)}),s.refresh()}}),y().createElement(m.SchemaSettingsActionModalItem,{title:c("Exportable fields"),schema:f,initialValues:{exportSettings:null==u?void 0:null===(a=u["x-action-settings"])||void 0===a?void 0:a.exportSettings},scope:{t:c},components:{ArrayItems:S.ArrayItems},onSubmit:function(e){var t,n=e.exportSettings;u["x-action-settings"].exportSettings=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}}),s.emit("patch",{schema:(C(t={},"x-uid",u["x-uid"]),C(t,"x-action-settings",u["x-action-settings"]),t)}),s.refresh()}}),y().createElement(m.SchemaSettingsDivider,null),y().createElement(m.SchemaSettingsRemove,{removeParentsIfNoChildren:!0,breakRemoveOn:function(e){return"Space"===e["x-component"]||e["x-component"].endsWith("ActionBar")},confirm:{title:c("Delete action")}}))},T=function(e){return y().createElement(m.SchemaComponentOptions,{components:{ExportActionInitializer:g,ExportDesigner:k},scope:{useExportAction:z}},e.children)},F=p("467"),M=p.n(F),q=p("346"),_=p("721");function B(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 D(e,t,n,r,o,i,a){try{var l=e[i](a),u=l.value}catch(e){n(e);return}l.done?t(u):Promise.resolve(u).then(r,o)}var z=function(){var e,t,n=(0,m.useBlockRequestContext)(),r=n.service,o=n.props,i=(0,m.useDataBlockResource)(),a=(0,m.useTableBlockContext)().params,l=(0,m.useCurrentAppInfo)(),u=null==o?void 0:o.params.filter,c=(0,b.useFieldSchema)(),s=(0,m.useCompile)(),p=(0,m.useCollectionManager_deprecated)().getCollectionJoinField,f=(0,m.useCollection_deprecated)(),d=f.name,y=f.title,x=j().t,h=_.App.useApp().modal,g=(null===(t=r.params)||void 0===t?void 0:null===(e=t[1])||void 0===e?void 0:e.filters)||{},S=(0,b.useField)(),A=(0,v.useMemo)(function(){var e;return(null==l?void 0:null===(e=l.data)||void 0===e?void 0:e.exportLimit)?l.data.exportLimit:2e3},[l]);return{onClick:function(){var e;return(e=function(){var e,t,n,o,l;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(f){switch(f.label){case 0:return S.data=S.data||{},[4,h.confirm({title:x("Export"),content:x("Export warning",{limit:A}),okText:x("Start export")})];case 1:var v;if(!f.sent())return[2];return S.data.loading=!0,(o=M().cloneDeep(null!==(n=null==c?void 0:c["x-action-settings"])&&void 0!==n?n:{}).exportSettings).forEach(function(e){var t,n,r=null!==(n=p("".concat(d,".").concat(e.dataIndex.join("."))))&&void 0!==n?n:{},o=r.uiSchema;r.interface,e.enum=null==o?void 0:null===(t=o.enum)||void 0===t?void 0:t.map(function(e){return{value:e.value,label:e.label}}),!e.enum&&(null==o?void 0:o.type)==="boolean"&&(e.enum=[{value:!0,label:x("Yes")},{value:!1,label:x("No")}]),e.defaultTitle=null==o?void 0:o.title}),[4,i.export({title:s(y),appends:null===(t=r.params[0])||void 0===t?void 0:null===(e=t.appends)||void 0===e?void 0:e.join(),filter:(0,m.mergeFilter)(((function(e){if(Array.isArray(e))return B(e)})(v=Object.values(g))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(v)||function(e,t){if(e){if("string"==typeof e)return B(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 B(e,t)}}(v)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).concat([u])),sort:null==a?void 0:a.sort,values:{columns:s(o)}},{responseType:"blob"})];case 2:return l=new Blob([f.sent().data],{type:"application/x-xls"}),S.data.loading=!1,(0,q.saveAs)(l,"".concat(s(y),".xlsx")),[2]}})},function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){D(i,r,o,a,l,"next",e)}function l(e){D(i,r,o,a,l,"throw",e)}a(void 0)})})()}}};function R(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}var G=new m.SchemaSettings({name:"actionSettings:export",items:[{name:"editButton",Component:m.ButtonEditor,useComponentProps:function(){return(0,m.useSchemaToolbar)().buttonEditorProps}},{name:"exportableFields",type:"actionModal",useComponentProps:function(){var e,t,n,r,o=(0,b.useField)(),i=(0,b.useFieldSchema)(),a=(0,E.useTranslation)().t,l=(0,m.useDesignable)().dn;var u=(e=(0,v.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 R(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 R(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.")}()),c=u[0],s=u[1],p=O().schema;return(0,v.useEffect)(function(){s(p)},[o.address,null==i?void 0:null===(n=i["x-action-settings"])||void 0===n?void 0:n.exportSettings]),{title:a("Exportable fields"),schema:c,initialValues:{exportSettings:null==i?void 0:null===(r=i["x-action-settings"])||void 0===r?void 0:r.exportSettings},components:{ArrayItems:S.ArrayItems},onSubmit:function(e){var t,n=e.exportSettings;i["x-action-settings"].exportSettings=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}}),l.emit("patch",{schema:(N(t={},"x-uid",i["x-uid"]),N(t,"x-action-settings",i["x-action-settings"]),t)}),l.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,E.useTranslation)().t)("Delete action")}}}}]});function L(e,t,n,r,o,i,a){try{var l=e[i](a),u=l.value}catch(e){n(e);return}l.done?t(u):Promise.resolve(u).then(r,o)}function U(e,t,n){return(U=J()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&H(o,n.prototype),o}).apply(null,arguments)}function $(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 V(e){return(V=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function H(e,t){return(H=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function W(e){var t="function"==typeof Map?new Map:void 0;return(W=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 U(e,arguments,V(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),H(r,e)})(e)}function J(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(J=function(){return!!e})()}var Y=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=V(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,J()?Reflect.construct(t,n||[],V(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&&H(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(T),e={title:"{{t('Export')}}",Component:"ExportActionInitializer",schema:{"x-align":"right","x-decorator":"ACLActionProvider","x-acl-action-props":{skipScopeCheck:!0}},useVisible:function(){return(0,m.useActionAvailable)("export")}},null==(n=t.app.schemaInitializerManager.get("table:configureActions"))||n.add("enableActions.export",e),t.app.schemaInitializerManager.addItem("gantt:configureActions","enableActions.export",e),t.app.schemaSettingsManager.add(G),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){L(i,r,o,a,l,"next",e)}function l(e){L(i,r,o,a,l,"throw",e)}a(void 0)})})()}}],$(t.prototype,n),o}(W(m.Plugin)),K=Y;return f}()});
|
|
10
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("file-saver"),require("@formily/shared"),require("@nocobase/client"),require("@formily/antd-v5"),require("react"),require("@formily/react"),require("lodash"),require("antd"),require("react-i18next")):"function"==typeof define&&define.amd?define("@nocobase/plugin-action-export",["file-saver","@formily/shared","@nocobase/client","@formily/antd-v5","react","@formily/react","lodash","antd","react-i18next"],t):"object"==typeof exports?exports["@nocobase/plugin-action-export"]=t(require("file-saver"),require("@formily/shared"),require("@nocobase/client"),require("@formily/antd-v5"),require("react"),require("@formily/react"),require("lodash"),require("antd"),require("react-i18next")):e["@nocobase/plugin-action-export"]=t(e["file-saver"],e["@formily/shared"],e["@nocobase/client"],e["@formily/antd-v5"],e.react,e["@formily/react"],e.lodash,e.antd,e["react-i18next"])}(self,function(e,t,n,r,o,i,a,l,u){return function(){"use strict";var c={632:function(e){e.exports=r},505:function(e){e.exports=i},875:function(e){e.exports=t},772:function(e){e.exports=n},721:function(e){e.exports=l},346:function(t){t.exports=e},467:function(e){e.exports=a},156:function(e){e.exports=o},238:function(e){e.exports=u}},s={};function p(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}};return c[e](n,n.exports,p),n.exports}p.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return p.d(t,{a:t}),t},p.d=function(e,t){for(var n in t)p.o(t,n)&&!p.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},p.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},p.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var f={};return!function(){p.r(f),p.d(f,{ExportActionInitializer:function(){return l},ExportDesigner:function(){return h},PluginActionExportClient:function(){return B},default:function(){return D},useExportAction:function(){return E},ExportPluginProvider:function(){return g}});var e=p(875),t=p(772),n=p(156),r=p.n(n),o=p(505);function i(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=function(e){var n,r=(0,o.useFieldSchema)();null==r||null==(n=r["x-component-props"])||n.nonfilterable;var a=(0,t.useCollectionManager_deprecated)().getCollectionFields,l=a(e),u=function(e,t){if(e.interface){var n={name:e.name,title:(null==e||null==(r=e.uiSchema)?void 0:r.title)||e.name,schema:null==e?void 0:e.uiSchema};if(!e.target||t>=3)return n;if(e.target&&["hasOne","hasMany","belongsTo","belongsToMany","belongsToArray"].includes(e.type)){var r,o,l=c(a(e.target),t+1).filter(Boolean);n.children=n.children||[],(o=n.children).push.apply(o,function(e){if(Array.isArray(e))return i(e)}(l)||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 i(e,void 0);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 i(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 n}},c=function(e,t){var n=[];return e.forEach(function(e){var r=u(e,t);r&&n.push(r)}),n};return c(l,1)},l=function(){var n=(0,t.useSchemaInitializerItem)(),o=(0,t.useSchemaInitializer)().insert,i=a((0,t.useCollection_deprecated)().name),l={type:"void",title:'{{ t("Export") }}',"x-action":"export","x-action-settings":{exportSettings:[]},"x-toolbar":"ActionSchemaToolbar","x-settings":"actionSettings:export","x-decorator":"ACLActionProvider","x-component":"Action","x-use-component-props":"useExportAction","x-component-props":{icon:"clouddownloadoutlined"}};return r().createElement(t.SchemaInitializerItem,{title:n.title,onClick:function(){l["x-action-settings"].exportSettings=null==i?void 0:i.filter(function(e){return!e.children}).map(function(e){return{dataIndex:[e.name]}});var t,r=(0,e.merge)(l||{},n.schema||{});null==n||null==(t=n.schemaInitialize)||t.call(n,r),o(r)}})},u=p(632);function c(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function s(){var e=c(["\n width: 100%;\n & .ant-space-item:nth-child(2),\n & .ant-space-item:nth-child(3) {\n flex: 1;\n }\n "]);return s=function(){return e},e}function d(){var e=c(["\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 d=function(){return e},e}var m=function(){var e=(0,t.useCollection_deprecated)().name,n=(0,t.useCompile)(),r=a(e);return{schema:{type:"void","x-component":"Grid",properties:{exportSettings:{type:"array","x-component":"ArrayItems","x-decorator":"FormItem",items:{type:"object",properties:{space:{type:"void","x-component":"Space","x-component-props":{className:(0,t.css)(s())},properties:{sort:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.SortHandle"},dataIndex:{type:"array","x-decorator":"FormItem","x-component":"Cascader",required:!0,"x-component-props":{fieldNames:{label:"title",value:"name",children:"children"},changeOnSelect:!1},"x-use-component-props":function(){return{options:n(r)}}},title:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{ t("Custom column title") }}'}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:'{{ t("Add exportable field") }}',"x-component":"ArrayItems.Addition","x-component-props":{className:(0,t.css)(d())}}}}}}}},y=p(238);function v(){return(0,y.useTranslation)(["action-export","client"],{nsMode:"fallback"})}function b(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 x(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var h=function(){var e,i,a,l,c,s,p=(0,o.useField)(),f=(0,o.useFieldSchema)(),d=v().t,y=(0,t.useDesignable)().dn,h=(e=(0,n.useState)(),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),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 b(e,2);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 b(e,t)}}(e,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),g=h[0],S=h[1],A=m().schema;return(0,n.useEffect)(function(){S(A)},[p.address,null==f||null==(i=f["x-action-settings"])?void 0:i.exportSettings]),r().createElement(t.GeneralSchemaDesigner,{disableInitializer:!0},r().createElement(t.SchemaSettingsModalItem,{title:d("Edit button"),schema:{type:"object",title:d("Edit button"),properties:{title:{"x-decorator":"FormItem","x-component":"Input",title:d("Button title"),default:f.title,"x-component-props":{}},icon:{"x-decorator":"FormItem","x-component":"IconPicker",title:d("Button icon"),default:null==f||null==(a=f["x-component-props"])?void 0:a.icon,"x-component-props":{}},type:{"x-decorator":"FormItem","x-component":"Radio.Group",title:d("Button background color"),default:(null==f||null==(l=f["x-component-props"])?void 0:l.danger)?"danger":(null==f||null==(c=f["x-component-props"])?void 0:c.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;f.title=n,p.title=n,p.componentProps.icon=r,p.componentProps.danger="danger"===o,p.componentProps.type=o,f["x-component-props"]=f["x-component-props"]||{},f["x-component-props"].icon=r,f["x-component-props"].danger="danger"===o,f["x-component-props"].type=o,y.emit("patch",{schema:(x(t={},"x-uid",f["x-uid"]),x(t,"title",n),x(t,"x-component-props",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){x(e,t,n[t])})}return e}({},f["x-component-props"])),t)}),y.refresh()}}),r().createElement(t.SchemaSettingsActionModalItem,{title:d("Exportable fields"),schema:g,initialValues:{exportSettings:null==f||null==(s=f["x-action-settings"])?void 0:s.exportSettings},scope:{t:d},components:{ArrayItems:u.ArrayItems},onSubmit:function(e){var t,n=e.exportSettings;f["x-action-settings"].exportSettings=null==n?void 0:n.filter(function(e){var t;return null==e||null==(t=e.dataIndex)?void 0:t.length}).map(function(e){return{dataIndex:e.dataIndex.map(function(e){var t;return null!=(t=e.name)?t:e}),title:e.title}}),y.emit("patch",{schema:(x(t={},"x-uid",f["x-uid"]),x(t,"x-action-settings",f["x-action-settings"]),t)}),y.refresh()}}),r().createElement(t.SchemaSettingsDivider,null),r().createElement(t.SchemaSettingsRemove,{removeParentsIfNoChildren:!0,breakRemoveOn:function(e){return"Space"===e["x-component"]||e["x-component"].endsWith("ActionBar")},confirm:{title:d("Delete action")}}))},g=function(e){return r().createElement(t.SchemaComponentOptions,{components:{ExportActionInitializer:l,ExportDesigner:h},scope:{useExportAction:E}},e.children)},S=p(467),A=p.n(S),I=p(346),O=p(721);function w(e,t,n,r,o,i,a){try{var l=e[i](a),u=l.value}catch(e){n(e);return}l.done?t(u):Promise.resolve(u).then(r,o)}var E=function(){var e,r=(0,t.useBlockRequestContext)(),i=r.service,a=r.props,l=(0,t.useDataBlockResource)(),u=(0,t.useTableBlockContext)().params,c=(0,t.useCurrentAppInfo)(),s=null==a?void 0:a.params.filter,p=(0,o.useFieldSchema)(),f=(0,t.useCompile)(),d=(0,t.useCollectionManager_deprecated)().getCollectionJoinField,m=(0,t.useCollection_deprecated)(),y=m.name,b=m.title,x=v().t,h=O.App.useApp().modal,g=(null==(e=i.params[0])?void 0:e.filter)||{},S=(0,o.useField)(),E=(0,n.useMemo)(function(){var e;return(null==c||null==(e=c.data)?void 0:e.exportLimit)?c.data.exportLimit:2e3},[c]);return{onClick:function(){var e;return(e=function(){var e,n,r,o,a;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){var u=[i,l];if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(c){switch(c.label){case 0:return S.data=S.data||{},[4,h.confirm({title:x("Export"),content:x("Export warning",{limit:E}),okText:x("Start export")})];case 1:if(!c.sent())return[2];return S.data.loading=!0,(o=A().cloneDeep(null!=(r=null==p?void 0:p["x-action-settings"])?r:{}).exportSettings).forEach(function(e){var t,n,r=null!=(n=d("".concat(y,".").concat(e.dataIndex.join("."))))?n:{},o=r.uiSchema;r.interface,e.enum=null==o||null==(t=o.enum)?void 0:t.map(function(e){return{value:e.value,label:e.label}}),e.enum||(null==o?void 0:o.type)!=="boolean"||(e.enum=[{value:!0,label:x("Yes")},{value:!1,label:x("No")}]),e.defaultTitle=null==o?void 0:o.title}),[4,l.export({title:f(b),appends:null==(n=i.params[0])||null==(e=n.appends)?void 0:e.join(),filter:(0,t.mergeFilter)([g,s]),sort:null==u?void 0:u.sort,values:{columns:f(o)}},{responseType:"blob"})];case 2:return a=new Blob([c.sent().data],{type:"application/x-xls"}),S.data.loading=!1,(0,I.saveAs)(a,"".concat(f(b),".xlsx")),[2]}})},function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){w(i,r,o,a,l,"next",e)}function l(e){w(i,r,o,a,l,"throw",e)}a(void 0)})})()}}};function j(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 P(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var C=new t.SchemaSettings({name:"actionSettings:export",items:[{name:"editButton",Component:t.ButtonEditor,useComponentProps:function(){return(0,t.useSchemaToolbar)().buttonEditorProps}},{name:"linkageRules",Component:t.SchemaSettingsLinkageRules,useComponentProps:function(){return 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){P(e,t,n[t])})}return e}({},(0,t.useSchemaToolbar)().linkageRulesProps)}},{name:"exportableFields",type:"actionModal",useComponentProps:function(){var e,r,i,a=(0,o.useField)(),l=(0,o.useFieldSchema)(),c=(0,y.useTranslation)().t,s=(0,t.useDesignable)().dn,p=(e=(0,n.useState)(),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),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 j(e,2);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 j(e,t)}}(e,2)||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=p[0],d=p[1],v=m().schema;return(0,n.useEffect)(function(){d(v)},[a.address,null==l||null==(r=l["x-action-settings"])?void 0:r.exportSettings]),{title:c("Exportable fields"),schema:f,initialValues:{exportSettings:null==l||null==(i=l["x-action-settings"])?void 0:i.exportSettings},components:{ArrayItems:u.ArrayItems},onSubmit:function(e){var t,n=e.exportSettings;l["x-action-settings"].exportSettings=null==n?void 0:n.filter(function(e){var t;return null==e||null==(t=e.dataIndex)?void 0:t.length}).map(function(e){return{dataIndex:e.dataIndex.map(function(e){var t;return null!=(t=e.name)?t:e}),title:e.title}}),s.emit("patch",{schema:(P(t={},"x-uid",l["x-uid"]),P(t,"x-action-settings",l["x-action-settings"]),t)}),s.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,y.useTranslation)().t)("Delete action")}}}}]});function k(e,t,n,r,o,i,a){try{var l=e[i](a),u=l.value}catch(e){n(e);return}l.done?t(u):Promise.resolve(u).then(r,o)}function T(e,t,n){return(T=_()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&q(o,n.prototype),o}).apply(null,arguments)}function F(e){return(F=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function q(e,t){return(q=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function M(e){var t="function"==typeof Map?new Map:void 0;return(M=function(e){if(null===e||-1===Function.toString.call(e).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,n)}function n(){return T(e,arguments,F(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),q(n,e)})(e)}function _(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(_=function(){return!!e})()}var B=function(e){var n;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function r(){var e,t;if(!(this instanceof r))throw TypeError("Cannot call a class as a function");return e=r,t=arguments,e=F(e),function(e,t){var n;if(t&&("object"==((n=t)&&"undefined"!=typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,_()?Reflect.construct(e,t||[],F(this).constructor):e.apply(this,t))}return r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),e&&q(r,e),n=[{key:"load",value:function(){var e,n=this;return(e=function(){var e,r;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){var u=[i,l];if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(o){return n.app.use(g),e={title:"{{t('Export')}}",Component:"ExportActionInitializer",schema:{"x-align":"right","x-decorator":"ACLActionProvider","x-acl-action-props":{skipScopeCheck:!0}},useVisible:function(){return(0,t.useActionAvailable)("export")}},null==(r=n.app.schemaInitializerManager.get("table:configureActions"))||r.add("enableActions.export",e),n.app.schemaInitializerManager.addItem("gantt:configureActions","enableActions.export",e),n.app.schemaSettingsManager.add(C),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){k(i,r,o,a,l,"next",e)}function l(e){k(i,r,o,a,l,"throw",e)}a(void 0)})})()}}],function(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)}}(r.prototype,n),r}(M(t.Plugin)),D=B}(),f}()});
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
/// <reference types="react" />
|
|
10
1
|
export declare const useShared: () => {
|
|
11
2
|
schema: {
|
|
12
3
|
type: string;
|
|
@@ -34,9 +25,8 @@ export declare const useShared: () => {
|
|
|
34
25
|
dataIndex: {
|
|
35
26
|
type: string;
|
|
36
27
|
'x-decorator': string;
|
|
37
|
-
'x-component':
|
|
28
|
+
'x-component': string;
|
|
38
29
|
required: boolean;
|
|
39
|
-
enum: any[];
|
|
40
30
|
'x-component-props': {
|
|
41
31
|
fieldNames: {
|
|
42
32
|
label: string;
|
|
@@ -45,6 +35,9 @@ export declare const useShared: () => {
|
|
|
45
35
|
};
|
|
46
36
|
changeOnSelect: boolean;
|
|
47
37
|
};
|
|
38
|
+
'x-use-component-props': () => {
|
|
39
|
+
options: any;
|
|
40
|
+
};
|
|
48
41
|
};
|
|
49
42
|
title: {
|
|
50
43
|
type: string;
|
package/dist/externalVersion.js
CHANGED
|
@@ -10,16 +10,16 @@
|
|
|
10
10
|
module.exports = {
|
|
11
11
|
"@formily/react": "2.3.0",
|
|
12
12
|
"@formily/shared": "2.3.2",
|
|
13
|
-
"@nocobase/client": "1.7.0-beta.
|
|
13
|
+
"@nocobase/client": "1.7.0-beta.31",
|
|
14
14
|
"react": "18.2.0",
|
|
15
|
-
"@formily/antd-v5": "1.
|
|
15
|
+
"@formily/antd-v5": "1.2.3",
|
|
16
16
|
"react-i18next": "11.18.6",
|
|
17
17
|
"lodash": "4.17.21",
|
|
18
18
|
"file-saver": "2.0.5",
|
|
19
|
-
"antd": "5.
|
|
20
|
-
"@nocobase/server": "1.7.0-beta.
|
|
21
|
-
"@nocobase/actions": "1.7.0-beta.
|
|
22
|
-
"@nocobase/database": "1.7.0-beta.
|
|
19
|
+
"antd": "5.24.2",
|
|
20
|
+
"@nocobase/server": "1.7.0-beta.31",
|
|
21
|
+
"@nocobase/actions": "1.7.0-beta.31",
|
|
22
|
+
"@nocobase/database": "1.7.0-beta.31",
|
|
23
23
|
"async-mutex": "0.5.0",
|
|
24
|
-
"@nocobase/data-source-manager": "1.7.0-beta.
|
|
24
|
+
"@nocobase/data-source-manager": "1.7.0-beta.31"
|
|
25
25
|
};
|
package/dist/locale/nl-NL.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"Export warning": "
|
|
3
|
-
"Start export": "Start
|
|
4
|
-
"
|
|
5
|
-
"
|
|
2
|
+
"Export warning": "Je kunt maximaal {{limit}} rijen gegevens tegelijk exporteren, eventuele overschrijdingen worden genegeerd.",
|
|
3
|
+
"Start export": "Start exporteren",
|
|
4
|
+
"another export action is running, please try again later.": "Er is al een andere exportactie bezig, probeer het later opnieuw.",
|
|
5
|
+
"True": "Waar",
|
|
6
|
+
"False": "Onwaar"
|
|
6
7
|
}
|
|
@@ -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":"2025-
|
|
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":"2025-05-15T09:23:55.788Z"}
|
|
@@ -7,11 +7,9 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
var __create = Object.create;
|
|
11
10
|
var __defProp = Object.defineProperty;
|
|
12
11
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
13
12
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
14
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
15
13
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
16
14
|
var __export = (target, all) => {
|
|
17
15
|
for (var name in all)
|
|
@@ -25,14 +23,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
25
23
|
}
|
|
26
24
|
return to;
|
|
27
25
|
};
|
|
28
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
29
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
30
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
31
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
32
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
33
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
34
|
-
mod
|
|
35
|
-
));
|
|
36
26
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
37
27
|
var export_xlsx_exports = {};
|
|
38
28
|
__export(export_xlsx_exports, {
|
|
@@ -40,7 +30,6 @@ __export(export_xlsx_exports, {
|
|
|
40
30
|
});
|
|
41
31
|
module.exports = __toCommonJS(export_xlsx_exports);
|
|
42
32
|
var import_xlsx_exporter = require("../services/xlsx-exporter");
|
|
43
|
-
var import_xlsx = __toESM(require("xlsx"));
|
|
44
33
|
var import_async_mutex = require("async-mutex");
|
|
45
34
|
const mutex = new import_async_mutex.Mutex();
|
|
46
35
|
async function exportXlsxAction(ctx, next) {
|
|
@@ -66,7 +55,7 @@ async function exportXlsxAction(ctx, next) {
|
|
|
66
55
|
}
|
|
67
56
|
});
|
|
68
57
|
const wb = await xlsxExporter.run(ctx);
|
|
69
|
-
ctx.body =
|
|
58
|
+
ctx.body = import_xlsx_exporter.XlsxExporter.xlsxSafeWrite(wb, { type: "buffer", bookType: "xlsx" });
|
|
70
59
|
ctx.set({
|
|
71
60
|
"Content-Type": "application/octet-stream",
|
|
72
61
|
"Content-Disposition": `attachment; filename=${encodeURI(title)}.xlsx`
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
1
9
|
/// <reference types="node" />
|
|
2
10
|
import { FindOptions, ICollection, ICollectionManager, IField, IModel } from '@nocobase/data-source-manager';
|
|
3
11
|
import EventEmitter from 'events';
|
|
@@ -29,8 +37,8 @@ declare abstract class BaseExporter<T extends ExportOptions = ExportOptions> ext
|
|
|
29
37
|
abstract finalize(): Promise<any>;
|
|
30
38
|
abstract handleRow(row: any, ctx?: any): Promise<void>;
|
|
31
39
|
run(ctx?: any): Promise<any>;
|
|
32
|
-
protected getAppendOptionsFromFields(): string[];
|
|
33
|
-
protected getFindOptions(): any;
|
|
40
|
+
protected getAppendOptionsFromFields(ctx?: any): string[];
|
|
41
|
+
protected getFindOptions(ctx?: any): any;
|
|
34
42
|
protected findFieldByDataIndex(dataIndex: Array<string>): IField;
|
|
35
43
|
protected renderRawValue(value: any): any;
|
|
36
44
|
protected getFieldRenderer(field?: IField, ctx?: any): (value: any) => any;
|
|
@@ -40,9 +40,10 @@ __export(base_exporter_exports, {
|
|
|
40
40
|
});
|
|
41
41
|
module.exports = __toCommonJS(base_exporter_exports);
|
|
42
42
|
var import_events = __toESM(require("events"));
|
|
43
|
-
var
|
|
44
|
-
var import_path = __toESM(require("path"));
|
|
43
|
+
var import_lodash = __toESM(require("lodash"));
|
|
45
44
|
var import_os = __toESM(require("os"));
|
|
45
|
+
var import_path = __toESM(require("path"));
|
|
46
|
+
var import_deep_get = require("../utils/deep-get");
|
|
46
47
|
class BaseExporter extends import_events.default {
|
|
47
48
|
constructor(options) {
|
|
48
49
|
super();
|
|
@@ -64,10 +65,10 @@ class BaseExporter extends import_events.default {
|
|
|
64
65
|
async run(ctx) {
|
|
65
66
|
await this.init(ctx);
|
|
66
67
|
const { collection, chunkSize, repository } = this.options;
|
|
67
|
-
const total = await (repository || collection.repository).count(this.getFindOptions());
|
|
68
|
+
const total = await (repository || collection.repository).count(this.getFindOptions(ctx));
|
|
68
69
|
let current = 0;
|
|
69
70
|
await (repository || collection.repository).chunk({
|
|
70
|
-
...this.getFindOptions(),
|
|
71
|
+
...this.getFindOptions(ctx),
|
|
71
72
|
chunkSize: chunkSize || 200,
|
|
72
73
|
callback: async (rows, options) => {
|
|
73
74
|
for (const row of rows) {
|
|
@@ -82,24 +83,32 @@ class BaseExporter extends import_events.default {
|
|
|
82
83
|
});
|
|
83
84
|
return this.finalize();
|
|
84
85
|
}
|
|
85
|
-
getAppendOptionsFromFields() {
|
|
86
|
-
|
|
87
|
-
|
|
86
|
+
getAppendOptionsFromFields(ctx) {
|
|
87
|
+
var _a, _b, _c, _d, _e;
|
|
88
|
+
const fields = this.options.fields.map((x) => x[0]);
|
|
89
|
+
const hasPermissionFields = import_lodash.default.isEmpty((_b = (_a = ctx == null ? void 0 : ctx.permission) == null ? void 0 : _a.can) == null ? void 0 : _b.params) ? fields : import_lodash.default.intersection(((_e = (_d = (_c = ctx == null ? void 0 : ctx.permission) == null ? void 0 : _c.can) == null ? void 0 : _d.params) == null ? void 0 : _e.appends) || [], fields);
|
|
90
|
+
return hasPermissionFields.map((field) => {
|
|
91
|
+
const fieldInstance = this.options.collection.getField(field);
|
|
88
92
|
if (!fieldInstance) {
|
|
89
|
-
throw new Error(`Field "${field
|
|
93
|
+
throw new Error(`Field "${field}" not found: , please check the fields configuration.`);
|
|
94
|
+
}
|
|
95
|
+
const keys = field.split(".");
|
|
96
|
+
keys.pop();
|
|
97
|
+
if (import_lodash.default.get(fieldInstance, "collection.options.template") === "file") {
|
|
98
|
+
return keys.join(".");
|
|
90
99
|
}
|
|
91
100
|
if (fieldInstance.isRelationField()) {
|
|
92
|
-
return field
|
|
101
|
+
return field;
|
|
93
102
|
}
|
|
94
103
|
return null;
|
|
95
104
|
}).filter(Boolean);
|
|
96
105
|
}
|
|
97
|
-
getFindOptions() {
|
|
106
|
+
getFindOptions(ctx) {
|
|
98
107
|
const { findOptions = {} } = this.options;
|
|
99
108
|
if (this.limit) {
|
|
100
109
|
findOptions.limit = this.limit;
|
|
101
110
|
}
|
|
102
|
-
const appendOptions = this.getAppendOptionsFromFields();
|
|
111
|
+
const appendOptions = this.getAppendOptionsFromFields(ctx);
|
|
103
112
|
if (appendOptions.length) {
|
|
104
113
|
return {
|
|
105
114
|
...findOptions,
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
1
9
|
import XLSX from 'xlsx';
|
|
2
10
|
import { BaseExporter, ExportOptions } from './base-exporter';
|
|
3
11
|
type ExportColumn = {
|
|
@@ -30,5 +38,6 @@ export declare class XlsxExporter extends BaseExporter<XlsxExportOptions & {
|
|
|
30
38
|
handleRow(row: any, ctx?: any): Promise<void>;
|
|
31
39
|
finalize(): Promise<XLSX.WorkBook>;
|
|
32
40
|
private renderHeaders;
|
|
41
|
+
static xlsxSafeWrite(wb: XLSX.WorkBook, opts: XLSX.WritingOptions, path?: string): any;
|
|
33
42
|
}
|
|
34
43
|
export {};
|
|
@@ -42,6 +42,7 @@ module.exports = __toCommonJS(xlsx_exporter_exports);
|
|
|
42
42
|
var import_xlsx = __toESM(require("xlsx"));
|
|
43
43
|
var import_base_exporter = require("./base-exporter");
|
|
44
44
|
var import_database = require("@nocobase/database");
|
|
45
|
+
const XLSX_LIMIT_CHAER = 32767;
|
|
45
46
|
class XlsxExporter extends import_base_exporter.BaseExporter {
|
|
46
47
|
/**
|
|
47
48
|
* You can adjust the maximum number of exported rows based on business needs and system
|
|
@@ -103,6 +104,17 @@ class XlsxExporter extends import_base_exporter.BaseExporter {
|
|
|
103
104
|
return col.title || (fieldInstance == null ? void 0 : fieldInstance.options.title) || col.defaultTitle;
|
|
104
105
|
});
|
|
105
106
|
}
|
|
107
|
+
static xlsxSafeWrite(wb, opts, path) {
|
|
108
|
+
var _a;
|
|
109
|
+
const data = wb.Sheets.Data;
|
|
110
|
+
for (const key of Object.keys(data)) {
|
|
111
|
+
const v = (_a = data[key]) == null ? void 0 : _a.v;
|
|
112
|
+
if ((v == null ? void 0 : v.length) > XLSX_LIMIT_CHAER) {
|
|
113
|
+
data[key].v = v.slice(0, XLSX_LIMIT_CHAER);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return path ? import_xlsx.default.writeFileXLSX(wb, path) : import_xlsx.default.write(wb, opts);
|
|
117
|
+
}
|
|
106
118
|
}
|
|
107
119
|
function isNumeric(n) {
|
|
108
120
|
return !isNaN(parseFloat(n)) && isFinite(n);
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"displayName.zh-CN": "操作:导出记录",
|
|
5
5
|
"description": "Export filtered records to excel, you can configure which fields to export.",
|
|
6
6
|
"description.zh-CN": "导出筛选后的记录到 Excel 中,可以配置导出哪些字段。",
|
|
7
|
-
"version": "1.7.0-beta.
|
|
7
|
+
"version": "1.7.0-beta.31",
|
|
8
8
|
"license": "AGPL-3.0",
|
|
9
9
|
"main": "./dist/server/index.js",
|
|
10
10
|
"homepage": "https://docs.nocobase.com/handbook/action-export",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"@nocobase/test": "1.x",
|
|
30
30
|
"@nocobase/utils": "1.x"
|
|
31
31
|
},
|
|
32
|
-
"gitHead": "
|
|
32
|
+
"gitHead": "84bf8bcfeeaf3a05086e24cef00507ca209ac3c5",
|
|
33
33
|
"keywords": [
|
|
34
34
|
"Actions"
|
|
35
35
|
]
|