light-chaser-pro 1.0.0

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 (730) hide show
  1. package/.trae/.ignore +1 -0
  2. package/LICENSE +21 -0
  3. package/README.md +99 -0
  4. package/UI_DESIGN_SPEC.md +130 -0
  5. package/deploy.bat +98 -0
  6. package/doc//344/277/256/345/244/215/347/224/273/345/270/203/350/207/252/351/200/202/345/272/224bug/350/203/214/345/220/216/347/232/204/347/220/206/350/256/272/347/237/245/350/257/206.md +291 -0
  7. package/light-chaser-app/.dockerignore +6 -0
  8. package/light-chaser-app/.eslintrc.cjs +19 -0
  9. package/light-chaser-app/Dockerfile +40 -0
  10. package/light-chaser-app/command.md +23 -0
  11. package/light-chaser-app/index.html +30 -0
  12. package/light-chaser-app/nginx.conf +31 -0
  13. package/light-chaser-app/package.json +74 -0
  14. package/light-chaser-app/public/favicon.ico +0 -0
  15. package/light-chaser-app/release.html +38 -0
  16. package/light-chaser-app/src/api/ReponseHandler.ts +49 -0
  17. package/light-chaser-app/src/api/RoleApi.ts +28 -0
  18. package/light-chaser-app/src/api/engineering/AbstractApi.ts +75 -0
  19. package/light-chaser-app/src/api/engineering/ApiManager.ts +26 -0
  20. package/light-chaser-app/src/api/engineering/BaseApi.ts +131 -0
  21. package/light-chaser-app/src/api/engineering/PureShowApi.ts +28 -0
  22. package/light-chaser-app/src/comps/antd/area-base/AntdBaseAreaConfig.tsx +269 -0
  23. package/light-chaser-app/src/comps/antd/area-base/AntdBaseAreaDefinition.ts +232 -0
  24. package/light-chaser-app/src/comps/antd/area-base/base-area.png +0 -0
  25. package/light-chaser-app/src/comps/antd/area-percent/AntdPercentAreaDefinition.ts +241 -0
  26. package/light-chaser-app/src/comps/antd/area-percent/percent-area.png +0 -0
  27. package/light-chaser-app/src/comps/antd/area-stack/AntdStackAreaDefinition.ts +212 -0
  28. package/light-chaser-app/src/comps/antd/area-stack/stack-area.png +0 -0
  29. package/light-chaser-app/src/comps/antd/bar-base/AntdBaseBarDefinition.ts +134 -0
  30. package/light-chaser-app/src/comps/antd/bar-base/base-bar.png +0 -0
  31. package/light-chaser-app/src/comps/antd/bar-group/AntdGroupBarDefinition.ts +160 -0
  32. package/light-chaser-app/src/comps/antd/bar-group/group-bar.png +0 -0
  33. package/light-chaser-app/src/comps/antd/bar-percent/AntdPercentBarController.ts +21 -0
  34. package/light-chaser-app/src/comps/antd/bar-percent/AntdPercentBarDefinition.ts +167 -0
  35. package/light-chaser-app/src/comps/antd/bar-percent/percent-bar.png +0 -0
  36. package/light-chaser-app/src/comps/antd/bar-range/AntdRangeBarDefinition.ts +180 -0
  37. package/light-chaser-app/src/comps/antd/bar-range/range-bar.png +0 -0
  38. package/light-chaser-app/src/comps/antd/bar-stack/AntdStackBarDefinition.ts +144 -0
  39. package/light-chaser-app/src/comps/antd/bar-stack/stack-bar.png +0 -0
  40. package/light-chaser-app/src/comps/antd/column-base/AntdBaseColumnDefinition.ts +144 -0
  41. package/light-chaser-app/src/comps/antd/column-base/base-column.png +0 -0
  42. package/light-chaser-app/src/comps/antd/column-group/AntdGroupColumnDefinition.ts +154 -0
  43. package/light-chaser-app/src/comps/antd/column-group/group-column.png +0 -0
  44. package/light-chaser-app/src/comps/antd/column-percent/AntdPercentColumnDefinition.ts +168 -0
  45. package/light-chaser-app/src/comps/antd/column-percent/percent-column.png +0 -0
  46. package/light-chaser-app/src/comps/antd/column-range/AntdRangeColumnDefinition.ts +178 -0
  47. package/light-chaser-app/src/comps/antd/column-range/range-column.png +0 -0
  48. package/light-chaser-app/src/comps/antd/column-stack/AntdStackColumnDefinition.ts +152 -0
  49. package/light-chaser-app/src/comps/antd/column-stack/stack-column.png +0 -0
  50. package/light-chaser-app/src/comps/antd/g2plot-custom/G2PlotCustomConfig.tsx +80 -0
  51. package/light-chaser-app/src/comps/antd/g2plot-custom/G2PlotCustomController.ts +83 -0
  52. package/light-chaser-app/src/comps/antd/g2plot-custom/G2PlotCustomDefinition.ts +160 -0
  53. package/light-chaser-app/src/comps/antd/g2plot-custom/g2-plot-custom.png +0 -0
  54. package/light-chaser-app/src/comps/antd/gauge/AntdGaugeConfig.tsx +423 -0
  55. package/light-chaser-app/src/comps/antd/gauge/AntdGaugeController.ts +110 -0
  56. package/light-chaser-app/src/comps/antd/gauge/AntdGaugeDefinition.ts +162 -0
  57. package/light-chaser-app/src/comps/antd/gauge/gauge.png +0 -0
  58. package/light-chaser-app/src/comps/antd/line-base/AntdBaseLineDefinition.ts +147 -0
  59. package/light-chaser-app/src/comps/antd/line-base/base-line.png +0 -0
  60. package/light-chaser-app/src/comps/antd/line-multi/AntdMultiLineConfig.tsx +241 -0
  61. package/light-chaser-app/src/comps/antd/line-multi/AntdMultiLineDefinition.ts +244 -0
  62. package/light-chaser-app/src/comps/antd/line-multi/multi-line.png +0 -0
  63. package/light-chaser-app/src/comps/antd/line-step/AntdStepLineDefinition.ts +171 -0
  64. package/light-chaser-app/src/comps/antd/line-step/step-line.png +0 -0
  65. package/light-chaser-app/src/comps/antd/liquid/AntdLiquidConfig.tsx +338 -0
  66. package/light-chaser-app/src/comps/antd/liquid/AntdLiquidController.ts +106 -0
  67. package/light-chaser-app/src/comps/antd/liquid/AntdLiquidDefinition.ts +152 -0
  68. package/light-chaser-app/src/comps/antd/liquid/liquid.png +0 -0
  69. package/light-chaser-app/src/comps/antd/pie/AntdPieController.ts +74 -0
  70. package/light-chaser-app/src/comps/antd/pie/AntdPieDefinition.ts +165 -0
  71. package/light-chaser-app/src/comps/antd/pie/AntdPieStyleConfig.tsx +528 -0
  72. package/light-chaser-app/src/comps/antd/pie/pie.png +0 -0
  73. package/light-chaser-app/src/comps/antd/radar/AntdRadarController.ts +110 -0
  74. package/light-chaser-app/src/comps/antd/radar/AntdRadarDefinition.ts +187 -0
  75. package/light-chaser-app/src/comps/antd/radar/AntdRadarStyleConfig.tsx +270 -0
  76. package/light-chaser-app/src/comps/antd/radar/radar.png +0 -0
  77. package/light-chaser-app/src/comps/antd/radial-bar-base/AntdBaseRadialBarController.ts +79 -0
  78. package/light-chaser-app/src/comps/antd/radial-bar-base/AntdBaseRadialBarDefinition.ts +124 -0
  79. package/light-chaser-app/src/comps/antd/radial-bar-base/AntdBaseRadialBarStyleConfig.tsx +275 -0
  80. package/light-chaser-app/src/comps/antd/radial-bar-base/base-radial-bar.png +0 -0
  81. package/light-chaser-app/src/comps/antd/ring-progress/AntdRingProgressConfig.tsx +334 -0
  82. package/light-chaser-app/src/comps/antd/ring-progress/AntdRingProgressController.ts +85 -0
  83. package/light-chaser-app/src/comps/antd/ring-progress/AntdRingProgressDefinition.ts +138 -0
  84. package/light-chaser-app/src/comps/antd/ring-progress/ring-progress.png +0 -0
  85. package/light-chaser-app/src/comps/antd/rose-base/AntdBaseRoseDefinition.ts +102 -0
  86. package/light-chaser-app/src/comps/antd/rose-base/base-rose.png +0 -0
  87. package/light-chaser-app/src/comps/antd/rose-group/AntdGroupRoseDefinition.ts +127 -0
  88. package/light-chaser-app/src/comps/antd/rose-group/group-rose.png +0 -0
  89. package/light-chaser-app/src/comps/antd/rose-stack/AntdStackRoseDefinition.ts +142 -0
  90. package/light-chaser-app/src/comps/antd/rose-stack/stack-rose.png +0 -0
  91. package/light-chaser-app/src/comps/antd/scatter-bubble/AntdScatterBubbleDefinition.ts +192 -0
  92. package/light-chaser-app/src/comps/antd/scatter-bubble/scatter-bubble.png +0 -0
  93. package/light-chaser-app/src/comps/antd/scatter-point/AntdScatterPointDefinition.ts +143 -0
  94. package/light-chaser-app/src/comps/antd/scatter-point/scatter-point.png +0 -0
  95. package/light-chaser-app/src/comps/antd/word-cloud/AntdWordCloudConfig.tsx +167 -0
  96. package/light-chaser-app/src/comps/antd/word-cloud/AntdWordCloudController.ts +75 -0
  97. package/light-chaser-app/src/comps/antd/word-cloud/AntdWordCloudDefinition.ts +198 -0
  98. package/light-chaser-app/src/comps/antd/word-cloud/word-cloud.png +0 -0
  99. package/light-chaser-app/src/comps/antd-common/AntdBaseDesignerController.ts +96 -0
  100. package/light-chaser-app/src/comps/antd-common/AntdCommonDefinition.ts +51 -0
  101. package/light-chaser-app/src/comps/antd-common/AntdCommonUtil.ts +27 -0
  102. package/light-chaser-app/src/comps/antd-common/area/AbstractAreaDefinition.ts +53 -0
  103. package/light-chaser-app/src/comps/antd-common/area/AntdAreaCommonConfig.tsx +276 -0
  104. package/light-chaser-app/src/comps/antd-common/area/AntdCommonAreaController.ts +108 -0
  105. package/light-chaser-app/src/comps/antd-common/bar/AbstractBarDefinition.ts +52 -0
  106. package/light-chaser-app/src/comps/antd-common/bar/AntdBarCommonConfig.tsx +177 -0
  107. package/light-chaser-app/src/comps/antd-common/bar/AntdCommonBarController.ts +98 -0
  108. package/light-chaser-app/src/comps/antd-common/column/AbstractColumnDefinition.ts +51 -0
  109. package/light-chaser-app/src/comps/antd-common/column/AntdColumnCommonConfig.tsx +185 -0
  110. package/light-chaser-app/src/comps/antd-common/column/AntdCommonColumnController.ts +99 -0
  111. package/light-chaser-app/src/comps/antd-common/config/AntdFragment.tsx +40 -0
  112. package/light-chaser-app/src/comps/antd-common/config/axis/AxisConfig.tsx +555 -0
  113. package/light-chaser-app/src/comps/antd-common/config/legend/AntdLegend.tsx +279 -0
  114. package/light-chaser-app/src/comps/antd-common/config/legend/Legend.less +68 -0
  115. package/light-chaser-app/src/comps/antd-common/config/tooltip/G2Tooltip.tsx +62 -0
  116. package/light-chaser-app/src/comps/antd-common/line/AbstractLineDefinition.ts +53 -0
  117. package/light-chaser-app/src/comps/antd-common/line/AntdCommonLineController.ts +109 -0
  118. package/light-chaser-app/src/comps/antd-common/line/AntdLineCommonConfig.tsx +229 -0
  119. package/light-chaser-app/src/comps/antd-common/rose/AbstractRoseDefinition.ts +52 -0
  120. package/light-chaser-app/src/comps/antd-common/rose/AntdCommonRoseController.ts +67 -0
  121. package/light-chaser-app/src/comps/antd-common/rose/AntdRoseCommonConfig.tsx +279 -0
  122. package/light-chaser-app/src/comps/antd-common/scatter/AbstractScatterDefinition.ts +51 -0
  123. package/light-chaser-app/src/comps/antd-common/scatter/AntdCommonScatterController.ts +96 -0
  124. package/light-chaser-app/src/comps/antd-common/scatter/AntdScatterCommonConfig.tsx +210 -0
  125. package/light-chaser-app/src/comps/antd-common/types.ts +82 -0
  126. package/light-chaser-app/src/comps/antd-common/util/G2ColorUtil.ts +129 -0
  127. package/light-chaser-app/src/comps/common-component/animation-config/AnimationConfig.less +23 -0
  128. package/light-chaser-app/src/comps/common-component/animation-config/AnimationConfig.tsx +26 -0
  129. package/light-chaser-app/src/comps/common-component/base-info/BaseInfo.tsx +238 -0
  130. package/light-chaser-app/src/comps/common-component/base-info/BaseInfoStore.ts +36 -0
  131. package/light-chaser-app/src/comps/common-component/config-code/ConfigCode.tsx +62 -0
  132. package/light-chaser-app/src/comps/common-component/data-config/DataConfig.tsx +130 -0
  133. package/light-chaser-app/src/comps/common-component/data-source-config/ApiDataConfig.tsx +285 -0
  134. package/light-chaser-app/src/comps/common-component/data-source-config/CommonApiConfig.tsx +210 -0
  135. package/light-chaser-app/src/comps/common-component/data-source-config/DataSourceConfig.less +19 -0
  136. package/light-chaser-app/src/comps/common-component/data-source-config/DataSourceConfig.tsx +151 -0
  137. package/light-chaser-app/src/comps/common-component/data-source-config/DatabaseConfig.tsx +241 -0
  138. package/light-chaser-app/src/comps/common-component/data-source-config/GlobalVariableConfig.tsx +178 -0
  139. package/light-chaser-app/src/comps/common-component/data-source-config/MQTTConfig.tsx +311 -0
  140. package/light-chaser-app/src/comps/common-component/data-source-config/StaticDataConfig.tsx +156 -0
  141. package/light-chaser-app/src/comps/common-component/data-source-config/WebSocketConfig.tsx +183 -0
  142. package/light-chaser-app/src/comps/common-component/filter-config/FilterConfig.less +18 -0
  143. package/light-chaser-app/src/comps/common-component/filter-config/FilterConfig.tsx +175 -0
  144. package/light-chaser-app/src/comps/common-component/floating-modal/FloatingModal.less +116 -0
  145. package/light-chaser-app/src/comps/common-component/floating-modal/FloatingModal.tsx +166 -0
  146. package/light-chaser-app/src/comps/common-component/schema-fragment/SchemaFragment.ts +137 -0
  147. package/light-chaser-app/src/comps/common-component/theme-config/ThemeConfig.tsx +57 -0
  148. package/light-chaser-app/src/comps/common-component/theme-config/theme-editor/ThemeEditor.less +189 -0
  149. package/light-chaser-app/src/comps/common-component/theme-config/theme-editor/ThemeEditor.tsx +199 -0
  150. package/light-chaser-app/src/comps/common-component/theme-config/theme-item/ColorPreviewItem.less +16 -0
  151. package/light-chaser-app/src/comps/common-component/theme-config/theme-item/ColorPreviewItem.tsx +16 -0
  152. package/light-chaser-app/src/comps/common-component/theme-config/theme-item/ThemeItem.less +82 -0
  153. package/light-chaser-app/src/comps/common-component/theme-config/theme-item/ThemeItem.tsx +66 -0
  154. package/light-chaser-app/src/comps/common-component/theme-config/theme-list/ThemeList.tsx +66 -0
  155. package/light-chaser-app/src/comps/echarts/EChartsConfig.tsx +80 -0
  156. package/light-chaser-app/src/comps/echarts/EChartsController.ts +121 -0
  157. package/light-chaser-app/src/comps/echarts/EChartsCustomDataUpdateConfig.tsx +80 -0
  158. package/light-chaser-app/src/comps/echarts/EChartsDefinition.ts +186 -0
  159. package/light-chaser-app/src/comps/echarts/echarts.png +0 -0
  160. package/light-chaser-app/src/comps/group-layer/GroupLayer.tsx +90 -0
  161. package/light-chaser-app/src/comps/group-layer/GroupLayerController.ts +64 -0
  162. package/light-chaser-app/src/comps/group-layer/GroupLayerDefinition.ts +95 -0
  163. package/light-chaser-app/src/comps/lc/base-button/BaseButtonComponent.less +105 -0
  164. package/light-chaser-app/src/comps/lc/base-button/BaseButtonComponent.tsx +81 -0
  165. package/light-chaser-app/src/comps/lc/base-button/BaseButtonConfig.tsx +186 -0
  166. package/light-chaser-app/src/comps/lc/base-button/BaseButtonController.ts +75 -0
  167. package/light-chaser-app/src/comps/lc/base-button/BaseButtonDefinition.ts +112 -0
  168. package/light-chaser-app/src/comps/lc/base-button/base-button.png +0 -0
  169. package/light-chaser-app/src/comps/lc/base-color-block/BaseColorBlockComponent.tsx +65 -0
  170. package/light-chaser-app/src/comps/lc/base-color-block/BaseColorBlockConfig.tsx +97 -0
  171. package/light-chaser-app/src/comps/lc/base-color-block/BaseColorBlockController.ts +69 -0
  172. package/light-chaser-app/src/comps/lc/base-color-block/BaseColorBlockDefinition.ts +95 -0
  173. package/light-chaser-app/src/comps/lc/base-color-block/base-color-block.png +0 -0
  174. package/light-chaser-app/src/comps/lc/base-iframe/BaseIframeComponent.tsx +65 -0
  175. package/light-chaser-app/src/comps/lc/base-iframe/BaseIframeConfig.tsx +45 -0
  176. package/light-chaser-app/src/comps/lc/base-iframe/BaseIframeController.ts +57 -0
  177. package/light-chaser-app/src/comps/lc/base-iframe/BaseIframeDefinition.ts +77 -0
  178. package/light-chaser-app/src/comps/lc/base-iframe/base-iframe.png +0 -0
  179. package/light-chaser-app/src/comps/lc/base-image/BaseImageComponent.tsx +86 -0
  180. package/light-chaser-app/src/comps/lc/base-image/BaseImageConfig.tsx +100 -0
  181. package/light-chaser-app/src/comps/lc/base-image/BaseImageController.ts +72 -0
  182. package/light-chaser-app/src/comps/lc/base-image/BaseImageDefinition.ts +89 -0
  183. package/light-chaser-app/src/comps/lc/base-image/baseImage.png +0 -0
  184. package/light-chaser-app/src/comps/lc/base-input/BaseInputComponent.less +44 -0
  185. package/light-chaser-app/src/comps/lc/base-input/BaseInputComponent.tsx +92 -0
  186. package/light-chaser-app/src/comps/lc/base-input/BaseInputConfig.tsx +173 -0
  187. package/light-chaser-app/src/comps/lc/base-input/BaseInputController.ts +77 -0
  188. package/light-chaser-app/src/comps/lc/base-input/BaseInputDefinition.ts +114 -0
  189. package/light-chaser-app/src/comps/lc/base-input/base-input.png +0 -0
  190. package/light-chaser-app/src/comps/lc/base-select/BaseSelectComponent.less +17 -0
  191. package/light-chaser-app/src/comps/lc/base-select/BaseSelectComponent.tsx +91 -0
  192. package/light-chaser-app/src/comps/lc/base-select/BaseSelectConfig.tsx +182 -0
  193. package/light-chaser-app/src/comps/lc/base-select/BaseSelectController.ts +92 -0
  194. package/light-chaser-app/src/comps/lc/base-select/BaseSelectDefinition.ts +116 -0
  195. package/light-chaser-app/src/comps/lc/base-select/base-select.png +0 -0
  196. package/light-chaser-app/src/comps/lc/base-switch/BaseSwitchComponent.less +9 -0
  197. package/light-chaser-app/src/comps/lc/base-switch/BaseSwitchComponent.tsx +190 -0
  198. package/light-chaser-app/src/comps/lc/base-switch/BaseSwitchController.ts +104 -0
  199. package/light-chaser-app/src/comps/lc/base-switch/BaseSwitchDefinition.ts +134 -0
  200. package/light-chaser-app/src/comps/lc/base-switch/BaseSwitchStyleConfig.tsx +187 -0
  201. package/light-chaser-app/src/comps/lc/base-switch/base-switch.png +0 -0
  202. package/light-chaser-app/src/comps/lc/base-tab/BaseTabComponent.less +90 -0
  203. package/light-chaser-app/src/comps/lc/base-tab/BaseTabComponent.tsx +240 -0
  204. package/light-chaser-app/src/comps/lc/base-tab/BaseTabController.ts +112 -0
  205. package/light-chaser-app/src/comps/lc/base-tab/BaseTabDefinition.ts +137 -0
  206. package/light-chaser-app/src/comps/lc/base-tab/BaseTabStyleConfig.tsx +278 -0
  207. package/light-chaser-app/src/comps/lc/base-tab/tab.jpg +0 -0
  208. package/light-chaser-app/src/comps/lc/base-table/BaseTableComponent.less +55 -0
  209. package/light-chaser-app/src/comps/lc/base-table/BaseTableComponent.tsx +214 -0
  210. package/light-chaser-app/src/comps/lc/base-table/BaseTableConfig.tsx +252 -0
  211. package/light-chaser-app/src/comps/lc/base-table/BaseTableController.ts +72 -0
  212. package/light-chaser-app/src/comps/lc/base-table/BaseTableDefinition.ts +185 -0
  213. package/light-chaser-app/src/comps/lc/base-table/base-table.png +0 -0
  214. package/light-chaser-app/src/comps/lc/base-text/BaseTextComponent.less +57 -0
  215. package/light-chaser-app/src/comps/lc/base-text/BaseTextComponent.tsx +124 -0
  216. package/light-chaser-app/src/comps/lc/base-text/BaseTextConfig.tsx +255 -0
  217. package/light-chaser-app/src/comps/lc/base-text/BaseTextController.ts +79 -0
  218. package/light-chaser-app/src/comps/lc/base-text/BaseTextDefinition.ts +102 -0
  219. package/light-chaser-app/src/comps/lc/base-text/base-text.png +0 -0
  220. package/light-chaser-app/src/comps/lc/base-video/BaseVideoComponent.tsx +64 -0
  221. package/light-chaser-app/src/comps/lc/base-video/BaseVideoConfig.tsx +43 -0
  222. package/light-chaser-app/src/comps/lc/base-video/BaseVideoController.ts +68 -0
  223. package/light-chaser-app/src/comps/lc/base-video/BaseVideoDefinition.ts +86 -0
  224. package/light-chaser-app/src/comps/lc/base-video/baseVideo.png +0 -0
  225. package/light-chaser-app/src/comps/lc/carousel/CarouselComponent.less +17 -0
  226. package/light-chaser-app/src/comps/lc/carousel/CarouselComponent.tsx +80 -0
  227. package/light-chaser-app/src/comps/lc/carousel/CarouselConfig.tsx +69 -0
  228. package/light-chaser-app/src/comps/lc/carousel/CarouselController.ts +62 -0
  229. package/light-chaser-app/src/comps/lc/carousel/CarouselDefinition.ts +91 -0
  230. package/light-chaser-app/src/comps/lc/carousel/carousel.png +0 -0
  231. package/light-chaser-app/src/comps/lc/date-time/DateTimeComponent.less +16 -0
  232. package/light-chaser-app/src/comps/lc/date-time/DateTimeComponent.tsx +106 -0
  233. package/light-chaser-app/src/comps/lc/date-time/DateTimeConfig.tsx +163 -0
  234. package/light-chaser-app/src/comps/lc/date-time/DateTimeController.ts +70 -0
  235. package/light-chaser-app/src/comps/lc/date-time/DateTimeDefinition.ts +93 -0
  236. package/light-chaser-app/src/comps/lc/date-time/date-time.png +0 -0
  237. package/light-chaser-app/src/comps/lc/date-time-picker/DateTimePickerComponent.less +15 -0
  238. package/light-chaser-app/src/comps/lc/date-time-picker/DateTimePickerComponent.tsx +259 -0
  239. package/light-chaser-app/src/comps/lc/date-time-picker/DateTimePickerConfig.tsx +219 -0
  240. package/light-chaser-app/src/comps/lc/date-time-picker/DateTimePickerController.ts +114 -0
  241. package/light-chaser-app/src/comps/lc/date-time-picker/DateTimePickerDefinition.ts +170 -0
  242. package/light-chaser-app/src/comps/lc/date-time-picker/datetime-picker.jpg +0 -0
  243. package/light-chaser-app/src/comps/lc/digital-flipper/DigitalFlipperComponent.tsx +106 -0
  244. package/light-chaser-app/src/comps/lc/digital-flipper/DigitalFlipperConfig.tsx +197 -0
  245. package/light-chaser-app/src/comps/lc/digital-flipper/DigitalFlipperController.ts +76 -0
  246. package/light-chaser-app/src/comps/lc/digital-flipper/DigitalFlipperDefinition.ts +99 -0
  247. package/light-chaser-app/src/comps/lc/digital-flipper/digital-flipper.png +0 -0
  248. package/light-chaser-app/src/comps/lc/flv-player/FlvPlayerComponent.tsx +89 -0
  249. package/light-chaser-app/src/comps/lc/flv-player/FlvPlayerConfig.tsx +44 -0
  250. package/light-chaser-app/src/comps/lc/flv-player/FlvPlayerController.ts +56 -0
  251. package/light-chaser-app/src/comps/lc/flv-player/FlvPlayerDefinition.ts +89 -0
  252. package/light-chaser-app/src/comps/lc/flv-player/flv-player.png +0 -0
  253. package/light-chaser-app/src/comps/lc/four-angle-glow-border/FourAngleGloeBorder.less +64 -0
  254. package/light-chaser-app/src/comps/lc/four-angle-glow-border/FourAngleGlowBorder.tsx +64 -0
  255. package/light-chaser-app/src/comps/lc/four-angle-glow-border/FourAngleGlowBorderConfig.tsx +67 -0
  256. package/light-chaser-app/src/comps/lc/four-angle-glow-border/FourAngleGlowBorderController.ts +71 -0
  257. package/light-chaser-app/src/comps/lc/four-angle-glow-border/FourAngleGlowBorderDefinition.ts +91 -0
  258. package/light-chaser-app/src/comps/lc/four-angle-glow-border/four-angle-glow-border.png +0 -0
  259. package/light-chaser-app/src/comps/lc/hls-player/HlsPlayerComponent.tsx +90 -0
  260. package/light-chaser-app/src/comps/lc/hls-player/HlsPlayerConfig.tsx +44 -0
  261. package/light-chaser-app/src/comps/lc/hls-player/HlsPlayerController.ts +51 -0
  262. package/light-chaser-app/src/comps/lc/hls-player/HlsPlayerDefinition.ts +89 -0
  263. package/light-chaser-app/src/comps/lc/hls-player/hls-player.png +0 -0
  264. package/light-chaser-app/src/comps/lc/screen-reference/ScreenReferenceComponent.tsx +144 -0
  265. package/light-chaser-app/src/comps/lc/screen-reference/ScreenReferenceConfig.tsx +63 -0
  266. package/light-chaser-app/src/comps/lc/screen-reference/ScreenReferenceController.ts +55 -0
  267. package/light-chaser-app/src/comps/lc/screen-reference/ScreenReferenceDefinition.ts +89 -0
  268. package/light-chaser-app/src/comps/lc/screen-reference/screen-reference.png +0 -0
  269. package/light-chaser-app/src/comps/lc/text-scroller/TextScrollerComponent.less +41 -0
  270. package/light-chaser-app/src/comps/lc/text-scroller/TextScrollerComponent.tsx +82 -0
  271. package/light-chaser-app/src/comps/lc/text-scroller/TextScrollerConfig.tsx +115 -0
  272. package/light-chaser-app/src/comps/lc/text-scroller/TextScrollerController.ts +71 -0
  273. package/light-chaser-app/src/comps/lc/text-scroller/TextScrollerDefinition.ts +89 -0
  274. package/light-chaser-app/src/comps/lc/text-scroller/text-scroller.png +0 -0
  275. package/light-chaser-app/src/comps/loop-container/LoopContainer.less +26 -0
  276. package/light-chaser-app/src/comps/loop-container/LoopContainer.tsx +69 -0
  277. package/light-chaser-app/src/comps/loop-container/LoopContainerConfig.tsx +84 -0
  278. package/light-chaser-app/src/comps/loop-container/LoopContainerController.ts +115 -0
  279. package/light-chaser-app/src/comps/loop-container/LoopContainerDefinition.ts +127 -0
  280. package/light-chaser-app/src/comps/map/AMapComponent.less +27 -0
  281. package/light-chaser-app/src/comps/map/AMapComponent.tsx +79 -0
  282. package/light-chaser-app/src/comps/map/AMapConfig.tsx +103 -0
  283. package/light-chaser-app/src/comps/map/AMapController.ts +57 -0
  284. package/light-chaser-app/src/comps/map/AMapDefinition.ts +104 -0
  285. package/light-chaser-app/src/comps/map/AMapScaleObserver.ts +44 -0
  286. package/light-chaser-app/src/comps/map/MapLoader.ts +61 -0
  287. package/light-chaser-app/src/comps/map/a-map.d.ts +22 -0
  288. package/light-chaser-app/src/comps/map/a-map.png +0 -0
  289. package/light-chaser-app/src/constant/GlobalConstant.ts +17 -0
  290. package/light-chaser-app/src/designer/Designer.tsx +146 -0
  291. package/light-chaser-app/src/designer/blueprint/BPCanvas.less +24 -0
  292. package/light-chaser-app/src/designer/blueprint/BPCanvas.tsx +79 -0
  293. package/light-chaser-app/src/designer/blueprint/BluePrint.tsx +39 -0
  294. package/light-chaser-app/src/designer/blueprint/IBPTyps.ts +27 -0
  295. package/light-chaser-app/src/designer/blueprint/bp-context-menu/BpContextMenu.tsx +112 -0
  296. package/light-chaser-app/src/designer/blueprint/core/BPExecutor.ts +43 -0
  297. package/light-chaser-app/src/designer/blueprint/core/BPTask.ts +67 -0
  298. package/light-chaser-app/src/designer/blueprint/drag/BPMovable.tsx +89 -0
  299. package/light-chaser-app/src/designer/blueprint/drag/BPSelectable.tsx +75 -0
  300. package/light-chaser-app/src/designer/blueprint/footer/BPFooter.less +268 -0
  301. package/light-chaser-app/src/designer/blueprint/footer/BPFooter.tsx +172 -0
  302. package/light-chaser-app/src/designer/blueprint/header/BPHeader.less +41 -0
  303. package/light-chaser-app/src/designer/blueprint/header/BPHeader.tsx +31 -0
  304. package/light-chaser-app/src/designer/blueprint/left/BPLeft.less +262 -0
  305. package/light-chaser-app/src/designer/blueprint/left/BPLeft.tsx +245 -0
  306. package/light-chaser-app/src/designer/blueprint/left/BPLeftStore.ts +44 -0
  307. package/light-chaser-app/src/designer/blueprint/line/LineLayer.tsx +301 -0
  308. package/light-chaser-app/src/designer/blueprint/manager/BluePrintManager.ts +503 -0
  309. package/light-chaser-app/src/designer/blueprint/manager/BluePrintPageManager.ts +94 -0
  310. package/light-chaser-app/src/designer/blueprint/node/BPNode.less +154 -0
  311. package/light-chaser-app/src/designer/blueprint/node/BPNode.tsx +77 -0
  312. package/light-chaser-app/src/designer/blueprint/node/NodeLayer.tsx +43 -0
  313. package/light-chaser-app/src/designer/blueprint/node/core/AbstractBPNodeController.ts +48 -0
  314. package/light-chaser-app/src/designer/blueprint/node/core/impl/condition/BPConditionNodeController.ts +108 -0
  315. package/light-chaser-app/src/designer/blueprint/node/core/impl/condition/ConditionNodeConfig.tsx +39 -0
  316. package/light-chaser-app/src/designer/blueprint/node/core/impl/global/BPGlobalNodeController.ts +67 -0
  317. package/light-chaser-app/src/designer/blueprint/node/core/impl/global-variable/BPGlobalVariableNodeController.ts +92 -0
  318. package/light-chaser-app/src/designer/blueprint/node/core/impl/layer/BPLayerNodeController.ts +95 -0
  319. package/light-chaser-app/src/designer/blueprint/node/core/impl/logical-process/BPLogicalProcessNodeController.ts +102 -0
  320. package/light-chaser-app/src/designer/blueprint/node/core/impl/logical-process/LogicalProcessNodeConfig.tsx +39 -0
  321. package/light-chaser-app/src/designer/blueprint/node/core/impl/mqtt/BPMqttNodeController.ts +165 -0
  322. package/light-chaser-app/src/designer/blueprint/node/core/impl/mqtt/MqttNodeConfig.tsx +33 -0
  323. package/light-chaser-app/src/designer/blueprint/node/core/impl/popup-box/BPPopupBoxNodeController.ts +79 -0
  324. package/light-chaser-app/src/designer/blueprint/node/core/impl/popup-box/ModalRenderUtil.tsx +181 -0
  325. package/light-chaser-app/src/designer/blueprint/node/core/impl/popup-box/PopupBoxNodeConfig.tsx +84 -0
  326. package/light-chaser-app/src/designer/blueprint/node/core/impl/timer/BPTimerNodeController.ts +73 -0
  327. package/light-chaser-app/src/designer/blueprint/node/core/impl/timer/TimerNodeConfig.tsx +51 -0
  328. package/light-chaser-app/src/designer/blueprint/node/core/impl/visible/BPVisibleNodeController.ts +93 -0
  329. package/light-chaser-app/src/designer/blueprint/node/core/impl/visible/VisibleNodeConfig.tsx +60 -0
  330. package/light-chaser-app/src/designer/blueprint/node/core/impl/websocket/BPWebSocketNodeController.ts +129 -0
  331. package/light-chaser-app/src/designer/blueprint/node/core/impl/websocket/WebSocketNodeConfig.tsx +33 -0
  332. package/light-chaser-app/src/designer/blueprint/node/core/node-container/BPNodeContainer.less +25 -0
  333. package/light-chaser-app/src/designer/blueprint/node/core/node-container/BPNodeContainer.tsx +87 -0
  334. package/light-chaser-app/src/designer/blueprint/right/BPRight.less +181 -0
  335. package/light-chaser-app/src/designer/blueprint/right/BPRight.tsx +66 -0
  336. package/light-chaser-app/src/designer/blueprint/right/BPRightStore.ts +34 -0
  337. package/light-chaser-app/src/designer/blueprint/util/BpCanvasUtil.ts +254 -0
  338. package/light-chaser-app/src/designer/blueprint/util/EventUtil.ts +60 -0
  339. package/light-chaser-app/src/designer/canvas/DesignerCanvas.tsx +73 -0
  340. package/light-chaser-app/src/designer/canvas/DesignerDragScaleContainer.tsx +77 -0
  341. package/light-chaser-app/src/designer/canvas/DesignerRuler.tsx +164 -0
  342. package/light-chaser-app/src/designer/event/ContextMenuStore.ts +71 -0
  343. package/light-chaser-app/src/designer/footer/DesignerFooter.less +110 -0
  344. package/light-chaser-app/src/designer/footer/DesignerFooter.tsx +125 -0
  345. package/light-chaser-app/src/designer/footer/FooterStore.ts +56 -0
  346. package/light-chaser-app/src/designer/footer/auto-save/AutoSaveManager.ts +130 -0
  347. package/light-chaser-app/src/designer/footer/auto-save/EnhanceFetch.ts +41 -0
  348. package/light-chaser-app/src/designer/footer/auto-save/RestoreLocalStorage.less +80 -0
  349. package/light-chaser-app/src/designer/footer/auto-save/RestoreLocalStorage.tsx +158 -0
  350. package/light-chaser-app/src/designer/footer/cover/CoverConfig.less +131 -0
  351. package/light-chaser-app/src/designer/footer/cover/CoverConfig.tsx +113 -0
  352. package/light-chaser-app/src/designer/footer/hotkey-des/HotKeyDes.less +63 -0
  353. package/light-chaser-app/src/designer/footer/hotkey-des/HotKeyDes.tsx +111 -0
  354. package/light-chaser-app/src/designer/header/DesignerHeader.less +132 -0
  355. package/light-chaser-app/src/designer/header/DesignerHeader.tsx +172 -0
  356. package/light-chaser-app/src/designer/header/DesignerHeaderStore.ts +30 -0
  357. package/light-chaser-app/src/designer/header/items/blue-print/BluePrintHdImpl.tsx +32 -0
  358. package/light-chaser-app/src/designer/header/items/canvas/CanvasHdConfigImpl.less +180 -0
  359. package/light-chaser-app/src/designer/header/items/canvas/CanvasHdConfigImpl.tsx +128 -0
  360. package/light-chaser-app/src/designer/header/items/canvas/CanvasManager.ts +55 -0
  361. package/light-chaser-app/src/designer/header/items/global-filter/GlobalFilterConfigImpl.tsx +42 -0
  362. package/light-chaser-app/src/designer/header/items/project/ProjectHdItemImpl.less +34 -0
  363. package/light-chaser-app/src/designer/header/items/project/ProjectHdItemImpl.tsx +64 -0
  364. package/light-chaser-app/src/designer/header/items/project/ProjectManager.ts +56 -0
  365. package/light-chaser-app/src/designer/header/items/release/ReleaseHdConfigImpl.less +205 -0
  366. package/light-chaser-app/src/designer/header/items/release/ReleaseHdConfigImpl.tsx +189 -0
  367. package/light-chaser-app/src/designer/header/items/theme/ThemeHdItem.less +161 -0
  368. package/light-chaser-app/src/designer/header/items/theme/ThemeHdItemImpl.tsx +76 -0
  369. package/light-chaser-app/src/designer/header/items/theme/ThemeManager.ts +81 -0
  370. package/light-chaser-app/src/designer/left/DesignerLeft.less +15 -0
  371. package/light-chaser-app/src/designer/left/DesignerLeft.tsx +55 -0
  372. package/light-chaser-app/src/designer/left/DesignerLeftStore.ts +40 -0
  373. package/light-chaser-app/src/designer/left/compoent-lib/ComponentCategorize.ts +135 -0
  374. package/light-chaser-app/src/designer/left/compoent-lib/ComponentList.less +129 -0
  375. package/light-chaser-app/src/designer/left/compoent-lib/ComponentList.tsx +89 -0
  376. package/light-chaser-app/src/designer/left/compoent-lib/ComponentListStore.ts +64 -0
  377. package/light-chaser-app/src/designer/left/compoent-lib/list/CompList.less +112 -0
  378. package/light-chaser-app/src/designer/left/compoent-lib/list/CompList.tsx +155 -0
  379. package/light-chaser-app/src/designer/left/designer-left-menus/LeftMenus.less +63 -0
  380. package/light-chaser-app/src/designer/left/designer-left-menus/LeftMenus.tsx +87 -0
  381. package/light-chaser-app/src/designer/left/filter-lilst/AddFilterDialog.tsx +76 -0
  382. package/light-chaser-app/src/designer/left/filter-lilst/FilterList.less +105 -0
  383. package/light-chaser-app/src/designer/left/filter-lilst/FilterList.tsx +65 -0
  384. package/light-chaser-app/src/designer/left/global-variable/GlobalVariable.less +231 -0
  385. package/light-chaser-app/src/designer/left/global-variable/GlobalVariable.ts +151 -0
  386. package/light-chaser-app/src/designer/left/global-variable/GlobalVariableEditPanel.tsx +79 -0
  387. package/light-chaser-app/src/designer/left/global-variable/GlobalVariableList.tsx +89 -0
  388. package/light-chaser-app/src/designer/left/global-variable/parse/ComponentDataGvParser.ts +298 -0
  389. package/light-chaser-app/src/designer/left/layer-list/CanvasRender.ts +69 -0
  390. package/light-chaser-app/src/designer/left/layer-list/DesignerRender.ts +70 -0
  391. package/light-chaser-app/src/designer/left/layer-list/LayerList.less +371 -0
  392. package/light-chaser-app/src/designer/left/layer-list/LayerList.tsx +129 -0
  393. package/light-chaser-app/src/designer/left/layer-list/LayerListStore.ts +197 -0
  394. package/light-chaser-app/src/designer/left/layer-list/LayerRender.ts +67 -0
  395. package/light-chaser-app/src/designer/left/layer-list/item/BaseLayer.tsx +125 -0
  396. package/light-chaser-app/src/designer/left/layer-list/item/LayerGroupItem.tsx +61 -0
  397. package/light-chaser-app/src/designer/left/layer-list/item/LayerItem.tsx +48 -0
  398. package/light-chaser-app/src/designer/left/layer-list/search-layer/SearchLayer.less +121 -0
  399. package/light-chaser-app/src/designer/left/layer-list/search-layer/SearchLayer.tsx +82 -0
  400. package/light-chaser-app/src/designer/left/layer-list/util/LayerUtil.ts +370 -0
  401. package/light-chaser-app/src/designer/left/source-list/SourceList.less +99 -0
  402. package/light-chaser-app/src/designer/left/source-list/SourceList.tsx +50 -0
  403. package/light-chaser-app/src/designer/left/source-list/image-source/ImageSource.less +139 -0
  404. package/light-chaser-app/src/designer/left/source-list/image-source/ImageSource.tsx +155 -0
  405. package/light-chaser-app/src/designer/left/sub-project/SubProject.less +200 -0
  406. package/light-chaser-app/src/designer/left/sub-project/SubProject.tsx +231 -0
  407. package/light-chaser-app/src/designer/left/template-lib/TemplateLib.less +226 -0
  408. package/light-chaser-app/src/designer/left/template-lib/TemplateLib.tsx +165 -0
  409. package/light-chaser-app/src/designer/loader/DesignerLoader.ts +334 -0
  410. package/light-chaser-app/src/designer/loader/EditDesignerLoader.ts +75 -0
  411. package/light-chaser-app/src/designer/loader/PureReleaseDesignerLoader.ts +123 -0
  412. package/light-chaser-app/src/designer/loader/ReleaseDesignerLoader.ts +129 -0
  413. package/light-chaser-app/src/designer/loader/ViewDesignerLoader.ts +57 -0
  414. package/light-chaser-app/src/designer/manager/DesignerManager.ts +96 -0
  415. package/light-chaser-app/src/designer/manager/FilterManager.ts +69 -0
  416. package/light-chaser-app/src/designer/manager/GlobalFilterManger.ts +69 -0
  417. package/light-chaser-app/src/designer/manager/GlobalVariableManager.ts +148 -0
  418. package/light-chaser-app/src/designer/manager/LayerManager.ts +170 -0
  419. package/light-chaser-app/src/designer/manager/ManagerStore.ts +93 -0
  420. package/light-chaser-app/src/designer/manager/core/AbstractManager.ts +18 -0
  421. package/light-chaser-app/src/designer/operate-provider/EventOperateStore.ts +150 -0
  422. package/light-chaser-app/src/designer/operate-provider/canvas-context-menu/CanvasContextMenu.tsx +204 -0
  423. package/light-chaser-app/src/designer/operate-provider/hot-key/HotKey.tsx +51 -0
  424. package/light-chaser-app/src/designer/operate-provider/hot-key/HotKeyConfig.ts +226 -0
  425. package/light-chaser-app/src/designer/operate-provider/hot-key/HotKeyImpl.ts +871 -0
  426. package/light-chaser-app/src/designer/operate-provider/hot-key/HotKeyType.ts +29 -0
  427. package/light-chaser-app/src/designer/operate-provider/movable/DesignerMovable.less +19 -0
  428. package/light-chaser-app/src/designer/operate-provider/movable/DesignerMovable.tsx +461 -0
  429. package/light-chaser-app/src/designer/operate-provider/movable/DesignerSelectable.tsx +123 -0
  430. package/light-chaser-app/src/designer/operate-provider/scale/ScaleCore.ts +43 -0
  431. package/light-chaser-app/src/designer/operate-provider/undo-redo/HistoryOperator.ts +37 -0
  432. package/light-chaser-app/src/designer/operate-provider/undo-redo/HistoryQueue.ts +170 -0
  433. package/light-chaser-app/src/designer/operate-provider/undo-redo/HistoryRecordOperateProxy.ts +1740 -0
  434. package/light-chaser-app/src/designer/operate-provider/undo-redo/OperateType.ts +183 -0
  435. package/light-chaser-app/src/designer/operate-provider/undo-redo/core/AbstractRollback.ts +27 -0
  436. package/light-chaser-app/src/designer/operate-provider/undo-redo/core/AddRollbackImpl.ts +89 -0
  437. package/light-chaser-app/src/designer/operate-provider/undo-redo/core/DelRollbackImpl.ts +99 -0
  438. package/light-chaser-app/src/designer/operate-provider/undo-redo/core/DragRollbackImpl.ts +59 -0
  439. package/light-chaser-app/src/designer/operate-provider/undo-redo/core/HideRollbackImpl.ts +61 -0
  440. package/light-chaser-app/src/designer/operate-provider/undo-redo/core/LockRollbackImpl.ts +57 -0
  441. package/light-chaser-app/src/designer/operate-provider/undo-redo/core/OrderRollbackImpl.ts +34 -0
  442. package/light-chaser-app/src/designer/operate-provider/undo-redo/core/ResizeRollbackImpl.ts +59 -0
  443. package/light-chaser-app/src/designer/operate-provider/undo-redo/core/RotateRollbackImpl.ts +58 -0
  444. package/light-chaser-app/src/designer/operate-provider/undo-redo/core/StyleRollbackImpl.ts +62 -0
  445. package/light-chaser-app/src/designer/operate-provider/undo-redo/core/UpdLayerGroupRollbackImpl.ts +62 -0
  446. package/light-chaser-app/src/designer/operate-provider/undo-redo/core/index.ts +37 -0
  447. package/light-chaser-app/src/designer/release/DesignerRelease.less +41 -0
  448. package/light-chaser-app/src/designer/release/DesignerRelease.tsx +91 -0
  449. package/light-chaser-app/src/designer/right/ConfigContent.tsx +186 -0
  450. package/light-chaser-app/src/designer/right/DesignerRight.less +325 -0
  451. package/light-chaser-app/src/designer/right/DesignerRight.tsx +28 -0
  452. package/light-chaser-app/src/designer/right/MenuList.tsx +70 -0
  453. package/light-chaser-app/src/designer/right/MenuType.ts +23 -0
  454. package/light-chaser-app/src/designer/right/RightStore.ts +122 -0
  455. package/light-chaser-app/src/designer/right/status-list/ComponentStatusList.tsx +73 -0
  456. package/light-chaser-app/src/designer/right/status-list/StatusListStore.ts +175 -0
  457. package/light-chaser-app/src/designer/right/util.ts +53 -0
  458. package/light-chaser-app/src/designer/store/RuntimeStore.ts +32 -0
  459. package/light-chaser-app/src/designer/style/DesignerGlobalStyle.less +75 -0
  460. package/light-chaser-app/src/designer/view/DesignerView.less +41 -0
  461. package/light-chaser-app/src/designer/view/DesignerView.tsx +61 -0
  462. package/light-chaser-app/src/framework/cache/AbstractCache.ts +38 -0
  463. package/light-chaser-app/src/framework/cache/ImageSourceCache.ts +23 -0
  464. package/light-chaser-app/src/framework/cache/LocalCoverCache.ts +29 -0
  465. package/light-chaser-app/src/framework/context-menu/ContextMenu.less +57 -0
  466. package/light-chaser-app/src/framework/context-menu/ContextMenu.tsx +76 -0
  467. package/light-chaser-app/src/framework/convert/AbstractConvert.ts +31 -0
  468. package/light-chaser-app/src/framework/core/AbstractController.ts +76 -0
  469. package/light-chaser-app/src/framework/core/AbstractDefinition.ts +77 -0
  470. package/light-chaser-app/src/framework/core/AbstractDesignerController.ts +129 -0
  471. package/light-chaser-app/src/framework/core/AbstractDesignerDefinition.ts +136 -0
  472. package/light-chaser-app/src/framework/core/AbstractScaleObserver.ts +15 -0
  473. package/light-chaser-app/src/framework/core/ComponentContainer.tsx +130 -0
  474. package/light-chaser-app/src/framework/core/ScaleAction.ts +33 -0
  475. package/light-chaser-app/src/framework/core/tools/ComponentDataUpdater.ts +260 -0
  476. package/light-chaser-app/src/framework/drag-scale/DragAddProvider.ts +45 -0
  477. package/light-chaser-app/src/framework/drag-scale/DragScaleProvider.tsx +202 -0
  478. package/light-chaser-app/src/framework/screen-fit/ScreenFit.less +25 -0
  479. package/light-chaser-app/src/framework/screen-fit/ScreenFit.tsx +177 -0
  480. package/light-chaser-app/src/global/ExportEditGlobalMember.ts +54 -0
  481. package/light-chaser-app/src/global/ExportViewGlobalMember.ts +40 -0
  482. package/light-chaser-app/src/global/GlobalConstants.ts +16 -0
  483. package/light-chaser-app/src/images/lock.svg +23 -0
  484. package/light-chaser-app/src/images/login-logo.png +0 -0
  485. package/light-chaser-app/src/images/logo.png +0 -0
  486. package/light-chaser-app/src/images/user.svg +23 -0
  487. package/light-chaser-app/src/index.less +359 -0
  488. package/light-chaser-app/src/index.tsx +47 -0
  489. package/light-chaser-app/src/pages/auth-reminder/AuthReminders.less +218 -0
  490. package/light-chaser-app/src/pages/auth-reminder/AuthReminders.tsx +174 -0
  491. package/light-chaser-app/src/pages/auth-reminder/AuthRemindersStore.ts +30 -0
  492. package/light-chaser-app/src/pages/designer/DesignerPage.tsx +18 -0
  493. package/light-chaser-app/src/pages/home/Home.less +123 -0
  494. package/light-chaser-app/src/pages/home/Home.tsx +81 -0
  495. package/light-chaser-app/src/pages/home/api-management/ApiEditPanel.tsx +79 -0
  496. package/light-chaser-app/src/pages/home/api-management/ApiManagement.module.less +234 -0
  497. package/light-chaser-app/src/pages/home/api-management/ApiManagement.tsx +152 -0
  498. package/light-chaser-app/src/pages/home/api-management/ApiManagementStore.ts +187 -0
  499. package/light-chaser-app/src/pages/home/database/DataBaseList.module.less +369 -0
  500. package/light-chaser-app/src/pages/home/database/DataBaseList.tsx +264 -0
  501. package/light-chaser-app/src/pages/home/database/DataBasePanel.less +170 -0
  502. package/light-chaser-app/src/pages/home/database/DataBasePanel.tsx +172 -0
  503. package/light-chaser-app/src/pages/home/database/DataBaseStore.ts +220 -0
  504. package/light-chaser-app/src/pages/home/dynamic-script/DynamicScriptList.module.less +305 -0
  505. package/light-chaser-app/src/pages/home/dynamic-script/DynamicScriptList.tsx +248 -0
  506. package/light-chaser-app/src/pages/home/dynamic-script/DynamicScriptManagement.tsx +19 -0
  507. package/light-chaser-app/src/pages/home/dynamic-script/DynamicScriptManagementStore.ts +192 -0
  508. package/light-chaser-app/src/pages/home/font-management/FontManagement.module.less +281 -0
  509. package/light-chaser-app/src/pages/home/font-management/FontManagement.tsx +218 -0
  510. package/light-chaser-app/src/pages/home/font-management/FontManagementStore.ts +153 -0
  511. package/light-chaser-app/src/pages/home/image/default-snapshot.jpg +0 -0
  512. package/light-chaser-app/src/pages/home/menus/HomeMenus.less +175 -0
  513. package/light-chaser-app/src/pages/home/menus/HomeMenus.tsx +148 -0
  514. package/light-chaser-app/src/pages/home/more-info/MoreInfo.module.less +154 -0
  515. package/light-chaser-app/src/pages/home/more-info/MoreInfo.tsx +71 -0
  516. package/light-chaser-app/src/pages/home/page-container/PageContainer.less +130 -0
  517. package/light-chaser-app/src/pages/home/page-container/PageContainer.tsx +41 -0
  518. package/light-chaser-app/src/pages/home/project-list/CloneProjectDialog.tsx +43 -0
  519. package/light-chaser-app/src/pages/home/project-list/DelProjectDialog.tsx +37 -0
  520. package/light-chaser-app/src/pages/home/project-list/NewProjectDialog.less +262 -0
  521. package/light-chaser-app/src/pages/home/project-list/NewProjectDialog.tsx +152 -0
  522. package/light-chaser-app/src/pages/home/project-list/ProjectItem.less +192 -0
  523. package/light-chaser-app/src/pages/home/project-list/ProjectItem.tsx +136 -0
  524. package/light-chaser-app/src/pages/home/project-list/ProjectList.less +137 -0
  525. package/light-chaser-app/src/pages/home/project-list/ProjectList.tsx +180 -0
  526. package/light-chaser-app/src/pages/home/project-management/ProjectManagement.tsx +18 -0
  527. package/light-chaser-app/src/pages/home/project-setting/ProjectSetting.less +39 -0
  528. package/light-chaser-app/src/pages/home/project-setting/ProjectSetting.tsx +39 -0
  529. package/light-chaser-app/src/pages/home/release-management/ReleaseEditPanel.tsx +62 -0
  530. package/light-chaser-app/src/pages/home/release-management/ReleaseManagement.module.less +216 -0
  531. package/light-chaser-app/src/pages/home/release-management/ReleaseManagement.tsx +213 -0
  532. package/light-chaser-app/src/pages/home/release-management/ReleaseStore.ts +138 -0
  533. package/light-chaser-app/src/pages/home/remote-component/RemoteComponentManagement.module.less +290 -0
  534. package/light-chaser-app/src/pages/home/remote-component/RemoteComponentManagement.tsx +244 -0
  535. package/light-chaser-app/src/pages/home/remote-component/RemoteComponentStore.ts +143 -0
  536. package/light-chaser-app/src/pages/home/resource-management/ResourceManagement.tsx +18 -0
  537. package/light-chaser-app/src/pages/home/server-list/ServerProjectList.tsx +21 -0
  538. package/light-chaser-app/src/pages/home/setting/Setting.module.less +298 -0
  539. package/light-chaser-app/src/pages/home/setting/Setting.tsx +123 -0
  540. package/light-chaser-app/src/pages/home/template-market/TemplateMarket.tsx +22 -0
  541. package/light-chaser-app/src/pages/home/user-info/UserInfo.less +279 -0
  542. package/light-chaser-app/src/pages/home/user-info/UserInfo.tsx +186 -0
  543. package/light-chaser-app/src/pages/home/user-management/UserManagement.module.less +211 -0
  544. package/light-chaser-app/src/pages/home/user-management/UserManagement.tsx +209 -0
  545. package/light-chaser-app/src/pages/home/user-management/UserManagementStore.ts +183 -0
  546. package/light-chaser-app/src/pages/home/user-management/UserPanel.tsx +113 -0
  547. package/light-chaser-app/src/pages/login/Login.less +282 -0
  548. package/light-chaser-app/src/pages/login/Login.tsx +77 -0
  549. package/light-chaser-app/src/pages/login/ServiceTerms.tsx +118 -0
  550. package/light-chaser-app/src/pages/login/bg.png +0 -0
  551. package/light-chaser-app/src/pages/preview/DesignerViewPage.tsx +18 -0
  552. package/light-chaser-app/src/pages/release/DesignerReleasePage.tsx +19 -0
  553. package/light-chaser-app/src/pages/result/Error.tsx +24 -0
  554. package/light-chaser-app/src/pages/result/NoAuth.tsx +24 -0
  555. package/light-chaser-app/src/pages/result/NotFound.tsx +24 -0
  556. package/light-chaser-app/src/pureRelease/home/PureHome.less +100 -0
  557. package/light-chaser-app/src/pureRelease/home/PureHome.tsx +90 -0
  558. package/light-chaser-app/src/pureRelease/index.less +335 -0
  559. package/light-chaser-app/src/pureRelease/index.tsx +59 -0
  560. package/light-chaser-app/src/pureRelease/list/PureList.less +173 -0
  561. package/light-chaser-app/src/pureRelease/list/PureList.tsx +118 -0
  562. package/light-chaser-app/src/pureRelease/release/PureRelease.less +41 -0
  563. package/light-chaser-app/src/pureRelease/release/PureRelease.tsx +53 -0
  564. package/light-chaser-app/src/router/AuthGuard.tsx +48 -0
  565. package/light-chaser-app/src/router/router.tsx +76 -0
  566. package/light-chaser-app/src/test/Demo.tsx +22 -0
  567. package/light-chaser-app/src/test/DemoMain.less +47 -0
  568. package/light-chaser-app/src/test/DemoStore.ts +51 -0
  569. package/light-chaser-app/src/test/alone-store-demo/AloneStore.ts +28 -0
  570. package/light-chaser-app/src/test/alone-store-demo/TestStoreA.tsx +28 -0
  571. package/light-chaser-app/src/test/alone-store-demo/TestStoreB.tsx +28 -0
  572. package/light-chaser-app/src/test/canvas-grid-animation/CanvasGridAnimation.tsx +59 -0
  573. package/light-chaser-app/src/test/drag-demo/LayerDemo.less +35 -0
  574. package/light-chaser-app/src/test/drag-demo/LayerDemo.tsx +53 -0
  575. package/light-chaser-app/src/test/drag-demo/LayerDemoStore.ts +33 -0
  576. package/light-chaser-app/src/test/drag-demo/MovableDemo.tsx +77 -0
  577. package/light-chaser-app/src/test/drag-demo/SelectableDemo.tsx +75 -0
  578. package/light-chaser-app/src/test/other-designer/_demo.js +99 -0
  579. package/light-chaser-app/src/test/test-json-schema/JsonSchemaDemo.tsx +120 -0
  580. package/light-chaser-app/src/theme/AntdTheme.ts +1285 -0
  581. package/light-chaser-app/src/theme/default.less +41 -0
  582. package/light-chaser-app/src/util/AuthFetchUtil.ts +37 -0
  583. package/light-chaser-app/src/util/BoundsValidatorUtil.ts +27 -0
  584. package/light-chaser-app/src/util/ControllerUtil.ts +14 -0
  585. package/light-chaser-app/src/util/CoordinateUtil.ts +105 -0
  586. package/light-chaser-app/src/util/DataUtil.ts +111 -0
  587. package/light-chaser-app/src/util/DomUtil.ts +57 -0
  588. package/light-chaser-app/src/util/EnvUtil.ts +27 -0
  589. package/light-chaser-app/src/util/FetchUtil.ts +193 -0
  590. package/light-chaser-app/src/util/HybridCryptoUtil.ts +137 -0
  591. package/light-chaser-app/src/util/LogoUtil.ts +34 -0
  592. package/light-chaser-app/src/util/ProjectUtil.ts +209 -0
  593. package/light-chaser-app/src/util/RequestAnimationFrameUtil.ts +31 -0
  594. package/light-chaser-app/src/util/TextUtil.ts +63 -0
  595. package/light-chaser-app/src/util/Tooles.ts +45 -0
  596. package/light-chaser-app/src/vite-env.d.ts +53 -0
  597. package/light-chaser-app/tsconfig.json +40 -0
  598. package/light-chaser-app/tsconfig.node.json +15 -0
  599. package/light-chaser-app/vite.base.config.ts +23 -0
  600. package/light-chaser-app/vite.build.config.ts +18 -0
  601. package/light-chaser-app/vite.dev.config.ts +43 -0
  602. package/light-chaser-app/vite.pure.release.config.ts +41 -0
  603. package/light-chaser-cli/bin/index.js +176 -0
  604. package/light-chaser-cli/config/vite.config.dev.js +24 -0
  605. package/light-chaser-cli/config/vite.config.prod.js +47 -0
  606. package/light-chaser-cli/package.json +41 -0
  607. package/light-chaser-cli/page/index.html +36 -0
  608. package/light-chaser-cli/pnpm-lock.yaml +494 -0
  609. package/light-chaser-cli/template/index.html +35 -0
  610. package/light-chaser-cli/template/package.json +38 -0
  611. package/light-chaser-cli/template/src/components/remote-button/base-button.png +0 -0
  612. package/light-chaser-cli/template/src/components/remote-button/component.module.less +105 -0
  613. package/light-chaser-cli/template/src/components/remote-button/component.tsx +82 -0
  614. package/light-chaser-cli/template/src/components/remote-button/config.tsx +179 -0
  615. package/light-chaser-cli/template/src/components/remote-button/controller.ts +108 -0
  616. package/light-chaser-cli/template/src/components/remote-button/definition.ts +125 -0
  617. package/light-chaser-cli/template/src/index.module.less +89 -0
  618. package/light-chaser-cli/template/src/index.tsx +140 -0
  619. package/light-chaser-cli/template/src/vite-env.d.ts +22 -0
  620. package/light-chaser-cli/template/tsconfig.json +39 -0
  621. package/light-chaser-cli/template/tsconfig.node.json +11 -0
  622. package/light-chaser-interface/README.md +3 -0
  623. package/light-chaser-interface/lib/AbstractController.ts +69 -0
  624. package/light-chaser-interface/lib/AbstractDefinition.ts +84 -0
  625. package/light-chaser-interface/lib/AbstractDesignerController.ts +80 -0
  626. package/light-chaser-interface/lib/AbstractDesignerDefinition.ts +71 -0
  627. package/light-chaser-interface/lib/BPExecutor.ts +28 -0
  628. package/light-chaser-interface/lib/ConfigComponents.tsx +40 -0
  629. package/light-chaser-interface/lib/main.ts +17 -0
  630. package/light-chaser-interface/package.json +46 -0
  631. package/light-chaser-interface/tsconfig-build.json +6 -0
  632. package/light-chaser-interface/tsconfig.json +40 -0
  633. package/light-chaser-interface/tsconfig.node.json +15 -0
  634. package/light-chaser-interface/vite.config.ts +22 -0
  635. package/light-chaser-types/package.json +38 -0
  636. package/light-chaser-types/tsconfig-build.json +6 -0
  637. package/light-chaser-types/tsconfig.json +41 -0
  638. package/light-chaser-types/tsconfig.node.json +12 -0
  639. package/light-chaser-types/types/BluePrintTypes.ts +85 -0
  640. package/light-chaser-types/types/CanvasTypes.ts +33 -0
  641. package/light-chaser-types/types/ComponentTypes.ts +100 -0
  642. package/light-chaser-types/types/DataSourceTypes.ts +96 -0
  643. package/light-chaser-types/types/DesignerToolsTypes.ts +18 -0
  644. package/light-chaser-types/types/DesignerTypes.ts +136 -0
  645. package/light-chaser-types/types/FilterTypes.ts +44 -0
  646. package/light-chaser-types/types/GlobalVariableTypes.ts +43 -0
  647. package/light-chaser-types/types/LayerTypes.ts +90 -0
  648. package/light-chaser-types/types/ReleaseTypes.ts +22 -0
  649. package/light-chaser-types/types/ThemeTypes.ts +34 -0
  650. package/light-chaser-types/types/main.ts +69 -0
  651. package/light-chaser-types/vite.config.ts +14 -0
  652. package/light-chaser-ui/index.html +24 -0
  653. package/light-chaser-ui/lib/accordion/Accordion.less +158 -0
  654. package/light-chaser-ui/lib/accordion/Accordion.tsx +43 -0
  655. package/light-chaser-ui/lib/accordion/IAccordionType.ts +35 -0
  656. package/light-chaser-ui/lib/accordion/SubAccordion.tsx +44 -0
  657. package/light-chaser-ui/lib/button/Button.tsx +37 -0
  658. package/light-chaser-ui/lib/card-panel/CardPanel.less +32 -0
  659. package/light-chaser-ui/lib/card-panel/CardPanel.tsx +36 -0
  660. package/light-chaser-ui/lib/checkbox/CheckBox.tsx +42 -0
  661. package/light-chaser-ui/lib/code-editor/CodeEditor.tsx +55 -0
  662. package/light-chaser-ui/lib/code-editor/FullEditor.tsx +45 -0
  663. package/light-chaser-ui/lib/code-editor/MonacoEditor.less +35 -0
  664. package/light-chaser-ui/lib/code-editor/MonacoEditor.tsx +83 -0
  665. package/light-chaser-ui/lib/color-mode/ColorMode.less +20 -0
  666. package/light-chaser-ui/lib/color-mode/ColorMode.tsx +80 -0
  667. package/light-chaser-ui/lib/color-picker/ColorPicker.less +104 -0
  668. package/light-chaser-ui/lib/color-picker/ColorPicker.tsx +315 -0
  669. package/light-chaser-ui/lib/color-picker/RecentColors.ts +46 -0
  670. package/light-chaser-ui/lib/colors-picker/ColorsPicker.less +77 -0
  671. package/light-chaser-ui/lib/colors-picker/ColorsPicker.tsx +78 -0
  672. package/light-chaser-ui/lib/control-group/ControlGroup.less +49 -0
  673. package/light-chaser-ui/lib/control-group/ControlGroup.tsx +101 -0
  674. package/light-chaser-ui/lib/frame-layout/FrameLayout.less +47 -0
  675. package/light-chaser-ui/lib/frame-layout/FrameLayout.tsx +42 -0
  676. package/light-chaser-ui/lib/grid/Grid.less +20 -0
  677. package/light-chaser-ui/lib/grid/Grid.tsx +33 -0
  678. package/light-chaser-ui/lib/group-button/GroupButton.less +52 -0
  679. package/light-chaser-ui/lib/group-button/GroupButton.tsx +54 -0
  680. package/light-chaser-ui/lib/gui/GUITheme.ts +547 -0
  681. package/light-chaser-ui/lib/gui/LCGUI.tsx +186 -0
  682. package/light-chaser-ui/lib/gui/LCGUIUtil.ts +108 -0
  683. package/light-chaser-ui/lib/imag-upload/ImageUpload.less +26 -0
  684. package/light-chaser-ui/lib/imag-upload/ImageUpload.tsx +102 -0
  685. package/light-chaser-ui/lib/input/Input.tsx +48 -0
  686. package/light-chaser-ui/lib/input/NumberInput.tsx +52 -0
  687. package/light-chaser-ui/lib/loading/Loading.less +211 -0
  688. package/light-chaser-ui/lib/loading/Loading.tsx +38 -0
  689. package/light-chaser-ui/lib/main.ts +71 -0
  690. package/light-chaser-ui/lib/message/GlobalMessage.tsx +44 -0
  691. package/light-chaser-ui/lib/message/GlobalModal.tsx +44 -0
  692. package/light-chaser-ui/lib/radio/Radio.tsx +53 -0
  693. package/light-chaser-ui/lib/searchable-select/SearchableSelect.tsx +239 -0
  694. package/light-chaser-ui/lib/select/Select.tsx +89 -0
  695. package/light-chaser-ui/lib/slider/Slider.tsx +51 -0
  696. package/light-chaser-ui/lib/switch/Switch.tsx +42 -0
  697. package/light-chaser-ui/lib/text-area/TextArea.tsx +49 -0
  698. package/light-chaser-ui/lib/text-only/TextOnly.tsx +25 -0
  699. package/light-chaser-ui/lib/types.ts +257 -0
  700. package/light-chaser-ui/lib/ui-container/UIContainer.less +44 -0
  701. package/light-chaser-ui/lib/ui-container/UIContainer.tsx +40 -0
  702. package/light-chaser-ui/lib/ui-map.ts +59 -0
  703. package/light-chaser-ui/package.json +57 -0
  704. package/light-chaser-ui/public/favicon.ico +0 -0
  705. package/light-chaser-ui/src/test.tsx +24 -0
  706. package/light-chaser-ui/tsconfig-build.json +6 -0
  707. package/light-chaser-ui/tsconfig.json +42 -0
  708. package/light-chaser-ui/tsconfig.node.json +12 -0
  709. package/light-chaser-ui/vite.config.ts +25 -0
  710. package/light-chaser-util/lib/AuthTools.ts +75 -0
  711. package/light-chaser-util/lib/Base64Util.ts +31 -0
  712. package/light-chaser-util/lib/ColorUtil.ts +110 -0
  713. package/light-chaser-util/lib/ComponentUtil.ts +45 -0
  714. package/light-chaser-util/lib/FileUtil.ts +49 -0
  715. package/light-chaser-util/lib/IdGenerate.ts +23 -0
  716. package/light-chaser-util/lib/ObjectUtil.ts +130 -0
  717. package/light-chaser-util/lib/SafeEvalUtil.ts +63 -0
  718. package/light-chaser-util/lib/URLUtil.ts +27 -0
  719. package/light-chaser-util/lib/main.ts +21 -0
  720. package/light-chaser-util/package.json +40 -0
  721. package/light-chaser-util/src/test.ts +12 -0
  722. package/light-chaser-util/tsconfig-build.json +6 -0
  723. package/light-chaser-util/tsconfig.json +36 -0
  724. package/light-chaser-util/vite.config.ts +18 -0
  725. package/package.json +12 -0
  726. package/pnpm-workspace.yaml +7 -0
  727. package/prompt/UI/344/274/230/345/214/226/346/217/220/347/244/272/350/257/215.md +144 -0
  728. package/prompt//347/273/204/344/273/266/345/274/200/345/217/221/346/217/220/347/244/272/350/257/215.md +1090 -0
  729. package/prompt//351/200/273/350/276/221/344/274/230/345/214/226/346/217/220/347/244/272/350/257/215.md +98 -0
  730. package/prompt//351/205/215/347/275/256/351/241/271/347/224/237/346/210/220/345/267/245/344/275/234/346/265/201.md +401 -0
@@ -0,0 +1,31 @@
1
+ /*
2
+ * Copyright © 2023-2025 puyinzhen
3
+ * All rights reserved.
4
+ *
5
+ * The copyright of this work (or idea/project/document) is owned by puyinzhen. Without explicit written permission, no part of this work may be reproduced, distributed, or modified in any form for commercial purposes.
6
+ *
7
+ * This copyright statement applies to, but is not limited to: concept descriptions, design documents, source code, images, presentation files, and any related content.
8
+ *
9
+ * For permission to use this work or any part of it, please contact 1182810784@qq.com to obtain written authorization.
10
+ */
11
+
12
+ abstract class AbstractConvert<P = any> {
13
+ /**
14
+ * 获取转换器唯一标识
15
+ */
16
+ abstract getKey(): string;
17
+
18
+ /**
19
+ * 正向转换
20
+ * @param data
21
+ */
22
+ abstract convert(data: P): void;
23
+
24
+ /**
25
+ * 反向转换
26
+ * @param data
27
+ */
28
+ abstract convertBack(data: P): Promise<void>
29
+ }
30
+
31
+ export default AbstractConvert;
@@ -0,0 +1,76 @@
1
+ /*
2
+ * Copyright © 2023-2025 puyinzhen
3
+ * All rights reserved.
4
+ *
5
+ * The copyright of this work (or idea/project/document) is owned by puyinzhen. Without explicit written permission, no part of this work may be reproduced, distributed, or modified in any form for commercial purposes.
6
+ *
7
+ * This copyright statement applies to, but is not limited to: concept descriptions, design documents, source code, images, presentation files, and any related content.
8
+ *
9
+ * For permission to use this work or any part of it, please contact 1182810784@qq.com to obtain written authorization.
10
+ */
11
+
12
+ export interface UpdateOptions {
13
+ reRender: boolean;
14
+ }
15
+
16
+ /**
17
+ * 设计器自定义组件控制器的顶级抽象接口,用于控制自定义组件的整个生命周期
18
+ * @param I 组件实例类型,若组件为React的class组件,则I=class的实例化对象。
19
+ * 若组件为React的函数式组件,则I=forwardRef钩子传递出的ref引用(当然你也可以有其他自定义的实现)
20
+ * 若组件为纯Js实现的组件,则I=组件实例化对象(可参考Echarts活G2创建实例后的返回值)
21
+ * @param C 组件配置类型,即组件的完整属性类型
22
+ */
23
+ abstract class AbstractController<I = any, C = any> {
24
+
25
+ /**
26
+ * 组件实例引用
27
+ * @protected
28
+ */
29
+ protected instance: I | null = null;
30
+ /**
31
+ * 组件配置(包括组件数据)
32
+ * @protected
33
+ */
34
+ public config: C | null = null;
35
+ /**
36
+ * 组件所处容器的dom元素
37
+ * @protected
38
+ */
39
+ public container: HTMLElement | null = null;
40
+
41
+ /******************生命周期******************/
42
+
43
+ /**
44
+ * 创建组件并将组件挂载到指定的容器中
45
+ * @param container 容器
46
+ * @param config 组件配置
47
+ * @param others 组件配置
48
+ */
49
+ public abstract create(container: HTMLElement, config: C, ...others: unknown[]): Promise<void>;
50
+
51
+ /**
52
+ * 更新组件配置,并触发组件重新渲染
53
+ * @param config 组件属性(参数)
54
+ * @param upOp 操作类型
55
+ */
56
+ public abstract update(config: C, upOp?: UpdateOptions): void;
57
+
58
+ /**
59
+ * 销毁组件
60
+ */
61
+ public destroy(): void {
62
+ this.instance = null;
63
+ this.config = null;
64
+ this.container = null;
65
+ }
66
+
67
+
68
+ /******************普通方法******************/
69
+ /**
70
+ * 获取组件配置数据
71
+ */
72
+ public abstract getConfig(): C | null;
73
+
74
+ }
75
+
76
+ export default AbstractController;
@@ -0,0 +1,77 @@
1
+ /*
2
+ * Copyright © 2023-2025 puyinzhen
3
+ * All rights reserved.
4
+ *
5
+ * The copyright of this work (or idea/project/document) is owned by puyinzhen. Without explicit written permission, no part of this work may be reproduced, distributed, or modified in any form for commercial purposes.
6
+ *
7
+ * This copyright statement applies to, but is not limited to: concept descriptions, design documents, source code, images, presentation files, and any related content.
8
+ *
9
+ * For permission to use this work or any part of it, please contact 1182810784@qq.com to obtain written authorization.
10
+ */
11
+
12
+ import {MenuInfo} from "../../designer/right/MenuType";
13
+ import AbstractController from "./AbstractController";
14
+ import {ICategorize} from "../../designer/left/compoent-lib/ComponentCategorize.ts";
15
+ import {BaseInfoType, MenuToConfigMappingType} from "light-chaser-types/types/ComponentTypes.ts";
16
+ import {ClazzTemplate} from "light-chaser-types/types/DesignerToolsTypes.ts";
17
+
18
+
19
+ /**
20
+ * 自动扫描抽象组件定义核心类。
21
+ * 对于所有继承并实现了该抽象类的子类,都会被自动扫描到并注册到设计器中。
22
+ * 因此,所有要接入设计器的react组件都应该按照该类的约定实现其所有的方法。
23
+ *
24
+ * 泛型说明:
25
+ * C: 组件控制器类,用于指定当前组件定义对应的控制器类
26
+ * P: 组件配置类型,用于指定当前组件的配置数据(config属性的类型)
27
+ */
28
+ export abstract class AbstractDefinition<C extends AbstractController = AbstractController, P = any> {
29
+
30
+ /**
31
+ * 返回组件基础信息,用于在组件列表中展示
32
+ */
33
+ abstract getBaseInfo(): BaseInfoType ;
34
+
35
+ /**
36
+ * 返回组件的初始配置,用于在画布渲染组件时的初始化组件数据
37
+ */
38
+ abstract getInitConfig(): P;
39
+
40
+ /**
41
+ * 返回React组件Controller控制器的类模板,在画布中创建组件实例时会根据该方法的返回值实例化组件控制器并保存。
42
+ * 后续将通过该控制器的实例对象来控制组件的生命周期
43
+ */
44
+ abstract getController(): ClazzTemplate<C> | null;
45
+
46
+ /**
47
+ * 返回组件图片缩略图,在组件列表中展示时使用。图片尺寸越小越好
48
+ */
49
+ abstract getChartImg(): string | null;
50
+
51
+ /**
52
+ * 返回右侧配置菜单列表,双击组件时需要展示该菜单列表
53
+ */
54
+ abstract getMenuList(): Array<MenuInfo>;
55
+
56
+ /**
57
+ * 返回右侧菜单与对应配置内容组件的映射关系
58
+ */
59
+ abstract getMenuToConfigContentMap(): MenuToConfigMappingType;
60
+
61
+
62
+
63
+ /**
64
+ * 自定义组件主分类,如需要创建一个设计器没有提供的主分类,则实现该方法
65
+ */
66
+ getCategorize(): ICategorize | null {
67
+ return null;
68
+ }
69
+
70
+ /**
71
+ * 自定义组件子分类,如需要创建一个设计器没有提供的子分类,则实现该方法
72
+ */
73
+ getSubCategorize(): ICategorize | null {
74
+ return null;
75
+ }
76
+ }
77
+
@@ -0,0 +1,129 @@
1
+ /*
2
+ * Copyright © 2023-2025 puyinzhen
3
+ * All rights reserved.
4
+ *
5
+ * The copyright of this work (or idea/project/document) is owned by puyinzhen. Without explicit written permission, no part of this work may be reproduced, distributed, or modified in any form for commercial purposes.
6
+ *
7
+ * This copyright statement applies to, but is not limited to: concept descriptions, design documents, source code, images, presentation files, and any related content.
8
+ *
9
+ * For permission to use this work or any part of it, please contact 1182810784@qq.com to obtain written authorization.
10
+ */
11
+
12
+ import AbstractController from "./AbstractController";
13
+ import BPExecutor from "../../designer/blueprint/core/BPExecutor.ts";
14
+ import {ComponentBaseProps} from "light-chaser-types/types/ComponentTypes.ts";
15
+ import {IThemeItem} from "light-chaser-types/types/ThemeTypes.ts";
16
+ import {IFilterConfigType} from "light-chaser-types/types/FilterTypes.ts";
17
+ import ComponentDataUpdater from "./tools/ComponentDataUpdater.ts";
18
+
19
+ /**
20
+ * AbstractDesignerController继承自AbstractController,在泛型的定义和约束上和AbstractController完全保持一致。
21
+ * 此外,AbstractDesignerController扩展了一些自定义组件所需的特有方法,如:修改组件数据、注册蓝图事件等
22
+ */
23
+ abstract class AbstractDesignerController<I = any, C = any> extends AbstractController<I, C> {
24
+ //上一次数据连接状态 true:成功 false:失败
25
+ protected lastReqState: boolean = true;
26
+ //异常提示信息dom元素
27
+ private errMsgDom: HTMLElement | null = null;
28
+ //蓝图事件触发器
29
+ public bpExecutor: BPExecutor | null = null;
30
+ //组件统一数据更新器
31
+ public componentDataUpdater: ComponentDataUpdater | null = null;
32
+ //循环渲染索引
33
+ public index?: number;
34
+
35
+ public async create(container: HTMLElement, config: C, bpExecutor: BPExecutor, index?: number): Promise<void> {
36
+ this.index = index;
37
+ this.config = config;
38
+ this.container = container;
39
+ this.bpExecutor = bpExecutor;
40
+ }
41
+
42
+ /**
43
+ * 更新组件数据,且必须触发组件的重新渲染
44
+ * @param data
45
+ */
46
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
47
+ public changeData(data: any): void {
48
+ }
49
+
50
+ /**
51
+ * 用于注册组件事件,在组件接入蓝图事件系统时使用
52
+ */
53
+ public registerEvent(): void {
54
+ }
55
+
56
+ /**
57
+ * 加载组件数据,用于在预览(展示)模式下渲染完组件后根据当前组件的数据配置自动加载并更新组件数组。
58
+ * 注:若自定义组件有自己的数据加载方式,则需要覆写此方法
59
+ */
60
+ public loadComponentData(): void {
61
+ import("./tools/ComponentDataUpdater.ts").then(module => {
62
+ const ComponentDataUpdater = module.default;
63
+ this.componentDataUpdater = new ComponentDataUpdater(
64
+ (data: any) => {
65
+ if (!this.lastReqState) {
66
+ this.lastReqState = true;
67
+ this.errMsgDom?.remove();
68
+ this.errMsgDom = null;
69
+ }
70
+ this.changeData(data);
71
+ },
72
+ () => {
73
+ this.lastReqState = false;
74
+ const {layerConfigs} = window.LC_ENV.currentManager.layerManager;
75
+ const hide = layerConfigs[(this.config as any)?.base?.id];
76
+ //请求失败,在原有容器的基础上添加异常提示信息的dom元素(此处直接操作dom元素,不适用react的api进行组件的反复挂载和卸载)
77
+ if (!this.errMsgDom && !hide) {
78
+ this.errMsgDom = document.createElement("div");
79
+ this.errMsgDom.classList.add("view-error-message");
80
+ this.errMsgDom.innerText = "数据加载失败...";
81
+ this.container!.appendChild(this.errMsgDom);
82
+ }
83
+ });
84
+ this.componentDataUpdater.run((this.config as ComponentBaseProps).data!);
85
+ })
86
+ }
87
+
88
+ /**
89
+ * 更新本组件的主题样式方法,用于在全局切换主题时使用
90
+ * @param newTheme 新主题
91
+ */
92
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
93
+ public updateTheme(newTheme: IThemeItem): void {
94
+ }
95
+
96
+ public updateFilter(filter: IFilterConfigType): void {
97
+ if (this.config && (this.config as ComponentBaseProps).filter)
98
+ (this.config as ComponentBaseProps)!.filter = filter;
99
+ if (!this.container)
100
+ return;
101
+ if (filter?.enable) {
102
+ this.container.style.filter = `blur(${filter.blur}px) brightness(${filter.brightness}) contrast(${filter.contrast}) opacity(${filter.opacity}) saturate(${filter.saturate}) hue-rotate(${filter.hueRotate}deg)`
103
+ } else {
104
+ this.container.style.filter = 'none';
105
+ }
106
+ }
107
+
108
+ /**
109
+ * 设置组件的显示状态,默认直接使用css属性控制组件显示。
110
+ * 接入组件的过程中,建议自行实现该方法以达到更好的性能表现。建议的做法是显示时重新渲染组件. 隐藏时卸载整个组件即dom元素。可以节省内存开销
111
+ * @param visible
112
+ */
113
+ public setVisible(visible: boolean): void {
114
+ if (this.container) {
115
+ if (visible)
116
+ this.container.style.visibility = "visible";
117
+ else
118
+ this.container.style.visibility = "hidden";
119
+ }
120
+ }
121
+
122
+
123
+ destroy() {
124
+ this.componentDataUpdater?.destroy();
125
+ super.destroy();
126
+ }
127
+ }
128
+
129
+ export default AbstractDesignerController;
@@ -0,0 +1,136 @@
1
+ /*
2
+ * Copyright © 2023-2025 puyinzhen
3
+ * All rights reserved.
4
+ *
5
+ * The copyright of this work (or idea/project/document) is owned by puyinzhen. Without explicit written permission, no part of this work may be reproduced, distributed, or modified in any form for commercial purposes.
6
+ *
7
+ * This copyright statement applies to, but is not limited to: concept descriptions, design documents, source code, images, presentation files, and any related content.
8
+ *
9
+ * For permission to use this work or any part of it, please contact 1182810784@qq.com to obtain written authorization.
10
+ */
11
+
12
+ import {AbstractDefinition} from "./AbstractDefinition.ts";
13
+ import AbstractController from "./AbstractController.ts";
14
+ import AbstractDesignerController from "./AbstractDesignerController.ts";
15
+ import {MenuInfo} from "../../designer/right/MenuType.ts";
16
+ import {ColorFilter, Data, Optimize, SettingOne, Theme} from "@icon-park/react";
17
+ import {lazy} from "react";
18
+ import {MenuToConfigMappingType} from "light-chaser-types/types/ComponentTypes.ts";
19
+ import {EventInfo} from "light-chaser-types/types/BluePrintTypes.ts";
20
+
21
+ export interface ActionInfo {
22
+ name: string;
23
+ id: string;
24
+ handler: (controller: AbstractDesignerController, params?: any) => void;
25
+ }
26
+
27
+
28
+ const AnimationConfig = lazy(() => import("../../comps/common-component/animation-config/AnimationConfig.tsx"));
29
+ const ThemeConfig = lazy(() => import("../../comps/common-component/theme-config/ThemeConfig.tsx"));
30
+ const BaseInfo = lazy(() => import("../../comps/common-component/base-info/BaseInfo.tsx"));
31
+ const DataConfig = lazy(() => import("../../comps/common-component/data-config/DataConfig.tsx"));
32
+ const FilterConfig = lazy(() => import("../../comps/common-component/filter-config/FilterConfig.tsx"));
33
+
34
+
35
+ export default abstract class AbstractDesignerDefinition<C extends AbstractController = AbstractDesignerController, P = any> extends AbstractDefinition<C, P> {
36
+
37
+ getMenuList(): Array<MenuInfo> {
38
+ return [
39
+ {
40
+ icon: SettingOne,
41
+ name: '基础',
42
+ key: 'base',
43
+ },
44
+ {
45
+ icon: Optimize,
46
+ name: '样式',
47
+ key: 'style',
48
+ },
49
+ {
50
+ icon: Data,
51
+ name: '数据',
52
+ key: 'data',
53
+ },
54
+ {
55
+ icon: ColorFilter,
56
+ name: '滤镜',
57
+ key: 'filter',
58
+ },
59
+ {
60
+ icon: Theme,
61
+ name: '主题',
62
+ key: 'theme',
63
+ }
64
+ ];
65
+ }
66
+
67
+ getMenuToConfigContentMap(): MenuToConfigMappingType {
68
+ return {
69
+ base: BaseInfo,
70
+ data: DataConfig,
71
+ animation: AnimationConfig,
72
+ theme: ThemeConfig,
73
+ filter: FilterConfig
74
+ };
75
+ }
76
+
77
+ /**
78
+ * 返回当前组件能触发的事件列表, 在蓝图图层节点中使用
79
+ */
80
+ getEventList(): EventInfo[] {
81
+ return [
82
+ {
83
+ id: "loaded",
84
+ name: "组件加载完成时",
85
+ }
86
+ ];
87
+ }
88
+
89
+ /**
90
+ * 返回当前组件能接受的动作列表,在蓝图图层节点中使用。可据此实现对组件的操作
91
+ */
92
+ getActionList(): ActionInfo[] {
93
+ return [
94
+ {
95
+ name: "显示",
96
+ id: "show",
97
+ handler: (controller: AbstractDesignerController) => {
98
+ controller.setVisible(true);
99
+ }
100
+ },
101
+ {
102
+ name: "隐藏",
103
+ id: "hide",
104
+ handler: (controller: AbstractDesignerController) => {
105
+ controller.setVisible(false);
106
+ }
107
+ },
108
+ {
109
+ name: "更新组件样式",
110
+ id: "updateConfig",
111
+ handler: (controller: AbstractDesignerController, params?: object) => {
112
+ controller.update(params);
113
+ }
114
+ },
115
+ {
116
+ name: "更新组件数据",
117
+ id: "updateData",
118
+ handler: (controller: AbstractDesignerController, params?: object) => {
119
+ controller.changeData(params);
120
+ }
121
+ },
122
+ {
123
+ name: "切换状态",
124
+ id: "toggleStatus",
125
+ handler: (controller: AbstractDesignerController, statusId?: string) => {
126
+ if (!statusId)
127
+ return;
128
+ const status = controller.config.status[statusId];
129
+ if (!status)
130
+ return;
131
+ controller.update(status.config);
132
+ }
133
+ }
134
+ ];
135
+ }
136
+ }
@@ -0,0 +1,15 @@
1
+ /*
2
+ * Copyright © 2023-2025 puyinzhen
3
+ * All rights reserved.
4
+ *
5
+ * The copyright of this work (or idea/project/document) is owned by puyinzhen. Without explicit written permission, no part of this work may be reproduced, distributed, or modified in any form for commercial purposes.
6
+ *
7
+ * This copyright statement applies to, but is not limited to: concept descriptions, design documents, source code, images, presentation files, and any related content.
8
+ *
9
+ * For permission to use this work or any part of it, please contact 1182810784@qq.com to obtain written authorization.
10
+ */
11
+
12
+ export default abstract class AbstractScaleObserver {
13
+
14
+ abstract doScale(xScale: number, yScale: number): void;
15
+ }
@@ -0,0 +1,130 @@
1
+ /*
2
+ * Copyright © 2023-2025 puyinzhen
3
+ * All rights reserved.
4
+ *
5
+ * The copyright of this work (or idea/project/document) is owned by puyinzhen. Without explicit written permission, no part of this work may be reproduced, distributed, or modified in any form for commercial purposes.
6
+ *
7
+ * This copyright statement applies to, but is not limited to: concept descriptions, design documents, source code, images, presentation files, and any related content.
8
+ *
9
+ * For permission to use this work or any part of it, please contact 1182810784@qq.com to obtain written authorization.
10
+ */
11
+
12
+ import {memo, Suspense, useEffect, useRef} from "react";
13
+ import runtimeConfigStore from "../../designer/store/RuntimeStore.ts";
14
+ import {AbstractDefinition} from "./AbstractDefinition";
15
+ import AbstractDesignerController from "./AbstractDesignerController";
16
+ import DesignerManager from "../../designer/manager/DesignerManager.ts";
17
+ import {DesignerMode} from "light-chaser-types/types/DesignerTypes.ts";
18
+ import {ILayerItem} from "light-chaser-types/types/LayerTypes.ts";
19
+ import Loading from "light-chaser-ui/lib/loading/Loading.tsx";
20
+ import DesignerLoader from "../../designer/loader/DesignerLoader.ts";
21
+ import {cloneDeep} from "lodash";
22
+ import DataUtil from "../../util/DataUtil.ts";
23
+
24
+ export interface ComponentContainerProps {
25
+ index?: number; //组件索引(用于循环容器子组件渲染标识,非循环容器渲染时不用传递)
26
+ layer: ILayerItem;
27
+ triggerSource?: string; //渲染源,可能来自编辑模式,预览模式,或大屏引用组件
28
+ designerManager: DesignerManager;
29
+ }
30
+
31
+ const ComponentContainer = memo((props: ComponentContainerProps) => {
32
+ const {layer, triggerSource, designerManager, index} = props;
33
+ const layerManager = designerManager.layerManager!;
34
+ const ref = useRef(null);
35
+ const {auxiliaryBorder} = runtimeConfigStore;
36
+ const enableEvent = window.LC_ENV.mode !== DesignerMode.EDIT || layerManager.enableEvent;
37
+ const editDisplay = !(window.LC_ENV.mode === DesignerMode.EDIT && layer.hide);
38
+
39
+ useEffect(() => {
40
+ //通过ref创建组件,并将组件实例存入Map中。后续通过Map匹配到具体实例,调用实例的对象方法进行组件的更新操作
41
+ const {elemConfigs, controllers} = layerManager;
42
+ const componentDefine: AbstractDefinition = DesignerLoader.definitionMap[layer!.type!];
43
+ if (componentDefine) {
44
+ const Controller = componentDefine.getController();
45
+ if (Controller) {
46
+ let config;
47
+ if (layer.id! in controllers!) {
48
+ //重新编组后,被编组组件会重新渲染,需从之前的实例中获取原有数据
49
+ config = controllers![layer.id!].getConfig();
50
+ } else if (layer.id! in elemConfigs!) {
51
+ config = elemConfigs![layer.id!];
52
+ } else {
53
+ config = componentDefine.getInitConfig();
54
+ config.base.id = layer.id!;
55
+ }
56
+ const controller = new Controller()! as AbstractDesignerController;
57
+ /**
58
+ * 此处注意,执行顺序尤为重要!!!
59
+ * 第一步:动态代理绑定在前,
60
+ * 第二步:赋值controller在后,
61
+ * 第三步:最后才是执行create方法。
62
+ * 否则导致蓝图事件执行时,获取controller实例为undefined
63
+ */
64
+ controllers[layer.id + ''] = controller;
65
+ if (index != null) {
66
+ controllers[`${layer.id}_${index}`] = controller;
67
+ config = cloneDeep(config)
68
+ }
69
+
70
+ //TODO 编辑模式下兼容静态数据(后续要删除)
71
+ if (window.LC_ENV.mode === DesignerMode.EDIT && config?.data?.staticData)
72
+ config.data.value = DataUtil.getStaticData(config.data?.staticData);
73
+
74
+ controller.create(ref.current!, config, designerManager.bpExecutor!, index).then(() => {
75
+ //根据图层hide控制初始时图层显示和隐藏
76
+ controller.setVisible(!layer.hide);
77
+ //在组件完全渲染完毕后进行数据的加载和事件的注册
78
+ if (window.LC_ENV.mode !== DesignerMode.EDIT) {
79
+ //非编辑模式下使用动态代理对象,执行蓝图事件
80
+ registerProxy(layer.id!, controller);
81
+ controller.registerEvent();
82
+ controller.loadComponentData();
83
+ }
84
+ //设置组件滤镜效果(todo 考虑是否应该在此处设置?)
85
+ controller.updateFilter(controller.getConfig()?.filter);
86
+ //渲染后删除elemConfigs中的映射关系(需要观察是否会造成其他问题)
87
+ delete elemConfigs![layer.id!];
88
+ });
89
+ }
90
+ }
91
+ }, []);
92
+
93
+ return (
94
+ <Suspense fallback={<Loading/>}>
95
+ <div
96
+ id={layer.id}
97
+ data-type={layer.type}
98
+ data-lock={layer.lock}
99
+ data-hide={layer.hide}
100
+ key={layer.id + ''}
101
+ style={{
102
+ width: layer.width,
103
+ height: layer.height,
104
+ transform: `translate(${layer.x!}px, ${layer.y!}px) rotate(${layer.rotate ?? 0}deg)`,
105
+ visibility: editDisplay ? undefined : 'hidden',
106
+ position: 'absolute',
107
+ border: auxiliaryBorder ? '1px solid #65eafc' : 'none'
108
+ }} className={`lc-comp-item${triggerSource || ''}`}>
109
+ <div ref={ref} style={{
110
+ width: '100%',
111
+ height: '100%',
112
+ pointerEvents: enableEvent ? 'auto' : 'none',
113
+ position: 'relative'
114
+ }}/>
115
+ </div>
116
+ </Suspense>
117
+ )
118
+ });
119
+
120
+
121
+ export default ComponentContainer;
122
+
123
+ const registerProxy = (compId: string, controller: AbstractDesignerController) => {
124
+ controller.changeData = new Proxy(controller.changeData, {
125
+ apply(target, thisArg, argus) {
126
+ controller.bpExecutor?.triggerComponentEvent(compId, "dataChange", argus[0], controller.index);
127
+ return target.apply(thisArg, argus as any);
128
+ }
129
+ });
130
+ }
@@ -0,0 +1,33 @@
1
+ /*
2
+ * Copyright © 2023-2025 puyinzhen
3
+ * All rights reserved.
4
+ *
5
+ * The copyright of this work (or idea/project/document) is owned by puyinzhen. Without explicit written permission, no part of this work may be reproduced, distributed, or modified in any form for commercial purposes.
6
+ *
7
+ * This copyright statement applies to, but is not limited to: concept descriptions, design documents, source code, images, presentation files, and any related content.
8
+ *
9
+ * For permission to use this work or any part of it, please contact 1182810784@qq.com to obtain written authorization.
10
+ */
11
+
12
+ import AbstractScaleObserver from "./AbstractScaleObserver.ts";
13
+
14
+ export default class ScaleAction {
15
+
16
+ public static xScale: number = 1;
17
+ public static yScale: number = 1;
18
+
19
+ public static observers: AbstractScaleObserver[] = [];
20
+
21
+ public static doScale(xScale: number, yScale: number) {
22
+ ScaleAction.xScale = xScale;
23
+ ScaleAction.yScale = yScale;
24
+ ScaleAction.observers.forEach(observer => observer.doScale(xScale, yScale));
25
+ }
26
+
27
+ public static add(observer: AbstractScaleObserver) {
28
+ ScaleAction.observers.push(observer);
29
+ if (ScaleAction.xScale !== 1 || ScaleAction.yScale !== 1) {
30
+ observer.doScale(ScaleAction.xScale, ScaleAction.yScale);
31
+ }
32
+ }
33
+ }