UNPKG

amis-model-design

Version:

amis模型设计器

7 lines (5 loc) 21.8 kB
/** * amis-model-design v0.0.13 * Copyright 2018-2025 @fex */ export{A as AddModelForm,b as AddModelFormModal,c as EditDatasourceForm,d as EditDatasourceFormModal,e as EntityPicker,F as FieldsQuickEdit,a as FieldsQuickEditModal,E as ModelDesignEditor,P as PanelFrame,f as PanelFrameContent,S as SchemaBuilderEditor}from"./SchemaBuilderEditor-60c8c58e.js";import{p as t,G as r,d as i,D as n,l,e as s,H as o,i as u,u as p,z as h,j as m,M as y,m as v,o as k,E as w,I as K,J as T,K as C,L as D,f as I}from"./OptionsCustom-6b97eb55.js";export{A as AsideList,B as BasePlugin,A as DatasourceList,c as FieldItemProps,M as Manager,O as OptionsCustom,P as Panel,R as RelationShipItemProps,N as getPlugins,g as getSchemaTpl,x as setSchemaTpl}from"./OptionsCustom-6b97eb55.js";import _ from"react";import{PickerContainer as L,ConditionBuilder as j,ResultBox as q,Icon as z}from"amis";import G from"lodash/max";import V from"lodash/sortBy";import $ from"lodash/groupBy";import J from"lodash/each";import Q from"lodash/differenceWith";import{filterTree as W,mapTree as H}from"amis-core";import"mobx";import"lodash/omit";import"lodash/isPlainObject";import"lodash/isObjectLike";import"lodash/pick";import"lodash/get";import"classnames";import"qs";import"amis-formula";import"lodash/isEqual";import"i18n-runtime";import"lodash/flatten";import"amis-ui";import"react-dom";import"mobx-react";import"sortablejs";import"moment";import"lodash/noop";import"lodash/cloneDeep";import"lodash/debounce";import"lodash/remove";import"react-transition-group/Transition";import"lodash/omitBy";import"lodash/uniq";import"lodash/isEmpty";import"lodash/findIndex";import"lodash/last";import"lodash/xor";import"lodash/uniqBy";import"lodash/uniqWith";import"hoist-non-react-statics";var U=["value","onClose","onChange","setState"];function X(e){var a=e.value,i=e.onChange,n=e.disabled,l=e.placeholder,s=e.hasError,o=e.fields,u=e.formula,d=e.modalSize,c=void 0===d?"lg":d,p=e.renderEtrValue;function f(e){return _.createElement("div",{className:r("InputCondition-result")},Array.isArray(e.children)&&e.children.length?_.createElement("span",null,"已配置"):null)}function h(){null==i||i(null)}return _.createElement(L,{title:"过滤器设置",size:c,value:a,onConfirm:function(e){null==i||i(e)},bodyRender:function(e){var r=e.value;e.onClose;var a=e.onChange;return e.setState,t(e,U),_.createElement(j,{value:r,onChange:a,fields:o,formula:u,renderEtrValue:p})}},(function(e){var t=e.onClick;return _.createElement(q,{hasError:s,allowInput:!1,clearable:!0,disabled:n,placeholder:l,itemRender:f,onResultChange:h,result:a,actions:_.createElement(z,{icon:"api-picker-icon",className:r("InputCondition-icon"),onClick:t})})}))}var Y=function(){return i((function e(t){var r,a;m(this,e),this.manager=void 0,this.fieldTypeMap=void 0,this.systemFieldOrderMap={createdAt:1,updatedAt:2,deletedAt:3,createdBy:4,updatedBy:5,deletedBy:6},this.manager=y.create(l(l({},t),{},{env:l(l({},null==t?void 0:t.env),{},{session:null!==(r=null==t||null===(a=t.env)||void 0===a?void 0:a.session)&&void 0!==r?r:"field-manager"})})),this.fieldTypeMap=this._initFieldTypeMap()}),[{key:"registeredFieldPlugins",get:function(){return this.manager.plugins}},{key:"_initFieldTypeMap",value:function(){var e,t=this.manager.store.fieldTypes,r={},a=n(t);try{for(a.s();!(e=a.n()).done;){var i=e.value;r.hasOwnProperty(i.type)||(r[i.type]=i.title)}}catch(e){a.e(e)}finally{a.f()}return l(l({},r),{},{"1:1":s("一对一"),"1:n":s("一对多"),"n:1":s("多对一"),"n:n":s("多对多"),subGroup:""})}},{key:"switch2Datasource",value:(F=v(k().mark((function e(t){var r,a,i,n,l,s,o,u,d;return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=(r=t||{}).dsKey,i=r.ds,n=r.forceUpdate,l=void 0!==n&&n,(s=this.manager.store.datasourceData)&&s.key===a&&s.id===(null==i?void 0:i.id)&&s.key===(null==i?void 0:i.key)){e.next=11;break}return l&&this.manager.clearHookCache("boolean"==typeof l?void 0:l),e.next=6,this.manager.store.getAvailableModels({dsKey:a,datasource:i});case 6:o=e.sent,u=o.datasource,d=o.models,this.manager.store.setDatasource(u),this.manager.store.setModels(d);case 11:case"end":return e.stop()}}),e,this)}))),function(e){return F.apply(this,arguments)})},{key:"getTypeLabel",value:function(e){var t,r,a,i=null!==(t=null!==(r=e.type)&&void 0!==r?r:e.relationMode)&&void 0!==t?t:e.fieldItemType;return null!==(a=this.fieldTypeMap[i])&&void 0!==a?a:s("未知类型")}},{key:"_normalizeField2FE",value:function(e,t){var r=o(e);return l(l({},r),{},{value:r.key,label:r.name,typeLabel:this.getTypeLabel(r)})}},{key:"getModelFields",value:(g=v(k().mark((function e(t,r){var a,i,n,o,u,d,c,p,f,h,m,y,b,g=this;return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=(i=t||{}).dsKey,o=i.mKey,d=(u=r||{}).withSystemFields,c=u.withRelationFields,p=u.withCBFieldSchema,f=void 0===p||p,e.next=4,this.switch2Datasource({dsKey:n});case 4:if(h=this.manager.store.datasourceData,m=this.manager.store.getModelByKey(o)){e.next=9;break}return this.log(s("7f5612844371f5dd55416ae27f927b33",{"@1":o})),e.abrupt("return",{fields:[],relations:[]});case 9:return e.next=11,this._normalizeFieldsByType({model:m,withRelationFields:c,withSystemFields:d,withCBFieldSchema:f});case 11:if(y=e.sent,!c){e.next=18;break}return e.next=15,Promise.all((null!==(a=null==m?void 0:m.relations)&&void 0!==a?a:[]).map(function(){var e=v(k().mark((function e(t){return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=l,e.t1=l({},t),e.t2={},e.t3=t.key,e.t4=t.targetName,e.t5=null==h?void 0:h.key,e.t6=null==h?void 0:h.name,e.next=9,g._normalizeFieldsByType({model:g.manager.store.getModelByKey(t.targetKey),withRelationFields:c,withSystemFields:d,withCBFieldSchema:!1});case 9:return e.t7=e.sent,e.t8={value:e.t3,label:e.t4,dsValue:e.t5,dsLabel:e.t6,fields:e.t7},e.abrupt("return",(0,e.t0)(e.t1,e.t2,e.t8));case 12:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 15:e.t0=e.sent,e.next=19;break;case 18:e.t0=[];case 19:return b=e.t0,e.abrupt("return",{fields:y,relations:b});case 21:case"end":return e.stop()}}),e,this)}))),function(e,t){return g.apply(this,arguments)})},{key:"_normalizeFieldsByType",value:function(e){var t=this,r=e||{},a=r.model,i=r.withSystemFields,n=r.withRelationFields,s=r.withCBFieldSchema;return a?Promise.all(a.fields.filter((function(e){var t=!0;return a.isRelationField(e)||e.isForeignKey?t=!!n:u(e)&&(t=!!i),t})).map(function(){var e=v(k().mark((function e(r,i){var o,u,d,c;return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(c=l(l({},t._normalizeField2FE(r,a.plainData)),{},{modelValue:a.plainData.value,modelLabel:a.plainData.label,modelKey:a.plainData.key}),!n||!a.isRelationField(r)){e.next=3;break}return e.abrupt("return",c);case 3:if(e.t0=w,e.t1=l,e.t2=l(l({},c),K(r,a)),e.t3={},e.t4={allowedFilterOp:null!==(o=null===(u=t.manager.getFieldType(r.type))||void 0===u?void 0:u.allowedFilterOp)&&void 0!==o?o:[],defaultFilterOp:null===(d=t.manager.getFieldType(r.type))||void 0===d?void 0:d.defaultFilterOp},!s){e.next=15;break}return e.next=11,t.manager.buildFieldConditionFieldConfig(a.plainData,r);case 11:e.t6=e.sent,e.t5={CBFieldSchema:e.t6},e.next=16;break;case 15:e.t5={};case 16:return e.t7=e.t5,e.t8=(0,e.t1)(e.t2,e.t3,e.t4,e.t7),e.abrupt("return",(0,e.t0)(e.t8));case 19:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}())):[]}},{key:"getAvailableFieldsDeep",value:(b=v(k().mark((function e(t){var r,a,i,n,o,u,d,c,p,f,h,m,y,v,b,g,F,x,w,K=this;return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=(r=t||{}).dsKey,i=r.mKey,n=r.options,u=(o=n||{}).feat,d=o.excludeSelf,c=void 0!==d&&d,p=o.listMode,f=o.excludeModelKeys,h=void 0===f?[]:f,m=o.enableSubGroup,y=void 0!==m&&m,v=o.defaultChecked,b=void 0!==v&&v,e.next=4,this.switch2Datasource({dsKey:a});case 4:if(g=this.manager.store.getModelByKey(i)){e.next=8;break}return this.log(s("7f5612844371f5dd55416ae27f927b33",{"@1":i})),e.abrupt("return",[]);case 8:return F=(!0===c?Q(g.availableFieldsDeep,g.fields,(function(e,t){return e.id===t.id})):g.availableFieldsDeep).filter((function(e){var t,r;return!(h&&h.length>0&&h.includes(null!==(t=null===(r=e.keyPath)||void 0===r||null===(r=r.split("."))||void 0===r?void 0:r[0])&&void 0!==t?t:""))})),e.next=11,T(F,g,this.manager,{enableCB:!0,excludeSelf:c,defaultChecked:b,feat:u,mapperFn:function(e){return l(l({},e),{},{typeLabel:K.getTypeLabel("relation"===e.type?{relationMode:e.relation.relationMode}:e)})}});case 11:if(x=e.sent,"group"!==p){e.next=18;break}return w=[],J($(x,(function(e){return e.modelKey})),(function(e,t){var r;w.push({label:null!==(r=e[0].modelLabel)&&void 0!==r?r:"anonymous",value:t,children:e})})),e.abrupt("return",w);case 18:if("tree"!==p){e.next=22;break}return e.abrupt("return",!0===y?this._buildAvailableFieldsTreeWithSubGroup(x):this._buildAvailableFieldsTree(x));case 22:return e.abrupt("return",x);case 23:case"end":return e.stop()}}),e,this)}))),function(e){return b.apply(this,arguments)})},{key:"_buildAvailableFieldsTree",value:function(e,t){var r=new Map,a=[];return e.forEach((function(e){var a=t&&"function"==typeof t?t(e):l(l({},e),{},{value:e.keyPath});e.relationId?r.set(e.relationId,a):r.set(e.id,a)})),e.forEach((function(e){var t;if(e.id){var i=e.id,n=e.parentId,l=e.relationId,s=null!==(t=r.get(i))&&void 0!==t?t:r.get(l),o=r.get(n);s&&(o?(Array.isArray(o.children)||(o.children=[]),o.children.push(s)):a.push(s))}})),a}},{key:"_buildAvailableFieldsTreeWithSubGroup",value:function(e){var t=this,r=new Map,a=[],i={},n=[];e.forEach((function(e){var t=l(l({},e),{},{value:e.keyPath});if(u(e)){var a,o="".concat(e.modelKey,".$systemFields");return i.hasOwnProperty(o)?a=i[o]:(a={parentId:e.parentId,type:"subGroup",id:o,key:"$systemFields",value:o,name:s("系统字段"),label:s("系统字段"),disabled:!0,children:[]},i[o]=a),void a.children.push(t)}if(e.isForeignKey){var d,c="".concat(e.modelKey,".$foreignKeyFields");return i.hasOwnProperty(c)?d=i[c]:(d={parentId:e.parentId,type:"subGroup",id:c,key:"$foreignKeyFields",value:c,name:s("外键字段"),label:s("外键字段"),disabled:!0,children:[]},i[c]=d),void d.children.push(t)}e.relationId?(r.set(e.relationId,t),n.push(e)):(r.set(e.id,t),n.push(e))}));for(var o=0,d=Object.entries(i);o<d.length;o++){var c=p(d[o],2),f=c[0],h=c[1];h.children=V(h.children,(function(e){var r;return null!==(r=e.isPrimaryKey?0:t.systemFieldOrderMap[e.key])&&void 0!==r?r:1/0})),n.push(h),r.set(f,h)}return n.forEach((function(e){var t;if(e.id){var i,n=e.id,l=e.parentId,s=e.relationId,o=null!==(t=r.get(n))&&void 0!==t?t:r.get(s);if(r.has(l)&&(i=r.get(l)),o)if(i)if(Array.isArray(i.children)||(i.children=[]),"subGroup"===o.type){var u=i.children[0];u&&"subGroup"===u.type&&"$systemFields"===u.key?i.children.splice(1,0,o):i.children.unshift(o)}else i.children.push(o);else if("subGroup"===o.type){var d=a[0];d&&"subGroup"===d.type&&"$systemFields"===d.key?a.splice(1,0,o):a.unshift(o)}else a.push(o)}})),a}},{key:"getConditionBuilderFields",value:(f=v(k().mark((function e(t){var r,a,i,n,o,u,d,c,p;return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=(r=t||{}).dsKey,i=r.mKey,n=r.options,o=(n||{}).listMode,e.next=4,this.switch2Datasource({dsKey:a});case 4:if(u=this.manager.store.getModelByKey(i)){e.next=8;break}return this.log(s("7f5612844371f5dd55416ae27f927b33",{"@1":i})),e.abrupt("return",[]);case 8:return e.next=10,T(u.availableFieldsDeep,u,this.manager,{enableCB:!0});case 10:if(d=e.sent,"tree"!==o){e.next=15;break}return c=this._buildAvailableFieldsTree(d),p=W(H(c,(function(e){return Array.isArray(e.children)&&e.children.length>0?l(l(l({},e.CBFieldSchema),"relation"===e.type?{label:e.name,name:e.keyPath}:{}),{},{children:e.children}):I(e,"AdvancedQuery")&&null!=e.CBFieldSchema?l({},e.CBFieldSchema):l(l({},e),{},{shouldExclude:!0})})),(function(e){return!(null!=e&&e.shouldExclude)&&null!=e})),e.abrupt("return",p);case 15:return e.abrupt("return",d.map((function(e){return l({},e.CBFieldSchema)})));case 16:case"end":return e.stop()}}),e,this)}))),function(e){return f.apply(this,arguments)})},{key:"getFieldInfo",value:(c=v(k().mark((function e(t){var r,a,i,n,o,u,d,c,p;return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=(a=t||{}).dsKey,n=a.mKey,o=a.fieldId,e.next=3,this.switch2Datasource({dsKey:i});case 3:if(u=this.manager.store.getModelByKey(n)){e.next=7;break}return this.log(s("7f5612844371f5dd55416ae27f927b33",{"@1":n})),e.abrupt("return");case 7:if(d=null==u||null===(r=u.getFieldById)||void 0===r?void 0:r.call(u,o)){e.next=11;break}return this.log(s("279f86259b5a2c399f188ccbd28dc9ba",{"@1":o})),e.abrupt("return");case 11:return c=this.manager.getFieldType(d.type),p=l(l({},w(d)),{},{filterable:!(null==c||!c.filterable),allowedFilterOp:null==c?void 0:c.allowedFilterOp}),e.abrupt("return",p);case 14:case"end":return e.stop()}}),e,this)}))),function(e){return c.apply(this,arguments)})},{key:"buildFieldQuickEditSettingForm",value:(d=v(k().mark((function e(t){var r,a,i,n,o,u,d,c,p,f,h;return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=(i=t||{}).dsKey,o=i.mKey,u=i.fieldId,d=i.config,e.next=3,this.switch2Datasource({dsKey:n});case 3:if(c=this.manager.store.getModelByKey(o)){e.next=7;break}return this.log(s("7f5612844371f5dd55416ae27f927b33",{"@1":o})),e.abrupt("return");case 7:if(p=null==c||null===(r=c.getFieldById)||void 0===r?void 0:r.call(c,u)){e.next=11;break}return this.log(s("279f86259b5a2c399f188ccbd28dc9ba",{"@1":u})),e.abrupt("return");case 11:return e.t0=w,e.next=14,this.manager.buildFieldEditSettingForm(c.plainData,w(p),l(l({},null!=d?d:{}),{},{settingFor:"quick-edit"}));case 14:return e.t1=e.sent,f=(0,e.t0)(e.t1),h=null==f||null===(a=f.body)||void 0===a||null===(a=a[0])||void 0===a?void 0:a.body,e.abrupt("return",Array.isArray(h)&&h.length?{type:"container",className:"me-SettingSubContainer",wrapperBody:!1,visibleOn:"${quickEdit}",body:[{type:"combo",name:"quickEdit",label:!1,items:h,multiLine:!0,multiple:!1,noBorder:!0,subFormMode:"horizontal",itemClassName:"no-bg",subFormHorizontal:{justify:!0}}]}:void 0);case 18:case"end":return e.stop()}}),e,this)}))),function(e){return d.apply(this,arguments)})},{key:"buildRelationFieldEditSettingForm",value:(a=v(k().mark((function e(t){var r,a,i,n,o,u,d,c,p,f;return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=(a=t||{}).dsKey,n=a.mKey,o=a.fieldId,u=a.config,d=a.schema,c=(u||{}).mode,e.next=4,this.switch2Datasource({dsKey:i});case 4:if(p=this.manager.store.getModelByKey(n)){e.next=8;break}return this.log(s("7f5612844371f5dd55416ae27f927b33",{"@1":n})),e.abrupt("return");case 8:if(f=null==p||null===(r=p.getFieldById)||void 0===r?void 0:r.call(p,o)){e.next=12;break}return this.log(s("50d42224cd0e5e1f170762021b816a9b",{"@1":o})),e.abrupt("return");case 12:if("relation"===f.type){e.next=15;break}return this.log(s("2f73a9cf61b66d1d630a454ff334fff4",{"@1":f.name})),e.abrupt("return");case 15:if("view"!==c){e.next=20;break}return e.next=18,this.manager.buildFieldViewSettingForm(p.plainData,w(f),l(l({},null!=u?u:{}),{},{settingFor:"scaffold"}),d);case 18:e.next=22;break;case 20:return e.next=22,this.manager.buildFieldEditSettingForm(p.plainData,w(f),l(l({},null!=u?u:{}),{},{settingFor:"scaffold"}),d);case 22:return e.abrupt("return",w(d));case 23:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"buildApiBySchema",value:(r=v(k().mark((function e(t,r){var a,i,n,o,u,d,c,p,f,h,m,y,v,b,g,F,x,w,K,B,S;return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=(n=(t=t||{})||{}).apiSchema,u=n.entity,d=n.options,p=(c=u||{}).dsKey,f=c.mKey,m=(h=d||{}).strategy,y=void 0===m?"jsonql":m,v=h.apiPrefix,b=h.useApiSchema,p&&f){e.next=7;break}return this.log(s("aff066e189b511305b60b3c2ae665c95",{})),e.abrupt("return");case 7:if(o){e.next=10;break}return this.log(s("0c1dab51d1c43ae23d7680d35df6c195",{})),e.abrupt("return");case 10:return e.next=12,this.switch2Datasource({dsKey:p});case 12:if(g=this.manager.store.getModelByKey(f)){e.next=16;break}return this.log(s("7f5612844371f5dd55416ae27f927b33",{"@1":f})),e.abrupt("return");case 16:return F=null!==(a=null==o?void 0:o.select)&&void 0!==a?a:[],x=null!==(i=o.action)&&void 0!==i?i:"View",e.next=20,this.getAvailableFieldsDeep({dsKey:p,mKey:f,options:{feat:x,excludeSelf:!1,defaultChecked:!0}});case 20:return w=e.sent.filter((function(e){return(null==F?void 0:F.length)<1||!!~F.findIndex((function(t){return t.id===e.id}))})),K=this.manager.makeApiStrategy(g.data.key,{apiPrefix:v,useApiSchema:b},y),B=new C(g.data.primaryField,y),e.next=25,r(w,B,K);case 25:return S=e.sent,e.abrupt("return",l({action:x,origin:"sdk",sourceType:"model-entity",strategy:"jsonql"===y?"jsonql":"restful",entity:K.modelInfo,select:o.select},S));case 27:case"end":return e.stop()}}),e,this)}))),function(e,t){return r.apply(this,arguments)})},{key:"getFieldTableTree",value:(t=v(k().mark((function e(t,r,a){var i,n,l,o,u,d,c,p,f=this;return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=null===(i=a=a||{})||void 0===i?void 0:i.fields,l=[],t&&r){e.next=6;break}return this.log(s("fcf88f6bbe42c662a60295dcd0cf692d")),e.abrupt("return",l);case 6:if(n&&("*"===n||Array.isArray(n))){e.next=9;break}return this.log(s("991e5bf3f68a63138495190cac931a7a")),e.abrupt("return",l);case 9:return e.prev=9,e.next=12,this.switch2Datasource({dsKey:t});case 12:if(o=this.manager.store.models,u=this.manager.store.getModelByKey(r)){e.next=17;break}return this.log(s("7f5612844371f5dd55416ae27f927b33",{"@1":r})),e.abrupt("return",l);case 17:"*"===n?l=u.fields.map((function(e){return f._normalizeField2FE(e,u.plainData)})):(c=n.map((function(e){return e.value})),p=null!==(d=G(n.map((function(e){return e.value.split(".").length}))))&&void 0!==d?d:1,l=this._recursiveBuildFieldTableTree(u,{},"",1,{depth:p,models:o,fieldValues:c})),e.next=22;break;case 20:e.prev=20,e.t0=e.catch(9);case 22:return e.abrupt("return",l);case 23:case"end":return e.stop()}}),e,this,[[9,20]])}))),function(e,r,a){return t.apply(this,arguments)})},{key:"_recursiveBuildFieldTableTree",value:function(e,t,r,a,i){var s=this,o=i=i||{},u=o.depth,d=o.fieldValues,c=[];if(t[e.plainData.key]||!e||a>u)return c;t[e.id]=!0;var p,f=n(e.fields);try{var h=function(){var n=p.value,o=r+n.key;if(!d.some((function(e){return e===o||e.includes(".")&&e.includes(o)})))return 1;if("relation"===n.type){var u,f=null==e||null===(u=e.relations)||void 0===u?void 0:u.find((function(e){return e.id===n.relationId}));if(f&&o.includes(o)){var h=s.manager.store.getModelByKey(f.targetKey);c.push(l(l({},n),{},{value:o,label:n.name,typeLabel:s.getTypeLabel(f),checked:d.some((function(e){return e===o})),children:h?s._recursiveBuildFieldTableTree(h,t,r+"".concat(n.key,"."),(null!=a?a:0)+1,i):[]}))}}else c.push(l(l({},n),{},{value:o,label:a>1?"".concat(e.data.name,".").concat(n.name):n.name,typeLabel:s.getTypeLabel(n),checked:d.some((function(e){return e===o}))}))};for(f.s();!(p=f.n()).done;)h()}catch(e){f.e(e)}finally{f.f()}return c}},{key:"getFieldJsonSchema",value:(e=v(k().mark((function e(t,r,a){var i,n,l,o,u,d,c;return k().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i={$id:(null==a?void 0:a.rootId)||D(),type:"object",properties:{}},n=null==a?void 0:a.fields,t&&r){e.next=5;break}return this.log(s("fcf88f6bbe42c662a60295dcd0cf692d")),e.abrupt("return",i);case 5:if(n&&("*"===n||Array.isArray(n))){e.next=8;break}return this.log(s("991e5bf3f68a63138495190cac931a7a")),e.abrupt("return",i);case 8:return e.prev=8,e.next=11,this.switch2Datasource({dsKey:t});case 11:if(l=this.manager.store.models,o=this.manager.store.getModelByKey(r)){e.next=16;break}return this.log(s("7f5612844371f5dd55416ae27f927b33",{"@1":r})),e.abrupt("return",i);case 16:"*"===n?i.properties=this._recursiveBuildFieldJsonSchema(o,{},"",1,{depth:1,models:l,fieldValues:n}):(d=n.map((function(e){return e.value})),c=null!==(u=G(n.map((function(e){return e.value.split(".").length}))))&&void 0!==u?u:1,i.properties=this._recursiveBuildFieldJsonSchema(o,{},"",1,{depth:c,models:l,fieldValues:d})),e.next=21;break;case 19:e.prev=19,e.t0=e.catch(8);case 21:return e.abrupt("return",i);case 22:case"end":return e.stop()}}),e,this,[[8,19]])}))),function(t,r,a){return e.apply(this,arguments)})},{key:"_recursiveBuildFieldJsonSchema",value:function(e,t,r,a,i){var l=this,o=i=i||{},u=o.depth;o.models;var d=o.fieldValues,c={};if(t[e.plainData.key]||!e||a>u)return c;t[e.id]=!0;var p,f=n(e.fields);try{var m=function(){var n=p.value,o=r+n.key;if(!("*"===d||d.some((function(e){return e===o||e.includes(".")&&e.includes(o)}))||n.isPrimaryKey&&"id"===n.key))return 1;if("relation"===n.type){var u,f=null==e||null===(u=e.relations)||void 0===u?void 0:u.find((function(e){return e.id===n.relationId}));if(f&&o.includes(o)){var m=l.manager.store.getModelByKey(f.targetKey),y=["1:n","n:n"].includes(f.relationMode)?"array":"object",v="array"===y?"items":"properties";c[n.key]=h({$id:n.key,name:o,title:n.name,type:y,description:s("array"===y?"数组":"对象"),tag:s("array"===y?"数组":"对象")},v,m?"array"===y?{type:"object",properties:l._recursiveBuildFieldJsonSchema(m,t,r+"".concat(n.key,"."),(null!=a?a:0)+1,i)}:l._recursiveBuildFieldJsonSchema(m,t,r+"".concat(n.key,"."),(null!=a?a:0)+1,i):{})}}else c[n.key]={$id:n.key,name:o,title:n.name,type:n.type,description:l.getTypeLabel(n),tag:l.getTypeLabel(n)}};for(f.s();!(p=f.n()).done;)m()}catch(e){f.e(e)}finally{f.f()}return c}},{key:"log",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"error";return console[t]("[amis-model-design] ".concat(t,": ").concat(s(e)))}}]);var e,t,r,a,d,c,f,b,g,F}();export{Y as FieldManager,X as InputCondition};