@chief-editor/brick-control
Version:
Control Brick for chief editor
1 lines • 2.69 kB
JavaScript
var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var a,l=1,t=arguments.length;l<t;l++)for(var n in a=arguments[l])Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n]);return e}).apply(this,arguments)};import{FormContainer,Input,JSONEditorModal,MultipleSelect,Select}from"@chief-editor/ui";import{usePartialUpdate}from"@rc-hooks/use";import React,{useCallback}from"react";export function DatasourceBrick(e){var a=e.config.props,l=a.defaultValueType,t=void 0===l?"none":l,n=a.forceStatic,r=void 0!==n&&n,u=a.supportDynamic,c=void 0!==u&&u,o=e.styles,i=e.layout,s=e.datasource,p=e.setValue,m=e.creator,v=e.value,d=e.env,f=e.getHook,b=usePartialUpdate(v,p),h=null!=v.type?v.type:s.length>0?s[0].value:void 0,g=useCallback((function(e){return b({type:e})}),[]),C=useCallback((function(e){return b({data:e})}),[]),R=useCallback((function(e){return b({defaultValue:e})}),[]),E=useCallback((function(e){return b({func:e})}),[]),y=h?f("buildInDatasourceRender"+h.charAt(0).toUpperCase()+h.slice(1)):null;return"string"==typeof v||null==v?null:React.createElement("div",{"data-id":m,style:__assign(__assign({lineHeight:"34px",position:"relative"},o),i)},s.length>1&&React.createElement(FormContainer,{label:"数据源类型",level:4},React.createElement(Select,{clearable:!1,value:h,onChange:g},s.map((function(e){return React.createElement(Select.Option,{key:e.value,value:e.value,label:e.label},e.label)})))),("local"===h||r)&&React.createElement(FormContainer,{hasLabel:!1,level:4},React.createElement(JSONEditorModal,{value:v.data,onConfirm:C})),y?y(v,b):"flow"===d?null:React.createElement(FormContainer,{level:0,label:"数据源动态渲染部分"}),("local"===h||r)&&React.createElement(DefaultValueRender,{defaultValueType:t,data:v.data,defaultValue:v.defaultValue,onValueChange:R}),c&&React.createElement(FormContainer,{label:"默认值钩子",level:4},React.createElement(Input,{placeholder:"请输入钩子函数名",value:v.func,onValueChange:E})))}export function DefaultValueRender(e){var a=e.data,l=e.defaultValue,t=e.defaultValueType,n=void 0===t?"none":t,r=e.onValueChange,u=null;switch(n){case"multiple":u=React.createElement(MultipleSelect,{value:l,onValueChange:r},a.map((function(e){return React.createElement(MultipleSelect.Option,{value:e.value,label:e.label,key:e.value},e.label)})));break;case"simple":u=React.createElement(Select,{value:l,onValueChange:r},a.map((function(e){return React.createElement(MultipleSelect.Option,{value:e.value,label:e.label,key:e.value},e.label)})));break;case"text":u=React.createElement(Input,{value:l||"",onValueChange:r})}return u&&React.createElement(FormContainer,{label:"默认值",level:4},u)}