UNPKG

amis-model-design

Version:

amis模型设计器

7 lines (5 loc) 7.34 kB
/** * amis-model-design v0.0.13 * Copyright 2018-2025 @fex */ import{_ as e,d as r,e as t,j as a,k as n,M as o,m as i,o as s,l,p as c,q as m}from"../OptionsCustom-6b97eb55.js";import"../SchemaBuilderEditor-60c8c58e.js";import u from"react";import{Button as d,Spinner as p,createObject as f,Alert2 as h}from"amis";import"lodash/omit";import"lodash/uniqWith";import"lodash/cloneDeep";import"lodash/isPlainObject";import"lodash/max";import"lodash/sortBy";import"lodash/groupBy";import"lodash/each";import"lodash/differenceWith";import"amis-core";import{BasePlugin as v,JSONPipeOut as b}from"amis-editor";import"moment";import"lodash/omitBy";import"lodash/isEqual";import"mobx";import"lodash/get";import"lodash/pick";import"lodash/uniq";import"lodash/isEmpty";import"lodash/findIndex";import"lodash/last";import"lodash/xor";import"lodash/debounce";import"lodash/uniqBy";import"hoist-non-react-statics";import"lodash/isObjectLike";import"classnames";import"qs";import"amis-formula";import"i18n-runtime";import"react-dom";import"sortablejs";import"lodash/flatten";import"amis-ui";import"mobx-react";import"lodash/noop";import"lodash/remove";import"react-transition-group/Transition";var y=["schema"],k=["behavior"],x=["behavior"],g=function(){function g(e,r){var t;if(a(this,g),(t=n(this,g,[e])).manager=e,t.erManager=void 0,!e.erManager){var i=o.create(r||{});e.erManager=i,e.on("dispose",(function(){var e;null===(e=t.erManager)||void 0===e||e.dispose()}))}return t.erManager=e.erManager,t}return e(g,v),r(g,[{key:"afterReplace",value:function(e){var r;(null===(r=e.context.info)||void 0===r?void 0:r.extraPlugin)===this&&this.manager.buildPanels()}},{key:"makeModelFieldPanel",value:function(e,r,a,n,o){var m=this;return this.makeAsyncPanel(e,r,a,function(){var t=i(s().mark((function t(a){var u,d,p;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,null===(u=a.genFieldPanelForm)||void 0===u?void 0:u.call(a,e,n,o||"",r.schema);case 2:if(d=t.sent,Array.isArray(d)){t.next=5;break}throw new Error("build error");case 5:return p=!0,t.abrupt("return",m.manager.makeSchemaFormRender({body:d,submitOnChange:!0,justify:!0,pipeIn:function(r){var t,a=(null==r?void 0:r.$$m)||{};return f(l(l({isInPanel:!0},e),{},{label:null!==(t=null==r?void 0:r.label)&&void 0!==t?t:a.label,schema:r}),a)},pipeOut:function(){var t=i(s().mark((function t(i){var m,u,d,f;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(u=i.schema,d=c(i,y),!p){t.next=5;break}t.t0=u,t.next=8;break;case 5:return t.next=7,a.buildFieldSchema(e,n,i,o||"",u);case 7:t.t0=t.sent;case 8:return f=t.t0,p=!1,t.abrupt("return",l(l({},f),{},{id:null!==(m=f.id)&&void 0!==m?m:r.schema.id,$$m:d}));case 11:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()}));case 7:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),(function(){return u.createElement("div",{className:"flex justify-between items-center w-full h-full white-space-nowrap"},u.createElement("span",{className:"text-ellipsis"},t("模型字段「{{key}}」",{key:"".concat(n.parentName?"".concat(n.parentName,"."):"").concat(n.name)})))}))}},{key:"makeModelPanel",value:function(e,r,a){var n=this,o=this;return this.makeAsyncPanel(e,r,a,function(){var t=i(s().mark((function t(a){var o,m,u,d,p;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!a.guessOptionsFromSchema){t.next=13;break}return(m=e).behavior,u=c(m,k),t.t0=l,t.t1=l,t.t2={},t.next=7,a.guessOptionsFromSchema(r.schema,e.behavior);case 7:t.t3=t.sent,t.t4=(0,t.t1)(t.t2,t.t3),t.t5=u,e=(0,t.t0)(t.t4,t.t5),t.next=22;break;case 13:return t.t6=l,t.t7=l,t.t8={},t.next=18,a.makeDefaultOptions(e.behavior);case 18:t.t9=t.sent,t.t10=(0,t.t7)(t.t8,t.t9),t.t11=e,e=(0,t.t6)(t.t10,t.t11);case 22:return t.next=24,null===(o=a.genPanelForm)||void 0===o?void 0:o.call(a,e,r.schema);case 24:if(d=t.sent,Array.isArray(d)){t.next=27;break}throw new Error("build error");case 27:return p=l({},e),t.abrupt("return",n.manager.makeSchemaFormRender({body:d,submitOnChange:!0,justify:!0,pipeIn:function(e){var r=(null==e?void 0:e.$$m)||{};return l(l({isInPanel:!0},p),r)},pipeOut:function(){var e=i(s().mark((function e(t){var n,o,i;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return(n=b(t)).behavior,o=c(n,x),p=l(l({},p),o),e.next=4,a.build(p,b(r.schema));case 4:return i=e.sent,e.abrupt("return",l(l({},i),{},{$$m:i.$$m}));case 6:case"end":return e.stop()}}),e)})));return function(r){return e.apply(this,arguments)}}()}));case 29:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),(function(e){var i=e.datasource,s=e.model;return u.createElement("div",{className:"flex justify-between items-center w-full h-full white-space-nowrap"},u.createElement("span",{className:"text-ellipsis"},t("list"===a?"模型列表「{{name}}」":"模型表单「{{name}}」",{name:"".concat(i.name,".").concat(s.name)})),u.createElement(d,{level:"enhance",size:"sm",onClick:function(){n.manager.reScaffold(r.id,o.scaffoldForm,r.schema)}},t("更改")))}))}},{key:"makeAsyncPanel",value:function(e,r,t,a,n){var o=this.erManager,l=u.lazy(i(s().mark((function r(){var i,l,c,d,p,f;return s().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,o.store.getAvailableModels({dsId:e.dsId,dsKey:e.dsKey});case 3:if(i=r.sent,l=i.datasource,c=i.models,l&&Array.isArray(c)){r.next=8;break}throw new Error("Data Error");case 8:if(d=c.find((function(r){return r.key===e.key||r.id===e.id}))){r.next=11;break}throw new Error("model not exists");case 11:return o.setDatasource(l),o.setModels(c),p=o.makeSchemaBuilder(d.key,t,{useApiSchema:!0}),r.next=16,a(p);case 16:return f=r.sent,r.abrupt("return",{default:function(e){return u.createElement(m,{manager:o,bodyClassName:"p-0",header:n?n({datasource:l,model:d}):null},f(e))}});case 20:return r.prev=20,r.t0=r.catch(0),r.abrupt("return",{default:function(){return console.error(r.t0.stack),u.createElement(h,{className:"m-4",level:"danger"},u.createElement("p",null,r.t0.message))}});case 23:case"end":return r.stop()}}),r,null,[[0,20]])}))));return function(e){return u.createElement(u.Suspense,{fallback:u.createElement(p,{overlay:!0})},u.createElement(l,e))}}},{key:"buildEditorToolbar",value:function(e,r){var a,n,o=this,i=e.id,s=e.info,l=e.node,c=this;if(s.extraPlugin===c&&(null!==(a=c.scaffoldForm)&&void 0!==a&&a.canRebuild||null!==(n=s.scaffoldForm)&&void 0!==n&&n.canRebuild)){var m=r.findIndex((function(e){return"harmmer"===e.iconSvg}));~m&&r.splice(m,1),r.push({iconSvg:"harmmer",tooltip:t("快速构建「{{name}}」",{name:s.name}),placement:"bottom",onClick:function(){return o.manager.reScaffold(i,c.scaffoldForm,l.schema)}})}}},{key:"buildEditorContextMenu",value:function(e,r){var a,n,o=this,i=e.id,s=e.schema;e.region;var l=e.info,c=e.node,m=e.selections,u=this;if(l.extraPlugin===u&&!m.length&&(null!==(a=u.scaffoldForm)&&void 0!==a&&a.canRebuild||null!==(n=l.scaffoldForm)&&void 0!==n&&n.canRebuild)){var d=r.findIndex((function(e){return"string"==typeof e.label&&0===e.label.indexOf(t("快速构建"))}));~d&&r.splice(d,1),r.push({label:t("快速构建「{{name}}」",{name:u.name}),disabled:s.$$commonSchema,onSelect:function(){return o.manager.reScaffold(i,u.scaffoldForm,c.schema)}})}}}])}();export{g as BasePlugin};