@nocobase/plugin-field-sequence 2.3.0-alpha.1 → 2.3.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,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("lodash"),require("react"),require("antd"),require("@nocobase/client-v2"),require("@ant-design/icons"),require("@nocobase/flow-engine")):"function"==typeof define&&define.amd?define("@nocobase/plugin-field-sequence/client-v2",["lodash","react","antd","@nocobase/client-v2","@ant-design/icons","@nocobase/flow-engine"],t):"object"==typeof exports?exports["@nocobase/plugin-field-sequence/client-v2"]=t(require("lodash"),require("react"),require("antd"),require("@nocobase/client-v2"),require("@ant-design/icons"),require("@nocobase/flow-engine")):e["@nocobase/plugin-field-sequence/client-v2"]=t(e.lodash,e.react,e.antd,e["@nocobase/client-v2"],e["@ant-design/icons"],e["@nocobase/flow-engine"])}(self,function(e,t,n,r,o,l){return function(){"use strict";var a={375:function(e){e.exports=o},485:function(e){e.exports=r},694:function(e){e.exports=l},59:function(e){e.exports=n},154:function(t){t.exports=e},155:function(e){e.exports=t}},u={};function i(e){var t=u[e];if(void 0!==t)return t.exports;var n=u[e]={exports:{}};return a[e](n,n.exports,i),n.exports}i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,{a:t}),t},i.d=function(e,t){for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.g.importScripts&&(c=i.g.location+"");var c,s=i.g.document;if(!c&&s&&(s.currentScript&&"SCRIPT"===s.currentScript.tagName.toUpperCase()&&(c=s.currentScript.src),!c)){var f=s.getElementsByTagName("script");if(f.length)for(var p=f.length-1;p>-1&&(!c||!/^http(s?):/.test(c));)c=f[p--].src}if(!c)throw Error("Automatic publicPath is not supported in this browser");i.p=c.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/");var d={};return!function(){var e="",t="u">typeof document?document.currentScript:null;if(t&&t.src){var n=t.src.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"");n.indexOf("/static/plugins/@nocobase/plugin-field-sequence/dist/client-v2/")>=0&&(e=n.replace(/\/[^\/]+$/,"/"))}if(!e){var r=window.__webpack_public_path__||"";r&&("/"!==r.charAt(r.length-1)&&(r+="/"),e=r+"static/plugins/@nocobase/plugin-field-sequence/dist/client-v2/")}if(!e){var o=window.__nocobase_modern_client_prefix__||"v",l="/"+(o=String(o).replace(/^\/+|\/+$/g,"")||"v")+"/";if(!(e=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var a=window.location.pathname||"/",u=a.indexOf(l);e=u>=0?a.slice(0,u+1):"/"}e&&(e=e.replace(RegExp("/"+o+"/?$"),"/")),e||(e="/"),"/"!==e.charAt(e.length-1)&&(e+="/"),e+="static/plugins/@nocobase/plugin-field-sequence/dist/client-v2/"}i.p=e}(),!function(){i.r(d),i.d(d,{SequenceFieldInterface:function(){return N},default:function(){return Y}});var e=i(485),t=i(375),n=i(59),r=i(154),o=i(155),l=i.n(o),a=i(694);function u(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}function c(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}var s="field-sequence";function f(){var e=(0,a.useFlowEngine)();return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.context.t(t,c(u({},n),{ns:[s,"client"]}))}}function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,a.tExpr)(e,c(u({},t),{ns:s}))}function m(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 b(e,t,n,r,o,l,a){try{var u=e[l](a),i=u.value}catch(e){n(e);return}u.done?t(i):Promise.resolve(i).then(r,o)}function v(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var l=e.apply(t,n);function a(e){b(l,r,o,a,u,"next",e)}function u(e){b(l,r,o,a,u,"throw",e)}a(void 0)})}}function y(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}function h(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 l=[],a=!0,u=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(l.push(n.value),!t||l.length!==t);a=!0);}catch(e){u=!0,r=e}finally{try{a||null==o.return||o.return()}finally{if(u)throw r}}return l}}(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 g(e){return function(e){if(Array.isArray(e))return m(e)}(e)||function(e){if("u">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.")}()}function w(e,t){if(e){if("string"==typeof e)return m(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 m(e,t)}}function O(e,t){var n,r,o,l={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),u=Object.defineProperty;return u(a,"next",{value:i(0)}),u(a,"throw",{value:i(1)}),u(a,"return",{value:i(2)}),"function"==typeof Symbol&&u(a,Symbol.iterator,{value:function(){return this}}),a;function i(u){return function(i){var c=[u,i];if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(l=0)),l;)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 l.label++,{value:c[1],done:!1};case 5:l.label++,r=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(o=(o=l.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){l.label=c[1];break}if(6===c[0]&&l.label<o[1]){l.label=o[1],o=c;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(c);break}o[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}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}}}}var _=[{label:'{{t("No reset")}}',value:"__none__",cron:null},{label:'{{t("Daily")}}',value:"0 0 * * *",cron:"0 0 * * *"},{label:'{{t("Every Monday")}}',value:"0 0 * * 1",cron:"0 0 * * 1"},{label:'{{t("Monthly")}}',value:"0 0 1 * *",cron:"0 0 1 * *"},{label:'{{t("Yearly")}}',value:"0 0 1 1 *",cron:"0 0 1 1 *"},{label:'{{t("Customize")}}',value:"__custom__",cron:"* * * * *"}];function S(e,t){if("string"!=typeof e)return e;var n=e.match(/^\s*\{\{\s*t\s*\(\s*(['"])(.*?)\1(?:\s*,[\s\S]*?)?\)\s*\}\}\s*$/);return(null==n?void 0:n[2])?t(n[2]):e}function E(e,t){return Array.isArray(e)?e.map(function(e){var n;return(void 0===e?"undefined":e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e)=="object"&&null!==e?{value:e.value,label:S(null!=(n=e.label)?n:e.value,t)}:{value:e,label:String(e)}}):[]}function j(e){return(null==e?void 0:e.defaults)?(0,r.cloneDeep)(e.defaults):((null==e?void 0:e.fields)||[]).reduce(function(e,t){return void 0!==t.default&&(e[t.name]=(0,r.cloneDeep)(t.default)),e},{})}function P(e,t,n){if(Object.prototype.hasOwnProperty.call(t,n))return t[n];var r=((null==e?void 0:e.fields)||[]).find(function(e){return e.name===n});return null==r?void 0:r.default}function x(e){var t,r=f(),o=null!=(t=e.value)?t:null,a=_.find(function(e){return e.cron===o}),u=(null==a?void 0:a.value)||(o?"__custom__":"__none__");return l().createElement(n.Space,{direction:"vertical",style:{width:"100%"}},l().createElement(n.Select,{disabled:e.disabled,value:u,options:_.map(function(e){return{value:e.value,label:S(e.label,r)}}),onChange:function(t){var n,r=_.find(function(e){return e.value===t});null==(n=e.onChange)||n.call(e,null==r?void 0:r.cron)}}),"__custom__"===u?l().createElement(n.Input,{disabled:e.disabled,value:"__custom__"===u?o||"* * * * *":void 0,onChange:function(t){var n;return null==(n=e.onChange)?void 0:n.call(e,t.target.value)}}):null)}function q(e){var t=e.field,r=e.form,o=e.ruleType,a=e.disabled,u=f(),i=n.Form.useWatch("digits",r),c=y({},t.componentProps||{});return((null==o?void 0:o.value)==="integer"&&"start"===t.name&&Number.isFinite(Number(i))&&(c.max=Math.pow(10,Number(i))-1),"InputNumber"===t.component)?l().createElement(n.InputNumber,y({style:{width:"100%"},disabled:a},c)):"Select"===t.component?l().createElement(n.Select,y({disabled:a,options:E(t.enum,u)},c)):"CronCycle"===t.component?l().createElement(x,{disabled:a}):l().createElement(n.Input,{disabled:a})}function T(e){var t,r=f(),o=(null==(t=e.ruleType)?void 0:t.fields)||[];return l().createElement(l().Fragment,null,o.map(function(t){var o,a=S(t.label||t.name,r),u=[];return t.required&&u.push({required:!0,message:r("Required")}),(null==(o=t.componentProps)?void 0:o.mode)==="multiple"&&u.push({validator:function(e,n){return v(function(){return O(this,function(e){if(t.required&&(!Array.isArray(n)||0===n.length))throw Error(r("Required"));return[2]})})()}}),l().createElement(n.Form.Item,{key:t.name,name:t.name,label:a,rules:u},l().createElement(q,{field:t,form:e.form,ruleType:e.ruleType,disabled:e.disabled}))}))}function I(e){var t,r=f(),o=(null==(t=e.ruleType)?void 0:t.fields)||[],a=e.options||{},u=o.filter(function(t){return void 0!==P(e.ruleType||{},a,t.name)});if(!e.ruleType||!u.length)return null;var i=function(t){var n=P(e.ruleType||{},a,t.name);if("Select"===t.component&&Array.isArray(n))return E(t.enum,r).filter(function(e){return n.includes(e.value)}).map(function(e){return e.label}).join(", ");if("CronCycle"===t.component){var o=_.find(function(e){return e.cron===n});return S((null==o?void 0:o.label)||(n?"Customize":"No reset"),r)}return n};return l().createElement(n.Space,{size:"large",wrap:!0},u.map(function(e){return l().createElement("dl",{key:e.name,style:{margin:0,padding:0}},l().createElement("dt",null,S(e.label||e.name,r)),l().createElement("dd",{style:{marginBottom:0}},l().createElement("code",null,i(e))))}))}function F(e){var a,u,i=f(),c=n.theme.useToken().token,s=h(n.Form.useForm(),1)[0],p=h((0,o.useState)(),2),d=p[0],m=p[1],b=h((0,o.useState)(),2),w=b[0],_=b[1],E=(0,o.useMemo)(function(){var t,n;return(null==(n=e.schema)||null==(t=n["x-component-props"])?void 0:t.ruleTypes)||[]},[e.schema]),P=E.find(function(e){return"integer"===e.value})||E[0],x={type:null==P?void 0:P.value,options:j(P)},q=(0,o.useMemo)(function(){return E.map(function(e){return{value:e.value,label:S(e.label,i)}})},[E,i]),F=function(t){var n,o=(0,r.get)(null==(n=e.form)?void 0:n.getFieldValue(e.namePath),t.name),l=E.find(function(e){return e.value===(null==o?void 0:o.type)})||P;_({fieldName:t.name,initialValues:y({},j(l),(null==o?void 0:o.options)||{}),title:S((null==l?void 0:l.label)||(null==l?void 0:l.value),i),ruleType:l})},k=function(){_(void 0),s.resetFields()},C=function(){return v(function(){var t,n,o,l,a,u;return O(this,function(i){switch(i.label){case 0:return[4,s.validateFields()];case 1:if(l=i.sent(),!w)return[2];return a=(0,r.get)(null==(t=e.form)?void 0:t.getFieldValue(e.namePath),[w.fieldName,"options"])||{},u=(null==(n=w.ruleType)?void 0:n.value)==="integer"&&null!=a.key?{key:a.key}:{},null==(o=e.form)||o.setFieldValue(g(e.namePath).concat([w.fieldName,"options"]),y({},u,l)),k(),[2]}})})()};return(0,o.useEffect)(function(){w&&(s.resetFields(),s.setFieldsValue(w.initialValues))},[s,w]),l().createElement(n.Form.Item,{label:e.title,tooltip:e.tooltip,required:null==(a=e.schema)?void 0:a.required},l().createElement(n.Form.List,{name:e.namePath,rules:(null==(u=e.schema)?void 0:u.required)?[{validator:function(e,t){return v(function(){return O(this,function(e){if(!(null==t?void 0:t.length))throw Error(i("Please add at least one rule"));return[2]})})()}}]:void 0},function(o,a,u){var f,p=a.add,b=a.move,v=a.remove,y=u.errors;return l().createElement(l().Fragment,null,l().createElement(n.Table,{rowKey:"key",pagination:!1,dataSource:o,size:"small",footer:function(){return l().createElement(n.Button,{block:!0,icon:l().createElement(t.PlusOutlined,null),disabled:e.disabled,type:"dashed",onClick:function(){return p((0,r.cloneDeep)(x))}},i("Add rule"))},onRow:function(e){var t=o.findIndex(function(t){return t.key===e.key});return{onDragOver:function(e){return e.preventDefault()},onDrop:function(){void 0!==d&&d!==t&&(b(d,t),m(void 0))},onDragEnd:function(){return m(void 0)}}},columns:[{title:"",width:50,align:"center",render:function(n,r,o){return l().createElement("span",{"aria-label":i("Drag sort"),draggable:!e.disabled,onDragStart:function(){return m(o)},style:{color:"var(--ant-color-text-tertiary)",cursor:e.disabled?"not-allowed":"grab",display:"inline-flex"}},l().createElement(t.MenuOutlined,null))}},{title:i("Type"),width:260,render:function(t,r){return l().createElement(n.Form.Item,{name:[r.name,"type"],rules:[{required:!0}],style:{marginBottom:0}},l().createElement(n.Select,{disabled:e.disabled,options:q,onChange:function(t){var n,o=E.find(function(e){return e.value===t});null==(n=e.form)||n.setFieldValue(g(e.namePath).concat([r.name,"options"]),j(o))}}))}},{title:i("Rule content"),render:function(t,o){return l().createElement(n.Form.Item,{shouldUpdate:!0,noStyle:!0},function(){var t,n=(0,r.get)(null==(t=e.form)?void 0:t.getFieldValue(e.namePath),o.name),a=E.find(function(e){return e.value===(null==n?void 0:n.type)})||P;return l().createElement(I,{ruleType:a,options:null==n?void 0:n.options})})}},{title:i("Operations"),width:180,render:function(r,o){return l().createElement(n.Space,null,l().createElement(n.Button,{disabled:e.disabled,size:"small",type:"link",onClick:function(){return F(o)}},i("Configure")),l().createElement(n.Button,{"aria-label":i("Delete"),disabled:e.disabled,icon:l().createElement(t.DeleteOutlined,null),size:"small",type:"text",onClick:function(){return v(o.name)}}))}}]}),l().createElement(n.Form.ErrorList,{errors:y}),l().createElement(n.Drawer,{destroyOnClose:!0,title:null==w?void 0:w.title,open:!!w,width:640,zIndex:c.zIndexPopupBase+1e3,onClose:k,footer:l().createElement(n.Button,{type:"primary",onClick:C},i("Submit"))},l().createElement(n.Form,{key:"".concat(null==w?void 0:w.fieldName,"-").concat(null==w||null==(f=w.ruleType)?void 0:f.value),form:s,initialValues:null==w?void 0:w.initialValues,layout:"vertical",preserve:!1},l().createElement(T,{form:s,ruleType:null==w?void 0:w.ruleType,disabled:e.disabled}))))}))}function k(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function C(e){return(C=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function D(e,t){return(D=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function M(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(M=function(){return!!e})()}var A=[{value:"string",label:p("Fixed text"),defaults:{value:""},fields:[{name:"value",label:p("Text content"),component:"Input",required:!0}]},{value:"randomChar",label:p("Random character"),defaults:{length:6,charsets:["number"]},fields:[{name:"length",label:p("Length"),component:"InputNumber",componentProps:{min:1,max:32},required:!0},{name:"charsets",label:p("Character sets"),component:"Select",componentProps:{mode:"multiple",allowClear:!1},enum:[{value:"number",label:p("Number")},{value:"lowercase",label:p("Lowercase letters")},{value:"uppercase",label:p("Uppercase letters")},{value:"symbol",label:p("Symbols")}],required:!0}]},{value:"integer",label:p("Autoincrement"),defaults:{digits:4,start:1},fields:[{name:"digits",label:p("Digits"),component:"InputNumber",componentProps:{min:1,max:10},required:!0},{name:"start",label:p("Start from"),component:"InputNumber",componentProps:{min:0},required:!0},{name:"cycle",label:p("Reset cycle"),component:"CronCycle"}]},{value:"date",label:p("Date"),defaults:{format:"YYYYMMDD"},fields:[{name:"format",label:p("Date format"),component:"Input",required:!0}]}],N=function(e){if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function t(){var e,n,r;if(!(this instanceof t))throw TypeError("Cannot call a class as a function");return n=t,r=arguments,n=C(n),k(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,M()?Reflect.construct(n,r||[],C(this).constructor):n.apply(this,r)),"name","sequence"),k(e,"type","object"),k(e,"group","advanced"),k(e,"order",3),k(e,"title",p("Sequence")),k(e,"description",p("Automatically generate codes based on configured rules, supporting combinations of dates, numbers, and text.")),k(e,"sortable",!0),k(e,"default",{interface:"sequence",type:"sequence",uiSchema:{type:"string","x-component":"Input","x-component-props":{}}}),k(e,"availableTypes",["sequence"]),k(e,"hasDefaultValue",!1),k(e,"filterable",{operators:"string"}),k(e,"titleUsable",!0),k(e,"configure",{items:[{name:"unique",title:'{{t("Unique")}}',component:"Checkbox"},{name:"patterns",title:p("Sequence rules"),required:!0,Component:F,componentProps:{ruleTypes:A},defaultValue:[{type:"integer",options:{digits:4,start:1}}]},{name:"inputable",title:p("Inputable"),component:"Checkbox"},{name:"match",title:p("Match rules"),component:"Checkbox",hidden:function(e){return!e.values.inputable}}]}),e}return t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&D(t,e),t}(e.CollectionFieldInterface);function R(e,t,n,r,o,l,a){try{var u=e[l](a),i=u.value}catch(e){n(e);return}u.done?t(i):Promise.resolve(i).then(r,o)}function B(e,t,n){return(B=U()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&$(o,n.prototype),o}).apply(null,arguments)}function V(e){return(V=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function $(e,t){return($=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function z(e){var t="function"==typeof Map?new Map:void 0;return(z=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 B(e,arguments,V(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),$(n,e)})(e)}function U(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(U=function(){return!!e})()}var Y=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;if(!(this instanceof n))throw TypeError("Cannot call a class as a function");return e=n,t=arguments,e=V(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,U()?Reflect.construct(e,t||[],V(this).constructor):e.apply(this,t))}return n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&$(n,e),t=[{key:"load",value:function(){var e;return(e=function(){var e,t;return function(e,t){var n,r,o,l={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),u=Object.defineProperty;return u(a,"next",{value:i(0)}),u(a,"throw",{value:i(1)}),u(a,"return",{value:i(2)}),"function"==typeof Symbol&&u(a,Symbol.iterator,{value:function(){return this}}),a;function i(u){return function(i){var c=[u,i];if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(l=0)),l;)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 l.label++,{value:c[1],done:!1};case 5:l.label++,r=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(o=(o=l.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){l.label=c[1];break}if(6===c[0]&&l.label<o[1]){l.label=o[1],o=c;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(c);break}o[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}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}}}}(this,function(n){return this.app.addFieldInterfaces([N]),null==(t=this.app.pm.get("calendar"))||null==(e=t.registerTitleFieldInterface)||e.call(t,"sequence"),a.EditableItemModel.bindModelToInterface("InputFieldModel",["sequence"],{isDefault:!0}),a.DisplayItemModel.bindModelToInterface("DisplayTextFieldModel",["sequence"],{isDefault:!0}),a.FilterableItemModel.bindModelToInterface("InputFieldModel",["sequence"],{isDefault:!0}),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var l=e.apply(t,n);function a(e){R(l,r,o,a,u,"next",e)}function u(e){R(l,r,o,a,u,"throw",e)}a(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)}}(n.prototype,t),n}(z(e.Plugin))}(),d}()});
10
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("lodash"),require("react"),require("antd"),require("@nocobase/client-v2"),require("@ant-design/icons"),require("@nocobase/flow-engine")):"function"==typeof define&&define.amd?define("@nocobase/plugin-field-sequence/client-v2",["lodash","react","antd","@nocobase/client-v2","@ant-design/icons","@nocobase/flow-engine"],t):"object"==typeof exports?exports["@nocobase/plugin-field-sequence/client-v2"]=t(require("lodash"),require("react"),require("antd"),require("@nocobase/client-v2"),require("@ant-design/icons"),require("@nocobase/flow-engine")):e["@nocobase/plugin-field-sequence/client-v2"]=t(e.lodash,e.react,e.antd,e["@nocobase/client-v2"],e["@ant-design/icons"],e["@nocobase/flow-engine"])}(self,function(e,t,n,r,o,l){return function(){"use strict";var u={375:function(e){e.exports=o},485:function(e){e.exports=r},694:function(e){e.exports=l},59:function(e){e.exports=n},154:function(t){t.exports=e},155:function(e){e.exports=t}},i={};function a(e){var t=i[e];if(void 0!==t)return t.exports;var n=i[e]={exports:{}};return u[e](n,n.exports,a),n.exports}a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,{a:t}),t},a.d=function(e,t){for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.g.importScripts&&(c=a.g.location+"");var c,s=a.g.document;if(!c&&s&&(s.currentScript&&"SCRIPT"===s.currentScript.tagName.toUpperCase()&&(c=s.currentScript.src),!c)){var f=s.getElementsByTagName("script");if(f.length)for(var p=f.length-1;p>-1&&(!c||!/^http(s?):/.test(c));)c=f[p--].src}if(!c)throw Error("Automatic publicPath is not supported in this browser");a.p=c.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/");var d={};return!function(){var e="",t="u">typeof document?document.currentScript:null;if(t&&t.src){var n=t.src.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"");n.indexOf("/static/plugins/@nocobase/plugin-field-sequence/dist/client-v2/")>=0&&(e=n.replace(/\/[^\/]+$/,"/"))}if(!e){var r=window.__webpack_public_path__||"";r&&("/"!==r.charAt(r.length-1)&&(r+="/"),e=r+"static/plugins/@nocobase/plugin-field-sequence/dist/client-v2/")}if(!e){var o=window.__nocobase_modern_client_prefix__||"v",l="/"+(o=String(o).replace(/^\/+|\/+$/g,"")||"v")+"/";if(!(e=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var u=window.location.pathname||"/",i=u.indexOf(l);e=i>=0?u.slice(0,i+1):"/"}e&&(e=e.replace(RegExp("/"+o+"/?$"),"/")),e||(e="/"),"/"!==e.charAt(e.length-1)&&(e+="/"),e+="static/plugins/@nocobase/plugin-field-sequence/dist/client-v2/"}a.p=e}(),!function(){a.r(d),a.d(d,{SequenceFieldInterface:function(){return R},default:function(){return L}});var e=a(485),t=a(375),n=a(59),r=a(154),o=a(155),l=a.n(o),u=a(694);function i(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}function c(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}var s="field-sequence";function f(){var e=(0,u.useFlowEngine)();return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.context.t(t,c(i({},n),{ns:[s,"client"]}))}}function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,u.tExpr)(e,c(i({},t),{ns:s}))}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 m(e,t,n,r,o,l,u){try{var i=e[l](u),a=i.value}catch(e){n(e);return}i.done?t(a):Promise.resolve(a).then(r,o)}function v(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var l=e.apply(t,n);function u(e){m(l,r,o,u,i,"next",e)}function i(e){m(l,r,o,u,i,"throw",e)}u(void 0)})}}function y(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}function h(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function g(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 l=[],u=!0,i=!1;try{for(o=o.call(e);!(u=(n=o.next()).done)&&(l.push(n.value),!t||l.length!==t);u=!0);}catch(e){i=!0,r=e}finally{try{u||null==o.return||o.return()}finally{if(i)throw r}}return l}}(e,t)||O(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){return function(e){if(Array.isArray(e))return b(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||O(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.")}()}function O(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)}}function j(e,t){var n,r,o,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},u=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(u,"next",{value:a(0)}),i(u,"throw",{value:a(1)}),i(u,"return",{value:a(2)}),"function"==typeof Symbol&&i(u,Symbol.iterator,{value:function(){return this}}),u;function a(i){return function(a){var c=[i,a];if(n)throw TypeError("Generator is already executing.");for(;u&&(u=0,c[0]&&(l=0)),l;)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 l.label++,{value:c[1],done:!1};case 5:l.label++,r=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(o=(o=l.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){l.label=c[1];break}if(6===c[0]&&l.label<o[1]){l.label=o[1],o=c;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(c);break}o[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}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}}}}var S=[{label:'{{t("No reset")}}',value:"__none__",cron:null},{label:'{{t("Daily")}}',value:"0 0 * * *",cron:"0 0 * * *"},{label:'{{t("Every Monday")}}',value:"0 0 * * 1",cron:"0 0 * * 1"},{label:'{{t("Monthly")}}',value:"0 0 1 * *",cron:"0 0 1 * *"},{label:'{{t("Yearly")}}',value:"0 0 1 1 *",cron:"0 0 1 1 *"},{label:'{{t("Customize")}}',value:"__custom__",cron:"* * * * *"}];function _(e,t){if("string"!=typeof e)return e;var n=e.match(/^\s*\{\{\s*t\s*\(\s*(['"])(.*?)\1(?:\s*,[\s\S]*?)?\)\s*\}\}\s*$/);return(null==n?void 0:n[2])?t(n[2]):e}function E(e,t){return Array.isArray(e)?e.map(function(e){var n;return(void 0===e?"undefined":e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e)=="object"&&null!==e?{value:e.value,label:_(null!=(n=e.label)?n:e.value,t)}:{value:e,label:String(e)}}):[]}function P(e){return(null==e?void 0:e.defaults)?(0,r.cloneDeep)(e.defaults):((null==e?void 0:e.fields)||[]).reduce(function(e,t){return void 0!==t.default&&(e[t.name]=(0,r.cloneDeep)(t.default)),e},{})}function x(e,t,n){if(Object.prototype.hasOwnProperty.call(t,n))return t[n];var r=((null==e?void 0:e.fields)||[]).find(function(e){return e.name===n});return null==r?void 0:r.default}function q(e){var t,r=f(),o=null!=(t=e.value)?t:null,u=S.find(function(e){return e.cron===o}),i=(null==u?void 0:u.value)||(o?"__custom__":"__none__");return l().createElement(n.Space,{direction:"vertical",style:{width:"100%"}},l().createElement(n.Select,{disabled:e.disabled,id:e.id,value:i,options:S.map(function(e){return{value:e.value,label:_(e.label,r)}}),onChange:function(t){var n,r=S.find(function(e){return e.value===t});null==(n=e.onChange)||n.call(e,null==r?void 0:r.cron)}}),"__custom__"===i?l().createElement(n.Input,{disabled:e.disabled,value:"__custom__"===i?o||"* * * * *":void 0,onChange:function(t){var n;return null==(n=e.onChange)?void 0:n.call(e,t.target.value)}}):null)}function T(e){var t=e.field,r=e.form,o=e.ruleType,u=e.disabled,i=e.id,a=e.onChange,c=e.value,s=f(),p=n.Form.useWatch("digits",r),d=y({},t.componentProps||{});return((null==o?void 0:o.value)==="integer"&&"start"===t.name&&Number.isFinite(Number(p))&&(d.max=Math.pow(10,Number(p))-1),"InputNumber"===t.component)?l().createElement(n.InputNumber,h(y({style:{width:"100%"},disabled:u},d),{id:i,value:"number"==typeof c?c:null,onChange:function(e){return null==a?void 0:a(e)}})):"Select"===t.component?l().createElement(n.Select,h(y({disabled:u,options:E(t.enum,s)},d),{id:i,value:c,onChange:function(e){return null==a?void 0:a(e)}})):"CronCycle"===t.component?l().createElement(q,{disabled:u,id:i,value:"string"==typeof c?c:null,onChange:function(e){return null==a?void 0:a(null!=e?e:null)}}):l().createElement(n.Input,{disabled:u,id:i,value:"string"==typeof c?c:"",onChange:function(e){return null==a?void 0:a(e.target.value)}})}function I(e){var t,r=f(),o=(null==(t=e.ruleType)?void 0:t.fields)||[];return l().createElement(l().Fragment,null,o.map(function(t){var o,u=_(t.label||t.name,r),i=[];return t.required&&i.push({required:!0,message:r("Required")}),(null==(o=t.componentProps)?void 0:o.mode)==="multiple"&&i.push({validator:function(e,n){return v(function(){return j(this,function(e){if(t.required&&(!Array.isArray(n)||0===n.length))throw Error(r("Required"));return[2]})})()}}),l().createElement(n.Form.Item,{key:t.name,name:t.name,label:u,rules:i},l().createElement(T,{field:t,form:e.form,ruleType:e.ruleType,disabled:e.disabled}))}))}function C(e){var t,r=f(),o=(null==(t=e.ruleType)?void 0:t.fields)||[],u=e.options||{},i=o.filter(function(t){return void 0!==x(e.ruleType||{},u,t.name)});if(!e.ruleType||!i.length)return null;var a=function(t){var n=x(e.ruleType||{},u,t.name);if("Select"===t.component&&Array.isArray(n))return E(t.enum,r).filter(function(e){return n.includes(e.value)}).map(function(e){return e.label}).join(", ");if("CronCycle"===t.component){var o=S.find(function(e){return e.cron===n});return _((null==o?void 0:o.label)||(n?"Customize":"No reset"),r)}return n};return l().createElement(n.Space,{size:"large",wrap:!0},i.map(function(e){return l().createElement("dl",{key:e.name,style:{margin:0,padding:0}},l().createElement("dt",null,_(e.label||e.name,r)),l().createElement("dd",{style:{marginBottom:0}},l().createElement("code",null,a(e))))}))}function k(e){var u,i,a=f(),c=n.theme.useToken().token,s=g(n.Form.useForm(),1)[0],p=g((0,o.useState)(),2),d=p[0],b=p[1],m=g((0,o.useState)(),2),h=m[0],O=m[1],S=(0,o.useMemo)(function(){var t,n;return(null==(n=e.schema)||null==(t=n["x-component-props"])?void 0:t.ruleTypes)||[]},[e.schema]),E=S.find(function(e){return"integer"===e.value})||S[0],x={type:null==E?void 0:E.value,options:P(E)},q=(0,o.useMemo)(function(){return S.map(function(e){return{value:e.value,label:_(e.label,a)}})},[S,a]),T=function(t){var n,o=(0,r.get)(null==(n=e.form)?void 0:n.getFieldValue(e.namePath),t.name),l=S.find(function(e){return e.value===(null==o?void 0:o.type)})||E;O({fieldName:t.name,initialValues:y({},P(l),(null==o?void 0:o.options)||{}),title:_((null==l?void 0:l.label)||(null==l?void 0:l.value),a),ruleType:l})},k=function(){O(void 0),s.resetFields()},F=function(){return v(function(){var t,n,o,l,u,i;return j(this,function(a){switch(a.label){case 0:return[4,s.validateFields()];case 1:if(l=a.sent(),!h)return[2];return u=(0,r.get)(null==(t=e.form)?void 0:t.getFieldValue(e.namePath),[h.fieldName,"options"])||{},i=(null==(n=h.ruleType)?void 0:n.value)==="integer"&&null!=u.key?{key:u.key}:{},null==(o=e.form)||o.setFieldValue(w(e.namePath).concat([h.fieldName,"options"]),y({},i,l)),k(),[2]}})})()};return(0,o.useEffect)(function(){h&&(s.resetFields(),s.setFieldsValue(h.initialValues))},[s,h]),l().createElement(n.Form.Item,{label:e.title,tooltip:e.tooltip,required:null==(u=e.schema)?void 0:u.required},l().createElement(n.Form.List,{name:e.namePath,rules:(null==(i=e.schema)?void 0:i.required)?[{validator:function(e,t){return v(function(){return j(this,function(e){if(!(null==t?void 0:t.length))throw Error(a("Please add at least one rule"));return[2]})})()}}]:void 0},function(o,u,i){var f,p=u.add,m=u.move,v=u.remove,y=i.errors;return l().createElement(l().Fragment,null,l().createElement(n.Table,{rowKey:"key",pagination:!1,dataSource:o,size:"small",footer:function(){return l().createElement(n.Button,{block:!0,icon:l().createElement(t.PlusOutlined,null),disabled:e.disabled,type:"dashed",onClick:function(){return p((0,r.cloneDeep)(x))}},a("Add rule"))},onRow:function(e){var t=o.findIndex(function(t){return t.key===e.key});return{onDragOver:function(e){return e.preventDefault()},onDrop:function(){void 0!==d&&d!==t&&(m(d,t),b(void 0))},onDragEnd:function(){return b(void 0)}}},columns:[{title:"",width:50,align:"center",render:function(n,r,o){return l().createElement("span",{"aria-label":a("Drag sort"),draggable:!e.disabled,onDragStart:function(){return b(o)},style:{color:"var(--ant-color-text-tertiary)",cursor:e.disabled?"not-allowed":"grab",display:"inline-flex"}},l().createElement(t.MenuOutlined,null))}},{title:a("Type"),width:260,render:function(t,r){return l().createElement(n.Form.Item,{name:[r.name,"type"],rules:[{required:!0}],style:{marginBottom:0}},l().createElement(n.Select,{disabled:e.disabled,options:q,onChange:function(t){var n,o=S.find(function(e){return e.value===t});null==(n=e.form)||n.setFieldValue(w(e.namePath).concat([r.name,"options"]),P(o))}}))}},{title:a("Rule content"),render:function(t,o){return l().createElement(n.Form.Item,{shouldUpdate:!0,noStyle:!0},function(){var t,n=(0,r.get)(null==(t=e.form)?void 0:t.getFieldValue(e.namePath),o.name),u=S.find(function(e){return e.value===(null==n?void 0:n.type)})||E;return l().createElement(C,{ruleType:u,options:null==n?void 0:n.options})})}},{title:a("Operations"),width:180,render:function(r,o){return l().createElement(n.Space,null,l().createElement(n.Button,{disabled:e.disabled,size:"small",type:"link",onClick:function(){return T(o)}},a("Configure")),l().createElement(n.Button,{"aria-label":a("Delete"),disabled:e.disabled,icon:l().createElement(t.DeleteOutlined,null),size:"small",type:"text",onClick:function(){return v(o.name)}}))}}]}),l().createElement(n.Form.ErrorList,{errors:y}),l().createElement(n.Drawer,{destroyOnClose:!0,title:null==h?void 0:h.title,open:!!h,width:640,zIndex:c.zIndexPopupBase+1e3,onClose:k,footer:l().createElement(n.Button,{type:"primary",onClick:F},a("Submit"))},l().createElement(n.Form,{key:"".concat(null==h?void 0:h.fieldName,"-").concat(null==h||null==(f=h.ruleType)?void 0:f.value),form:s,initialValues:null==h?void 0:h.initialValues,layout:"vertical",preserve:!1},l().createElement(I,{form:s,ruleType:null==h?void 0:h.ruleType,disabled:e.disabled}))))}))}function F(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function D(e){return(D=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function M(e,t){return(M=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function A(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(A=function(){return!!e})()}var N=[{value:"string",label:p("Fixed text"),defaults:{value:""},fields:[{name:"value",label:p("Text content"),component:"Input",required:!0}]},{value:"randomChar",label:p("Random character"),defaults:{length:6,charsets:["number"]},fields:[{name:"length",label:p("Length"),component:"InputNumber",componentProps:{min:1,max:32},required:!0},{name:"charsets",label:p("Character sets"),component:"Select",componentProps:{mode:"multiple",allowClear:!1},enum:[{value:"number",label:p("Number")},{value:"lowercase",label:p("Lowercase letters")},{value:"uppercase",label:p("Uppercase letters")},{value:"symbol",label:p("Symbols")}],required:!0}]},{value:"integer",label:p("Autoincrement"),defaults:{digits:4,start:1},fields:[{name:"digits",label:p("Digits"),component:"InputNumber",componentProps:{min:1,max:10},required:!0},{name:"start",label:p("Start from"),component:"InputNumber",componentProps:{min:0},required:!0},{name:"cycle",label:p("Reset cycle"),component:"CronCycle"}]},{value:"date",label:p("Date"),defaults:{format:"YYYYMMDD"},fields:[{name:"format",label:p("Date format"),component:"Input",required:!0}]}],R=function(e){if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function t(){var e,n,r;if(!(this instanceof t))throw TypeError("Cannot call a class as a function");return n=t,r=arguments,n=D(n),F(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,A()?Reflect.construct(n,r||[],D(this).constructor):n.apply(this,r)),"name","sequence"),F(e,"type","object"),F(e,"group","advanced"),F(e,"order",3),F(e,"title",p("Sequence")),F(e,"description",p("Automatically generate codes based on configured rules, supporting combinations of dates, numbers, and text.")),F(e,"sortable",!0),F(e,"default",{interface:"sequence",type:"sequence",uiSchema:{type:"string","x-component":"Input","x-component-props":{}}}),F(e,"availableTypes",["sequence"]),F(e,"hasDefaultValue",!1),F(e,"filterable",{operators:"string"}),F(e,"titleUsable",!0),F(e,"configure",{items:[{name:"unique",title:'{{t("Unique")}}',component:"Checkbox"},{name:"patterns",title:p("Sequence rules"),required:!0,Component:k,componentProps:{ruleTypes:N},defaultValue:[{type:"integer",options:{digits:4,start:1}}]},{name:"inputable",title:p("Inputable"),component:"Checkbox"},{name:"match",title:p("Match rules"),component:"Checkbox",hidden:function(e){return!e.values.inputable}}]}),e}return t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&M(t,e),t}(e.CollectionFieldInterface);function B(e,t,n,r,o,l,u){try{var i=e[l](u),a=i.value}catch(e){n(e);return}i.done?t(a):Promise.resolve(a).then(r,o)}function V(e,t,n){return(V=Y()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&z(o,n.prototype),o}).apply(null,arguments)}function $(e){return($=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function z(e,t){return(z=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function U(e){var t="function"==typeof Map?new Map:void 0;return(U=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 V(e,arguments,$(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),z(n,e)})(e)}function Y(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Y=function(){return!!e})()}var L=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;if(!(this instanceof n))throw TypeError("Cannot call a class as a function");return e=n,t=arguments,e=$(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,Y()?Reflect.construct(e,t||[],$(this).constructor):e.apply(this,t))}return n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&z(n,e),t=[{key:"load",value:function(){var e;return(e=function(){var e,t;return function(e,t){var n,r,o,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},u=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(u,"next",{value:a(0)}),i(u,"throw",{value:a(1)}),i(u,"return",{value:a(2)}),"function"==typeof Symbol&&i(u,Symbol.iterator,{value:function(){return this}}),u;function a(i){return function(a){var c=[i,a];if(n)throw TypeError("Generator is already executing.");for(;u&&(u=0,c[0]&&(l=0)),l;)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 l.label++,{value:c[1],done:!1};case 5:l.label++,r=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(o=(o=l.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){l.label=c[1];break}if(6===c[0]&&l.label<o[1]){l.label=o[1],o=c;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(c);break}o[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}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}}}}(this,function(n){return this.app.addFieldInterfaces([R]),null==(t=this.app.pm.get("calendar"))||null==(e=t.registerTitleFieldInterface)||e.call(t,"sequence"),u.EditableItemModel.bindModelToInterface("InputFieldModel",["sequence"],{isDefault:!0}),u.DisplayItemModel.bindModelToInterface("DisplayTextFieldModel",["sequence"],{isDefault:!0}),u.FilterableItemModel.bindModelToInterface("InputFieldModel",["sequence"],{isDefault:!0}),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var l=e.apply(t,n);function u(e){B(l,r,o,u,i,"next",e)}function i(e){B(l,r,o,u,i,"throw",e)}u(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)}}(n.prototype,t),n}(U(e.Plugin))}(),d}()});
@@ -9,18 +9,18 @@
9
9
 
10
10
  module.exports = {
11
11
  "react": "18.2.0",
12
- "@nocobase/client": "2.3.0-alpha.1",
13
- "@nocobase/flow-engine": "2.3.0-alpha.1",
12
+ "@nocobase/client": "2.3.0-beta.10",
13
+ "@nocobase/flow-engine": "2.3.0-beta.10",
14
14
  "@formily/antd-v5": "1.2.3",
15
15
  "@formily/core": "2.3.7",
16
16
  "@formily/react": "2.3.7",
17
- "@nocobase/utils": "2.3.0-alpha.1",
17
+ "@nocobase/utils": "2.3.0-beta.10",
18
18
  "antd": "5.24.2",
19
19
  "react-i18next": "11.18.6",
20
20
  "@ant-design/icons": "5.6.1",
21
- "@nocobase/client-v2": "2.3.0-alpha.1",
21
+ "@nocobase/client-v2": "2.3.0-beta.10",
22
22
  "lodash": "4.18.1",
23
- "@nocobase/server": "2.3.0-alpha.1",
24
- "@nocobase/database": "2.3.0-alpha.1",
23
+ "@nocobase/server": "2.3.0-beta.10",
24
+ "@nocobase/database": "2.3.0-beta.10",
25
25
  "dayjs": "1.11.13"
26
26
  };
@@ -1 +1 @@
1
- {"name":"cron-parser","version":"4.4.0","description":"Node.js library for parsing crontab instructions","main":"lib/parser.js","types":"index.d.ts","typesVersions":{"<4.1":{"*":["types/ts3/*"]}},"directories":{"test":"test"},"scripts":{"test:tsd":"tsd","test:unit":"TZ=UTC tap ./test/*.js","test:cover":"TZ=UTC tap --coverage-report=html ./test/*.js","lint":"eslint .","lint:fix":"eslint --fix .","test":"npm run lint && npm run test:unit && npm run test:tsd"},"repository":{"type":"git","url":"https://github.com/harrisiirak/cron-parser.git"},"keywords":["cron","crontab","parser"],"author":"Harri Siirak","contributors":["Nicholas Clawson","Daniel Prentis <daniel@salsitasoft.com>","Renault John Lecoultre","Richard Astbury <richard.astbury@gmail.com>","Meaglin Wasabi <Meaglin.wasabi@gmail.com>","Mike Kusold <hello@mikekusold.com>","Alex Kit <alex.kit@atmajs.com>","Santiago Gimeno <santiago.gimeno@gmail.com>","Daniel <darc.tec@gmail.com>","Christian Steininger <christian.steininger.cs@gmail.com>","Mykola Piskovyi <m.piskovyi@gmail.com>","Brian Vaughn <brian.david.vaughn@gmail.com>","Nicholas Clawson <nickclaw@gmail.com>","Yasuhiroki <yasuhiroki.duck@gmail.com>","Nicholas Clawson <nickclaw@gmail.com>","Brendan Warkentin <faazshift@gmail.com>","Charlie Fish <fishcharlie.code@gmail.com>","Ian Graves <ian+diskimage@iangrav.es>","Andy Thompson <me@andytson.com>","Regev Brody <regevbr@gmail.com>"],"license":"MIT","dependencies":{"luxon":"^1.28.0"},"devDependencies":{"eslint":"^8.2.0","sinon":"^10.0.0","tap":"^16.0.1","tsd":"^0.19.0"},"engines":{"node":">=0.8"},"browser":{"fs":false},"tap":{"check-coverage":false},"tsd":{"directory":"test","compilerOptions":{"lib":["es2017","dom"]}},"_lastModified":"2026-07-16T12:57:37.393Z"}
1
+ {"name":"cron-parser","version":"4.4.0","description":"Node.js library for parsing crontab instructions","main":"lib/parser.js","types":"index.d.ts","typesVersions":{"<4.1":{"*":["types/ts3/*"]}},"directories":{"test":"test"},"scripts":{"test:tsd":"tsd","test:unit":"TZ=UTC tap ./test/*.js","test:cover":"TZ=UTC tap --coverage-report=html ./test/*.js","lint":"eslint .","lint:fix":"eslint --fix .","test":"npm run lint && npm run test:unit && npm run test:tsd"},"repository":{"type":"git","url":"https://github.com/harrisiirak/cron-parser.git"},"keywords":["cron","crontab","parser"],"author":"Harri Siirak","contributors":["Nicholas Clawson","Daniel Prentis <daniel@salsitasoft.com>","Renault John Lecoultre","Richard Astbury <richard.astbury@gmail.com>","Meaglin Wasabi <Meaglin.wasabi@gmail.com>","Mike Kusold <hello@mikekusold.com>","Alex Kit <alex.kit@atmajs.com>","Santiago Gimeno <santiago.gimeno@gmail.com>","Daniel <darc.tec@gmail.com>","Christian Steininger <christian.steininger.cs@gmail.com>","Mykola Piskovyi <m.piskovyi@gmail.com>","Brian Vaughn <brian.david.vaughn@gmail.com>","Nicholas Clawson <nickclaw@gmail.com>","Yasuhiroki <yasuhiroki.duck@gmail.com>","Nicholas Clawson <nickclaw@gmail.com>","Brendan Warkentin <faazshift@gmail.com>","Charlie Fish <fishcharlie.code@gmail.com>","Ian Graves <ian+diskimage@iangrav.es>","Andy Thompson <me@andytson.com>","Regev Brody <regevbr@gmail.com>"],"license":"MIT","dependencies":{"luxon":"^1.28.0"},"devDependencies":{"eslint":"^8.2.0","sinon":"^10.0.0","tap":"^16.0.1","tsd":"^0.19.0"},"engines":{"node":">=0.8"},"browser":{"fs":false},"tap":{"check-coverage":false},"tsd":{"directory":"test","compilerOptions":{"lib":["es2017","dom"]}},"_lastModified":"2026-09-15T04:37:59.435Z"}
@@ -152,15 +152,11 @@ class PluginFieldSequenceServer extends import_server.Plugin {
152
152
  );
153
153
  return;
154
154
  }
155
- const [record] = await collection.model.findAll({
156
- order: [[(autoIncrementField == null ? void 0 : autoIncrementField.name) ?? (createAtField == null ? void 0 : createAtField.name), "DESC"]],
157
- limit: 1
158
- });
159
- if (!record) {
160
- app.log.warn(`Collection [${collection.name}] has no records. Skipping sequences repair.`);
161
- return;
162
- }
163
155
  const sequencesFieldSet = import_lodash.default.uniq(sequencesList.map(({ field }) => field));
156
+ const primaryKeyFields = fields.filter((field) => field.options.primaryKey);
157
+ const sortablePrimaryKeyFields = primaryKeyFields.filter(
158
+ (field) => field.type === "bigInt" || field.type === "snowflakeId"
159
+ );
164
160
  for (const sequencesField of sequencesFieldSet) {
165
161
  const field = fieldMap[sequencesField];
166
162
  app.log.info(
@@ -178,7 +174,89 @@ class PluginFieldSequenceServer extends import_server.Plugin {
178
174
  );
179
175
  continue;
180
176
  }
181
- await field.update(record, { overwrite: true });
177
+ const selectedFields = import_lodash.default.uniq([
178
+ field.name,
179
+ ...primaryKeyFields.map((primaryKeyField) => primaryKeyField.name),
180
+ ...createAtField ? [createAtField.name] : []
181
+ ]);
182
+ const latestRecordOrderField = createAtField ?? autoIncrementField;
183
+ const latestRecordOrder = [
184
+ [latestRecordOrderField.name, "DESC"],
185
+ ...sortablePrimaryKeyFields.filter((primaryKeyField) => primaryKeyField !== latestRecordOrderField).map((primaryKeyField) => [primaryKeyField.name, "DESC"])
186
+ ];
187
+ const latestRecordFilter = {
188
+ [field.name]: { $ne: null },
189
+ ...createAtField ? { [createAtField.name]: { $ne: null } } : {}
190
+ };
191
+ const chunkSize = 1e3;
192
+ const latestRecordQuery = {
193
+ fields: selectedFields,
194
+ filter: latestRecordFilter,
195
+ order: latestRecordOrder
196
+ };
197
+ latestRecordQuery["parseSort"] = false;
198
+ const [latestCandidate] = await collection.repository.find({ ...latestRecordQuery, limit: 1 });
199
+ let latestRecord = latestCandidate && field.match(latestCandidate.get(field.name)) ? latestCandidate : void 0;
200
+ let offset = 1;
201
+ while (!latestRecord && latestCandidate) {
202
+ const records = await collection.repository.find({
203
+ ...latestRecordQuery,
204
+ limit: chunkSize,
205
+ offset
206
+ });
207
+ latestRecord = records.find((record) => field.match(record.get(field.name)));
208
+ if (latestRecord || records.length < chunkSize) {
209
+ break;
210
+ }
211
+ offset += chunkSize;
212
+ }
213
+ if (!latestRecord) {
214
+ app.log.warn(
215
+ `Collection [${collection.name}] field [${field.name}] has no valid sequence records. Skipping sequences repair.`
216
+ );
217
+ continue;
218
+ }
219
+ const state = field.createRepairState();
220
+ if (!createAtField) {
221
+ field.collectRepairState(latestRecord, state);
222
+ await field.saveRepairState(state);
223
+ continue;
224
+ }
225
+ const latestCreatedAt = latestRecord.get(createAtField.name);
226
+ if (!(latestCreatedAt instanceof Date) || Number.isNaN(latestCreatedAt.getTime())) {
227
+ app.log.warn(
228
+ `Collection [${collection.name}] field [${field.name}] latest record has an invalid createdAt. Skipping sequences repair.`
229
+ );
230
+ continue;
231
+ }
232
+ const secondStart = new Date(Math.floor(latestCreatedAt.getTime() / 1e3) * 1e3);
233
+ const secondEnd = new Date(secondStart.getTime() + 1e3);
234
+ const latestBatchQuery = {
235
+ fields: selectedFields,
236
+ filter: {
237
+ [field.name]: { $ne: null },
238
+ [createAtField.name]: {
239
+ $gte: secondStart,
240
+ $lt: secondEnd
241
+ }
242
+ }
243
+ };
244
+ const collectRecords = async (records) => {
245
+ for (const record of records) {
246
+ field.collectRepairState(record, state, createAtField.name);
247
+ }
248
+ };
249
+ if (!app.db.inDialect("sqlite") && primaryKeyFields.length && primaryKeyFields.length === sortablePrimaryKeyFields.length) {
250
+ await collection.repository.chunkWithCursor({
251
+ ...latestBatchQuery,
252
+ chunkSize,
253
+ callback: collectRecords
254
+ });
255
+ } else {
256
+ latestBatchQuery["parseSort"] = false;
257
+ await collectRecords(await collection.repository.find(latestBatchQuery));
258
+ }
259
+ await field.saveRepairState(state);
182
260
  }
183
261
  });
184
262
  }
@@ -23,6 +23,13 @@ export interface Pattern {
23
23
  }): Promise<void>;
24
24
  }
25
25
  export declare const sequencePatterns: Registry<Pattern>;
26
+ export interface IntegerSequenceRepairState {
27
+ current: bigint;
28
+ lastGeneratedAt: Date;
29
+ cycleStart?: Date;
30
+ cycleEnd?: Date;
31
+ }
32
+ export type SequenceRepairState = Map<number, IntegerSequenceRepairState>;
26
33
  interface PatternConfig {
27
34
  type: string;
28
35
  title?: string;
@@ -41,6 +48,9 @@ export declare class SequenceField extends Field {
41
48
  setGroupValue: (instances: Model[], options: any) => Promise<void>;
42
49
  cleanHook: (_: any, options: any) => void;
43
50
  match(value: any): RegExpMatchArray;
51
+ createRepairState(): SequenceRepairState;
52
+ collectRepairState(instance: Model, state: SequenceRepairState, createdAtField?: string): void;
53
+ saveRepairState(state: SequenceRepairState): Promise<void>;
44
54
  update(instance: Model, options: any): Promise<void>;
45
55
  bind(): void;
46
56
  unbind(): void;
@@ -64,6 +64,47 @@ function parseBigInt(str, radix = 10) {
64
64
  }
65
65
  return negative ? -result : result;
66
66
  }
67
+ function getCycleBounds(recordTime, cycle) {
68
+ const interval = import_cron_parser.default.parseExpression(cycle, { currentDate: recordTime });
69
+ const previous = interval.prev();
70
+ const next = interval.next();
71
+ if (next.getTime() === recordTime.getTime()) {
72
+ return {
73
+ cycleStart: new Date(next.getTime()),
74
+ cycleEnd: new Date(interval.next().getTime())
75
+ };
76
+ }
77
+ return {
78
+ cycleStart: new Date(previous.getTime()),
79
+ cycleEnd: new Date(next.getTime())
80
+ };
81
+ }
82
+ function mergeSequenceRepairState(state, current, recordTime, cycle) {
83
+ if (!state) {
84
+ return {
85
+ current,
86
+ lastGeneratedAt: recordTime,
87
+ ...cycle ? getCycleBounds(recordTime, cycle) : {}
88
+ };
89
+ }
90
+ if (cycle) {
91
+ const cycleBounds = state.cycleStart && state.cycleEnd ? { cycleStart: state.cycleStart, cycleEnd: state.cycleEnd } : getCycleBounds(state.lastGeneratedAt, cycle);
92
+ if (recordTime.getTime() >= cycleBounds.cycleEnd.getTime()) {
93
+ return {
94
+ current,
95
+ lastGeneratedAt: recordTime,
96
+ ...getCycleBounds(recordTime, cycle)
97
+ };
98
+ }
99
+ if (recordTime.getTime() < cycleBounds.cycleStart.getTime()) {
100
+ return state;
101
+ }
102
+ }
103
+ if (current > state.current) {
104
+ return { ...state, current, lastGeneratedAt: recordTime };
105
+ }
106
+ return state;
107
+ }
67
108
  sequencePatterns.register("string", {
68
109
  validate(options) {
69
110
  if (!(options == null ? void 0 : options.value)) {
@@ -445,6 +486,54 @@ class SequenceField extends import_database.Field {
445
486
  match(value) {
446
487
  return typeof value === "string" ? value.match(this.matcher) : null;
447
488
  }
489
+ createRepairState() {
490
+ return /* @__PURE__ */ new Map();
491
+ }
492
+ collectRepairState(instance, state, createdAtField) {
493
+ const { name, patterns } = this.options;
494
+ const matched = this.match(instance.get(name));
495
+ if (!matched) {
496
+ return;
497
+ }
498
+ const recordTime = instance.get(createdAtField ?? "createdAt");
499
+ const generatedAt = recordTime ?? /* @__PURE__ */ new Date();
500
+ patterns.forEach((pattern, index) => {
501
+ if (pattern.type !== "integer") {
502
+ return;
503
+ }
504
+ const { base = 10, cycle, key } = pattern.options;
505
+ const current = parseBigInt(matched[index + 1], base);
506
+ state.set(key, mergeSequenceRepairState(state.get(key), current, generatedAt, cycle));
507
+ });
508
+ }
509
+ async saveRepairState(state) {
510
+ const SeqRepo = this.database.getRepository("sequences");
511
+ for (const [key, values] of state) {
512
+ const lastSeq = await SeqRepo.findOne({
513
+ filter: {
514
+ collection: this.collection.name,
515
+ field: this.name,
516
+ key
517
+ }
518
+ });
519
+ if (lastSeq) {
520
+ await lastSeq.update({
521
+ current: values.current,
522
+ lastGeneratedAt: values.lastGeneratedAt
523
+ });
524
+ } else {
525
+ await SeqRepo.create({
526
+ values: {
527
+ collection: this.collection.name,
528
+ field: this.name,
529
+ key,
530
+ current: values.current,
531
+ lastGeneratedAt: values.lastGeneratedAt
532
+ }
533
+ });
534
+ }
535
+ }
536
+ }
448
537
  async update(instance, options) {
449
538
  const { name, patterns } = this.options;
450
539
  const matched = this.match(instance.get(name));
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "description": "Automatically generate codes based on configured rules, supporting combinations of dates, numbers, and text.",
7
7
  "description.ru-RU": "Автоматически генерирует коды по заданным правилам с поддержкой комбинаций дат, чисел и текста.",
8
8
  "description.zh-CN": "根据配置的规则自动生成编码,支持日期、数字、文本的组合。",
9
- "version": "2.3.0-alpha.1",
9
+ "version": "2.3.0-beta.10",
10
10
  "license": "Apache-2.0",
11
11
  "main": "./dist/server/index.js",
12
12
  "homepage": "https://docs.nocobase.com/handbook/field-sequence",
@@ -33,7 +33,7 @@
33
33
  "@nocobase/test": "2.x",
34
34
  "@nocobase/utils": "2.x"
35
35
  },
36
- "gitHead": "2377df8ceb12549149017f7f14a61207bf6e49a2",
36
+ "gitHead": "7aa3dce6cf3201752882f7012c72997898015d89",
37
37
  "keywords": [
38
38
  "Collection fields"
39
39
  ]