@chamn/engine 0.0.9 → 0.0.11

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 (277) hide show
  1. package/dist/component/CSSEditor/index.d.ts +16 -0
  2. package/dist/component/CSSPropertiesEditor/cssProperties.d.ts +898 -0
  3. package/dist/component/CSSPropertiesEditor/index.d.ts +43 -0
  4. package/dist/component/CSSPropertiesEditor/util.d.ts +1 -0
  5. package/dist/component/CSSPropertiesVariableBindEditor/cssProperties.d.ts +898 -0
  6. package/dist/component/CSSPropertiesVariableBindEditor/index.d.ts +37 -0
  7. package/dist/component/CSSPropertiesVariableBindEditor/util.d.ts +1 -0
  8. package/dist/component/ClassNameEditor/index.d.ts +16 -0
  9. package/dist/component/CustomSchemaForm/components/Form/Field/index.d.ts +11 -0
  10. package/dist/component/CustomSchemaForm/components/Form/context.d.ts +12 -0
  11. package/dist/component/CustomSchemaForm/components/Form/index.d.ts +18 -0
  12. package/dist/component/CustomSchemaForm/components/SetterSwitcher/index.d.ts +14 -0
  13. package/dist/component/CustomSchemaForm/components/Setters/ArraySetter/ArrayItem.d.ts +11 -0
  14. package/dist/component/CustomSchemaForm/components/Setters/ArraySetter/SortItemOrderModal.d.ts +10 -0
  15. package/dist/component/CustomSchemaForm/components/Setters/ArraySetter/index.d.ts +14 -0
  16. package/dist/component/CustomSchemaForm/components/Setters/BooleanSetter/index.d.ts +5 -0
  17. package/dist/component/CustomSchemaForm/components/Setters/CSSValueSetter/index.d.ts +6 -0
  18. package/dist/component/CustomSchemaForm/components/Setters/ExpressionSetter/index.d.ts +8 -0
  19. package/dist/component/CustomSchemaForm/components/Setters/FunctionSetter/defaultDts.d.ts +1 -0
  20. package/dist/component/CustomSchemaForm/components/Setters/FunctionSetter/index.d.ts +2 -0
  21. package/dist/component/CustomSchemaForm/components/Setters/JSONSetter/index.d.ts +2 -0
  22. package/dist/component/CustomSchemaForm/components/Setters/NumberSetter/index.d.ts +3 -0
  23. package/dist/component/CustomSchemaForm/components/Setters/SelectSetter/index.d.ts +3 -0
  24. package/dist/component/CustomSchemaForm/components/Setters/ShapeSetter/index.d.ts +8 -0
  25. package/dist/component/CustomSchemaForm/components/Setters/StringSetter/index.d.ts +3 -0
  26. package/dist/component/CustomSchemaForm/components/Setters/TextAreaSetter/index.d.ts +3 -0
  27. package/dist/component/CustomSchemaForm/components/Setters/index.d.ts +3 -0
  28. package/dist/component/CustomSchemaForm/components/Setters/type.d.ts +19 -0
  29. package/dist/component/CustomSchemaForm/context.d.ts +15 -0
  30. package/dist/component/CustomSchemaForm/index.d.ts +20 -0
  31. package/dist/component/CustomSchemaForm/utils.d.ts +2 -0
  32. package/dist/component/MonacoEditor/index.d.ts +15 -0
  33. package/dist/component/Workbench/index.d.ts +61 -0
  34. package/dist/core/pluginManager.d.ts +61 -0
  35. package/dist/i18n/en_US/index.d.ts +5 -0
  36. package/dist/i18n/index.d.ts +6 -0
  37. package/dist/i18n/zh_CN/index.d.ts +5 -0
  38. package/dist/index.d.ts +44 -0
  39. package/dist/index.js +197 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/{index.es.js → index.mjs} +6867 -6541
  42. package/dist/index.mjs.map +1 -0
  43. package/dist/material/innerMaterial.d.ts +2 -0
  44. package/dist/plugins/AdvancePanel/index.d.ts +10 -0
  45. package/dist/plugins/ComponentLibrary/components/DragItem/index.d.ts +12 -0
  46. package/dist/plugins/ComponentLibrary/components/ListView/index.d.ts +9 -0
  47. package/dist/plugins/ComponentLibrary/index.d.ts +3 -0
  48. package/dist/plugins/ComponentLibrary/localize/en_US/index.d.ts +1 -0
  49. package/dist/plugins/ComponentLibrary/localize/index.d.ts +2 -0
  50. package/dist/plugins/ComponentLibrary/localize/zh_CN/index.d.ts +1 -0
  51. package/dist/plugins/ComponentLibrary/util.d.ts +1 -0
  52. package/dist/plugins/ComponentStatePanel/index.d.ts +10 -0
  53. package/dist/plugins/Designer/components/DefaultSelectToolBar/index.d.ts +10 -0
  54. package/dist/plugins/Designer/components/GhostView/index.d.ts +5 -0
  55. package/dist/plugins/Designer/config.d.ts +1 -0
  56. package/dist/plugins/Designer/index.d.ts +15 -0
  57. package/dist/plugins/Designer/localize/en_US/index.d.ts +1 -0
  58. package/dist/plugins/Designer/localize/index.d.ts +2 -0
  59. package/dist/plugins/Designer/localize/zh_CN/index.d.ts +1 -0
  60. package/dist/plugins/Designer/util.d.ts +2 -0
  61. package/dist/plugins/Designer/view.d.ts +30 -0
  62. package/dist/plugins/DisplaySourceSchema/index.d.ts +9 -0
  63. package/dist/plugins/GlobalStatePanel/index.d.ts +3 -0
  64. package/dist/plugins/GlobalStatePanel/localize/en_US/index.d.ts +1 -0
  65. package/dist/plugins/GlobalStatePanel/localize/index.d.ts +2 -0
  66. package/dist/plugins/GlobalStatePanel/localize/zh_CN/index.d.ts +1 -0
  67. package/dist/plugins/History/index.d.ts +2 -0
  68. package/dist/plugins/OutlineTree/components/TreeView/context.d.ts +30 -0
  69. package/dist/plugins/OutlineTree/components/TreeView/dataStruct.d.ts +21 -0
  70. package/dist/plugins/OutlineTree/components/TreeView/index.d.ts +34 -0
  71. package/dist/plugins/OutlineTree/components/TreeView/treeNode.d.ts +9 -0
  72. package/dist/plugins/OutlineTree/index.d.ts +3 -0
  73. package/dist/plugins/OutlineTree/localize/en_US/index.d.ts +1 -0
  74. package/dist/plugins/OutlineTree/localize/index.d.ts +2 -0
  75. package/dist/plugins/OutlineTree/localize/zh_CN/index.d.ts +1 -0
  76. package/dist/plugins/OutlineTree/util.d.ts +15 -0
  77. package/dist/plugins/PropertyPanel/index.d.ts +9 -0
  78. package/dist/plugins/RightPanel/index.d.ts +2 -0
  79. package/dist/plugins/RightPanel/view.d.ts +38 -0
  80. package/dist/plugins/VisualPanelPlus/index.d.ts +9 -0
  81. package/dist/plugins/index.d.ts +9 -0
  82. package/dist/utils/css.d.ts +19 -0
  83. package/dist/utils/defaultEngineConfig.d.ts +5 -0
  84. package/dist/utils/index.d.ts +6 -0
  85. package/dist/utils/logger.d.ts +1 -0
  86. package/package.json +12 -9
  87. package/.eslintignore +0 -1
  88. package/.eslintrc.js +0 -36
  89. package/.prettierrc.json +0 -7
  90. package/.storybook/main.js +0 -24
  91. package/.storybook/preview.js +0 -9
  92. package/CHANGELOG.md +0 -50
  93. package/__tests__/demo.test.ts +0 -3
  94. package/build.config.js +0 -88
  95. package/dist/index.cjs.js +0 -197
  96. package/dist/index.cjs.js.map +0 -1
  97. package/dist/index.es.js.map +0 -1
  98. package/index.html +0 -16
  99. package/jest.config.js +0 -196
  100. package/public/_dev_/render.d.ts +0 -2
  101. package/public/render.umd.js +0 -42
  102. package/public/render.umd.js.map +0 -1
  103. package/src/Engine.module.scss +0 -10
  104. package/src/Engine.module.scss.d.ts +0 -5
  105. package/src/_dev_/index.css +0 -22
  106. package/src/_dev_/index.tsx +0 -5
  107. package/src/_dev_/page/Editor/index.tsx +0 -198
  108. package/src/_dev_/page/Editor/indexCustom.tsx +0 -274
  109. package/src/_dev_/page/Preview/index.tsx +0 -56
  110. package/src/_dev_/render.ts +0 -3
  111. package/src/_dev_/router.tsx +0 -14
  112. package/src/assets/react.svg +0 -4
  113. package/src/assets/styles/mixin.scss +0 -15
  114. package/src/component/CSSEditor/index.tsx +0 -247
  115. package/src/component/CSSEditor/style.module.scss +0 -22
  116. package/src/component/CSSEditor/style.module.scss.d.ts +0 -6
  117. package/src/component/CSSPropertiesEditor/cssProperties.ts +0 -1062
  118. package/src/component/CSSPropertiesEditor/index.tsx +0 -389
  119. package/src/component/CSSPropertiesEditor/style.module.scss +0 -46
  120. package/src/component/CSSPropertiesEditor/style.module.scss.d.ts +0 -15
  121. package/src/component/CSSPropertiesEditor/util.ts +0 -19
  122. package/src/component/CSSPropertiesVariableBindEditor/cssProperties.ts +0 -782
  123. package/src/component/CSSPropertiesVariableBindEditor/index.tsx +0 -366
  124. package/src/component/CSSPropertiesVariableBindEditor/style.module.scss +0 -48
  125. package/src/component/CSSPropertiesVariableBindEditor/style.module.scss.d.ts +0 -15
  126. package/src/component/CSSPropertiesVariableBindEditor/util.ts +0 -19
  127. package/src/component/ClassNameEditor/index.tsx +0 -91
  128. package/src/component/ClassNameEditor/style.module.scss +0 -0
  129. package/src/component/CustomSchemaForm/components/Form/Field/index.tsx +0 -81
  130. package/src/component/CustomSchemaForm/components/Form/Field/style.module.scss +0 -32
  131. package/src/component/CustomSchemaForm/components/Form/Field/style.module.scss.d.ts +0 -8
  132. package/src/component/CustomSchemaForm/components/Form/context.ts +0 -23
  133. package/src/component/CustomSchemaForm/components/Form/index.tsx +0 -71
  134. package/src/component/CustomSchemaForm/components/SetterSwitcher/index.tsx +0 -273
  135. package/src/component/CustomSchemaForm/components/SetterSwitcher/style.module.scss +0 -16
  136. package/src/component/CustomSchemaForm/components/SetterSwitcher/style.module.scss.d.ts +0 -7
  137. package/src/component/CustomSchemaForm/components/Setters/ArraySetter/ArrayItem.tsx +0 -55
  138. package/src/component/CustomSchemaForm/components/Setters/ArraySetter/SortItemOrderModal.tsx +0 -160
  139. package/src/component/CustomSchemaForm/components/Setters/ArraySetter/index.tsx +0 -129
  140. package/src/component/CustomSchemaForm/components/Setters/ArraySetter/style.module.scss +0 -22
  141. package/src/component/CustomSchemaForm/components/Setters/ArraySetter/style.module.scss.d.ts +0 -7
  142. package/src/component/CustomSchemaForm/components/Setters/BooleanSetter/index.tsx +0 -32
  143. package/src/component/CustomSchemaForm/components/Setters/CSSValueSetter/index.tsx +0 -78
  144. package/src/component/CustomSchemaForm/components/Setters/CSSValueSetter/style.module.scss +0 -7
  145. package/src/component/CustomSchemaForm/components/Setters/CSSValueSetter/style.module.scss.d.ts +0 -6
  146. package/src/component/CustomSchemaForm/components/Setters/ExpressionSetter/index.tsx +0 -47
  147. package/src/component/CustomSchemaForm/components/Setters/FunctionSetter/defaultDts.ts +0 -28
  148. package/src/component/CustomSchemaForm/components/Setters/FunctionSetter/index.tsx +0 -93
  149. package/src/component/CustomSchemaForm/components/Setters/JSONSetter/index.tsx +0 -80
  150. package/src/component/CustomSchemaForm/components/Setters/NumberSetter/index.tsx +0 -34
  151. package/src/component/CustomSchemaForm/components/Setters/SelectSetter/index.tsx +0 -35
  152. package/src/component/CustomSchemaForm/components/Setters/ShapeSetter/index.tsx +0 -65
  153. package/src/component/CustomSchemaForm/components/Setters/StringSetter/index.tsx +0 -30
  154. package/src/component/CustomSchemaForm/components/Setters/TextAreaSetter/index.tsx +0 -31
  155. package/src/component/CustomSchemaForm/components/Setters/index.ts +0 -26
  156. package/src/component/CustomSchemaForm/components/Setters/type.ts +0 -18
  157. package/src/component/CustomSchemaForm/context.ts +0 -20
  158. package/src/component/CustomSchemaForm/index.tsx +0 -93
  159. package/src/component/CustomSchemaForm/style.module.scss +0 -15
  160. package/src/component/CustomSchemaForm/style.module.scss.d.ts +0 -11
  161. package/src/component/CustomSchemaForm/utils.ts +0 -13
  162. package/src/component/MonacoEditor/index.tsx +0 -81
  163. package/src/component/Workbench/index.tsx +0 -329
  164. package/src/component/Workbench/style.module.scss +0 -159
  165. package/src/component/Workbench/style.module.scss.d.ts +0 -25
  166. package/src/core/pluginManager.ts +0 -151
  167. package/src/i18n/en_US/index.ts +0 -5
  168. package/src/i18n/index.ts +0 -39
  169. package/src/i18n/zh_CN/index.ts +0 -5
  170. package/src/index.tsx +0 -150
  171. package/src/material/innerMaterial.ts +0 -343
  172. package/src/plugins/AdvancePanel/index.tsx +0 -191
  173. package/src/plugins/AdvancePanel/style.module.scss +0 -8
  174. package/src/plugins/AdvancePanel/style.module.scss.d.ts +0 -7
  175. package/src/plugins/ComponentLibrary/components/DragItem/index.tsx +0 -65
  176. package/src/plugins/ComponentLibrary/components/DragItem/style.module.scss +0 -58
  177. package/src/plugins/ComponentLibrary/components/DragItem/style.module.scss.d.ts +0 -9
  178. package/src/plugins/ComponentLibrary/components/ListView/index.tsx +0 -50
  179. package/src/plugins/ComponentLibrary/components/ListView/style.module.scss +0 -27
  180. package/src/plugins/ComponentLibrary/components/ListView/style.module.scss.d.ts +0 -12
  181. package/src/plugins/ComponentLibrary/index.tsx +0 -184
  182. package/src/plugins/ComponentLibrary/localize/en_US/index.ts +0 -3
  183. package/src/plugins/ComponentLibrary/localize/index.ts +0 -3
  184. package/src/plugins/ComponentLibrary/localize/zh_CN/index.ts +0 -3
  185. package/src/plugins/ComponentLibrary/style.module.scss +0 -31
  186. package/src/plugins/ComponentLibrary/style.module.scss.d.ts +0 -11
  187. package/src/plugins/ComponentLibrary/util.ts +0 -14
  188. package/src/plugins/ComponentStatePanel/index.tsx +0 -59
  189. package/src/plugins/Designer/components/DefaultSelectToolBar/index.tsx +0 -94
  190. package/src/plugins/Designer/components/DefaultSelectToolBar/style.module.scss +0 -59
  191. package/src/plugins/Designer/components/DefaultSelectToolBar/style.module.scss.d.ts +0 -11
  192. package/src/plugins/Designer/components/GhostView/index.tsx +0 -18
  193. package/src/plugins/Designer/config.ts +0 -1
  194. package/src/plugins/Designer/index.tsx +0 -61
  195. package/src/plugins/Designer/localize/en_US/index.ts +0 -3
  196. package/src/plugins/Designer/localize/index.ts +0 -3
  197. package/src/plugins/Designer/localize/zh_CN/index.ts +0 -3
  198. package/src/plugins/Designer/style.module.scss +0 -10
  199. package/src/plugins/Designer/style.module.scss.d.ts +0 -5
  200. package/src/plugins/Designer/util.ts +0 -18
  201. package/src/plugins/Designer/view.tsx +0 -225
  202. package/src/plugins/DisplaySourceSchema/index.tsx +0 -76
  203. package/src/plugins/GlobalStatePanel/index.tsx +0 -96
  204. package/src/plugins/GlobalStatePanel/localize/en_US/index.ts +0 -3
  205. package/src/plugins/GlobalStatePanel/localize/index.ts +0 -3
  206. package/src/plugins/GlobalStatePanel/localize/zh_CN/index.ts +0 -3
  207. package/src/plugins/GlobalStatePanel/style.module.scss +0 -8
  208. package/src/plugins/GlobalStatePanel/style.module.scss.d.ts +0 -5
  209. package/src/plugins/History/index.tsx +0 -110
  210. package/src/plugins/OutlineTree/components/TreeView/context.ts +0 -43
  211. package/src/plugins/OutlineTree/components/TreeView/dataStruct.ts +0 -58
  212. package/src/plugins/OutlineTree/components/TreeView/index.tsx +0 -376
  213. package/src/plugins/OutlineTree/components/TreeView/style.module.scss +0 -93
  214. package/src/plugins/OutlineTree/components/TreeView/style.module.scss.d.ts +0 -16
  215. package/src/plugins/OutlineTree/components/TreeView/treeNode.tsx +0 -271
  216. package/src/plugins/OutlineTree/index.tsx +0 -39
  217. package/src/plugins/OutlineTree/localize/en_US/index.ts +0 -3
  218. package/src/plugins/OutlineTree/localize/index.ts +0 -3
  219. package/src/plugins/OutlineTree/localize/zh_CN/index.ts +0 -3
  220. package/src/plugins/OutlineTree/util.tsx +0 -302
  221. package/src/plugins/PropertyPanel/index.tsx +0 -63
  222. package/src/plugins/PropertyPanel/style.module.scss +0 -12
  223. package/src/plugins/PropertyPanel/style.module.scss.d.ts +0 -10
  224. package/src/plugins/PropertyPanel/utils.ts +0 -13
  225. package/src/plugins/RightPanel/index.tsx +0 -30
  226. package/src/plugins/RightPanel/style.module.scss +0 -16
  227. package/src/plugins/RightPanel/style.module.scss.d.ts +0 -10
  228. package/src/plugins/RightPanel/view.tsx +0 -177
  229. package/src/plugins/VisualPanel/index.tsx +0 -185
  230. package/src/plugins/VisualPanel/style.module.scss +0 -17
  231. package/src/plugins/VisualPanelPlus/index.tsx +0 -103
  232. package/src/plugins/VisualPanelPlus/style.module.scss +0 -20
  233. package/src/plugins/VisualPanelPlus/style.module.scss.d.ts +0 -10
  234. package/src/plugins/index.tsx +0 -26
  235. package/src/stories/Button.jsx +0 -50
  236. package/src/stories/Button.stories.jsx +0 -40
  237. package/src/stories/Introduction.stories.mdx +0 -194
  238. package/src/stories/assets/code-brackets.svg +0 -1
  239. package/src/stories/assets/colors.svg +0 -1
  240. package/src/stories/assets/comments.svg +0 -1
  241. package/src/stories/assets/direction.svg +0 -1
  242. package/src/stories/assets/flow.svg +0 -1
  243. package/src/stories/assets/plugin.svg +0 -1
  244. package/src/stories/assets/repo.svg +0 -1
  245. package/src/stories/assets/stackalt.svg +0 -1
  246. package/src/stories/button.css +0 -30
  247. package/src/stories/plugins/CSSEditor.stories.tsx +0 -75
  248. package/src/stories/plugins/VisualPanelPlus.stories.tsx +0 -74
  249. package/src/style.d.ts +0 -2
  250. package/src/typing.d.ts +0 -9
  251. package/src/utils/css.ts +0 -88
  252. package/src/utils/defaultEngineConfig.tsx +0 -55
  253. package/src/utils/index.ts +0 -12
  254. package/src/utils/logger.ts +0 -4
  255. package/src/vite-env.d.ts +0 -1
  256. package/tsconfig.json +0 -32
  257. /package/{public → dist}/Engine.module.scss.d.ts +0 -0
  258. /package/{public → dist}/component/CSSEditor/style.module.scss.d.ts +0 -0
  259. /package/{public → dist}/component/CSSPropertiesEditor/style.module.scss.d.ts +0 -0
  260. /package/{public → dist}/component/CSSPropertiesVariableBindEditor/style.module.scss.d.ts +0 -0
  261. /package/{public → dist}/component/CustomSchemaForm/components/Form/Field/style.module.scss.d.ts +0 -0
  262. /package/{public → dist}/component/CustomSchemaForm/components/SetterSwitcher/style.module.scss.d.ts +0 -0
  263. /package/{public → dist}/component/CustomSchemaForm/components/Setters/ArraySetter/style.module.scss.d.ts +0 -0
  264. /package/{public → dist}/component/CustomSchemaForm/components/Setters/CSSValueSetter/style.module.scss.d.ts +0 -0
  265. /package/{public → dist}/component/CustomSchemaForm/style.module.scss.d.ts +0 -0
  266. /package/{public → dist}/component/Workbench/style.module.scss.d.ts +0 -0
  267. /package/{public → dist}/plugins/AdvancePanel/style.module.scss.d.ts +0 -0
  268. /package/{public → dist}/plugins/ComponentLibrary/components/DragItem/style.module.scss.d.ts +0 -0
  269. /package/{public → dist}/plugins/ComponentLibrary/components/ListView/style.module.scss.d.ts +0 -0
  270. /package/{public → dist}/plugins/ComponentLibrary/style.module.scss.d.ts +0 -0
  271. /package/{public → dist}/plugins/Designer/components/DefaultSelectToolBar/style.module.scss.d.ts +0 -0
  272. /package/{public → dist}/plugins/Designer/style.module.scss.d.ts +0 -0
  273. /package/{public → dist}/plugins/GlobalStatePanel/style.module.scss.d.ts +0 -0
  274. /package/{public → dist}/plugins/OutlineTree/components/TreeView/style.module.scss.d.ts +0 -0
  275. /package/{public → dist}/plugins/PropertyPanel/style.module.scss.d.ts +0 -0
  276. /package/{public → dist}/plugins/RightPanel/style.module.scss.d.ts +0 -0
  277. /package/{public → dist}/plugins/VisualPanelPlus/style.module.scss.d.ts +0 -0
@@ -1,25 +0,0 @@
1
- import globalClassNames from '../../style.d';
2
- declare const classNames: typeof globalClassNames & {
3
- readonly workbenchContainer: 'workbenchContainer';
4
- readonly topToolBarBox: 'topToolBarBox';
5
- readonly topToolBarView: 'topToolBarView';
6
- readonly bodyContent: 'bodyContent';
7
- readonly leftBox: 'leftBox';
8
- readonly pluginIconBar: 'pluginIconBar';
9
- readonly pluginIconItem: 'pluginIconItem';
10
- readonly active: 'active';
11
- readonly pluginPanelBoxResizeBox: 'pluginPanelBoxResizeBox';
12
- readonly pluginHeader: 'pluginHeader';
13
- readonly pluginNameText: 'pluginNameText';
14
- readonly closeBtn: 'closeBtn';
15
- readonly fixedBtn: 'fixedBtn';
16
- readonly pluginPanelBox: 'pluginPanelBox';
17
- readonly rightResizeBox: 'rightResizeBox';
18
- readonly arrowCursor: 'arrowCursor';
19
- readonly rightBox: 'rightBox';
20
- readonly centerBox: 'centerBox';
21
- readonly subTopToolbarBox: 'subTopToolbarBox';
22
- readonly canvasBox: 'canvasBox';
23
- readonly scrollBox: 'scrollBox';
24
- };
25
- export = classNames;
@@ -1,151 +0,0 @@
1
- import { Engine } from '@/index';
2
- import { AssetPackage, CPage } from '@chamn/model';
3
- import { i18n } from 'i18next';
4
- import mitt, { Emitter } from 'mitt';
5
- import { Workbench } from '../component/Workbench';
6
- import { CustomI18n } from '../i18n';
7
-
8
- export type PluginObj = {
9
- name: string;
10
- init: (ctx: CPluginCtx) => Promise<void>;
11
- destroy: (ctx: CPluginCtx) => Promise<void>;
12
- exports: (ctx: CPluginCtx) => any;
13
- meta: {
14
- engine: {
15
- version: string;
16
- };
17
- };
18
- };
19
-
20
- export type CPlugin = PluginObj | ((ctx: CPluginCtx) => PluginObj);
21
-
22
- type PluginManagerOptions = {
23
- getWorkbench: () => Workbench;
24
- emitter: Emitter<any>;
25
- pageModel: CPage;
26
- i18n: CustomI18n;
27
- assets: AssetPackage[];
28
- engine: Engine;
29
- };
30
-
31
- export type CPluginCtx<C = any> = {
32
- globalEmitter: Emitter<any>;
33
- config: C;
34
- pluginManager: PluginManager;
35
- pluginReadyOk: () => void;
36
- } & PluginManagerOptions;
37
-
38
- export type PluginInstance = {
39
- ctx: CPluginCtx;
40
- exports: any;
41
- source: PluginObj;
42
- ready: boolean;
43
- };
44
-
45
- export type CustomPluginHook = (pluginInstance: PluginInstance) => PluginInstance;
46
-
47
- export class PluginManager {
48
- plugins: Map<string, PluginInstance> = new Map();
49
- emitter: Emitter<any> = mitt();
50
- getWorkbench!: () => Workbench;
51
- pageModel!: CPage;
52
- i18n: CustomI18n;
53
- assets: AssetPackage[];
54
- engine: Engine;
55
- customPluginHooks: Record<string, CustomPluginHook[]> = {};
56
-
57
- constructor({ getWorkbench, emitter, pageModel, i18n, assets, engine }: PluginManagerOptions) {
58
- this.getWorkbench = getWorkbench;
59
- this.emitter = emitter;
60
- this.pageModel = pageModel;
61
- this.i18n = i18n;
62
- this.assets = assets;
63
- this.engine = engine;
64
- }
65
-
66
- customPlugin = (pluginName: string, customPluginHook: CustomPluginHook) => {
67
- const customPluginHooks = this.customPluginHooks;
68
- const hookList = customPluginHooks[pluginName] || [];
69
- hookList.push(customPluginHook);
70
- customPluginHooks[pluginName] = hookList;
71
- this.customPluginHooks = customPluginHooks;
72
- };
73
-
74
- createPluginCtx = () => {
75
- const ctx: CPluginCtx = {
76
- globalEmitter: this.emitter,
77
- emitter: mitt(),
78
- config: {},
79
- getWorkbench: this.getWorkbench,
80
- pluginManager: this,
81
- pageModel: this.pageModel,
82
- i18n: this.i18n,
83
- assets: this.assets,
84
- engine: this.engine,
85
- // eslint-disable-next-line @typescript-eslint/no-empty-function
86
- pluginReadyOk: () => {},
87
- };
88
- return ctx;
89
- };
90
-
91
- async add(plugin: CPlugin) {
92
- const ctx = this.createPluginCtx();
93
-
94
- let innerPlugin: PluginObj;
95
- if (typeof plugin === 'function') {
96
- innerPlugin = plugin(ctx);
97
- } else {
98
- innerPlugin = plugin;
99
- }
100
- let pluginCtx: PluginInstance = {
101
- source: innerPlugin,
102
- ctx: ctx,
103
- exports: innerPlugin.exports?.(ctx) || {},
104
- ready: false,
105
- };
106
- const customHookList = this.customPluginHooks[innerPlugin.name] || [];
107
- customHookList.forEach((cb) => {
108
- pluginCtx = cb(pluginCtx);
109
- });
110
- ctx.pluginReadyOk = () => {
111
- this.emitter.emit(`${innerPlugin.name}:ready`);
112
- pluginCtx.ready = true;
113
- };
114
- this.plugins.set(innerPlugin.name, pluginCtx);
115
- await innerPlugin.init(ctx);
116
- }
117
-
118
- async get(pluginName: string) {
119
- const pluginInstance = this.plugins.get(pluginName);
120
- if (pluginInstance?.ready) {
121
- return pluginInstance;
122
- } else {
123
- await this.onPluginReadyOk(pluginName);
124
- return pluginInstance;
125
- }
126
- return;
127
- }
128
-
129
- async remove(name: string) {
130
- const p = this.plugins.get(name);
131
- await p?.source.destroy(p.ctx);
132
- this.plugins.delete(name);
133
- }
134
-
135
- onPluginReadyOk(pluginName: string, cb?: (pluginHandle: PluginInstance) => void) {
136
- const pluginObj = this.plugins.get(pluginName);
137
- if (pluginObj?.ready) {
138
- return;
139
- }
140
-
141
- return new Promise<PluginInstance>((resolve) => {
142
- this.emitter.on(`${pluginName}:ready`, () => {
143
- if (pluginObj) {
144
- pluginObj.ready = true;
145
- cb?.(pluginObj);
146
- resolve(pluginObj);
147
- }
148
- });
149
- });
150
- }
151
- }
@@ -1,5 +0,0 @@
1
- export const en_US = {
2
- translation: {
3
- 'Welcome to React': 'Welcome to React and react-i18next',
4
- },
5
- };
package/src/i18n/index.ts DELETED
@@ -1,39 +0,0 @@
1
- import i18n from 'i18next';
2
- import { initReactI18next } from 'react-i18next';
3
- import { zh_CN } from './zh_CN';
4
- import { en_US } from './en_US';
5
-
6
- // the translations
7
- // (tip move them in a JSON file and import them,
8
- // or even better, manage them separated from your code: https://react.i18next.com/guides/multiple-translation-files)
9
- const resources = {
10
- zh_CN,
11
- en_US,
12
- };
13
-
14
- i18n
15
- .use(initReactI18next) // passes i18n down to react-i18next
16
- .init({
17
- resources,
18
- lng: 'zh_CN', // language to use, more information here: https://www.i18next.com/overview/configuration-options#languages-namespaces-resources
19
- // you can use the i18n.changeLanguage function to change the language manually: https://www.i18next.com/overview/api#changelanguage
20
- // if you're using a language detector, do not define the lng option
21
- react: {
22
- bindI18n: 'added languageChanged',
23
- bindI18nStore: 'added',
24
- },
25
- });
26
-
27
- export type CustomI18n = typeof i18n & {
28
- update: () => void;
29
- };
30
-
31
- const customI18n: CustomI18n = i18n as any;
32
-
33
- customI18n.update = () => {
34
- setTimeout(() => {
35
- i18n.emit('added');
36
- }, 0);
37
- };
38
-
39
- export default customI18n;
@@ -1,5 +0,0 @@
1
- export const zh_CN = {
2
- translation: {
3
- 'Welcome to React': '欢迎使用 React',
4
- },
5
- };
package/src/index.tsx DELETED
@@ -1,150 +0,0 @@
1
- import React from 'react';
2
- import { Workbench } from './component/Workbench';
3
- import styles from './Engine.module.scss';
4
- import i18n from './i18n/index';
5
- import { CPlugin, PluginManager } from './core/pluginManager';
6
- import mitt, { Emitter } from 'mitt';
7
- import { AssetPackage, CMaterialType, CNode, CPage, CPageDataType, CRootNode, EmptyPage } from '@chamn/model';
8
- import { defaultRender, beforeInitRender } from './utils/defaultEngineConfig';
9
-
10
- export type EnginContext = {
11
- pluginManager: PluginManager;
12
- engine: Engine;
13
- };
14
-
15
- export type EngineProps = {
16
- plugins: CPlugin[];
17
- schema: CPageDataType;
18
- material?: CMaterialType[];
19
- assetPackagesList?: AssetPackage[];
20
- beforePluginRun?: (options: { pluginManager: PluginManager }) => void;
21
- onReady?: (ctx: EnginContext) => void;
22
- /** 渲染器 umd 格式 js 地址, 默认 ./render.umd.js */
23
- renderJSUrl?: string;
24
- };
25
-
26
- export class Engine extends React.Component<EngineProps> {
27
- currentSelectNode: CNode | CRootNode | null;
28
-
29
- pluginManager!: PluginManager;
30
- workbenchRef = React.createRef<Workbench>();
31
- pageSchema: CPageDataType | undefined;
32
- pageModel: CPage;
33
- material: CMaterialType[] | undefined;
34
- emitter: Emitter<any>;
35
-
36
- constructor(props: EngineProps) {
37
- super(props);
38
- this.pageSchema = props.schema;
39
- this.material = props.material;
40
- this.currentSelectNode = null;
41
- (window as any).__CHAMELEON_ENG__ = this;
42
-
43
- try {
44
- this.pageModel = new CPage(this.pageSchema, {
45
- materials: this.material || [],
46
- assetPackagesList: props.assetPackagesList || [],
47
- });
48
- } catch (e) {
49
- console.error(e);
50
- this.pageModel = new CPage(EmptyPage);
51
- }
52
- this.emitter = mitt();
53
- }
54
-
55
- updateCurrentSelectNode(node: CNode | CRootNode) {
56
- this.currentSelectNode = node;
57
- this.emitter.emit('onSelectNodeChange', {
58
- node,
59
- });
60
- }
61
-
62
- async componentDidMount() {
63
- (window as any).__C_ENGINE__ = this;
64
- const plugins = this.props.plugins;
65
- const pluginManager = new PluginManager({
66
- engine: this,
67
- getWorkbench: () => this.workbenchRef.current!,
68
- emitter: this.emitter,
69
- pageModel: this.pageModel,
70
- i18n,
71
- assets: this.props.assetPackagesList || [],
72
- });
73
- this.pluginManager = pluginManager;
74
- // 使用默认的渲染策略
75
- pluginManager.customPlugin('Designer', (pluginInstance) => {
76
- pluginInstance.ctx.config.beforeInitRender = beforeInitRender;
77
- pluginInstance.ctx.config.customRender = defaultRender;
78
- return pluginInstance;
79
- });
80
- this.props.beforePluginRun?.({
81
- pluginManager: this.pluginManager,
82
- });
83
-
84
- const pList = plugins.map((p) => {
85
- return this.pluginManager.add(p);
86
- });
87
-
88
- await Promise.all(pList);
89
-
90
- this.pageModel.emitter.on('onReloadPage', () => {
91
- if (!this.currentSelectNode) {
92
- return;
93
- }
94
- const newSelectNode = this.pageModel.getNode(this.currentSelectNode?.id);
95
- if (newSelectNode) {
96
- this.updateCurrentSelectNode(newSelectNode);
97
- }
98
- });
99
-
100
- this.props.onReady?.({
101
- pluginManager: this.pluginManager,
102
- engine: this,
103
- });
104
- }
105
-
106
- getActiveNode() {
107
- if (!this.currentSelectNode?.id) {
108
- return null;
109
- }
110
- const node = this.pageModel.getNode(this.currentSelectNode.id);
111
- this.currentSelectNode = node;
112
- return node;
113
- }
114
-
115
- updatePage = (page: CPageDataType) => {
116
- this.emitter.emit('updatePage');
117
- console.log(page);
118
- };
119
-
120
- updateDesignerAssets = (assets: AssetPackage[]) => {
121
- console.log('updateDesignerAssets', assets);
122
- };
123
-
124
- updateMaterial = (material: CMaterialType[]) => {
125
- this.emitter.emit('updateMaterial');
126
- console.log(material);
127
- };
128
-
129
- refresh = () => {
130
- this.emitter.emit('refresh');
131
- console.log('refresh engine');
132
- };
133
-
134
- getWorkbench = () => {
135
- return this.workbenchRef.current;
136
- };
137
-
138
- render() {
139
- return (
140
- <div className={styles.engineContainer}>
141
- <Workbench ref={this.workbenchRef} emitter={this.emitter} />
142
- </div>
143
- );
144
- }
145
- }
146
-
147
- export * as plugins from './plugins';
148
- export * from '@chamn/layout';
149
-
150
- export * from './material/innerMaterial';