@nocobase/plugin-field-sequence 1.9.0-beta.9 → 2.0.0-alpha.3

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("react"),require("@formily/core"),require("@formily/react"),require("@formily/antd-v5"),require("@nocobase/client"),require("@nocobase/utils/client"),require("antd"),require("react-i18next")):"function"==typeof define&&define.amd?define("@nocobase/plugin-field-sequence",["react","@formily/core","@formily/react","@formily/antd-v5","@nocobase/client","@nocobase/utils/client","antd","react-i18next"],t):"object"==typeof exports?exports["@nocobase/plugin-field-sequence"]=t(require("react"),require("@formily/core"),require("@formily/react"),require("@formily/antd-v5"),require("@nocobase/client"),require("@nocobase/utils/client"),require("antd"),require("react-i18next")):e["@nocobase/plugin-field-sequence"]=t(e.react,e["@formily/core"],e["@formily/react"],e["@formily/antd-v5"],e["@nocobase/client"],e["@nocobase/utils/client"],e.antd,e["react-i18next"])}(self,function(e,t,n,r,o,c,a,i){return function(){"use strict";var u={632:function(e){e.exports=r},563:function(e){e.exports=t},505:function(e){e.exports=n},772:function(e){e.exports=o},584:function(e){e.exports=c},721:function(e){e.exports=a},156:function(t){t.exports=e},238:function(e){e.exports=i}},l={};function s(e){var t=l[e];if(void 0!==t)return t.exports;var n=l[e]={exports:{}};return u[e](n,n.exports,s),n.exports}s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,{a:t}),t},s.d=function(e,t){for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var p={};return!function(){s.r(p),s.d(p,{PluginFieldSequenceClient:function(){return _},default:function(){return R}});var e,t=s(772),n=s(156),r=s.n(n),o=s(632),c=s(563),a=s(505),i=s(584),u=s(721),l=s(238),f="field-sequence";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}function d(e){return(d=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}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){m(e,t,n[t])})}return e}function b(e,t){return(b=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function v(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function h(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(h=function(){return!!e})()}function x(){var e=v(["\n display: flex;\n gap: 1em;\n flex-wrap: wrap;\n "]);return x=function(){return e},e}function g(){var e=v(["\n margin: 0;\n padding: 0;\n "]);return g=function(){return e},e}function O(){var e=v(["\n margin-bottom: 0;\n "]);return O=function(){return e},e}function j(){var e=v(["\n justify-content: flex-end;\n "]);return j=function(){return e},e}function w(){var e=v(["\n > *:not(:last-child) {\n margin-right: 0.5em;\n }\n button {\n padding: 0;\n }\n "]);return w=function(){return e},e}function S(e){var n=(0,t.useCompile)(),i=(0,a.useForm)().setValuesIn,l=o.ArrayTable.useIndex();return(0,a.useFormEffects)(function(){(0,c.onFieldValueChange)("patterns.".concat(l,".type"),function(e){var t=E[e.value];i("patterns.".concat(l,".options"),t.defaults?y({},t.defaults):{})})}),r().createElement(u.Select,y({popupMatchSelectWidth:!1},e),Object.keys(E).map(function(e){return r().createElement(u.Select.Option,{key:e,value:e},n(E[e].title))}))}function P(){var e=(0,t.useCompile)(),n=(0,a.useForm)().values,c=o.ArrayTable.useIndex(),i=n.patterns[c],u=i.type,l=i.options,s=E[u];return r().createElement("div",{className:(0,t.css)(x())},Object.keys(l).filter(function(e){return void 0!==l[e]&&s.optionRenders[e]}).map(function(n){var o=s.optionRenders[n],c=s.fieldset[n].title;return o?r().createElement("dl",{key:n,className:(0,t.css)(g())},r().createElement("dt",null,e(c)),r().createElement("dd",{className:(0,t.css)(O())},r().createElement(o,{key:n,value:l[n]}))):null}))}var E={string:{title:'{{t("Fixed text", { ns: "'.concat(f,'" })}}'),optionRenders:{value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{value:""};return r().createElement("code",null,e.value)}},fieldset:{value:{type:"string",title:'{{t("Text content", { ns: "'.concat(f,'" })}}'),"x-decorator":"FormItem","x-component":"Input"}}},randomChar:{title:'{{t("Random character", { ns: "'.concat(f,'" })}}'),optionRenders:{length:function(e){var t=e.value;return r().createElement("code",null,t)},charsets:function(e){var t=e.value,n=(0,l.useTranslation)().t,o={number:n("Number",{ns:f}),lowercase:n("Lowercase letters",{ns:f}),uppercase:n("Uppercase letters",{ns:f}),symbol:n("Symbols",{ns:f})};return r().createElement("code",null,(null==t?void 0:t.map(function(e){return o[e]}).join(", "))||n("Number",{ns:f}))}},fieldset:{length:{type:"number",title:'{{t("Length", { ns: "'.concat(f,'" })}}'),description:'{{t("Will generate random characters with specified length.", { ns: "'.concat(f,'" })}}'),"x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{min:1,max:32},required:!0,default:6},charsets:{type:"array",title:'{{t("Character sets", { ns: "'.concat(f,'" })}}'),description:'{{t("Select character sets to generate random characters.", { ns: "'.concat(f,'" })}}'),"x-decorator":"FormItem","x-component":"Select","x-component-props":{mode:"multiple",allowClear:!1},enum:[{value:"number",label:'{{t("Number", { ns: "'.concat(f,'" })}}')},{value:"lowercase",label:'{{t("Lowercase letters", { ns: "'.concat(f,'" })}}')},{value:"uppercase",label:'{{t("Uppercase letters", { ns: "'.concat(f,'" })}}')},{value:"symbol",label:'{{t("Symbols", { ns: "'.concat(f,'" })}}')}],required:!0,default:["number"],"x-validator":{minItems:1,message:'{{t("At least one character set should be selected", { ns: "'.concat(f,'" })}}')}}},defaults:{length:6,charsets:["number"]}},integer:{title:'{{t("Autoincrement", { ns: "'.concat(f,'" })}}'),optionRenders:{digits:function(e){var t=e.value;return r().createElement("code",null,t)},start:function(e){var t=e.value;return r().createElement("code",null,t)},cycle:t.Cron.ReadPretty},fieldset:{digits:{type:"number",title:'{{t("Digits", { ns: "'.concat(f,'" })}}'),"x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{min:1,max:10},required:!0,default:1,"x-reactions":{target:"start",fulfill:{schema:{"x-component-props.max":"{{ 10 ** $self.value - 1 }}"}}}},start:{type:"number",title:'{{t("Start from", { ns: "'.concat(f,'" })}}'),"x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{min:0},required:!0,default:0},cycle:(m(e={type:"string",title:'{{t("Reset cycle", { ns: "'.concat(f,'" })}}'),"x-decorator":"FormItem"},"x-component",function(e){var n=e.value,o=e.onChange,c=[{label:"No reset",value:0},{label:"Daily",value:1,cron:"0 0 * * *"},{label:"Every Monday",value:2,cron:"0 0 * * 1"},{label:"Monthly",value:3,cron:"0 0 1 * *"},{label:"Yearly",value:4,cron:"0 0 1 1 *"},{label:"Customize",value:5,cron:"* * * * *"}],a=void 0===n?c[0]:c.find(function(e){return e.cron==n})||c[5];return r().createElement("fieldset",null,r().createElement(u.Select,{value:a.value,onChange:function(e){return o(c[e].cron)}},c.map(function(e){return r().createElement(u.Select.Option,{key:e.value,value:e.value},function(e){var n,r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.i18n.t(e,(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}({},o),r=r={ns:f},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))}(e.label))})),5===a.value?r().createElement(t.Cron,{value:n,onChange:o,clearButton:!1}):null)}),m(e,"default",null),e)},defaults:{digits:4,start:1}},date:{title:'{{t("Date", { ns: "'.concat(f,'" })}}'),optionRenders:{format:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{value:"YYYYMMDD"};return r().createElement("code",null,e.value)}},fieldset:{format:{type:"string",title:'{{t("Date format", { ns: "'.concat(f,'" })}}'),description:'{{t(\'Supports all formats of the Day.js library, such as "YYYYMMDD", "YYYY-MM-DD", etc.\', { ns: "'.concat(f,'" })}}'),"x-decorator":"FormItem","x-component":"Input",default:"YYYYMMDD"}},defaults:{format:"YYYYMMDD"}}};function q(){var e=(0,l.useTranslation)().t,c=(0,t.useCompile)(),s=(0,n.useContext)(a.SchemaOptionsContext),p=(0,a.useForm)(),f=p.values,m=p.setValuesIn,d=o.ArrayTable.useIndex(),b=f.patterns[d],v=b.type,h=b.options,x=E[v],g=(0,t.useToken)().token;return(null==x?void 0:x.fieldset)?r().createElement(u.Button,{type:"link",onClick:function(){(0,o.FormDrawer)({title:c(x.title),zIndex:g.zIndexPopupBase+1e3},function(){return r().createElement(o.FormLayout,{layout:"vertical"},r().createElement(t.SchemaComponentOptions,{scope:s.scope,components:s.components},r().createElement(t.SchemaComponent,{schema:{type:"object","x-component":"fieldset",properties:x.fieldset}})),r().createElement(o.FormDrawer.Footer,null,r().createElement(o.FormButtonGroup,{className:(0,t.css)(j())},r().createElement(o.Submit,{onSubmit:function(e){return e}},e("Submit")))))}).open({initialValues:h}).then(function(e){m("patterns.".concat(d),{type:v,options:y({},e)})}).catch(function(e){(0,i.error)(e)})}},e("Configure")):null}var C=function(e){if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function n(){var e,r,o,c,a;if(!(this instanceof n))throw TypeError("Cannot call a class as a function");return r=n,o=arguments,r=d(r),m(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,h()?Reflect.construct(r,o||[],d(this).constructor):r.apply(this,o)),"name","sequence"),m(e,"type","object"),m(e,"group","advanced"),m(e,"order",3),m(e,"title",'{{t("Sequence", { ns: "'.concat(f,'" })}}')),m(e,"description",'{{t("Automatically generate codes based on configured rules, supporting combinations of dates, numbers, and text.", { ns: "'.concat(f,'" })}}')),m(e,"sortable",!0),m(e,"default",{type:"sequence",uiSchema:{type:"string","x-component":"Input","x-component-props":{}}}),m(e,"availableTypes",["string"]),m(e,"hasDefaultValue",!1),m(e,"filterable",{operators:t.interfacesProperties.operators.string}),m(e,"titleUsable",!0),m(e,"properties",(c=y({},t.interfacesProperties.defaultProps),a=a={unique:t.interfacesProperties.unique,patterns:{type:"array",title:'{{t("Sequence rules", { ns: "'.concat(f,'" })}}'),required:!0,"x-decorator":"FormItem","x-component":"ArrayTable",items:{type:"object",properties:{sort:{type:"void","x-component":"ArrayTable.Column","x-component-props":{width:50,title:"",align:"center"},properties:{sort:{type:"void","x-component":"ArrayTable.SortHandle"}}},type:{type:"void","x-component":"ArrayTable.Column","x-component-props":{title:'{{t("Type", { ns: "'.concat(f,'" })}}')},properties:{type:{type:"string",name:"type",required:!0,"x-decorator":"FormItem","x-component":S}}},options:{type:"void","x-component":"ArrayTable.Column","x-component-props":{title:'{{t("Rule content", { ns: "'.concat(f,'" })}}')},properties:{options:{type:"object",name:"options","x-component":P}}},operations:{type:"void","x-component":"ArrayTable.Column","x-component-props":{title:'{{t("Operations", { ns: "'.concat(f,'" })}}'),dataIndex:"operations",fixed:"right",className:(0,t.css)(w())},properties:{config:{type:"void",properties:{options:{type:"object","x-component":q}}},remove:{type:"void","x-component":"ArrayTable.Remove"}}}}},properties:{add:{type:"void","x-component":"ArrayTable.Addition","x-component-props":{defaultValue:{type:"integer",options:y({},E.integer.defaults)}},title:'{{t("Add rule", { ns: "'.concat(f,'" })}}')}}},inputable:{type:"boolean",title:'{{t("Inputable", { ns: "'.concat(f,'" })}}'),"x-decorator":"FormItem","x-component":"Checkbox"},match:{type:"boolean",title:'{{t("Match rules", { ns: "'.concat(f,'" })}}'),"x-decorator":"FormItem","x-component":"Checkbox","x-reactions":{dependencies:["inputable"],fulfill:{state:{value:"{{$deps[0] && $self.value}}",visible:"{{$deps[0] === true}}"}}}}},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(a)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(a)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(a,e))}),c)),e}return n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&b(n,e),n}(t.CollectionFieldInterface),I=function(e){return r().createElement(t.SchemaComponentOptions,{components:{RuleConfigForm:q}},e.children)};function F(e,t,n,r,o,c,a){try{var i=e[c](a),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,o)}function D(e,t,n){return(D=M()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&k(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 k(e,t){return(k=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Y(e){var t="function"==typeof Map?new Map:void 0;return(Y=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 D(e,arguments,T(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),k(n,e)})(e)}function M(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(M=function(){return!!e})()}var _=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=T(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,M()?Reflect.construct(e,t||[],T(this).constructor):e.apply(this,t))}return n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&k(n,e),t=[{key:"load",value:function(){var e,t=this;return(e=function(){return function(e,t){var n,r,o,c,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return c={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(c[Symbol.iterator]=function(){return this}),c;function i(c){return function(i){var u=[c,i];if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(e){return t.app.use(I),t.app.dataSourceManager.addFieldInterfaces([C]),t.app.pm.get("calendar").registerTitleFieldInterface("sequence"),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var c=e.apply(t,n);function a(e){F(c,r,o,a,i,"next",e)}function i(e){F(c,r,o,a,i,"throw",e)}a(void 0)})})()}}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(n.prototype,t),n}(Y(t.Plugin)),R=_}(),p}()});
10
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("@formily/core"),require("@nocobase/flow-engine"),require("@formily/antd-v5"),require("@formily/react"),require("@nocobase/client"),require("@nocobase/utils/client"),require("antd"),require("react-i18next")):"function"==typeof define&&define.amd?define("@nocobase/plugin-field-sequence",["react","@formily/core","@nocobase/flow-engine","@formily/antd-v5","@formily/react","@nocobase/client","@nocobase/utils/client","antd","react-i18next"],t):"object"==typeof exports?exports["@nocobase/plugin-field-sequence"]=t(require("react"),require("@formily/core"),require("@nocobase/flow-engine"),require("@formily/antd-v5"),require("@formily/react"),require("@nocobase/client"),require("@nocobase/utils/client"),require("antd"),require("react-i18next")):e["@nocobase/plugin-field-sequence"]=t(e.react,e["@formily/core"],e["@nocobase/flow-engine"],e["@formily/antd-v5"],e["@formily/react"],e["@nocobase/client"],e["@nocobase/utils/client"],e.antd,e["react-i18next"])}(self,function(e,t,n,r,o,c,a,i,u){return function(){"use strict";var l={632:function(e){e.exports=r},563:function(e){e.exports=t},505:function(e){e.exports=o},772:function(e){e.exports=c},667:function(e){e.exports=n},584:function(e){e.exports=a},721:function(e){e.exports=i},156:function(t){t.exports=e},238:function(e){e.exports=u}},s={};function p(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}};return l[e](n,n.exports,p),n.exports}p.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return p.d(t,{a:t}),t},p.d=function(e,t){for(var n in t)p.o(t,n)&&!p.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},p.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},p.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var f={};return!function(){p.r(f),p.d(f,{PluginFieldSequenceClient:function(){return R},default:function(){return A}});var e,t=p(772),n=p(156),r=p.n(n),o=p(632),c=p(563),a=p(505),i=p(584),u=p(721),l=p(238),s="field-sequence";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}function d(e){return(d=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}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){m(e,t,n[t])})}return e}function b(e,t){return(b=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function v(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function h(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(h=function(){return!!e})()}function g(){var e=v(["\n display: flex;\n gap: 1em;\n flex-wrap: wrap;\n "]);return g=function(){return e},e}function x(){var e=v(["\n margin: 0;\n padding: 0;\n "]);return x=function(){return e},e}function O(){var e=v(["\n margin-bottom: 0;\n "]);return O=function(){return e},e}function j(){var e=v(["\n justify-content: flex-end;\n "]);return j=function(){return e},e}function w(){var e=v(["\n > *:not(:last-child) {\n margin-right: 0.5em;\n }\n button {\n padding: 0;\n }\n "]);return w=function(){return e},e}function S(e){var n=(0,t.useCompile)(),i=(0,a.useForm)().setValuesIn,l=o.ArrayTable.useIndex();return(0,a.useFormEffects)(function(){(0,c.onFieldValueChange)("patterns.".concat(l,".type"),function(e){var t=E[e.value];i("patterns.".concat(l,".options"),t.defaults?y({},t.defaults):{})})}),r().createElement(u.Select,y({popupMatchSelectWidth:!1},e),Object.keys(E).map(function(e){return r().createElement(u.Select.Option,{key:e,value:e},n(E[e].title))}))}function P(){var e=(0,t.useCompile)(),n=(0,a.useForm)().values,c=o.ArrayTable.useIndex(),i=n.patterns[c],u=i.type,l=i.options,s=E[u];return r().createElement("div",{className:(0,t.css)(g())},Object.keys(l).filter(function(e){return void 0!==l[e]&&s.optionRenders[e]}).map(function(n){var o=s.optionRenders[n],c=s.fieldset[n].title;return o?r().createElement("dl",{key:n,className:(0,t.css)(x())},r().createElement("dt",null,e(c)),r().createElement("dd",{className:(0,t.css)(O())},r().createElement(o,{key:n,value:l[n]}))):null}))}var E={string:{title:'{{t("Fixed text", { ns: "'.concat(s,'" })}}'),optionRenders:{value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{value:""};return r().createElement("code",null,e.value)}},fieldset:{value:{type:"string",title:'{{t("Text content", { ns: "'.concat(s,'" })}}'),"x-decorator":"FormItem","x-component":"Input"}}},randomChar:{title:'{{t("Random character", { ns: "'.concat(s,'" })}}'),optionRenders:{length:function(e){var t=e.value;return r().createElement("code",null,t)},charsets:function(e){var t=e.value,n=(0,l.useTranslation)().t,o={number:n("Number",{ns:s}),lowercase:n("Lowercase letters",{ns:s}),uppercase:n("Uppercase letters",{ns:s}),symbol:n("Symbols",{ns:s})};return r().createElement("code",null,(null==t?void 0:t.map(function(e){return o[e]}).join(", "))||n("Number",{ns:s}))}},fieldset:{length:{type:"number",title:'{{t("Length", { ns: "'.concat(s,'" })}}'),description:'{{t("Will generate random characters with specified length.", { ns: "'.concat(s,'" })}}'),"x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{min:1,max:32},required:!0,default:6},charsets:{type:"array",title:'{{t("Character sets", { ns: "'.concat(s,'" })}}'),description:'{{t("Select character sets to generate random characters.", { ns: "'.concat(s,'" })}}'),"x-decorator":"FormItem","x-component":"Select","x-component-props":{mode:"multiple",allowClear:!1},enum:[{value:"number",label:'{{t("Number", { ns: "'.concat(s,'" })}}')},{value:"lowercase",label:'{{t("Lowercase letters", { ns: "'.concat(s,'" })}}')},{value:"uppercase",label:'{{t("Uppercase letters", { ns: "'.concat(s,'" })}}')},{value:"symbol",label:'{{t("Symbols", { ns: "'.concat(s,'" })}}')}],required:!0,default:["number"],"x-validator":{minItems:1,message:'{{t("At least one character set should be selected", { ns: "'.concat(s,'" })}}')}}},defaults:{length:6,charsets:["number"]}},integer:{title:'{{t("Autoincrement", { ns: "'.concat(s,'" })}}'),optionRenders:{digits:function(e){var t=e.value;return r().createElement("code",null,t)},start:function(e){var t=e.value;return r().createElement("code",null,t)},cycle:t.Cron.ReadPretty},fieldset:{digits:{type:"number",title:'{{t("Digits", { ns: "'.concat(s,'" })}}'),"x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{min:1,max:10},required:!0,default:1,"x-reactions":{target:"start",fulfill:{schema:{"x-component-props.max":"{{ 10 ** $self.value - 1 }}"}}}},start:{type:"number",title:'{{t("Start from", { ns: "'.concat(s,'" })}}'),"x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{min:0},required:!0,default:0},cycle:(m(e={type:"string",title:'{{t("Reset cycle", { ns: "'.concat(s,'" })}}'),"x-decorator":"FormItem"},"x-component",function(e){var n=e.value,o=e.onChange,c=[{label:"No reset",value:0},{label:"Daily",value:1,cron:"0 0 * * *"},{label:"Every Monday",value:2,cron:"0 0 * * 1"},{label:"Monthly",value:3,cron:"0 0 1 * *"},{label:"Yearly",value:4,cron:"0 0 1 1 *"},{label:"Customize",value:5,cron:"* * * * *"}],a=void 0===n?c[0]:c.find(function(e){return e.cron==n})||c[5];return r().createElement("fieldset",null,r().createElement(u.Select,{value:a.value,onChange:function(e){return o(c[e].cron)}},c.map(function(e){return r().createElement(u.Select.Option,{key:e.value,value:e.value},function(e){var n,r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.i18n.t(e,(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}({},o),r=r={ns:s},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))}(e.label))})),5===a.value?r().createElement(t.Cron,{value:n,onChange:o,clearButton:!1}):null)}),m(e,"default",null),e)},defaults:{digits:4,start:1}},date:{title:'{{t("Date", { ns: "'.concat(s,'" })}}'),optionRenders:{format:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{value:"YYYYMMDD"};return r().createElement("code",null,e.value)}},fieldset:{format:{type:"string",title:'{{t("Date format", { ns: "'.concat(s,'" })}}'),description:'{{t(\'Supports all formats of the Day.js library, such as "YYYYMMDD", "YYYY-MM-DD", etc.\', { ns: "'.concat(s,'" })}}'),"x-decorator":"FormItem","x-component":"Input",default:"YYYYMMDD"}},defaults:{format:"YYYYMMDD"}}};function q(){var e=(0,l.useTranslation)().t,c=(0,t.useCompile)(),s=(0,n.useContext)(a.SchemaOptionsContext),p=(0,a.useForm)(),f=p.values,m=p.setValuesIn,d=o.ArrayTable.useIndex(),b=f.patterns[d],v=b.type,h=b.options,g=E[v],x=(0,t.useToken)().token;return(null==g?void 0:g.fieldset)?r().createElement(u.Button,{type:"link",onClick:function(){(0,o.FormDrawer)({title:c(g.title),zIndex:x.zIndexPopupBase+1e3},function(){return r().createElement(o.FormLayout,{layout:"vertical"},r().createElement(t.SchemaComponentOptions,{scope:s.scope,components:s.components},r().createElement(t.SchemaComponent,{schema:{type:"object","x-component":"fieldset",properties:g.fieldset}})),r().createElement(o.FormDrawer.Footer,null,r().createElement(o.FormButtonGroup,{className:(0,t.css)(j())},r().createElement(o.Submit,{onSubmit:function(e){return e}},e("Submit")))))}).open({initialValues:h}).then(function(e){m("patterns.".concat(d),{type:v,options:y({},e)})}).catch(function(e){(0,i.error)(e)})}},e("Configure")):null}var I=function(e){if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function n(){var e,r,o,c,a;if(!(this instanceof n))throw TypeError("Cannot call a class as a function");return r=n,o=arguments,r=d(r),m(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,h()?Reflect.construct(r,o||[],d(this).constructor):r.apply(this,o)),"name","sequence"),m(e,"type","object"),m(e,"group","advanced"),m(e,"order",3),m(e,"title",'{{t("Sequence", { ns: "'.concat(s,'" })}}')),m(e,"description",'{{t("Automatically generate codes based on configured rules, supporting combinations of dates, numbers, and text.", { ns: "'.concat(s,'" })}}')),m(e,"sortable",!0),m(e,"default",{type:"sequence",uiSchema:{type:"string","x-component":"Input","x-component-props":{}}}),m(e,"availableTypes",["string"]),m(e,"hasDefaultValue",!1),m(e,"filterable",{operators:t.interfacesProperties.operators.string}),m(e,"titleUsable",!0),m(e,"properties",(c=y({},t.interfacesProperties.defaultProps),a=a={unique:t.interfacesProperties.unique,patterns:{type:"array",title:'{{t("Sequence rules", { ns: "'.concat(s,'" })}}'),required:!0,"x-decorator":"FormItem","x-component":"ArrayTable",items:{type:"object",properties:{sort:{type:"void","x-component":"ArrayTable.Column","x-component-props":{width:50,title:"",align:"center"},properties:{sort:{type:"void","x-component":"ArrayTable.SortHandle"}}},type:{type:"void","x-component":"ArrayTable.Column","x-component-props":{title:'{{t("Type", { ns: "'.concat(s,'" })}}')},properties:{type:{type:"string",name:"type",required:!0,"x-decorator":"FormItem","x-component":S}}},options:{type:"void","x-component":"ArrayTable.Column","x-component-props":{title:'{{t("Rule content", { ns: "'.concat(s,'" })}}')},properties:{options:{type:"object",name:"options","x-component":P}}},operations:{type:"void","x-component":"ArrayTable.Column","x-component-props":{title:'{{t("Operations", { ns: "'.concat(s,'" })}}'),dataIndex:"operations",fixed:"right",className:(0,t.css)(w())},properties:{config:{type:"void",properties:{options:{type:"object","x-component":q}}},remove:{type:"void","x-component":"ArrayTable.Remove"}}}}},properties:{add:{type:"void","x-component":"ArrayTable.Addition","x-component-props":{defaultValue:{type:"integer",options:y({},E.integer.defaults)}},title:'{{t("Add rule", { ns: "'.concat(s,'" })}}')}}},inputable:{type:"boolean",title:'{{t("Inputable", { ns: "'.concat(s,'" })}}'),"x-decorator":"FormItem","x-component":"Checkbox"},match:{type:"boolean",title:'{{t("Match rules", { ns: "'.concat(s,'" })}}'),"x-decorator":"FormItem","x-component":"Checkbox","x-reactions":{dependencies:["inputable"],fulfill:{state:{value:"{{$deps[0] && $self.value}}",visible:"{{$deps[0] === true}}"}}}}},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(a)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(a)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(a,e))}),c)),e}return n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&b(n,e),n}(t.CollectionFieldInterface),F=function(e){return r().createElement(t.SchemaComponentOptions,{components:{RuleConfigForm:q}},e.children)},C=p(667);function D(e,t,n,r,o,c,a){try{var i=e[c](a),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,o)}function T(e,t,n){return(T=_()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&k(o,n.prototype),o}).apply(null,arguments)}function M(e){return(M=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function k(e,t){return(k=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Y(e){var t="function"==typeof Map?new Map:void 0;return(Y=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return T(e,arguments,M(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),k(n,e)})(e)}function _(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(_=function(){return!!e})()}var R=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=M(e),function(e,t){var n;if(t&&("object"==((n=t)&&"undefined"!=typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,_()?Reflect.construct(e,t||[],M(this).constructor):e.apply(this,t))}return n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&k(n,e),t=[{key:"load",value:function(){var e,t=this;return(e=function(){return function(e,t){var n,r,o,c,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return c={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(c[Symbol.iterator]=function(){return this}),c;function i(c){return function(i){var u=[c,i];if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(e){return t.app.use(F),t.app.dataSourceManager.addFieldInterfaces([I]),t.app.pm.get("calendar").registerTitleFieldInterface("sequence"),C.EditableItemModel.bindModelToInterface("InputFieldModel",["sequence"],{isDefault:!0}),C.DisplayItemModel.bindModelToInterface("DisplayTextFieldModel",["sequence"],{isDefault:!0}),C.FilterableItemModel.bindModelToInterface("InputFieldModel",["sequence"],{isDefault:!0}),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var c=e.apply(t,n);function a(e){D(c,r,o,a,i,"next",e)}function i(e){D(c,r,o,a,i,"throw",e)}a(void 0)})})()}}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(n.prototype,t),n}(Y(t.Plugin)),A=R}(),f}()});
@@ -9,15 +9,16 @@
9
9
 
10
10
  module.exports = {
11
11
  "react": "18.2.0",
12
- "@nocobase/client": "1.9.0-beta.9",
12
+ "@nocobase/client": "2.0.0-alpha.3",
13
+ "@nocobase/flow-engine": "2.0.0-alpha.3",
13
14
  "@formily/antd-v5": "1.2.3",
14
- "@formily/core": "2.3.0",
15
- "@formily/react": "2.3.0",
16
- "@nocobase/utils": "1.9.0-beta.9",
15
+ "@formily/core": "2.3.7",
16
+ "@formily/react": "2.3.7",
17
+ "@nocobase/utils": "2.0.0-alpha.3",
17
18
  "antd": "5.24.2",
18
19
  "react-i18next": "11.18.6",
19
- "@nocobase/server": "1.9.0-beta.9",
20
- "@nocobase/database": "1.9.0-beta.9",
20
+ "@nocobase/server": "2.0.0-alpha.3",
21
+ "@nocobase/database": "2.0.0-alpha.3",
21
22
  "dayjs": "1.11.13",
22
23
  "lodash": "4.17.21"
23
24
  };
@@ -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":"2025-09-30T05:20:52.765Z"}
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":"2025-09-30T15:47:19.847Z"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "displayName.zh-CN": "数据表字段:自动编码",
5
5
  "description": "Automatically generate codes based on configured rules, supporting combinations of dates, numbers, and text.",
6
6
  "description.zh-CN": "根据配置的规则自动生成编码,支持日期、数字、文本的组合。",
7
- "version": "1.9.0-beta.9",
7
+ "version": "2.0.0-alpha.3",
8
8
  "license": "AGPL-3.0",
9
9
  "main": "./dist/server/index.js",
10
10
  "homepage": "https://docs.nocobase.com/handbook/field-sequence",
@@ -21,15 +21,15 @@
21
21
  "react-js-cron": "^3.1.0"
22
22
  },
23
23
  "peerDependencies": {
24
- "@nocobase/actions": "1.x",
25
- "@nocobase/client": "1.x",
26
- "@nocobase/database": "1.x",
27
- "@nocobase/plugin-data-source-main": "1.x",
28
- "@nocobase/server": "1.x",
29
- "@nocobase/test": "1.x",
30
- "@nocobase/utils": "1.x"
24
+ "@nocobase/actions": "2.x",
25
+ "@nocobase/client": "2.x",
26
+ "@nocobase/database": "2.x",
27
+ "@nocobase/plugin-data-source-main": "2.x",
28
+ "@nocobase/server": "2.x",
29
+ "@nocobase/test": "2.x",
30
+ "@nocobase/utils": "2.x"
31
31
  },
32
- "gitHead": "b44464f1d1bbc96022d0f622e0a2f1d7e8d7142f",
32
+ "gitHead": "8efc23aa78058d871e98a91419f3c4a61762cc15",
33
33
  "keywords": [
34
34
  "Collection fields"
35
35
  ]