@nocobase/plugin-data-visualization 1.4.25 → 1.4.26
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
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
(function(ut,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):(ut=typeof globalThis!="undefined"?globalThis:ut||self,B(ut["@nocobase/plugin-data-visualization"]={},ut["@nocobase/client"],ut.jsxRuntime,ut.react,ut["@ant-design/icons"],ut["@formily/antd-v5"],ut["@formily/core"],ut["@formily/react"],ut.antd,ut.lodash,ut["react-i18next"],ut.dayjs,ut["@formily/shared"],ut["@nocobase/utils"],ut.ahooks,ut["@emotion/css"]))})(this,function(ut,B,Y,G,Qe,se,On,dt,wt,Je,Ey,Ue,Pi,au,dr,zo){"use strict";var HSt=Object.defineProperty,VSt=Object.defineProperties;var USt=Object.getOwnPropertyDescriptors;var Sy=Object.getOwnPropertySymbols;var X9=Object.prototype.hasOwnProperty,q9=Object.prototype.propertyIsEnumerable;var ES=(ut,B)=>(B=Symbol[ut])?B:Symbol.for("Symbol."+ut),Ce=Math.pow,MS=(ut,B,Y)=>B in ut?HSt(ut,B,{enumerable:!0,configurable:!0,writable:!0,value:Y}):ut[B]=Y,tt=(ut,B)=>{for(var Y in B||(B={}))X9.call(B,Y)&&MS(ut,Y,B[Y]);if(Sy)for(var Y of Sy(B))q9.call(B,Y)&&MS(ut,Y,B[Y]);return ut},ct=(ut,B)=>VSt(ut,USt(B));var PS=(ut,B)=>{var Y={};for(var G in ut)X9.call(ut,G)&&B.indexOf(G)<0&&(Y[G]=ut[G]);if(ut!=null&&Sy)for(var G of Sy(ut))B.indexOf(G)<0&&q9.call(ut,G)&&(Y[G]=ut[G]);return Y};var Lr=(ut,B,Y)=>(MS(ut,typeof B!="symbol"?B+"":B,Y),Y);var In=(ut,B,Y)=>new Promise((G,Qe)=>{var se=wt=>{try{dt(Y.next(wt))}catch(Je){Qe(Je)}},On=wt=>{try{dt(Y.throw(wt))}catch(Je){Qe(Je)}},dt=wt=>wt.done?G(wt.value):Promise.resolve(wt.value).then(se,On);dt((Y=Y.apply(ut,B)).next())}),XSt=function(ut,B){this[0]=ut,this[1]=B};var K9=ut=>{var B=ut[ES("asyncIterator")],Y=!1,G,Qe={};return B==null?(B=ut[ES("iterator")](),G=se=>Qe[se]=On=>B[se](On)):(B=B.call(ut),G=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(dt=>{var wt=B[se](On);if(!(wt instanceof Object))throw TypeError("Object expected");dt(wt)}),1)}}),Qe[ES("iterator")]=()=>Qe,G("next"),"throw"in B?G("throw"):Qe.throw=se=>{throw se},"return"in B&&G("return"),Qe};function hB(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 AS="data-visualization";function bt(t){return B.i18n.t(t,{ns:[AS,"client"]})}function Bt(){return Ey.useTranslation([AS,"client"],{nsMode:"fallback"})}const My={datetime:[{label:bt("YYYY"),value:"YYYY"},{label:bt("MM"),value:"MM"},{label:bt("DD"),value:"DD"},{label:bt("YYYY-MM"),value:"YYYY-MM"},{label:bt("YYYY-MM-DD"),value:"YYYY-MM-DD"},{label:bt("YYYY-MM-DD hh:mm"),value:"YYYY-MM-DD hh:mm"},{label:bt("YYYY-MM-DD hh:mm:ss"),value:"YYYY-MM-DD hh:mm:ss"}],date:[{label:bt("YYYY"),value:"YYYY"},{label:bt("MM"),value:"MM"},{label:bt("DD"),value:"DD"},{label:bt("YYYY-MM"),value:"YYYY-MM"},{label:bt("YYYY-MM-DD"),value:"YYYY-MM-DD"}],time:[{label:bt("hh:mm:ss"),value:"hh:mm:ss"},{label:bt("hh:mm"),value:"hh:mm"},{label:bt("hh"),value:"hh"}]},pB=G.createContext(null),Py={didCatch:!1,error:null};let CS=class extends G.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=Py}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(Py)}}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&&vB(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(Py)}}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(G.isValidElement(i))s=i;else if(typeof n=="function")s=n(l);else if(r)s=G.createElement(r,l);else throw a}return G.createElement(pB.Provider,{value:{didCatch:o,error:a,resetErrorBoundary:this.resetErrorBoundary}},s)}};function vB(){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 kS=(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"},[Pi.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}},ph=(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=ph(t,l.field);return ct(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()]},gB=(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 dt.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})},Ay=t=>{if(typeof t=="object"&&t!==null)if(Array.isArray(t)){const e=t.map(n=>Ay(n)).filter(Boolean);return e.length>0?e:null}else{const e={};for(const n in t){const r=Ay(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},yB=(t,e)=>{const n=e.split(".");let r=Je.get(t,n.slice(0,-1).join("."));return Array.isArray(r)?r=r.map(i=>Je.get(i,n.slice(-1)[0])):r=Je.get(r,n.slice(-1)[0]),r},mB=t=>({boolean:"Checkbox",integer:"InputNumber",bigInt:"InputNumber",double:"InputNumber",decimal:"InputNumber",date:"DatePicker",string:"Input"})[t],bB=t=>({boolean:"boolean",integer:"integer",bigInt:"integer",double:"number",decimal:"number",date:"datetime",string:"input"})[t],ol=G.createContext({});ol.displayName="ChartDataContext";const xB=t=>{const[e,n]=G.useState({}),r=dr.useMemoizedFn((o,{dataSource:a,collection:s,service:l,query:c})=>{n(u=>ct(tt({},u),{[o]:{dataSource:a,collection:s,service:l,query:c}}))}),i=dr.useMemoizedFn(o=>{n(a=>ct(tt({},a),{[o]:void 0}))});return Y.jsx(ol.Provider,{value:{charts:e,addChart:r,removeChart:i},children:t.children})},Nr=G.createContext({});Nr.displayName="ChartFilterContext";const wB=t=>{const[e,n]=G.useState(!1),[r,i]=G.useState(!1),[o,a]=G.useState({}),[s,l]=G.useState({collapsed:!1,row:1}),[c,u]=G.useState(),f=dr.useMemoizedFn((y,g)=>{a(m=>ct(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 G.useEffect(()=>n(!0),[]),Y.jsx(Nr.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=G.createContext({}),OB=t=>{const[e,n]=G.useState(!1),r=G.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 G.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=G.createContext({});Un.displayName="ChartRendererContext";const TS=t=>{const{query:e,config:n,collection:r,transform:i,dataSource:o=B.DEFAULT_DATA_SOURCE_KEY,disableAutoRefresh:a}=t,{addChart:s}=G.useContext(ol),{addChart:l,removeChart:c}=G.useContext(lu),{ready:u,form:f,enabled:d}=G.useContext(Nr),{getFilter:h,hasFilter:p,appendFilter:v,parseFilter:y}=sl(),g=dt.useFieldSchema(),m=B.useAPIClient(),[b,x]=G.useState(!1),[w,O]=G.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=ct(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:ct(tt({uid:g==null?void 0:g["x-uid"],dataSource:S,collection:E},N),{filter:Ay(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 G.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 _B{constructor(){Lr(this,"charts",new Map)}addGroup(e,n){if(this.charts.has(e))throw new Error(`[data-visualization] Chart group "${e}" already exists`);this.charts.set(e,n)}add(e,n){if(!this.charts.has(e))return;Array.isArray(n)||(n=[n]);const r=this.charts.get(e);this.charts.set(e,ct(tt({},r),{charts:[...r.charts,...n]}))}getChartTypes(){const e=[];return Array.from(this.charts.entries()).sort(([,n],[,r])=>n.sort||0-r.sort||0).forEach(([n,{title:r,charts:i}])=>{const o=i.map(a=>({key:`${n}.${a.name}`,label:bt(a.title),value:`${n}.${a.name}`}));e.push({label:bt(r),children:o})}),e}getCharts(){const e={};return this.charts.forEach(({charts:n},r)=>{n.forEach(i=>{e[`${r}.${i.name}`]=i})}),e}getChart(e){return this.getCharts()[e]}}const LS=()=>B.usePlugin(_y).charts.getChartTypes(),SB=()=>{var e,n,r;return(r=(n=(e=LS()[0])==null?void 0:e.children)==null?void 0:n[0])==null?void 0:r.value},NS=()=>B.usePlugin(_y).charts.getCharts(),EB=t=>B.usePlugin(_y).charts.getChart(t);function MB(){const{t}=Bt(),{setVisible:e,setCurrent:n}=G.useContext(Ai),{removeChart:r}=G.useContext(ol),{service:i}=G.useContext(Un),o=dt.useField(),a=dt.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(kS(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:PB,Text:AB}=wt.Typography,CB=({error:t})=>{const{t:e}=Bt();return Y.jsx("div",{style:{backgroundColor:"white"},children:Y.jsx(wt.Result,{status:"error",title:e("Render Failed"),subTitle:e("Please check the configuration."),children:Y.jsx(PB,{copyable:!0,children:Y.jsx(AB,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:t.message})})})})},Cy=t=>{const{t:e}=Bt(),n=G.useContext(Un),{config:r,transform:i,dataSource:o,collection:a,service:s,data:l}=n,c=Va(o,a),u=jS(l,o,a),f=(r==null?void 0:r.general)||{},d=(r==null?void 0:r.advanced)||{},h=B.useAPIClient(),p=EB(r==null?void 0:r.chartType),v=h.auth.getLocale(),y=YB(i,v),[g,m]=G.useState(Pi.uid());if(G.useEffect(()=>{m(Pi.uid())},[r]),!p)return Y.jsx(wt.Empty,{image:wt.Empty.PRESENTED_IMAGE_SIMPLE,description:e("Please configure chart")});if(!(u&&u.length)&&!s.loading)return Y.jsx(wt.Empty,{image:wt.Empty.PRESENTED_IMAGE_SIMPLE,description:e("No data")});const b=p.getProps({data:u,general:f,advanced:d,fieldProps:Object.keys(u[0]||{}).reduce((O,_)=>{if(!O[_]){const S=ph(c,_.split(".")),E=y[_];O[_]={label:(S==null?void 0:S.label)||_,transformer:E,interface:S==null?void 0:S.interface}}return O},{})}),x=dt.Schema.compile(b),w=p.Component;return Y.jsx(wt.Spin,{spinning:s.loading,children:Y.jsx(CS,{onError:O=>{console.error(O)},FallbackComponent:CB,children:!s.loading&&Y.jsx(w,tt({},x))},g)})};Cy.Designer=MB;const cu=t=>{const{current:e}=G.useContext(Ai),{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}},kB=t=>(t||[]).filter(n=>n.interface).map(n=>{var r;return ct(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}=Ey.useTranslation(),{cm:r,fim:i,collection:o}=cu(t),a=r.getCollectionFields(e||o),s=kB(a);return G.useMemo(()=>s.map(l=>{var d,h,p,v;const c=(d=i.getFieldInterface(l.interface))==null?void 0:d.filterable,u=dt.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 ct(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 ct(tt({},g),{key:`${l.name}.${g.name}`,label:`${u} / ${dt.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 ct(tt({},g),{key:`${l.name}.${g.name}`,label:`${u} / ${dt.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 ct(tt({},l),{label:u,targetFields:f})}),[s])},IS=t=>e=>{const n=e.query("query").get("value")||{},r=il(t,n);e.dataSource=r},TB=t=>e=>{var o;const n=e.query(".field").get("value");if(!n){e.dataSource=[];return}let r=[];switch((o=ph(t,n))==null?void 0:o.interface){case"datetime":case"datetimeTz":case"unixTimestamp":case"datetimeNoTz":case"createdAt":case"updatedAt":r=My.datetime;break;case"date":r=My.date;break;case"time":r=My.time;break;default:r=[]}e.dataSource=r},LB=()=>{const{t}=Ey.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 G.useMemo(()=>dt.Schema.compile(i,{t}),[i])},NB=(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},IB=(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)},jS=(t,e,n)=>{var c;const{t:r}=Bt(),{service:i,query:o}=G.useContext(Un),a=Va(e,n),s=dt.useForm(),l=il(a,((c=s==null?void 0:s.values)==null?void 0:c.query)||o);return gB(l,(i==null?void 0:i.data)||t||[],{t:r})},jB=(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)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=ct(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=>ct(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)},DB=(t,e)=>{const{cm:n,fim:r,collection:i}=cu(t);return G.useMemo(()=>{const o=n.getCollectionFields(e||i),a=(c,u)=>{var y,g;if(!c.interface)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}}}}},FB=t=>function(){const n=dt.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:bt(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})}}},$B=()=>{const t=dt.useField();return{options:Object.keys(Yo).filter(r=>r!=="general").map(r=>({label:bt(r),value:r})),onChange:r=>{t.value=r,t.query(".format").take().setValue(null)}}},RB=()=>{const t=dt.useField();return{onChange:e=>{t.value=e,t.query(".argument").take().setValue(null)}}},BB=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:bt(o),value:r}});t.dataSource=n},zB=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=Pi.uid();t.setComponentProps({schema:tt({name:i},r.schema)})},YB=(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 WB=function(e){return GB(e)&&!HB(e)};function GB(t){return!!t&&typeof t=="object"}function HB(t){var e=Object.prototype.toString.call(t);return e==="[object RegExp]"||e==="[object Date]"||XB(t)}var VB=typeof Symbol=="function"&&Symbol.for,UB=VB?Symbol.for("react.element"):60103;function XB(t){return t.$$typeof===UB}function qB(t){return Array.isArray(t)?[]:{}}function fu(t,e){return e.clone!==!1&&e.isMergeableObject(t)?al(qB(t),t,e):t}function KB(t,e,n){return t.concat(e).map(function(r){return fu(r,n)})}function ZB(t,e){if(!e.customMerge)return al;var n=e.customMerge(t);return typeof n=="function"?n:al}function QB(t){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t).filter(function(e){return Object.propertyIsEnumerable.call(t,e)}):[]}function DS(t){return Object.keys(t).concat(QB(t))}function FS(t,e){try{return e in t}catch(n){return!1}}function JB(t,e){return FS(t,e)&&!(Object.hasOwnProperty.call(t,e)&&Object.propertyIsEnumerable.call(t,e))}function tz(t,e,n){var r={};return n.isMergeableObject(t)&&DS(t).forEach(function(i){r[i]=fu(t[i],n)}),DS(e).forEach(function(i){JB(t,i)||(FS(t,i)&&n.isMergeableObject(e[i])?r[i]=ZB(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||KB,n.isMergeableObject=n.isMergeableObject||WB,n.cloneUnlessOtherwiseSpecified=fu;var r=Array.isArray(e),i=Array.isArray(t),o=r===i;return o?r?n.arrayMerge(t,e,n):tz(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 ez=al,nz=ez;const rz=uu(nz),iz=()=>({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"}}}),ky=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=iz();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]},oz=(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},$S=(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=oz(o,t.componentProps);t.setValue(a),t.setInitialValue(a),t.loading=!1}}),vh="-",du=(t,e)=>t?`${t}${vh}${e}`:e,RS=t=>{const[e,n]=t.split(vh);return n?{dataSource:e,fieldName:n}:{dataSource:B.DEFAULT_DATA_SOURCE_KEY,fieldName:e}},Ty=(t,e,n)=>dt.Schema.isSchemaInstance(t)?t.reduceProperties((r,i)=>{let o=i[e];if(o.includes(vh)||(o=`${B.DEFAULT_DATA_SOURCE_KEY}${vh}${o}`),o===n)return i;if(i["x-component"]!=="Action.Container"&&i["x-component"]!=="AssociationField.Viewer"){const a=Ty(i,e,n);if(a)return a}return r}):null,Ly=()=>{const{charts:t}=G.useContext(ol),e=G.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=G.useMemo(()=>Object.keys(e).length>1,[e]),r=G.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}=G.useContext(ol),{fieldSchema:n}=B.useActionContext(),r=n==null?void 0:n["x-action"],{fields:i,form:o}=G.useContext(Nr),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":ct(tt({},(z=M.uiSchema)==null?void 0:z["x-component-props"]),{"filter-operator":N})};if(M.interface==="formula"){const K=mB(M.dataType)||"Input";L=ct(tt({},L),{"x-component":K})}return["oho","o2m"].includes(M.interface)&&Je.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:Ty,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=ct(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=ct(tt({},N),{"x-component":"ChartFilterCheckbox","x-component-props":ct(tt({},N["x-component-props"]),{content:dt.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:Ty,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}=RS(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=yB(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={};Je.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})=>Je.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)),_=rz(O,_),w=ct(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(dt.Schema.compile(g,{t:B.i18n.t}))).join(" / ")),v=G.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}},az=()=>{const{t}=Bt(),e=dr.useMemoizedFn(t),{enabled:n,fields:r}=G.useContext(Nr),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=G.useMemo(()=>({label:e("Current filter"),value:"$nFilter",key:"$nFilter",children:i}),[i,e]);return!n||!i.length?null:o},BS=()=>{const{t}=Bt(),{chartCollections:e}=Ly(),n=B.useDataSourceManager(),r=n.collectionFieldInterfaceManager,{values:i}=zS(),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 G.useMemo(()=>Object.entries(e).map(([s,l])=>{const c=n.getDataSource(s);return{value:s,label:dt.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:dt.Schema.compile(d.title,{t}),children:p}})}}),[e])},zS=()=>{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)}},sz=(t,e)=>{const{t:n}=Bt(),r=B.useDataSourceManager(),{showDataSource:i}=Ly();return G.useMemo(()=>{var p;const o=r.getDataSource(t);if(!o)return;const a=o.collectionManager;if(!e)return;const{fieldName:s}=RS(e),[l,...c]=s.split(".");if(!(c!=null&&c.length))return;const u=a.getCollection(l);let f=l,d,h=dt.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+=` / ${dt.Schema.compile(y,{t:n})}`),d!=null&&d.target?f=d.target:f=null}return i?`${dt.Schema.compile(o.displayName,{t:n})} > ${h}`:h},[e,t,i])},YS=(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=G.useMemo(()=>[n,r,i,o,a,l&&s].filter(Boolean),[o,n,r,a,i,l,s]);return t?c:[]},lz=()=>{const t=dt.useField(),{operator:e,schema:n}=t.data||{},r=az(),i=YS(n,e),o=G.useMemo(()=>[...i,r].filter(Boolean),[i,r]);return!e||!n?[]:o},WS=(t,e)=>{var s,l;const[n,r]=G.useState(0),i=G.useRef(null),{service:o}=G.useContext(Un);return G.useEffect(()=>{var d,h;const c=i.current;if(!c||o.loading===!0||e)return;let u=0;t.type==="ratio"&&((d=t.ratio)!=null&&d.width)&&((h=t.ratio)!=null&&h.height)&&(u=t.ratio.height/t.ratio.width);const f=new ResizeObserver(p=>{p.forEach(v=>{if(u){r(v.contentRect.width*u);return}r(v.contentRect.height)})});return f.observe(c),()=>f.disconnect()},[o.loading,e,t.type,(s=t.ratio)==null?void 0:s.width,(l=t.ratio)==null?void 0:l.height]),{chartRef:i,chartHeight:e||n}},Ny=(t={},e={})=>ct(tt({type:"array","x-decorator":"FormItem","x-component":"ArrayItems"},e),{items:{type:"object",properties:{space:{type:"void","x-component":"Space",properties:ct(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"}}}),cz=(t,e)=>({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:bt("Container"),key:"card"},properties:{title:{type:"string",title:'{{t("Title")}}',"x-decorator":"FormItem","x-component":"Input"},bordered:{type:"boolean","x-content":bt("Show border"),"x-decorator":"FormItem","x-component":"Checkbox",default:!1}}},pane2:{type:"void","x-component":"FormCollapse.CollapsePanel","x-component-props":{header:bt("Chart"),key:"basic",style:{border:"none"}},properties:tt({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 }}"},[Pi.uid()]:{type:"void",properties:{general:t}}},e?{[Pi.uid()]:{type:"void",properties:{advanced:{type:"json",title:'{{t("JSON config")}}',"x-decorator":"FormItem","x-decorator-props":{extra:bt("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]) }}"}}}}}:{})}}}}}}}),uz={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:bt("Measures"),key:"measures"},properties:{measures:Ny({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:bt("Dimensions"),key:"dimensions"},properties:{dimensions:Ny({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:bt("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:bt("Sort"),key:"sort",style:{border:"none"}},properties:{orders:Ny({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"}}}}}}}}},fz={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 dz(t){const{value:e,onChange:n,renderSchemaComponent:r}=t,i=lz();return Y.jsx(B.Variable.Input,{value:e,onChange:n,scope:i,children:r()})}const Ai=G.createContext({visible:!0});Ai.displayName="ChartConfigContext";const hz=t=>{var a;const{insertAdjacent:e}=B.useDesignable(),[n,r]=G.useState(!1),[i,o]=G.useState({});return Y.jsxs(Ai.Provider,{value:{visible:n,setVisible:r,current:i,setCurrent:o},children:[t.children,Y.jsx(TS,ct(tt({},(a=i.field)==null?void 0:a.decoratorProps),{disableAutoRefresh:!0,children:Y.jsx(ai,{insert:(s,l)=>e("beforeEnd",s,l)})}))]})},pz=t=>{const{schema:e}=t,n=dt.useField();return e?Y.jsx(B.SchemaComponent,{schema:{type:"void",properties:{[e.name]:ct(tt({type:"void"},e),{value:n.value,"x-component-props":ct(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:vz}=wt.Typography,ai=t=>{const{t:e}=Bt(),{service:n}=G.useContext(Un),{visible:r,setVisible:i,current:o}=G.useContext(Ai),{schema:a,field:s,dataSource:l,collection:c,initialValues:u}=o||{},{dn:f}=B.useDesignable(),{modal:d}=wt.App.useApp(),{insert:h}=t,p=NS(),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)&&(_.setInitialValuesIn("config.general",{}),_.values.config.general=j),(L||P)&&(_.values.config.advanced=L||{})},[g,m]=G.useState([]),[b,x]=G.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))||[];Je.isEqual(A,g)&&Je.isEqual(k,b)||(C==null||C(),m(Je.cloneDeep(A)),x(Je.cloneDeep(k)))},O=SB(),_=G.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:ct(tt({},P),{config:ct(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=G.memo(()=>Y.jsx(wt.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=G.useRef(null),M=G.useRef(null);return G.useEffect(()=>{var P;r&&n.run(c,(P=s==null?void 0:s.decoratorProps)==null?void 0:P.query,"configure")},[r]),Y.jsx(wt.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"]=ct(tt({},a["x-component-props"]),{title:T,bordered:N}),a["x-decorator-props"]=L,s.decoratorProps=L,s.componentProps=ct(tt({},s.componentProps),{title:T,bordered:N}),s["x-acl-action"]=`${c}:list`,f.emit("patch",{schema:a}),j();return}h(B.gridRowColWrap(kS(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(ut,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):(ut=typeof globalThis!="undefined"?globalThis:ut||self,B(ut["@nocobase/plugin-data-visualization"]={},ut["@nocobase/client"],ut.jsxRuntime,ut.react,ut["@ant-design/icons"],ut["@formily/antd-v5"],ut["@formily/core"],ut["@formily/react"],ut.antd,ut.lodash,ut["react-i18next"],ut.dayjs,ut["@formily/shared"],ut["@nocobase/utils"],ut.ahooks,ut["@emotion/css"]))})(this,function(ut,B,Y,G,Qe,se,On,dt,wt,Je,Ey,Ue,Pi,au,dr,zo){"use strict";var HSt=Object.defineProperty,VSt=Object.defineProperties;var USt=Object.getOwnPropertyDescriptors;var Sy=Object.getOwnPropertySymbols;var X9=Object.prototype.hasOwnProperty,q9=Object.prototype.propertyIsEnumerable;var ES=(ut,B)=>(B=Symbol[ut])?B:Symbol.for("Symbol."+ut),Ce=Math.pow,MS=(ut,B,Y)=>B in ut?HSt(ut,B,{enumerable:!0,configurable:!0,writable:!0,value:Y}):ut[B]=Y,tt=(ut,B)=>{for(var Y in B||(B={}))X9.call(B,Y)&&MS(ut,Y,B[Y]);if(Sy)for(var Y of Sy(B))q9.call(B,Y)&&MS(ut,Y,B[Y]);return ut},ct=(ut,B)=>VSt(ut,USt(B));var PS=(ut,B)=>{var Y={};for(var G in ut)X9.call(ut,G)&&B.indexOf(G)<0&&(Y[G]=ut[G]);if(ut!=null&&Sy)for(var G of Sy(ut))B.indexOf(G)<0&&q9.call(ut,G)&&(Y[G]=ut[G]);return Y};var Lr=(ut,B,Y)=>(MS(ut,typeof B!="symbol"?B+"":B,Y),Y);var In=(ut,B,Y)=>new Promise((G,Qe)=>{var se=wt=>{try{dt(Y.next(wt))}catch(Je){Qe(Je)}},On=wt=>{try{dt(Y.throw(wt))}catch(Je){Qe(Je)}},dt=wt=>wt.done?G(wt.value):Promise.resolve(wt.value).then(se,On);dt((Y=Y.apply(ut,B)).next())}),XSt=function(ut,B){this[0]=ut,this[1]=B};var K9=ut=>{var B=ut[ES("asyncIterator")],Y=!1,G,Qe={};return B==null?(B=ut[ES("iterator")](),G=se=>Qe[se]=On=>B[se](On)):(B=B.call(ut),G=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(dt=>{var wt=B[se](On);if(!(wt instanceof Object))throw TypeError("Object expected");dt(wt)}),1)}}),Qe[ES("iterator")]=()=>Qe,G("next"),"throw"in B?G("throw"):Qe.throw=se=>{throw se},"return"in B&&G("return"),Qe};function hB(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 AS="data-visualization";function bt(t){return B.i18n.t(t,{ns:[AS,"client"]})}function Bt(){return Ey.useTranslation([AS,"client"],{nsMode:"fallback"})}const My={datetime:[{label:bt("YYYY"),value:"YYYY"},{label:bt("MM"),value:"MM"},{label:bt("DD"),value:"DD"},{label:bt("YYYY-MM"),value:"YYYY-MM"},{label:bt("YYYY-MM-DD"),value:"YYYY-MM-DD"},{label:bt("YYYY-MM-DD hh:mm"),value:"YYYY-MM-DD hh:mm"},{label:bt("YYYY-MM-DD hh:mm:ss"),value:"YYYY-MM-DD hh:mm:ss"}],date:[{label:bt("YYYY"),value:"YYYY"},{label:bt("MM"),value:"MM"},{label:bt("DD"),value:"DD"},{label:bt("YYYY-MM"),value:"YYYY-MM"},{label:bt("YYYY-MM-DD"),value:"YYYY-MM-DD"}],time:[{label:bt("hh:mm:ss"),value:"hh:mm:ss"},{label:bt("hh:mm"),value:"hh:mm"},{label:bt("hh"),value:"hh"}]},pB=G.createContext(null),Py={didCatch:!1,error:null};let CS=class extends G.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=Py}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(Py)}}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&&vB(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(Py)}}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(G.isValidElement(i))s=i;else if(typeof n=="function")s=n(l);else if(r)s=G.createElement(r,l);else throw a}return G.createElement(pB.Provider,{value:{didCatch:o,error:a,resetErrorBoundary:this.resetErrorBoundary}},s)}};function vB(){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 kS=(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"},[Pi.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}},ph=(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=ph(t,l.field);return ct(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()]},gB=(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 dt.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})},Ay=t=>{if(typeof t=="object"&&t!==null)if(Array.isArray(t)){const e=t.map(n=>Ay(n)).filter(Boolean);return e.length>0?e:null}else{const e={};for(const n in t){const r=Ay(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},yB=(t,e)=>{const n=e.split(".");let r=Je.get(t,n.slice(0,-1).join("."));return Array.isArray(r)?r=r.map(i=>Je.get(i,n.slice(-1)[0])):r=Je.get(r,n.slice(-1)[0]),r},mB=t=>({boolean:"Checkbox",integer:"InputNumber",bigInt:"InputNumber",double:"InputNumber",decimal:"InputNumber",date:"DatePicker",string:"Input"})[t],bB=t=>({boolean:"boolean",integer:"integer",bigInt:"integer",double:"number",decimal:"number",date:"datetime",string:"input"})[t],ol=G.createContext({});ol.displayName="ChartDataContext";const xB=t=>{const[e,n]=G.useState({}),r=dr.useMemoizedFn((o,{dataSource:a,collection:s,service:l,query:c})=>{n(u=>ct(tt({},u),{[o]:{dataSource:a,collection:s,service:l,query:c}}))}),i=dr.useMemoizedFn(o=>{n(a=>ct(tt({},a),{[o]:void 0}))});return Y.jsx(ol.Provider,{value:{charts:e,addChart:r,removeChart:i},children:t.children})},Nr=G.createContext({});Nr.displayName="ChartFilterContext";const wB=t=>{const[e,n]=G.useState(!1),[r,i]=G.useState(!1),[o,a]=G.useState({}),[s,l]=G.useState({collapsed:!1,row:1}),[c,u]=G.useState(),f=dr.useMemoizedFn((y,g)=>{a(m=>ct(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 G.useEffect(()=>n(!0),[]),Y.jsx(Nr.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=G.createContext({}),OB=t=>{const[e,n]=G.useState(!1),r=G.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 G.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=G.createContext({});Un.displayName="ChartRendererContext";const TS=t=>{const{query:e,config:n,collection:r,transform:i,dataSource:o=B.DEFAULT_DATA_SOURCE_KEY,disableAutoRefresh:a}=t,{addChart:s}=G.useContext(ol),{addChart:l,removeChart:c}=G.useContext(lu),{ready:u,form:f,enabled:d}=G.useContext(Nr),{getFilter:h,hasFilter:p,appendFilter:v,parseFilter:y}=sl(),g=dt.useFieldSchema(),m=B.useAPIClient(),[b,x]=G.useState(!1),[w,O]=G.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=ct(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:ct(tt({uid:g==null?void 0:g["x-uid"],dataSource:S,collection:E},N),{filter:Ay(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 G.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 _B{constructor(){Lr(this,"charts",new Map)}addGroup(e,n){if(this.charts.has(e))throw new Error(`[data-visualization] Chart group "${e}" already exists`);this.charts.set(e,n)}add(e,n){if(!this.charts.has(e))return;Array.isArray(n)||(n=[n]);const r=this.charts.get(e);this.charts.set(e,ct(tt({},r),{charts:[...r.charts,...n]}))}getChartTypes(){const e=[];return Array.from(this.charts.entries()).sort(([,n],[,r])=>n.sort||0-r.sort||0).forEach(([n,{title:r,charts:i}])=>{const o=i.map(a=>({key:`${n}.${a.name}`,label:bt(a.title),value:`${n}.${a.name}`}));e.push({label:bt(r),children:o})}),e}getCharts(){const e={};return this.charts.forEach(({charts:n},r)=>{n.forEach(i=>{e[`${r}.${i.name}`]=i})}),e}getChart(e){return this.getCharts()[e]}}const LS=()=>B.usePlugin(_y).charts.getChartTypes(),SB=()=>{var e,n,r;return(r=(n=(e=LS()[0])==null?void 0:e.children)==null?void 0:n[0])==null?void 0:r.value},NS=()=>B.usePlugin(_y).charts.getCharts(),EB=t=>B.usePlugin(_y).charts.getChart(t);function MB(){const{t}=Bt(),{setVisible:e,setCurrent:n}=G.useContext(Ai),{removeChart:r}=G.useContext(ol),{service:i}=G.useContext(Un),o=dt.useField(),a=dt.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(kS(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:PB,Text:AB}=wt.Typography,CB=({error:t})=>{const{t:e}=Bt();return Y.jsx("div",{style:{backgroundColor:"white"},children:Y.jsx(wt.Result,{status:"error",title:e("Render Failed"),subTitle:e("Please check the configuration."),children:Y.jsx(PB,{copyable:!0,children:Y.jsx(AB,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:t.message})})})})},Cy=t=>{const{t:e}=Bt(),n=G.useContext(Un),{config:r,transform:i,dataSource:o,collection:a,service:s,data:l}=n,c=Va(o,a),u=jS(l,o,a),f=(r==null?void 0:r.general)||{},d=(r==null?void 0:r.advanced)||{},h=B.useAPIClient(),p=EB(r==null?void 0:r.chartType),v=h.auth.getLocale(),y=YB(i,v),[g,m]=G.useState(Pi.uid());if(G.useEffect(()=>{m(Pi.uid())},[r]),!p)return Y.jsx(wt.Empty,{image:wt.Empty.PRESENTED_IMAGE_SIMPLE,description:e("Please configure chart")});if(!(u&&u.length)&&!s.loading)return Y.jsx(wt.Empty,{image:wt.Empty.PRESENTED_IMAGE_SIMPLE,description:e("No data")});const b=p.getProps({data:u,general:f,advanced:d,fieldProps:Object.keys(u[0]||{}).reduce((O,_)=>{if(!O[_]){const S=ph(c,_.split(".")),E=y[_];O[_]={label:(S==null?void 0:S.label)||_,transformer:E,interface:S==null?void 0:S.interface}}return O},{})}),x=dt.Schema.compile(b),w=p.Component;return Y.jsx(wt.Spin,{spinning:s.loading,children:Y.jsx(CS,{onError:O=>{console.error(O)},FallbackComponent:CB,children:!s.loading&&Y.jsx(w,tt({},x))},g)})};Cy.Designer=MB;const cu=t=>{const{current:e}=G.useContext(Ai),{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}},kB=t=>(t||[]).filter(n=>n.interface).map(n=>{var r;return ct(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}=Ey.useTranslation(),{cm:r,fim:i,collection:o}=cu(t),a=r.getCollectionFields(e||o),s=kB(a);return G.useMemo(()=>s.map(l=>{var d,h,p,v;const c=(d=i.getFieldInterface(l.interface))==null?void 0:d.filterable,u=dt.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 ct(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 ct(tt({},g),{key:`${l.name}.${g.name}`,label:`${u} / ${dt.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 ct(tt({},g),{key:`${l.name}.${g.name}`,label:`${u} / ${dt.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 ct(tt({},l),{label:u,targetFields:f})}),[s])},IS=t=>e=>{const n=e.query("query").get("value")||{},r=il(t,n);e.dataSource=r},TB=t=>e=>{var o;const n=e.query(".field").get("value");if(!n){e.dataSource=[];return}let r=[];switch((o=ph(t,n))==null?void 0:o.interface){case"datetime":case"datetimeTz":case"unixTimestamp":case"datetimeNoTz":case"createdAt":case"updatedAt":r=My.datetime;break;case"date":r=My.date;break;case"time":r=My.time;break;default:r=[]}e.dataSource=r},LB=()=>{const{t}=Ey.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 G.useMemo(()=>dt.Schema.compile(i,{t}),[i])},NB=(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},IB=(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)},jS=(t,e,n)=>{var c;const{t:r}=Bt(),{service:i,query:o}=G.useContext(Un),a=Va(e,n),s=dt.useForm(),l=il(a,((c=s==null?void 0:s.values)==null?void 0:c.query)||o);return gB(l,(i==null?void 0:i.data)||t||[],{t:r})},jB=(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)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=ct(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=>ct(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)},DB=(t,e)=>{const{cm:n,fim:r,collection:i}=cu(t);return G.useMemo(()=>{const o=n.getCollectionFields(e||i),a=(c,u)=>{var y,g;if(!c.interface)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}}}}},FB=t=>function(){const n=dt.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:bt(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})}}},$B=()=>{const t=dt.useField();return{options:Object.keys(Yo).filter(r=>r!=="general").map(r=>({label:bt(r),value:r})),onChange:r=>{t.value=r,t.query(".format").take().setValue(null)}}},RB=()=>{const t=dt.useField();return{onChange:e=>{t.value=e,t.query(".argument").take().setValue(null)}}},BB=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:bt(o),value:r}});t.dataSource=n},zB=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=Pi.uid();t.setComponentProps({schema:tt({name:i},r.schema)})},YB=(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 WB=function(e){return GB(e)&&!HB(e)};function GB(t){return!!t&&typeof t=="object"}function HB(t){var e=Object.prototype.toString.call(t);return e==="[object RegExp]"||e==="[object Date]"||XB(t)}var VB=typeof Symbol=="function"&&Symbol.for,UB=VB?Symbol.for("react.element"):60103;function XB(t){return t.$$typeof===UB}function qB(t){return Array.isArray(t)?[]:{}}function fu(t,e){return e.clone!==!1&&e.isMergeableObject(t)?al(qB(t),t,e):t}function KB(t,e,n){return t.concat(e).map(function(r){return fu(r,n)})}function ZB(t,e){if(!e.customMerge)return al;var n=e.customMerge(t);return typeof n=="function"?n:al}function QB(t){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t).filter(function(e){return Object.propertyIsEnumerable.call(t,e)}):[]}function DS(t){return Object.keys(t).concat(QB(t))}function FS(t,e){try{return e in t}catch(n){return!1}}function JB(t,e){return FS(t,e)&&!(Object.hasOwnProperty.call(t,e)&&Object.propertyIsEnumerable.call(t,e))}function tz(t,e,n){var r={};return n.isMergeableObject(t)&&DS(t).forEach(function(i){r[i]=fu(t[i],n)}),DS(e).forEach(function(i){JB(t,i)||(FS(t,i)&&n.isMergeableObject(e[i])?r[i]=ZB(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||KB,n.isMergeableObject=n.isMergeableObject||WB,n.cloneUnlessOtherwiseSpecified=fu;var r=Array.isArray(e),i=Array.isArray(t),o=r===i;return o?r?n.arrayMerge(t,e,n):tz(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 ez=al,nz=ez;const rz=uu(nz),iz=()=>({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"}}}),ky=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=iz();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]},oz=(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},$S=(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=oz(o,t.componentProps);t.setValue(a),t.setInitialValue(a),t.loading=!1}}),vh="-",du=(t,e)=>t?`${t}${vh}${e}`:e,RS=t=>{const[e,n]=t.split(vh);return n?{dataSource:e,fieldName:n}:{dataSource:B.DEFAULT_DATA_SOURCE_KEY,fieldName:e}},Ty=(t,e,n)=>dt.Schema.isSchemaInstance(t)?t.reduceProperties((r,i)=>{let o=i[e];if(o.includes(vh)||(o=`${B.DEFAULT_DATA_SOURCE_KEY}${vh}${o}`),o===n)return i;if(i["x-component"]!=="Action.Container"&&i["x-component"]!=="AssociationField.Viewer"){const a=Ty(i,e,n);if(a)return a}return r}):null,Ly=()=>{const{charts:t}=G.useContext(ol),e=G.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=G.useMemo(()=>Object.keys(e).length>1,[e]),r=G.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}=G.useContext(ol),{fieldSchema:n}=B.useActionContext(),r=n==null?void 0:n["x-action"],{fields:i,form:o}=G.useContext(Nr),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":ct(tt({},(z=M.uiSchema)==null?void 0:z["x-component-props"]),{"filter-operator":N}),"x-filter-operators":N==null?void 0:N.value};if(M.interface==="formula"){const K=mB(M.dataType)||"Input";L=ct(tt({},L),{"x-component":K})}return["oho","o2m"].includes(M.interface)&&Je.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:Ty,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=ct(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},"x-filter-operators":T==null?void 0:T.value});return T!=null&&T.noValue&&(N=ct(tt({},N),{"x-component":"ChartFilterCheckbox","x-component-props":ct(tt({},N["x-component-props"]),{content:dt.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:Ty,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}=RS(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=yB(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={};Je.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})=>Je.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)),_=rz(O,_),w=ct(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(dt.Schema.compile(g,{t:B.i18n.t}))).join(" / ")),v=G.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}},az=()=>{const{t}=Bt(),e=dr.useMemoizedFn(t),{enabled:n,fields:r}=G.useContext(Nr),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=G.useMemo(()=>({label:e("Current filter"),value:"$nFilter",key:"$nFilter",children:i}),[i,e]);return!n||!i.length?null:o},BS=()=>{const{t}=Bt(),{chartCollections:e}=Ly(),n=B.useDataSourceManager(),r=n.collectionFieldInterfaceManager,{values:i}=zS(),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 G.useMemo(()=>Object.entries(e).map(([s,l])=>{const c=n.getDataSource(s);return{value:s,label:dt.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:dt.Schema.compile(d.title,{t}),children:p}})}}),[e])},zS=()=>{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)}},sz=(t,e)=>{const{t:n}=Bt(),r=B.useDataSourceManager(),{showDataSource:i}=Ly();return G.useMemo(()=>{var p;const o=r.getDataSource(t);if(!o)return;const a=o.collectionManager;if(!e)return;const{fieldName:s}=RS(e),[l,...c]=s.split(".");if(!(c!=null&&c.length))return;const u=a.getCollection(l);let f=l,d,h=dt.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+=` / ${dt.Schema.compile(y,{t:n})}`),d!=null&&d.target?f=d.target:f=null}return i?`${dt.Schema.compile(o.displayName,{t:n})} > ${h}`:h},[e,t,i])},YS=(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=G.useMemo(()=>[n,r,i,o,a,l&&s].filter(Boolean),[o,n,r,a,i,l,s]);return t?c:[]},lz=()=>{const t=dt.useField(),{operator:e,schema:n}=t.data||{},r=az(),i=YS(n,e),o=G.useMemo(()=>[...i,r].filter(Boolean),[i,r]);return!e||!n?[]:o},WS=(t,e)=>{var s,l;const[n,r]=G.useState(0),i=G.useRef(null),{service:o}=G.useContext(Un);return G.useEffect(()=>{var d,h;const c=i.current;if(!c||o.loading===!0||e)return;let u=0;t.type==="ratio"&&((d=t.ratio)!=null&&d.width)&&((h=t.ratio)!=null&&h.height)&&(u=t.ratio.height/t.ratio.width);const f=new ResizeObserver(p=>{p.forEach(v=>{if(u){r(v.contentRect.width*u);return}r(v.contentRect.height)})});return f.observe(c),()=>f.disconnect()},[o.loading,e,t.type,(s=t.ratio)==null?void 0:s.width,(l=t.ratio)==null?void 0:l.height]),{chartRef:i,chartHeight:e||n}},Ny=(t={},e={})=>ct(tt({type:"array","x-decorator":"FormItem","x-component":"ArrayItems"},e),{items:{type:"object",properties:{space:{type:"void","x-component":"Space",properties:ct(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"}}}),cz=(t,e)=>({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:bt("Container"),key:"card"},properties:{title:{type:"string",title:'{{t("Title")}}',"x-decorator":"FormItem","x-component":"Input"},bordered:{type:"boolean","x-content":bt("Show border"),"x-decorator":"FormItem","x-component":"Checkbox",default:!1}}},pane2:{type:"void","x-component":"FormCollapse.CollapsePanel","x-component-props":{header:bt("Chart"),key:"basic",style:{border:"none"}},properties:tt({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 }}"},[Pi.uid()]:{type:"void",properties:{general:t}}},e?{[Pi.uid()]:{type:"void",properties:{advanced:{type:"json",title:'{{t("JSON config")}}',"x-decorator":"FormItem","x-decorator-props":{extra:bt("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]) }}"}}}}}:{})}}}}}}}),uz={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:bt("Measures"),key:"measures"},properties:{measures:Ny({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:bt("Dimensions"),key:"dimensions"},properties:{dimensions:Ny({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:bt("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:bt("Sort"),key:"sort",style:{border:"none"}},properties:{orders:Ny({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"}}}}}}}}},fz={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 dz(t){const{value:e,onChange:n,renderSchemaComponent:r}=t,i=lz();return Y.jsx(B.Variable.Input,{value:e,onChange:n,scope:i,children:r()})}const Ai=G.createContext({visible:!0});Ai.displayName="ChartConfigContext";const hz=t=>{var a;const{insertAdjacent:e}=B.useDesignable(),[n,r]=G.useState(!1),[i,o]=G.useState({});return Y.jsxs(Ai.Provider,{value:{visible:n,setVisible:r,current:i,setCurrent:o},children:[t.children,Y.jsx(TS,ct(tt({},(a=i.field)==null?void 0:a.decoratorProps),{disableAutoRefresh:!0,children:Y.jsx(ai,{insert:(s,l)=>e("beforeEnd",s,l)})}))]})},pz=t=>{const{schema:e}=t,n=dt.useField();return e?Y.jsx(B.SchemaComponent,{schema:{type:"void",properties:{[e.name]:ct(tt({type:"void"},e),{value:n.value,"x-component-props":ct(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:vz}=wt.Typography,ai=t=>{const{t:e}=Bt(),{service:n}=G.useContext(Un),{visible:r,setVisible:i,current:o}=G.useContext(Ai),{schema:a,field:s,dataSource:l,collection:c,initialValues:u}=o||{},{dn:f}=B.useDesignable(),{modal:d}=wt.App.useApp(),{insert:h}=t,p=NS(),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)&&(_.setInitialValuesIn("config.general",{}),_.values.config.general=j),(L||P)&&(_.values.config.advanced=L||{})},[g,m]=G.useState([]),[b,x]=G.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))||[];Je.isEqual(A,g)&&Je.isEqual(k,b)||(C==null||C(),m(Je.cloneDeep(A)),x(Je.cloneDeep(k)))},O=SB(),_=G.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:ct(tt({},P),{config:ct(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=G.memo(()=>Y.jsx(wt.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=G.useRef(null),M=G.useRef(null);return G.useEffect(()=>{var P;r&&n.run(c,(P=s==null?void 0:s.decoratorProps)==null?void 0:P.query,"configure")},[r]),Y.jsx(wt.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"]=ct(tt({},a["x-component-props"]),{title:T,bordered:N}),a["x-decorator-props"]=L,s.decoratorProps=L,s.componentProps=ct(tt({},s.componentProps),{title:T,bordered:N}),s["x-acl-action"]=`${c}:list`,f.emit("patch",{schema:a}),j();return}h(B.gridRowColWrap(kS(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
|
}
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
> .ant-formily-item-label {
|
|
34
34
|
display: none;
|
|
35
35
|
}
|
|
36
|
-
`]:r===!1}),[r]),a=(n==null?void 0:n["x-data-source"])||B.DEFAULT_DATA_SOURCE_KEY,s=(n==null?void 0:n["x-collection-field"])||"",[l]=s.split(".");return Y.jsx(B.BlockItem,{className:"nb-form-item",children:Y.jsx(B.CollectionManagerProvider,{dataSource:a,children:Y.jsx(B.CollectionProvider,{name:l,allowNull:!l,children:Y.jsx(B.CollectionFieldProvider,{name:n.name,allowNull:!n["x-collection-field"],children:Y.jsx(B.ACLCollectionFieldProvider,{children:Y.jsx(CS,{onError:f=>console.log(f),FallbackComponent:_z,children:Y.jsx(se.FormItem,ct(tt({className:o},t),{extra:i}))})})})})})})},{displayName:"ChartFilterFormItem"}),GS=G.memo(t=>{const{locale:e}=G.useContext(wt.ConfigProvider.ConfigContext),{t:n}=Bt(),r=dr.useMemoizedFn(n),{scope:i,components:o}=G.useContext(dt.SchemaOptionsContext),{theme:a}=B.useGlobalTheme(),{insert:s}=t,l=B.useSchemaInitializerItem(),c=B.useDataSourceManager(),u=BS(),{options:f,values:d}=zS(),h=G.useCallback(()=>In(this,null,function*(){var w,O;const p=yield B.FormDialog(r("Add custom field"),()=>Y.jsx(B.SchemaComponentOptions,{scope:ct(tt({},i),{useChartFilterSourceFields:BS}),components:ct(tt({},o),{FieldComponentProps:Oz}),children:Y.jsxs(se.FormLayout,{layout:"vertical",children:[Y.jsx(wt.Alert,{type:"info",message:r('To filter with custom fields, use "Current filter" variables in the chart configuration.'),style:{marginBottom:16}}),Y.jsx(wt.ConfigProvider,{locale:e,children:Y.jsx(B.SchemaComponent,{schema:{properties:{name:{type:"string",required:!0},title:{type:"string",title:r("Field title"),"x-component":"Input","x-decorator":"FormItem",required:!0},source:{type:"string",title:r("Field source"),"x-decorator":"FormItem","x-component":"Cascader",enum:u,description:r("Select a source field to use metadata of the field")},component:{type:"string",title:r("Field component"),"x-component":"Select","x-decorator":"FormItem",required:!0,enum:f},props:{type:"object",title:r("Component properties"),"x-component":"FieldComponentProps"}}}})})]})}),a).open({values:{name:`f_${Pi.uid()}`},effects(){On.onFieldValueChange("source",_=>{if(!_.value)return;const[S,...E]=_.value,M=c.getDataSource(S);if(!M)return;const P=M.collectionManager,C=E.join("."),A=P.getCollectionField(C);if(!A)return;const k=A.uiSchema||{};let T;if(d.includes(k["x-component"])){T=k["x-component"];const j=k["x-component-props"]||{};k.enum&&(j.options=k.enum),_.query(".props").take().setValue(j)}else d.includes(A.interface)&&(T=A.interface);if(!T)return;_.query(".component").take().setValue(T)})}}),{name:v,title:y,component:g,props:m}=p,x=((O=(w=c.collectionFieldInterfaceManager.getFieldInterface(g))==null?void 0:w.default)==null?void 0:O.uiSchema)||{};s(B.gridRowColWrap(ct(tt({"x-component":g},x),{type:"string",title:y,name:`custom.${v}`,required:!1,"x-designer":"ChartFilterItemDesigner","x-decorator":"ChartFilterFormItem","x-component-props":tt(tt({},x["x-component-props"]||{}),m)})))}),[a]);return Y.jsx(B.SchemaInitializerItem,ct(tt(tt({},l),t),{onClick:h}))});GS.displayName="ChartFilterCustomItemInitializer";const HS={name:"chartFilterForm:configureFields","data-testid":"configure-fields-button-of-chart-filter-item",wrap:B.gridRowColWrap,icon:"SettingOutlined",title:'{{ t("Configure fields") }}',items:[{type:"itemGroup",name:"displayFields",title:'{{ t("Display fields") }}',useChildren:()=>{const{t}=Bt(),{chartCollections:e,showDataSource:n}=Ly(),{getChartFilterFields:r}=sl(),i=B.useDataSourceManager(),o=i.collectionFieldInterfaceManager;return G.useMemo(()=>{var s;const a=Object.entries(e).map(([l,c])=>{const u=i.getDataSource(l);return{name:u.key,title:dt.Schema.compile(u.displayName,{t}),type:"subMenu",children:c.map(f=>{const d=u.collectionManager,h=d.getCollection(f),p=r({dataSource:l,collection:h,cm:d,fim:o});return{name:h.key,title:dt.Schema.compile(h.title,{t}),type:"subMenu",children:p}})}});return n?a:((s=a[0])==null?void 0:s.children)||[]},[e,n])}},{name:"divider",type:"divider"},{name:"custom",type:"item",title:bt("Custom"),Component:()=>{const{insertAdjacent:t}=B.useDesignable();return Y.jsx(GS,{insert:e=>t("beforeEnd",e)})}}]},VS=new B.CompatibleSchemaInitializer(ct(tt({},HS),{name:"ChartFilterItemInitializers"})),Ez=new B.CompatibleSchemaInitializer(HS,VS),Mz=()=>{const{filter:t}=sl();return{onClick:t}},Pz=()=>{const t=dt.useForm(),{filter:e}=sl();return{onClick:()=>In(this,null,function*(){t.reset(),yield e()})}},Az=()=>{const{collapse:{collapsed:t},setCollapse:e}=G.useContext(Nr),{t:n}=Bt();return{onClick:()=>e({collapsed:!t}),title:Y.jsxs(Y.Fragment,{children:[Y.jsx(Qe.DownOutlined,{rotate:t?0:180})," ",n(t?"Expand":"Collapse")]})}},Cz=t=>{const{t:e}=Bt();return Y.jsx(B.GeneralSchemaDesigner,ct(tt({},t),{disableInitializer:!0,children:Y.jsx(B.SchemaSettingsRemove,{breakRemoveOn:n=>n["x-component"]==="Space"||n["x-component"].endsWith("ActionBar"),confirm:{title:e("Delete action")}})}))},kz=t=>{const i=t,{buttonEditorProps:e}=i,n=PS(i,["buttonEditorProps"]),{t:r}=Bt();return Y.jsxs(B.GeneralSchemaDesigner,ct(tt({},n),{disableInitializer:!0,children:[Y.jsx(B.Action.Designer.ButtonEditor,tt({},e)),Y.jsx(B.SchemaSettingsDivider,{}),Y.jsx(B.SchemaSettingsRemove,{breakRemoveOn:o=>o["x-component"]==="Space"||o["x-component"].endsWith("ActionBar"),confirm:{title:r("Delete action")}})]}))},US={"data-testid":"configure-actions-button-of-chart-filter",title:'{{t("Configure actions")}}',icon:"SettingOutlined",items:[{name:"filter",type:"item",title:'{{t("Filter")}}',component:t=>{const e={title:'{{ t("Filter") }}',"x-action":"submit","x-component":"Action","x-use-component-props":"useChartFilterActionProps","x-designer":"ChartFilterActionDesigner","x-component-props":{htmlType:"submit",type:"primary"}};return Y.jsx(B.ActionInitializer,ct(tt({},t),{schema:e}))},schema:{"x-action-settings":{}}},{name:"reset",type:"item",title:'{{t("Reset")}}',component:t=>{const e={title:'{{ t("Reset") }}',"x-action":"reset","x-component":"Action","x-use-component-props":"useChartFilterResetProps","x-designer":"ChartFilterActionDesigner"};return Y.jsx(B.ActionInitializer,ct(tt({},t),{schema:e}))},schema:{"x-action-settings":{}}},{name:"collapse",type:"item",title:'{{t("Collapse")}}',component:t=>{const e={title:'{{ t("Collapse") }}',"x-action":"collapse","x-component":"Action","x-use-component-props":"useChartFilterCollapseProps","x-component-props":{type:"link"},"x-designer":"ChartFilterCollapseDesigner"};return Y.jsx(B.ActionInitializer,ct(tt({},t),{schema:e}))},schema:{"x-action-settings":{}}}]},XS=new B.CompatibleSchemaInitializer(tt({name:"ChartFilterActionInitializers"},US)),Tz=new B.CompatibleSchemaInitializer(tt({name:"chartFilterForm:configureActions"},US),XS),Lz=t=>{var u;const{value:e,onChange:n,fieldSchema:r}=t,i=(r==null?void 0:r["x-collection-field"])||"",[o]=i.split("."),a=YS(r,(u=r["x-component-props"])==null?void 0:u["filter-operator"]),s=ct(tt({},r),{"x-component":r["x-component"]||"Input","x-decorator":"CollectionProvider","x-decorator-props":{name:o,allowNull:!o},title:"",name:"value",default:""}),l=r["x-component-props"]||{},c=dr.useMemoizedFn(n);return G.useEffect(()=>{r.default&&c({value:r.default})},[r.default,c]),Y.jsx(B.VariableScopeProvider,{scope:a,children:Y.jsx(B.VariableInput,ct(tt({},l),{renderSchemaComponent:()=>Y.jsx(B.SchemaComponent,{schema:s,components:{CollectionProvider:B.CollectionProvider}}),fieldNames:{},value:e==null?void 0:e.value,scope:a,onChange:f=>{n({value:f})},shouldChange:B.getShouldChange({})}))})},{Text:Nz}=wt.Typography,Iz=()=>{const t=dt.useField(),e=dt.useFieldSchema(),{t:n}=Bt(),{dn:r}=B.useDesignable(),{setField:i}=G.useContext(Nr);return Y.jsx(B.SchemaSettingsModalItem,{title:n("Edit field title"),schema:{type:"object",title:n("Edit field title"),properties:{title:{title:n("Field title"),default:t==null?void 0:t.title,required:!0,"x-decorator":"FormItem","x-component":"Input","x-component-props":{}}}},onSubmit:({title:o})=>{o&&(t.title=o,e.title=o,r.emit("patch",{schema:{"x-uid":e["x-uid"],title:e.title}}),i(e.name,{title:o})),r.refresh()}},"edit-field-title")},jz=()=>{var g,m,b,x;const t=B.useCompile(),e=dt.useFieldSchema(),n=dt.useField(),{t:r}=Bt(),{dn:i}=B.useDesignable(),{setField:o}=G.useContext(Nr),a=e["x-collection-field"],s=e["x-data-source"]||B.DEFAULT_DATA_SOURCE_KEY,{cm:l,fim:c}=cu(s);if(!l)return null;const u=w=>{var E;let O=w==null?void 0:w.interface;O==="formula"&&(O=bB(w.dataType)||w.dataType);const _=c.getFieldInterface(O);return{operatorList:((E=_==null?void 0:_.filterable)==null?void 0:E.operators)||[],interfaceConfig:_}};let f=l.getCollectionField(a),{operatorList:d,interfaceConfig:h}=u(f);if(!d.length){const w=a.split("."),O=w.pop();if(w.length<2||(f=l.getCollectionField(w.join(".")),!f))return null;const _=u(f);if(d=_.operatorList,h=_.interfaceConfig,!h)return null;const E=((h==null?void 0:h.filterable.children)||[]).find(M=>M.name===O);d=(E==null?void 0:E.operators)||[]}if(!d.length)return null;const p=((m=(g=h==null?void 0:h.default)==null?void 0:g.uiSchema)==null?void 0:m["x-component"])||"Input",v=(b=e["x-component-props"])==null?void 0:b["filter-operator"],y=(w,O,_={})=>{const S=n.componentProps||{};n.component=O,n.componentProps=tt(ct(tt({},S),{"filter-operator":w}),_),e["x-component"]=O,e["x-component-props"]=tt(ct(tt({},e["x-component-props"]),{"filter-operator":w}),_),i.emit("patch",{schema:{"x-uid":e["x-uid"],"x-component":O,"x-component-props":tt(ct(tt({},e["x-component-props"]),{"filter-operator":w}),_)}})};return Y.jsx(B.SchemaSettingsSelectItem,{title:r("Operator"),value:(v==null?void 0:v.value)||((x=d[0])==null?void 0:x.value),options:t(d),onChange:w=>{var _;const O=d.find(S=>S.value===w);O.noValue?y(O,"ChartFilterCheckbox",{content:dt.Schema.compile(O.label,{t:r})}):(_=O.schema)!=null&&_["x-component"]?y(O,O.schema["x-component"]):y(O,p),o(e.name,{operator:O}),i.refresh()}},"operator")},Dz=()=>{const{t}=Bt(),{dn:e}=B.useDesignable(),n=dt.useField(),r=dt.useFieldSchema(),i=ky(r["x-component"]);return Y.jsx(B.SchemaSettingsModalItem,{title:t("Edit field properties"),schema:tt({title:t("Edit field properties")},i),initialValues:n.componentProps,onSubmit:o=>{n.reset(),n.componentProps=o,r["x-component-props"]=o,e.emit("patch",{schema:{"x-uid":r["x-uid"],"x-component-props":o}}),e.refresh()}},"edit-field-props")},Fz=()=>{const{t}=Bt(),{dn:e}=B.useDesignable(),n=G.useContext(B.VariablesContext),r=B.useLocalVariables(),i=dt.useField(),o=dt.useFieldSchema(),{getTranslatedTitle:a}=sl(),s=a(o.title);return Y.jsx(B.SchemaSettingsModalItem,{title:t("Set default value"),components:{ChartFilterVariableInput:Lz},schema:{type:"void",title:t("Set default value"),properties:{default:{title:s,"x-decorator":"FormItem","x-component":"ChartFilterVariableInput","x-component-props":{fieldSchema:o}}}},onSubmit:({default:{value:l}})=>{i.setInitialValue(l),o.default=l,e.emit("patch",{schema:{"x-uid":o["x-uid"],default:l}}),e.refresh(),$S(i,n,r)}},"set field default value")},$z=()=>{var f,d,h;const{getCollectionFields:t,getCollectionJoinField:e,getInterface:n}=B.useCollectionManager_deprecated(),r=dt.useField(),i=dt.useFieldSchema(),{t:o}=Bt(),{dn:a}=B.useDesignable(),s=B.useCompile(),l=e(i["x-collection-field"]),u=(l!=null&&l.target?t(l==null?void 0:l.target):(f=t(l==null?void 0:l.targetCollection))!=null?f:[]).filter(p=>{if(p!=null&&p.target||p.type==="boolean")return!1;const v=n(p==null?void 0:p.interface);return v==null?void 0:v.titleUsable}).map(p=>{var v;return{value:p==null?void 0:p.name,label:s((v=p==null?void 0:p.uiSchema)==null?void 0:v.title)||(p==null?void 0:p.name)}});return u.length>0&&i["x-component"]==="CollectionField"?Y.jsx(B.SchemaSettingsSelectItem,{title:o("Title field"),options:u,value:(h=(d=r==null?void 0:r.componentProps)==null?void 0:d.fieldNames)==null?void 0:h.label,onChange:p=>{var g,m;const v={"x-uid":i["x-uid"]},y=ct(tt(tt({},(m=(g=l==null?void 0:l.uiSchema)==null?void 0:g["x-component-props"])==null?void 0:m.fieldNames),r.componentProps.fieldNames),{label:p});i["x-component-props"]=i["x-component-props"]||{},i["x-component-props"].fieldNames=y,v["x-component-props"]=i["x-component-props"],r.componentProps.fieldNames=i["x-component-props"].fieldNames,a.emit("patch",{schema:v}),a.refresh()}},"title-field"):null},Rz=()=>{var s,l,c;const{dn:t}=B.useDesignable(),e=dt.useField(),n=dt.useFieldSchema(),r=n["x-data-source"]||B.DEFAULT_DATA_SOURCE_KEY,{form:i}=B.useFormBlockContext(),{cm:o}=cu(r),a=o.getCollectionField(n["x-collection-field"]);return a?Y.jsx(B.SchemaSettingsDataScope,{form:i,defaultFilter:((c=(l=(s=n==null?void 0:n["x-component-props"])==null?void 0:s.service)==null?void 0:l.params)==null?void 0:c.filter)||{},collectionName:a.target,onSubmit:({filter:u})=>{u=B.removeNullCondition(u),Je.set(e.componentProps,"service.params.filter",u),n["x-component-props"]=e.componentProps,t.emit("patch",{schema:{"x-uid":n["x-uid"],"x-component-props":e.componentProps}})}}):null},Bz=()=>{const{getCollectionJoinField:t}=B.useCollectionManager_deprecated(),{getField:e}=B.useCollection_deprecated(),{t:n}=Bt(),r=dt.useFieldSchema(),i=r.name,o=r["x-data-source"]||B.DEFAULT_DATA_SOURCE_KEY,a=e(i)||t(r["x-collection-field"]),s=i.startsWith("custom."),l=ky(r["x-component"]),c=sz(o,i),u=B.useIsAssociationField();return Y.jsxs(B.GeneralSchemaDesigner,{disableInitializer:!0,children:[!s&&Y.jsxs(Y.Fragment,{children:[Y.jsx(B.SchemaSettingsItem,{title:i,children:Y.jsxs(Nz,{type:"secondary",children:[n("Original field"),": ",c]})}),Y.jsx(B.SchemaSettingsDivider,{})]}),Y.jsx(Iz,{}),Y.jsx(B.EditDescription,{}),l&&s&&Y.jsx(Dz,{}),!s&&Y.jsx(jz,{}),Y.jsx($z,{}),Y.jsx(Fz,{}),u&&Y.jsx(Rz,{}),a?Y.jsx(B.SchemaSettingsDivider,{}):null,Y.jsx(B.SchemaSettingsRemove,{confirm:{title:n("Delete field")},breakRemoveOn:{"x-component":"Grid"}},"remove")]})},zz=dt.connect(t=>{const{content:e}=t,n=dt.useField(),r=()=>{n.setValue(!n.value)};return Y.jsx(wt.Checkbox,{onClick:r,checked:n.value,children:e})}),qS=G.memo(t=>{const{setField:e,removeField:n,setForm:r}=G.useContext(Nr),{getTranslatedTitle:i}=sl(),o=G.useRef(null);o.current=G.useContext(B.VariablesContext);const a=B.useLocalVariables(),s=G.useMemo(()=>On.createForm({effects(){const l=c=>{if(c.displayName!=="Field")return null;const{name:u}=c.props||{};return u};On.onFieldInit("*",c=>{l(c)&&c.setValue(null)}),On.onFieldMount("*",c=>In(this,null,function*(){const u=l(c);u&&(e(u,{title:c.title,operator:c.componentProps["filter-operator"]}),c.title.includes("/")&&(c.title=i(c.title)),$S(c,o.current,a))})),On.onFieldUnmount("*",c=>{const u=l(c);u&&n(u)})}}),[e,i,n,o,a]);return G.useEffect(()=>r(s),[s,r]),Y.jsx(B.FormV2,ct(tt({},t),{form:s}))});qS.displayName="ChartFilterForm";const Yz=()=>{const t={},e=B.useSchemaInitializerItem();return Y.jsx(B.InitializerWithSwitch,ct(tt({},e),{item:e,schema:t,type:"name"}))},Wz=t=>{const{t:e}=Bt(),{setEnabled:n}=G.useContext(Nr);return G.useEffect(()=>{n(!0)},[n]),Y.jsx("div",{className:zo.css`
|
|
36
|
+
`]:r===!1}),[r]),a=(n==null?void 0:n["x-data-source"])||B.DEFAULT_DATA_SOURCE_KEY,s=(n==null?void 0:n["x-collection-field"])||"",[l]=s.split(".");return Y.jsx(B.BlockItem,{className:"nb-form-item",children:Y.jsx(B.CollectionManagerProvider,{dataSource:a,children:Y.jsx(B.CollectionProvider,{name:l,allowNull:!l,children:Y.jsx(B.CollectionFieldProvider,{name:n.name,allowNull:!n["x-collection-field"],children:Y.jsx(B.ACLCollectionFieldProvider,{children:Y.jsx(CS,{onError:f=>console.log(f),FallbackComponent:_z,children:Y.jsx(se.FormItem,ct(tt({className:o},t),{extra:i}))})})})})})})},{displayName:"ChartFilterFormItem"}),GS=G.memo(t=>{const{locale:e}=G.useContext(wt.ConfigProvider.ConfigContext),{t:n}=Bt(),r=dr.useMemoizedFn(n),{scope:i,components:o}=G.useContext(dt.SchemaOptionsContext),{theme:a}=B.useGlobalTheme(),{insert:s}=t,l=B.useSchemaInitializerItem(),c=B.useDataSourceManager(),u=BS(),{options:f,values:d}=zS(),h=G.useCallback(()=>In(this,null,function*(){var w,O;const p=yield B.FormDialog(r("Add custom field"),()=>Y.jsx(B.SchemaComponentOptions,{scope:ct(tt({},i),{useChartFilterSourceFields:BS}),components:ct(tt({},o),{FieldComponentProps:Oz}),children:Y.jsxs(se.FormLayout,{layout:"vertical",children:[Y.jsx(wt.Alert,{type:"info",message:r('To filter with custom fields, use "Current filter" variables in the chart configuration.'),style:{marginBottom:16}}),Y.jsx(wt.ConfigProvider,{locale:e,children:Y.jsx(B.SchemaComponent,{schema:{properties:{name:{type:"string",required:!0},title:{type:"string",title:r("Field title"),"x-component":"Input","x-decorator":"FormItem",required:!0},source:{type:"string",title:r("Field source"),"x-decorator":"FormItem","x-component":"Cascader",enum:u,description:r("Select a source field to use metadata of the field")},component:{type:"string",title:r("Field component"),"x-component":"Select","x-decorator":"FormItem",required:!0,enum:f},props:{type:"object",title:r("Component properties"),"x-component":"FieldComponentProps"}}}})})]})}),a).open({values:{name:`f_${Pi.uid()}`},effects(){On.onFieldValueChange("source",_=>{if(!_.value)return;const[S,...E]=_.value,M=c.getDataSource(S);if(!M)return;const P=M.collectionManager,C=E.join("."),A=P.getCollectionField(C);if(!A)return;const k=A.uiSchema||{};let T;if(d.includes(k["x-component"])){T=k["x-component"];const j=k["x-component-props"]||{};k.enum&&(j.options=k.enum),_.query(".props").take().setValue(j)}else d.includes(A.interface)&&(T=A.interface);if(!T)return;_.query(".component").take().setValue(T)})}}),{name:v,title:y,component:g,props:m}=p,x=((O=(w=c.collectionFieldInterfaceManager.getFieldInterface(g))==null?void 0:w.default)==null?void 0:O.uiSchema)||{};s(B.gridRowColWrap(ct(tt({"x-component":g},x),{type:"string",title:y,name:`custom.${v}`,required:!1,"x-designer":"ChartFilterItemDesigner","x-decorator":"ChartFilterFormItem","x-component-props":tt(tt({},x["x-component-props"]||{}),m)})))}),[a]);return Y.jsx(B.SchemaInitializerItem,ct(tt(tt({},l),t),{onClick:h}))});GS.displayName="ChartFilterCustomItemInitializer";const HS={name:"chartFilterForm:configureFields","data-testid":"configure-fields-button-of-chart-filter-item",wrap:B.gridRowColWrap,icon:"SettingOutlined",title:'{{ t("Configure fields") }}',items:[{type:"itemGroup",name:"displayFields",title:'{{ t("Display fields") }}',useChildren:()=>{const{t}=Bt(),{chartCollections:e,showDataSource:n}=Ly(),{getChartFilterFields:r}=sl(),i=B.useDataSourceManager(),o=i.collectionFieldInterfaceManager;return G.useMemo(()=>{var s;const a=Object.entries(e).map(([l,c])=>{const u=i.getDataSource(l);return{name:u.key,title:dt.Schema.compile(u.displayName,{t}),type:"subMenu",children:c.map(f=>{const d=u.collectionManager,h=d.getCollection(f),p=r({dataSource:l,collection:h,cm:d,fim:o});return{name:h.key,title:dt.Schema.compile(h.title,{t}),type:"subMenu",children:p}})}});return n?a:((s=a[0])==null?void 0:s.children)||[]},[e,n])}},{name:"divider",type:"divider"},{name:"custom",type:"item",title:bt("Custom"),Component:()=>{const{insertAdjacent:t}=B.useDesignable();return Y.jsx(GS,{insert:e=>t("beforeEnd",e)})}}]},VS=new B.CompatibleSchemaInitializer(ct(tt({},HS),{name:"ChartFilterItemInitializers"})),Ez=new B.CompatibleSchemaInitializer(HS,VS),Mz=()=>{const{filter:t}=sl();return{onClick:t}},Pz=()=>{const t=dt.useForm(),{filter:e}=sl();return{onClick:()=>In(this,null,function*(){t.reset(),yield e()})}},Az=()=>{const{collapse:{collapsed:t},setCollapse:e}=G.useContext(Nr),{t:n}=Bt();return{onClick:()=>e({collapsed:!t}),title:Y.jsxs(Y.Fragment,{children:[Y.jsx(Qe.DownOutlined,{rotate:t?0:180})," ",n(t?"Expand":"Collapse")]})}},Cz=t=>{const{t:e}=Bt();return Y.jsx(B.GeneralSchemaDesigner,ct(tt({},t),{disableInitializer:!0,children:Y.jsx(B.SchemaSettingsRemove,{breakRemoveOn:n=>n["x-component"]==="Space"||n["x-component"].endsWith("ActionBar"),confirm:{title:e("Delete action")}})}))},kz=t=>{const i=t,{buttonEditorProps:e}=i,n=PS(i,["buttonEditorProps"]),{t:r}=Bt();return Y.jsxs(B.GeneralSchemaDesigner,ct(tt({},n),{disableInitializer:!0,children:[Y.jsx(B.Action.Designer.ButtonEditor,tt({},e)),Y.jsx(B.SchemaSettingsDivider,{}),Y.jsx(B.SchemaSettingsRemove,{breakRemoveOn:o=>o["x-component"]==="Space"||o["x-component"].endsWith("ActionBar"),confirm:{title:r("Delete action")}})]}))},US={"data-testid":"configure-actions-button-of-chart-filter",title:'{{t("Configure actions")}}',icon:"SettingOutlined",items:[{name:"filter",type:"item",title:'{{t("Filter")}}',component:t=>{const e={title:'{{ t("Filter") }}',"x-action":"submit","x-component":"Action","x-use-component-props":"useChartFilterActionProps","x-designer":"ChartFilterActionDesigner","x-component-props":{htmlType:"submit",type:"primary"}};return Y.jsx(B.ActionInitializer,ct(tt({},t),{schema:e}))},schema:{"x-action-settings":{}}},{name:"reset",type:"item",title:'{{t("Reset")}}',component:t=>{const e={title:'{{ t("Reset") }}',"x-action":"reset","x-component":"Action","x-use-component-props":"useChartFilterResetProps","x-designer":"ChartFilterActionDesigner"};return Y.jsx(B.ActionInitializer,ct(tt({},t),{schema:e}))},schema:{"x-action-settings":{}}},{name:"collapse",type:"item",title:'{{t("Collapse")}}',component:t=>{const e={title:'{{ t("Collapse") }}',"x-action":"collapse","x-component":"Action","x-use-component-props":"useChartFilterCollapseProps","x-component-props":{type:"link"},"x-designer":"ChartFilterCollapseDesigner"};return Y.jsx(B.ActionInitializer,ct(tt({},t),{schema:e}))},schema:{"x-action-settings":{}}}]},XS=new B.CompatibleSchemaInitializer(tt({name:"ChartFilterActionInitializers"},US)),Tz=new B.CompatibleSchemaInitializer(tt({name:"chartFilterForm:configureActions"},US),XS),Lz=t=>{var u;const{value:e,onChange:n,fieldSchema:r}=t,i=(r==null?void 0:r["x-collection-field"])||"",[o]=i.split("."),a=YS(r,(u=r["x-component-props"])==null?void 0:u["filter-operator"]),s=ct(tt({},r),{"x-component":r["x-component"]||"Input","x-decorator":"CollectionProvider","x-decorator-props":{name:o,allowNull:!o},title:"",name:"value",default:""}),l=r["x-component-props"]||{},c=dr.useMemoizedFn(n);return G.useEffect(()=>{r.default&&c({value:r.default})},[r.default,c]),Y.jsx(B.VariableScopeProvider,{scope:a,children:Y.jsx(B.VariableInput,ct(tt({},l),{renderSchemaComponent:()=>Y.jsx(B.SchemaComponent,{schema:s,components:{CollectionProvider:B.CollectionProvider}}),fieldNames:{},value:e==null?void 0:e.value,scope:a,onChange:f=>{n({value:f})},shouldChange:B.getShouldChange({})}))})},{Text:Nz}=wt.Typography,Iz=()=>{const t=dt.useField(),e=dt.useFieldSchema(),{t:n}=Bt(),{dn:r}=B.useDesignable(),{setField:i}=G.useContext(Nr);return Y.jsx(B.SchemaSettingsModalItem,{title:n("Edit field title"),schema:{type:"object",title:n("Edit field title"),properties:{title:{title:n("Field title"),default:t==null?void 0:t.title,required:!0,"x-decorator":"FormItem","x-component":"Input","x-component-props":{}}}},onSubmit:({title:o})=>{o&&(t.title=o,e.title=o,r.emit("patch",{schema:{"x-uid":e["x-uid"],title:e.title}}),i(e.name,{title:o})),r.refresh()}},"edit-field-title")},jz=()=>{var g,m,b,x;const t=B.useCompile(),e=dt.useFieldSchema(),n=dt.useField(),{t:r}=Bt(),{dn:i}=B.useDesignable(),{setField:o}=G.useContext(Nr),a=e["x-collection-field"],s=e["x-data-source"]||B.DEFAULT_DATA_SOURCE_KEY,{cm:l,fim:c}=cu(s);if(!l)return null;const u=w=>{var E;let O=w==null?void 0:w.interface;O==="formula"&&(O=bB(w.dataType)||w.dataType);const _=c.getFieldInterface(O);return{operatorList:((E=_==null?void 0:_.filterable)==null?void 0:E.operators)||[],interfaceConfig:_}};let f=l.getCollectionField(a),{operatorList:d,interfaceConfig:h}=u(f);if(!d.length){const w=a.split("."),O=w.pop();if(w.length<2||(f=l.getCollectionField(w.join(".")),!f))return null;const _=u(f);if(d=_.operatorList,h=_.interfaceConfig,!h)return null;const E=((h==null?void 0:h.filterable.children)||[]).find(M=>M.name===O);d=(E==null?void 0:E.operators)||[]}if(!d.length)return null;const p=((m=(g=h==null?void 0:h.default)==null?void 0:g.uiSchema)==null?void 0:m["x-component"])||"Input",v=(b=e["x-component-props"])==null?void 0:b["filter-operator"],y=(w,O,_={})=>{O==="DatePicker.FilterWithPicker"&&(O="DatePicker");const S=n.componentProps||{};n.component=O,n.componentProps=tt(ct(tt({},S),{"filter-operator":w}),_),e["x-component"]=O,e["x-component-props"]=tt(ct(tt({},e["x-component-props"]),{"filter-operator":w}),_),e["x-filter-operator"]=w==null?void 0:w.value,i.emit("patch",{schema:{"x-uid":e["x-uid"],"x-component":O,"x-component-props":tt(ct(tt({},e["x-component-props"]),{"filter-operator":w}),_),"x-filter-operator":w==null?void 0:w.value}})};return Y.jsx(B.SchemaSettingsSelectItem,{title:r("Operator"),value:(v==null?void 0:v.value)||((x=d[0])==null?void 0:x.value),options:t(d),onChange:w=>{var _;const O=d.find(S=>S.value===w);O.noValue?y(O,"ChartFilterCheckbox",{content:dt.Schema.compile(O.label,{t:r})}):(_=O.schema)!=null&&_["x-component"]?y(O,O.schema["x-component"]):y(O,p),o(e.name,{operator:O}),i.refresh()}},"operator")},Dz=()=>{const{t}=Bt(),{dn:e}=B.useDesignable(),n=dt.useField(),r=dt.useFieldSchema(),i=ky(r["x-component"]);return Y.jsx(B.SchemaSettingsModalItem,{title:t("Edit field properties"),schema:tt({title:t("Edit field properties")},i),initialValues:n.componentProps,onSubmit:o=>{n.reset(),n.componentProps=o,r["x-component-props"]=o,e.emit("patch",{schema:{"x-uid":r["x-uid"],"x-component-props":o}}),e.refresh()}},"edit-field-props")},Fz=()=>{const{t}=Bt(),{dn:e}=B.useDesignable(),n=G.useContext(B.VariablesContext),r=B.useLocalVariables(),i=dt.useField(),o=dt.useFieldSchema(),{getTranslatedTitle:a}=sl(),s=a(o.title);return Y.jsx(B.SchemaSettingsModalItem,{title:t("Set default value"),components:{ChartFilterVariableInput:Lz},schema:{type:"void",title:t("Set default value"),properties:{default:{title:s,"x-decorator":"FormItem","x-component":"ChartFilterVariableInput","x-component-props":{fieldSchema:o}}}},onSubmit:({default:{value:l}})=>{i.setInitialValue(l),o.default=l,e.emit("patch",{schema:{"x-uid":o["x-uid"],default:l}}),e.refresh(),$S(i,n,r)}},"set field default value")},$z=()=>{var f,d,h;const{getCollectionFields:t,getCollectionJoinField:e,getInterface:n}=B.useCollectionManager_deprecated(),r=dt.useField(),i=dt.useFieldSchema(),{t:o}=Bt(),{dn:a}=B.useDesignable(),s=B.useCompile(),l=e(i["x-collection-field"]),u=(l!=null&&l.target?t(l==null?void 0:l.target):(f=t(l==null?void 0:l.targetCollection))!=null?f:[]).filter(p=>{if(p!=null&&p.target||p.type==="boolean")return!1;const v=n(p==null?void 0:p.interface);return v==null?void 0:v.titleUsable}).map(p=>{var v;return{value:p==null?void 0:p.name,label:s((v=p==null?void 0:p.uiSchema)==null?void 0:v.title)||(p==null?void 0:p.name)}});return u.length>0&&i["x-component"]==="CollectionField"?Y.jsx(B.SchemaSettingsSelectItem,{title:o("Title field"),options:u,value:(h=(d=r==null?void 0:r.componentProps)==null?void 0:d.fieldNames)==null?void 0:h.label,onChange:p=>{var g,m;const v={"x-uid":i["x-uid"]},y=ct(tt(tt({},(m=(g=l==null?void 0:l.uiSchema)==null?void 0:g["x-component-props"])==null?void 0:m.fieldNames),r.componentProps.fieldNames),{label:p});i["x-component-props"]=i["x-component-props"]||{},i["x-component-props"].fieldNames=y,v["x-component-props"]=i["x-component-props"],r.componentProps.fieldNames=i["x-component-props"].fieldNames,a.emit("patch",{schema:v}),a.refresh()}},"title-field"):null},Rz=()=>{var s,l,c;const{dn:t}=B.useDesignable(),e=dt.useField(),n=dt.useFieldSchema(),r=n["x-data-source"]||B.DEFAULT_DATA_SOURCE_KEY,{form:i}=B.useFormBlockContext(),{cm:o}=cu(r),a=o.getCollectionField(n["x-collection-field"]);return a?Y.jsx(B.SchemaSettingsDataScope,{form:i,defaultFilter:((c=(l=(s=n==null?void 0:n["x-component-props"])==null?void 0:s.service)==null?void 0:l.params)==null?void 0:c.filter)||{},collectionName:a.target,onSubmit:({filter:u})=>{u=B.removeNullCondition(u),Je.set(e.componentProps,"service.params.filter",u),n["x-component-props"]=e.componentProps,t.emit("patch",{schema:{"x-uid":n["x-uid"],"x-component-props":e.componentProps}})}}):null},Bz=()=>{const{getCollectionJoinField:t}=B.useCollectionManager_deprecated(),{getField:e}=B.useCollection_deprecated(),{t:n}=Bt(),r=dt.useFieldSchema(),i=r.name,o=r["x-data-source"]||B.DEFAULT_DATA_SOURCE_KEY,a=e(i)||t(r["x-collection-field"]),s=i.startsWith("custom."),l=ky(r["x-component"]),c=sz(o,i),u=B.useIsAssociationField();return Y.jsxs(B.GeneralSchemaDesigner,{disableInitializer:!0,children:[!s&&Y.jsxs(Y.Fragment,{children:[Y.jsx(B.SchemaSettingsItem,{title:i,children:Y.jsxs(Nz,{type:"secondary",children:[n("Original field"),": ",c]})}),Y.jsx(B.SchemaSettingsDivider,{})]}),Y.jsx(Iz,{}),Y.jsx(B.EditDescription,{}),l&&s&&Y.jsx(Dz,{}),!s&&Y.jsx(jz,{}),Y.jsx($z,{}),Y.jsx(Fz,{}),u&&Y.jsx(Rz,{}),a?Y.jsx(B.SchemaSettingsDivider,{}):null,Y.jsx(B.SchemaSettingsRemove,{confirm:{title:n("Delete field")},breakRemoveOn:{"x-component":"Grid"}},"remove")]})},zz=dt.connect(t=>{const{content:e}=t,n=dt.useField(),r=()=>{n.setValue(!n.value)};return Y.jsx(wt.Checkbox,{onClick:r,checked:n.value,children:e})}),qS=G.memo(t=>{const{setField:e,removeField:n,setForm:r}=G.useContext(Nr),{getTranslatedTitle:i}=sl(),o=G.useRef(null);o.current=G.useContext(B.VariablesContext);const a=B.useLocalVariables(),s=G.useMemo(()=>On.createForm({effects(){const l=c=>{if(c.displayName!=="Field")return null;const{name:u}=c.props||{};return u};On.onFieldInit("*",c=>{l(c)&&c.setValue(null)}),On.onFieldMount("*",c=>In(this,null,function*(){const u=l(c);u&&(e(u,{title:c.title,operator:c.componentProps["filter-operator"]}),c.title.includes("/")&&(c.title=i(c.title)),$S(c,o.current,a))})),On.onFieldUnmount("*",c=>{const u=l(c);u&&n(u)})}}),[e,i,n,o,a]);return G.useEffect(()=>r(s),[s,r]),Y.jsx(B.FormV2,ct(tt({},t),{form:s}))});qS.displayName="ChartFilterForm";const Yz=()=>{const t={},e=B.useSchemaInitializerItem();return Y.jsx(B.InitializerWithSwitch,ct(tt({},e),{item:e,schema:t,type:"name"}))},Wz=t=>{const{t:e}=Bt(),{setEnabled:n}=G.useContext(Nr);return G.useEffect(()=>{n(!0)},[n]),Y.jsx("div",{className:zo.css`
|
|
37
37
|
.ant-card {
|
|
38
38
|
box-shadow: none;
|
|
39
39
|
border: none;
|
package/dist/externalVersion.js
CHANGED
|
@@ -8,24 +8,24 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
module.exports = {
|
|
11
|
-
"@nocobase/client": "1.4.
|
|
11
|
+
"@nocobase/client": "1.4.26",
|
|
12
12
|
"dayjs": "1.11.10",
|
|
13
13
|
"@formily/react": "2.3.0",
|
|
14
14
|
"@formily/shared": "2.3.2",
|
|
15
15
|
"lodash": "4.17.21",
|
|
16
16
|
"react": "18.2.0",
|
|
17
|
-
"@nocobase/cache": "1.4.
|
|
18
|
-
"@nocobase/server": "1.4.
|
|
19
|
-
"@nocobase/test": "1.4.
|
|
17
|
+
"@nocobase/cache": "1.4.26",
|
|
18
|
+
"@nocobase/server": "1.4.26",
|
|
19
|
+
"@nocobase/test": "1.4.26",
|
|
20
20
|
"@emotion/css": "11.13.0",
|
|
21
21
|
"@ant-design/icons": "5.2.6",
|
|
22
22
|
"ahooks": "3.7.8",
|
|
23
23
|
"antd": "5.12.8",
|
|
24
24
|
"@formily/antd-v5": "1.1.9",
|
|
25
25
|
"@formily/core": "2.3.0",
|
|
26
|
-
"@nocobase/utils": "1.4.
|
|
26
|
+
"@nocobase/utils": "1.4.26",
|
|
27
27
|
"react-i18next": "11.18.6",
|
|
28
|
-
"@nocobase/actions": "1.4.
|
|
29
|
-
"@nocobase/database": "1.4.
|
|
28
|
+
"@nocobase/actions": "1.4.26",
|
|
29
|
+
"@nocobase/database": "1.4.26",
|
|
30
30
|
"sequelize": "6.35.2"
|
|
31
31
|
};
|
|
@@ -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":"2025-01-
|
|
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":"2025-01-16T13:43:53.551Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"moment-timezone","version":"0.5.43","description":"Parse and display moments in any timezone.","homepage":"http://momentjs.com/timezone/","author":"Tim Wood <washwithcare@gmail.com> (http://timwoodcreates.com/)","keywords":["moment","date","time","timezone","olson","iana","zone","tz"],"main":"./index.js","typings":"./index.d.ts","engines":{"node":"*"},"repository":{"type":"git","url":"https://github.com/moment/moment-timezone.git"},"bugs":{"url":"https://github.com/moment/moment-timezone/issues"},"license":"MIT","dependencies":{"moment":"^2.29.4"},"devDependencies":{"grunt":"^1.5.3","grunt-contrib-clean":"^2.0.1","grunt-contrib-jshint":"^3.2.0","grunt-contrib-nodeunit":"^4.0.0","grunt-contrib-uglify":"^5.2.2","grunt-exec":"^3.0.0","typescript":"^3.5.1"},"jspm":{"main":"builds/moment-timezone-with-data","shim":{"moment-timezone":{"deps":["moment"]}}},"scripts":{"test":"grunt"},"_lastModified":"2025-01-
|
|
1
|
+
{"name":"moment-timezone","version":"0.5.43","description":"Parse and display moments in any timezone.","homepage":"http://momentjs.com/timezone/","author":"Tim Wood <washwithcare@gmail.com> (http://timwoodcreates.com/)","keywords":["moment","date","time","timezone","olson","iana","zone","tz"],"main":"./index.js","typings":"./index.d.ts","engines":{"node":"*"},"repository":{"type":"git","url":"https://github.com/moment/moment-timezone.git"},"bugs":{"url":"https://github.com/moment/moment-timezone/issues"},"license":"MIT","dependencies":{"moment":"^2.29.4"},"devDependencies":{"grunt":"^1.5.3","grunt-contrib-clean":"^2.0.1","grunt-contrib-jshint":"^3.2.0","grunt-contrib-nodeunit":"^4.0.0","grunt-contrib-uglify":"^5.2.2","grunt-exec":"^3.0.0","typescript":"^3.5.1"},"jspm":{"main":"builds/moment-timezone-with-data","shim":{"moment-timezone":{"deps":["moment"]}}},"scripts":{"test":"grunt"},"_lastModified":"2025-01-16T13:43:54.259Z"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nocobase/plugin-data-visualization",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.26",
|
|
4
4
|
"displayName": "Data visualization",
|
|
5
5
|
"displayName.zh-CN": "数据可视化",
|
|
6
6
|
"description": "Provides data visualization feature, including chart block and chart filter block, support line charts, area charts, bar charts and more than a dozen kinds of charts, you can also extend more chart types.",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"@nocobase/test": "1.x",
|
|
35
35
|
"@nocobase/utils": "1.x"
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "6e9064d9d028901b0fce51fae363dfaabf6edcc6",
|
|
38
38
|
"keywords": [
|
|
39
39
|
"Blocks"
|
|
40
40
|
]
|