bi-sdk-react 0.0.37 → 0.0.38

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.
@@ -1008,7 +1008,7 @@ import*as e from"react";import t,{css as l}from"styled-components";import{AlignC
1008
1008
  color: #999;
1009
1009
  font-size: 12px;
1010
1010
  }
1011
- `,lu=e=>{let{item:t,signal:l,consumer:n}=e,{fetch:r,getVars:a}=(0,eA.useContext)(eT);(0,eA.useEffect)(()=>{if(!(null==t?void 0:t.datasource))return void n(null);switch((null==t?void 0:t.datasource.source)||"custom"){case"custom":try{var e;n(JSON.parse((null==t||null==(e=t.datasource)?void 0:e.custom)||"[]"))}catch(e){n(null)}break;case"dataset":if(!(null==t?void 0:t.datasource.dataset)||!(null==r?void 0:r.dataset)){console.warn("dataset source detected but config or fetcher is missing",{datasetConfig:null==t?void 0:t.datasource.dataset,hasFetchDataset:!!(null==r?void 0:r.dataset)}),n(null);return}let l=a(t.id||"");r.dataset(null==t?void 0:t.datasource.dataset.id,l).then(e=>{n((null==e?void 0:e.data)||null)}).catch(e=>{console.error("dataset fetch error",e),n(null)});break;default:n(null)}},[null==t?void 0:t.datasource,l])},lp=t.div`
1011
+ `,lu=e=>{let{item:t,signal:l}=e,{fetch:n,getVars:r}=(0,eA.useContext)(eT),[a,i]=(0,eA.useState)(null);return(0,eA.useEffect)(()=>{if(!(null==t?void 0:t.datasource))return void i(null);switch((null==t?void 0:t.datasource.source)||"custom"){case"custom":try{var e;i(JSON.parse((null==t||null==(e=t.datasource)?void 0:e.custom)||"[]"))}catch(e){i(null)}break;case"dataset":if(!(null==t?void 0:t.datasource.dataset)||!(null==n?void 0:n.dataset)){console.warn("dataset source detected but config or fetcher is missing",{datasetConfig:null==t?void 0:t.datasource.dataset,hasFetchDataset:!!(null==n?void 0:n.dataset)}),i(null);return}let l=r(t.id||"");n.dataset(null==t?void 0:t.datasource.dataset.id,l).then(e=>{i(e||null)}).catch(e=>{console.error("dataset fetch error",e),i(null)});break;default:i(null)}},[null==t?void 0:t.datasource,l]),a},lp=t.div`
1012
1012
  box-sizing: border-box;
1013
1013
  margin: 0;
1014
1014
  padding: 0;
@@ -1085,7 +1085,7 @@ import*as e from"react";import t,{css as l}from"styled-components";import{AlignC
1085
1085
  const module = undefined;
1086
1086
  const exports = undefined;
1087
1087
  ${e.customRender}
1088
- `)(console,Math,Date,Array,Object,String,Number,Boolean,t,l,n):e.render})),m=()=>{console.log("callback table")};return(0,eA.useEffect)(()=>{u({id:l.id,callback:m})},[]),(0,eO.jsx)(ea,{id:t,dataSource:n,columns:x,pagination:p,bordered:i,size:o,showHeader:"boolean"!=typeof s||s,rowKey:(e,t)=>String(t),style:{padding:1,...d},className:c})},formComponent:e=>{let{model:t,onChange:l}=e,i=(e,n)=>l&&l({...t,[e]:n}),o=(e,l)=>{let n=[...t.columns||[]];n[e]={...n[e],...l},i("columns",n)},[s,d]=(0,eA.useState)(!1),[u,x]=(0,eA.useState)(null),m=null!=u&&t.columns[u]?t.columns[u]:{title:"",dataIndex:"",width:"",align:"left",ellipsis:!1},h=[{title:"列名",dataIndex:"title"},{title:"数据索引",dataIndex:"dataIndex"},{title:"操作",width:80,align:"center",render:(e,l,n)=>(0,eO.jsxs)(en,{children:[(0,eO.jsx)("a",{onClick:()=>{x(n),d(!0)},children:(0,eO.jsx)(p,{})}),(0,eO.jsx)("a",{onClick:()=>{let e;(e=[...t.columns||[]]).splice(n,1),i("columns",e)},children:(0,eO.jsx)(c,{})})]})}];return(0,eO.jsxs)("div",{children:[(0,eO.jsxs)(K,{labelCol:{span:12},wrapperCol:{span:12},children:[(0,eO.jsx)(K.Item,{label:"大小",children:(0,eO.jsxs)(Z.Group,{size:"small",value:t.size,onChange:e=>i("size",e.target.value),children:[(0,eO.jsx)(Z.Button,{value:"small",children:"小"}),(0,eO.jsx)(Z.Button,{value:"middle",children:"中"}),(0,eO.jsx)(Z.Button,{value:"large",children:"大"})]})}),(0,eO.jsx)(K.Item,{label:"边框",children:(0,eO.jsx)(er,{size:"small",checked:!!t.bordered,onChange:e=>i("bordered",e)})}),(0,eO.jsx)(K.Item,{label:"显示表头",children:(0,eO.jsx)(er,{size:"small",checked:!!t.showHeader,onChange:e=>i("showHeader",e)})}),(0,eO.jsx)(K.Item,{label:"分页大小",children:(0,eO.jsx)(U,{size:"small",value:t.pageSize,onChange:e=>i("pageSize",e)})})]}),(0,eO.jsx)(H,{children:"表格列设置"}),(0,eO.jsx)(ea,{size:"small",dataSource:t.columns,rowKey:(e,t)=>String(t),columns:h,pagination:!1,bordered:!0}),(0,eO.jsx)(P,{size:"small",onClick:()=>{i("columns",[...t.columns||[],{title:"",dataIndex:"",width:"",align:"left",ellipsis:!1}])},block:!0,children:"添加列"}),(0,eO.jsx)(q,{title:"编辑列",open:s,footer:null,width:400,onCancel:()=>d(!1),children:(0,eO.jsx)(K,{layout:"vertical",children:(0,eO.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:12},children:[(0,eO.jsx)(K.Item,{label:"列名",children:(0,eO.jsx)(W,{value:m.title,onChange:e=>o(u,{title:e.target.value})})}),(0,eO.jsx)(K.Item,{label:"数据索引",children:(0,eO.jsx)(W,{value:m.dataIndex,onChange:e=>o(u,{dataIndex:e.target.value})})}),(0,eO.jsx)(K.Item,{label:"宽度",children:(0,eO.jsx)(W,{value:m.width,onChange:e=>o(u,{width:e.target.value})})}),(0,eO.jsx)(K.Item,{label:"对齐",children:(0,eO.jsxs)(Z.Group,{value:m.align,onChange:e=>o(u,{align:e.target.value}),children:[(0,eO.jsx)(Z.Button,{value:"left",children:(0,eO.jsx)(r,{})}),(0,eO.jsx)(Z.Button,{value:"center",children:(0,eO.jsx)(n,{})}),(0,eO.jsx)(Z.Button,{value:"right",children:(0,eO.jsx)(a,{})})]})}),(0,eO.jsx)(K.Item,{label:"省略",children:(0,eO.jsx)(er,{checked:!!m.ellipsis,onChange:e=>o(u,{ellipsis:e})})})]})})})]})},defaultOptions:{datasource:{source:"custom",datasourceId:null,scriptId:null,custom:null},props:{size:"default",bordered:!0,showHeader:!0,pageSize:10,dataSource:[{name:"苹果",count:12},{name:"华为",count:803},{name:"OPPO",count:654},{name:"vivo",count:719}],columns:[{title:"品牌",dataIndex:"name"},{title:"日销量(件)",dataIndex:"count"}]}}},{group:"基础组件",key:"b-list",label:"列表",icon:"icon-unordered-list",component:e=>{let{id:t,pageSize:l=10,bordered:n=!0,size:r="default",itemLayout:a="horizontal",item:i,split:o=!0,style:s={},className:d}=e,{initCallback:c}=(0,eA.useContext)(eT),[u,p]=(0,eA.useState)(0),[x,m]=(0,eA.useState)(null);lu({item:i,signal:u,consumer:m});let h=(0,eA.useMemo)(()=>x||[],[x]),f=(0,eA.useMemo)(()=>!!l&&!(l<=h.length)&&{total:h.length,pageSize:l,size:"default"===r?void 0:r,showSizeChanger:!0,showQuickJumper:!0,hideOnSinglePage:!0,pageSizeOptions:["10","20","30","40"],showTotal:(e,t)=>`共 ${e} 条记录,显示第 ${t[0]}-${t[1]} 条`},[l,h.length,r]),g=["p-list",a?`p-list--${a}`:void 0,r?`p-list--${r}`:void 0,o?"p-list--split":void 0,n?"p-list--bordered":void 0,d],v=function(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];return e&&p(e=>e+1),{target:i,data:x}};return(0,eA.useEffect)(()=>{c({id:i.id,callback:v})},[]),(0,eO.jsxs)("div",{id:t,style:{display:"flex",flexDirection:"column",...s},className:g.filter(Boolean).join(" "),children:[(0,eO.jsx)(lb,{list:h,split:o,bordered:n,size:r,itemLayout:a}),f&&(0,eO.jsx)(X,{...f})]})},formComponent:e=>{let{model:t,onChange:l}=e,[n]=K.useForm();return(0,eA.useEffect)(()=>{n.setFieldsValue({size:t.size||"default",itemLayout:t.itemLayout||"horizontal",bordered:t.bordered??!1,split:t.split??!0,pageSize:t.pageSize||10})},[t,n]),(0,eO.jsxs)(K,{form:n,labelCol:{span:12},wrapperCol:{span:12},onValuesChange:e=>{null==l||l({...t,...e})},children:[(0,eO.jsx)(K.Item,{label:"大小",name:"size",children:(0,eO.jsxs)(Z.Group,{size:"small",buttonStyle:"solid",children:[(0,eO.jsx)(Z.Button,{value:"default",children:"默认"}),(0,eO.jsx)(Z.Button,{value:"small",children:"小"})]})}),(0,eO.jsx)(K.Item,{label:"布局",name:"itemLayout",children:(0,eO.jsxs)(Z.Group,{size:"small",buttonStyle:"solid",children:[(0,eO.jsx)(Z.Button,{value:"horizontal",children:"水平"}),(0,eO.jsx)(Z.Button,{value:"vertical",children:"垂直"})]})}),(0,eO.jsx)(K.Item,{label:"边框",name:"bordered",valuePropName:"checked",children:(0,eO.jsx)(er,{size:"small"})}),(0,eO.jsx)(K.Item,{label:"分割线",name:"split",valuePropName:"checked",children:(0,eO.jsx)(er,{size:"small"})}),(0,eO.jsx)(K.Item,{label:"分页大小",name:"pageSize",children:(0,eO.jsx)(U,{size:"small"})})]})},defaultOptions:{datasource:{source:"custom",custom:"[]"},props:{size:"default",itemLayout:"horizontal",bordered:!0,split:!0,pageSize:10}}},{group:"基础组件",key:"b-html",label:"HTML",icon:"icon-html",component:e=>{let{id:t,template:l="",item:n,style:r,className:a,classNames:i=[]}=e,{initCallback:o}=(0,eA.useContext)(eT),[s,d]=(0,eA.useState)(0),[c,u]=(0,eA.useState)(null);lu({item:n,signal:s,consumer:u});let p=(0,eA.useMemo)(()=>Object.keys(c||{}),[c]),x=(0,eA.useMemo)(()=>p.map(e=>null==c?void 0:c[e]),[p,c]),m=(0,eA.useMemo)(()=>(l||"").replace(/##\s*([^#]+)\s*##/g,(e,t)=>{try{return Function(...p,`
1088
+ `)(console,Math,Date,Array,Object,String,Number,Boolean,t,l,n):e.render})),m=()=>{console.log("callback table")};return(0,eA.useEffect)(()=>{u({id:l.id,callback:m})},[]),(0,eO.jsx)(ea,{id:t,dataSource:n,columns:x,pagination:p,bordered:i,size:o,showHeader:"boolean"!=typeof s||s,rowKey:(e,t)=>String(t),style:{padding:1,...d},className:c})},formComponent:e=>{let{model:t,onChange:l}=e,i=(e,n)=>l&&l({...t,[e]:n}),o=(e,l)=>{let n=[...t.columns||[]];n[e]={...n[e],...l},i("columns",n)},[s,d]=(0,eA.useState)(!1),[u,x]=(0,eA.useState)(null),m=null!=u&&t.columns[u]?t.columns[u]:{title:"",dataIndex:"",width:"",align:"left",ellipsis:!1},h=[{title:"列名",dataIndex:"title"},{title:"数据索引",dataIndex:"dataIndex"},{title:"操作",width:80,align:"center",render:(e,l,n)=>(0,eO.jsxs)(en,{children:[(0,eO.jsx)("a",{onClick:()=>{x(n),d(!0)},children:(0,eO.jsx)(p,{})}),(0,eO.jsx)("a",{onClick:()=>{let e;(e=[...t.columns||[]]).splice(n,1),i("columns",e)},children:(0,eO.jsx)(c,{})})]})}];return(0,eO.jsxs)("div",{children:[(0,eO.jsxs)(K,{labelCol:{span:12},wrapperCol:{span:12},children:[(0,eO.jsx)(K.Item,{label:"大小",children:(0,eO.jsxs)(Z.Group,{size:"small",value:t.size,onChange:e=>i("size",e.target.value),children:[(0,eO.jsx)(Z.Button,{value:"small",children:"小"}),(0,eO.jsx)(Z.Button,{value:"middle",children:"中"}),(0,eO.jsx)(Z.Button,{value:"large",children:"大"})]})}),(0,eO.jsx)(K.Item,{label:"边框",children:(0,eO.jsx)(er,{size:"small",checked:!!t.bordered,onChange:e=>i("bordered",e)})}),(0,eO.jsx)(K.Item,{label:"显示表头",children:(0,eO.jsx)(er,{size:"small",checked:!!t.showHeader,onChange:e=>i("showHeader",e)})}),(0,eO.jsx)(K.Item,{label:"分页大小",children:(0,eO.jsx)(U,{size:"small",value:t.pageSize,onChange:e=>i("pageSize",e)})})]}),(0,eO.jsx)(H,{children:"表格列设置"}),(0,eO.jsx)(ea,{size:"small",dataSource:t.columns,rowKey:(e,t)=>String(t),columns:h,pagination:!1,bordered:!0}),(0,eO.jsx)(P,{size:"small",onClick:()=>{i("columns",[...t.columns||[],{title:"",dataIndex:"",width:"",align:"left",ellipsis:!1}])},block:!0,children:"添加列"}),(0,eO.jsx)(q,{title:"编辑列",open:s,footer:null,width:400,onCancel:()=>d(!1),children:(0,eO.jsx)(K,{layout:"vertical",children:(0,eO.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:12},children:[(0,eO.jsx)(K.Item,{label:"列名",children:(0,eO.jsx)(W,{value:m.title,onChange:e=>o(u,{title:e.target.value})})}),(0,eO.jsx)(K.Item,{label:"数据索引",children:(0,eO.jsx)(W,{value:m.dataIndex,onChange:e=>o(u,{dataIndex:e.target.value})})}),(0,eO.jsx)(K.Item,{label:"宽度",children:(0,eO.jsx)(W,{value:m.width,onChange:e=>o(u,{width:e.target.value})})}),(0,eO.jsx)(K.Item,{label:"对齐",children:(0,eO.jsxs)(Z.Group,{value:m.align,onChange:e=>o(u,{align:e.target.value}),children:[(0,eO.jsx)(Z.Button,{value:"left",children:(0,eO.jsx)(r,{})}),(0,eO.jsx)(Z.Button,{value:"center",children:(0,eO.jsx)(n,{})}),(0,eO.jsx)(Z.Button,{value:"right",children:(0,eO.jsx)(a,{})})]})}),(0,eO.jsx)(K.Item,{label:"省略",children:(0,eO.jsx)(er,{checked:!!m.ellipsis,onChange:e=>o(u,{ellipsis:e})})})]})})})]})},defaultOptions:{datasource:{source:"custom",datasourceId:null,scriptId:null,custom:null},props:{size:"default",bordered:!0,showHeader:!0,pageSize:10,dataSource:[{name:"苹果",count:12},{name:"华为",count:803},{name:"OPPO",count:654},{name:"vivo",count:719}],columns:[{title:"品牌",dataIndex:"name"},{title:"日销量(件)",dataIndex:"count"}]}}},{group:"基础组件",key:"b-list",label:"列表",icon:"icon-unordered-list",component:e=>{let{id:t,pageSize:l=10,bordered:n=!0,size:r="default",itemLayout:a="horizontal",item:i,split:o=!0,style:s={},className:d}=e,{initCallback:c}=(0,eA.useContext)(eT),[u,p]=(0,eA.useState)(0),x=lu({item:i,signal:u}),m=(0,eA.useMemo)(()=>x||[],[x]),h=(0,eA.useMemo)(()=>!!l&&!(l<=m.length)&&{total:m.length,pageSize:l,size:"default"===r?void 0:r,showSizeChanger:!0,showQuickJumper:!0,hideOnSinglePage:!0,pageSizeOptions:["10","20","30","40"],showTotal:(e,t)=>`共 ${e} 条记录,显示第 ${t[0]}-${t[1]} 条`},[l,m.length,r]),f=["p-list",a?`p-list--${a}`:void 0,r?`p-list--${r}`:void 0,o?"p-list--split":void 0,n?"p-list--bordered":void 0,d],g=function(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];return e&&p(e=>e+1),{target:i,data:x}};return(0,eA.useEffect)(()=>{c({id:i.id,callback:g})},[]),(0,eO.jsxs)("div",{id:t,style:{display:"flex",flexDirection:"column",...s},className:f.filter(Boolean).join(" "),children:[(0,eO.jsx)(lb,{list:m,split:o,bordered:n,size:r,itemLayout:a}),h&&(0,eO.jsx)(X,{...h})]})},formComponent:e=>{let{model:t,onChange:l}=e,[n]=K.useForm();return(0,eA.useEffect)(()=>{n.setFieldsValue({size:t.size||"default",itemLayout:t.itemLayout||"horizontal",bordered:t.bordered??!1,split:t.split??!0,pageSize:t.pageSize||10})},[t,n]),(0,eO.jsxs)(K,{form:n,labelCol:{span:12},wrapperCol:{span:12},onValuesChange:e=>{null==l||l({...t,...e})},children:[(0,eO.jsx)(K.Item,{label:"大小",name:"size",children:(0,eO.jsxs)(Z.Group,{size:"small",buttonStyle:"solid",children:[(0,eO.jsx)(Z.Button,{value:"default",children:"默认"}),(0,eO.jsx)(Z.Button,{value:"small",children:"小"})]})}),(0,eO.jsx)(K.Item,{label:"布局",name:"itemLayout",children:(0,eO.jsxs)(Z.Group,{size:"small",buttonStyle:"solid",children:[(0,eO.jsx)(Z.Button,{value:"horizontal",children:"水平"}),(0,eO.jsx)(Z.Button,{value:"vertical",children:"垂直"})]})}),(0,eO.jsx)(K.Item,{label:"边框",name:"bordered",valuePropName:"checked",children:(0,eO.jsx)(er,{size:"small"})}),(0,eO.jsx)(K.Item,{label:"分割线",name:"split",valuePropName:"checked",children:(0,eO.jsx)(er,{size:"small"})}),(0,eO.jsx)(K.Item,{label:"分页大小",name:"pageSize",children:(0,eO.jsx)(U,{size:"small"})})]})},defaultOptions:{datasource:{source:"custom",custom:"[]"},props:{size:"default",itemLayout:"horizontal",bordered:!0,split:!0,pageSize:10}}},{group:"基础组件",key:"b-html",label:"HTML",icon:"icon-html",component:e=>{let{id:t,template:l="",item:n,style:r,className:a,classNames:i=[]}=e,{initCallback:o}=(0,eA.useContext)(eT),[s,d]=(0,eA.useState)(0),c=lu({item:n,signal:s}),u=(0,eA.useMemo)(()=>Object.keys(c||{}),[c]),p=(0,eA.useMemo)(()=>u.map(e=>null==c?void 0:c[e]),[u,c]),x=(0,eA.useMemo)(()=>(l||"").replace(/##\s*([^#]+)\s*##/g,(e,t)=>{try{return Function(...u,`
1089
1089
  "use strict";
1090
1090
  const window = undefined;
1091
1091
  const document = undefined;
@@ -1095,7 +1095,7 @@ import*as e from"react";import t,{css as l}from"styled-components";import{AlignC
1095
1095
  const module = undefined;
1096
1096
  const exports = undefined;
1097
1097
  return ${t};
1098
- `)(...x)}catch{return""}}),[l,x]),h=function(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];return e&&d(e=>e+1),{target:n,data:c}};return(0,eA.useEffect)(()=>{o({id:n.id,callback:h})},[]),(0,eO.jsx)("div",{id:t,style:r,className:(i||[]).join(" ")+" "+a,dangerouslySetInnerHTML:{__html:m}})},formComponent:e=>{let{model:t,onChange:l}=e,n=(0,eA.useRef)(null),r=(e,n)=>l&&l({...t,[e]:n});return(0,eO.jsx)("div",{children:(0,eO.jsxs)(K,{layout:"vertical",children:[(0,eO.jsx)(K.Item,{label:"类名",children:(0,eO.jsx)(et,{size:"small",value:t.classNames,mode:"tags",onChange:e=>r("classNames",e)})}),(0,eO.jsx)(K.Item,{label:(0,eO.jsxs)(eO.Fragment,{children:["模板",(0,eO.jsxs)("a",{onClick:()=>{var e,t;let l=null==(e=n.current)?void 0:e.editor;null==l||null==(t=l.getAction("editor.action.formatDocument"))||t.run()},children:[(0,eO.jsx)(th,{type:"icon-formate"})," 格式化"]})]}),className:"ant-form-item-label-space",children:(0,eO.jsx)("div",{style:{border:"1px solid #d9d9d9",borderRadius:4,textAlign:"left"},children:(0,eO.jsx)(em,{onMount:e=>{n.current={editor:e}},height:"300px",defaultLanguage:"html",value:t.template,onChange:e=>r("template",e||""),options:{minimap:{enabled:!1},scrollBeyondLastLine:!1,tabSize:2}})})})]})})},defaultOptions:{datasource:{source:"custom",datasourceId:null,scriptId:null,custom:'{"name": "Confucius"}'},props:{template:"<div>{{name}}, welcome to the world of programming.</div>"}}},{group:"基础组件",key:"b-echarts",label:"图表",icon:"icon-echarts",component:e=>{let{id:t,script:l="",item:n,height:r=400,style:a,className:i}=e,{initCallback:o}=(0,eA.useContext)(eT),s=(0,eA.useRef)(null),[d,c]=(0,eA.useState)(null),[u,p]=(0,eA.useState)(0),[x,m]=(0,eA.useState)(null);lu({item:n,signal:u,consumer:m});let h=function(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];return arguments.length>1&&arguments[1],e&&p(e=>e+1),{target:n,data:x}};return(0,eA.useEffect)(()=>{let e=(e=>{try{return JSON.parse(e)}catch(t){try{return Function("echarts","console","Math","Date","Array","Object","String","Number","Boolean","data",`
1098
+ `)(...p)}catch{return""}}),[l,p]),m=function(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];return e&&d(e=>e+1),{target:n,data:c}};return(0,eA.useEffect)(()=>{o({id:n.id,callback:m})},[]),(0,eO.jsx)("div",{id:t,style:r,className:(i||[]).join(" ")+" "+a,dangerouslySetInnerHTML:{__html:x}})},formComponent:e=>{let{model:t,onChange:l}=e,n=(0,eA.useRef)(null),r=(e,n)=>l&&l({...t,[e]:n});return(0,eO.jsx)("div",{children:(0,eO.jsxs)(K,{layout:"vertical",children:[(0,eO.jsx)(K.Item,{label:"类名",children:(0,eO.jsx)(et,{size:"small",value:t.classNames,mode:"tags",onChange:e=>r("classNames",e)})}),(0,eO.jsx)(K.Item,{label:(0,eO.jsxs)(eO.Fragment,{children:["模板",(0,eO.jsxs)("a",{onClick:()=>{var e,t;let l=null==(e=n.current)?void 0:e.editor;null==l||null==(t=l.getAction("editor.action.formatDocument"))||t.run()},children:[(0,eO.jsx)(th,{type:"icon-formate"})," 格式化"]})]}),className:"ant-form-item-label-space",children:(0,eO.jsx)("div",{style:{border:"1px solid #d9d9d9",borderRadius:4,textAlign:"left"},children:(0,eO.jsx)(em,{onMount:e=>{n.current={editor:e}},height:"300px",defaultLanguage:"html",value:t.template,onChange:e=>r("template",e||""),options:{minimap:{enabled:!1},scrollBeyondLastLine:!1,tabSize:2}})})})]})})},defaultOptions:{datasource:{source:"custom",datasourceId:null,scriptId:null,custom:'{"name": "Confucius"}'},props:{template:"<div>{{name}}, welcome to the world of programming.</div>"}}},{group:"基础组件",key:"b-echarts",label:"图表",icon:"icon-echarts",component:e=>{let{id:t,script:l="",item:n,height:r=400,style:a,className:i}=e,{initCallback:o}=(0,eA.useContext)(eT),s=(0,eA.useRef)(null),[d,c]=(0,eA.useState)(null),[u,p]=(0,eA.useState)(0),x=lu({item:n,signal:u}),m=function(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];return arguments.length>1&&arguments[1],e&&p(e=>e+1),{target:n,data:x}};return(0,eA.useEffect)(()=>{let e=(e=>{try{return JSON.parse(e)}catch(t){try{return Function("echarts","console","Math","Date","Array","Object","String","Number","Boolean","data",`
1099
1099
  "use strict";
1100
1100
  const window = undefined;
1101
1101
  const document = undefined;
@@ -1105,7 +1105,7 @@ import*as e from"react";import t,{css as l}from"styled-components";import{AlignC
1105
1105
  const module = undefined;
1106
1106
  const exports = undefined;
1107
1107
  ${e}
1108
- `)(ev,console,Math,Date,Array,Object,String,Number,Boolean,x)}catch(e){return null}}})(l);d&&e&&(d.setOption(e),setTimeout(()=>d.resize(),50))},[d,l,x]),(0,eA.useEffect)(()=>{if(!s.current)return;let e=ev.init(s.current);c(e);let t=()=>e.resize();return window.addEventListener("resize",t),o({id:n.id,callback:h}),()=>{window.removeEventListener("resize",t),e.dispose()}},[]),(0,eO.jsx)("div",{id:t,style:{width:"100%",height:r,...a},className:i,children:(0,eO.jsx)("div",{ref:s,style:{width:"100%",height:r,...a}})})},formComponent:e=>{let{model:t,onChange:l}=e,n=(0,eA.useRef)(null);return(0,eO.jsxs)(K,{children:[(0,eO.jsx)(K.Item,{label:"高度",labelCol:{span:6},wrapperCol:{span:18},children:(0,eO.jsx)(U,{value:t.height,size:"small",min:10,max:1e3,suffix:"px",onChange:e=>l&&l({...t,height:e})})}),(0,eO.jsx)(K.Item,{layout:"vertical",label:(0,eO.jsxs)(eO.Fragment,{children:["Echarts 渲染脚本"," ",(0,eO.jsxs)("a",{onClick:()=>{var e,t;let l=null==(e=n.current)?void 0:e.editor;null==l||null==(t=l.getAction("editor.action.formatDocument"))||t.run()},children:[(0,eO.jsx)(th,{type:"icon-formate"})," 格式化"]})]}),className:"ant-form-item-label-space",children:(0,eO.jsxs)("div",{style:{border:"1px solid #d9d9d9",borderRadius:4,textAlign:"left"},children:[(0,eO.jsxs)("div",{style:{color:"#0000ff",fontSize:14,padding:"0 50px"},children:["function getOptions(data) ","{"," "]}),(0,eO.jsx)(em,{onMount:e=>{n.current={editor:e}},height:"400px",defaultLanguage:"javascript",value:t.script,onChange:e=>{let n;return n=e||"",l&&l({...t,script:n||""})},options:{minimap:{enabled:!1},scrollBeyondLastLine:!1,tabSize:2}}),(0,eO.jsx)("div",{style:{color:"#0000ff",fontSize:14,padding:"0 50px"},children:"}"})]})})]})},defaultOptions:{datasource:{source:"custom",datasourceId:null,scriptId:null,custom:'[{"name":"Mon","value":150},{"name":"Tue","value":230},{"name":"Wed","value":224},{"name":"Thu","value":218},{"name":"Fri","value":135},{"name":"Sat","value":147},{"name":"Sun","value":260}]'},props:{script:`
1108
+ `)(ev,console,Math,Date,Array,Object,String,Number,Boolean,x)}catch(e){return null}}})(l);d&&e&&(d.setOption(e),setTimeout(()=>d.resize(),50))},[d,l,x]),(0,eA.useEffect)(()=>{if(!s.current)return;let e=ev.init(s.current);c(e);let t=()=>e.resize();return window.addEventListener("resize",t),o({id:n.id,callback:m}),()=>{window.removeEventListener("resize",t),e.dispose()}},[]),(0,eO.jsx)("div",{id:t,style:{width:"100%",height:r,...a},className:i,children:(0,eO.jsx)("div",{ref:s,style:{width:"100%",height:r,...a}})})},formComponent:e=>{let{model:t,onChange:l}=e,n=(0,eA.useRef)(null);return(0,eO.jsxs)(K,{children:[(0,eO.jsx)(K.Item,{label:"高度",labelCol:{span:6},wrapperCol:{span:18},children:(0,eO.jsx)(U,{value:t.height,size:"small",min:10,max:1e3,suffix:"px",onChange:e=>l&&l({...t,height:e})})}),(0,eO.jsx)(K.Item,{layout:"vertical",label:(0,eO.jsxs)(eO.Fragment,{children:["Echarts 渲染脚本"," ",(0,eO.jsxs)("a",{onClick:()=>{var e,t;let l=null==(e=n.current)?void 0:e.editor;null==l||null==(t=l.getAction("editor.action.formatDocument"))||t.run()},children:[(0,eO.jsx)(th,{type:"icon-formate"})," 格式化"]})]}),className:"ant-form-item-label-space",children:(0,eO.jsxs)("div",{style:{border:"1px solid #d9d9d9",borderRadius:4,textAlign:"left"},children:[(0,eO.jsxs)("div",{style:{color:"#0000ff",fontSize:14,padding:"0 50px"},children:["function getOptions(data) ","{"," "]}),(0,eO.jsx)(em,{onMount:e=>{n.current={editor:e}},height:"400px",defaultLanguage:"javascript",value:t.script,onChange:e=>{let n;return n=e||"",l&&l({...t,script:n||""})},options:{minimap:{enabled:!1},scrollBeyondLastLine:!1,tabSize:2}}),(0,eO.jsx)("div",{style:{color:"#0000ff",fontSize:14,padding:"0 50px"},children:"}"})]})})]})},defaultOptions:{datasource:{source:"custom",datasourceId:null,scriptId:null,custom:'[{"name":"Mon","value":150},{"name":"Tue","value":230},{"name":"Wed","value":224},{"name":"Thu","value":218},{"name":"Fri","value":135},{"name":"Sat","value":147},{"name":"Sun","value":260}]'},props:{script:`
1109
1109
  return {
1110
1110
  xAxis: { type: 'category', data: data.map(i => i.name) },
1111
1111
  yAxis: { type: 'value' },
@@ -3,7 +3,6 @@ export type Signal = string | number;
3
3
  type Props = {
4
4
  item: SchemaItemType;
5
5
  signal?: Signal;
6
- consumer: (data: any) => void;
7
6
  };
8
- export declare const useDatasource: ({ item, signal, consumer }: Props) => void;
7
+ export declare const useDatasource: ({ item, signal }: Props) => any;
9
8
  export {};
@@ -1008,7 +1008,7 @@
1008
1008
  color: #999;
1009
1009
  font-size: 12px;
1010
1010
  }
1011
- `,tx=e=>{let{item:t,signal:l,consumer:n}=e,{fetch:r,getVars:a}=(0,c.useContext)(f);(0,c.useEffect)(()=>{if(!(null==t?void 0:t.datasource))return void n(null);switch((null==t?void 0:t.datasource.source)||"custom"){case"custom":try{var e;n(JSON.parse((null==t||null==(e=t.datasource)?void 0:e.custom)||"[]"))}catch(e){n(null)}break;case"dataset":if(!(null==t?void 0:t.datasource.dataset)||!(null==r?void 0:r.dataset)){console.warn("dataset source detected but config or fetcher is missing",{datasetConfig:null==t?void 0:t.datasource.dataset,hasFetchDataset:!!(null==r?void 0:r.dataset)}),n(null);return}let l=a(t.id||"");r.dataset(null==t?void 0:t.datasource.dataset.id,l).then(e=>{n((null==e?void 0:e.data)||null)}).catch(e=>{console.error("dataset fetch error",e),n(null)});break;default:n(null)}},[null==t?void 0:t.datasource,l])},th=h().div`
1011
+ `,tx=e=>{let{item:t,signal:l}=e,{fetch:n,getVars:r}=(0,c.useContext)(f),[a,i]=(0,c.useState)(null);return(0,c.useEffect)(()=>{if(!(null==t?void 0:t.datasource))return void i(null);switch((null==t?void 0:t.datasource.source)||"custom"){case"custom":try{var e;i(JSON.parse((null==t||null==(e=t.datasource)?void 0:e.custom)||"[]"))}catch(e){i(null)}break;case"dataset":if(!(null==t?void 0:t.datasource.dataset)||!(null==n?void 0:n.dataset)){console.warn("dataset source detected but config or fetcher is missing",{datasetConfig:null==t?void 0:t.datasource.dataset,hasFetchDataset:!!(null==n?void 0:n.dataset)}),i(null);return}let l=r(t.id||"");n.dataset(null==t?void 0:t.datasource.dataset.id,l).then(e=>{i(e||null)}).catch(e=>{console.error("dataset fetch error",e),i(null)});break;default:i(null)}},[null==t?void 0:t.datasource,l]),a},th=h().div`
1012
1012
  box-sizing: border-box;
1013
1013
  margin: 0;
1014
1014
  padding: 0;
@@ -1085,7 +1085,7 @@
1085
1085
  const module = undefined;
1086
1086
  const exports = undefined;
1087
1087
  ${e.customRender}
1088
- `)(console,Math,Date,Array,Object,String,Number,Boolean,t,l,n):e.render})),g=()=>{console.log("callback table")};return(0,c.useEffect)(()=>{m({id:l.id,callback:g})},[]),(0,d.jsx)(ep.Table,{id:t,dataSource:n,columns:h,pagination:x,bordered:i,size:o,showHeader:"boolean"!=typeof s||s,rowKey:(e,t)=>String(t),style:{padding:1,...u},className:p})},formComponent:e=>{let{model:t,onChange:l}=e,n=(e,n)=>l&&l({...t,[e]:n}),r=(e,l)=>{let r=[...t.columns||[]];r[e]={...r[e],...l},n("columns",r)},[a,i]=(0,c.useState)(!1),[o,s]=(0,c.useState)(null),u=null!=o&&t.columns[o]?t.columns[o]:{title:"",dataIndex:"",width:"",align:"left",ellipsis:!1},p=[{title:"列名",dataIndex:"title"},{title:"数据索引",dataIndex:"dataIndex"},{title:"操作",width:80,align:"center",render:(e,l,r)=>(0,d.jsxs)(ep.Space,{children:[(0,d.jsx)("a",{onClick:()=>{s(r),i(!0)},children:(0,d.jsx)(ed.EditOutlined,{})}),(0,d.jsx)("a",{onClick:()=>{let e;(e=[...t.columns||[]]).splice(r,1),n("columns",e)},children:(0,d.jsx)(ed.DeleteOutlined,{})})]})}];return(0,d.jsxs)("div",{children:[(0,d.jsxs)(ep.Form,{labelCol:{span:12},wrapperCol:{span:12},children:[(0,d.jsx)(ep.Form.Item,{label:"大小",children:(0,d.jsxs)(ep.Radio.Group,{size:"small",value:t.size,onChange:e=>n("size",e.target.value),children:[(0,d.jsx)(ep.Radio.Button,{value:"small",children:"小"}),(0,d.jsx)(ep.Radio.Button,{value:"middle",children:"中"}),(0,d.jsx)(ep.Radio.Button,{value:"large",children:"大"})]})}),(0,d.jsx)(ep.Form.Item,{label:"边框",children:(0,d.jsx)(ep.Switch,{size:"small",checked:!!t.bordered,onChange:e=>n("bordered",e)})}),(0,d.jsx)(ep.Form.Item,{label:"显示表头",children:(0,d.jsx)(ep.Switch,{size:"small",checked:!!t.showHeader,onChange:e=>n("showHeader",e)})}),(0,d.jsx)(ep.Form.Item,{label:"分页大小",children:(0,d.jsx)(ep.InputNumber,{size:"small",value:t.pageSize,onChange:e=>n("pageSize",e)})})]}),(0,d.jsx)(ep.Divider,{children:"表格列设置"}),(0,d.jsx)(ep.Table,{size:"small",dataSource:t.columns,rowKey:(e,t)=>String(t),columns:p,pagination:!1,bordered:!0}),(0,d.jsx)(ep.Button,{size:"small",onClick:()=>{n("columns",[...t.columns||[],{title:"",dataIndex:"",width:"",align:"left",ellipsis:!1}])},block:!0,children:"添加列"}),(0,d.jsx)(ep.Modal,{title:"编辑列",open:a,footer:null,width:400,onCancel:()=>i(!1),children:(0,d.jsx)(ep.Form,{layout:"vertical",children:(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:12},children:[(0,d.jsx)(ep.Form.Item,{label:"列名",children:(0,d.jsx)(ep.Input,{value:u.title,onChange:e=>r(o,{title:e.target.value})})}),(0,d.jsx)(ep.Form.Item,{label:"数据索引",children:(0,d.jsx)(ep.Input,{value:u.dataIndex,onChange:e=>r(o,{dataIndex:e.target.value})})}),(0,d.jsx)(ep.Form.Item,{label:"宽度",children:(0,d.jsx)(ep.Input,{value:u.width,onChange:e=>r(o,{width:e.target.value})})}),(0,d.jsx)(ep.Form.Item,{label:"对齐",children:(0,d.jsxs)(ep.Radio.Group,{value:u.align,onChange:e=>r(o,{align:e.target.value}),children:[(0,d.jsx)(ep.Radio.Button,{value:"left",children:(0,d.jsx)(ed.AlignLeftOutlined,{})}),(0,d.jsx)(ep.Radio.Button,{value:"center",children:(0,d.jsx)(ed.AlignCenterOutlined,{})}),(0,d.jsx)(ep.Radio.Button,{value:"right",children:(0,d.jsx)(ed.AlignRightOutlined,{})})]})}),(0,d.jsx)(ep.Form.Item,{label:"省略",children:(0,d.jsx)(ep.Switch,{checked:!!u.ellipsis,onChange:e=>r(o,{ellipsis:e})})})]})})})]})},defaultOptions:{datasource:{source:"custom",datasourceId:null,scriptId:null,custom:null},props:{size:"default",bordered:!0,showHeader:!0,pageSize:10,dataSource:[{name:"苹果",count:12},{name:"华为",count:803},{name:"OPPO",count:654},{name:"vivo",count:719}],columns:[{title:"品牌",dataIndex:"name"},{title:"日销量(件)",dataIndex:"count"}]}}},{group:"基础组件",key:"b-list",label:"列表",icon:"icon-unordered-list",component:e=>{let{id:t,pageSize:l=10,bordered:n=!0,size:r="default",itemLayout:a="horizontal",item:i,split:o=!0,style:s={},className:u}=e,{initCallback:p}=(0,c.useContext)(f),[m,x]=(0,c.useState)(0),[h,g]=(0,c.useState)(null);tx({item:i,signal:m,consumer:g});let v=(0,c.useMemo)(()=>h||[],[h]),j=(0,c.useMemo)(()=>!!l&&!(l<=v.length)&&{total:v.length,pageSize:l,size:"default"===r?void 0:r,showSizeChanger:!0,showQuickJumper:!0,hideOnSinglePage:!0,pageSizeOptions:["10","20","30","40"],showTotal:(e,t)=>`共 ${e} 条记录,显示第 ${t[0]}-${t[1]} 条`},[l,v.length,r]),b=["p-list",a?`p-list--${a}`:void 0,r?`p-list--${r}`:void 0,o?"p-list--split":void 0,n?"p-list--bordered":void 0,u],y=function(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];return e&&x(e=>e+1),{target:i,data:h}};return(0,c.useEffect)(()=>{p({id:i.id,callback:y})},[]),(0,d.jsxs)("div",{id:t,style:{display:"flex",flexDirection:"column",...s},className:b.filter(Boolean).join(" "),children:[(0,d.jsx)(tC,{list:v,split:o,bordered:n,size:r,itemLayout:a}),j&&(0,d.jsx)(ep.Pagination,{...j})]})},formComponent:e=>{let{model:t,onChange:l}=e,[n]=ep.Form.useForm();return(0,c.useEffect)(()=>{n.setFieldsValue({size:t.size||"default",itemLayout:t.itemLayout||"horizontal",bordered:t.bordered??!1,split:t.split??!0,pageSize:t.pageSize||10})},[t,n]),(0,d.jsxs)(ep.Form,{form:n,labelCol:{span:12},wrapperCol:{span:12},onValuesChange:e=>{null==l||l({...t,...e})},children:[(0,d.jsx)(ep.Form.Item,{label:"大小",name:"size",children:(0,d.jsxs)(ep.Radio.Group,{size:"small",buttonStyle:"solid",children:[(0,d.jsx)(ep.Radio.Button,{value:"default",children:"默认"}),(0,d.jsx)(ep.Radio.Button,{value:"small",children:"小"})]})}),(0,d.jsx)(ep.Form.Item,{label:"布局",name:"itemLayout",children:(0,d.jsxs)(ep.Radio.Group,{size:"small",buttonStyle:"solid",children:[(0,d.jsx)(ep.Radio.Button,{value:"horizontal",children:"水平"}),(0,d.jsx)(ep.Radio.Button,{value:"vertical",children:"垂直"})]})}),(0,d.jsx)(ep.Form.Item,{label:"边框",name:"bordered",valuePropName:"checked",children:(0,d.jsx)(ep.Switch,{size:"small"})}),(0,d.jsx)(ep.Form.Item,{label:"分割线",name:"split",valuePropName:"checked",children:(0,d.jsx)(ep.Switch,{size:"small"})}),(0,d.jsx)(ep.Form.Item,{label:"分页大小",name:"pageSize",children:(0,d.jsx)(ep.InputNumber,{size:"small"})})]})},defaultOptions:{datasource:{source:"custom",custom:"[]"},props:{size:"default",itemLayout:"horizontal",bordered:!0,split:!0,pageSize:10}}},{group:"基础组件",key:"b-html",label:"HTML",icon:"icon-html",component:e=>{let{id:t,template:l="",item:n,style:r,className:a,classNames:i=[]}=e,{initCallback:o}=(0,c.useContext)(f),[s,u]=(0,c.useState)(0),[p,m]=(0,c.useState)(null);tx({item:n,signal:s,consumer:m});let x=(0,c.useMemo)(()=>Object.keys(p||{}),[p]),h=(0,c.useMemo)(()=>x.map(e=>null==p?void 0:p[e]),[x,p]),g=(0,c.useMemo)(()=>(l||"").replace(/##\s*([^#]+)\s*##/g,(e,t)=>{try{return Function(...x,`
1088
+ `)(console,Math,Date,Array,Object,String,Number,Boolean,t,l,n):e.render})),g=()=>{console.log("callback table")};return(0,c.useEffect)(()=>{m({id:l.id,callback:g})},[]),(0,d.jsx)(ep.Table,{id:t,dataSource:n,columns:h,pagination:x,bordered:i,size:o,showHeader:"boolean"!=typeof s||s,rowKey:(e,t)=>String(t),style:{padding:1,...u},className:p})},formComponent:e=>{let{model:t,onChange:l}=e,n=(e,n)=>l&&l({...t,[e]:n}),r=(e,l)=>{let r=[...t.columns||[]];r[e]={...r[e],...l},n("columns",r)},[a,i]=(0,c.useState)(!1),[o,s]=(0,c.useState)(null),u=null!=o&&t.columns[o]?t.columns[o]:{title:"",dataIndex:"",width:"",align:"left",ellipsis:!1},p=[{title:"列名",dataIndex:"title"},{title:"数据索引",dataIndex:"dataIndex"},{title:"操作",width:80,align:"center",render:(e,l,r)=>(0,d.jsxs)(ep.Space,{children:[(0,d.jsx)("a",{onClick:()=>{s(r),i(!0)},children:(0,d.jsx)(ed.EditOutlined,{})}),(0,d.jsx)("a",{onClick:()=>{let e;(e=[...t.columns||[]]).splice(r,1),n("columns",e)},children:(0,d.jsx)(ed.DeleteOutlined,{})})]})}];return(0,d.jsxs)("div",{children:[(0,d.jsxs)(ep.Form,{labelCol:{span:12},wrapperCol:{span:12},children:[(0,d.jsx)(ep.Form.Item,{label:"大小",children:(0,d.jsxs)(ep.Radio.Group,{size:"small",value:t.size,onChange:e=>n("size",e.target.value),children:[(0,d.jsx)(ep.Radio.Button,{value:"small",children:"小"}),(0,d.jsx)(ep.Radio.Button,{value:"middle",children:"中"}),(0,d.jsx)(ep.Radio.Button,{value:"large",children:"大"})]})}),(0,d.jsx)(ep.Form.Item,{label:"边框",children:(0,d.jsx)(ep.Switch,{size:"small",checked:!!t.bordered,onChange:e=>n("bordered",e)})}),(0,d.jsx)(ep.Form.Item,{label:"显示表头",children:(0,d.jsx)(ep.Switch,{size:"small",checked:!!t.showHeader,onChange:e=>n("showHeader",e)})}),(0,d.jsx)(ep.Form.Item,{label:"分页大小",children:(0,d.jsx)(ep.InputNumber,{size:"small",value:t.pageSize,onChange:e=>n("pageSize",e)})})]}),(0,d.jsx)(ep.Divider,{children:"表格列设置"}),(0,d.jsx)(ep.Table,{size:"small",dataSource:t.columns,rowKey:(e,t)=>String(t),columns:p,pagination:!1,bordered:!0}),(0,d.jsx)(ep.Button,{size:"small",onClick:()=>{n("columns",[...t.columns||[],{title:"",dataIndex:"",width:"",align:"left",ellipsis:!1}])},block:!0,children:"添加列"}),(0,d.jsx)(ep.Modal,{title:"编辑列",open:a,footer:null,width:400,onCancel:()=>i(!1),children:(0,d.jsx)(ep.Form,{layout:"vertical",children:(0,d.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:12},children:[(0,d.jsx)(ep.Form.Item,{label:"列名",children:(0,d.jsx)(ep.Input,{value:u.title,onChange:e=>r(o,{title:e.target.value})})}),(0,d.jsx)(ep.Form.Item,{label:"数据索引",children:(0,d.jsx)(ep.Input,{value:u.dataIndex,onChange:e=>r(o,{dataIndex:e.target.value})})}),(0,d.jsx)(ep.Form.Item,{label:"宽度",children:(0,d.jsx)(ep.Input,{value:u.width,onChange:e=>r(o,{width:e.target.value})})}),(0,d.jsx)(ep.Form.Item,{label:"对齐",children:(0,d.jsxs)(ep.Radio.Group,{value:u.align,onChange:e=>r(o,{align:e.target.value}),children:[(0,d.jsx)(ep.Radio.Button,{value:"left",children:(0,d.jsx)(ed.AlignLeftOutlined,{})}),(0,d.jsx)(ep.Radio.Button,{value:"center",children:(0,d.jsx)(ed.AlignCenterOutlined,{})}),(0,d.jsx)(ep.Radio.Button,{value:"right",children:(0,d.jsx)(ed.AlignRightOutlined,{})})]})}),(0,d.jsx)(ep.Form.Item,{label:"省略",children:(0,d.jsx)(ep.Switch,{checked:!!u.ellipsis,onChange:e=>r(o,{ellipsis:e})})})]})})})]})},defaultOptions:{datasource:{source:"custom",datasourceId:null,scriptId:null,custom:null},props:{size:"default",bordered:!0,showHeader:!0,pageSize:10,dataSource:[{name:"苹果",count:12},{name:"华为",count:803},{name:"OPPO",count:654},{name:"vivo",count:719}],columns:[{title:"品牌",dataIndex:"name"},{title:"日销量(件)",dataIndex:"count"}]}}},{group:"基础组件",key:"b-list",label:"列表",icon:"icon-unordered-list",component:e=>{let{id:t,pageSize:l=10,bordered:n=!0,size:r="default",itemLayout:a="horizontal",item:i,split:o=!0,style:s={},className:u}=e,{initCallback:p}=(0,c.useContext)(f),[m,x]=(0,c.useState)(0),h=tx({item:i,signal:m}),g=(0,c.useMemo)(()=>h||[],[h]),v=(0,c.useMemo)(()=>!!l&&!(l<=g.length)&&{total:g.length,pageSize:l,size:"default"===r?void 0:r,showSizeChanger:!0,showQuickJumper:!0,hideOnSinglePage:!0,pageSizeOptions:["10","20","30","40"],showTotal:(e,t)=>`共 ${e} 条记录,显示第 ${t[0]}-${t[1]} 条`},[l,g.length,r]),j=["p-list",a?`p-list--${a}`:void 0,r?`p-list--${r}`:void 0,o?"p-list--split":void 0,n?"p-list--bordered":void 0,u],b=function(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];return e&&x(e=>e+1),{target:i,data:h}};return(0,c.useEffect)(()=>{p({id:i.id,callback:b})},[]),(0,d.jsxs)("div",{id:t,style:{display:"flex",flexDirection:"column",...s},className:j.filter(Boolean).join(" "),children:[(0,d.jsx)(tC,{list:g,split:o,bordered:n,size:r,itemLayout:a}),v&&(0,d.jsx)(ep.Pagination,{...v})]})},formComponent:e=>{let{model:t,onChange:l}=e,[n]=ep.Form.useForm();return(0,c.useEffect)(()=>{n.setFieldsValue({size:t.size||"default",itemLayout:t.itemLayout||"horizontal",bordered:t.bordered??!1,split:t.split??!0,pageSize:t.pageSize||10})},[t,n]),(0,d.jsxs)(ep.Form,{form:n,labelCol:{span:12},wrapperCol:{span:12},onValuesChange:e=>{null==l||l({...t,...e})},children:[(0,d.jsx)(ep.Form.Item,{label:"大小",name:"size",children:(0,d.jsxs)(ep.Radio.Group,{size:"small",buttonStyle:"solid",children:[(0,d.jsx)(ep.Radio.Button,{value:"default",children:"默认"}),(0,d.jsx)(ep.Radio.Button,{value:"small",children:"小"})]})}),(0,d.jsx)(ep.Form.Item,{label:"布局",name:"itemLayout",children:(0,d.jsxs)(ep.Radio.Group,{size:"small",buttonStyle:"solid",children:[(0,d.jsx)(ep.Radio.Button,{value:"horizontal",children:"水平"}),(0,d.jsx)(ep.Radio.Button,{value:"vertical",children:"垂直"})]})}),(0,d.jsx)(ep.Form.Item,{label:"边框",name:"bordered",valuePropName:"checked",children:(0,d.jsx)(ep.Switch,{size:"small"})}),(0,d.jsx)(ep.Form.Item,{label:"分割线",name:"split",valuePropName:"checked",children:(0,d.jsx)(ep.Switch,{size:"small"})}),(0,d.jsx)(ep.Form.Item,{label:"分页大小",name:"pageSize",children:(0,d.jsx)(ep.InputNumber,{size:"small"})})]})},defaultOptions:{datasource:{source:"custom",custom:"[]"},props:{size:"default",itemLayout:"horizontal",bordered:!0,split:!0,pageSize:10}}},{group:"基础组件",key:"b-html",label:"HTML",icon:"icon-html",component:e=>{let{id:t,template:l="",item:n,style:r,className:a,classNames:i=[]}=e,{initCallback:o}=(0,c.useContext)(f),[s,u]=(0,c.useState)(0),p=tx({item:n,signal:s}),m=(0,c.useMemo)(()=>Object.keys(p||{}),[p]),x=(0,c.useMemo)(()=>m.map(e=>null==p?void 0:p[e]),[m,p]),h=(0,c.useMemo)(()=>(l||"").replace(/##\s*([^#]+)\s*##/g,(e,t)=>{try{return Function(...m,`
1089
1089
  "use strict";
1090
1090
  const window = undefined;
1091
1091
  const document = undefined;
@@ -1095,7 +1095,7 @@
1095
1095
  const module = undefined;
1096
1096
  const exports = undefined;
1097
1097
  return ${t};
1098
- `)(...h)}catch{return""}}),[l,h]),v=function(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];return e&&u(e=>e+1),{target:n,data:p}};return(0,c.useEffect)(()=>{o({id:n.id,callback:v})},[]),(0,d.jsx)("div",{id:t,style:r,className:(i||[]).join(" ")+" "+a,dangerouslySetInnerHTML:{__html:g}})},formComponent:e=>{let{model:t,onChange:l}=e,n=(0,c.useRef)(null),r=(e,n)=>l&&l({...t,[e]:n});return(0,d.jsx)("div",{children:(0,d.jsxs)(ep.Form,{layout:"vertical",children:[(0,d.jsx)(ep.Form.Item,{label:"类名",children:(0,d.jsx)(ep.Select,{size:"small",value:t.classNames,mode:"tags",onChange:e=>r("classNames",e)})}),(0,d.jsx)(ep.Form.Item,{label:(0,d.jsxs)(d.Fragment,{children:["模板",(0,d.jsxs)("a",{onClick:()=>{var e,t;let l=null==(e=n.current)?void 0:e.editor;null==l||null==(t=l.getAction("editor.action.formatDocument"))||t.run()},children:[(0,d.jsx)(eu,{type:"icon-formate"})," 格式化"]})]}),className:"ant-form-item-label-space",children:(0,d.jsx)("div",{style:{border:"1px solid #d9d9d9",borderRadius:4,textAlign:"left"},children:(0,d.jsx)(ef(),{onMount:e=>{n.current={editor:e}},height:"300px",defaultLanguage:"html",value:t.template,onChange:e=>r("template",e||""),options:{minimap:{enabled:!1},scrollBeyondLastLine:!1,tabSize:2}})})})]})})},defaultOptions:{datasource:{source:"custom",datasourceId:null,scriptId:null,custom:'{"name": "Confucius"}'},props:{template:"<div>{{name}}, welcome to the world of programming.</div>"}}},{group:"基础组件",key:"b-echarts",label:"图表",icon:"icon-echarts",component:e=>{let{id:t,script:l="",item:n,height:r=400,style:a,className:i}=e,{initCallback:o}=(0,c.useContext)(f),s=(0,c.useRef)(null),[u,p]=(0,c.useState)(null),[m,x]=(0,c.useState)(0),[h,g]=(0,c.useState)(null);tx({item:n,signal:m,consumer:g});let v=function(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];return arguments.length>1&&arguments[1],e&&x(e=>e+1),{target:n,data:h}};return(0,c.useEffect)(()=>{let e=(e=>{try{return JSON.parse(e)}catch(t){try{return Function("echarts","console","Math","Date","Array","Object","String","Number","Boolean","data",`
1098
+ `)(...x)}catch{return""}}),[l,x]),g=function(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];return e&&u(e=>e+1),{target:n,data:p}};return(0,c.useEffect)(()=>{o({id:n.id,callback:g})},[]),(0,d.jsx)("div",{id:t,style:r,className:(i||[]).join(" ")+" "+a,dangerouslySetInnerHTML:{__html:h}})},formComponent:e=>{let{model:t,onChange:l}=e,n=(0,c.useRef)(null),r=(e,n)=>l&&l({...t,[e]:n});return(0,d.jsx)("div",{children:(0,d.jsxs)(ep.Form,{layout:"vertical",children:[(0,d.jsx)(ep.Form.Item,{label:"类名",children:(0,d.jsx)(ep.Select,{size:"small",value:t.classNames,mode:"tags",onChange:e=>r("classNames",e)})}),(0,d.jsx)(ep.Form.Item,{label:(0,d.jsxs)(d.Fragment,{children:["模板",(0,d.jsxs)("a",{onClick:()=>{var e,t;let l=null==(e=n.current)?void 0:e.editor;null==l||null==(t=l.getAction("editor.action.formatDocument"))||t.run()},children:[(0,d.jsx)(eu,{type:"icon-formate"})," 格式化"]})]}),className:"ant-form-item-label-space",children:(0,d.jsx)("div",{style:{border:"1px solid #d9d9d9",borderRadius:4,textAlign:"left"},children:(0,d.jsx)(ef(),{onMount:e=>{n.current={editor:e}},height:"300px",defaultLanguage:"html",value:t.template,onChange:e=>r("template",e||""),options:{minimap:{enabled:!1},scrollBeyondLastLine:!1,tabSize:2}})})})]})})},defaultOptions:{datasource:{source:"custom",datasourceId:null,scriptId:null,custom:'{"name": "Confucius"}'},props:{template:"<div>{{name}}, welcome to the world of programming.</div>"}}},{group:"基础组件",key:"b-echarts",label:"图表",icon:"icon-echarts",component:e=>{let{id:t,script:l="",item:n,height:r=400,style:a,className:i}=e,{initCallback:o}=(0,c.useContext)(f),s=(0,c.useRef)(null),[u,p]=(0,c.useState)(null),[m,x]=(0,c.useState)(0),h=tx({item:n,signal:m}),g=function(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];return arguments.length>1&&arguments[1],e&&x(e=>e+1),{target:n,data:h}};return(0,c.useEffect)(()=>{let e=(e=>{try{return JSON.parse(e)}catch(t){try{return Function("echarts","console","Math","Date","Array","Object","String","Number","Boolean","data",`
1099
1099
  "use strict";
1100
1100
  const window = undefined;
1101
1101
  const document = undefined;
@@ -1105,7 +1105,7 @@
1105
1105
  const module = undefined;
1106
1106
  const exports = undefined;
1107
1107
  ${e}
1108
- `)(tS,console,Math,Date,Array,Object,String,Number,Boolean,h)}catch(e){return null}}})(l);u&&e&&(u.setOption(e),setTimeout(()=>u.resize(),50))},[u,l,h]),(0,c.useEffect)(()=>{if(!s.current)return;let e=tS.init(s.current);p(e);let t=()=>e.resize();return window.addEventListener("resize",t),o({id:n.id,callback:v}),()=>{window.removeEventListener("resize",t),e.dispose()}},[]),(0,d.jsx)("div",{id:t,style:{width:"100%",height:r,...a},className:i,children:(0,d.jsx)("div",{ref:s,style:{width:"100%",height:r,...a}})})},formComponent:e=>{let{model:t,onChange:l}=e,n=(0,c.useRef)(null);return(0,d.jsxs)(ep.Form,{children:[(0,d.jsx)(ep.Form.Item,{label:"高度",labelCol:{span:6},wrapperCol:{span:18},children:(0,d.jsx)(ep.InputNumber,{value:t.height,size:"small",min:10,max:1e3,suffix:"px",onChange:e=>l&&l({...t,height:e})})}),(0,d.jsx)(ep.Form.Item,{layout:"vertical",label:(0,d.jsxs)(d.Fragment,{children:["Echarts 渲染脚本"," ",(0,d.jsxs)("a",{onClick:()=>{var e,t;let l=null==(e=n.current)?void 0:e.editor;null==l||null==(t=l.getAction("editor.action.formatDocument"))||t.run()},children:[(0,d.jsx)(eu,{type:"icon-formate"})," 格式化"]})]}),className:"ant-form-item-label-space",children:(0,d.jsxs)("div",{style:{border:"1px solid #d9d9d9",borderRadius:4,textAlign:"left"},children:[(0,d.jsxs)("div",{style:{color:"#0000ff",fontSize:14,padding:"0 50px"},children:["function getOptions(data) ","{"," "]}),(0,d.jsx)(ef(),{onMount:e=>{n.current={editor:e}},height:"400px",defaultLanguage:"javascript",value:t.script,onChange:e=>{let n;return n=e||"",l&&l({...t,script:n||""})},options:{minimap:{enabled:!1},scrollBeyondLastLine:!1,tabSize:2}}),(0,d.jsx)("div",{style:{color:"#0000ff",fontSize:14,padding:"0 50px"},children:"}"})]})})]})},defaultOptions:{datasource:{source:"custom",datasourceId:null,scriptId:null,custom:'[{"name":"Mon","value":150},{"name":"Tue","value":230},{"name":"Wed","value":224},{"name":"Thu","value":218},{"name":"Fri","value":135},{"name":"Sat","value":147},{"name":"Sun","value":260}]'},props:{script:`
1108
+ `)(tS,console,Math,Date,Array,Object,String,Number,Boolean,h)}catch(e){return null}}})(l);u&&e&&(u.setOption(e),setTimeout(()=>u.resize(),50))},[u,l,h]),(0,c.useEffect)(()=>{if(!s.current)return;let e=tS.init(s.current);p(e);let t=()=>e.resize();return window.addEventListener("resize",t),o({id:n.id,callback:g}),()=>{window.removeEventListener("resize",t),e.dispose()}},[]),(0,d.jsx)("div",{id:t,style:{width:"100%",height:r,...a},className:i,children:(0,d.jsx)("div",{ref:s,style:{width:"100%",height:r,...a}})})},formComponent:e=>{let{model:t,onChange:l}=e,n=(0,c.useRef)(null);return(0,d.jsxs)(ep.Form,{children:[(0,d.jsx)(ep.Form.Item,{label:"高度",labelCol:{span:6},wrapperCol:{span:18},children:(0,d.jsx)(ep.InputNumber,{value:t.height,size:"small",min:10,max:1e3,suffix:"px",onChange:e=>l&&l({...t,height:e})})}),(0,d.jsx)(ep.Form.Item,{layout:"vertical",label:(0,d.jsxs)(d.Fragment,{children:["Echarts 渲染脚本"," ",(0,d.jsxs)("a",{onClick:()=>{var e,t;let l=null==(e=n.current)?void 0:e.editor;null==l||null==(t=l.getAction("editor.action.formatDocument"))||t.run()},children:[(0,d.jsx)(eu,{type:"icon-formate"})," 格式化"]})]}),className:"ant-form-item-label-space",children:(0,d.jsxs)("div",{style:{border:"1px solid #d9d9d9",borderRadius:4,textAlign:"left"},children:[(0,d.jsxs)("div",{style:{color:"#0000ff",fontSize:14,padding:"0 50px"},children:["function getOptions(data) ","{"," "]}),(0,d.jsx)(ef(),{onMount:e=>{n.current={editor:e}},height:"400px",defaultLanguage:"javascript",value:t.script,onChange:e=>{let n;return n=e||"",l&&l({...t,script:n||""})},options:{minimap:{enabled:!1},scrollBeyondLastLine:!1,tabSize:2}}),(0,d.jsx)("div",{style:{color:"#0000ff",fontSize:14,padding:"0 50px"},children:"}"})]})})]})},defaultOptions:{datasource:{source:"custom",datasourceId:null,scriptId:null,custom:'[{"name":"Mon","value":150},{"name":"Tue","value":230},{"name":"Wed","value":224},{"name":"Thu","value":218},{"name":"Fri","value":135},{"name":"Sat","value":147},{"name":"Sun","value":260}]'},props:{script:`
1109
1109
  return {
1110
1110
  xAxis: { type: 'category', data: data.map(i => i.name) },
1111
1111
  yAxis: { type: 'value' },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bi-sdk-react",
3
- "version": "0.0.37",
3
+ "version": "0.0.38",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "dist/umd/js/bi-sdk.umd.min.js",
@@ -7,23 +7,23 @@ export type Signal = string | number;
7
7
  type Props = {
8
8
  item: SchemaItemType;
9
9
  signal?: Signal;
10
- consumer: (data: any) => void;
11
10
  };
12
11
 
13
- export const useDatasource = ({ item, signal, consumer }: Props): void => {
12
+ export const useDatasource = ({ item, signal }: Props): any => {
14
13
  const { fetch, getVars } = useContext(PageContext);
14
+ const [datasource, setDatasource] = useState<any>(null);
15
15
  useEffect(() => {
16
16
  if (!item?.datasource) {
17
- consumer(null);
17
+ setDatasource(null);
18
18
  return;
19
19
  }
20
20
  const source = item?.datasource.source || "custom";
21
21
  switch (source) {
22
22
  case "custom":
23
23
  try {
24
- consumer(JSON.parse(item?.datasource?.custom || "[]"));
24
+ setDatasource(JSON.parse(item?.datasource?.custom || "[]"));
25
25
  } catch (e) {
26
- consumer(null);
26
+ setDatasource(null);
27
27
  }
28
28
  break;
29
29
  case "dataset":
@@ -35,23 +35,25 @@ export const useDatasource = ({ item, signal, consumer }: Props): void => {
35
35
  hasFetchDataset: !!fetch?.dataset,
36
36
  },
37
37
  );
38
- consumer(null);
38
+ setDatasource(null);
39
39
  return;
40
40
  }
41
41
  const vars = getVars(item.id || "");
42
42
  fetch
43
43
  .dataset(item?.datasource.dataset.id, vars)
44
44
  .then((res) => {
45
- consumer(res?.data || null);
45
+ setDatasource(res || null);
46
46
  })
47
47
  .catch((err) => {
48
48
  console.error("dataset fetch error", err);
49
- consumer(null);
49
+ setDatasource(null);
50
50
  });
51
51
  break;
52
52
  default:
53
- consumer(null);
53
+ setDatasource(null);
54
54
  break;
55
55
  }
56
56
  }, [item?.datasource, signal]);
57
+
58
+ return datasource;
57
59
  };
@@ -24,8 +24,7 @@ export const EchartsRender: React.FC<EchartsRenderProps> = ({
24
24
  const chartRef = useRef<HTMLDivElement | null>(null);
25
25
  const [chart, setChart] = useState<echarts.ECharts | null>(null);
26
26
  const [signal, setSignal] = useState<number>(0);
27
- const [datasource, setDatasource] = useState<any>(null);
28
- useDatasource({ item, signal, consumer: setDatasource });
27
+ const datasource = useDatasource({ item, signal });
29
28
 
30
29
  const parseConfig = (configStr: string): echarts.EChartsOption | null => {
31
30
  try {
@@ -32,8 +32,7 @@ export const HtmlRender: React.FC<HtmlRenderProps> = ({
32
32
  }) => {
33
33
  const { initCallback } = useContext(PageContext);
34
34
  const [signal, setSignal] = useState<number>(0);
35
- const [datasource, setDatasource] = useState<any>(null);
36
- useDatasource({ item, signal, consumer: setDatasource });
35
+ const datasource = useDatasource({ item, signal });
37
36
 
38
37
  const keys = useMemo(() => Object.keys(datasource || {}), [datasource]);
39
38
  const func = (path: string) =>
@@ -187,8 +187,7 @@ export const ListRender: React.FC<ListRenderProps> = ({
187
187
  }) => {
188
188
  const { initCallback } = useContext(PageContext);
189
189
  const [signal, setSignal] = useState<number>(0);
190
- const [datasource, setDatasource] = useState<any>(null);
191
- useDatasource({ item, signal, consumer: setDatasource });
190
+ const datasource = useDatasource({ item, signal });
192
191
 
193
192
  const list = useMemo(() => datasource || [], [datasource]);
194
193
  const pagination = useMemo(() => {