UNPKG

amis-model-design

Version:

amis模型设计器

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