@chamn/engine 0.0.7 → 0.0.9

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.
Files changed (128) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +2 -2
  3. package/build.config.js +16 -2
  4. package/dist/index.cjs.js +90 -362
  5. package/dist/index.cjs.js.map +1 -1
  6. package/dist/index.es.js +17844 -46121
  7. package/dist/index.es.js.map +1 -1
  8. package/dist/style.css +1 -1
  9. package/package.json +10 -9
  10. package/public/component/Workbench/style.module.scss.d.ts +0 -1
  11. package/src/_dev_/index.css +10 -0
  12. package/src/_dev_/page/Editor/index.tsx +9 -86
  13. package/src/_dev_/page/Editor/indexCustom.tsx +274 -0
  14. package/src/_dev_/page/Preview/index.tsx +38 -6
  15. package/src/_dev_/router.tsx +0 -1
  16. package/src/component/Workbench/index.tsx +0 -2
  17. package/src/component/Workbench/style.module.scss +0 -8
  18. package/src/component/Workbench/style.module.scss.d.ts +0 -1
  19. package/src/index.tsx +12 -4
  20. package/src/plugins/Designer/util.ts +1 -1
  21. package/src/plugins/Designer/view.tsx +5 -3
  22. package/src/utils/defaultEngineConfig.tsx +55 -0
  23. package/dist/Engine.module.scss.d.ts +0 -5
  24. package/dist/component/CSSEditor/index.d.ts +0 -16
  25. package/dist/component/CSSEditor/style.module.scss.d.ts +0 -6
  26. package/dist/component/CSSPropertiesEditor/cssProperties.d.ts +0 -898
  27. package/dist/component/CSSPropertiesEditor/index.d.ts +0 -43
  28. package/dist/component/CSSPropertiesEditor/style.module.scss.d.ts +0 -15
  29. package/dist/component/CSSPropertiesEditor/util.d.ts +0 -1
  30. package/dist/component/CSSPropertiesVariableBindEditor/cssProperties.d.ts +0 -898
  31. package/dist/component/CSSPropertiesVariableBindEditor/index.d.ts +0 -37
  32. package/dist/component/CSSPropertiesVariableBindEditor/style.module.scss.d.ts +0 -15
  33. package/dist/component/CSSPropertiesVariableBindEditor/util.d.ts +0 -1
  34. package/dist/component/ClassNameEditor/index.d.ts +0 -16
  35. package/dist/component/CustomSchemaForm/components/Form/Field/index.d.ts +0 -11
  36. package/dist/component/CustomSchemaForm/components/Form/Field/style.module.scss.d.ts +0 -8
  37. package/dist/component/CustomSchemaForm/components/Form/context.d.ts +0 -10
  38. package/dist/component/CustomSchemaForm/components/Form/index.d.ts +0 -17
  39. package/dist/component/CustomSchemaForm/components/SetterSwitcher/index.d.ts +0 -12
  40. package/dist/component/CustomSchemaForm/components/SetterSwitcher/style.module.scss.d.ts +0 -7
  41. package/dist/component/CustomSchemaForm/components/Setters/ArraySetter/ArrayItem.d.ts +0 -11
  42. package/dist/component/CustomSchemaForm/components/Setters/ArraySetter/SortItemOrderModal.d.ts +0 -10
  43. package/dist/component/CustomSchemaForm/components/Setters/ArraySetter/index.d.ts +0 -14
  44. package/dist/component/CustomSchemaForm/components/Setters/ArraySetter/style.module.scss.d.ts +0 -7
  45. package/dist/component/CustomSchemaForm/components/Setters/BooleanSetter/index.d.ts +0 -5
  46. package/dist/component/CustomSchemaForm/components/Setters/CSSValueSetter/index.d.ts +0 -6
  47. package/dist/component/CustomSchemaForm/components/Setters/CSSValueSetter/style.module.scss.d.ts +0 -6
  48. package/dist/component/CustomSchemaForm/components/Setters/ExpressionSetter/index.d.ts +0 -8
  49. package/dist/component/CustomSchemaForm/components/Setters/FunctionSetter/defaultDts.d.ts +0 -1
  50. package/dist/component/CustomSchemaForm/components/Setters/FunctionSetter/index.d.ts +0 -2
  51. package/dist/component/CustomSchemaForm/components/Setters/JSONSetter/index.d.ts +0 -2
  52. package/dist/component/CustomSchemaForm/components/Setters/NumberSetter/index.d.ts +0 -3
  53. package/dist/component/CustomSchemaForm/components/Setters/SelectSetter/index.d.ts +0 -3
  54. package/dist/component/CustomSchemaForm/components/Setters/ShapeSetter/index.d.ts +0 -8
  55. package/dist/component/CustomSchemaForm/components/Setters/StringSetter/index.d.ts +0 -3
  56. package/dist/component/CustomSchemaForm/components/Setters/TextAreaSetter/index.d.ts +0 -3
  57. package/dist/component/CustomSchemaForm/components/Setters/index.d.ts +0 -3
  58. package/dist/component/CustomSchemaForm/components/Setters/type.d.ts +0 -19
  59. package/dist/component/CustomSchemaForm/context.d.ts +0 -15
  60. package/dist/component/CustomSchemaForm/index.d.ts +0 -17
  61. package/dist/component/CustomSchemaForm/style.module.scss.d.ts +0 -11
  62. package/dist/component/CustomSchemaForm/utils.d.ts +0 -2
  63. package/dist/component/MonacoEditor/index.d.ts +0 -15
  64. package/dist/component/Workbench/index.d.ts +0 -57
  65. package/dist/component/Workbench/style.module.scss.d.ts +0 -26
  66. package/dist/core/pluginManager.d.ts +0 -56
  67. package/dist/i18n/en_US/index.d.ts +0 -5
  68. package/dist/i18n/index.d.ts +0 -6
  69. package/dist/i18n/zh_CN/index.d.ts +0 -5
  70. package/dist/index.d.ts +0 -42
  71. package/dist/material/innerMaterial.d.ts +0 -2
  72. package/dist/monacoeditorwork/css.worker.bundle.js +0 -45072
  73. package/dist/monacoeditorwork/editor.worker.bundle.js +0 -8294
  74. package/dist/monacoeditorwork/html.worker.bundle.js +0 -24321
  75. package/dist/monacoeditorwork/json.worker.bundle.js +0 -15550
  76. package/dist/monacoeditorwork/ts.worker.bundle.js +0 -169967
  77. package/dist/plugins/AdvancePanel/index.d.ts +0 -10
  78. package/dist/plugins/AdvancePanel/style.module.scss.d.ts +0 -7
  79. package/dist/plugins/ComponentLibrary/components/DragItem/index.d.ts +0 -12
  80. package/dist/plugins/ComponentLibrary/components/DragItem/style.module.scss.d.ts +0 -9
  81. package/dist/plugins/ComponentLibrary/components/ListView/index.d.ts +0 -9
  82. package/dist/plugins/ComponentLibrary/components/ListView/style.module.scss.d.ts +0 -12
  83. package/dist/plugins/ComponentLibrary/index.d.ts +0 -3
  84. package/dist/plugins/ComponentLibrary/localize/en_US/index.d.ts +0 -1
  85. package/dist/plugins/ComponentLibrary/localize/index.d.ts +0 -2
  86. package/dist/plugins/ComponentLibrary/localize/zh_CN/index.d.ts +0 -1
  87. package/dist/plugins/ComponentLibrary/style.module.scss.d.ts +0 -11
  88. package/dist/plugins/ComponentLibrary/util.d.ts +0 -1
  89. package/dist/plugins/ComponentStatePanel/index.d.ts +0 -10
  90. package/dist/plugins/Designer/components/DefaultSelectToolBar/index.d.ts +0 -10
  91. package/dist/plugins/Designer/components/DefaultSelectToolBar/style.module.scss.d.ts +0 -11
  92. package/dist/plugins/Designer/components/GhostView/index.d.ts +0 -5
  93. package/dist/plugins/Designer/config.d.ts +0 -1
  94. package/dist/plugins/Designer/index.d.ts +0 -15
  95. package/dist/plugins/Designer/localize/en_US/index.d.ts +0 -1
  96. package/dist/plugins/Designer/localize/index.d.ts +0 -2
  97. package/dist/plugins/Designer/localize/zh_CN/index.d.ts +0 -1
  98. package/dist/plugins/Designer/style.module.scss.d.ts +0 -5
  99. package/dist/plugins/Designer/util.d.ts +0 -2
  100. package/dist/plugins/Designer/view.d.ts +0 -30
  101. package/dist/plugins/DisplaySourceSchema/index.d.ts +0 -9
  102. package/dist/plugins/GlobalStatePanel/index.d.ts +0 -3
  103. package/dist/plugins/GlobalStatePanel/localize/en_US/index.d.ts +0 -1
  104. package/dist/plugins/GlobalStatePanel/localize/index.d.ts +0 -2
  105. package/dist/plugins/GlobalStatePanel/localize/zh_CN/index.d.ts +0 -1
  106. package/dist/plugins/GlobalStatePanel/style.module.scss.d.ts +0 -5
  107. package/dist/plugins/History/index.d.ts +0 -2
  108. package/dist/plugins/OutlineTree/components/TreeView/context.d.ts +0 -30
  109. package/dist/plugins/OutlineTree/components/TreeView/dataStruct.d.ts +0 -21
  110. package/dist/plugins/OutlineTree/components/TreeView/index.d.ts +0 -34
  111. package/dist/plugins/OutlineTree/components/TreeView/style.module.scss.d.ts +0 -16
  112. package/dist/plugins/OutlineTree/components/TreeView/treeNode.d.ts +0 -9
  113. package/dist/plugins/OutlineTree/index.d.ts +0 -3
  114. package/dist/plugins/OutlineTree/localize/en_US/index.d.ts +0 -1
  115. package/dist/plugins/OutlineTree/localize/index.d.ts +0 -2
  116. package/dist/plugins/OutlineTree/localize/zh_CN/index.d.ts +0 -1
  117. package/dist/plugins/OutlineTree/util.d.ts +0 -15
  118. package/dist/plugins/PropertyPanel/index.d.ts +0 -9
  119. package/dist/plugins/PropertyPanel/style.module.scss.d.ts +0 -10
  120. package/dist/plugins/RightPanel/index.d.ts +0 -2
  121. package/dist/plugins/RightPanel/style.module.scss.d.ts +0 -10
  122. package/dist/plugins/RightPanel/view.d.ts +0 -34
  123. package/dist/plugins/VisualPanelPlus/index.d.ts +0 -9
  124. package/dist/plugins/VisualPanelPlus/style.module.scss.d.ts +0 -10
  125. package/dist/plugins/index.d.ts +0 -9
  126. package/dist/utils/css.d.ts +0 -19
  127. package/dist/utils/index.d.ts +0 -6
  128. package/dist/utils/logger.d.ts +0 -1
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- @charset "UTF-8";._workbenchContainer_1b5xq_2{width:100%;height:100%;display:flex;flex-direction:column}._workbenchContainer_1b5xq_2 ._topToolBarBox_1b5xq_8{height:64px;width:100%;border-bottom:1px solid rgb(233,233,233);display:flex}._workbenchContainer_1b5xq_2 ._topToolBarBox_1b5xq_8 ._logo_1b5xq_14{height:100%;font-size:20px;display:flex;align-items:center;margin-left:20px;font-weight:bolder}._workbenchContainer_1b5xq_2 ._topToolBarBox_1b5xq_8 ._topToolBarView_1b5xq_22{flex:1}._workbenchContainer_1b5xq_2 ._bodyContent_1b5xq_25{display:flex;width:100%;flex:1;overflow:hidden}._workbenchContainer_1b5xq_2 ._bodyContent_1b5xq_25 ._leftBox_1b5xq_31{position:relative;display:flex;background-color:#fff;z-index:100}._workbenchContainer_1b5xq_2 ._bodyContent_1b5xq_25 ._leftBox_1b5xq_31 ._pluginIconBar_1b5xq_37{width:50px;height:100%;border-right:1px solid rgb(233,233,233)}._workbenchContainer_1b5xq_2 ._bodyContent_1b5xq_25 ._leftBox_1b5xq_31 ._pluginIconBar_1b5xq_37 ._pluginIconItem_1b5xq_42{position:relative;cursor:pointer;width:50px;height:50px;display:flex;align-items:center;justify-content:center;transition:all .1s}._workbenchContainer_1b5xq_2 ._bodyContent_1b5xq_25 ._leftBox_1b5xq_31 ._pluginIconBar_1b5xq_37 ._pluginIconItem_1b5xq_42._active_1b5xq_52 :before,._workbenchContainer_1b5xq_2 ._bodyContent_1b5xq_25 ._leftBox_1b5xq_31 ._pluginIconBar_1b5xq_37 ._pluginIconItem_1b5xq_42:hover :before{transition:all .1s;display:block;content:"";width:2px;height:100%;position:absolute;left:0;top:0}._workbenchContainer_1b5xq_2 ._bodyContent_1b5xq_25 ._leftBox_1b5xq_31 ._pluginIconBar_1b5xq_37 ._pluginIconItem_1b5xq_42._active_1b5xq_52 :before{border-left:4px solid #1677ff!important}._workbenchContainer_1b5xq_2 ._bodyContent_1b5xq_25 ._leftBox_1b5xq_31 ._pluginIconBar_1b5xq_37 ._pluginIconItem_1b5xq_42:hover :before{border-left:4px solid rgba(22,119,255,.3)}._workbenchContainer_1b5xq_2 ._bodyContent_1b5xq_25 ._leftBox_1b5xq_31 ._pluginPanelBoxResizeBox_1b5xq_68{display:flex;flex-direction:column;background-color:#fff;z-index:100;border-right:1px solid rgb(233,233,233)}._workbenchContainer_1b5xq_2 ._bodyContent_1b5xq_25 ._leftBox_1b5xq_31 ._pluginPanelBoxResizeBox_1b5xq_68 ._pluginHeader_1b5xq_75{display:flex;color:#686868;height:30px;margin:10px;overflow:hidden;align-items:center}._workbenchContainer_1b5xq_2 ._bodyContent_1b5xq_25 ._leftBox_1b5xq_31 ._pluginPanelBoxResizeBox_1b5xq_68 ._pluginHeader_1b5xq_75 ._pluginNameText_1b5xq_83{font-size:16px;font-weight:700;margin-right:auto;flex-wrap:nowrap;word-break:keep-all}._workbenchContainer_1b5xq_2 ._bodyContent_1b5xq_25 ._leftBox_1b5xq_31 ._pluginPanelBoxResizeBox_1b5xq_68 ._pluginHeader_1b5xq_75 ._closeBtn_1b5xq_90,._workbenchContainer_1b5xq_2 ._bodyContent_1b5xq_25 ._leftBox_1b5xq_31 ._pluginPanelBoxResizeBox_1b5xq_68 ._pluginHeader_1b5xq_75 ._fixedBtn_1b5xq_91{color:#686868}._workbenchContainer_1b5xq_2 ._bodyContent_1b5xq_25 ._leftBox_1b5xq_31 ._pluginPanelBoxResizeBox_1b5xq_68 ._pluginHeader_1b5xq_75 ._fixedBtn_1b5xq_91>*{transition:all .1s}._workbenchContainer_1b5xq_2 ._bodyContent_1b5xq_25 ._leftBox_1b5xq_31 ._pluginPanelBoxResizeBox_1b5xq_68 ._pluginHeader_1b5xq_75 ._fixedBtn_1b5xq_91>._active_1b5xq_52{transform:rotate(-45deg)}._workbenchContainer_1b5xq_2 ._bodyContent_1b5xq_25 ._leftBox_1b5xq_31 ._pluginPanelBox_1b5xq_68{width:100%;flex:1;background-color:#f8f8ff;overflow:hidden}._workbenchContainer_1b5xq_2 ._bodyContent_1b5xq_25 ._rightResizeBox_1b5xq_106{position:relative}._workbenchContainer_1b5xq_2 ._bodyContent_1b5xq_25 ._rightResizeBox_1b5xq_106 ._arrowCursor_1b5xq_109{cursor:pointer;position:absolute;left:-18px;top:50%;transform:translateY(-50%);z-index:2;background-color:#fff;padding:10px 3px;border-radius:4px 0 0 4px;font-size:12px}._workbenchContainer_1b5xq_2 ._bodyContent_1b5xq_25 ._rightResizeBox_1b5xq_106 ._arrowCursor_1b5xq_109>._active_1b5xq_52{transform:rotate(-180deg)}._workbenchContainer_1b5xq_2 ._bodyContent_1b5xq_25 ._rightResizeBox_1b5xq_106 ._rightBox_1b5xq_124{position:relative;width:100%;height:100%;border-left:1px rgb(233,233,233) solid}._workbenchContainer_1b5xq_2 ._bodyContent_1b5xq_25 ._centerBox_1b5xq_130{display:flex;flex-direction:column;flex:1;overflow:hidden}._workbenchContainer_1b5xq_2 ._bodyContent_1b5xq_25 ._centerBox_1b5xq_130 ._subTopToolbarBox_1b5xq_136{width:100%;height:50px;background-color:#fff}._workbenchContainer_1b5xq_2 ._bodyContent_1b5xq_25 ._centerBox_1b5xq_130 ._canvasBox_1b5xq_141{width:100%;flex:1;overflow:hidden;padding:20px 30px;background-color:#edeff3}._workbenchContainer_1b5xq_2 ._bodyContent_1b5xq_25 ._centerBox_1b5xq_130 ._canvasBox_1b5xq_141 ._scrollBox_1b5xq_148{width:100%;height:100%;box-shadow:0 1px 4px #1f325821}._engineContainer_f3ly9_2{color:#686868;font-size:14px;width:100%;height:100%;overflow:hidden}._engineContainer_f3ly9_2 *{box-sizing:border-box}._container_191p3_2{width:100%;height:100%;overflow:hidden;background-color:#fff;display:flex}._container_191p3_2 .ant-tabs .ant-tabs-tab+.ant-tabs-tab{margin-left:12px}._container_191p3_2 .ant-tabs-content.ant-tabs-content-top{height:100%;overflow:auto}._container_191p3_2 .ant-tabs-tab{padding:6px 0}._container_191p3_2 .ant-tabs-nav{margin-bottom:0}._tabTitle_191p3_23{padding:0 10px;font-size:12px;font-weight:400;text-rendering:optimizeLegibility}._square_1b87f_2{user-select:none;position:relative;flex:33.3% 0}._square_1b87f_2:before{content:"";padding-top:100%;float:left}._square_1b87f_2:after{content:"";display:block;clear:both}._componentItem_1b87f_18{user-select:none;overflow:hidden;position:absolute;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid rgb(233,233,233);border-bottom:1px solid rgb(233,233,233);transition:all .2s}._componentItem_1b87f_18:hover{box-shadow:0 6px 16px #00000026;border-color:transparent;cursor:grab}._componentItem_1b87f_18:active{cursor:grabbing}._iconImg_1b87f_41{width:100%}._iconBox_1b87f_45{width:60%;height:60%;overflow:hidden;display:flex;align-items:center;justify-content:center}._iconText_1b87f_54{font-size:18px;font-weight:bolder;color:#686868}._ListBox_1q7zr_2{display:flex;flex-wrap:wrap}._ListBox_1q7zr_2 .ant-collapse .ant-collapse-content>.ant-collapse-content-box{padding:0}._ListBox_1q7zr_2 .ant-collapse{border:none;background-color:#fff}._ListBox_1q7zr_2 .ant-collapse-header{padding:10px 16px!important}._ListBox_1q7zr_2 .ant-collapse-expand-icon{padding-inline-end:0!important}._ListBox_1q7zr_2 .ant-collapse-item{border-color:#e9e9e9}._collapsePanel_1q7zr_23{display:flex;flex-wrap:wrap}._layoutContainer_1mubg_1{position:relative;width:100%;height:100%;box-sizing:border-box;margin:0;padding:0;overflow:hidden}._elementHighlightBox_1mubg_11{position:absolute;right:0;top:0;padding:10px}._iframeBox_1mubg_18{position:relative}._highlightBox_vl3g6_1{position:absolute;will-change:transform,width,height,left,right;border:2px solid rgb(44,115,253)}._borderDrawBox_vl3g6_7{position:absolute;left:0;height:100%;width:100%;z-index:99;pointer-events:none}._toolBox_vl3g6_16{position:absolute;width:100%;left:0;top:0;box-sizing:border-box;transform:translateY(-100%)}._highlightBox_1dlxo_1{position:absolute;will-change:transform,width,height,left,right}._borderDrawBox_1dlxo_6{position:absolute;left:0;top:0;height:100%;width:100%;z-index:99;pointer-events:none}._toolBox_1dlxo_16{position:absolute;right:0;top:-20px;border:1px solid black;box-sizing:border-box}._horizontal_1dlxo_24._before_1dlxo_24{border-left:2px solid #1890ff}._horizontal_1dlxo_24._after_1dlxo_27{border-right:2px solid #1890ff}._vertical_1dlxo_31._before_1dlxo_24{border-top:2px solid #1890ff}._vertical_1dlxo_31._after_1dlxo_27{border-bottom:2px solid #1890ff}._current_1dlxo_38{border:none!important;background-color:#0084ff6b}._toolBarBox_h5ljb_2{display:flex;margin-bottom:3px;margin-right:-2px;pointer-events:all;float:right}._item_h5ljb_10{background-color:#1677ff;color:#fff;padding:2px 3px;font-size:12px;overflow:hidden;margin-left:1px;cursor:pointer}._layoutSelectBox_h5ljb_20{position:relative;margin-right:1px;height:21px}._layoutSelectBox_h5ljb_20 ._hoverBox_h5ljb_25{transition:all .3s;position:absolute;left:0;top:0;white-space:nowrap;opacity:0;transform:translateY(-100%);pointer-events:none}._layoutSelectBox_h5ljb_20 ._hoverBox_h5ljb_25:hover,._layoutSelectBox_h5ljb_20 ._hoverBox_h5ljb_25._hoverBoxActive_h5ljb_35{opacity:1;pointer-events:all}._layoutSelectBox_h5ljb_20 ._hoverBox_h5ljb_25 ._hoverItem_h5ljb_39{background-color:#1677ff;padding:2px 3px;color:#fff;font-size:12px;margin-bottom:1px;cursor:pointer}._layoutSelectBox_h5ljb_20 ._placeholder_h5ljb_47{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:#1677ff;color:#fff;padding:2px 5px;font-size:12px;max-width:100px}._hoverTips_k3vn7_2{display:inline-block;color:#1677ff;opacity:.9;font-size:12px;margin-bottom:2px;background-color:#fff;padding:1px 3px;border-radius:2px}._contentBox_13nm8_2{background-color:#fff;height:100%;border-top:1px solid rgb(233,233,233);overflow:auto;position:relative}._contentBox_13nm8_2 *{transition:all .1s}._nodeBox_13nm8_13{cursor:pointer}._nodeBox_13nm8_13 ._toolbarBox_13nm8_16{display:none;padding-right:10px}._nodeBox_13nm8_13 ._iconItem_13nm8_20{margin-right:8px}._nodeContent_13nm8_24:hover ._toolbarBox_13nm8_16{display:flex}._nodeContent_13nm8_24{font-size:14px;cursor:pointer;display:flex;align-items:center}._nodeContent_13nm8_24._selected_13nm8_34{background-color:#dddddd3b}._nodeContent_13nm8_24 ._nodeArrow_13nm8_37{font-size:12px}._nodeContent_13nm8_24 ._nodeArrow_13nm8_37._expanded_13nm8_40{transform-origin:center;transform:rotate(90deg)}._nodeContent_13nm8_24 ._nodeRenderView_13nm8_44{padding:5px 0;flex:1;flex-wrap:nowrap;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._nodeChildren_13nm8_53{position:relative}._nodeChildren_13nm8_53:before{display:block;position:absolute;left:13px;top:0;content:"";height:100%;width:1px;background-color:#e9e9e9}._nodeChildren_13nm8_53._selected_13nm8_34:before{background-color:#0000ff5c}._dropAnchorLine_13nm8_70{width:100px;height:2px;background-color:#1890ff;position:fixed;z-index:99;pointer-events:none}._arrowSpan_13nm8_79{position:relative}._arrowSpan_13nm8_79:after{content:"";position:absolute;top:0px;right:0;bottom:0;left:-8px}._CFromRenderBox_1vsdm_2{padding:0 20px}._CFromRenderBox_1vsdm_2 .ant-collapse .ant-collapse-content>.ant-collapse-content-box{padding-right:5px}._CFromRenderBox_1vsdm_2 .ant-collapse>.ant-collapse-item:last-child>.ant-collapse-header{padding-right:5px}._dragItem_xzliq_2{cursor:grab;border:1px solid rgb(233,233,233);background-color:#fff;padding:10px;text-align:center;margin-bottom:10px;font-size:12px;border-radius:2px}._sortModalBox_xzliq_13{padding:20px 10px 10px;overflow:auto;max-height:500px}._addOneBtn_xzliq_19{width:100%;font-size:12px!important;color:#686868}._inputAuto_gk0d2_2{border-bottom:1px solid rgba(128,128,128,.23)}._active_gk0d2_6{border-bottom:1px solid rgb(128,177,255)}._fieldBox_nltxm_3{display:flex;flex-wrap:nowrap;flex-shrink:0;flex-grow:1;min-width:250px;align-items:center}._fieldBox_nltxm_3 ._label_nltxm_11{font-size:12px;color:#686868;padding-right:10px;user-select:none;width:60px;max-height:40px;word-break:break-all;text-overflow:ellipsis;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}._fieldBox_nltxm_3 ._tipsLabel_nltxm_25{text-decoration-line:underline;text-decoration-style:dashed;text-underline-offset:2px;cursor:help;word-break:break-all}._fieldBox_nltxm_3 ._content_nltxm_32{flex:1}._switchBtn_k17cr_2{color:#686868;font-size:12px;padding:0 5px 0 10px}._shapeFieldBox_k17cr_8,._collapseHeader_k17cr_9{color:#686868;display:flex;font-size:12px}._collapseHeader_k17cr_9{align-items:center}._CFromRenderBox_13lda_2 .ant-collapse .ant-collapse-content>.ant-collapse-content-box{padding-right:5px}._CFromRenderBox_13lda_2 .ant-collapse>.ant-collapse-item:last-child>.ant-collapse-header{padding:5px 5px 5px 10px;align-items:center}._CFromRenderBox_13lda_2 .ant-collapse>.ant-collapse-item:last-child>.ant-collapse-header .ant-collapse-expand-icon{padding-inline-end:4px}._advanceBox_9o3af_2{padding:0 20px}._advanceBox_9o3af_2 .ant-input-affix-wrapper .ant-input-prefix{margin-inline-end:0}._rightPanelContainer_1p332_2{height:100%;width:100%}._rightPanelContainer_1p332_2 .ant-tabs .ant-tabs-tab+.ant-tabs-tab{margin-left:0}._rightPanelContainer_1p332_2 .ant-tabs-content.ant-tabs-content-top{height:100%;overflow:auto}._rightPanelContainer_1p332_2 .ant-tabs .ant-tabs-tabpane{height:100%}._visualPanelBox_6q12v_2{padding:0 15px 300px}._visualPanelBox_6q12v_2 ._header_6q12v_5{color:#686868;display:flex}.ant-collapse .ant-collapse-item .ant-collapse-header{padding:5px 5px 5px 10px;align-items:center;color:#686868;font-size:12px}.ant-collapse .ant-collapse-item .ant-collapse-header .ant-collapse-expand-icon{padding-inline-end:4px}._cssFieldBox_15f2h_2{display:flex;color:#686868!important}._cssFieldBox_15f2h_2 .ant-select-selector input{color:#686868!important}._cssFieldBox_15f2h_2 ._row_15f2h_9{display:flex;padding-bottom:6px;align-items:center}._cssFieldBox_15f2h_2 ._fieldLabel_15f2h_14{display:inline-block;width:70px;flex-shrink:0;font-size:12px}._cssFieldBox_15f2h_2 ._leftBox_15f2h_20{flex:1}._cssFieldBox_15f2h_2 ._rightBox_15f2h_23{padding-left:10px}._cssFieldBox_15f2h_2 ._inputBox_15f2h_26{flex:1}._cssBox_15f2h_30{overflow-x:hidden}._cssBox_15f2h_30 .ant-collapse-borderless>.ant-collapse-item{border-bottom:1px solid #e4e4e4}._cssBox_15f2h_30 .ant-collapse-borderless>.ant-collapse-item:last-child{border-bottom:none}._cssBox_15f2h_30 .ant-collapse-content-box{padding-bottom:30px!important}._cssFieldBox_4b8an_2{display:flex;align-items:center;color:#686868!important}._cssFieldBox_4b8an_2 .ant-select-selector{padding:0!important}._cssFieldBox_4b8an_2 .ant-select-single .ant-select-selector .ant-select-selection-search{inset-inline-start:0px;inset-inline-end:0px}._cssFieldBox_4b8an_2 .ant-select-selector input{color:#686868!important}._cssFieldBox_4b8an_2 .ant-select-status-error{border-bottom:1px solid red!important}._cssFieldBox_4b8an_2 ._inputAuto_4b8an_20{border-bottom:1px solid rgba(128,128,128,.23)}._cssFieldBox_4b8an_2 ._active_4b8an_23{border-bottom:1px solid rgb(128,177,255)}._cssBox_4b8an_27{overflow-x:hidden}._cssBox_4b8an_27 .ant-collapse-borderless>.ant-collapse-item{border-bottom:1px solid #e4e4e4}._cssBox_4b8an_27 .ant-collapse-borderless>.ant-collapse-item:last-child{border-bottom:none}._cssBox_4b8an_27 .ant-collapse-content-box{padding-bottom:30px!important}._stateTag_5a8hc_2{position:relative}._stateTag_5a8hc_2 ._stateTagClose_5a8hc_5{position:absolute;right:-10px;top:-10px;background-color:#fff;color:#4d4d4d;opacity:0;font-size:20px;transform:scale(.6);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden;border-radius:10px}._stateTag_5a8hc_2:hover ._stateTagClose_5a8hc_5{opacity:1}._box_tl0hm_2{height:100%;width:100%;padding-right:10px;border-top:1px solid rgb(233,233,233);padding-top:10px;background-color:#fff}
1
+ @charset "UTF-8";._workbenchContainer_15alj_2{width:100%;height:100%;display:flex;flex-direction:column}._workbenchContainer_15alj_2 ._topToolBarBox_15alj_8{height:64px;width:100%;border-bottom:1px solid rgb(233,233,233);display:flex}._workbenchContainer_15alj_2 ._topToolBarBox_15alj_8 ._topToolBarView_15alj_14{flex:1}._workbenchContainer_15alj_2 ._bodyContent_15alj_17{display:flex;width:100%;flex:1;overflow:hidden}._workbenchContainer_15alj_2 ._bodyContent_15alj_17 ._leftBox_15alj_23{position:relative;display:flex;background-color:#fff;z-index:100}._workbenchContainer_15alj_2 ._bodyContent_15alj_17 ._leftBox_15alj_23 ._pluginIconBar_15alj_29{width:50px;height:100%;border-right:1px solid rgb(233,233,233)}._workbenchContainer_15alj_2 ._bodyContent_15alj_17 ._leftBox_15alj_23 ._pluginIconBar_15alj_29 ._pluginIconItem_15alj_34{position:relative;cursor:pointer;width:50px;height:50px;display:flex;align-items:center;justify-content:center;transition:all .1s}._workbenchContainer_15alj_2 ._bodyContent_15alj_17 ._leftBox_15alj_23 ._pluginIconBar_15alj_29 ._pluginIconItem_15alj_34._active_15alj_44 :before,._workbenchContainer_15alj_2 ._bodyContent_15alj_17 ._leftBox_15alj_23 ._pluginIconBar_15alj_29 ._pluginIconItem_15alj_34:hover :before{transition:all .1s;display:block;content:"";width:2px;height:100%;position:absolute;left:0;top:0}._workbenchContainer_15alj_2 ._bodyContent_15alj_17 ._leftBox_15alj_23 ._pluginIconBar_15alj_29 ._pluginIconItem_15alj_34._active_15alj_44 :before{border-left:4px solid #1677ff!important}._workbenchContainer_15alj_2 ._bodyContent_15alj_17 ._leftBox_15alj_23 ._pluginIconBar_15alj_29 ._pluginIconItem_15alj_34:hover :before{border-left:4px solid rgba(22,119,255,.3)}._workbenchContainer_15alj_2 ._bodyContent_15alj_17 ._leftBox_15alj_23 ._pluginPanelBoxResizeBox_15alj_60{display:flex;flex-direction:column;background-color:#fff;z-index:100;border-right:1px solid rgb(233,233,233)}._workbenchContainer_15alj_2 ._bodyContent_15alj_17 ._leftBox_15alj_23 ._pluginPanelBoxResizeBox_15alj_60 ._pluginHeader_15alj_67{display:flex;color:#686868;height:30px;margin:10px;overflow:hidden;align-items:center}._workbenchContainer_15alj_2 ._bodyContent_15alj_17 ._leftBox_15alj_23 ._pluginPanelBoxResizeBox_15alj_60 ._pluginHeader_15alj_67 ._pluginNameText_15alj_75{font-size:16px;font-weight:700;margin-right:auto;flex-wrap:nowrap;word-break:keep-all}._workbenchContainer_15alj_2 ._bodyContent_15alj_17 ._leftBox_15alj_23 ._pluginPanelBoxResizeBox_15alj_60 ._pluginHeader_15alj_67 ._closeBtn_15alj_82,._workbenchContainer_15alj_2 ._bodyContent_15alj_17 ._leftBox_15alj_23 ._pluginPanelBoxResizeBox_15alj_60 ._pluginHeader_15alj_67 ._fixedBtn_15alj_83{color:#686868}._workbenchContainer_15alj_2 ._bodyContent_15alj_17 ._leftBox_15alj_23 ._pluginPanelBoxResizeBox_15alj_60 ._pluginHeader_15alj_67 ._fixedBtn_15alj_83>*{transition:all .1s}._workbenchContainer_15alj_2 ._bodyContent_15alj_17 ._leftBox_15alj_23 ._pluginPanelBoxResizeBox_15alj_60 ._pluginHeader_15alj_67 ._fixedBtn_15alj_83>._active_15alj_44{transform:rotate(-45deg)}._workbenchContainer_15alj_2 ._bodyContent_15alj_17 ._leftBox_15alj_23 ._pluginPanelBox_15alj_60{width:100%;flex:1;background-color:#f8f8ff;overflow:hidden}._workbenchContainer_15alj_2 ._bodyContent_15alj_17 ._rightResizeBox_15alj_98{position:relative}._workbenchContainer_15alj_2 ._bodyContent_15alj_17 ._rightResizeBox_15alj_98 ._arrowCursor_15alj_101{cursor:pointer;position:absolute;left:-18px;top:50%;transform:translateY(-50%);z-index:2;background-color:#fff;padding:10px 3px;border-radius:4px 0 0 4px;font-size:12px}._workbenchContainer_15alj_2 ._bodyContent_15alj_17 ._rightResizeBox_15alj_98 ._arrowCursor_15alj_101>._active_15alj_44{transform:rotate(-180deg)}._workbenchContainer_15alj_2 ._bodyContent_15alj_17 ._rightResizeBox_15alj_98 ._rightBox_15alj_116{position:relative;width:100%;height:100%;border-left:1px rgb(233,233,233) solid}._workbenchContainer_15alj_2 ._bodyContent_15alj_17 ._centerBox_15alj_122{display:flex;flex-direction:column;flex:1;overflow:hidden}._workbenchContainer_15alj_2 ._bodyContent_15alj_17 ._centerBox_15alj_122 ._subTopToolbarBox_15alj_128{width:100%;height:50px;background-color:#fff}._workbenchContainer_15alj_2 ._bodyContent_15alj_17 ._centerBox_15alj_122 ._canvasBox_15alj_133{width:100%;flex:1;overflow:hidden;padding:20px 30px;background-color:#edeff3}._workbenchContainer_15alj_2 ._bodyContent_15alj_17 ._centerBox_15alj_122 ._canvasBox_15alj_133 ._scrollBox_15alj_140{width:100%;height:100%;box-shadow:0 1px 4px #1f325821}._engineContainer_f3ly9_2{color:#686868;font-size:14px;width:100%;height:100%;overflow:hidden}._engineContainer_f3ly9_2 *{box-sizing:border-box}._container_191p3_2{width:100%;height:100%;overflow:hidden;background-color:#fff;display:flex}._container_191p3_2 .ant-tabs .ant-tabs-tab+.ant-tabs-tab{margin-left:12px}._container_191p3_2 .ant-tabs-content.ant-tabs-content-top{height:100%;overflow:auto}._container_191p3_2 .ant-tabs-tab{padding:6px 0}._container_191p3_2 .ant-tabs-nav{margin-bottom:0}._tabTitle_191p3_23{padding:0 10px;font-size:12px;font-weight:400;text-rendering:optimizeLegibility}._square_1b87f_2{user-select:none;position:relative;flex:33.3% 0}._square_1b87f_2:before{content:"";padding-top:100%;float:left}._square_1b87f_2:after{content:"";display:block;clear:both}._componentItem_1b87f_18{user-select:none;overflow:hidden;position:absolute;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid rgb(233,233,233);border-bottom:1px solid rgb(233,233,233);transition:all .2s}._componentItem_1b87f_18:hover{box-shadow:0 6px 16px #00000026;border-color:transparent;cursor:grab}._componentItem_1b87f_18:active{cursor:grabbing}._iconImg_1b87f_41{width:100%}._iconBox_1b87f_45{width:60%;height:60%;overflow:hidden;display:flex;align-items:center;justify-content:center}._iconText_1b87f_54{font-size:18px;font-weight:bolder;color:#686868}._ListBox_1q7zr_2{display:flex;flex-wrap:wrap}._ListBox_1q7zr_2 .ant-collapse .ant-collapse-content>.ant-collapse-content-box{padding:0}._ListBox_1q7zr_2 .ant-collapse{border:none;background-color:#fff}._ListBox_1q7zr_2 .ant-collapse-header{padding:10px 16px!important}._ListBox_1q7zr_2 .ant-collapse-expand-icon{padding-inline-end:0!important}._ListBox_1q7zr_2 .ant-collapse-item{border-color:#e9e9e9}._collapsePanel_1q7zr_23{display:flex;flex-wrap:wrap}._layoutContainer_1mubg_1{position:relative;width:100%;height:100%;box-sizing:border-box;margin:0;padding:0;overflow:hidden}._elementHighlightBox_1mubg_11{position:absolute;right:0;top:0;padding:10px}._iframeBox_1mubg_18{position:relative}._highlightBox_vl3g6_1{position:absolute;will-change:transform,width,height,left,right;border:2px solid rgb(44,115,253)}._borderDrawBox_vl3g6_7{position:absolute;left:0;height:100%;width:100%;z-index:99;pointer-events:none}._toolBox_vl3g6_16{position:absolute;width:100%;left:0;top:0;box-sizing:border-box;transform:translateY(-100%)}._highlightBox_1dlxo_1{position:absolute;will-change:transform,width,height,left,right}._borderDrawBox_1dlxo_6{position:absolute;left:0;top:0;height:100%;width:100%;z-index:99;pointer-events:none}._toolBox_1dlxo_16{position:absolute;right:0;top:-20px;border:1px solid black;box-sizing:border-box}._horizontal_1dlxo_24._before_1dlxo_24{border-left:2px solid #1890ff}._horizontal_1dlxo_24._after_1dlxo_27{border-right:2px solid #1890ff}._vertical_1dlxo_31._before_1dlxo_24{border-top:2px solid #1890ff}._vertical_1dlxo_31._after_1dlxo_27{border-bottom:2px solid #1890ff}._current_1dlxo_38{border:none!important;background-color:#0084ff6b}._toolBarBox_h5ljb_2{display:flex;margin-bottom:3px;margin-right:-2px;pointer-events:all;float:right}._item_h5ljb_10{background-color:#1677ff;color:#fff;padding:2px 3px;font-size:12px;overflow:hidden;margin-left:1px;cursor:pointer}._layoutSelectBox_h5ljb_20{position:relative;margin-right:1px;height:21px}._layoutSelectBox_h5ljb_20 ._hoverBox_h5ljb_25{transition:all .3s;position:absolute;left:0;top:0;white-space:nowrap;opacity:0;transform:translateY(-100%);pointer-events:none}._layoutSelectBox_h5ljb_20 ._hoverBox_h5ljb_25:hover,._layoutSelectBox_h5ljb_20 ._hoverBox_h5ljb_25._hoverBoxActive_h5ljb_35{opacity:1;pointer-events:all}._layoutSelectBox_h5ljb_20 ._hoverBox_h5ljb_25 ._hoverItem_h5ljb_39{background-color:#1677ff;padding:2px 3px;color:#fff;font-size:12px;margin-bottom:1px;cursor:pointer}._layoutSelectBox_h5ljb_20 ._placeholder_h5ljb_47{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:#1677ff;color:#fff;padding:2px 5px;font-size:12px;max-width:100px}._hoverTips_k3vn7_2{display:inline-block;color:#1677ff;opacity:.9;font-size:12px;margin-bottom:2px;background-color:#fff;padding:1px 3px;border-radius:2px}._contentBox_13nm8_2{background-color:#fff;height:100%;border-top:1px solid rgb(233,233,233);overflow:auto;position:relative}._contentBox_13nm8_2 *{transition:all .1s}._nodeBox_13nm8_13{cursor:pointer}._nodeBox_13nm8_13 ._toolbarBox_13nm8_16{display:none;padding-right:10px}._nodeBox_13nm8_13 ._iconItem_13nm8_20{margin-right:8px}._nodeContent_13nm8_24:hover ._toolbarBox_13nm8_16{display:flex}._nodeContent_13nm8_24{font-size:14px;cursor:pointer;display:flex;align-items:center}._nodeContent_13nm8_24._selected_13nm8_34{background-color:#dddddd3b}._nodeContent_13nm8_24 ._nodeArrow_13nm8_37{font-size:12px}._nodeContent_13nm8_24 ._nodeArrow_13nm8_37._expanded_13nm8_40{transform-origin:center;transform:rotate(90deg)}._nodeContent_13nm8_24 ._nodeRenderView_13nm8_44{padding:5px 0;flex:1;flex-wrap:nowrap;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._nodeChildren_13nm8_53{position:relative}._nodeChildren_13nm8_53:before{display:block;position:absolute;left:13px;top:0;content:"";height:100%;width:1px;background-color:#e9e9e9}._nodeChildren_13nm8_53._selected_13nm8_34:before{background-color:#0000ff5c}._dropAnchorLine_13nm8_70{width:100px;height:2px;background-color:#1890ff;position:fixed;z-index:99;pointer-events:none}._arrowSpan_13nm8_79{position:relative}._arrowSpan_13nm8_79:after{content:"";position:absolute;top:0px;right:0;bottom:0;left:-8px}._CFromRenderBox_1vsdm_2{padding:0 20px}._CFromRenderBox_1vsdm_2 .ant-collapse .ant-collapse-content>.ant-collapse-content-box{padding-right:5px}._CFromRenderBox_1vsdm_2 .ant-collapse>.ant-collapse-item:last-child>.ant-collapse-header{padding-right:5px}._dragItem_xzliq_2{cursor:grab;border:1px solid rgb(233,233,233);background-color:#fff;padding:10px;text-align:center;margin-bottom:10px;font-size:12px;border-radius:2px}._sortModalBox_xzliq_13{padding:20px 10px 10px;overflow:auto;max-height:500px}._addOneBtn_xzliq_19{width:100%;font-size:12px!important;color:#686868}._inputAuto_gk0d2_2{border-bottom:1px solid rgba(128,128,128,.23)}._active_gk0d2_6{border-bottom:1px solid rgb(128,177,255)}._fieldBox_nltxm_3{display:flex;flex-wrap:nowrap;flex-shrink:0;flex-grow:1;min-width:250px;align-items:center}._fieldBox_nltxm_3 ._label_nltxm_11{font-size:12px;color:#686868;padding-right:10px;user-select:none;width:60px;max-height:40px;word-break:break-all;text-overflow:ellipsis;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}._fieldBox_nltxm_3 ._tipsLabel_nltxm_25{text-decoration-line:underline;text-decoration-style:dashed;text-underline-offset:2px;cursor:help;word-break:break-all}._fieldBox_nltxm_3 ._content_nltxm_32{flex:1}._switchBtn_k17cr_2{color:#686868;font-size:12px;padding:0 5px 0 10px}._shapeFieldBox_k17cr_8,._collapseHeader_k17cr_9{color:#686868;display:flex;font-size:12px}._collapseHeader_k17cr_9{align-items:center}._CFromRenderBox_13lda_2 .ant-collapse .ant-collapse-content>.ant-collapse-content-box{padding-right:5px}._CFromRenderBox_13lda_2 .ant-collapse>.ant-collapse-item:last-child>.ant-collapse-header{padding:5px 5px 5px 10px;align-items:center}._CFromRenderBox_13lda_2 .ant-collapse>.ant-collapse-item:last-child>.ant-collapse-header .ant-collapse-expand-icon{padding-inline-end:4px}._advanceBox_9o3af_2{padding:0 20px}._advanceBox_9o3af_2 .ant-input-affix-wrapper .ant-input-prefix{margin-inline-end:0}._rightPanelContainer_1p332_2{height:100%;width:100%}._rightPanelContainer_1p332_2 .ant-tabs .ant-tabs-tab+.ant-tabs-tab{margin-left:0}._rightPanelContainer_1p332_2 .ant-tabs-content.ant-tabs-content-top{height:100%;overflow:auto}._rightPanelContainer_1p332_2 .ant-tabs .ant-tabs-tabpane{height:100%}._visualPanelBox_6q12v_2{padding:0 15px 300px}._visualPanelBox_6q12v_2 ._header_6q12v_5{color:#686868;display:flex}.ant-collapse .ant-collapse-item .ant-collapse-header{padding:5px 5px 5px 10px;align-items:center;color:#686868;font-size:12px}.ant-collapse .ant-collapse-item .ant-collapse-header .ant-collapse-expand-icon{padding-inline-end:4px}._cssFieldBox_15f2h_2{display:flex;color:#686868!important}._cssFieldBox_15f2h_2 .ant-select-selector input{color:#686868!important}._cssFieldBox_15f2h_2 ._row_15f2h_9{display:flex;padding-bottom:6px;align-items:center}._cssFieldBox_15f2h_2 ._fieldLabel_15f2h_14{display:inline-block;width:70px;flex-shrink:0;font-size:12px}._cssFieldBox_15f2h_2 ._leftBox_15f2h_20{flex:1}._cssFieldBox_15f2h_2 ._rightBox_15f2h_23{padding-left:10px}._cssFieldBox_15f2h_2 ._inputBox_15f2h_26{flex:1}._cssBox_15f2h_30{overflow-x:hidden}._cssBox_15f2h_30 .ant-collapse-borderless>.ant-collapse-item{border-bottom:1px solid #e4e4e4}._cssBox_15f2h_30 .ant-collapse-borderless>.ant-collapse-item:last-child{border-bottom:none}._cssBox_15f2h_30 .ant-collapse-content-box{padding-bottom:30px!important}._cssFieldBox_4b8an_2{display:flex;align-items:center;color:#686868!important}._cssFieldBox_4b8an_2 .ant-select-selector{padding:0!important}._cssFieldBox_4b8an_2 .ant-select-single .ant-select-selector .ant-select-selection-search{inset-inline-start:0px;inset-inline-end:0px}._cssFieldBox_4b8an_2 .ant-select-selector input{color:#686868!important}._cssFieldBox_4b8an_2 .ant-select-status-error{border-bottom:1px solid red!important}._cssFieldBox_4b8an_2 ._inputAuto_4b8an_20{border-bottom:1px solid rgba(128,128,128,.23)}._cssFieldBox_4b8an_2 ._active_4b8an_23{border-bottom:1px solid rgb(128,177,255)}._cssBox_4b8an_27{overflow-x:hidden}._cssBox_4b8an_27 .ant-collapse-borderless>.ant-collapse-item{border-bottom:1px solid #e4e4e4}._cssBox_4b8an_27 .ant-collapse-borderless>.ant-collapse-item:last-child{border-bottom:none}._cssBox_4b8an_27 .ant-collapse-content-box{padding-bottom:30px!important}._stateTag_5a8hc_2{position:relative}._stateTag_5a8hc_2 ._stateTagClose_5a8hc_5{position:absolute;right:-10px;top:-10px;background-color:#fff;color:#4d4d4d;opacity:0;font-size:20px;transform:scale(.6);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden;border-radius:10px}._stateTag_5a8hc_2:hover ._stateTagClose_5a8hc_5{opacity:1}._box_tl0hm_2{height:100%;width:100%;padding-right:10px;border-top:1px solid rgb(233,233,233);padding-top:10px;background-color:#fff}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chamn/engine",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "main": "dist/index.cjs.js",
5
5
  "module": "dist/index.es.js",
6
6
  "types": "dist/index.d.ts",
@@ -18,10 +18,11 @@
18
18
  ],
19
19
  "scripts": {
20
20
  "start": "npm run build:render && build-script",
21
- "build": "build-script --build",
21
+ "build": "cross-env BUILD_TYPE=PKG build-script --build",
22
+ "build:analyze": "cross-env BUILD_TYPE=PKG build-script --build --analyze",
22
23
  "build:app": "npm run build:render && export NODE_OPTIONS=--max-old-space-size=32768 && cross-env BUILD_TYPE=APP build-script --build",
23
24
  "build:render": "cross-env BUILD_TYPE=Render build-script --build",
24
- "build:app:analyze": "cross-env BUILD_TYPE=APP ANALYZE=1 build-script --build",
25
+ "build:app:analyze": "cross-env BUILD_TYPE=APP build-script --build --analyze",
25
26
  "lint": "eslint --ext .tsx,.ts src/",
26
27
  "prettier": "prettier --write ./src",
27
28
  "test": "jest",
@@ -30,9 +31,9 @@
30
31
  },
31
32
  "dependencies": {
32
33
  "@ant-design/icons": "^4.8.0",
33
- "@chamn/layout": "0.0.7",
34
- "@chamn/model": "0.0.7",
35
- "@chamn/render": "0.0.7",
34
+ "@chamn/layout": "0.0.9",
35
+ "@chamn/model": "0.0.9",
36
+ "@chamn/render": "0.0.9",
36
37
  "@dnd-kit/core": "^6.0.7",
37
38
  "@dnd-kit/modifiers": "^6.0.1",
38
39
  "@dnd-kit/sortable": "^7.0.2",
@@ -51,8 +52,8 @@
51
52
  },
52
53
  "devDependencies": {
53
54
  "@babel/core": "^7.21.0",
54
- "@chamn/build-script": "0.0.7",
55
- "@chamn/demo-page": "0.0.7",
55
+ "@chamn/build-script": "0.0.9",
56
+ "@chamn/demo-page": "0.0.9",
56
57
  "@storybook/addon-actions": "^6.5.16",
57
58
  "@storybook/addon-essentials": "^6.5.16",
58
59
  "@storybook/addon-interactions": "^6.5.16",
@@ -74,5 +75,5 @@
74
75
  "vite-plugin-monaco-editor": "^1.1.0"
75
76
  },
76
77
  "config": {},
77
- "gitHead": "0c7375f745549dc8f9903c725a209165907a7833"
78
+ "gitHead": "f073439ea704830a6f62146c916c2f0348c2e531"
78
79
  }
@@ -2,7 +2,6 @@ import globalClassNames from '../../style.d';
2
2
  declare const classNames: typeof globalClassNames & {
3
3
  readonly workbenchContainer: 'workbenchContainer';
4
4
  readonly topToolBarBox: 'topToolBarBox';
5
- readonly logo: 'logo';
6
5
  readonly topToolBarView: 'topToolBarView';
7
6
  readonly bodyContent: 'bodyContent';
8
7
  readonly leftBox: 'leftBox';
@@ -10,3 +10,13 @@ body {
10
10
  margin: 0;
11
11
  padding: 0;
12
12
  }
13
+
14
+ .logo {
15
+ height: 100%;
16
+ font-size: 20px;
17
+ display: flex;
18
+ align-items: center;
19
+ margin-left: 20px;
20
+ font-weight: bolder;
21
+ margin-right: auto;
22
+ }
@@ -1,4 +1,4 @@
1
- import { BasePage, BasePageBClient, EmptyPage, Material } from '@chamn/demo-page';
1
+ import { BasePage, Material } from '@chamn/demo-page';
2
2
  import { Button, message, Modal } from 'antd';
3
3
  import React, { useCallback, useEffect, useState } from 'react';
4
4
  import ReactDOM from 'react-dom';
@@ -8,86 +8,14 @@ import '../../index.css';
8
8
  import { DEFAULT_PLUGIN_LIST } from '../../../plugins';
9
9
  import { DesignerExports } from '../../../plugins/Designer';
10
10
  import { DisplaySourceSchema } from '../../../plugins/DisplaySourceSchema';
11
- import { AssetPackage } from '@chamn/model';
12
11
  import { InnerComponentMeta } from '../../../material/innerMaterial';
13
12
  import { RollbackOutlined } from '@ant-design/icons';
14
- import { collectVariable, flatObject, LayoutPropsType } from '@chamn/layout';
15
13
 
16
14
  const win = window as any;
17
15
  win.React = React;
18
16
  win.ReactDOM = ReactDOM;
19
17
  win.ReactDOMClient = ReactDOMClient;
20
18
 
21
- const beforeInitRender: LayoutPropsType['beforeInitRender'] = async ({ iframe }) => {
22
- const subWin = iframe.getWindow();
23
- if (!subWin) {
24
- return;
25
- }
26
- subWin.React = React;
27
- (subWin as any).ReactDOM = ReactDOM;
28
- (subWin as any).ReactDOMClient = ReactDOMClient;
29
- };
30
-
31
- const customRender: LayoutPropsType['customRender'] = async ({
32
- iframe: iframeContainer,
33
- assets,
34
- page,
35
- pageModel,
36
- ready,
37
- }) => {
38
- await iframeContainer.injectJS('./render.umd.js');
39
- const iframeWindow = iframeContainer.getWindow()!;
40
- const iframeDoc = iframeContainer.getDocument()!;
41
- const IframeReact = iframeWindow.React!;
42
- const IframeReactDOM = iframeWindow.ReactDOMClient!;
43
- const CRender = iframeWindow.CRender!;
44
-
45
- // 注入组件物料资源
46
- const assetLoader = new CRender.AssetLoader(assets, {
47
- window: iframeContainer.getWindow()!,
48
- });
49
- assetLoader
50
- .onSuccess(() => {
51
- // 从子窗口获取物料对象
52
- const componentCollection = collectVariable(assets, iframeWindow);
53
- const components = flatObject(componentCollection);
54
-
55
- const App = IframeReact?.createElement(CRender.DesignRender, {
56
- adapter: CRender?.ReactAdapter,
57
- page: page,
58
- pageModel: pageModel,
59
- components,
60
- onMount: (designRenderInstance) => {
61
- ready(designRenderInstance);
62
- },
63
- });
64
-
65
- IframeReactDOM.createRoot(iframeDoc.getElementById('app')!).render(App);
66
- })
67
- .onError(() => {
68
- console.log('资源加载出粗');
69
- })
70
- .load();
71
- };
72
-
73
- const assets: AssetPackage[] = [
74
- {
75
- package: 'antd',
76
- globalName: 'antd',
77
- resources: [
78
- {
79
- src: 'https://cdn.bootcdn.net/ajax/libs/antd/5.1.2/reset.css',
80
- },
81
- {
82
- src: 'https://cdn.bootcdn.net/ajax/libs/dayjs/1.11.7/dayjs.min.js',
83
- },
84
- {
85
- src: 'https://cdn.bootcdn.net/ajax/libs/antd/5.1.2/antd.js',
86
- },
87
- ],
88
- },
89
- ];
90
-
91
19
  const assetPackagesList = [
92
20
  {
93
21
  package: '@chamn/mock-material',
@@ -123,14 +51,10 @@ export const App = () => {
123
51
  setTimeout(() => {
124
52
  const designerExports = designer?.exports as DesignerExports;
125
53
  console.log('to reload');
126
- designerExports.reload({
127
- assets,
128
- });
54
+ designerExports.reload();
129
55
  }, 0);
130
56
  };
131
57
 
132
- reloadPage();
133
-
134
58
  const workbench = ctx.engine.getWorkbench();
135
59
 
136
60
  workbench?.replaceTopBarView(
@@ -144,6 +68,10 @@ export const App = () => {
144
68
  paddingRight: '10px',
145
69
  }}
146
70
  >
71
+ <div className="logo">Chameleon EG</div>
72
+ <a target="_blank" href="https://hlerenow.github.io/chameleon/documents/" rel="noreferrer">
73
+ <Button style={{ marginRight: '10px' }}>Documents </Button>
74
+ </a>
147
75
  <a target="_blank" href="https://github.com/hlerenow/chameleon" rel="noreferrer">
148
76
  <Button style={{ marginRight: '10px' }}>Github </Button>
149
77
  </a>
@@ -255,21 +183,16 @@ export const App = () => {
255
183
  if (!ready) {
256
184
  return <>loading...</>;
257
185
  }
186
+
258
187
  return (
259
188
  <Engine
260
189
  plugins={DEFAULT_PLUGIN_LIST}
261
190
  schema={page as any}
191
+ // 传入组件物料
262
192
  material={[...InnerComponentMeta, ...Material]}
263
- assets={[]}
193
+ // 船队组件物料对应的 js 运行库,只能使用 umd 模式的 js
264
194
  assetPackagesList={assetPackagesList}
265
195
  onReady={onReady}
266
- beforePluginRun={({ pluginManager }) => {
267
- pluginManager.customPlugin('Designer', (pluginInstance) => {
268
- pluginInstance.ctx.config.beforeInitRender = beforeInitRender;
269
- pluginInstance.ctx.config.customRender = customRender;
270
- return pluginInstance;
271
- });
272
- }}
273
196
  />
274
197
  );
275
198
  };
@@ -0,0 +1,274 @@
1
+ import { BasePage, BasePageBClient, EmptyPage, Material } from '@chamn/demo-page';
2
+ import { Button, message, Modal } from 'antd';
3
+ import React, { useCallback, useEffect, useState } from 'react';
4
+ import ReactDOM from 'react-dom';
5
+ import ReactDOMClient from 'react-dom/client';
6
+ import { Engine, EnginContext } from '../../..';
7
+ import '../../index.css';
8
+ import { DEFAULT_PLUGIN_LIST } from '../../../plugins';
9
+ import { DesignerExports } from '../../../plugins/Designer';
10
+ import { DisplaySourceSchema } from '../../../plugins/DisplaySourceSchema';
11
+ import { AssetPackage } from '@chamn/model';
12
+ import { InnerComponentMeta } from '../../../material/innerMaterial';
13
+ import { RollbackOutlined } from '@ant-design/icons';
14
+ import { collectVariable, flatObject, LayoutPropsType } from '@chamn/layout';
15
+
16
+ const win = window as any;
17
+ win.React = React;
18
+ win.ReactDOM = ReactDOM;
19
+ win.ReactDOMClient = ReactDOMClient;
20
+
21
+ const beforeInitRender: LayoutPropsType['beforeInitRender'] = async ({ iframe }) => {
22
+ const subWin = iframe.getWindow();
23
+ if (!subWin) {
24
+ return;
25
+ }
26
+ subWin.React = React;
27
+ (subWin as any).ReactDOM = ReactDOM;
28
+ (subWin as any).ReactDOMClient = ReactDOMClient;
29
+ };
30
+
31
+ const customRender: LayoutPropsType['customRender'] = async ({
32
+ iframe: iframeContainer,
33
+ assets,
34
+ page,
35
+ pageModel,
36
+ ready,
37
+ }) => {
38
+ await iframeContainer.injectJS('./render.umd.js');
39
+ const iframeWindow = iframeContainer.getWindow()!;
40
+ const iframeDoc = iframeContainer.getDocument()!;
41
+ const IframeReact = iframeWindow.React!;
42
+ const IframeReactDOM = iframeWindow.ReactDOMClient!;
43
+ const CRender = iframeWindow.CRender!;
44
+
45
+ // 注入组件物料资源
46
+ const assetLoader = new CRender.AssetLoader(assets, {
47
+ window: iframeContainer.getWindow()!,
48
+ });
49
+ assetLoader
50
+ .onSuccess(() => {
51
+ // 从子窗口获取物料对象
52
+ const componentCollection = collectVariable(assets, iframeWindow);
53
+ const components = flatObject(componentCollection);
54
+
55
+ const App = IframeReact?.createElement(CRender.DesignRender, {
56
+ adapter: CRender?.ReactAdapter,
57
+ page: page,
58
+ pageModel: pageModel,
59
+ components,
60
+ onMount: (designRenderInstance) => {
61
+ ready(designRenderInstance);
62
+ },
63
+ });
64
+
65
+ IframeReactDOM.createRoot(iframeDoc.getElementById('app')!).render(App);
66
+ })
67
+ .onError(() => {
68
+ console.log('资源加载出粗');
69
+ })
70
+ .load();
71
+ };
72
+
73
+ const assets: AssetPackage[] = [
74
+ {
75
+ package: 'antd',
76
+ globalName: 'antd',
77
+ resources: [
78
+ {
79
+ src: 'https://cdn.bootcdn.net/ajax/libs/antd/5.1.2/reset.css',
80
+ },
81
+ {
82
+ src: 'https://cdn.bootcdn.net/ajax/libs/dayjs/1.11.7/dayjs.min.js',
83
+ },
84
+ {
85
+ src: 'https://cdn.bootcdn.net/ajax/libs/antd/5.1.2/antd.js',
86
+ },
87
+ ],
88
+ },
89
+ ];
90
+
91
+ const assetPackagesList = [
92
+ {
93
+ package: '@chamn/mock-material',
94
+ globalName: 'antd',
95
+ resources: [
96
+ {
97
+ src: 'https://cdn.bootcdn.net/ajax/libs/antd/5.1.2/reset.css',
98
+ },
99
+ {
100
+ src: 'https://cdn.bootcdn.net/ajax/libs/dayjs/1.11.7/dayjs.min.js',
101
+ },
102
+ {
103
+ src: 'https://cdn.bootcdn.net/ajax/libs/antd/5.1.2/antd.js',
104
+ },
105
+ ],
106
+ },
107
+ ];
108
+
109
+ export const App = () => {
110
+ const [ready, setReady] = useState(false);
111
+ const [page, setPage] = useState(BasePage);
112
+
113
+ useEffect(() => {
114
+ const localPage = localStorage.getItem('pageSchema');
115
+ if (localPage) {
116
+ setPage(JSON.parse(localPage));
117
+ }
118
+ setReady(true);
119
+ }, []);
120
+ const onReady = useCallback(async (ctx: EnginContext) => {
121
+ const designer = await ctx.pluginManager.onPluginReadyOk('Designer');
122
+ const reloadPage = async () => {
123
+ setTimeout(() => {
124
+ const designerExports = designer?.exports as DesignerExports;
125
+ console.log('to reload');
126
+ designerExports.reload({
127
+ assets,
128
+ });
129
+ }, 0);
130
+ };
131
+
132
+ reloadPage();
133
+
134
+ const workbench = ctx.engine.getWorkbench();
135
+
136
+ workbench?.replaceTopBarView(
137
+ <div
138
+ style={{
139
+ width: '100%',
140
+ height: '100%',
141
+ display: 'flex',
142
+ alignItems: 'center',
143
+ justifyContent: 'flex-end',
144
+ paddingRight: '10px',
145
+ }}
146
+ >
147
+ <a target="_blank" href="https://github.com/hlerenow/chameleon" rel="noreferrer">
148
+ <Button style={{ marginRight: '10px' }}>Github </Button>
149
+ </a>
150
+
151
+ <Button
152
+ style={{ marginRight: '10px' }}
153
+ onClick={async () => {
154
+ const res = await ctx.pluginManager.get('History');
155
+ res?.exports.preStep();
156
+ }}
157
+ >
158
+ <RollbackOutlined />
159
+ </Button>
160
+ <Button
161
+ style={{ marginRight: '10px' }}
162
+ onClick={async () => {
163
+ const res = await ctx.pluginManager.get('History');
164
+ res?.exports.nextStep();
165
+ }}
166
+ >
167
+ <RollbackOutlined
168
+ style={{
169
+ transform: 'rotateY(180deg)',
170
+ }}
171
+ />
172
+ </Button>
173
+
174
+ <DisplaySourceSchema pageModel={ctx.engine.pageModel} engineCtx={ctx}>
175
+ <Button style={{ marginRight: '10px' }}>Source Code</Button>
176
+ </DisplaySourceSchema>
177
+
178
+ <Button
179
+ style={{ marginRight: '10px' }}
180
+ onClick={() => {
181
+ reloadPage();
182
+ }}
183
+ >
184
+ Refresh Page
185
+ </Button>
186
+ <Button
187
+ style={{ marginRight: '10px' }}
188
+ onClick={() => {
189
+ let src = '/#/preview';
190
+ if (location.href.includes('hlerenow')) {
191
+ src = '/chameleon/#/preview';
192
+ }
193
+
194
+ Modal.info({
195
+ closable: true,
196
+ icon: null,
197
+ width: 'calc(100vw - 100px)',
198
+ centered: true,
199
+ title: (
200
+ <div>
201
+ Preview
202
+ <Button
203
+ size="small"
204
+ style={{
205
+ float: 'right',
206
+ marginRight: '30px',
207
+ }}
208
+ onClick={() => {
209
+ window.open(src);
210
+ }}
211
+ >
212
+ Open in new window
213
+ </Button>
214
+ </div>
215
+ ),
216
+ content: (
217
+ <div
218
+ style={{
219
+ width: '100%',
220
+ height: 'calc(100vh - 200px)',
221
+ }}
222
+ >
223
+ <iframe
224
+ style={{
225
+ border: '1px solid #e7e7e7',
226
+ width: '100%',
227
+ height: '100%',
228
+ borderRadius: '4px',
229
+ overflow: 'hidden',
230
+ }}
231
+ src={src}
232
+ />
233
+ </div>
234
+ ),
235
+ footer: null,
236
+ });
237
+ }}
238
+ >
239
+ Preview
240
+ </Button>
241
+ <Button
242
+ type="primary"
243
+ onClick={() => {
244
+ const newPage = ctx.engine.pageModel.export();
245
+ localStorage.setItem('pageSchema', JSON.stringify(newPage));
246
+ message.success('Save successfully');
247
+ }}
248
+ >
249
+ Save
250
+ </Button>
251
+ </div>
252
+ );
253
+ }, []);
254
+
255
+ if (!ready) {
256
+ return <>loading...</>;
257
+ }
258
+ return (
259
+ <Engine
260
+ plugins={DEFAULT_PLUGIN_LIST}
261
+ schema={page as any}
262
+ material={[...InnerComponentMeta, ...Material]}
263
+ assetPackagesList={assetPackagesList}
264
+ onReady={onReady}
265
+ beforePluginRun={({ pluginManager }) => {
266
+ pluginManager.customPlugin('Designer', (pluginInstance) => {
267
+ pluginInstance.ctx.config.beforeInitRender = beforeInitRender;
268
+ pluginInstance.ctx.config.customRender = customRender;
269
+ return pluginInstance;
270
+ });
271
+ }}
272
+ />
273
+ );
274
+ };
@@ -1,24 +1,56 @@
1
+ import React from 'react';
1
2
  import { useEffect, useState } from 'react';
2
- import { ReactAdapter, Render, useRender } from '@chamn/render';
3
- import * as components from 'antd';
3
+ import { ReactAdapter, Render, useRender, AssetLoader, collectVariable, flatObject } from '@chamn/render';
4
+ import { AssetPackage, CPageDataType } from '@chamn/model';
5
+
6
+ const loadAssets = async (assets: AssetPackage[]) => {
7
+ // 注入组件物料资源
8
+ const assetLoader = new AssetLoader(assets);
9
+ try {
10
+ await assetLoader.load();
11
+ // 从子窗口获取物料对象
12
+ const componentCollection = collectVariable(assets, window);
13
+ const components = flatObject(componentCollection);
14
+ return components;
15
+ } catch (e) {
16
+ return null;
17
+ }
18
+ };
4
19
 
5
20
  export const Preview = () => {
6
- const [page, setPage] = useState();
21
+ const [page, setPage] = useState<CPageDataType>();
7
22
  const renderHandle = useRender();
8
23
  const [loading, setLoading] = useState(true);
24
+ const [pageComponents, setPageComponents] = useState({});
25
+ const loadPageAssets = async (assets: AssetPackage[]) => {
26
+ const components = await loadAssets(assets);
27
+ if (components) {
28
+ setPageComponents(components);
29
+ setLoading(false);
30
+ }
31
+ };
9
32
  useEffect(() => {
10
33
  const localPage = localStorage.getItem('pageSchema');
11
34
  if (localPage) {
12
- setPage(JSON.parse(localPage));
13
- setLoading(false);
35
+ const page: CPageDataType = JSON.parse(localPage);
36
+ setPage(page);
37
+ loadPageAssets(page.assets || []);
14
38
  }
15
39
  }, []);
40
+
16
41
  if (loading) {
17
42
  return <>Not find page info on local, please ensure you save it on editor</>;
18
43
  }
19
44
  return (
20
45
  <div className="App" style={{ overflow: 'auto', height: '100%' }}>
21
- <Render page={page} components={components} render={renderHandle as any} adapter={ReactAdapter} />
46
+ <Render
47
+ page={page}
48
+ components={{
49
+ ...pageComponents,
50
+ }}
51
+ render={renderHandle}
52
+ adapter={ReactAdapter}
53
+ />
22
54
  </div>
23
55
  );
24
56
  };
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import { createHashRouter } from 'react-router-dom';
3
2
  import { App } from './page/Editor';
4
3
  import { Preview } from './page/Preview';
@@ -5,7 +5,6 @@ import { Button } from 'antd';
5
5
  import { CloseOutlined, DoubleRightOutlined, PushpinOutlined } from '@ant-design/icons';
6
6
  import clsx from 'clsx';
7
7
  import mitt, { Emitter } from 'mitt';
8
- import { CNode } from '@chamn/model';
9
8
  import { waitReactUpdate } from '../../utils';
10
9
 
11
10
  export interface PluginContext {
@@ -234,7 +233,6 @@ export class Workbench extends React.Component<WorkbenchPropsType, WorkbenchStat
234
233
  return (
235
234
  <div className={styles.workbenchContainer}>
236
235
  <div className={styles.topToolBarBox}>
237
- <div className={styles.logo}>Chameleon EG</div>
238
236
  <div className={styles.topToolBarView}>{topToolBarView}</div>
239
237
  </div>
240
238
  <div className={styles.bodyContent}>
@@ -10,14 +10,6 @@
10
10
  border-bottom: 1px solid $borderColor;
11
11
  display: flex;
12
12
 
13
- .logo {
14
- height: 100%;
15
- font-size: 20px;
16
- display: flex;
17
- align-items: center;
18
- margin-left: 20px;
19
- font-weight: bolder;
20
- }
21
13
  .topToolBarView {
22
14
  flex: 1;
23
15
  }
@@ -2,7 +2,6 @@ import globalClassNames from '../../style.d';
2
2
  declare const classNames: typeof globalClassNames & {
3
3
  readonly workbenchContainer: 'workbenchContainer';
4
4
  readonly topToolBarBox: 'topToolBarBox';
5
- readonly logo: 'logo';
6
5
  readonly topToolBarView: 'topToolBarView';
7
6
  readonly bodyContent: 'bodyContent';
8
7
  readonly leftBox: 'leftBox';