@nocobase/plugin-excel-formula-field
Version:
English | [中文](./README.zh-CN.md)
2 lines (1 loc) • 4.38 kB
JavaScript
(function(t,e){typeof exports=="object"&&typeof module!="undefined"?e(exports,require("@nocobase/client"),require("react/jsx-runtime"),require("react"),require("react-i18next"),require("@formily/react"),require("@formulajs/formulajs")):typeof define=="function"&&define.amd?define(["exports","@nocobase/client","react/jsx-runtime","react","react-i18next","@formily/react","@formulajs/formulajs"],e):(t=typeof globalThis!="undefined"?globalThis:t||self,e(t["@nocobase/plugin-excel-formula-field"]={},t["@nocobase/client"],t.jsxRuntime,t.react,t["react-i18next"],t["@formily/react"],t["@formulajs/formulajs"]))})(this,function(t,e,r,u,p,m,b){"use strict";var q=Object.defineProperty,I=Object.defineProperties;var T=Object.getOwnPropertyDescriptors;var v=Object.getOwnPropertySymbols;var _=Object.prototype.hasOwnProperty,C=Object.prototype.propertyIsEnumerable;var y=(t,e,r)=>e in t?q(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,f=(t,e)=>{for(var r in e||(e={}))_.call(e,r)&&y(t,r,e[r]);if(v)for(var r of v(e))C.call(e,r)&&y(t,r,e[r]);return t},x=(t,e)=>I(t,T(e));var o=(t,e,r)=>(y(t,typeof e!="symbol"?e+"":e,r),r);var E=(t,e,r)=>new Promise((u,p)=>{var m=l=>{try{c(r.next(l))}catch(a){p(a)}},b=l=>{try{c(r.throw(l))}catch(a){p(a)}},c=l=>l.done?u(l.value):Promise.resolve(l.value).then(m,b);c((r=r.apply(t,e)).next())});function c(n){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const i in n)if(i!=="default"){const F=Object.getOwnPropertyDescriptor(n,i);Object.defineProperty(s,i,F.get?F:{enumerable:!0,get:()=>n[i]})}}return s.default=n,Object.freeze(s)}const l=c(b);function a(n,s={}){const i=n.replace(/{{([^}]+)}}/g,(D,P)=>s[P.trim()]||"");return new Function(...Object.keys(l),...Object.keys(s),`return ${i}`)(...Object.values(l),...Object.values(s))}const d=()=>null;d.Result=m.observer(n=>u.createElement(e.Formula.Result,x(f({},n),{evaluate:a})),{displayName:"ExcelFormula.Result"}),d.Expression=m.connect(n=>u.createElement(e.Formula.Expression,x(f({},n),{evaluate:a}))),d.Expression.displayName="ExcelFormula.Expression";const j=u.memo(n=>{const{t:s}=p.useTranslation();return r.jsx(e.SchemaComponentOptions,{scope:{excelExpressionDescription:r.jsxs("div",{children:[s("Syntax see",{ns:"math-formula-field"})," ",r.jsx("a",{target:"_blank",href:"https://formulajs.info/functions/",rel:"noreferrer",children:"formula.js"})]})},components:{ExcelFormula:d},children:n.children})});j.displayName="ExcelFormulaFieldProvider";const{defaultProps:h,operators:S}=e.interfacesProperties;class O extends e.CollectionFieldInterface{constructor(){super(...arguments);o(this,"name","excelFormula");o(this,"type","object");o(this,"group","advanced");o(this,"order",2);o(this,"title",'{{t("Excel formula")}}');o(this,"description",'{{t("Compute a value based on the other fields using excel formula functions")}}');o(this,"sortable",!0);o(this,"default",{type:"excelFormula",uiSchema:{type:"string","x-disabled":!0,"x-component":"ExcelFormula.Result","x-component-props":{stringMode:!0,step:"1"}}});o(this,"properties",x(f({},h),{dataType:{type:"string",title:'{{t("Data type")}}',"x-component":"Select","x-decorator":"FormItem",default:"number","x-disabled":"{{ !createOnly }}","x-reactions":[{target:"uiSchema.x-component-props.step",fulfill:{state:{display:'{{$self.value !== "string" ? "visible" : "none"}}'}}}],enum:[{value:"string",label:'{{t("String")}}'},{value:"number",label:'{{t("Number")}}'}]},"uiSchema.x-component-props.step":{type:"string",title:'{{t("Precision")}}',"x-component":"Select","x-decorator":"FormItem",required:!0,default:"0",enum:[{value:"0",label:"1"},{value:"0.1",label:"1.0"},{value:"0.01",label:"1.00"},{value:"0.001",label:"1.000"},{value:"0.0001",label:"1.0000"},{value:"0.00001",label:"1.00000"}]},expression:{type:"string",title:'{{t("Expression")}}',required:!0,description:"{{excelExpressionDescription}}","x-component":"ExcelFormula.Expression","x-decorator":"FormItem","x-component-props":{supports:["number","percent","integer","string"],useCurrentFields:"{{ useCurrentFields }}"}}}));o(this,"filterable",{operators:S.string})}}class g extends e.Plugin{load(){return E(this,null,function*(){this.app.use(j),this.app.dataSourceManager.addFieldInterfaces([O])})}}t.ExcelFormulaFieldPlugin=g,t.default=g,Object.defineProperties(t,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});