@nocobase/plugin-async-task-manager 2.1.0-beta.9 → 2.2.0-alpha.1
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/client-v2.d.ts +2 -0
- package/client-v2.js +1 -0
- package/dist/client/index.js +1 -1
- package/dist/client-v2/338.272bcdd5bb509394.js +10 -0
- package/dist/client-v2/index.d.ts +10 -0
- package/dist/client-v2/index.js +10 -0
- package/dist/client-v2/locale.d.ts +11 -0
- package/dist/client-v2/models/AsyncTasksTopbarActionModel.d.ts +18 -0
- package/dist/client-v2/plugin.d.ts +40 -0
- package/dist/common/collections/asyncTasks.d.ts +1 -0
- package/dist/common/collections/asyncTasks.js +1 -0
- package/dist/externalVersion.js +11 -7
- package/dist/server/command-task-type.js +7 -2
- package/package.json +3 -2
package/client-v2.d.ts
ADDED
package/client-v2.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('./dist/client-v2/index.js');
|
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"),require("dayjs"),require("@nocobase/client"),require("@nocobase/utils/client"),require("antd"),require("react-i18next")):"function"==typeof define&&define.amd?define("@nocobase/plugin-async-task-manager",["react","dayjs","@nocobase/client","@nocobase/utils/client","antd","react-i18next"],t):"object"==typeof exports?exports["@nocobase/plugin-async-task-manager"]=t(require("react"),require("dayjs"),require("@nocobase/client"),require("@nocobase/utils/client"),require("antd"),require("react-i18next")):e["@nocobase/plugin-async-task-manager"]=t(e.react,e.dayjs,e["@nocobase/client"],e["@nocobase/utils/client"],e.antd,e["react-i18next"])}(self,function(e,t,n,r,o,a){var i={379:function(e,t,n){e.exports=function(e){"use strict";var t={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(e,t){return"W"===t?e+"周":e+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},meridiem:function(e,t){var n=100*e+t;return n<600?"凌晨":n<900?"早上":n<1100?"上午":n<1300?"中午":n<1800?"下午":"晚上"}};return(e&&"object"==typeof e&&"default"in e?e:{default:e}).default.locale(t,null,!0),t}(n(760))},809:function(e){e.exports=function(e,t,n){e=e||{};var r=t.prototype,o={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function a(e,t,n,o){return r.fromToBase(e,t,n,o)}n.en.relativeTime=o,r.fromToBase=function(t,r,a,i,s){for(var l,c,u,f=a.$locale().relativeTime||o,p=e.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],d=p.length,y=0;y<d;y+=1){var m=p[y];m.d&&(l=i?n(t).diff(a,m.d,!0):a.diff(t,m.d,!0));var b=(e.rounding||Math.round)(Math.abs(l));if(u=l>0,b<=m.r||!m.r){b<=1&&y>0&&(m=p[y-1]);var v=f[m.l];s&&(b=s(""+b)),c="string"==typeof v?v.replace("%d",b):v(b,r,m.l,u);break}}if(r)return c;var h=u?f.future:f.past;return"function"==typeof h?h(c):h.replace("%s",c)},r.to=function(e,t){return a(e,t,this,!0)},r.from=function(e,t){return a(e,t,this)};var i=function(e){return e.$u?n.utc():n()};r.toNow=function(e){return this.to(i(this),e)},r.fromNow=function(e){return this.from(i(this),e)}}},772:function(e){"use strict";e.exports=n},584:function(e){"use strict";e.exports=r},721:function(e){"use strict";e.exports=o},760:function(e){"use strict";e.exports=t},156:function(t){"use strict";t.exports=e},238:function(e){"use strict";e.exports=a}},s={};function l(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}};return i[e].call(n.exports,n,n.exports,l),n.exports}l.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(t,{a:t}),t},l.d=function(e,t){for(var n in t)l.o(t,n)&&!l.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var c={};return!function(){"use strict";l.r(c),l.d(c,{PluginAsyncTaskManagerClient:function(){return Y},default:function(){return M}});var e,t=l(584),n=l(772),r=l(156),o=l.n(r),a=l(721),i=l(238),s=l(760),u=l.n(s);l(379);var f=l(809),p=l.n(f),d=JSON.parse('{"u2":"@nocobase/plugin-async-task-manager"}');function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m="@nocobase/plugin-async-task-manager",b={PENDING:null,RUNNING:0,SUCCEEDED:1,FAILED:-1,CANCELED:-2},v=(y(e={},b.PENDING,{value:b.PENDING,label:"{{t('Waiting', { ns: '".concat(m,"' })}}"),color:"default",icon:"ClockCircleOutlined"}),y(e,b.RUNNING,{value:b.RUNNING,label:"{{t('Processing', { ns: '".concat(m,"' })}}"),color:"processing",icon:"LoadingOutlined"}),y(e,b.SUCCEEDED,{value:b.SUCCEEDED,label:"{{t('Completed', { ns: '".concat(m,"' })}}"),color:"success",icon:"CheckCircleOutlined"}),y(e,b.FAILED,{value:b.FAILED,label:"{{t('Failed', { ns: '".concat(m,"' })}}"),color:"error",icon:"CloseCircleOutlined"}),y(e,b.CANCELED,{value:b.CANCELED,label:"{{t('Cancelled', { ns: '".concat(m,"' })}}"),color:"warning",icon:"StopOutlined"}),e);function h(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 g(e,t,n,r,o,a,i){try{var s=e[a](i),l=s.value}catch(e){n(e);return}s.done?t(l):Promise.resolve(l).then(r,o)}function E(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){g(a,r,o,i,s,"next",e)}function s(e){g(a,r,o,i,s,"throw",e)}i(void 0)})}}function k(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 a=[],i=!0,s=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){s=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(s)throw r}}return a}}(e,t)||w(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.")}()}function w(e,t){if(e){if("string"==typeof e)return h(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 h(e,t)}}function O(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){var l=[a,s];if(n)throw TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){i=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(6===l[0]&&i.label<o[1]){i.label=o[1],o=l;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(l);break}o[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}var _=(0,n.createStyles)(function(e){return{button:{color:e.token.colorTextHeaderMenu+" !important"}}});u().extend(p());var S=function(e){var t,r=e.popoverVisible,s=e.setPopoverVisible,l=e.tasks,c=e.refresh,f=e.loading;e.hasProcessingTasks;var p=(0,n.useAPIClient)(),y=(t=(0,n.useApp)(),function(e,n){return t.i18n.t(e,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;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({ns:[d.u2,"client"]},n))}),m=(0,i.useTranslation)().t,h=_().styles,g=(0,n.usePlugin)("async-task-manager"),k=(0,n.useCompile)(),w=function(e){s(!1)},S=[{title:y("Created at"),dataIndex:"createdAt",key:"createdAt",width:180,render:function(e){return o().createElement(a.Tooltip,{title:u()(e).format("YYYY-MM-DD HH:mm:ss")},u()(e).fromNow())}},{title:y("Task"),dataIndex:"title",key:"title"},{title:y("Status"),dataIndex:"status",key:"status",width:160,render:function(e,t){var r=v[e]||{},i=r.color,s=r.label;return o().createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},o().createElement("div",{style:{flex:1}},function(){var n,r,i={width:100,margin:0};switch(e){case b.PENDING:case b.CANCELED:return o().createElement(a.Alert,{showIcon:!1,message:k(s),banner:!0});case b.RUNNING:return o().createElement(a.Progress,{type:"line",size:"small",strokeWidth:4,percent:Number(((null!=(n=t.progressCurrent)?n:0)/(null!=(r=t.progressTotal)?r:1)*100).toFixed(2)),status:"active",style:i,format:function(e){return"".concat(e.toFixed(1),"%")}});case b.SUCCEEDED:return o().createElement(a.Progress,{type:"line",size:"small",strokeWidth:4,percent:100,status:"success",style:i,format:function(){return""}});case b.FAILED:return o().createElement(a.Progress,{type:"line",size:"small",strokeWidth:4,percent:100,status:"exception",style:i,format:function(){return""}});default:return null}}()),o().createElement(a.Tag,{color:i,icon:(null==r?void 0:r.icon)?o().createElement(n.Icon,{type:r.icon}):null,style:{margin:0,padding:"0 4px",height:22,width:22}}))}},{title:y("Actions"),dataIndex:"result",key:"actions",width:180,render:function(e,t){var r,i=[],l=null!=(r=g.taskOrigins.get(t.origin))?r:{},u=l.Result,f=l.ResultButton,d=u||function(){return null};return t.cancelable&&(t.status===b.RUNNING||t.status===b.PENDING)&&i.push(o().createElement(a.Popconfirm,{key:"cancel",title:y("Confirm cancel"),description:y("Confirm to cancel this task?"),onConfirm:E(function(){return O(this,function(e){switch(e.label){case 0:return[4,p.resource("asyncTasks").stop({filterByTk:t.id})];case 1:return e.sent(),c(),[2]}})}),okText:y("Confirm"),cancelText:y("Cancel"),disabled:!1},o().createElement(a.Button,{type:"link",size:"small",icon:o().createElement(n.Icon,{type:"StopOutlined"}),disabled:!1},y("Stop")))),t.status===b.SUCCEEDED&&e&&(f?i.push(o().createElement(f,{key:"result-button",task:t})):i.push(o().createElement(a.Button,{key:"view",type:"link",size:"small",icon:o().createElement(n.Icon,{type:"EyeOutlined"}),onClick:function(){w(t),a.Modal.info({title:y("Task result"),content:u?o().createElement(d,{payload:e,task:t}):o().createElement("div",null,y("No renderer available for this task type, payload: ".concat(t.result)))})}},y("View result")))),t.status===b.FAILED&&e&&i.push(o().createElement(a.Button,{key:"error",type:"link",size:"small",icon:o().createElement(n.Icon,{type:"ExclamationCircleOutlined"}),onClick:function(){s(!1);var n,r,i=g.taskOrigins.get(t.origin).namespace;a.Modal.info({title:y("Error Details"),content:o().createElement(a.Typography.Text,null,m(e.message,(n=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;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},e.params),r=r={ns:void 0===i?"client":i},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n))),closable:!0,width:400})}},y("Error details"))),o().createElement(a.Space,{size:"middle"},i)}}];l.filter(function(e){return[b.SUCCEEDED,b.FAILED].includes(e.status)}).length;var x=o().createElement("div",{style:{maxHeight:"70vh",overflow:"auto",width:l.length>0?800:200}},l.length>0?o().createElement(a.Table,{loading:f,columns:S,dataSource:l,size:"small",pagination:!1,rowKey:"taskId"}):o().createElement("div",{style:{padding:"24px 0",display:"flex",justifyContent:"center"}},o().createElement(a.Empty,{description:y("No tasks"),image:a.Empty.PRESENTED_IMAGE_SIMPLE})));return o().createElement(o().Fragment,null,o().createElement(a.Popover,{content:x,trigger:"click",placement:"bottom",open:r,onOpenChange:s},o().createElement(a.Button,{className:["sync-task-button",h.button].join(" "),onClick:function(){s(!r),r||c()},icon:o().createElement(n.Icon,{type:"SyncOutlined",spin:l.some(function(e){return b.RUNNING===e.status})})})))},x=function(){var e=(0,n.useApp)(),t=(0,n.useRequest)({resource:"asyncTasks",action:"list",params:{sort:"-createdAt"}}),a=t.data,i=t.refresh;t.loading;var s=k((0,r.useState)((null==a?void 0:a.data)||[]),2),l=s[0],c=s[1],u=k((0,r.useState)(!1),2),f=u[0],p=u[1];(0,r.useEffect)(function(){c((null==a?void 0:a.data)||[])},[a]);var d=(0,r.useCallback)(E(function(){return O(this,function(e){return p(!0),i(),console.log("handleTaskCreated"),[2]})}),[]),y=(0,r.useCallback)(function(e){var t=e.detail;c(function(e){var n=e.findIndex(function(e){return e.id===t.id});return -1===n?e.unshift(t):e.splice(n,1,t),function(e){if(Array.isArray(e))return h(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||w(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()})},[]),m=(0,r.useCallback)(function(){i(),console.log("handleTaskStatus")},[]),b=(0,r.useCallback)(function(){i(),console.log("handleTaskDeleted")},[]);return(0,r.useEffect)(function(){return e.eventBus.addEventListener("ws:message:async-tasks:created",d),e.eventBus.addEventListener("ws:message:async-tasks:progress",y),e.eventBus.addEventListener("ws:message:async-tasks:status",m),e.eventBus.addEventListener("ws:message:async-tasks:deleted",b),function(){e.eventBus.removeEventListener("ws:message:async-tasks:created",d),e.eventBus.removeEventListener("ws:message:async-tasks:progress",y),e.eventBus.removeEventListener("ws:message:async-tasks:status",m),e.eventBus.removeEventListener("ws:message:async-tasks:deleted",b)}},[e,b,d,y,m]),(null==l?void 0:l.length)>0&&o().createElement(S,{tasks:l,refresh:i,popoverVisible:f,setPopoverVisible:p})},P=function(e){return o().createElement(n.PinnedPluginListProvider,{items:{asyncTasks:{order:300,component:"AsyncTasks",pin:!0,snippet:"*"}}},o().createElement(n.SchemaComponentOptions,{components:{AsyncTasks:x}},e.children))};function C(e,t,n,r,o,a,i){try{var s=e[a](i),l=s.value}catch(e){n(e);return}s.done?t(l):Promise.resolve(l).then(r,o)}function j(e,t,n){return(j=I()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&N(o,n.prototype),o}).apply(null,arguments)}function D(e){return(D=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function N(e,t){return(N=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function T(e){var t="function"==typeof Map?new Map:void 0;return(T=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 j(e,arguments,D(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),N(n,e)})(e)}function I(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(I=function(){return!!e})()}var Y=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,n,o,a,i,s;if(!(this instanceof r))throw TypeError("Cannot call a class as a function");return n=r,o=arguments,n=D(n),a=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,I()?Reflect.construct(n,o||[],D(this).constructor):n.apply(this,o)),i="taskOrigins",s=new t.Registry,i in a?Object.defineProperty(a,i,{value:s,enumerable:!0,configurable:!0,writable:!0}):a[i]=s,e}return r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),e&&N(r,e),n=[{key:"load",value:function(){var e,t=this;return(e=function(){return function(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){var l=[a,s];if(n)throw TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){i=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(6===l[0]&&i.label<o[1]){i.label=o[1],o=l;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(l);break}o[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(e){return t.app.use(P),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){C(a,r,o,i,s,"next",e)}function s(e){C(a,r,o,i,s,"throw",e)}i(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}(T(n.Plugin)),M=Y}(),c});
|
|
10
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react-i18next"),require("dayjs"),require("react"),require("antd"),require("@nocobase/client"),require("@nocobase/utils/client")):"function"==typeof define&&define.amd?define("@nocobase/plugin-async-task-manager",["react-i18next","dayjs","react","antd","@nocobase/client","@nocobase/utils/client"],t):"object"==typeof exports?exports["@nocobase/plugin-async-task-manager"]=t(require("react-i18next"),require("dayjs"),require("react"),require("antd"),require("@nocobase/client"),require("@nocobase/utils/client")):e["@nocobase/plugin-async-task-manager"]=t(e["react-i18next"],e.dayjs,e.react,e.antd,e["@nocobase/client"],e["@nocobase/utils/client"])}(self,function(e,t,n,r,o,a){return function(){var i={912:function(e,t,n){e.exports=function(e){"use strict";var t={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(e,t){return"W"===t?e+"周":e+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},meridiem:function(e,t){var n=100*e+t;return n<600?"凌晨":n<900?"早上":n<1100?"上午":n<1300?"中午":n<1800?"下午":"晚上"}};return(e&&"object"==typeof e&&"default"in e?e:{default:e}).default.locale(t,null,!0),t}(n(185))},264:function(e){e.exports=function(e,t,n){e=e||{};var r=t.prototype,o={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function a(e,t,n,o){return r.fromToBase(e,t,n,o)}n.en.relativeTime=o,r.fromToBase=function(t,r,a,i,c){for(var l,s,u,f=a.$locale().relativeTime||o,p=e.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],d=p.length,y=0;y<d;y+=1){var m=p[y];m.d&&(l=i?n(t).diff(a,m.d,!0):a.diff(t,m.d,!0));var b=(e.rounding||Math.round)(Math.abs(l));if(u=l>0,b<=m.r||!m.r){b<=1&&y>0&&(m=p[y-1]);var v=f[m.l];c&&(b=c(""+b)),s="string"==typeof v?v.replace("%d",b):v(b,r,m.l,u);break}}if(r)return s;var h=u?f.future:f.past;return"function"==typeof h?h(s):h.replace("%s",s)},r.to=function(e,t){return a(e,t,this,!0)},r.from=function(e,t){return a(e,t,this)};var i=function(e){return e.$u?n.utc():n()};r.toNow=function(e){return this.to(i(this),e)},r.fromNow=function(e){return this.from(i(this),e)}}},342:function(e){"use strict";e.exports=o},768:function(e){"use strict";e.exports=a},59:function(e){"use strict";e.exports=r},185:function(e){"use strict";e.exports=t},155:function(e){"use strict";e.exports=n},953:function(t){"use strict";t.exports=e}},c={};function l(e){var t=c[e];if(void 0!==t)return t.exports;var n=c[e]={exports:{}};return i[e].call(n.exports,n,n.exports,l),n.exports}l.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(t,{a:t}),t},l.d=function(e,t){for(var n in t)l.o(t,n)&&!l.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},l.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},l.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.g.importScripts&&(s=l.g.location+"");var s,u=l.g.document;if(!s&&u&&(u.currentScript&&"SCRIPT"===u.currentScript.tagName.toUpperCase()&&(s=u.currentScript.src),!s)){var f=u.getElementsByTagName("script");if(f.length)for(var p=f.length-1;p>-1&&(!s||!/^http(s?):/.test(s));)s=f[p--].src}if(!s)throw Error("Automatic publicPath is not supported in this browser");l.p=s.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/");var d={};return!function(){"use strict";var e="",t="u">typeof document?document.currentScript:null;if(t&&t.src&&(e=t.src.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/")),!e){var n=window.__webpack_public_path__||"";n&&("/"!==n.charAt(n.length-1)&&(n+="/"),e=n+"static/plugins/@nocobase/plugin-async-task-manager/dist/client/")}if(!e){var r=window.__nocobase_modern_client_prefix__||"v",o="/"+(r=String(r).replace(/^\/+|\/+$/g,"")||"v")+"/";if(!(e=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var a=window.location.pathname||"/",i=a.indexOf(o);e=i>=0?a.slice(0,i+1):"/"}e&&(e=e.replace(RegExp("/"+r+"/?$"),"/")),e||(e="/"),"/"!==e.charAt(e.length-1)&&(e+="/"),e+="static/plugins/@nocobase/plugin-async-task-manager/dist/client/"}l.p=e}(),!function(){"use strict";l.r(d),l.d(d,{PluginAsyncTaskManagerClient:function(){return A},default:function(){return I}});var e,t=l(768),n=l(342),r=l(155),o=l.n(r),a=l(59),i=l(953),c=l(185),s=l.n(c);l(912);var u=l(264),f=l.n(u),p=JSON.parse('{"UU":"@nocobase/plugin-async-task-manager"}');function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m="@nocobase/plugin-async-task-manager",b=(y(e={},null,{value:null,label:"{{t('Waiting', { ns: '".concat(m,"' })}}"),color:"default",icon:"ClockCircleOutlined"}),y(e,0,{value:0,label:"{{t('Processing', { ns: '".concat(m,"' })}}"),color:"processing",icon:"LoadingOutlined"}),y(e,1,{value:1,label:"{{t('Completed', { ns: '".concat(m,"' })}}"),color:"success",icon:"CheckCircleOutlined"}),y(e,-1,{value:-1,label:"{{t('Failed', { ns: '".concat(m,"' })}}"),color:"error",icon:"CloseCircleOutlined"}),y(e,-2,{value:-2,label:"{{t('Cancelled', { ns: '".concat(m,"' })}}"),color:"warning",icon:"StopOutlined"}),e);function v(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 h(e,t,n,r,o,a,i){try{var c=e[a](i),l=c.value}catch(e){n(e);return}c.done?t(l):Promise.resolve(l).then(r,o)}function g(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){h(a,r,o,i,c,"next",e)}function c(e){h(a,r,o,i,c,"throw",e)}i(void 0)})}}function w(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],i=!0,c=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){c=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(c)throw r}}return a}}(e,t)||k(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.")}()}function k(e,t){if(e){if("string"==typeof e)return v(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 v(e,t)}}function _(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(i,"next",{value:l(0)}),c(i,"throw",{value:l(1)}),c(i,"return",{value:l(2)}),"function"==typeof Symbol&&c(i,Symbol.iterator,{value:function(){return this}}),i;function l(c){return function(l){var s=[c,l];if(n)throw TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,r=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===s[0]||2===s[0])){a=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){a.label=s[1];break}if(6===s[0]&&a.label<o[1]){a.label=o[1],o=s;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(s);break}o[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],r=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}}}var O=(0,n.createStyles)(function(e){return{button:{color:e.token.colorTextHeaderMenu+" !important"}}});s().extend(f());var E=function(e){var t,r=e.popoverVisible,c=e.setPopoverVisible,l=e.tasks,u=e.refresh,f=e.loading;e.hasProcessingTasks;var d=(0,n.useAPIClient)(),y=(t=(0,n.useApp)(),function(e,n){return t.i18n.t(e,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;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({ns:[p.UU,"client"]},n))}),m=(0,i.useTranslation)().t,v=O().styles,h=(0,n.usePlugin)("async-task-manager"),w=(0,n.useCompile)(),k=function(e){c(!1)},E=[{title:y("Created at"),dataIndex:"createdAt",key:"createdAt",width:180,render:function(e){return o().createElement(a.Tooltip,{title:s()(e).format("YYYY-MM-DD HH:mm:ss")},s()(e).fromNow())}},{title:y("Task"),dataIndex:"title",key:"title"},{title:y("Status"),dataIndex:"status",key:"status",width:160,render:function(e,t){var r=b[e]||{},i=r.color,c=r.label;return o().createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},o().createElement("div",{style:{flex:1}},function(){var n,r,i={width:100,margin:0};switch(e){case null:case -2:return o().createElement(a.Alert,{showIcon:!1,message:w(c),banner:!0});case 0:return o().createElement(a.Progress,{type:"line",size:"small",strokeWidth:4,percent:Number(((null!=(n=t.progressCurrent)?n:0)/(null!=(r=t.progressTotal)?r:1)*100).toFixed(2)),status:"active",style:i,format:function(e){return"".concat(e.toFixed(1),"%")}});case 1:return o().createElement(a.Progress,{type:"line",size:"small",strokeWidth:4,percent:100,status:"success",style:i,format:function(){return""}});case -1:return o().createElement(a.Progress,{type:"line",size:"small",strokeWidth:4,percent:100,status:"exception",style:i,format:function(){return""}});default:return null}}()),o().createElement(a.Tag,{color:i,icon:(null==r?void 0:r.icon)?o().createElement(n.Icon,{type:r.icon}):null,style:{margin:0,padding:"0 4px",height:22,width:22}}))}},{title:y("Actions"),dataIndex:"result",key:"actions",width:180,render:function(e,t){var r,i=[],l=null!=(r=h.taskOrigins.get(t.origin))?r:{},s=l.Result,f=l.ResultButton,p=s||function(){return null};return t.cancelable&&(0===t.status||null===t.status)&&i.push(o().createElement(a.Popconfirm,{key:"cancel",title:y("Confirm cancel"),description:y("Confirm to cancel this task?"),onConfirm:function(){return g(function(){return _(this,function(e){switch(e.label){case 0:return[4,d.resource("asyncTasks").stop({filterByTk:t.id})];case 1:return e.sent(),u(),[2]}})})()},okText:y("Confirm"),cancelText:y("Cancel"),disabled:!1},o().createElement(a.Button,{type:"link",size:"small",icon:o().createElement(n.Icon,{type:"StopOutlined"}),disabled:!1},y("Stop")))),1===t.status&&e&&(f?i.push(o().createElement(f,{key:"result-button",task:t})):i.push(o().createElement(a.Button,{key:"view",type:"link",size:"small",icon:o().createElement(n.Icon,{type:"EyeOutlined"}),onClick:function(){k(t),a.Modal.info({title:y("Task result"),content:s?o().createElement(p,{payload:e,task:t}):o().createElement("div",null,y("No renderer available for this task type, payload: ".concat(t.result)))})}},y("View result")))),-1===t.status&&e&&i.push(o().createElement(a.Button,{key:"error",type:"link",size:"small",icon:o().createElement(n.Icon,{type:"ExclamationCircleOutlined"}),onClick:function(){c(!1);var n,r,i,l=(null!=(i=h.taskOrigins.get(t.origin))?i:{}).namespace;a.Modal.info({title:y("Error Details"),content:o().createElement(a.Typography.Text,null,m(e.message,(n=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;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},e.params),r=r={ns:void 0===l?"client":l},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n))),closable:!0,width:400})}},y("Error details"))),o().createElement(a.Space,{size:"middle"},i)}}];l.filter(function(e){return[1,-1].includes(e.status)}).length;var x=o().createElement("div",{style:{maxHeight:"70vh",overflow:"auto",width:l.length>0?800:200}},l.length>0?o().createElement(a.Table,{loading:f,columns:E,dataSource:l,size:"small",pagination:!1,rowKey:"taskId"}):o().createElement("div",{style:{padding:"24px 0",display:"flex",justifyContent:"center"}},o().createElement(a.Empty,{description:y("No tasks"),image:a.Empty.PRESENTED_IMAGE_SIMPLE})));return o().createElement(o().Fragment,null,o().createElement(a.Popover,{content:x,trigger:"click",placement:"bottom",open:r,onOpenChange:c},o().createElement(a.Button,{className:["sync-task-button",v.button].join(" "),onClick:function(){c(!r),r||u()},icon:o().createElement(n.Icon,{type:"SyncOutlined",spin:l.some(function(e){return 0===e.status})})})))},x=function(){var e=(0,n.useApp)(),t=(0,n.useRequest)({resource:"asyncTasks",action:"list",params:{sort:"-createdAt"}}),a=t.data,i=t.refresh;t.loading;var c=w((0,r.useState)((null==a?void 0:a.data)||[]),2),l=c[0],s=c[1],u=w((0,r.useState)(!1),2),f=u[0],p=u[1];(0,r.useEffect)(function(){s((null==a?void 0:a.data)||[])},[a]);var d=(0,r.useCallback)(function(){return g(function(){return _(this,function(e){return p(!0),i(),[2]})})()},[i]),y=(0,r.useCallback)(function(e){var t=e.detail;s(function(e){var n=e.findIndex(function(e){return e.id===t.id});return -1===n?e.unshift(t):e.splice(n,1,t),function(e){if(Array.isArray(e))return v(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||k(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()})},[]),m=(0,r.useCallback)(function(){i()},[i]),b=(0,r.useCallback)(function(){i()},[i]);return(0,r.useEffect)(function(){return e.eventBus.addEventListener("ws:message:async-tasks:created",d),e.eventBus.addEventListener("ws:message:async-tasks:progress",y),e.eventBus.addEventListener("ws:message:async-tasks:status",m),e.eventBus.addEventListener("ws:message:async-tasks:deleted",b),function(){e.eventBus.removeEventListener("ws:message:async-tasks:created",d),e.eventBus.removeEventListener("ws:message:async-tasks:progress",y),e.eventBus.removeEventListener("ws:message:async-tasks:status",m),e.eventBus.removeEventListener("ws:message:async-tasks:deleted",b)}},[e,b,d,y,m]),(null==l?void 0:l.length)>0&&o().createElement(E,{tasks:l,refresh:i,popoverVisible:f,setPopoverVisible:p})},j=function(e){return o().createElement(n.PinnedPluginListProvider,{items:{asyncTasks:{order:300,component:"AsyncTasks",pin:!0,snippet:"*"}}},o().createElement(n.SchemaComponentOptions,{components:{AsyncTasks:x}},e.children))};function S(e,t,n,r,o,a,i){try{var c=e[a](i),l=c.value}catch(e){n(e);return}c.done?t(l):Promise.resolve(l).then(r,o)}function P(e,t,n){return(P=C()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&Y(o,n.prototype),o}).apply(null,arguments)}function T(e){return(T=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Y(e,t){return(Y=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 P(e,arguments,T(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),Y(n,e)})(e)}function C(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(C=function(){return!!e})()}var A=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,n,o,a,i,c;if(!(this instanceof r))throw TypeError("Cannot call a class as a function");return n=r,o=arguments,n=T(n),a=e=function(e,t){var n;if(t&&("object"==((n=t)&&"u">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,C()?Reflect.construct(n,o||[],T(this).constructor):n.apply(this,o)),i="taskOrigins",c=new t.Registry,i in a?Object.defineProperty(a,i,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[i]=c,e}return r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),e&&Y(r,e),n=[{key:"load",value:function(){var e;return(e=function(){return function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(i,"next",{value:l(0)}),c(i,"throw",{value:l(1)}),c(i,"return",{value:l(2)}),"function"==typeof Symbol&&c(i,Symbol.iterator,{value:function(){return this}}),i;function l(c){return function(l){var s=[c,l];if(n)throw TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,r=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===s[0]||2===s[0])){a=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){a.label=s[1];break}if(6===s[0]&&a.label<o[1]){a.label=o[1],o=s;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(s);break}o[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],r=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}}}(this,function(e){return this.app.use(j),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){S(a,r,o,i,c,"next",e)}function c(e){S(a,r,o,i,c,"throw",e)}i(void 0)})}).call(this)}}],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(n.Plugin)),I=A}(),d}()});
|
|
@@ -0,0 +1,10 @@
|
|
|
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
|
+
|
|
10
|
+
(self.webpackChunk_nocobase_plugin_async_task_manager_client_v2=self.webpackChunk_nocobase_plugin_async_task_manager_client_v2||[]).push([["338"],{264:function(e){e.exports=function(e,t,n){e=e||{};var r=t.prototype,o={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function a(e,t,n,o){return r.fromToBase(e,t,n,o)}n.en.relativeTime=o,r.fromToBase=function(t,r,a,l,i){for(var s,c,u,f=a.$locale().relativeTime||o,d=e.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],p=d.length,y=0;y<p;y+=1){var m=d[y];m.d&&(s=l?n(t).diff(a,m.d,!0):a.diff(t,m.d,!0));var b=(e.rounding||Math.round)(Math.abs(s));if(u=s>0,b<=m.r||!m.r){b<=1&&y>0&&(m=d[y-1]);var h=f[m.l];i&&(b=i(""+b)),c="string"==typeof h?h.replace("%d",b):h(b,r,m.l,u);break}}if(r)return c;var v=u?f.future:f.past;return"function"==typeof v?v(c):v.replace("%s",c)},r.to=function(e,t){return a(e,t,this,!0)},r.from=function(e,t){return a(e,t,this)};var l=function(e){return e.$u?n.utc():n()};r.toNow=function(e){return this.to(l(this),e)},r.fromNow=function(e){return this.from(l(this),e)}}},33:function(e,t,n){"use strict";n.r(t),n.d(t,{AsyncTasksTopbarActionModel:function(){return _},default:function(){return B}});var r,o=n(375),a=n(485),l=n(694),i=n(625),s=n(59),c=n(185),u=n.n(c),f=n(264),d=n.n(f),p=n(155),y=n.n(p);function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var b="@nocobase/plugin-async-task-manager",h=(m(r={},null,{value:null,label:"{{t('Waiting', { ns: '".concat(b,"' })}}"),color:"default",icon:"ClockCircleOutlined"}),m(r,0,{value:0,label:"{{t('Processing', { ns: '".concat(b,"' })}}"),color:"processing",icon:"LoadingOutlined"}),m(r,1,{value:1,label:"{{t('Completed', { ns: '".concat(b,"' })}}"),color:"success",icon:"CheckCircleOutlined"}),m(r,-1,{value:-1,label:"{{t('Failed', { ns: '".concat(b,"' })}}"),color:"error",icon:"CloseCircleOutlined"}),m(r,-2,{value:-2,label:"{{t('Cancelled', { ns: '".concat(b,"' })}}"),color:"warning",icon:"StopOutlined"}),r),v="@nocobase/plugin-async-task-manager";function g(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 k(e,t,n,r,o,a,l){try{var i=e[a](l),s=i.value}catch(e){n(e);return}i.done?t(s):Promise.resolve(s).then(r,o)}function E(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function l(e){k(a,r,o,l,i,"next",e)}function i(e){k(a,r,o,l,i,"throw",e)}l(void 0)})}}function w(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function O(e){return(O=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function S(e,t){return(S=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function j(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],l=!0,i=!1;try{for(o=o.call(e);!(l=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);l=!0);}catch(e){i=!0,r=e}finally{try{l||null==o.return||o.return()}finally{if(i)throw r}}return a}}(e,t)||C(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.")}()}function P(e){return e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function C(e,t){if(e){if("string"==typeof e)return g(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 g(e,t)}}function T(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(T=function(){return!!e})()}function M(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(l,"next",{value:s(0)}),i(l,"throw",{value:s(1)}),i(l,"return",{value:s(2)}),"function"==typeof Symbol&&i(l,Symbol.iterator,{value:function(){return this}}),l;function s(i){return function(s){var c=[i,s];if(n)throw TypeError("Generator is already executing.");for(;l&&(l=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}u().extend(d());var A=y().memo(function(e){var t,n,r=e.popoverVisible,i=e.setPopoverVisible,c=e.tasks,f=e.refresh,d=e.loading,m=(0,a.useApp)(),b=(t=(0,l.useFlowEngine)(),function(e,n){return t.context.t(e,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;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({ns:[v,"client"],nsMode:"fallback"},n))}),g=s.theme.useToken().token,k=null!=(n=m.pm.get("async-task-manager"))?n:m.pm.get("@nocobase/plugin-async-task-manager"),O=(0,p.useMemo)(function(){return m.apiClient.resource("asyncTasks")},[m.apiClient]),S=(0,p.useMemo)(function(){return[{title:b("Created at"),dataIndex:"createdAt",key:"createdAt",width:5*g.controlHeight,render:function(e){return e?y().createElement(s.Tooltip,{title:u()(e).format("YYYY-MM-DD HH:mm:ss")},u()(e).fromNow()):"-"}},{title:b("Task"),dataIndex:"title",key:"title",ellipsis:!0},{title:b("Status"),dataIndex:"status",key:"status",width:5*g.controlHeight,render:function(e,t){var n,r=null!=(n=h[String(null!=e?e:null)])?n:h[String(null)];return y().createElement(s.Space,{align:"center",size:g.marginXS},y().createElement("span",null,function(){var n,o,a={width:3*g.controlHeight,margin:0};switch(e){case null:case -2:return y().createElement(s.Alert,{showIcon:!1,message:b(r.label),banner:!0});case 0:return y().createElement(s.Progress,{type:"line",size:"small",strokeWidth:g.lineWidthBold,percent:Number(((null!=(n=t.progressCurrent)?n:0)/(null!=(o=t.progressTotal)?o:1)*100).toFixed(2)),status:"active",style:a,format:function(e){return"".concat((null!=e?e:0).toFixed(1),"%")}});case 1:return y().createElement(s.Progress,{type:"line",size:"small",strokeWidth:g.lineWidthBold,percent:100,status:"success",style:a,format:function(){return""}});case -1:return y().createElement(s.Progress,{type:"line",size:"small",strokeWidth:g.lineWidthBold,percent:100,status:"exception",style:a,format:function(){return""}});default:return null}}()),y().createElement(s.Tag,{color:r.color,icon:r.icon?y().createElement(a.Icon,{type:r.icon}):null,style:{margin:0,paddingInline:g.paddingXXS,height:g.controlHeightSM,width:g.controlHeightSM}}))}},{title:b("Actions"),dataIndex:"result",key:"actions",width:6*g.controlHeight,render:function(e,t){var n,r=[],a=function(e,t){if(t)return null==e?void 0:e.taskOrigins.get(t)}(k,t.origin),l=null==a?void 0:a.Result,c=null==a?void 0:a.ResultButton;return t.cancelable&&(0===t.status||null===t.status)&&r.push(y().createElement(s.Popconfirm,{key:"cancel",title:b("Confirm cancel"),description:b("Confirm to cancel this task?"),onConfirm:function(){return E(function(){return M(this,function(e){switch(e.label){case 0:return[4,O.stop({filterByTk:t.id})];case 1:return e.sent(),f(),[2]}})})()},okText:b("Confirm"),cancelText:b("Cancel")},y().createElement(s.Button,{type:"link",size:"small",icon:y().createElement(o.StopOutlined,null)},b("Stop")))),1===t.status&&e&&(c?r.push(y().createElement(c,{key:"result-button",task:t})):r.push(y().createElement(s.Button,{key:"view",type:"link",size:"small",icon:y().createElement(o.EyeOutlined,null),onClick:function(){i(!1),s.Modal.info({title:b("Task result"),content:l?y().createElement(l,{payload:e,task:t}):y().createElement("div",null,b("No renderer available for this task type, payload: {{payload}}",{payload:String(e)}))})}},b("View result")))),-1===t.status&&(n=e)&&(void 0===n?"undefined":P(n))==="object"&&r.push(y().createElement(s.Button,{key:"error",type:"link",size:"small",icon:y().createElement(o.ExclamationCircleOutlined,null),onClick:function(){i(!1);var t,n,r,o,l=null!=(r=null==a?void 0:a.namespace)?r:"client";s.Modal.info({title:b("Error Details"),content:y().createElement(s.Typography.Text,null,b(null!=(o=e.message)?o:"",(t=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){w(e,t,n[t])})}return e}({},e.params),n=n={ns:l},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))),closable:!0,width:g.screenSM})}},b("Error details"))),y().createElement(s.Space,{size:g.marginSM},r)}}]},[k,f,i,b,O,g]),j=y().createElement("div",{style:{maxHeight:"70vh",overflow:"auto",width:c.length>0?g.screenLG:6*g.controlHeight}},c.length>0?y().createElement(s.Table,{loading:d,columns:S,dataSource:c,size:"small",pagination:!1,rowKey:"id"}):y().createElement("div",{style:{paddingBlock:g.paddingLG,display:"flex",justifyContent:"center"}},y().createElement(s.Empty,{description:b("No tasks"),image:s.Empty.PRESENTED_IMAGE_SIMPLE})));return y().createElement(s.Popover,{content:j,trigger:"click",placement:"bottom",open:r,onOpenChange:i},y().createElement(s.Button,{type:"text",onClick:function(){i(!r),r||f()},icon:y().createElement(o.SyncOutlined,{spin:c.some(function(e){return 0===e.status})}),"data-testid":"async-tasks-button"}))});A.displayName="AsyncTasksButton";var x=(0,l.observer)(function(){var e=(0,a.useApp)(),t=(0,a.useMobileLayout)().isMobileLayout,n=(0,i.useRequest)(function(){return E(function(){var t,n;return M(this,function(r){switch(r.label){case 0:return[4,e.apiClient.resource("asyncTasks").list({sort:"-createdAt"})];case 1:return[2,null!=(t=null==(n=r.sent())?void 0:n.data)?t:{data:[]}]}})})()}),r=n.data,o=n.refresh,l=n.loading,s=j((0,p.useState)([]),2),c=s[0],u=s[1],f=j((0,p.useState)(!1),2),d=f[0],m=f[1];(0,p.useEffect)(function(){u(Array.isArray(null==r?void 0:r.data)?r.data:[])},[r]);var b=(0,p.useCallback)(function(){m(!0),o()},[o]),h=(0,p.useCallback)(function(e){var t=e.detail;(null==t?void 0:t.id)&&u(function(e){var n=function(e){if(Array.isArray(e))return g(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||C(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),r=n.findIndex(function(e){return e.id===t.id});return -1===r?n.unshift(t):n.splice(r,1,t),n})},[]),v=(0,p.useCallback)(function(){o()},[o]),k=(0,p.useCallback)(function(){o()},[o]);return((0,p.useEffect)(function(){return e.eventBus.addEventListener("ws:message:async-tasks:created",b),e.eventBus.addEventListener("ws:message:async-tasks:progress",h),e.eventBus.addEventListener("ws:message:async-tasks:status",v),e.eventBus.addEventListener("ws:message:async-tasks:deleted",k),function(){e.eventBus.removeEventListener("ws:message:async-tasks:created",b),e.eventBus.removeEventListener("ws:message:async-tasks:progress",h),e.eventBus.removeEventListener("ws:message:async-tasks:status",v),e.eventBus.removeEventListener("ws:message:async-tasks:deleted",k)}},[e.eventBus,b,k,h,v]),t||0===c.length)?null:y().createElement(A,{tasks:c,refresh:o,loading:l,popoverVisible:d,setPopoverVisible:m})},{displayName:"AsyncTasksTopbarAction"}),_=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function n(){var e,t,r;if(!(this instanceof n))throw TypeError("Cannot call a class as a function");return t=n,r=arguments,t=O(t),w(e=function(e,t){if(t&&("object"===P(t)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,T()?Reflect.construct(t,r||[],O(this).constructor):t.apply(this,r)),"sort",300),w(e,"actionId","async-tasks"),w(e,"testId","async-tasks-button"),w(e,"tooltip",(0,l.tExpr)("Async tasks",{ns:[v,"client"],nsMode:"fallback"})),e}return n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&S(n,e),t=[{key:"render",value:function(){return y().createElement(x,null)}}],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)}}(n.prototype,t),n}(a.TopbarActionModel),B=_}}]);
|
|
@@ -0,0 +1,10 @@
|
|
|
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
|
+
export { PluginAsyncTaskManagerClientV2 } from './plugin';
|
|
10
|
+
export { default } from './plugin';
|
|
@@ -0,0 +1,10 @@
|
|
|
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
|
+
|
|
10
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("ahooks"),require("@nocobase/client-v2"),require("dayjs"),require("react"),require("antd"),require("@ant-design/icons"),require("@nocobase/flow-engine"),require("@nocobase/utils/client")):"function"==typeof define&&define.amd?define("@nocobase/plugin-async-task-manager/client-v2",["ahooks","@nocobase/client-v2","dayjs","react","antd","@ant-design/icons","@nocobase/flow-engine","@nocobase/utils/client"],t):"object"==typeof exports?exports["@nocobase/plugin-async-task-manager/client-v2"]=t(require("ahooks"),require("@nocobase/client-v2"),require("dayjs"),require("react"),require("antd"),require("@ant-design/icons"),require("@nocobase/flow-engine"),require("@nocobase/utils/client")):e["@nocobase/plugin-async-task-manager/client-v2"]=t(e.ahooks,e["@nocobase/client-v2"],e.dayjs,e.react,e.antd,e["@ant-design/icons"],e["@nocobase/flow-engine"],e["@nocobase/utils/client"])}(self,function(e,t,n,r,o,i,a,c){return function(){"use strict";var u,l,s,f={375:function(e){e.exports=i},485:function(e){e.exports=t},694:function(e){e.exports=a},768:function(e){e.exports=c},625:function(t){t.exports=e},59:function(e){e.exports=o},185:function(e){e.exports=n},155:function(e){e.exports=r}},p={};function b(e){var t=p[e];if(void 0!==t)return t.exports;var n=p[e]={exports:{}};return f[e].call(n.exports,n,n.exports,b),n.exports}b.m=f,b.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return b.d(t,{a:t}),t},b.d=function(e,t){for(var n in t)b.o(t,n)&&!b.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},b.f={},b.e=function(e){return Promise.all(Object.keys(b.f).reduce(function(t,n){return b.f[n](e,t),t},[]))},b.u=function(e){return""+e+".272bcdd5bb509394.js"},b.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),b.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},d={},b.l=function(e,t,n,r){if(d[e])return void d[e].push(t);if(void 0!==n)for(var o,i,a=document.getElementsByTagName("script"),c=0;c<a.length;c++){var u=a[c];if(u.getAttribute("src")==e||u.getAttribute("data-rspack")=="@nocobase/plugin-async-task-manager/client-v2:"+n){o=u;break}}o||(i=!0,(o=document.createElement("script")).timeout=120,b.nc&&o.setAttribute("nonce",b.nc),o.setAttribute("data-rspack","@nocobase/plugin-async-task-manager/client-v2:"+n),o.src=e),d[e]=[t];var l=function(t,n){o.onerror=o.onload=null,clearTimeout(s);var r=d[e];if(delete d[e],o.parentNode&&o.parentNode.removeChild(o),r&&r.forEach(function(e){return e(n)}),t)return t(n)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),i&&document.head.appendChild(o)},b.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},b.g.importScripts&&(y=b.g.location+"");var d,y,v=b.g.document;if(!y&&v&&(v.currentScript&&"SCRIPT"===v.currentScript.tagName.toUpperCase()&&(y=v.currentScript.src),!y)){var g=v.getElementsByTagName("script");if(g.length)for(var h=g.length-1;h>-1&&(!y||!/^http(s?):/.test(y));)y=g[h--].src}if(!y)throw Error("Automatic publicPath is not supported in this browser");b.p=y.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),u={889:0},b.f.j=function(e,t){var n=b.o(u,e)?u[e]:void 0;if(0!==n)if(n)t.push(n[2]);else{var r=new Promise(function(t,r){n=u[e]=[t,r]});t.push(n[2]=r);var o=b.p+b.u(e),i=Error();b.l(o,function(t){if(b.o(u,e)&&(0!==(n=u[e])&&(u[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;i.message="Loading chunk "+e+" failed.\n("+r+": "+o+")",i.name="ChunkLoadError",i.type=r,i.request=o,n[1](i)}},"chunk-"+e,e)}},l=function(e,t){var n,r,o=t[0],i=t[1],a=t[2],c=0;if(o.some(function(e){return 0!==u[e]})){for(n in i)b.o(i,n)&&(b.m[n]=i[n]);a&&a(b)}for(e&&e(t);c<o.length;c++)r=o[c],b.o(u,r)&&u[r]&&u[r][0](),u[r]=0},(s=self.webpackChunk_nocobase_plugin_async_task_manager_client_v2=self.webpackChunk_nocobase_plugin_async_task_manager_client_v2||[]).forEach(l.bind(null,0)),s.push=l.bind(null,s.push.bind(s));var m={};return!function(){var e="",t="u">typeof document?document.currentScript:null;if(t&&t.src&&(e=t.src.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/")),!e){var n=window.__webpack_public_path__||"";n&&("/"!==n.charAt(n.length-1)&&(n+="/"),e=n+"static/plugins/@nocobase/plugin-async-task-manager/dist/client-v2/")}if(!e){var r=window.__nocobase_modern_client_prefix__||"v",o="/"+(r=String(r).replace(/^\/+|\/+$/g,"")||"v")+"/";if(!(e=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var i=window.location.pathname||"/",a=i.indexOf(o);e=a>=0?i.slice(0,a+1):"/"}e&&(e=e.replace(RegExp("/"+r+"/?$"),"/")),e||(e="/"),"/"!==e.charAt(e.length-1)&&(e+="/"),e+="static/plugins/@nocobase/plugin-async-task-manager/dist/client-v2/"}b.p=e}(),!function(){b.r(m),b.d(m,{PluginAsyncTaskManagerClientV2:function(){return u},default:function(){return l}});var e=b(485),t=b(768);function n(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){n(e);return}c.done?t(u):Promise.resolve(u).then(r,o)}function r(e,t,n){return(r=c()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&i(o,n.prototype),o}).apply(null,arguments)}b(155);function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function i(e,t){return(i=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function a(e){var t="function"==typeof Map?new Map:void 0;return(a=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 r(e,arguments,o(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),i(n,e)})(e)}function c(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(c=function(){return!!e})()}var u=function(e){var r;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function a(){var e,n,r,i,u,l;if(!(this instanceof a))throw TypeError("Cannot call a class as a function");return n=a,r=arguments,n=o(n),i=e=function(e,t){var n;if(t&&("object"==((n=t)&&"u">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,c()?Reflect.construct(n,r||[],o(this).constructor):n.apply(this,r)),u="taskOrigins",l=new t.Registry,u in i?Object.defineProperty(i,u,{value:l,enumerable:!0,configurable:!0,writable:!0}):i[u]=l,e}return a.prototype=Object.create(e&&e.prototype,{constructor:{value:a,writable:!0,configurable:!0}}),e&&i(a,e),r=[{key:"load",value:function(){var e;return(e=function(){return function(e,t){var n,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(a,"next",{value:u(0)}),c(a,"throw",{value:u(1)}),c(a,"return",{value:u(2)}),"function"==typeof Symbol&&c(a,Symbol.iterator,{value:function(){return this}}),a;function u(c){return function(u){var l=[c,u];if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){i=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(6===l[0]&&i.label<o[1]){i.label=o[1],o=l;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(l);break}o[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(e){return this.flowEngine.registerModelLoaders({AsyncTasksTopbarActionModel:{extends:"TopbarActionModel",loader:function(){return b.e("338").then(b.bind(b,33))}}}),this.app.eventBus.dispatchEvent(new CustomEvent("plugin:async-task-manager:loaded",{detail:this})),[2]})},function(){var t=this,r=arguments;return new Promise(function(o,i){var a=e.apply(t,r);function c(e){n(a,o,i,c,u,"next",e)}function u(e){n(a,o,i,c,u,"throw",e)}c(void 0)})}).call(this)}}],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)}}(a.prototype,r),a}(a(e.Plugin)),l=u}(),m}()});
|
|
@@ -0,0 +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
|
+
*/
|
|
9
|
+
export declare const NAMESPACE = "@nocobase/plugin-async-task-manager";
|
|
10
|
+
export declare function tExpr(key: string): string;
|
|
11
|
+
export declare function useT(): (key: string, options?: Record<string, unknown>) => string;
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
+
import { TopbarActionModel } from '@nocobase/client-v2';
|
|
10
|
+
import React from 'react';
|
|
11
|
+
export declare class AsyncTasksTopbarActionModel extends TopbarActionModel {
|
|
12
|
+
sort: number;
|
|
13
|
+
actionId: string;
|
|
14
|
+
testId: string;
|
|
15
|
+
tooltip: string;
|
|
16
|
+
render(): React.JSX.Element;
|
|
17
|
+
}
|
|
18
|
+
export default AsyncTasksTopbarActionModel;
|
|
@@ -0,0 +1,40 @@
|
|
|
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
|
+
import type { Application } from '@nocobase/client-v2';
|
|
10
|
+
import { Plugin } from '@nocobase/client-v2';
|
|
11
|
+
import { Registry } from '@nocobase/utils/client';
|
|
12
|
+
import React from 'react';
|
|
13
|
+
export type AsyncTaskRecord = {
|
|
14
|
+
id: string;
|
|
15
|
+
origin?: string;
|
|
16
|
+
type?: string;
|
|
17
|
+
title?: string;
|
|
18
|
+
status?: number | null;
|
|
19
|
+
result?: unknown;
|
|
20
|
+
cancelable?: boolean;
|
|
21
|
+
progressCurrent?: number | null;
|
|
22
|
+
progressTotal?: number | null;
|
|
23
|
+
createdAt?: string;
|
|
24
|
+
params?: Record<string, unknown>;
|
|
25
|
+
};
|
|
26
|
+
export type TaskOrigin = {
|
|
27
|
+
Result?: React.ComponentType<{
|
|
28
|
+
payload: unknown;
|
|
29
|
+
task: AsyncTaskRecord;
|
|
30
|
+
}>;
|
|
31
|
+
ResultButton?: React.ComponentType<{
|
|
32
|
+
task: AsyncTaskRecord;
|
|
33
|
+
}>;
|
|
34
|
+
namespace?: string;
|
|
35
|
+
};
|
|
36
|
+
export declare class PluginAsyncTaskManagerClientV2 extends Plugin<Record<string, never>, Application> {
|
|
37
|
+
taskOrigins: Registry<TaskOrigin>;
|
|
38
|
+
load(): Promise<void>;
|
|
39
|
+
}
|
|
40
|
+
export default PluginAsyncTaskManagerClientV2;
|
package/dist/externalVersion.js
CHANGED
|
@@ -8,15 +8,19 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
module.exports = {
|
|
11
|
-
"@nocobase/client": "2.
|
|
11
|
+
"@nocobase/client": "2.2.0-alpha.1",
|
|
12
12
|
"react": "18.2.0",
|
|
13
|
-
"@nocobase/utils": "2.
|
|
14
|
-
"
|
|
15
|
-
"@nocobase/
|
|
16
|
-
"
|
|
17
|
-
"@nocobase/
|
|
13
|
+
"@nocobase/utils": "2.2.0-alpha.1",
|
|
14
|
+
"@nocobase/flow-engine": "2.2.0-alpha.1",
|
|
15
|
+
"@nocobase/client-v2": "2.2.0-alpha.1",
|
|
16
|
+
"lodash": "4.18.1",
|
|
17
|
+
"@nocobase/server": "2.2.0-alpha.1",
|
|
18
|
+
"@nocobase/logger": "2.2.0-alpha.1",
|
|
19
|
+
"@nocobase/database": "2.2.0-alpha.1",
|
|
18
20
|
"antd": "5.24.2",
|
|
19
21
|
"react-i18next": "11.18.6",
|
|
20
22
|
"dayjs": "1.11.13",
|
|
21
|
-
"@
|
|
23
|
+
"@ant-design/icons": "5.6.1",
|
|
24
|
+
"ahooks": "3.7.8",
|
|
25
|
+
"@nocobase/actions": "2.2.0-alpha.1"
|
|
22
26
|
};
|
|
@@ -109,6 +109,7 @@ class CommandTaskType extends import_task_type.TaskType {
|
|
|
109
109
|
var _a2, _b;
|
|
110
110
|
let settled = false;
|
|
111
111
|
let successPayload;
|
|
112
|
+
let failurePayload;
|
|
112
113
|
const settleOnce = (err, payload) => {
|
|
113
114
|
if (settled) {
|
|
114
115
|
return;
|
|
@@ -148,7 +149,7 @@ class CommandTaskType extends import_task_type.TaskType {
|
|
|
148
149
|
worker.terminate();
|
|
149
150
|
});
|
|
150
151
|
worker.on("message", (message) => {
|
|
151
|
-
var _a3, _b2;
|
|
152
|
+
var _a3, _b2, _c, _d;
|
|
152
153
|
(_a3 = this.logger) == null ? void 0 : _a3.trace(`Worker message received for task ${this.record.id} - type: ${message.type}`);
|
|
153
154
|
if (message.type === "progress") {
|
|
154
155
|
this.reportProgress(message.payload);
|
|
@@ -161,6 +162,10 @@ class CommandTaskType extends import_task_type.TaskType {
|
|
|
161
162
|
);
|
|
162
163
|
successPayload = message.payload;
|
|
163
164
|
}
|
|
165
|
+
if (message.type === "failure") {
|
|
166
|
+
(_d = this.logger) == null ? void 0 : _d.error(`Worker failure for task ${this.record.id} `, (_c = message.payload) == null ? void 0 : _c.error);
|
|
167
|
+
failurePayload = message.payload;
|
|
168
|
+
}
|
|
164
169
|
});
|
|
165
170
|
worker.on("error", (error) => {
|
|
166
171
|
var _a3;
|
|
@@ -173,7 +178,7 @@ class CommandTaskType extends import_task_type.TaskType {
|
|
|
173
178
|
if (isCancelling) {
|
|
174
179
|
settleOnce(new import_async_task_manager.CancelError());
|
|
175
180
|
} else if (code !== 0) {
|
|
176
|
-
settleOnce(new Error(`Worker stopped with exit code ${code}`));
|
|
181
|
+
settleOnce((failurePayload == null ? void 0 : failurePayload.error) ?? new Error(`Worker stopped with exit code ${code}`));
|
|
177
182
|
} else {
|
|
178
183
|
settleOnce(null, successPayload ?? code);
|
|
179
184
|
}
|
package/package.json
CHANGED
|
@@ -6,10 +6,11 @@
|
|
|
6
6
|
"description": "Manage and monitor asynchronous tasks such as data import/export. Support task progress tracking and notification.",
|
|
7
7
|
"description.ru-RU": "Управление асинхронными задачами и мониторинг (например, импорт/экспорт данных). Поддержка отслеживания прогресса и уведомлений о задачах.",
|
|
8
8
|
"description.zh-CN": "管理和监控数据导入导出等异步任务。支持任务进度跟踪和通知。",
|
|
9
|
-
"version": "2.
|
|
9
|
+
"version": "2.2.0-alpha.1",
|
|
10
10
|
"main": "dist/server/index.js",
|
|
11
11
|
"peerDependencies": {
|
|
12
12
|
"@nocobase/client": "2.x",
|
|
13
|
+
"@nocobase/client-v2": "2.x",
|
|
13
14
|
"@nocobase/plugin-error-handler": "2.x",
|
|
14
15
|
"@nocobase/server": "2.x",
|
|
15
16
|
"@nocobase/test": "2.x"
|
|
@@ -18,5 +19,5 @@
|
|
|
18
19
|
"p-queue": "^6.6.2"
|
|
19
20
|
},
|
|
20
21
|
"license": "Apache-2.0",
|
|
21
|
-
"gitHead": "
|
|
22
|
+
"gitHead": "303663aba6c6eefa27e6a6435b4c0352074ec40f"
|
|
22
23
|
}
|