@nocobase/plugin-data-visualization 1.4.0-alpha.20240911231734 → 1.4.0-alpha.20240914095808
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/index.js +1 -1
- package/dist/externalVersion.js +7 -7
- package/dist/node_modules/koa-compose/package.json +1 -1
- package/dist/node_modules/moment-timezone/LICENSE +20 -0
- package/dist/node_modules/moment-timezone/builds/moment-timezone-with-data-10-year-range.js +1548 -0
- package/dist/node_modules/moment-timezone/builds/moment-timezone-with-data-10-year-range.min.js +1 -0
- package/dist/node_modules/moment-timezone/builds/moment-timezone-with-data-1970-2030.js +1548 -0
- package/dist/node_modules/moment-timezone/builds/moment-timezone-with-data-1970-2030.min.js +1 -0
- package/dist/node_modules/moment-timezone/builds/moment-timezone-with-data-2012-2022.js +1560 -0
- package/dist/node_modules/moment-timezone/builds/moment-timezone-with-data-2012-2022.min.js +1 -0
- package/dist/node_modules/moment-timezone/builds/moment-timezone-with-data.js +1548 -0
- package/dist/node_modules/moment-timezone/builds/moment-timezone-with-data.min.js +1 -0
- package/dist/node_modules/moment-timezone/builds/moment-timezone.min.js +1 -0
- package/dist/node_modules/moment-timezone/composer.json +43 -0
- package/dist/node_modules/moment-timezone/data/meta/latest.json +5889 -0
- package/dist/node_modules/moment-timezone/data/packed/latest.json +852 -0
- package/dist/node_modules/moment-timezone/index.d.ts +78 -0
- package/dist/node_modules/moment-timezone/index.js +15 -0
- package/dist/node_modules/moment-timezone/moment-timezone-utils.d.ts +70 -0
- package/dist/node_modules/moment-timezone/moment-timezone-utils.js +339 -0
- package/dist/node_modules/moment-timezone/moment-timezone.js +696 -0
- package/dist/node_modules/moment-timezone/package.json +1 -0
- package/dist/server/actions/query.js +10 -6
- package/dist/server/formatter/formatter.d.ts +27 -0
- package/dist/server/formatter/formatter.js +85 -0
- package/dist/server/formatter/index.d.ts +13 -0
- package/dist/server/formatter/index.js +50 -0
- package/dist/server/formatter/mysql-formatter.d.ts +14 -0
- package/dist/server/formatter/mysql-formatter.js +86 -0
- package/dist/server/formatter/postgres-formatter.d.ts +14 -0
- package/dist/server/formatter/postgres-formatter.js +74 -0
- package/dist/server/formatter/sqlite-formatter.d.ts +15 -0
- package/dist/server/formatter/sqlite-formatter.js +83 -0
- package/package.json +2 -2
- package/dist/server/actions/formatter.d.ts +0 -12
- package/dist/server/actions/formatter.js +0 -101
package/dist/client/index.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
(function(ct,B){typeof exports=="object"&&typeof module!="undefined"?B(exports,require("@nocobase/client"),require("react/jsx-runtime"),require("react"),require("@ant-design/icons"),require("@formily/antd-v5"),require("@formily/core"),require("@formily/react"),require("antd"),require("lodash"),require("react-i18next"),require("dayjs"),require("@formily/shared"),require("@nocobase/utils/client"),require("ahooks"),require("@emotion/css")):typeof define=="function"&&define.amd?define(["exports","@nocobase/client","react/jsx-runtime","react","@ant-design/icons","@formily/antd-v5","@formily/core","@formily/react","antd","lodash","react-i18next","dayjs","@formily/shared","@nocobase/utils/client","ahooks","@emotion/css"],B):(ct=typeof globalThis!="undefined"?globalThis:ct||self,B(ct["@nocobase/plugin-data-visualization"]={},ct["@nocobase/client"],ct.jsxRuntime,ct.react,ct["@ant-design/icons"],ct["@formily/antd-v5"],ct["@formily/core"],ct["@formily/react"],ct.antd,ct.lodash,ct["react-i18next"],ct.dayjs,ct["@formily/shared"],ct["@nocobase/utils"],ct.ahooks,ct["@emotion/css"]))})(this,function(ct,B,Y,V,Qe,se,On,ft,xt,on,Py,Ue,Bo,au,dr,zo){"use strict";var HSt=Object.defineProperty,VSt=Object.defineProperties;var USt=Object.getOwnPropertyDescriptors;var My=Object.getOwnPropertySymbols;var K9=Object.prototype.hasOwnProperty,Z9=Object.prototype.propertyIsEnumerable;var PS=(ct,B)=>(B=Symbol[ct])?B:Symbol.for("Symbol."+ct),Ce=Math.pow,AS=(ct,B,Y)=>B in ct?HSt(ct,B,{enumerable:!0,configurable:!0,writable:!0,value:Y}):ct[B]=Y,tt=(ct,B)=>{for(var Y in B||(B={}))K9.call(B,Y)&&AS(ct,Y,B[Y]);if(My)for(var Y of My(B))Z9.call(B,Y)&&AS(ct,Y,B[Y]);return ct},dt=(ct,B)=>VSt(ct,USt(B));var CS=(ct,B)=>{var Y={};for(var V in ct)K9.call(ct,V)&&B.indexOf(V)<0&&(Y[V]=ct[V]);if(ct!=null&&My)for(var V of My(ct))B.indexOf(V)<0&&Z9.call(ct,V)&&(Y[V]=ct[V]);return Y};var oi=(ct,B,Y)=>(AS(ct,typeof B!="symbol"?B+"":B,Y),Y);var In=(ct,B,Y)=>new Promise((V,Qe)=>{var se=xt=>{try{ft(Y.next(xt))}catch(on){Qe(on)}},On=xt=>{try{ft(Y.throw(xt))}catch(on){Qe(on)}},ft=xt=>xt.done?V(xt.value):Promise.resolve(xt.value).then(se,On);ft((Y=Y.apply(ct,B)).next())}),XSt=function(ct,B){this[0]=ct,this[1]=B};var Q9=ct=>{var B=ct[PS("asyncIterator")],Y=!1,V,Qe={};return B==null?(B=ct[PS("iterator")](),V=se=>Qe[se]=On=>B[se](On)):(B=B.call(ct),V=se=>Qe[se]=On=>{if(Y){if(Y=!1,se==="throw")throw On;return On}return Y=!0,{done:!1,value:new XSt(new Promise(ft=>{var xt=B[se](On);if(!(xt instanceof Object))throw TypeError("Object expected");ft(xt)}),1)}}),Qe[PS("iterator")]=()=>Qe,V("next"),"throw"in B?V("throw"):Qe.throw=se=>{throw se},"return"in B&&V("return"),Qe};function vB(t,e){for(var n=0;n<e.length;n++){const r=e[n];if(typeof r!="string"&&!Array.isArray(r)){for(const i in r)if(i!=="default"&&!(i in t)){const o=Object.getOwnPropertyDescriptor(r,i);o&&Object.defineProperty(t,i,o.get?o:{enumerable:!0,get:()=>r[i]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}const kS="data-visualization";function Ot(t){return B.i18n.t(t,{ns:[kS,"client"]})}function Bt(){return Py.useTranslation([kS,"client"],{nsMode:"fallback"})}const Ay={datetime:[{label:Ot("YYYY"),value:"YYYY"},{label:Ot("MM"),value:"MM"},{label:Ot("DD"),value:"DD"},{label:Ot("YYYY-MM"),value:"YYYY-MM"},{label:Ot("YYYY-MM-DD"),value:"YYYY-MM-DD"},{label:Ot("YYYY-MM-DD hh:mm"),value:"YYYY-MM-DD hh:mm"},{label:Ot("YYYY-MM-DD hh:mm:ss"),value:"YYYY-MM-DD hh:mm:ss"}],date:[{label:Ot("YYYY"),value:"YYYY"},{label:Ot("MM"),value:"MM"},{label:Ot("DD"),value:"DD"},{label:Ot("YYYY-MM"),value:"YYYY-MM"},{label:Ot("YYYY-MM-DD"),value:"YYYY-MM-DD"}],time:[{label:Ot("hh:mm:ss"),value:"hh:mm:ss"},{label:Ot("hh:mm"),value:"hh:mm"},{label:Ot("hh"),value:"hh"}]},gB=V.createContext(null),Cy={didCatch:!1,error:null};let TS=class extends V.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=Cy}static getDerivedStateFromError(e){return{didCatch:!0,error:e}}resetErrorBoundary(){const{error:e}=this.state;if(e!==null){for(var n,r,i=arguments.length,o=new Array(i),a=0;a<i;a++)o[a]=arguments[a];(n=(r=this.props).onReset)===null||n===void 0||n.call(r,{args:o,reason:"imperative-api"}),this.setState(Cy)}}componentDidCatch(e,n){var r,i;(r=(i=this.props).onError)===null||r===void 0||r.call(i,e,n)}componentDidUpdate(e,n){const{didCatch:r}=this.state,{resetKeys:i}=this.props;if(r&&n.error!==null&&yB(e.resetKeys,i)){var o,a;(o=(a=this.props).onReset)===null||o===void 0||o.call(a,{next:i,prev:e.resetKeys,reason:"keys"}),this.setState(Cy)}}render(){const{children:e,fallbackRender:n,FallbackComponent:r,fallback:i}=this.props,{didCatch:o,error:a}=this.state;let s=e;if(o){const l={error:a,resetErrorBoundary:this.resetErrorBoundary};if(V.isValidElement(i))s=i;else if(typeof n=="function")s=n(l);else if(r)s=V.createElement(r,l);else throw a}return V.createElement(gB.Provider,{value:{didCatch:o,error:a,resetErrorBoundary:this.resetErrorBoundary}},s)}};function yB(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return t.length!==e.length||t.some((n,r)=>!Object.is(n,e[r]))}const LS=(t,e={})=>{const{collection:n,config:r}=t,{title:i,bordered:o}=r||{};return{type:"void","x-decorator":"ChartRendererProvider","x-decorator-props":t,"x-acl-action":`${n}:list`,"x-designer":"ChartRenderer.Designer","x-component":"CardItem","x-component-props":{size:"small",title:i,bordered:o},"x-initializer":"charts:addBlock",properties:{actions:{type:"void","x-decorator":"div","x-decorator-props":{style:{position:"absolute",top:0,right:0,zIndex:10}},"x-component":"ActionBar","x-component-props":{style:{marginRight:"var(--nb-designer-offset)",marginTop:"var(--nb-designer-offset)"}},"x-initializer":"chart:configureActions"},[Bo.uid()]:{type:"void","x-component":"ChartRenderer","x-component-props":e}}}},su=t=>{let e,n;return Array.isArray(t)?t.length===1?n=t[0]:t.length>1&&([e,n]=t):n=t,{target:e,name:n,alias:e?`${e}.${n}`:n}},vh=(t,e)=>{var o,a;const{target:n,name:r}=su(e);return n?(a=(o=t.find(s=>s.name===n))==null?void 0:o.targetFields)==null?void 0:a.find(s=>s.name===r):t.find(s=>s.name===r)},il=(t,e)=>{const n=s=>s.map(l=>{const c=vh(t,l.field);return dt(tt({},c),{key:l.alias||(c==null?void 0:c.key),label:l.alias||(c==null?void 0:c.label),value:l.alias||(c==null?void 0:c.value),query:l})}),r=e.measures||[],i=e.dimensions||[];return[...new Map([...n(r),...n(i)].map(s=>[s.value,s])).values()]},mB=(t,e,n)=>{const r=(i,o)=>{var l;const a=(l=i.uiSchema)==null?void 0:l.enum;if(!a||!Array.isArray(a))return o;if(Array.isArray(o))return o.map(c=>r(i,c));const s=a.find(c=>{var u;return c.value===(((u=o==null?void 0:o.toString)==null?void 0:u.call(o))||o)});return ft.Schema.compile((s==null?void 0:s.label)||o,n)};return e.map(i=>{const o={};return Object.entries(i).forEach(([a,s])=>{const l=t.find(c=>{var u;return c.value===a&&!((u=c==null?void 0:c.query)!=null&&u.aggregation)});if(!l){o[a]=s;return}switch(l.interface){case"select":case"radioGroup":case"multipleSelect":o[a]=r(l,s);break;default:o[a]=s}}),o})},ky=t=>{if(typeof t=="object"&&t!==null)if(Array.isArray(t)){const e=t.map(n=>ky(n)).filter(Boolean);return e.length>0?e:null}else{const e={};for(const n in t){const r=ky(t[n]);r!=null&&!(typeof r=="object"&&Object.keys(r).length===0)&&(e[n]=r)}return Object.keys(e).length>0?e:null}else if(typeof t=="string"&&t.startsWith("{{$nFilter.")&&t.endsWith("}}"))return null;return t},bB=(t,e)=>{const n=e.split(".");let r=on.get(t,n.slice(0,-1).join("."));return Array.isArray(r)?r=r.map(i=>on.get(i,n.slice(-1)[0])):r=on.get(r,n.slice(-1)[0]),r},xB=t=>({boolean:"Checkbox",integer:"InputNumber",bigInt:"InputNumber",double:"InputNumber",decimal:"InputNumber",date:"DatePicker",string:"Input"})[t],wB=t=>({boolean:"boolean",integer:"integer",bigInt:"integer",double:"number",decimal:"number",date:"datetime",string:"input"})[t],ol=V.createContext({});ol.displayName="ChartDataContext";const OB=t=>{const[e,n]=V.useState({}),r=dr.useMemoizedFn((o,{dataSource:a,collection:s,service:l,query:c})=>{n(u=>dt(tt({},u),{[o]:{dataSource:a,collection:s,service:l,query:c}}))}),i=dr.useMemoizedFn(o=>{n(a=>dt(tt({},a),{[o]:void 0}))});return Y.jsx(ol.Provider,{value:{charts:e,addChart:r,removeChart:i},children:t.children})},Lr=V.createContext({});Lr.displayName="ChartFilterContext";const _B=t=>{const[e,n]=V.useState(!1),[r,i]=V.useState(!1),[o,a]=V.useState({}),[s,l]=V.useState({collapsed:!1,row:1}),[c,u]=V.useState(),f=dr.useMemoizedFn((y,g)=>{a(m=>dt(tt({},m),{[y]:tt(tt({},m[y]||{}),g)}))}),d=dr.useMemoizedFn(y=>{a(g=>{const m=tt({},g);return m[y]=void 0,m})}),h=dr.useMemoizedFn(u),p=dr.useMemoizedFn(i),v=({collapsed:y,row:g})=>{l(m=>({collapsed:y!==void 0?y:m.collapsed,row:g!==void 0?g:m.row}))};return V.useEffect(()=>n(!0),[]),Y.jsx(Lr.Provider,{value:{ready:e,enabled:r,setEnabled:p,fields:o,setField:f,removeField:d,collapse:s,setCollapse:v,form:c,setForm:h},children:t.children})},lu=V.createContext({}),SB=t=>{const[e,n]=V.useState(!1),r=V.useRef({}),i=dr.useMemoizedFn((s,{service:l})=>{r.current[s]={service:l}}),o=dr.useMemoizedFn(s=>{const l=r.current[s];l&&(r.current[s]={service:l.service,selfAutoRefresh:!0})}),a=dr.useMemoizedFn(()=>{for(const s of Object.values(r.current))s==null||s.service.refresh()});return V.useEffect(()=>{if(!e)return;const s=setInterval(()=>{const l=Object.values(r.current).filter(c=>!c.selfAutoRefresh);for(const c of l)c==null||c.service.refresh()},e*1e3);return()=>clearInterval(s)},[e]),Y.jsx(lu.Provider,{value:{addChart:i,removeChart:o,autoRefresh:e,setAutoRefresh:n,refreshCharts:a},children:t.children})},Un=V.createContext({});Un.displayName="ChartRendererContext";const NS=t=>{const{query:e,config:n,collection:r,transform:i,dataSource:o=B.DEFAULT_DATA_SOURCE_KEY,disableAutoRefresh:a}=t,{addChart:s}=V.useContext(ol),{addChart:l,removeChart:c}=V.useContext(lu),{ready:u,form:f,enabled:d}=V.useContext(Lr),{getFilter:h,hasFilter:p,appendFilter:v,parseFilter:y}=sl(),g=ft.useFieldSchema(),m=B.useAPIClient(),[b,x]=V.useState(!1),[w,O]=V.useState(!1),_=B.useRequest((S,E,M,P)=>In(this,null,function*(){var j,L;if(!(E&&((j=M==null?void 0:M.measures)!=null&&j.length))||d&&!f)return;const C=h(),A=yield y(M.filter),k=dt(tt({},M),{filter:A}),T={dataSource:S,collection:E,query:k},N=!P&&p(T,C)?v(T,C):k;try{const I=yield m.request({url:"charts:query",method:"POST",data:dt(tt({uid:g==null?void 0:g["x-uid"],dataSource:S,collection:E},N),{filter:ky(N.filter),dimensions:((M==null?void 0:M.dimensions)||[]).map(F=>{const $=tt({},F);if(F.format&&!F.alias){const{alias:R}=su(F.field);$.alias=R}return $}),measures:((M==null?void 0:M.measures)||[]).map(F=>{const $=tt({},F);if(F.aggregation&&!F.alias){const{alias:R}=su(F.field);$.alias=R}return $})})});return(L=I==null?void 0:I.data)==null?void 0:L.data}catch(I){throw console.error(I),I}finally{!P&&(g!=null&&g["x-uid"])&&(s(g==null?void 0:g["x-uid"],{dataSource:S,collection:E,service:_,query:M}),b||l==null||l(g==null?void 0:g["x-uid"],{service:_}))}}),{defaultParams:[o,r,e],ready:u&&(!d||!!f)});return V.useEffect(()=>{if(a)return;if(!b){l==null||l(g==null?void 0:g["x-uid"],{service:_});return}c==null||c(g==null?void 0:g["x-uid"]);const S=b,E=setInterval(_.refresh,S*1e3);return()=>{clearInterval(E)}},[b,a]),Y.jsx(B.CollectionManagerProvider,{dataSource:o,children:Y.jsx(B.MaybeCollectionProvider,{collection:r,children:Y.jsx(Un.Provider,{value:{dataSource:o,collection:r,config:n,transform:i,service:_,query:e,autoRefresh:b,setAutoRefresh:x,showActionBar:w},children:Y.jsx("div",{onMouseOver:()=>O(!0),onMouseOut:()=>O(!1),children:t.children})})})})};class EB{constructor(){oi(this,"charts",new Map)}setGroup(e,n){this.charts.set(e,n)}addGroup(e,n){if(this.charts.has(e))throw new Error(`[data-visualization] Chart group "${e}" already exists`);this.setGroup(e,n)}add(e,n){var r;this.charts.has(e)||this.setGroup(e,[]),(r=this.charts.get(e))==null||r.push(n)}getChartTypes(){const e=[];this.charts.forEach((r,i)=>{const o=r.map(a=>({key:`${i}.${a.name}`,label:Ot(a.title),value:`${i}.${a.name}`}));e.push({label:Ot(i),children:o})});const n=e.findIndex(r=>r.label===Ot("Built-in"));if(n>-1){const[r]=e.splice(n,1);e.unshift(r)}return e}getCharts(){const e={};return this.charts.forEach((n,r)=>{n.forEach(i=>{e[`${r}.${i.name}`]=i})}),e}getChart(e){return this.getCharts()[e]}}const IS=()=>B.usePlugin(Ey).charts.getChartTypes(),MB=()=>{var e,n,r;return(r=(n=(e=IS()[0])==null?void 0:e.children)==null?void 0:n[0])==null?void 0:r.value},jS=()=>B.usePlugin(Ey).charts.getCharts(),PB=t=>B.usePlugin(Ey).charts.getChart(t);function AB(){const{t}=Bt(),{setVisible:e,setCurrent:n}=V.useContext(Pi),{removeChart:r}=V.useContext(ol),{service:i}=V.useContext(Un),o=ft.useField(),a=ft.useFieldSchema(),{insertAdjacent:s}=B.useDesignable(),l=B.useDataSource(),{name:c,title:u}=B.useCollection_deprecated();return Y.jsxs(B.GeneralSchemaDesigner,{disableInitializer:!0,title:u||c,children:[Y.jsx(B.SchemaSettingsItem,{title:"Configure",onClick:()=>In(this,null,function*(){n({schema:a,field:o,dataSource:l.key,collection:c,service:i,data:i.data}),e(!0)}),children:t("Configure")},"configure"),Y.jsx(B.SchemaSettingsItem,{title:"Duplicate",onClick:()=>s("afterEnd",B.gridRowColWrap(LS(a==null?void 0:a["x-decorator-props"]))),children:t("Duplicate")},"duplicate"),Y.jsx(B.SchemaSettingsDivider,{}),Y.jsx(B.SchemaSettingsRemove,{breakRemoveOn:{"x-component":"ChartV2Block"},confirm:{onOk:()=>{r(a["x-uid"])}}})]})}const{Paragraph:CB,Text:kB}=xt.Typography,TB=({error:t})=>{const{t:e}=Bt();return Y.jsx("div",{style:{backgroundColor:"white"},children:Y.jsx(xt.Result,{status:"error",title:e("Render Failed"),subTitle:e("Please check the configuration."),children:Y.jsx(CB,{copyable:!0,children:Y.jsx(kB,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:t.message})})})})},Ty=t=>{const{t:e}=Bt(),n=V.useContext(Un),{config:r,transform:i,dataSource:o,collection:a,service:s,data:l}=n,c=Va(o,a),u=FS(l,o,a),f=(r==null?void 0:r.general)||{},d=(r==null?void 0:r.advanced)||{},h=B.useAPIClient(),p=PB(r==null?void 0:r.chartType),v=h.auth.getLocale(),y=GB(i,v),g=p==null?void 0:p.getProps({data:u,general:f,advanced:d,fieldProps:Object.keys(u[0]||{}).reduce((x,w)=>{if(!x[w]){const O=vh(c,w.split(".")),_=y[w];x[w]={label:(O==null?void 0:O.label)||w,transformer:_,interface:O==null?void 0:O.interface}}return x},{})}),m=ft.Schema.compile(g),b=p==null?void 0:p.Component;return p?!(u&&u.length)&&!s.loading?Y.jsx(xt.Empty,{image:xt.Empty.PRESENTED_IMAGE_SIMPLE,description:e("No data")}):Y.jsx(xt.Spin,{spinning:s.loading,children:Y.jsx(TS,{onError:x=>{console.error(x)},FallbackComponent:TB,children:Y.jsx(b,tt({},m))})}):Y.jsx(xt.Empty,{image:xt.Empty.PRESENTED_IMAGE_SIMPLE,description:e("Please configure chart")})};Ty.Designer=AB;const cu=t=>{const{current:e}=V.useContext(Pi),{dataSource:n,collection:r}=e||{};t=t||n||B.DEFAULT_DATA_SOURCE_KEY;const i=B.useDataSourceManager(),o=i.getDataSource(t),a=i.collectionFieldInterfaceManager;return{cm:o==null?void 0:o.collectionManager,fim:a,collection:r}},LB=t=>(t||[]).filter(n=>n.interface).map(n=>{var r;return dt(tt({},n),{key:n.name,label:((r=n.uiSchema)==null?void 0:r.title)||n.name,value:n.name})}),Va=(t,e)=>{const{t:n}=Py.useTranslation(),{cm:r,fim:i,collection:o}=cu(t),a=r.getCollectionFields(e||o),s=LB(a);return V.useMemo(()=>s.map(l=>{var d,h,p,v;const c=(d=i.getFieldInterface(l.interface))==null?void 0:d.filterable,u=ft.Schema.compile(((h=l.uiSchema)==null?void 0:h.title)||l.name,{t:n});if(!(c&&(c!=null&&c.nested||(p=c==null?void 0:c.children)!=null&&p.length)))return dt(tt({},l),{label:u});let f=[];if(c!=null&&c.nested){const y=(r.getCollectionFields(l.target)||[]).filter(g=>g.interface).map(g=>{var m;return dt(tt({},g),{key:`${l.name}.${g.name}`,label:`${u} / ${ft.Schema.compile(((m=g.uiSchema)==null?void 0:m.title)||g.name,{t:n})}`,value:`${l.name}.${g.name}`})});f=[...f,...y]}if((v=c==null?void 0:c.children)!=null&&v.length){const y=c.children.map(g=>{var m;return dt(tt({},g),{key:`${l.name}.${g.name}`,label:`${u} / ${ft.Schema.compile(((m=g.schema)==null?void 0:m.title)||g.title||g.name,{t:n})}`,value:`${l.name}.${g.name}`})});f=[...f,...y]}return dt(tt({},l),{label:u,targetFields:f})}),[s])},DS=t=>e=>{const n=e.query("query").get("value")||{},r=il(t,n);e.dataSource=r},NB=t=>e=>{var o;const n=e.query(".field").get("value");if(!n){e.dataSource=[];return}let r=[];switch((o=vh(t,n))==null?void 0:o.interface){case"datetime":case"createdAt":case"updatedAt":r=Ay.datetime;break;case"date":r=Ay.date;break;case"time":r=Ay.time;break;default:r=[]}e.dataSource=r},IB=()=>{const{t}=Py.useTranslation(),e=B.useDataSourceManager(),{parseAction:n}=B.useACLRoleContext(),i=e.getAllCollections({filterCollection:o=>n(`${o.name}:list`)}).filter(({key:o,isDBInstance:a})=>o===B.DEFAULT_DATA_SOURCE_KEY||a).map(({key:o,displayName:a,collections:s})=>({value:o,label:a,children:s.map(l=>({value:l.name,label:l.title}))}));return V.useMemo(()=>ft.Schema.compile(i,{t}),[i])},jB=(t,e)=>n=>{const r=n.query("query").get("value")||{},{measures:i=[]}=r;if(!i.some(s=>s.aggregation)){n.componentProps.fieldNames={label:"title",value:"name",children:"children"},n.dataSource=t;return}const a=il(e,r);n.componentProps.fieldNames={},n.dataSource=a},DB=(t,e)=>n=>{const r=n.query("query").get("value")||{},{measures:i=[]}=r,o=i.some(u=>u.aggregation);let a=t;const s=[];o?(a=il(e,r),a.forEach(u=>{s.push(u.value)})):a.forEach(u=>{const f=u.children||[];f.length||s.push(u.value||u.name),f.forEach(d=>{s.push(`${u.name}.${d.name}`)})});const c=(n.value||[]).reduce((u,f)=>{const{alias:d}=su(f.field);return(!f.field||s.includes(d))&&u.push(f),u},[]);n.setValue(c)},FS=(t,e,n)=>{var c;const{t:r}=Bt(),{service:i,query:o}=V.useContext(Un),a=Va(e,n),s=ft.useForm(),l=il(a,((c=s==null?void 0:s.values)==null?void 0:c.query)||o);return mB(l,(i==null?void 0:i.data)||t||[],{t:r})},FB=(t,e,n=2,r=[])=>{const{cm:i,fim:o,collection:a}=cu(t),l=i.getCollectionFields(e||a).filter(d=>!r.includes(d.interface)),c=(d,h,p)=>{var x;if(!d.interface||d.isForeignKey)return;const v=o.getFieldInterface(d.interface);if(!(v!=null&&v.filterable))return;const{nested:y,children:g}=v.filterable,m=p?`${p}.${d.name}`:d.name,b=dt(tt({},d),{name:d.name,title:((x=d==null?void 0:d.uiSchema)==null?void 0:x.title)||d.name,schema:d==null?void 0:d.uiSchema,key:m});if(!(d.target&&h>n)){if(h>n)return b;if(g!=null&&g.length&&(b.children=g.map(w=>dt(tt({},w),{key:`${d.name}.${w.name}`}))),y){const w=i.getCollectionFields(d.target).filter(_=>!r.includes(_.interface)),O=u(w,h+1,d.name).filter(Boolean);b.children=b.children||[],b.children.push(...O)}return b}},u=(d,h,p)=>{const v=[];return d.forEach(y=>{const g=c(y,h,p);g&&v.push(g)}),v};return u(l,1)},$B=(t,e)=>{const{cm:n,fim:r,collection:i}=cu(t);return V.useMemo(()=>{const o=n.getCollectionFields(e||i),a=(c,u)=>{var y,g;if(!c.interface||c.isForeignKey)return;const f=r.getFieldInterface(c.interface);if(!(f!=null&&f.filterable))return;const{nested:d,children:h,operators:p}=f.filterable,v={name:c.name,title:((y=c==null?void 0:c.uiSchema)==null?void 0:y.title)||c.name,schema:c==null?void 0:c.uiSchema,operators:((g=p==null?void 0:p.filter)==null?void 0:g.call(p,m=>!(m!=null&&m.visible)||m.visible(c)))||[],interface:c.interface};if(!(c.target&&u>2)){if(u>2)return v;if(h!=null&&h.length&&(v.children=h),d){const m=n.getCollectionFields(c.target),b=s(m,u+1).filter(Boolean);v.children=v.children||[],v.children.push(...b)}return v}},s=(c,u)=>{const f=[];return c.forEach(d=>{const h=a(d,u);h&&f.push(h)}),f};return s(o,1)},[e,n,r])},Yo={general:{Prefix:{schema:{"x-component":"Input"},fn:(t,e)=>e?`${e}${t}`:t},Suffix:{schema:{"x-component":"Input"},fn:(t,e)=>e?`${t}${e}`:t}},datetime:{Format:{schema:{"x-component":"AutoComplete","x-component-props":{allowClear:!0,style:{minWidth:200}},enum:[{label:"YYYY",value:"YYYY"},{label:"YYYY-MM",value:"YYYY-MM"},{label:"YYYY-MM-DD",value:"YYYY-MM-DD"},{label:"YYYY-MM-DD hh:mm",value:"YYYY-MM-DD hh:mm"},{label:"YYYY-MM-DD hh:mm:ss",value:"YYYY-MM-DD hh:mm:ss"}]},fn:(t,e)=>Ue(t).format(e)},YYYY:{label:"YYYY (Deprecated, use Format instead)",fn:t=>Ue(t).format("YYYY")},MM:{label:"MM (Deprecated, use Format instead)",fn:t=>Ue(t).format("MM")},DD:{label:"DD (Deprecated, use Format instead)",fn:t=>Ue(t).format("DD")},"YYYY-MM":{label:"YYYY-MM (Deprecated, use Format instead)",fn:t=>Ue(t).format("YYYY-MM")},"YYYY-MM-DD":{label:"YYYY-MM-DD (Deprecated, use Format instead)",fn:t=>Ue(t).format("YYYY-MM-DD")},"YYYY-MM-DD hh:mm":{label:"YYYY-MM-DD hh:mm (Deprecated, use Format instead)",fn:t=>Ue(t).format("YYYY-MM-DD hh:mm")},"YYYY-MM-DD hh:mm:ss":{label:"YYYY-MM-DD hh:mm:ss (Deprecated, use Format instead)",fn:t=>Ue(t).format("YYYY-MM-DD hh:mm:ss")}},date:{Format:{schema:{"x-component":"AutoComplete","x-component-props":{allowClear:!0,style:{minWidth:200}},enum:[{label:"YYYY",value:"YYYY"},{label:"MM",value:"MM"},{label:"DD",value:"DD"},{label:"YYYY-MM",value:"YYYY-MM"},{label:"YYYY-MM-DD",value:"YYYY-MM-DD"}]},fn:(t,e)=>Ue(t).format(e)},YYYY:{label:"YYYY (Deprecated, use Format instead)",fn:t=>Ue(t).format("YYYY")},MM:{label:"MM (Deprecated, use Format instead)",fn:t=>Ue(t).format("MM")},DD:{label:"DD (Deprecated, use Format instead)",fn:t=>Ue(t).format("DD")},"YYYY-MM":{label:"YYYY-MM (Deprecated, use Format instead)",fn:t=>Ue(t).format("YYYY-MM")},"YYYY-MM-DD":{label:"YYYY-MM-DD (Deprecated, use Format instead)",fn:t=>Ue(t).format("YYYY-MM-DD")}},time:{Format:{schema:{"x-component":"AutoComplete","x-component-props":{allowClear:!0,style:{minWidth:200}},enum:[{label:"hh:mm:ss",value:"hh:mm:ss"},{label:"hh:mm",value:"hh:mm"},{label:"hh",value:"hh"}]},fn:(t,e)=>Ue(t).format(e)},"hh:mm:ss":{label:"hh:mm:ss (Deprecated, use Format instead)",fn:t=>Ue(t).format("hh:mm:ss")},"hh:mm":{label:"hh:mm (Deprecated, use Format instead)",fn:t=>Ue(t).format("hh:mm")},hh:{label:"hh (Deprecated, use Format instead)",fn:t=>Ue(t).format("hh")}},number:{Precision:{schema:{"x-component":"Select",enum:[{label:"1",value:0},{label:"1.0",value:1},{label:"1.00",value:2},{label:"1.000",value:3}]},fn:(t,e)=>Number(t.toFixed(e))},Separator:{schema:{"x-component":"Select",enum:[{label:"100,000.00",value:"en-US"},{label:"100.000,00",value:"de-DE"},{label:"100 000.00",value:"ru-RU"}]},fn:(t,e)=>{switch(e){case"en-US":return t.toLocaleString("en-US",{minimumFractionDigits:2});case"de-DE":return t.toLocaleString("de-DE",{minimumFractionDigits:2});case"ru-RU":return t.toLocaleString("ru-RU",{minimumFractionDigits:2});default:return t}}},Percent:t=>new Intl.NumberFormat("en-US",{style:"percent",minimumFractionDigits:2,maximumFractionDigits:2}).format(t),Currency:{label:"Currency (Deprecated, use Separator & Prefix instead)",fn:(t,e="en-US")=>{const n={"zh-CN":"CNY","en-US":"USD","ja-JP":"JPY","ko-KR":"KRW","pt-BR":"BRL","ru-RU":"RUB","tr-TR":"TRY","es-ES":"EUR"}[e]||"USD";return new Intl.NumberFormat(e,{style:"currency",currency:n}).format(t)}},Exponential:t=>(+t).toExponential(),Abbreviation:{schema:{"x-component":"Select",enum:[{label:"en-US",value:"en-US"},{label:"zh-CN",value:"zh-CN"}]},fn:(t,e="en-US")=>new Intl.NumberFormat(e,{notation:"compact"}).format(t)}},string:{"Type conversion":{schema:{"x-component":"Select",enum:[{label:"Number",value:"Number"},{label:"Date",value:"Date"}]},fn:(t,e)=>{try{return new Function(`return ${e}(${t})`)()}catch(n){return console.log(n),t}}}}},RB=t=>function(){const n=ft.useField(),r=n.query("query").get("value")||{},i=il(t,r),o=Object.keys(Yo).filter(a=>a!=="general");return{onChange:a=>{n.value=a;const s=n.query(".type").take();a||s.setState({value:null});const l=i.find(h=>h.value===a);s.dataSource=o.map(h=>({label:Ot(h),value:h}));const c={createdAt:"datetime",updatedAt:"datetime",double:"number",integer:"number",percent:"number"},u=l==null?void 0:l.interface,f=l==null?void 0:l.type,d=c[u]||c[f]||f;if(o.includes(d)){s.setState({value:d});return}s.setState({value:null})}}},BB=()=>{const t=ft.useField();return{options:Object.keys(Yo).filter(r=>r!=="general").map(r=>({label:Ot(r),value:r})),onChange:r=>{t.value=r,t.query(".format").take().setValue(null)}}},zB=()=>{const t=ft.useField();return{onChange:e=>{t.value=e,t.query(".argument").take().setValue(null)}}},YB=t=>{const e=t.query(".type").get("value");if(!e){t.dataSource=[];return}const n=Object.entries(tt(tt({},Yo.general),Yo[e]||{})).map(([r,i])=>{const o=typeof i=="function"?r:i.label||r;return{label:Ot(o),value:r}});t.dataSource=n},WB=t=>{const e=t.query(".type").get("value"),n=t.query(".format").get("value");if(!n||!e){t.setComponentProps({schema:null});return}const r=Yo[e][n]||Yo.general[n];if(!r||typeof r=="function"){t.setComponentProps({schema:null});return}const i=Bo.uid();t.setComponentProps({schema:tt({name:i},r.schema)})},GB=(t,e="en-US")=>{const n=(t||[]).filter(i=>i.field&&i.type&&i.format).reduce((i,o)=>{const a=Yo[o.type][o.format]||Yo.general[o.format];return a&&(i[o.field]=[...i[o.field]||[],{transformer:a,argument:o.argument}]),i},{}),r={};return Object.entries(n).forEach(([i,o])=>{r[i]=o.reduce((a,s)=>{const{transformer:l}=s;let{argument:c}=s;return u=>{try{return typeof l=="function"?l(a(u),c):(!c&&!l.schema&&(c=e),l.fn(a(u),c))}catch(f){return console.log(f),u}}},a=>a)}),r};function uu(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var HB=function(e){return VB(e)&&!UB(e)};function VB(t){return!!t&&typeof t=="object"}function UB(t){var e=Object.prototype.toString.call(t);return e==="[object RegExp]"||e==="[object Date]"||KB(t)}var XB=typeof Symbol=="function"&&Symbol.for,qB=XB?Symbol.for("react.element"):60103;function KB(t){return t.$$typeof===qB}function ZB(t){return Array.isArray(t)?[]:{}}function fu(t,e){return e.clone!==!1&&e.isMergeableObject(t)?al(ZB(t),t,e):t}function QB(t,e,n){return t.concat(e).map(function(r){return fu(r,n)})}function JB(t,e){if(!e.customMerge)return al;var n=e.customMerge(t);return typeof n=="function"?n:al}function tz(t){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t).filter(function(e){return Object.propertyIsEnumerable.call(t,e)}):[]}function $S(t){return Object.keys(t).concat(tz(t))}function RS(t,e){try{return e in t}catch(n){return!1}}function ez(t,e){return RS(t,e)&&!(Object.hasOwnProperty.call(t,e)&&Object.propertyIsEnumerable.call(t,e))}function nz(t,e,n){var r={};return n.isMergeableObject(t)&&$S(t).forEach(function(i){r[i]=fu(t[i],n)}),$S(e).forEach(function(i){ez(t,i)||(RS(t,i)&&n.isMergeableObject(e[i])?r[i]=JB(i,n)(t[i],e[i],n):r[i]=fu(e[i],n))}),r}function al(t,e,n){n=n||{},n.arrayMerge=n.arrayMerge||QB,n.isMergeableObject=n.isMergeableObject||HB,n.cloneUnlessOtherwiseSpecified=fu;var r=Array.isArray(e),i=Array.isArray(t),o=r===i;return o?r?n.arrayMerge(t,e,n):nz(t,e,n):fu(e,n)}al.all=function(e,n){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce(function(r,i){return al(r,i,n)},{})};var rz=al,iz=rz;const oz=uu(iz),az=()=>({title:'{{t("Options")}}',type:"array","x-decorator":"FormItem","x-component":"ArrayItems",items:{type:"object","x-decorator":"ArrayItems.Item",properties:{space:{type:"void","x-component":"Space",properties:{label:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Option label")}}'},required:!0},value:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Option value")}}'},required:!0},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:"Add","x-component":"ArrayItems.Addition"}}}),Ly=t=>{const e={type:"boolean","x-content":'{{ t("Show time") }}',"x-decorator":"FormItem","x-component":"Checkbox"},n={type:"string",title:'{{t("Date format")}}',"x-component":"Radio.Group","x-decorator":"FormItem",default:"YYYY-MM-DD",enum:[{label:'{{t("Year/Month/Day")}}',value:"YYYY/MM/DD"},{label:'{{t("Year-Month-Day")}}',value:"YYYY-MM-DD"},{label:'{{t("Day/Month/Year")}}',value:"DD/MM/YYYY"}]},r=az();return{DatePicker:{type:"object",properties:{dateFormat:n,showTime:e}},"DatePicker.RangePicker":{type:"object",properties:{dateFormat:n,showTime:e}},Select:{type:"object",properties:{mode:{type:"string",enum:[{label:'{{ t("Single select") }}',value:""},{label:'{{ t("Multiple select") }}',value:"multiple"}],"x-decorator":"FormItem","x-component":"Radio.Group","x-component-props":{defaultValue:""}},options:r}},"Checkbox.Group":{type:"object",properties:{options:r}},"Radio.Group":{type:"object",properties:{options:r}}}[t]},sz=(t,e)=>{if(!t)return t;if(Ue.isDayjs(t))return e.showTime||(t=t.startOf("day")),au.moment2str(t,e);if(Array.isArray(t)&&t.length&&Ue.isDayjs(t[0])){let n=t[0],r=t[1];return e.showTime&&(n=n.startOf("day"),r=r.endOf("day")),[n.toISOString(),r.toISOString()]}return t},BS=(t,e,n)=>In(this,null,function*(){const r=t.initialValue;if(!(typeof r=="string"&&(r==null?void 0:r.startsWith("{{$"))&&(r==null?void 0:r.endsWith("}}")))||!e)t.setValue(r),t.setInitialValue(r);else{t.loading=!0;const{value:o}=yield e.parseVariable(r,n),a=sz(o,t.componentProps);t.setValue(a),t.setInitialValue(a),t.loading=!1}}),gh="-",du=(t,e)=>t?`${t}${gh}${e}`:e,zS=t=>{const[e,n]=t.split(gh);return n?{dataSource:e,fieldName:n}:{dataSource:B.DEFAULT_DATA_SOURCE_KEY,fieldName:e}},Ny=(t,e,n)=>ft.Schema.isSchemaInstance(t)?t.reduceProperties((r,i)=>{let o=i[e];if(o.includes(gh)||(o=`${B.DEFAULT_DATA_SOURCE_KEY}${gh}${o}`),o===n)return i;if(i["x-component"]!=="Action.Container"&&i["x-component"]!=="AssociationField.Viewer"){const a=Ny(i,e,n);if(a)return a}return r}):null,Iy=()=>{const{charts:t}=V.useContext(ol),e=V.useMemo(()=>Object.values(t).filter(i=>i).reduce((i,o)=>{var l;const{dataSource:a,collection:s}=o;return(l=i[a])!=null&&l.includes(s)||(i[a]=[...i[a]||[],s]),i},{}),[t]),n=V.useMemo(()=>Object.keys(e).length>1,[e]),r=V.useCallback((i,o)=>{var a;return((a=e[i])==null?void 0:a.includes(o))||!1},[e]);return{chartCollections:e,showDataSource:n,getIsChartCollectionExists:r}},sl=()=>{const t=B.useDataSourceManager(),{charts:e}=V.useContext(ol),{fieldSchema:n}=B.useActionContext(),r=n==null?void 0:n["x-action"],{fields:i,form:o}=V.useContext(Lr),a=B.useVariables(),s=B.useLocalVariables(),l=({dataSource:y,collection:g,cm:m,fim:b})=>{const x=m.getCollectionFields(g.name),w=(M,P,C,A)=>{var F,$,R,z,W;const k=((F=M.uiSchema)==null?void 0:F.title)||M.name,T=b.getFieldInterface(M.interface),N=(R=($=T==null?void 0:T.filterable)==null?void 0:$.operators)==null?void 0:R[0],j=m.getCollection(M.target);P=P?`${P} / ${k}`:k;let L={type:"string",title:P,name:`${C}.${M.name}`,required:!1,"x-designer":"ChartFilterItemDesigner","x-component":"CollectionField","x-decorator":"ChartFilterFormItem","x-data-source":y,"x-collection-field":`${A}.${M.name}`,"x-component-props":dt(tt({},(z=M.uiSchema)==null?void 0:z["x-component-props"]),{"filter-operator":N})};if(M.interface==="formula"){const K=xB(M.dataType)||"Input";L=dt(tt({},L),{"x-component":K})}return["oho","o2m"].includes(M.interface)&&on.set(L,"x-component-props.useOriginalFilter",!0),{key:`${C}.${M.name}`,name:M.name,type:"item",title:((W=M==null?void 0:M.uiSchema)==null?void 0:W.title)||M.name,Component:"CollectionFieldInitializer",find:Ny,remove:(K,Q)=>{Q(K,{breakRemoveOn:{"x-component":"Grid"}})},schemaInitialize:K=>{var Q;(Q=T==null?void 0:T.schemaInitialize)==null||Q.call(T,K,{field:M,block:"FilterForm",readPretty:o.readPretty,action:r,targetCollection:j})},schema:L}},O=(M,P,C,A)=>{var L;const k=((L=M.uiSchema)==null?void 0:L.title)||M.name;P=P?`${P} / ${k}`:k;const T=M.operators[0];let N=dt(tt({type:"string",name:`${C}.${M.name}`,required:!1,"x-designer":"ChartFilterItemDesigner","x-decorator":"ChartFilterFormItem","x-data-source":y,"x-collection-field":`${A}.${M.name}`},M.schema),{title:P,"x-component-props":{"filter-operator":T}});return T!=null&&T.noValue&&(N=dt(tt({},N),{"x-component":"ChartFilterCheckbox","x-component-props":dt(tt({},N["x-component-props"]),{content:ft.Schema.compile(T.label,{t:B.i18n.t})})})),{key:`${C}.${M.name}`,name:M.name,type:"item",title:M.title||M.name,Component:"CollectionFieldInitializer",find:Ny,remove:(I,F)=>{F(I,{breakRemoveOn:{"x-component":"Grid"}})},schema:N}},_=(M,P,C,A,k)=>{var F,$,R;if(!M.interface||M.isForeignKey)return;const T=b.getFieldInterface(M.interface);if(!(T!=null&&T.filterable))return;const{nested:N,children:j}=T.filterable,L=((F=M.uiSchema)==null?void 0:F.title)||M.name,I=w(M,C,A,k);if(!(M.target&&P>2)){if(C=C?`${C} / ${L}`:L,j!=null&&j.length&&!["chinaRegion","createdBy","updatedBy","attachment"].includes(M.interface)){const z=j.map(W=>O(W,C,`${A}.${M.name}`,`${k}.${M.name}`));return{key:`${A}.${M.name}`,name:M.name,type:"subMenu",title:(($=M==null?void 0:M.uiSchema)==null?void 0:$.title)||M.name,children:z}}if(!P||P>2)return I;if(N){const W=m.getCollectionFields(M.target).map(K=>_(K,P+1,"",`${A}.${M.name}`,`${k}.${M.name}`));return{key:`${A}.${M.name}`,name:M.name,type:"subMenu",title:((R=M==null?void 0:M.uiSchema)==null?void 0:R.title)||M.name,children:W.filter(Boolean)}}return I}},S=[],E=[];return x.forEach(M=>{const P=M.interface,C=_(M,0,"",du(y,g.name),g.name);if(C&&S.push(C),["m2o"].includes(P)){const A=_(M,1,"",du(y,g.name),g.name);A&&E.push(A)}}),E.length&&S.push({name:"divider",type:"divider"},{name:"displayAssociationFields",type:"itemGroup",title:B.i18n.t("Display association fields"),children:E}),S},c=()=>{const y=(o==null?void 0:o.values)||{},g={};return Object.entries(i).filter(([m,b])=>b).forEach(([m,b])=>{const{operator:x}=b||{},{dataSource:w,fieldName:O}=zS(m);let _=O;const M=t.getDataSource(w).collectionManager.getCollectionField(_);if(M!=null&&M.target){const T=M.targetKey||"id";_=`${_}.${T}`,m=`${m}.${T}`}const[P,...C]=_.split("."),A=bB(y,m),k=(x==null?void 0:x.value)||"$eq";if(P!=="custom"){const T=du(w,P);g[T]=g[T]||{$and:[]};const N={};on.set(N,C.join("."),{[k]:A}),g[T].$and.push(N)}else g[P]=g[P]||{},g[P][`$nFilter.${C.join(".")}`]=A}),g},u=(y,g)=>{if(!y)return!1;const{dataSource:m,collection:b,query:x}=y,{parameters:w}=au.parse(x.filter||"");return g[du(m,b)]||g.custom&&(w==null?void 0:w.find(({key:O})=>on.has(g.custom,O)))},f=(y,g)=>{const{dataSource:m,collection:b,query:x}=y;let w=tt({},x);const O=tt({},w.filter||{});let _={};const S=au.parse(O),{parameters:E}=S;return g.custom&&(E!=null&&E.find(M=>g.custom[M.key]))&&(_=S(g.custom)),_=oz(O,_),w=dt(tt({},w),{filter:{$and:[_,g[du(m,b)]]}}),w},d=()=>In(this,null,function*(){const y=c(),g=Object.values(e).filter(m=>u(m,y)).map(m=>()=>In(this,null,function*(){const{dataSource:b,service:x,collection:w}=m;yield x.runAsync(b,w,f(m,y),!0)}));yield Promise.all(g.map(m=>m()))}),h=()=>In(this,null,function*(){const y=Object.values(e).filter(g=>g).map(g=>()=>In(this,null,function*(){const{service:m,dataSource:b,collection:x,query:w}=g;yield m.runAsync(b,x,w,!0)}));yield Promise.all(y.map(g=>g()))}),p=dr.useMemoizedFn(y=>y.split(" / ").map(g=>B.i18n.t(ft.Schema.compile(g,{t:B.i18n.t}))).join(" / ")),v=V.useCallback(y=>In(this,null,function*(){const g=au.flatten(y,{breakOn({key:b}){return b.startsWith("$")&&b!=="$and"&&b!=="$or"},transformValue(b){return!(typeof b=="string"&&b.startsWith("{{$")&&(b!=null&&b.endsWith("}}")))||["$user","$date","$nDate","$nRole","$nFilter"].some(w=>b.includes(w))?b:a==null?void 0:a.parseVariable(b,s).then(({value:w})=>w)}});return yield Promise.all(Object.keys(g).map(b=>In(this,null,function*(){return g[b]=yield g[b],g[b]===void 0&&delete g[b],g[b]}))),au.unflatten(g)}),[a]);return{filter:d,refresh:h,getChartFilterFields:l,getFilter:c,hasFilter:u,appendFilter:f,getTranslatedTitle:p,parseFilter:v}},lz=()=>{const{t}=Bt(),e=dr.useMemoizedFn(t),{enabled:n,fields:r}=V.useContext(Lr),i=Object.entries(r).filter(([a,s])=>a.startsWith("custom.")&&s).map(([a,{title:s}])=>{const l=a.replace(/^custom\./,"");return{key:l,value:l,label:s}}),o=V.useMemo(()=>({label:e("Current filter"),value:"$nFilter",key:"$nFilter",children:i}),[i,e]);return!n||!i.length?null:o},YS=()=>{const{t}=Bt(),{chartCollections:e}=Iy(),n=B.useDataSourceManager(),r=n.collectionFieldInterfaceManager,{values:i}=WS(),o=(a,s,l)=>{var d,h,p;if(!s.interface)return;const c=r.getFieldInterface(s.interface);if(!(c!=null&&c.filterable))return;const{nested:u}=c.filterable,f={value:s.name,label:t(((d=s==null?void 0:s.uiSchema)==null?void 0:d.title)||s.name)};if(!(s.target&&l>2)){if(l>2)return f;if(u){const y=a.getCollectionFields(s.target).map(g=>o(a,g,l+1));return{value:s.name,label:t(((h=s==null?void 0:s.uiSchema)==null?void 0:h.title)||s.name),children:y.filter(g=>g)}}if(!(!i.includes((p=s.uiSchema)==null?void 0:p["x-component"])&&!i.includes(s.interface)))return f}};return V.useMemo(()=>Object.entries(e).map(([s,l])=>{const c=n.getDataSource(s);return{value:s,label:ft.Schema.compile(c.displayName,{t}),children:l.map(u=>{const f=c.collectionManager,d=f.getCollection(u),p=f.getCollectionFields(u).map(v=>o(f,v,1)).filter(v=>v);return{value:u,label:ft.Schema.compile(d.title,{t}),children:p}})}}),[e])},WS=()=>{const{t}=Bt(),e=[{label:t("Input"),value:"Input"},{label:t("Number"),value:"InputNumber"},{label:t("Date"),value:"DatePicker"},{label:t("Date range"),value:"DatePicker.RangePicker"},{label:t("Time"),value:"TimePicker"},{label:t("Time range"),value:"TimePicker.RangePicker"},{label:t("Select"),value:"Select"},{label:t("Radio group"),value:"Radio.Group"},{label:t("Checkbox group"),value:"Checkbox.Group"}];return{options:e,values:e.map(n=>n.value)}},cz=(t,e)=>{const{t:n}=Bt(),r=B.useDataSourceManager(),{showDataSource:i}=Iy();return V.useMemo(()=>{var p;const o=r.getDataSource(t);if(!o)return;const a=o.collectionManager;if(!e)return;const{fieldName:s}=zS(e),[l,...c]=s.split(".");if(!(c!=null&&c.length))return;const u=a.getCollection(l);let f=l,d,h=ft.Schema.compile(u==null?void 0:u.title,{t:n});for(;f&&c.length>0;){const v=c.shift();d=a.getCollectionField(`${f}.${v}`);const y=((p=d==null?void 0:d.uiSchema)==null?void 0:p.title)||(d==null?void 0:d.name);y&&(h+=` / ${ft.Schema.compile(y,{t:n})}`),d!=null&&d.target?f=d.target:f=null}return i?`${ft.Schema.compile(o.displayName,{t:n})} > ${h}`:h},[e,t,i])},GS=(t,e)=>{const{currentUserSettings:n}=B.useCurrentUserVariable({collectionField:{uiSchema:t},uiSchema:t}),{currentRoleSettings:r}=B.useCurrentRoleVariable({uiSchema:t}),{apiTokenSettings:i}=B.useAPITokenVariable({noDisabled:!0}),{datetimeSettings:o}=B.useDatetimeVariable({operator:e,schema:t,noDisabled:!0}),{urlSearchParamsSettings:a}=B.useURLSearchParamsVariable(),{settings:s,shouldDisplayPopupRecord:l}=B.usePopupVariable({schema:t}),c=V.useMemo(()=>[n,r,i,o,a,l&&s].filter(Boolean),[o,n,r,a,i,l,s]);return t?c:[]},uz=()=>{const t=ft.useField(),{operator:e,schema:n}=t.data||{},r=lz(),i=GS(n,e),o=V.useMemo(()=>[...i,r].filter(Boolean),[i,r]);return!e||!n?[]:o},jy=(t={},e={})=>dt(tt({type:"array","x-decorator":"FormItem","x-component":"ArrayItems"},e),{items:{type:"object",properties:{space:{type:"void","x-component":"Space",properties:dt(tt({sort:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.SortHandle"}},t),{remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}})}}},properties:{add:{type:"void",title:'{{t("Add field")}}',"x-component":"ArrayItems.Addition"}}}),fz=t=>({type:"void",properties:{config:{type:"object",properties:{collapse:{type:"void","x-component":"FormCollapse","x-component-props":{formCollapse:"{{formCollapse}}",size:"small",style:{border:"none",boxShadow:"none"}},properties:{pane1:{type:"void","x-component":"FormCollapse.CollapsePanel","x-component-props":{header:Ot("Container"),key:"card"},properties:{title:{type:"string",title:'{{t("Title")}}',"x-decorator":"FormItem","x-component":"Input"},bordered:{type:"boolean","x-content":Ot("Show border"),"x-decorator":"FormItem","x-component":"Checkbox",default:!1}}},pane2:{type:"void","x-component":"FormCollapse.CollapsePanel","x-component-props":{header:Ot("Chart"),key:"basic",style:{border:"none"}},properties:{chartType:{type:"string",title:'{{t("Chart type")}}',"x-decorator":"FormItem","x-component":"Select","x-component-props":{placeholder:'{{t("Please select a chart type.")}}'},enum:"{{ chartTypes }}"},[Bo.uid()]:{type:"void",properties:{general:t}},[Bo.uid()]:{type:"void",properties:{advanced:{type:"json",title:'{{t("JSON config")}}',"x-decorator":"FormItem","x-decorator-props":{extra:Ot("Same properties set in the form above will be overwritten by this JSON config.")},"x-component":"Input.JSON","x-component-props":{autoSize:{minRows:3},json5:!0}}}},reference:{type:"string","x-reactions":{dependencies:[".chartType"],fulfill:{schema:{"x-content":"{{ getReference($deps[0]) }}"}}}}}}}}}}}}),dz={type:"void",properties:{settings:{type:"void",properties:{collection:{title:'{{t("Collection")}}',type:"string","x-decorator":"FormItem","x-component":"Cascader",enum:"{{ collectionOptions }}","x-component-props":{onChange:"{{ onCollectionChange }}",placeholder:'{{t("Collection")}}',showSearch:!0}}}},query:{type:"object",properties:{builder:{type:"void",properties:{collapse:{type:"void","x-decorator":"FormItem","x-component":"FormCollapse","x-component-props":{formCollapse:"{{formCollapse}}",size:"small",style:{border:"none",boxShadow:"none"}},properties:{pane1:{type:"void","x-component":"FormCollapse.CollapsePanel","x-component-props":{header:Ot("Measures"),key:"measures"},properties:{measures:jy({field:{type:"string","x-decorator":"FormItem","x-component":"Cascader","x-component-props":{placeholder:'{{t("Field")}}',fieldNames:{label:"title",value:"name",children:"children"}},enum:"{{ fieldOptions }}",required:!0},aggregation:{type:"string","x-decorator":"FormItem","x-component":"Select","x-component-props":{placeholder:'{{t("Aggregation")}}'},enum:[{label:'{{t("Sum")}}',value:"sum"},{label:'{{t("Count")}}',value:"count"},{label:'{{t("Avg")}}',value:"avg"},{label:'{{t("Max")}}',value:"max"},{label:'{{t("Min")}}',value:"min"}]},alias:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Alias")}}',style:{minWidth:"100px"}}},distinct:{type:"boolean","x-decorator":"FormItem","x-component":"Checkbox","x-content":'{{t("Distinct")}}'}},{required:!0,"x-component-props":{style:{overflow:"auto"}}})}},pane2:{type:"void","x-component":"FormCollapse.CollapsePanel","x-component-props":{header:Ot("Dimensions"),key:"dimensions"},properties:{dimensions:jy({field:{type:"string","x-decorator":"FormItem","x-component":"Cascader","x-component-props":{placeholder:'{{t("Field")}}',fieldNames:{label:"title",value:"name",children:"children"}},enum:"{{ fieldOptions }}",required:!0},format:{type:"string","x-decorator":"FormItem","x-component":"Select","x-component-props":{placeholder:'{{t("Format")}}',style:{maxWidth:"120px"}},"x-reactions":"{{ useFormatterOptions }}","x-visible":"{{ $self.dataSource && $self.dataSource.length }}"},alias:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Alias")}}',style:{minWidth:"100px"}}}},{"x-component-props":{style:{overflow:"auto"}}})}},pane3:{type:"void","x-component":"FormCollapse.CollapsePanel","x-component-props":{header:Ot("Filter"),key:"filter"},properties:{filter:{type:"object","x-decorator":"FormItem","x-decorator-props":{style:{overflow:"auto"}},enum:"{{ filterOptions }}","x-component":"Filter","x-component-props":{dynamicComponent:"FilterDynamicComponent"}}}},pane4:{type:"void","x-component":"FormCollapse.CollapsePanel","x-component-props":{header:Ot("Sort"),key:"sort",style:{border:"none"}},properties:{orders:jy({field:{type:"string","x-decorator":"FormItem","x-component":"Cascader","x-component-props":{placeholder:'{{t("Field")}}'},"x-reactions":"{{ useOrderOptions }}",required:!0},order:{type:"string","x-decorator":"FormItem","x-component":"Radio.Group","x-component-props":{defaultValue:"ASC",optionType:"button",style:{width:"128px"}},enum:["ASC","DESC"]}},{"x-reactions":"{{ useOrderReaction }}","x-component-props":{style:{overflow:"auto"}}})}}}},limit:{title:'{{t("Limit")}}',type:"number","x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{defaultValue:2e3,min:1,style:{width:"100px"}}}}},cache:{type:"object",properties:{enabled:{type:"boolean",title:'{{t("Enable cache")}}',"x-decorator":"FormItem","x-component":"Switch"},ttl:{type:"number",title:'{{t("TTL (second)")}}',"x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{defaultValue:60,min:1,style:{width:"100px"}}}}}}}}},hz={type:"void",properties:{transform:{type:"array","x-decorator":"FormItem","x-component":"ArrayItems",items:{type:"object",properties:{space:{type:"void","x-component":"Space","x-component-props":{wrap:!0},properties:{sort:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.SortHandle"},field:{type:"string","x-decorator":"FormItem","x-component":"Select","x-component-props":{placeholder:'{{t("Field")}}'},"x-use-component-props":"useFieldSelectProps","x-reactions":"{{ useChartFields }}"},type:{type:"string","x-decorator":"FormItem","x-component":"Select","x-component-props":{placeholder:'{{t("Type")}}'},"x-use-component-props":"useFieldTypeSelectProps"},format:{type:"string","x-decorator":"FormItem","x-component":"Select","x-component-props":{placeholder:'{{t("Transformer")}}',style:{maxWidth:"200px"}},"x-use-component-props":"useTransformerSelectProps","x-reactions":"{{ useTransformers }}","x-visible":"{{ $self.dataSource && $self.dataSource.length }}"},argument:{type:"string","x-decorator":"FormItem","x-component":"TransformerDynamicComponent","x-reactions":"{{ useArgument }}"},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:'{{t("Add transformation")}}',"x-component":"ArrayItems.Addition"}}}}};function pz(t){const{value:e,onChange:n,renderSchemaComponent:r}=t,i=uz();return Y.jsx(B.Variable.Input,{value:e,onChange:n,scope:i,children:r()})}const Pi=V.createContext({visible:!0});Pi.displayName="ChartConfigContext";const vz=t=>{var a;const{insertAdjacent:e}=B.useDesignable(),[n,r]=V.useState(!1),[i,o]=V.useState({});return Y.jsxs(Pi.Provider,{value:{visible:n,setVisible:r,current:i,setCurrent:o},children:[t.children,Y.jsx(NS,dt(tt({},(a=i.field)==null?void 0:a.decoratorProps),{disableAutoRefresh:!0,children:Y.jsx(ai,{insert:(s,l)=>e("beforeEnd",s,l)})}))]})},gz=t=>{const{schema:e}=t,n=ft.useField();return e?Y.jsx(B.SchemaComponent,{schema:{type:"void",properties:{[e.name]:dt(tt({type:"void"},e),{value:n.value,"x-component-props":dt(tt({},e["x-component-props"]),{defaultValue:n.value,onChange:r=>{if(typeof r=="object"&&(r!=null&&r.target)){n.value=r.target.value;return}n.value=r}})})}}}):null},{Paragraph:qSt,Text:yz}=xt.Typography,ai=t=>{const{t:e}=Bt(),{service:n}=V.useContext(Un),{visible:r,setVisible:i,current:o}=V.useContext(Pi),{schema:a,field:s,dataSource:l,collection:c,initialValues:u}=o||{},{dn:f}=B.useDesignable(),{modal:d}=xt.App.useApp(),{insert:h}=t,p=jS(),v=Va(l,c),y=(P=!1)=>{var I;if(!_.modified)return;const C=(I=_.values.config)==null?void 0:I.chartType;if(!C)return;const A=p[C];if(!(A==null?void 0:A.init)){P&&(_.values.config.general={},_.values.config.advanced={});return}const T=_.values.query,N=il(v,T),{general:j,advanced:L}=A.init(N,T);(j||P)&&(_.values.config.general=j),(L||P)&&(_.values.config.advanced=L||{})},[g,m]=V.useState([]),[b,x]=V.useState([]),w=(P,C)=>{var T,N;const A=((T=P.values.query)==null?void 0:T.measures.filter(j=>j.field))||[],k=((N=P.values.query)==null?void 0:N.dimensions.filter(j=>j.field))||[];on.isEqual(A,g)&&on.isEqual(k,b)||(C==null||C(),m(on.cloneDeep(A)),x(on.cloneDeep(k)))},O=MB(),_=V.useMemo(()=>{var A;const P=u||(a==null?void 0:a["x-decorator-props"]),C=(P==null?void 0:P.config)||{};return On.createForm({values:dt(tt({},P),{config:dt(tt({chartType:O},C),{title:C.title||((A=s==null?void 0:s.componentProps)==null?void 0:A.title)}),collection:[l,c]}),effects:k=>{On.onFieldChange("config.chartType",()=>y(!0)),On.onFormInit(()=>w(k))}})},[s,r,l,c]),S=()=>Y.jsx(xt.Button,{type:"link",loading:n==null?void 0:n.loading,icon:Y.jsx(Qe.RightSquareOutlined,{}),onClick:()=>In(this,null,function*(){const P=_.query("query").take();try{yield P==null?void 0:P.validate()}catch(C){return}try{yield n.runAsync(l,c,_.values.query,!0)}catch(C){console.log(C)}w(_,y)}),children:e("Run query")}),E=V.useRef(null),M=V.useRef(null);return V.useEffect(()=>{var P;r&&n.run(c,(P=s==null?void 0:s.decoratorProps)==null?void 0:P.query,"configure")},[r]),Y.jsx(xt.Modal,{title:e("Configure chart"),open:r,onOk:()=>{const{query:P,config:C,transform:A,mode:k}=_.values,{title:T,bordered:N}=C||{},j=()=>{var I;i(!1),(I=o.service)==null||I.run(l,c,P),E.current.scrollTop=0,M.current.scrollTop=0,n.mutate(void 0)},L={query:P,config:C,dataSource:l,collection:c,transform:A,mode:k||"builder"};if(a&&a["x-uid"]){a["x-component-props"]=dt(tt({},a["x-component-props"]),{title:T,bordered:N}),a["x-decorator-props"]=L,s.decoratorProps=L,s.componentProps=dt(tt({},s.componentProps),{title:T,bordered:N}),s["x-acl-action"]=`${c}:list`,f.emit("patch",{schema:a}),j();return}h(B.gridRowColWrap(LS(L)),{onSuccess:j})},onCancel:()=>{d.confirm({title:e("Are you sure to cancel?"),content:e("You changes are not saved. If you click OK, your changes will be lost."),okButtonProps:{danger:!0},onOk:()=>{i(!1),E.current.scrollTop=0,M.current.scrollTop=0,n.mutate(void 0)}})},width:"95%",className:zo.css`
|
|
10
|
+
(function(ct,B){typeof exports=="object"&&typeof module!="undefined"?B(exports,require("@nocobase/client"),require("react/jsx-runtime"),require("react"),require("@ant-design/icons"),require("@formily/antd-v5"),require("@formily/core"),require("@formily/react"),require("antd"),require("lodash"),require("react-i18next"),require("dayjs"),require("@formily/shared"),require("@nocobase/utils/client"),require("ahooks"),require("@emotion/css")):typeof define=="function"&&define.amd?define(["exports","@nocobase/client","react/jsx-runtime","react","@ant-design/icons","@formily/antd-v5","@formily/core","@formily/react","antd","lodash","react-i18next","dayjs","@formily/shared","@nocobase/utils/client","ahooks","@emotion/css"],B):(ct=typeof globalThis!="undefined"?globalThis:ct||self,B(ct["@nocobase/plugin-data-visualization"]={},ct["@nocobase/client"],ct.jsxRuntime,ct.react,ct["@ant-design/icons"],ct["@formily/antd-v5"],ct["@formily/core"],ct["@formily/react"],ct.antd,ct.lodash,ct["react-i18next"],ct.dayjs,ct["@formily/shared"],ct["@nocobase/utils"],ct.ahooks,ct["@emotion/css"]))})(this,function(ct,B,Y,V,Qe,se,On,ft,xt,on,Py,Ue,Bo,au,dr,zo){"use strict";var HSt=Object.defineProperty,VSt=Object.defineProperties;var USt=Object.getOwnPropertyDescriptors;var My=Object.getOwnPropertySymbols;var K9=Object.prototype.hasOwnProperty,Z9=Object.prototype.propertyIsEnumerable;var PS=(ct,B)=>(B=Symbol[ct])?B:Symbol.for("Symbol."+ct),Ce=Math.pow,AS=(ct,B,Y)=>B in ct?HSt(ct,B,{enumerable:!0,configurable:!0,writable:!0,value:Y}):ct[B]=Y,tt=(ct,B)=>{for(var Y in B||(B={}))K9.call(B,Y)&&AS(ct,Y,B[Y]);if(My)for(var Y of My(B))Z9.call(B,Y)&&AS(ct,Y,B[Y]);return ct},dt=(ct,B)=>VSt(ct,USt(B));var CS=(ct,B)=>{var Y={};for(var V in ct)K9.call(ct,V)&&B.indexOf(V)<0&&(Y[V]=ct[V]);if(ct!=null&&My)for(var V of My(ct))B.indexOf(V)<0&&Z9.call(ct,V)&&(Y[V]=ct[V]);return Y};var oi=(ct,B,Y)=>(AS(ct,typeof B!="symbol"?B+"":B,Y),Y);var In=(ct,B,Y)=>new Promise((V,Qe)=>{var se=xt=>{try{ft(Y.next(xt))}catch(on){Qe(on)}},On=xt=>{try{ft(Y.throw(xt))}catch(on){Qe(on)}},ft=xt=>xt.done?V(xt.value):Promise.resolve(xt.value).then(se,On);ft((Y=Y.apply(ct,B)).next())}),XSt=function(ct,B){this[0]=ct,this[1]=B};var Q9=ct=>{var B=ct[PS("asyncIterator")],Y=!1,V,Qe={};return B==null?(B=ct[PS("iterator")](),V=se=>Qe[se]=On=>B[se](On)):(B=B.call(ct),V=se=>Qe[se]=On=>{if(Y){if(Y=!1,se==="throw")throw On;return On}return Y=!0,{done:!1,value:new XSt(new Promise(ft=>{var xt=B[se](On);if(!(xt instanceof Object))throw TypeError("Object expected");ft(xt)}),1)}}),Qe[PS("iterator")]=()=>Qe,V("next"),"throw"in B?V("throw"):Qe.throw=se=>{throw se},"return"in B&&V("return"),Qe};function vB(t,e){for(var n=0;n<e.length;n++){const r=e[n];if(typeof r!="string"&&!Array.isArray(r)){for(const i in r)if(i!=="default"&&!(i in t)){const o=Object.getOwnPropertyDescriptor(r,i);o&&Object.defineProperty(t,i,o.get?o:{enumerable:!0,get:()=>r[i]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}const kS="data-visualization";function Ot(t){return B.i18n.t(t,{ns:[kS,"client"]})}function Bt(){return Py.useTranslation([kS,"client"],{nsMode:"fallback"})}const Ay={datetime:[{label:Ot("YYYY"),value:"YYYY"},{label:Ot("MM"),value:"MM"},{label:Ot("DD"),value:"DD"},{label:Ot("YYYY-MM"),value:"YYYY-MM"},{label:Ot("YYYY-MM-DD"),value:"YYYY-MM-DD"},{label:Ot("YYYY-MM-DD hh:mm"),value:"YYYY-MM-DD hh:mm"},{label:Ot("YYYY-MM-DD hh:mm:ss"),value:"YYYY-MM-DD hh:mm:ss"}],date:[{label:Ot("YYYY"),value:"YYYY"},{label:Ot("MM"),value:"MM"},{label:Ot("DD"),value:"DD"},{label:Ot("YYYY-MM"),value:"YYYY-MM"},{label:Ot("YYYY-MM-DD"),value:"YYYY-MM-DD"}],time:[{label:Ot("hh:mm:ss"),value:"hh:mm:ss"},{label:Ot("hh:mm"),value:"hh:mm"},{label:Ot("hh"),value:"hh"}]},gB=V.createContext(null),Cy={didCatch:!1,error:null};let TS=class extends V.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=Cy}static getDerivedStateFromError(e){return{didCatch:!0,error:e}}resetErrorBoundary(){const{error:e}=this.state;if(e!==null){for(var n,r,i=arguments.length,o=new Array(i),a=0;a<i;a++)o[a]=arguments[a];(n=(r=this.props).onReset)===null||n===void 0||n.call(r,{args:o,reason:"imperative-api"}),this.setState(Cy)}}componentDidCatch(e,n){var r,i;(r=(i=this.props).onError)===null||r===void 0||r.call(i,e,n)}componentDidUpdate(e,n){const{didCatch:r}=this.state,{resetKeys:i}=this.props;if(r&&n.error!==null&&yB(e.resetKeys,i)){var o,a;(o=(a=this.props).onReset)===null||o===void 0||o.call(a,{next:i,prev:e.resetKeys,reason:"keys"}),this.setState(Cy)}}render(){const{children:e,fallbackRender:n,FallbackComponent:r,fallback:i}=this.props,{didCatch:o,error:a}=this.state;let s=e;if(o){const l={error:a,resetErrorBoundary:this.resetErrorBoundary};if(V.isValidElement(i))s=i;else if(typeof n=="function")s=n(l);else if(r)s=V.createElement(r,l);else throw a}return V.createElement(gB.Provider,{value:{didCatch:o,error:a,resetErrorBoundary:this.resetErrorBoundary}},s)}};function yB(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return t.length!==e.length||t.some((n,r)=>!Object.is(n,e[r]))}const LS=(t,e={})=>{const{collection:n,config:r}=t,{title:i,bordered:o}=r||{};return{type:"void","x-decorator":"ChartRendererProvider","x-decorator-props":t,"x-acl-action":`${n}:list`,"x-designer":"ChartRenderer.Designer","x-component":"CardItem","x-component-props":{size:"small",title:i,bordered:o},"x-initializer":"charts:addBlock",properties:{actions:{type:"void","x-decorator":"div","x-decorator-props":{style:{position:"absolute",top:0,right:0,zIndex:10}},"x-component":"ActionBar","x-component-props":{style:{marginRight:"var(--nb-designer-offset)",marginTop:"var(--nb-designer-offset)"}},"x-initializer":"chart:configureActions"},[Bo.uid()]:{type:"void","x-component":"ChartRenderer","x-component-props":e}}}},su=t=>{let e,n;return Array.isArray(t)?t.length===1?n=t[0]:t.length>1&&([e,n]=t):n=t,{target:e,name:n,alias:e?`${e}.${n}`:n}},vh=(t,e)=>{var o,a;const{target:n,name:r}=su(e);return n?(a=(o=t.find(s=>s.name===n))==null?void 0:o.targetFields)==null?void 0:a.find(s=>s.name===r):t.find(s=>s.name===r)},il=(t,e)=>{const n=s=>s.map(l=>{const c=vh(t,l.field);return dt(tt({},c),{key:l.alias||(c==null?void 0:c.key),label:l.alias||(c==null?void 0:c.label),value:l.alias||(c==null?void 0:c.value),query:l})}),r=e.measures||[],i=e.dimensions||[];return[...new Map([...n(r),...n(i)].map(s=>[s.value,s])).values()]},mB=(t,e,n)=>{const r=(i,o)=>{var l;const a=(l=i.uiSchema)==null?void 0:l.enum;if(!a||!Array.isArray(a))return o;if(Array.isArray(o))return o.map(c=>r(i,c));const s=a.find(c=>{var u;return c.value===(((u=o==null?void 0:o.toString)==null?void 0:u.call(o))||o)});return ft.Schema.compile((s==null?void 0:s.label)||o,n)};return e.map(i=>{const o={};return Object.entries(i).forEach(([a,s])=>{const l=t.find(c=>{var u;return c.value===a&&!((u=c==null?void 0:c.query)!=null&&u.aggregation)});if(!l){o[a]=s;return}switch(l.interface){case"select":case"radioGroup":case"multipleSelect":o[a]=r(l,s);break;default:o[a]=s}}),o})},ky=t=>{if(typeof t=="object"&&t!==null)if(Array.isArray(t)){const e=t.map(n=>ky(n)).filter(Boolean);return e.length>0?e:null}else{const e={};for(const n in t){const r=ky(t[n]);r!=null&&!(typeof r=="object"&&Object.keys(r).length===0)&&(e[n]=r)}return Object.keys(e).length>0?e:null}else if(typeof t=="string"&&t.startsWith("{{$nFilter.")&&t.endsWith("}}"))return null;return t},bB=(t,e)=>{const n=e.split(".");let r=on.get(t,n.slice(0,-1).join("."));return Array.isArray(r)?r=r.map(i=>on.get(i,n.slice(-1)[0])):r=on.get(r,n.slice(-1)[0]),r},xB=t=>({boolean:"Checkbox",integer:"InputNumber",bigInt:"InputNumber",double:"InputNumber",decimal:"InputNumber",date:"DatePicker",string:"Input"})[t],wB=t=>({boolean:"boolean",integer:"integer",bigInt:"integer",double:"number",decimal:"number",date:"datetime",string:"input"})[t],ol=V.createContext({});ol.displayName="ChartDataContext";const OB=t=>{const[e,n]=V.useState({}),r=dr.useMemoizedFn((o,{dataSource:a,collection:s,service:l,query:c})=>{n(u=>dt(tt({},u),{[o]:{dataSource:a,collection:s,service:l,query:c}}))}),i=dr.useMemoizedFn(o=>{n(a=>dt(tt({},a),{[o]:void 0}))});return Y.jsx(ol.Provider,{value:{charts:e,addChart:r,removeChart:i},children:t.children})},Lr=V.createContext({});Lr.displayName="ChartFilterContext";const _B=t=>{const[e,n]=V.useState(!1),[r,i]=V.useState(!1),[o,a]=V.useState({}),[s,l]=V.useState({collapsed:!1,row:1}),[c,u]=V.useState(),f=dr.useMemoizedFn((y,g)=>{a(m=>dt(tt({},m),{[y]:tt(tt({},m[y]||{}),g)}))}),d=dr.useMemoizedFn(y=>{a(g=>{const m=tt({},g);return m[y]=void 0,m})}),h=dr.useMemoizedFn(u),p=dr.useMemoizedFn(i),v=({collapsed:y,row:g})=>{l(m=>({collapsed:y!==void 0?y:m.collapsed,row:g!==void 0?g:m.row}))};return V.useEffect(()=>n(!0),[]),Y.jsx(Lr.Provider,{value:{ready:e,enabled:r,setEnabled:p,fields:o,setField:f,removeField:d,collapse:s,setCollapse:v,form:c,setForm:h},children:t.children})},lu=V.createContext({}),SB=t=>{const[e,n]=V.useState(!1),r=V.useRef({}),i=dr.useMemoizedFn((s,{service:l})=>{r.current[s]={service:l}}),o=dr.useMemoizedFn(s=>{const l=r.current[s];l&&(r.current[s]={service:l.service,selfAutoRefresh:!0})}),a=dr.useMemoizedFn(()=>{for(const s of Object.values(r.current))s==null||s.service.refresh()});return V.useEffect(()=>{if(!e)return;const s=setInterval(()=>{const l=Object.values(r.current).filter(c=>!c.selfAutoRefresh);for(const c of l)c==null||c.service.refresh()},e*1e3);return()=>clearInterval(s)},[e]),Y.jsx(lu.Provider,{value:{addChart:i,removeChart:o,autoRefresh:e,setAutoRefresh:n,refreshCharts:a},children:t.children})},Un=V.createContext({});Un.displayName="ChartRendererContext";const NS=t=>{const{query:e,config:n,collection:r,transform:i,dataSource:o=B.DEFAULT_DATA_SOURCE_KEY,disableAutoRefresh:a}=t,{addChart:s}=V.useContext(ol),{addChart:l,removeChart:c}=V.useContext(lu),{ready:u,form:f,enabled:d}=V.useContext(Lr),{getFilter:h,hasFilter:p,appendFilter:v,parseFilter:y}=sl(),g=ft.useFieldSchema(),m=B.useAPIClient(),[b,x]=V.useState(!1),[w,O]=V.useState(!1),_=B.useRequest((S,E,M,P)=>In(this,null,function*(){var j,L;if(!(E&&((j=M==null?void 0:M.measures)!=null&&j.length))||d&&!f)return;const C=h(),A=yield y(M.filter),k=dt(tt({},M),{filter:A}),T={dataSource:S,collection:E,query:k},N=!P&&p(T,C)?v(T,C):k;try{const I=yield m.request({url:"charts:query",method:"POST",data:dt(tt({uid:g==null?void 0:g["x-uid"],dataSource:S,collection:E},N),{filter:ky(N.filter),dimensions:((M==null?void 0:M.dimensions)||[]).map(F=>{const $=tt({},F);if(F.format&&!F.alias){const{alias:R}=su(F.field);$.alias=R}return $}),measures:((M==null?void 0:M.measures)||[]).map(F=>{const $=tt({},F);if(F.aggregation&&!F.alias){const{alias:R}=su(F.field);$.alias=R}return $})})});return(L=I==null?void 0:I.data)==null?void 0:L.data}catch(I){throw console.error(I),I}finally{!P&&(g!=null&&g["x-uid"])&&(s(g==null?void 0:g["x-uid"],{dataSource:S,collection:E,service:_,query:M}),b||l==null||l(g==null?void 0:g["x-uid"],{service:_}))}}),{defaultParams:[o,r,e],ready:u&&(!d||!!f)});return V.useEffect(()=>{if(a)return;if(!b){l==null||l(g==null?void 0:g["x-uid"],{service:_});return}c==null||c(g==null?void 0:g["x-uid"]);const S=b,E=setInterval(_.refresh,S*1e3);return()=>{clearInterval(E)}},[b,a]),Y.jsx(B.CollectionManagerProvider,{dataSource:o,children:Y.jsx(B.MaybeCollectionProvider,{collection:r,children:Y.jsx(Un.Provider,{value:{dataSource:o,collection:r,config:n,transform:i,service:_,query:e,autoRefresh:b,setAutoRefresh:x,showActionBar:w},children:Y.jsx("div",{onMouseOver:()=>O(!0),onMouseOut:()=>O(!1),children:t.children})})})})};class EB{constructor(){oi(this,"charts",new Map)}setGroup(e,n){this.charts.set(e,n)}addGroup(e,n){if(this.charts.has(e))throw new Error(`[data-visualization] Chart group "${e}" already exists`);this.setGroup(e,n)}add(e,n){var r;this.charts.has(e)||this.setGroup(e,[]),(r=this.charts.get(e))==null||r.push(n)}getChartTypes(){const e=[];this.charts.forEach((r,i)=>{const o=r.map(a=>({key:`${i}.${a.name}`,label:Ot(a.title),value:`${i}.${a.name}`}));e.push({label:Ot(i),children:o})});const n=e.findIndex(r=>r.label===Ot("Built-in"));if(n>-1){const[r]=e.splice(n,1);e.unshift(r)}return e}getCharts(){const e={};return this.charts.forEach((n,r)=>{n.forEach(i=>{e[`${r}.${i.name}`]=i})}),e}getChart(e){return this.getCharts()[e]}}const IS=()=>B.usePlugin(Ey).charts.getChartTypes(),MB=()=>{var e,n,r;return(r=(n=(e=IS()[0])==null?void 0:e.children)==null?void 0:n[0])==null?void 0:r.value},jS=()=>B.usePlugin(Ey).charts.getCharts(),PB=t=>B.usePlugin(Ey).charts.getChart(t);function AB(){const{t}=Bt(),{setVisible:e,setCurrent:n}=V.useContext(Pi),{removeChart:r}=V.useContext(ol),{service:i}=V.useContext(Un),o=ft.useField(),a=ft.useFieldSchema(),{insertAdjacent:s}=B.useDesignable(),l=B.useDataSource(),{name:c,title:u}=B.useCollection_deprecated();return Y.jsxs(B.GeneralSchemaDesigner,{disableInitializer:!0,title:u||c,children:[Y.jsx(B.SchemaSettingsItem,{title:"Configure",onClick:()=>In(this,null,function*(){n({schema:a,field:o,dataSource:l.key,collection:c,service:i,data:i.data}),e(!0)}),children:t("Configure")},"configure"),Y.jsx(B.SchemaSettingsItem,{title:"Duplicate",onClick:()=>s("afterEnd",B.gridRowColWrap(LS(a==null?void 0:a["x-decorator-props"]))),children:t("Duplicate")},"duplicate"),Y.jsx(B.SchemaSettingsDivider,{}),Y.jsx(B.SchemaSettingsRemove,{breakRemoveOn:{"x-component":"ChartV2Block"},confirm:{onOk:()=>{r(a["x-uid"])}}})]})}const{Paragraph:CB,Text:kB}=xt.Typography,TB=({error:t})=>{const{t:e}=Bt();return Y.jsx("div",{style:{backgroundColor:"white"},children:Y.jsx(xt.Result,{status:"error",title:e("Render Failed"),subTitle:e("Please check the configuration."),children:Y.jsx(CB,{copyable:!0,children:Y.jsx(kB,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:t.message})})})})},Ty=t=>{const{t:e}=Bt(),n=V.useContext(Un),{config:r,transform:i,dataSource:o,collection:a,service:s,data:l}=n,c=Va(o,a),u=FS(l,o,a),f=(r==null?void 0:r.general)||{},d=(r==null?void 0:r.advanced)||{},h=B.useAPIClient(),p=PB(r==null?void 0:r.chartType),v=h.auth.getLocale(),y=GB(i,v),g=p==null?void 0:p.getProps({data:u,general:f,advanced:d,fieldProps:Object.keys(u[0]||{}).reduce((x,w)=>{if(!x[w]){const O=vh(c,w.split(".")),_=y[w];x[w]={label:(O==null?void 0:O.label)||w,transformer:_,interface:O==null?void 0:O.interface}}return x},{})}),m=ft.Schema.compile(g),b=p==null?void 0:p.Component;return p?!(u&&u.length)&&!s.loading?Y.jsx(xt.Empty,{image:xt.Empty.PRESENTED_IMAGE_SIMPLE,description:e("No data")}):Y.jsx(xt.Spin,{spinning:s.loading,children:Y.jsx(TS,{onError:x=>{console.error(x)},FallbackComponent:TB,children:Y.jsx(b,tt({},m))})}):Y.jsx(xt.Empty,{image:xt.Empty.PRESENTED_IMAGE_SIMPLE,description:e("Please configure chart")})};Ty.Designer=AB;const cu=t=>{const{current:e}=V.useContext(Pi),{dataSource:n,collection:r}=e||{};t=t||n||B.DEFAULT_DATA_SOURCE_KEY;const i=B.useDataSourceManager(),o=i.getDataSource(t),a=i.collectionFieldInterfaceManager;return{cm:o==null?void 0:o.collectionManager,fim:a,collection:r}},LB=t=>(t||[]).filter(n=>n.interface).map(n=>{var r;return dt(tt({},n),{key:n.name,label:((r=n.uiSchema)==null?void 0:r.title)||n.name,value:n.name})}),Va=(t,e)=>{const{t:n}=Py.useTranslation(),{cm:r,fim:i,collection:o}=cu(t),a=r.getCollectionFields(e||o),s=LB(a);return V.useMemo(()=>s.map(l=>{var d,h,p,v;const c=(d=i.getFieldInterface(l.interface))==null?void 0:d.filterable,u=ft.Schema.compile(((h=l.uiSchema)==null?void 0:h.title)||l.name,{t:n});if(!(c&&(c!=null&&c.nested||(p=c==null?void 0:c.children)!=null&&p.length)))return dt(tt({},l),{label:u});let f=[];if(c!=null&&c.nested){const y=(r.getCollectionFields(l.target)||[]).filter(g=>g.interface).map(g=>{var m;return dt(tt({},g),{key:`${l.name}.${g.name}`,label:`${u} / ${ft.Schema.compile(((m=g.uiSchema)==null?void 0:m.title)||g.name,{t:n})}`,value:`${l.name}.${g.name}`})});f=[...f,...y]}if((v=c==null?void 0:c.children)!=null&&v.length){const y=c.children.map(g=>{var m;return dt(tt({},g),{key:`${l.name}.${g.name}`,label:`${u} / ${ft.Schema.compile(((m=g.schema)==null?void 0:m.title)||g.title||g.name,{t:n})}`,value:`${l.name}.${g.name}`})});f=[...f,...y]}return dt(tt({},l),{label:u,targetFields:f})}),[s])},DS=t=>e=>{const n=e.query("query").get("value")||{},r=il(t,n);e.dataSource=r},NB=t=>e=>{var o;const n=e.query(".field").get("value");if(!n){e.dataSource=[];return}let r=[];switch((o=vh(t,n))==null?void 0:o.interface){case"datetime":case"datetimeTz":case"unixTimestamp":case"datetimeNoTz":case"createdAt":case"updatedAt":r=Ay.datetime;break;case"date":r=Ay.date;break;case"time":r=Ay.time;break;default:r=[]}e.dataSource=r},IB=()=>{const{t}=Py.useTranslation(),e=B.useDataSourceManager(),{parseAction:n}=B.useACLRoleContext(),i=e.getAllCollections({filterCollection:o=>n(`${o.name}:list`)}).filter(({key:o,isDBInstance:a})=>o===B.DEFAULT_DATA_SOURCE_KEY||a).map(({key:o,displayName:a,collections:s})=>({value:o,label:a,children:s.map(l=>({value:l.name,label:l.title}))}));return V.useMemo(()=>ft.Schema.compile(i,{t}),[i])},jB=(t,e)=>n=>{const r=n.query("query").get("value")||{},{measures:i=[]}=r;if(!i.some(s=>s.aggregation)){n.componentProps.fieldNames={label:"title",value:"name",children:"children"},n.dataSource=t;return}const a=il(e,r);n.componentProps.fieldNames={},n.dataSource=a},DB=(t,e)=>n=>{const r=n.query("query").get("value")||{},{measures:i=[]}=r,o=i.some(u=>u.aggregation);let a=t;const s=[];o?(a=il(e,r),a.forEach(u=>{s.push(u.value)})):a.forEach(u=>{const f=u.children||[];f.length||s.push(u.value||u.name),f.forEach(d=>{s.push(`${u.name}.${d.name}`)})});const c=(n.value||[]).reduce((u,f)=>{const{alias:d}=su(f.field);return(!f.field||s.includes(d))&&u.push(f),u},[]);n.setValue(c)},FS=(t,e,n)=>{var c;const{t:r}=Bt(),{service:i,query:o}=V.useContext(Un),a=Va(e,n),s=ft.useForm(),l=il(a,((c=s==null?void 0:s.values)==null?void 0:c.query)||o);return mB(l,(i==null?void 0:i.data)||t||[],{t:r})},FB=(t,e,n=2,r=[])=>{const{cm:i,fim:o,collection:a}=cu(t),l=i.getCollectionFields(e||a).filter(d=>!r.includes(d.interface)),c=(d,h,p)=>{var x;if(!d.interface||d.isForeignKey)return;const v=o.getFieldInterface(d.interface);if(!(v!=null&&v.filterable))return;const{nested:y,children:g}=v.filterable,m=p?`${p}.${d.name}`:d.name,b=dt(tt({},d),{name:d.name,title:((x=d==null?void 0:d.uiSchema)==null?void 0:x.title)||d.name,schema:d==null?void 0:d.uiSchema,key:m});if(!(d.target&&h>n)){if(h>n)return b;if(g!=null&&g.length&&(b.children=g.map(w=>dt(tt({},w),{key:`${d.name}.${w.name}`}))),y){const w=i.getCollectionFields(d.target).filter(_=>!r.includes(_.interface)),O=u(w,h+1,d.name).filter(Boolean);b.children=b.children||[],b.children.push(...O)}return b}},u=(d,h,p)=>{const v=[];return d.forEach(y=>{const g=c(y,h,p);g&&v.push(g)}),v};return u(l,1)},$B=(t,e)=>{const{cm:n,fim:r,collection:i}=cu(t);return V.useMemo(()=>{const o=n.getCollectionFields(e||i),a=(c,u)=>{var y,g;if(!c.interface||c.isForeignKey)return;const f=r.getFieldInterface(c.interface);if(!(f!=null&&f.filterable))return;const{nested:d,children:h,operators:p}=f.filterable,v={name:c.name,title:((y=c==null?void 0:c.uiSchema)==null?void 0:y.title)||c.name,schema:c==null?void 0:c.uiSchema,operators:((g=p==null?void 0:p.filter)==null?void 0:g.call(p,m=>!(m!=null&&m.visible)||m.visible(c)))||[],interface:c.interface};if(!(c.target&&u>2)){if(u>2)return v;if(h!=null&&h.length&&(v.children=h),d){const m=n.getCollectionFields(c.target),b=s(m,u+1).filter(Boolean);v.children=v.children||[],v.children.push(...b)}return v}},s=(c,u)=>{const f=[];return c.forEach(d=>{const h=a(d,u);h&&f.push(h)}),f};return s(o,1)},[e,n,r])},Yo={general:{Prefix:{schema:{"x-component":"Input"},fn:(t,e)=>e?`${e}${t}`:t},Suffix:{schema:{"x-component":"Input"},fn:(t,e)=>e?`${t}${e}`:t}},datetime:{Format:{schema:{"x-component":"AutoComplete","x-component-props":{allowClear:!0,style:{minWidth:200}},enum:[{label:"YYYY",value:"YYYY"},{label:"YYYY-MM",value:"YYYY-MM"},{label:"YYYY-MM-DD",value:"YYYY-MM-DD"},{label:"YYYY-MM-DD hh:mm",value:"YYYY-MM-DD hh:mm"},{label:"YYYY-MM-DD hh:mm:ss",value:"YYYY-MM-DD hh:mm:ss"}]},fn:(t,e)=>Ue(t).format(e)},YYYY:{label:"YYYY (Deprecated, use Format instead)",fn:t=>Ue(t).format("YYYY")},MM:{label:"MM (Deprecated, use Format instead)",fn:t=>Ue(t).format("MM")},DD:{label:"DD (Deprecated, use Format instead)",fn:t=>Ue(t).format("DD")},"YYYY-MM":{label:"YYYY-MM (Deprecated, use Format instead)",fn:t=>Ue(t).format("YYYY-MM")},"YYYY-MM-DD":{label:"YYYY-MM-DD (Deprecated, use Format instead)",fn:t=>Ue(t).format("YYYY-MM-DD")},"YYYY-MM-DD hh:mm":{label:"YYYY-MM-DD hh:mm (Deprecated, use Format instead)",fn:t=>Ue(t).format("YYYY-MM-DD hh:mm")},"YYYY-MM-DD hh:mm:ss":{label:"YYYY-MM-DD hh:mm:ss (Deprecated, use Format instead)",fn:t=>Ue(t).format("YYYY-MM-DD hh:mm:ss")}},date:{Format:{schema:{"x-component":"AutoComplete","x-component-props":{allowClear:!0,style:{minWidth:200}},enum:[{label:"YYYY",value:"YYYY"},{label:"MM",value:"MM"},{label:"DD",value:"DD"},{label:"YYYY-MM",value:"YYYY-MM"},{label:"YYYY-MM-DD",value:"YYYY-MM-DD"}]},fn:(t,e)=>Ue(t).format(e)},YYYY:{label:"YYYY (Deprecated, use Format instead)",fn:t=>Ue(t).format("YYYY")},MM:{label:"MM (Deprecated, use Format instead)",fn:t=>Ue(t).format("MM")},DD:{label:"DD (Deprecated, use Format instead)",fn:t=>Ue(t).format("DD")},"YYYY-MM":{label:"YYYY-MM (Deprecated, use Format instead)",fn:t=>Ue(t).format("YYYY-MM")},"YYYY-MM-DD":{label:"YYYY-MM-DD (Deprecated, use Format instead)",fn:t=>Ue(t).format("YYYY-MM-DD")}},time:{Format:{schema:{"x-component":"AutoComplete","x-component-props":{allowClear:!0,style:{minWidth:200}},enum:[{label:"hh:mm:ss",value:"hh:mm:ss"},{label:"hh:mm",value:"hh:mm"},{label:"hh",value:"hh"}]},fn:(t,e)=>Ue(t).format(e)},"hh:mm:ss":{label:"hh:mm:ss (Deprecated, use Format instead)",fn:t=>Ue(t).format("hh:mm:ss")},"hh:mm":{label:"hh:mm (Deprecated, use Format instead)",fn:t=>Ue(t).format("hh:mm")},hh:{label:"hh (Deprecated, use Format instead)",fn:t=>Ue(t).format("hh")}},number:{Precision:{schema:{"x-component":"Select",enum:[{label:"1",value:0},{label:"1.0",value:1},{label:"1.00",value:2},{label:"1.000",value:3}]},fn:(t,e)=>Number(t.toFixed(e))},Separator:{schema:{"x-component":"Select",enum:[{label:"100,000.00",value:"en-US"},{label:"100.000,00",value:"de-DE"},{label:"100 000.00",value:"ru-RU"}]},fn:(t,e)=>{switch(e){case"en-US":return t.toLocaleString("en-US",{minimumFractionDigits:2});case"de-DE":return t.toLocaleString("de-DE",{minimumFractionDigits:2});case"ru-RU":return t.toLocaleString("ru-RU",{minimumFractionDigits:2});default:return t}}},Percent:t=>new Intl.NumberFormat("en-US",{style:"percent",minimumFractionDigits:2,maximumFractionDigits:2}).format(t),Currency:{label:"Currency (Deprecated, use Separator & Prefix instead)",fn:(t,e="en-US")=>{const n={"zh-CN":"CNY","en-US":"USD","ja-JP":"JPY","ko-KR":"KRW","pt-BR":"BRL","ru-RU":"RUB","tr-TR":"TRY","es-ES":"EUR"}[e]||"USD";return new Intl.NumberFormat(e,{style:"currency",currency:n}).format(t)}},Exponential:t=>(+t).toExponential(),Abbreviation:{schema:{"x-component":"Select",enum:[{label:"en-US",value:"en-US"},{label:"zh-CN",value:"zh-CN"}]},fn:(t,e="en-US")=>new Intl.NumberFormat(e,{notation:"compact"}).format(t)}},string:{"Type conversion":{schema:{"x-component":"Select",enum:[{label:"Number",value:"Number"},{label:"Date",value:"Date"}]},fn:(t,e)=>{try{return new Function(`return ${e}(${t})`)()}catch(n){return console.log(n),t}}}}},RB=t=>function(){const n=ft.useField(),r=n.query("query").get("value")||{},i=il(t,r),o=Object.keys(Yo).filter(a=>a!=="general");return{onChange:a=>{n.value=a;const s=n.query(".type").take();a||s.setState({value:null});const l=i.find(h=>h.value===a);s.dataSource=o.map(h=>({label:Ot(h),value:h}));const c={createdAt:"datetime",updatedAt:"datetime",double:"number",integer:"number",percent:"number"},u=l==null?void 0:l.interface,f=l==null?void 0:l.type,d=c[u]||c[f]||f;if(o.includes(d)){s.setState({value:d});return}s.setState({value:null})}}},BB=()=>{const t=ft.useField();return{options:Object.keys(Yo).filter(r=>r!=="general").map(r=>({label:Ot(r),value:r})),onChange:r=>{t.value=r,t.query(".format").take().setValue(null)}}},zB=()=>{const t=ft.useField();return{onChange:e=>{t.value=e,t.query(".argument").take().setValue(null)}}},YB=t=>{const e=t.query(".type").get("value");if(!e){t.dataSource=[];return}const n=Object.entries(tt(tt({},Yo.general),Yo[e]||{})).map(([r,i])=>{const o=typeof i=="function"?r:i.label||r;return{label:Ot(o),value:r}});t.dataSource=n},WB=t=>{const e=t.query(".type").get("value"),n=t.query(".format").get("value");if(!n||!e){t.setComponentProps({schema:null});return}const r=Yo[e][n]||Yo.general[n];if(!r||typeof r=="function"){t.setComponentProps({schema:null});return}const i=Bo.uid();t.setComponentProps({schema:tt({name:i},r.schema)})},GB=(t,e="en-US")=>{const n=(t||[]).filter(i=>i.field&&i.type&&i.format).reduce((i,o)=>{const a=Yo[o.type][o.format]||Yo.general[o.format];return a&&(i[o.field]=[...i[o.field]||[],{transformer:a,argument:o.argument}]),i},{}),r={};return Object.entries(n).forEach(([i,o])=>{r[i]=o.reduce((a,s)=>{const{transformer:l}=s;let{argument:c}=s;return u=>{try{return typeof l=="function"?l(a(u),c):(!c&&!l.schema&&(c=e),l.fn(a(u),c))}catch(f){return console.log(f),u}}},a=>a)}),r};function uu(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var HB=function(e){return VB(e)&&!UB(e)};function VB(t){return!!t&&typeof t=="object"}function UB(t){var e=Object.prototype.toString.call(t);return e==="[object RegExp]"||e==="[object Date]"||KB(t)}var XB=typeof Symbol=="function"&&Symbol.for,qB=XB?Symbol.for("react.element"):60103;function KB(t){return t.$$typeof===qB}function ZB(t){return Array.isArray(t)?[]:{}}function fu(t,e){return e.clone!==!1&&e.isMergeableObject(t)?al(ZB(t),t,e):t}function QB(t,e,n){return t.concat(e).map(function(r){return fu(r,n)})}function JB(t,e){if(!e.customMerge)return al;var n=e.customMerge(t);return typeof n=="function"?n:al}function tz(t){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t).filter(function(e){return Object.propertyIsEnumerable.call(t,e)}):[]}function $S(t){return Object.keys(t).concat(tz(t))}function RS(t,e){try{return e in t}catch(n){return!1}}function ez(t,e){return RS(t,e)&&!(Object.hasOwnProperty.call(t,e)&&Object.propertyIsEnumerable.call(t,e))}function nz(t,e,n){var r={};return n.isMergeableObject(t)&&$S(t).forEach(function(i){r[i]=fu(t[i],n)}),$S(e).forEach(function(i){ez(t,i)||(RS(t,i)&&n.isMergeableObject(e[i])?r[i]=JB(i,n)(t[i],e[i],n):r[i]=fu(e[i],n))}),r}function al(t,e,n){n=n||{},n.arrayMerge=n.arrayMerge||QB,n.isMergeableObject=n.isMergeableObject||HB,n.cloneUnlessOtherwiseSpecified=fu;var r=Array.isArray(e),i=Array.isArray(t),o=r===i;return o?r?n.arrayMerge(t,e,n):nz(t,e,n):fu(e,n)}al.all=function(e,n){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce(function(r,i){return al(r,i,n)},{})};var rz=al,iz=rz;const oz=uu(iz),az=()=>({title:'{{t("Options")}}',type:"array","x-decorator":"FormItem","x-component":"ArrayItems",items:{type:"object","x-decorator":"ArrayItems.Item",properties:{space:{type:"void","x-component":"Space",properties:{label:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Option label")}}'},required:!0},value:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Option value")}}'},required:!0},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:"Add","x-component":"ArrayItems.Addition"}}}),Ly=t=>{const e={type:"boolean","x-content":'{{ t("Show time") }}',"x-decorator":"FormItem","x-component":"Checkbox"},n={type:"string",title:'{{t("Date format")}}',"x-component":"Radio.Group","x-decorator":"FormItem",default:"YYYY-MM-DD",enum:[{label:'{{t("Year/Month/Day")}}',value:"YYYY/MM/DD"},{label:'{{t("Year-Month-Day")}}',value:"YYYY-MM-DD"},{label:'{{t("Day/Month/Year")}}',value:"DD/MM/YYYY"}]},r=az();return{DatePicker:{type:"object",properties:{dateFormat:n,showTime:e}},"DatePicker.RangePicker":{type:"object",properties:{dateFormat:n,showTime:e}},Select:{type:"object",properties:{mode:{type:"string",enum:[{label:'{{ t("Single select") }}',value:""},{label:'{{ t("Multiple select") }}',value:"multiple"}],"x-decorator":"FormItem","x-component":"Radio.Group","x-component-props":{defaultValue:""}},options:r}},"Checkbox.Group":{type:"object",properties:{options:r}},"Radio.Group":{type:"object",properties:{options:r}}}[t]},sz=(t,e)=>{if(!t)return t;if(Ue.isDayjs(t))return e.showTime||(t=t.startOf("day")),au.moment2str(t,e);if(Array.isArray(t)&&t.length&&Ue.isDayjs(t[0])){let n=t[0],r=t[1];return e.showTime&&(n=n.startOf("day"),r=r.endOf("day")),[n.toISOString(),r.toISOString()]}return t},BS=(t,e,n)=>In(this,null,function*(){const r=t.initialValue;if(!(typeof r=="string"&&(r==null?void 0:r.startsWith("{{$"))&&(r==null?void 0:r.endsWith("}}")))||!e)t.setValue(r),t.setInitialValue(r);else{t.loading=!0;const{value:o}=yield e.parseVariable(r,n),a=sz(o,t.componentProps);t.setValue(a),t.setInitialValue(a),t.loading=!1}}),gh="-",du=(t,e)=>t?`${t}${gh}${e}`:e,zS=t=>{const[e,n]=t.split(gh);return n?{dataSource:e,fieldName:n}:{dataSource:B.DEFAULT_DATA_SOURCE_KEY,fieldName:e}},Ny=(t,e,n)=>ft.Schema.isSchemaInstance(t)?t.reduceProperties((r,i)=>{let o=i[e];if(o.includes(gh)||(o=`${B.DEFAULT_DATA_SOURCE_KEY}${gh}${o}`),o===n)return i;if(i["x-component"]!=="Action.Container"&&i["x-component"]!=="AssociationField.Viewer"){const a=Ny(i,e,n);if(a)return a}return r}):null,Iy=()=>{const{charts:t}=V.useContext(ol),e=V.useMemo(()=>Object.values(t).filter(i=>i).reduce((i,o)=>{var l;const{dataSource:a,collection:s}=o;return(l=i[a])!=null&&l.includes(s)||(i[a]=[...i[a]||[],s]),i},{}),[t]),n=V.useMemo(()=>Object.keys(e).length>1,[e]),r=V.useCallback((i,o)=>{var a;return((a=e[i])==null?void 0:a.includes(o))||!1},[e]);return{chartCollections:e,showDataSource:n,getIsChartCollectionExists:r}},sl=()=>{const t=B.useDataSourceManager(),{charts:e}=V.useContext(ol),{fieldSchema:n}=B.useActionContext(),r=n==null?void 0:n["x-action"],{fields:i,form:o}=V.useContext(Lr),a=B.useVariables(),s=B.useLocalVariables(),l=({dataSource:y,collection:g,cm:m,fim:b})=>{const x=m.getCollectionFields(g.name),w=(M,P,C,A)=>{var F,$,R,z,W;const k=((F=M.uiSchema)==null?void 0:F.title)||M.name,T=b.getFieldInterface(M.interface),N=(R=($=T==null?void 0:T.filterable)==null?void 0:$.operators)==null?void 0:R[0],j=m.getCollection(M.target);P=P?`${P} / ${k}`:k;let L={type:"string",title:P,name:`${C}.${M.name}`,required:!1,"x-designer":"ChartFilterItemDesigner","x-component":"CollectionField","x-decorator":"ChartFilterFormItem","x-data-source":y,"x-collection-field":`${A}.${M.name}`,"x-component-props":dt(tt({},(z=M.uiSchema)==null?void 0:z["x-component-props"]),{"filter-operator":N})};if(M.interface==="formula"){const K=xB(M.dataType)||"Input";L=dt(tt({},L),{"x-component":K})}return["oho","o2m"].includes(M.interface)&&on.set(L,"x-component-props.useOriginalFilter",!0),{key:`${C}.${M.name}`,name:M.name,type:"item",title:((W=M==null?void 0:M.uiSchema)==null?void 0:W.title)||M.name,Component:"CollectionFieldInitializer",find:Ny,remove:(K,Q)=>{Q(K,{breakRemoveOn:{"x-component":"Grid"}})},schemaInitialize:K=>{var Q;(Q=T==null?void 0:T.schemaInitialize)==null||Q.call(T,K,{field:M,block:"FilterForm",readPretty:o.readPretty,action:r,targetCollection:j})},schema:L}},O=(M,P,C,A)=>{var L;const k=((L=M.uiSchema)==null?void 0:L.title)||M.name;P=P?`${P} / ${k}`:k;const T=M.operators[0];let N=dt(tt({type:"string",name:`${C}.${M.name}`,required:!1,"x-designer":"ChartFilterItemDesigner","x-decorator":"ChartFilterFormItem","x-data-source":y,"x-collection-field":`${A}.${M.name}`},M.schema),{title:P,"x-component-props":{"filter-operator":T}});return T!=null&&T.noValue&&(N=dt(tt({},N),{"x-component":"ChartFilterCheckbox","x-component-props":dt(tt({},N["x-component-props"]),{content:ft.Schema.compile(T.label,{t:B.i18n.t})})})),{key:`${C}.${M.name}`,name:M.name,type:"item",title:M.title||M.name,Component:"CollectionFieldInitializer",find:Ny,remove:(I,F)=>{F(I,{breakRemoveOn:{"x-component":"Grid"}})},schema:N}},_=(M,P,C,A,k)=>{var F,$,R;if(!M.interface||M.isForeignKey)return;const T=b.getFieldInterface(M.interface);if(!(T!=null&&T.filterable))return;const{nested:N,children:j}=T.filterable,L=((F=M.uiSchema)==null?void 0:F.title)||M.name,I=w(M,C,A,k);if(!(M.target&&P>2)){if(C=C?`${C} / ${L}`:L,j!=null&&j.length&&!["chinaRegion","createdBy","updatedBy","attachment"].includes(M.interface)){const z=j.map(W=>O(W,C,`${A}.${M.name}`,`${k}.${M.name}`));return{key:`${A}.${M.name}`,name:M.name,type:"subMenu",title:(($=M==null?void 0:M.uiSchema)==null?void 0:$.title)||M.name,children:z}}if(!P||P>2)return I;if(N){const W=m.getCollectionFields(M.target).map(K=>_(K,P+1,"",`${A}.${M.name}`,`${k}.${M.name}`));return{key:`${A}.${M.name}`,name:M.name,type:"subMenu",title:((R=M==null?void 0:M.uiSchema)==null?void 0:R.title)||M.name,children:W.filter(Boolean)}}return I}},S=[],E=[];return x.forEach(M=>{const P=M.interface,C=_(M,0,"",du(y,g.name),g.name);if(C&&S.push(C),["m2o"].includes(P)){const A=_(M,1,"",du(y,g.name),g.name);A&&E.push(A)}}),E.length&&S.push({name:"divider",type:"divider"},{name:"displayAssociationFields",type:"itemGroup",title:B.i18n.t("Display association fields"),children:E}),S},c=()=>{const y=(o==null?void 0:o.values)||{},g={};return Object.entries(i).filter(([m,b])=>b).forEach(([m,b])=>{const{operator:x}=b||{},{dataSource:w,fieldName:O}=zS(m);let _=O;const M=t.getDataSource(w).collectionManager.getCollectionField(_);if(M!=null&&M.target){const T=M.targetKey||"id";_=`${_}.${T}`,m=`${m}.${T}`}const[P,...C]=_.split("."),A=bB(y,m),k=(x==null?void 0:x.value)||"$eq";if(P!=="custom"){const T=du(w,P);g[T]=g[T]||{$and:[]};const N={};on.set(N,C.join("."),{[k]:A}),g[T].$and.push(N)}else g[P]=g[P]||{},g[P][`$nFilter.${C.join(".")}`]=A}),g},u=(y,g)=>{if(!y)return!1;const{dataSource:m,collection:b,query:x}=y,{parameters:w}=au.parse(x.filter||"");return g[du(m,b)]||g.custom&&(w==null?void 0:w.find(({key:O})=>on.has(g.custom,O)))},f=(y,g)=>{const{dataSource:m,collection:b,query:x}=y;let w=tt({},x);const O=tt({},w.filter||{});let _={};const S=au.parse(O),{parameters:E}=S;return g.custom&&(E!=null&&E.find(M=>g.custom[M.key]))&&(_=S(g.custom)),_=oz(O,_),w=dt(tt({},w),{filter:{$and:[_,g[du(m,b)]]}}),w},d=()=>In(this,null,function*(){const y=c(),g=Object.values(e).filter(m=>u(m,y)).map(m=>()=>In(this,null,function*(){const{dataSource:b,service:x,collection:w}=m;yield x.runAsync(b,w,f(m,y),!0)}));yield Promise.all(g.map(m=>m()))}),h=()=>In(this,null,function*(){const y=Object.values(e).filter(g=>g).map(g=>()=>In(this,null,function*(){const{service:m,dataSource:b,collection:x,query:w}=g;yield m.runAsync(b,x,w,!0)}));yield Promise.all(y.map(g=>g()))}),p=dr.useMemoizedFn(y=>y.split(" / ").map(g=>B.i18n.t(ft.Schema.compile(g,{t:B.i18n.t}))).join(" / ")),v=V.useCallback(y=>In(this,null,function*(){const g=au.flatten(y,{breakOn({key:b}){return b.startsWith("$")&&b!=="$and"&&b!=="$or"},transformValue(b){return!(typeof b=="string"&&b.startsWith("{{$")&&(b!=null&&b.endsWith("}}")))||["$user","$date","$nDate","$nRole","$nFilter"].some(w=>b.includes(w))?b:a==null?void 0:a.parseVariable(b,s).then(({value:w})=>w)}});return yield Promise.all(Object.keys(g).map(b=>In(this,null,function*(){return g[b]=yield g[b],g[b]===void 0&&delete g[b],g[b]}))),au.unflatten(g)}),[a]);return{filter:d,refresh:h,getChartFilterFields:l,getFilter:c,hasFilter:u,appendFilter:f,getTranslatedTitle:p,parseFilter:v}},lz=()=>{const{t}=Bt(),e=dr.useMemoizedFn(t),{enabled:n,fields:r}=V.useContext(Lr),i=Object.entries(r).filter(([a,s])=>a.startsWith("custom.")&&s).map(([a,{title:s}])=>{const l=a.replace(/^custom\./,"");return{key:l,value:l,label:s}}),o=V.useMemo(()=>({label:e("Current filter"),value:"$nFilter",key:"$nFilter",children:i}),[i,e]);return!n||!i.length?null:o},YS=()=>{const{t}=Bt(),{chartCollections:e}=Iy(),n=B.useDataSourceManager(),r=n.collectionFieldInterfaceManager,{values:i}=WS(),o=(a,s,l)=>{var d,h,p;if(!s.interface)return;const c=r.getFieldInterface(s.interface);if(!(c!=null&&c.filterable))return;const{nested:u}=c.filterable,f={value:s.name,label:t(((d=s==null?void 0:s.uiSchema)==null?void 0:d.title)||s.name)};if(!(s.target&&l>2)){if(l>2)return f;if(u){const y=a.getCollectionFields(s.target).map(g=>o(a,g,l+1));return{value:s.name,label:t(((h=s==null?void 0:s.uiSchema)==null?void 0:h.title)||s.name),children:y.filter(g=>g)}}if(!(!i.includes((p=s.uiSchema)==null?void 0:p["x-component"])&&!i.includes(s.interface)))return f}};return V.useMemo(()=>Object.entries(e).map(([s,l])=>{const c=n.getDataSource(s);return{value:s,label:ft.Schema.compile(c.displayName,{t}),children:l.map(u=>{const f=c.collectionManager,d=f.getCollection(u),p=f.getCollectionFields(u).map(v=>o(f,v,1)).filter(v=>v);return{value:u,label:ft.Schema.compile(d.title,{t}),children:p}})}}),[e])},WS=()=>{const{t}=Bt(),e=[{label:t("Input"),value:"Input"},{label:t("Number"),value:"InputNumber"},{label:t("Date"),value:"DatePicker"},{label:t("Date range"),value:"DatePicker.RangePicker"},{label:t("Time"),value:"TimePicker"},{label:t("Time range"),value:"TimePicker.RangePicker"},{label:t("Select"),value:"Select"},{label:t("Radio group"),value:"Radio.Group"},{label:t("Checkbox group"),value:"Checkbox.Group"}];return{options:e,values:e.map(n=>n.value)}},cz=(t,e)=>{const{t:n}=Bt(),r=B.useDataSourceManager(),{showDataSource:i}=Iy();return V.useMemo(()=>{var p;const o=r.getDataSource(t);if(!o)return;const a=o.collectionManager;if(!e)return;const{fieldName:s}=zS(e),[l,...c]=s.split(".");if(!(c!=null&&c.length))return;const u=a.getCollection(l);let f=l,d,h=ft.Schema.compile(u==null?void 0:u.title,{t:n});for(;f&&c.length>0;){const v=c.shift();d=a.getCollectionField(`${f}.${v}`);const y=((p=d==null?void 0:d.uiSchema)==null?void 0:p.title)||(d==null?void 0:d.name);y&&(h+=` / ${ft.Schema.compile(y,{t:n})}`),d!=null&&d.target?f=d.target:f=null}return i?`${ft.Schema.compile(o.displayName,{t:n})} > ${h}`:h},[e,t,i])},GS=(t,e)=>{const{currentUserSettings:n}=B.useCurrentUserVariable({collectionField:{uiSchema:t},uiSchema:t}),{currentRoleSettings:r}=B.useCurrentRoleVariable({uiSchema:t}),{apiTokenSettings:i}=B.useAPITokenVariable({noDisabled:!0}),{datetimeSettings:o}=B.useDatetimeVariable({operator:e,schema:t,noDisabled:!0}),{urlSearchParamsSettings:a}=B.useURLSearchParamsVariable(),{settings:s,shouldDisplayPopupRecord:l}=B.usePopupVariable({schema:t}),c=V.useMemo(()=>[n,r,i,o,a,l&&s].filter(Boolean),[o,n,r,a,i,l,s]);return t?c:[]},uz=()=>{const t=ft.useField(),{operator:e,schema:n}=t.data||{},r=lz(),i=GS(n,e),o=V.useMemo(()=>[...i,r].filter(Boolean),[i,r]);return!e||!n?[]:o},jy=(t={},e={})=>dt(tt({type:"array","x-decorator":"FormItem","x-component":"ArrayItems"},e),{items:{type:"object",properties:{space:{type:"void","x-component":"Space",properties:dt(tt({sort:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.SortHandle"}},t),{remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}})}}},properties:{add:{type:"void",title:'{{t("Add field")}}',"x-component":"ArrayItems.Addition"}}}),fz=t=>({type:"void",properties:{config:{type:"object",properties:{collapse:{type:"void","x-component":"FormCollapse","x-component-props":{formCollapse:"{{formCollapse}}",size:"small",style:{border:"none",boxShadow:"none"}},properties:{pane1:{type:"void","x-component":"FormCollapse.CollapsePanel","x-component-props":{header:Ot("Container"),key:"card"},properties:{title:{type:"string",title:'{{t("Title")}}',"x-decorator":"FormItem","x-component":"Input"},bordered:{type:"boolean","x-content":Ot("Show border"),"x-decorator":"FormItem","x-component":"Checkbox",default:!1}}},pane2:{type:"void","x-component":"FormCollapse.CollapsePanel","x-component-props":{header:Ot("Chart"),key:"basic",style:{border:"none"}},properties:{chartType:{type:"string",title:'{{t("Chart type")}}',"x-decorator":"FormItem","x-component":"Select","x-component-props":{placeholder:'{{t("Please select a chart type.")}}'},enum:"{{ chartTypes }}"},[Bo.uid()]:{type:"void",properties:{general:t}},[Bo.uid()]:{type:"void",properties:{advanced:{type:"json",title:'{{t("JSON config")}}',"x-decorator":"FormItem","x-decorator-props":{extra:Ot("Same properties set in the form above will be overwritten by this JSON config.")},"x-component":"Input.JSON","x-component-props":{autoSize:{minRows:3},json5:!0}}}},reference:{type:"string","x-reactions":{dependencies:[".chartType"],fulfill:{schema:{"x-content":"{{ getReference($deps[0]) }}"}}}}}}}}}}}}),dz={type:"void",properties:{settings:{type:"void",properties:{collection:{title:'{{t("Collection")}}',type:"string","x-decorator":"FormItem","x-component":"Cascader",enum:"{{ collectionOptions }}","x-component-props":{onChange:"{{ onCollectionChange }}",placeholder:'{{t("Collection")}}',showSearch:!0}}}},query:{type:"object",properties:{builder:{type:"void",properties:{collapse:{type:"void","x-decorator":"FormItem","x-component":"FormCollapse","x-component-props":{formCollapse:"{{formCollapse}}",size:"small",style:{border:"none",boxShadow:"none"}},properties:{pane1:{type:"void","x-component":"FormCollapse.CollapsePanel","x-component-props":{header:Ot("Measures"),key:"measures"},properties:{measures:jy({field:{type:"string","x-decorator":"FormItem","x-component":"Cascader","x-component-props":{placeholder:'{{t("Field")}}',fieldNames:{label:"title",value:"name",children:"children"}},enum:"{{ fieldOptions }}",required:!0},aggregation:{type:"string","x-decorator":"FormItem","x-component":"Select","x-component-props":{placeholder:'{{t("Aggregation")}}'},enum:[{label:'{{t("Sum")}}',value:"sum"},{label:'{{t("Count")}}',value:"count"},{label:'{{t("Avg")}}',value:"avg"},{label:'{{t("Max")}}',value:"max"},{label:'{{t("Min")}}',value:"min"}]},alias:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Alias")}}',style:{minWidth:"100px"}}},distinct:{type:"boolean","x-decorator":"FormItem","x-component":"Checkbox","x-content":'{{t("Distinct")}}'}},{required:!0,"x-component-props":{style:{overflow:"auto"}}})}},pane2:{type:"void","x-component":"FormCollapse.CollapsePanel","x-component-props":{header:Ot("Dimensions"),key:"dimensions"},properties:{dimensions:jy({field:{type:"string","x-decorator":"FormItem","x-component":"Cascader","x-component-props":{placeholder:'{{t("Field")}}',fieldNames:{label:"title",value:"name",children:"children"}},enum:"{{ fieldOptions }}",required:!0},format:{type:"string","x-decorator":"FormItem","x-component":"Select","x-component-props":{placeholder:'{{t("Format")}}',style:{maxWidth:"120px"}},"x-reactions":"{{ useFormatterOptions }}","x-visible":"{{ $self.dataSource && $self.dataSource.length }}"},alias:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Alias")}}',style:{minWidth:"100px"}}}},{"x-component-props":{style:{overflow:"auto"}}})}},pane3:{type:"void","x-component":"FormCollapse.CollapsePanel","x-component-props":{header:Ot("Filter"),key:"filter"},properties:{filter:{type:"object","x-decorator":"FormItem","x-decorator-props":{style:{overflow:"auto"}},enum:"{{ filterOptions }}","x-component":"Filter","x-component-props":{dynamicComponent:"FilterDynamicComponent"}}}},pane4:{type:"void","x-component":"FormCollapse.CollapsePanel","x-component-props":{header:Ot("Sort"),key:"sort",style:{border:"none"}},properties:{orders:jy({field:{type:"string","x-decorator":"FormItem","x-component":"Cascader","x-component-props":{placeholder:'{{t("Field")}}'},"x-reactions":"{{ useOrderOptions }}",required:!0},order:{type:"string","x-decorator":"FormItem","x-component":"Radio.Group","x-component-props":{defaultValue:"ASC",optionType:"button",style:{width:"128px"}},enum:["ASC","DESC"]}},{"x-reactions":"{{ useOrderReaction }}","x-component-props":{style:{overflow:"auto"}}})}}}},limit:{title:'{{t("Limit")}}',type:"number","x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{defaultValue:2e3,min:1,style:{width:"100px"}}}}},cache:{type:"object",properties:{enabled:{type:"boolean",title:'{{t("Enable cache")}}',"x-decorator":"FormItem","x-component":"Switch"},ttl:{type:"number",title:'{{t("TTL (second)")}}',"x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{defaultValue:60,min:1,style:{width:"100px"}}}}}}}}},hz={type:"void",properties:{transform:{type:"array","x-decorator":"FormItem","x-component":"ArrayItems",items:{type:"object",properties:{space:{type:"void","x-component":"Space","x-component-props":{wrap:!0},properties:{sort:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.SortHandle"},field:{type:"string","x-decorator":"FormItem","x-component":"Select","x-component-props":{placeholder:'{{t("Field")}}'},"x-use-component-props":"useFieldSelectProps","x-reactions":"{{ useChartFields }}"},type:{type:"string","x-decorator":"FormItem","x-component":"Select","x-component-props":{placeholder:'{{t("Type")}}'},"x-use-component-props":"useFieldTypeSelectProps"},format:{type:"string","x-decorator":"FormItem","x-component":"Select","x-component-props":{placeholder:'{{t("Transformer")}}',style:{maxWidth:"200px"}},"x-use-component-props":"useTransformerSelectProps","x-reactions":"{{ useTransformers }}","x-visible":"{{ $self.dataSource && $self.dataSource.length }}"},argument:{type:"string","x-decorator":"FormItem","x-component":"TransformerDynamicComponent","x-reactions":"{{ useArgument }}"},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:'{{t("Add transformation")}}',"x-component":"ArrayItems.Addition"}}}}};function pz(t){const{value:e,onChange:n,renderSchemaComponent:r}=t,i=uz();return Y.jsx(B.Variable.Input,{value:e,onChange:n,scope:i,children:r()})}const Pi=V.createContext({visible:!0});Pi.displayName="ChartConfigContext";const vz=t=>{var a;const{insertAdjacent:e}=B.useDesignable(),[n,r]=V.useState(!1),[i,o]=V.useState({});return Y.jsxs(Pi.Provider,{value:{visible:n,setVisible:r,current:i,setCurrent:o},children:[t.children,Y.jsx(NS,dt(tt({},(a=i.field)==null?void 0:a.decoratorProps),{disableAutoRefresh:!0,children:Y.jsx(ai,{insert:(s,l)=>e("beforeEnd",s,l)})}))]})},gz=t=>{const{schema:e}=t,n=ft.useField();return e?Y.jsx(B.SchemaComponent,{schema:{type:"void",properties:{[e.name]:dt(tt({type:"void"},e),{value:n.value,"x-component-props":dt(tt({},e["x-component-props"]),{defaultValue:n.value,onChange:r=>{if(typeof r=="object"&&(r!=null&&r.target)){n.value=r.target.value;return}n.value=r}})})}}}):null},{Paragraph:qSt,Text:yz}=xt.Typography,ai=t=>{const{t:e}=Bt(),{service:n}=V.useContext(Un),{visible:r,setVisible:i,current:o}=V.useContext(Pi),{schema:a,field:s,dataSource:l,collection:c,initialValues:u}=o||{},{dn:f}=B.useDesignable(),{modal:d}=xt.App.useApp(),{insert:h}=t,p=jS(),v=Va(l,c),y=(P=!1)=>{var I;if(!_.modified)return;const C=(I=_.values.config)==null?void 0:I.chartType;if(!C)return;const A=p[C];if(!(A==null?void 0:A.init)){P&&(_.values.config.general={},_.values.config.advanced={});return}const T=_.values.query,N=il(v,T),{general:j,advanced:L}=A.init(N,T);(j||P)&&(_.values.config.general=j),(L||P)&&(_.values.config.advanced=L||{})},[g,m]=V.useState([]),[b,x]=V.useState([]),w=(P,C)=>{var T,N;const A=((T=P.values.query)==null?void 0:T.measures.filter(j=>j.field))||[],k=((N=P.values.query)==null?void 0:N.dimensions.filter(j=>j.field))||[];on.isEqual(A,g)&&on.isEqual(k,b)||(C==null||C(),m(on.cloneDeep(A)),x(on.cloneDeep(k)))},O=MB(),_=V.useMemo(()=>{var A;const P=u||(a==null?void 0:a["x-decorator-props"]),C=(P==null?void 0:P.config)||{};return On.createForm({values:dt(tt({},P),{config:dt(tt({chartType:O},C),{title:C.title||((A=s==null?void 0:s.componentProps)==null?void 0:A.title)}),collection:[l,c]}),effects:k=>{On.onFieldChange("config.chartType",()=>y(!0)),On.onFormInit(()=>w(k))}})},[s,r,l,c]),S=()=>Y.jsx(xt.Button,{type:"link",loading:n==null?void 0:n.loading,icon:Y.jsx(Qe.RightSquareOutlined,{}),onClick:()=>In(this,null,function*(){const P=_.query("query").take();try{yield P==null?void 0:P.validate()}catch(C){return}try{yield n.runAsync(l,c,_.values.query,!0)}catch(C){console.log(C)}w(_,y)}),children:e("Run query")}),E=V.useRef(null),M=V.useRef(null);return V.useEffect(()=>{var P;r&&n.run(c,(P=s==null?void 0:s.decoratorProps)==null?void 0:P.query,"configure")},[r]),Y.jsx(xt.Modal,{title:e("Configure chart"),open:r,onOk:()=>{const{query:P,config:C,transform:A,mode:k}=_.values,{title:T,bordered:N}=C||{},j=()=>{var I;i(!1),(I=o.service)==null||I.run(l,c,P),E.current.scrollTop=0,M.current.scrollTop=0,n.mutate(void 0)},L={query:P,config:C,dataSource:l,collection:c,transform:A,mode:k||"builder"};if(a&&a["x-uid"]){a["x-component-props"]=dt(tt({},a["x-component-props"]),{title:T,bordered:N}),a["x-decorator-props"]=L,s.decoratorProps=L,s.componentProps=dt(tt({},s.componentProps),{title:T,bordered:N}),s["x-acl-action"]=`${c}:list`,f.emit("patch",{schema:a}),j();return}h(B.gridRowColWrap(LS(L)),{onSuccess:j})},onCancel:()=>{d.confirm({title:e("Are you sure to cancel?"),content:e("You changes are not saved. If you click OK, your changes will be lost."),okButtonProps:{danger:!0},onOk:()=>{i(!1),E.current.scrollTop=0,M.current.scrollTop=0,n.mutate(void 0)}})},width:"95%",className:zo.css`
|
|
11
11
|
.ant-modal-content {
|
|
12
12
|
padding: 0;
|
|
13
13
|
}
|
package/dist/externalVersion.js
CHANGED
|
@@ -8,23 +8,23 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
module.exports = {
|
|
11
|
-
"@nocobase/client": "1.4.0-alpha.
|
|
11
|
+
"@nocobase/client": "1.4.0-alpha.20240914095808",
|
|
12
12
|
"dayjs": "1.11.10",
|
|
13
13
|
"@formily/react": "2.3.0",
|
|
14
14
|
"@formily/shared": "2.3.0",
|
|
15
15
|
"lodash": "4.17.21",
|
|
16
16
|
"react": "18.2.0",
|
|
17
|
-
"@nocobase/cache": "1.4.0-alpha.
|
|
18
|
-
"@nocobase/server": "1.4.0-alpha.
|
|
17
|
+
"@nocobase/cache": "1.4.0-alpha.20240914095808",
|
|
18
|
+
"@nocobase/server": "1.4.0-alpha.20240914095808",
|
|
19
19
|
"@emotion/css": "11.13.0",
|
|
20
20
|
"@ant-design/icons": "5.2.6",
|
|
21
21
|
"ahooks": "3.7.8",
|
|
22
22
|
"antd": "5.12.8",
|
|
23
23
|
"@formily/antd-v5": "1.1.9",
|
|
24
24
|
"@formily/core": "2.3.0",
|
|
25
|
-
"@nocobase/utils": "1.4.0-alpha.
|
|
25
|
+
"@nocobase/utils": "1.4.0-alpha.20240914095808",
|
|
26
26
|
"react-i18next": "11.18.6",
|
|
27
|
-
"
|
|
28
|
-
"@nocobase/
|
|
29
|
-
"
|
|
27
|
+
"@nocobase/actions": "1.4.0-alpha.20240914095808",
|
|
28
|
+
"@nocobase/database": "1.4.0-alpha.20240914095808",
|
|
29
|
+
"sequelize": "6.35.2"
|
|
30
30
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"koa-compose","description":"compose Koa middleware","repository":"koajs/compose","version":"4.1.0","keywords":["koa","middleware","compose"],"files":["index.js"],"dependencies":{},"devDependencies":{"codecov":"^3.0.0","jest":"^21.0.0","matcha":"^0.7.0","standard":"^10.0.3"},"scripts":{"bench":"matcha bench/bench.js","lint":"standard --fix .","test":"jest --forceExit --coverage"},"jest":{"testEnvironment":"node"},"license":"MIT","_lastModified":"2024-09-
|
|
1
|
+
{"name":"koa-compose","description":"compose Koa middleware","repository":"koajs/compose","version":"4.1.0","keywords":["koa","middleware","compose"],"files":["index.js"],"dependencies":{},"devDependencies":{"codecov":"^3.0.0","jest":"^21.0.0","matcha":"^0.7.0","standard":"^10.0.3"},"scripts":{"bench":"matcha bench/bench.js","lint":"standard --fix .","test":"jest --forceExit --coverage"},"jest":{"testEnvironment":"node"},"license":"MIT","_lastModified":"2024-09-14T10:10:18.666Z"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) JS Foundation and other contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
6
|
+
this software and associated documentation files (the "Software"), to deal in
|
|
7
|
+
the Software without restriction, including without limitation the rights to
|
|
8
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
9
|
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
|
10
|
+
subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
17
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
18
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
19
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
20
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|