@fmsim/layout-view 0.0.49

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 (281) hide show
  1. package/dist-client/board-provider.d.ts +3 -0
  2. package/dist-client/board-provider.js +44 -0
  3. package/dist-client/board-provider.js.map +1 -0
  4. package/dist-client/bootstrap.d.ts +2 -0
  5. package/dist-client/bootstrap.js +16 -0
  6. package/dist-client/bootstrap.js.map +1 -0
  7. package/dist-client/data-grist/color-map-editor.d.ts +8 -0
  8. package/dist-client/data-grist/color-map-editor.js +17 -0
  9. package/dist-client/data-grist/color-map-editor.js.map +1 -0
  10. package/dist-client/data-grist/color-ranges-editor.d.ts +8 -0
  11. package/dist-client/data-grist/color-ranges-editor.js +17 -0
  12. package/dist-client/data-grist/color-ranges-editor.js.map +1 -0
  13. package/dist-client/index.d.ts +4 -0
  14. package/dist-client/index.js +5 -0
  15. package/dist-client/index.js.map +1 -0
  16. package/dist-client/pages/board-modeller-page.d.ts +49 -0
  17. package/dist-client/pages/board-modeller-page.js +267 -0
  18. package/dist-client/pages/board-modeller-page.js.map +1 -0
  19. package/dist-client/pages/board-viewer-page.d.ts +41 -0
  20. package/dist-client/pages/board-viewer-page.js +205 -0
  21. package/dist-client/pages/board-viewer-page.js.map +1 -0
  22. package/dist-client/pages/fmb-unit-info.d.ts +18 -0
  23. package/dist-client/pages/fmb-unit-info.js +170 -0
  24. package/dist-client/pages/fmb-unit-info.js.map +1 -0
  25. package/dist-client/pages/theme/theme-editors.d.ts +5 -0
  26. package/dist-client/pages/theme/theme-editors.js +53 -0
  27. package/dist-client/pages/theme/theme-editors.js.map +1 -0
  28. package/dist-client/pages/theme/theme-list-page.d.ts +49 -0
  29. package/dist-client/pages/theme/theme-list-page.js +235 -0
  30. package/dist-client/pages/theme/theme-list-page.js.map +1 -0
  31. package/dist-client/pages/things-scene-components-with-tools.import +0 -0
  32. package/dist-client/pages/things-scene-components.import +0 -0
  33. package/dist-client/pages/utils.d.ts +1 -0
  34. package/dist-client/pages/utils.js +8 -0
  35. package/dist-client/pages/utils.js.map +1 -0
  36. package/dist-client/route.d.ts +1 -0
  37. package/dist-client/route.js +14 -0
  38. package/dist-client/route.js.map +1 -0
  39. package/dist-client/themes/board-theme.css +108 -0
  40. package/dist-client/tsconfig.tsbuildinfo +1 -0
  41. package/dist-server/index.js +1 -0
  42. package/dist-server/index.js.map +1 -0
  43. package/dist-server/migrations/index.js +12 -0
  44. package/dist-server/migrations/index.js.map +1 -0
  45. package/dist-server/tsconfig.tsbuildinfo +1 -0
  46. package/helps/board-modeller/accessor.ko.md +4 -0
  47. package/helps/board-modeller/accessor.md +4 -0
  48. package/helps/board-modeller/accessor.zh.md +4 -0
  49. package/helps/board-modeller/data-binding.ko.md +100 -0
  50. package/helps/board-modeller/data-binding.md +100 -0
  51. package/helps/board-modeller/data-binding.zh.md +89 -0
  52. package/helps/board-modeller/data-spread.ko.md +59 -0
  53. package/helps/board-modeller/data-spread.md +59 -0
  54. package/helps/board-modeller/data-spread.zh.md +57 -0
  55. package/helps/board-modeller/effects/animation.ko.md +46 -0
  56. package/helps/board-modeller/effects/animation.md +47 -0
  57. package/helps/board-modeller/effects/animation.zh.md +47 -0
  58. package/helps/board-modeller/effects/hover-event.ko.md +55 -0
  59. package/helps/board-modeller/effects/hover-event.md +57 -0
  60. package/helps/board-modeller/effects/hover-event.zh.md +55 -0
  61. package/helps/board-modeller/effects/retention.ko.md +4 -0
  62. package/helps/board-modeller/effects/retention.md +4 -0
  63. package/helps/board-modeller/effects/retention.zh.md +4 -0
  64. package/helps/board-modeller/effects/shadow.ko.md +18 -0
  65. package/helps/board-modeller/effects/shadow.md +21 -0
  66. package/helps/board-modeller/effects/shadow.zh.md +19 -0
  67. package/helps/board-modeller/effects/tap-event.ko.md +88 -0
  68. package/helps/board-modeller/effects/tap-event.md +84 -0
  69. package/helps/board-modeller/effects/tap-event.zh.md +85 -0
  70. package/helps/board-modeller/images/animation-01.gif +0 -0
  71. package/helps/board-modeller/images/animation-02.gif +0 -0
  72. package/helps/board-modeller/images/animation-03.gif +0 -0
  73. package/helps/board-modeller/images/animation-04.gif +0 -0
  74. package/helps/board-modeller/images/animation-05.gif +0 -0
  75. package/helps/board-modeller/images/animation-06.gif +0 -0
  76. package/helps/board-modeller/images/animation-07.gif +0 -0
  77. package/helps/board-modeller/images/animation-08.gif +0 -0
  78. package/helps/board-modeller/images/animation-09.gif +0 -0
  79. package/helps/board-modeller/images/animation-10.gif +0 -0
  80. package/helps/board-modeller/images/common-property-text-align-horizontal.png +0 -0
  81. package/helps/board-modeller/images/common-property-text-align-vertical.png +0 -0
  82. package/helps/board-modeller/images/common-property-text-margin.png +0 -0
  83. package/helps/board-modeller/images/component-3D.png +0 -0
  84. package/helps/board-modeller/images/component-arrow.png +0 -0
  85. package/helps/board-modeller/images/component-chart-gauge.png +0 -0
  86. package/helps/board-modeller/images/component-container.png +0 -0
  87. package/helps/board-modeller/images/component-datasource.png +0 -0
  88. package/helps/board-modeller/images/component-etc.png +0 -0
  89. package/helps/board-modeller/images/component-form.png +0 -0
  90. package/helps/board-modeller/images/component-gauge.png +0 -0
  91. package/helps/board-modeller/images/component-image.png +0 -0
  92. package/helps/board-modeller/images/component-iot.png +0 -0
  93. package/helps/board-modeller/images/component-line.png +0 -0
  94. package/helps/board-modeller/images/component-shape.png +0 -0
  95. package/helps/board-modeller/images/component-table.png +0 -0
  96. package/helps/board-modeller/images/component-text-media.png +0 -0
  97. package/helps/board-modeller/images/component-toolbar.png +0 -0
  98. package/helps/board-modeller/images/component-warehouse.png +0 -0
  99. package/helps/board-modeller/images/control-toolbar-02.png +0 -0
  100. package/helps/board-modeller/images/control-toolbar-03.png +0 -0
  101. package/helps/board-modeller/images/control-toolbar-04.png +0 -0
  102. package/helps/board-modeller/images/control-toolbar-05.png +0 -0
  103. package/helps/board-modeller/images/control-toolbar-06.png +0 -0
  104. package/helps/board-modeller/images/control-toolbar-07.png +0 -0
  105. package/helps/board-modeller/images/control-toolbar-08.png +0 -0
  106. package/helps/board-modeller/images/control-toolbar-09.png +0 -0
  107. package/helps/board-modeller/images/control-toolbar-10.png +0 -0
  108. package/helps/board-modeller/images/control-toolbar-11.png +0 -0
  109. package/helps/board-modeller/images/control-toolbar-12.png +0 -0
  110. package/helps/board-modeller/images/control-toolbar-13.png +0 -0
  111. package/helps/board-modeller/images/control-toolbar-14.png +0 -0
  112. package/helps/board-modeller/images/control-toolbar-15.png +0 -0
  113. package/helps/board-modeller/images/control-toolbar-16.png +0 -0
  114. package/helps/board-modeller/images/control-toolbar-17.png +0 -0
  115. package/helps/board-modeller/images/control-toolbar-18.png +0 -0
  116. package/helps/board-modeller/images/control-toolbar-19.png +0 -0
  117. package/helps/board-modeller/images/control-toolbar-20.png +0 -0
  118. package/helps/board-modeller/images/control-toolbar-21.png +0 -0
  119. package/helps/board-modeller/images/control-toolbar-22.png +0 -0
  120. package/helps/board-modeller/images/control-toolbar-23.png +0 -0
  121. package/helps/board-modeller/images/control-toolbar-24.png +0 -0
  122. package/helps/board-modeller/images/control-toolbar-25.png +0 -0
  123. package/helps/board-modeller/images/control-toolbar-26.png +0 -0
  124. package/helps/board-modeller/images/control-toolbar-27.png +0 -0
  125. package/helps/board-modeller/images/control-toolbar-28.png +0 -0
  126. package/helps/board-modeller/images/control-toolbar-29.png +0 -0
  127. package/helps/board-modeller/images/control-toolbar-30.png +0 -0
  128. package/helps/board-modeller/images/control-toolbar-31.png +0 -0
  129. package/helps/board-modeller/images/control-toolbar-32.png +0 -0
  130. package/helps/board-modeller/images/control-toolbar.png +0 -0
  131. package/helps/board-modeller/images/effect-property.png +0 -0
  132. package/helps/board-modeller/images/hover-01.png +0 -0
  133. package/helps/board-modeller/images/join-type-bevel.png +0 -0
  134. package/helps/board-modeller/images/join-type-miter.png +0 -0
  135. package/helps/board-modeller/images/join-type-round.png +0 -0
  136. package/helps/board-modeller/images/modeler-layout-01.png +0 -0
  137. package/helps/board-modeller/images/property-window.png +0 -0
  138. package/helps/board-modeller/images/shadow-02.png +0 -0
  139. package/helps/board-modeller/images/shadow-03.png +0 -0
  140. package/helps/board-modeller/images/shadow-04.png +0 -0
  141. package/helps/board-modeller/images/shadow-05.png +0 -0
  142. package/helps/board-modeller/images/shape-property.png +0 -0
  143. package/helps/board-modeller/images/specific-property.png +0 -0
  144. package/helps/board-modeller/images/style-property.png +0 -0
  145. package/helps/board-modeller/images/target-property.png +0 -0
  146. package/helps/board-modeller/images/variable-property.png +0 -0
  147. package/helps/board-modeller/initial-data.ko.md +8 -0
  148. package/helps/board-modeller/initial-data.md +8 -0
  149. package/helps/board-modeller/initial-data.zh.md +8 -0
  150. package/helps/board-modeller/modeller.ko.md +244 -0
  151. package/helps/board-modeller/modeller.md +206 -0
  152. package/helps/board-modeller/modeller.zh.md +241 -0
  153. package/helps/board-modeller/shapes/3dish.ko.md +17 -0
  154. package/helps/board-modeller/shapes/3dish.md +17 -0
  155. package/helps/board-modeller/shapes/3dish.zh.md +17 -0
  156. package/helps/board-modeller/shapes/print-option.ko.md +26 -0
  157. package/helps/board-modeller/shapes/print-option.md +26 -0
  158. package/helps/board-modeller/shapes/print-option.zh.md +26 -0
  159. package/helps/board-modeller/shapes/shapes.ko.md +19 -0
  160. package/helps/board-modeller/shapes/shapes.md +21 -0
  161. package/helps/board-modeller/shapes/shapes.zh.md +19 -0
  162. package/helps/board-modeller/shapes/size.ko.md +8 -0
  163. package/helps/board-modeller/shapes/size.md +8 -0
  164. package/helps/board-modeller/shapes/size.zh.md +8 -0
  165. package/helps/board-modeller/shapes/text-box.ko.md +16 -0
  166. package/helps/board-modeller/shapes/text-box.md +16 -0
  167. package/helps/board-modeller/shapes/text-box.zh.md +16 -0
  168. package/helps/board-modeller/shapes/viewer-option.ko.md +9 -0
  169. package/helps/board-modeller/shapes/viewer-option.md +9 -0
  170. package/helps/board-modeller/shapes/viewer-option.zh.md +9 -0
  171. package/helps/board-modeller/styles/fill-style.ko.md +18 -0
  172. package/helps/board-modeller/styles/fill-style.md +18 -0
  173. package/helps/board-modeller/styles/fill-style.zh.md +18 -0
  174. package/helps/board-modeller/styles/line-style.ko.md +19 -0
  175. package/helps/board-modeller/styles/line-style.md +23 -0
  176. package/helps/board-modeller/styles/line-style.zh.md +19 -0
  177. package/helps/board-modeller/styles/opacity.ko.md +3 -0
  178. package/helps/board-modeller/styles/opacity.md +3 -0
  179. package/helps/board-modeller/styles/opacity.zh.md +3 -0
  180. package/helps/board-modeller/styles/text-style.ko.md +8 -0
  181. package/helps/board-modeller/styles/text-style.md +8 -0
  182. package/helps/board-modeller/styles/text-style.zh.md +8 -0
  183. package/helps/scene/component/arrow.ko.md +9 -0
  184. package/helps/scene/component/arrow.md +9 -0
  185. package/helps/scene/component/arrow.zh.md +9 -0
  186. package/helps/scene/component/audio.ko.md +1 -0
  187. package/helps/scene/component/audio.md +1 -0
  188. package/helps/scene/component/audio.zh.md +1 -0
  189. package/helps/scene/component/both-arrow.ko.md +9 -0
  190. package/helps/scene/component/both-arrow.md +9 -0
  191. package/helps/scene/component/both-arrow.zh.md +9 -0
  192. package/helps/scene/component/color-image.ko.md +9 -0
  193. package/helps/scene/component/color-image.md +9 -0
  194. package/helps/scene/component/color-image.zh.md +9 -0
  195. package/helps/scene/component/container.ko.md +7 -0
  196. package/helps/scene/component/container.md +9 -0
  197. package/helps/scene/component/container.zh.md +8 -0
  198. package/helps/scene/component/donut.ko.md +14 -0
  199. package/helps/scene/component/donut.md +17 -0
  200. package/helps/scene/component/donut.zh.md +18 -0
  201. package/helps/scene/component/dotted-line.ko.md +7 -0
  202. package/helps/scene/component/dotted-line.md +9 -0
  203. package/helps/scene/component/dotted-line.zh.md +7 -0
  204. package/helps/scene/component/ellipse.ko.md +11 -0
  205. package/helps/scene/component/ellipse.md +11 -0
  206. package/helps/scene/component/ellipse.zh.md +10 -0
  207. package/helps/scene/component/gif-view.ko.md +10 -0
  208. package/helps/scene/component/gif-view.md +10 -0
  209. package/helps/scene/component/gif-view.zh.md +10 -0
  210. package/helps/scene/component/global-ref.ko.md +1 -0
  211. package/helps/scene/component/global-ref.md +1 -0
  212. package/helps/scene/component/global-ref.zh.md +1 -0
  213. package/helps/scene/component/gray-image.ko.md +9 -0
  214. package/helps/scene/component/gray-image.md +9 -0
  215. package/helps/scene/component/gray-image.zh.md +8 -0
  216. package/helps/scene/component/image-view.md +0 -0
  217. package/helps/scene/component/info-window.ko.md +1 -0
  218. package/helps/scene/component/info-window.md +1 -0
  219. package/helps/scene/component/info-window.zh.md +1 -0
  220. package/helps/scene/component/line.ko.md +9 -0
  221. package/helps/scene/component/line.md +9 -0
  222. package/helps/scene/component/line.zh.md +7 -0
  223. package/helps/scene/component/local-ref.ko.md +1 -0
  224. package/helps/scene/component/local-ref.md +1 -0
  225. package/helps/scene/component/local-ref.zh.md +1 -0
  226. package/helps/scene/component/marker.ko.md +15 -0
  227. package/helps/scene/component/marker.md +15 -0
  228. package/helps/scene/component/marker.zh.md +15 -0
  229. package/helps/scene/component/polygon.ko.md +9 -0
  230. package/helps/scene/component/polygon.md +9 -0
  231. package/helps/scene/component/polygon.zh.md +9 -0
  232. package/helps/scene/component/polyline.ko.md +10 -0
  233. package/helps/scene/component/polyline.md +10 -0
  234. package/helps/scene/component/polyline.zh.md +10 -0
  235. package/helps/scene/component/popup.ko.md +27 -0
  236. package/helps/scene/component/popup.md +27 -0
  237. package/helps/scene/component/rect.ko.md +17 -0
  238. package/helps/scene/component/rect.md +16 -0
  239. package/helps/scene/component/rect.zh.md +16 -0
  240. package/helps/scene/component/star.ko.md +19 -0
  241. package/helps/scene/component/star.md +19 -0
  242. package/helps/scene/component/star.zh.md +19 -0
  243. package/helps/scene/component/text.ko.md +9 -0
  244. package/helps/scene/component/text.md +9 -0
  245. package/helps/scene/component/text.zh.md +9 -0
  246. package/helps/scene/component/top-rounded-ractangle.ko.md +15 -0
  247. package/helps/scene/component/top-rounded-ractangle.md +15 -0
  248. package/helps/scene/component/top-rounded-ractangle.zh.md +15 -0
  249. package/helps/scene/component/triangle.ko.md +9 -0
  250. package/helps/scene/component/triangle.md +9 -0
  251. package/helps/scene/component/triangle.zh.md +9 -0
  252. package/helps/scene/images/both-arrow-01.png +0 -0
  253. package/helps/scene/images/container-01.png +0 -0
  254. package/helps/scene/images/dash-01.png +0 -0
  255. package/helps/scene/images/donut-01.png +0 -0
  256. package/helps/scene/images/donut-02.png +0 -0
  257. package/helps/scene/images/ellipse-01.png +0 -0
  258. package/helps/scene/images/half-round-rect-01.png +0 -0
  259. package/helps/scene/images/half-round-rect-02.png +0 -0
  260. package/helps/scene/images/line-01.png +0 -0
  261. package/helps/scene/images/marker-01.png +0 -0
  262. package/helps/scene/images/marker-02.png +0 -0
  263. package/helps/scene/images/media-01.png +0 -0
  264. package/helps/scene/images/media-02.png +0 -0
  265. package/helps/scene/images/polygon-01.png +0 -0
  266. package/helps/scene/images/polyline-01.png +0 -0
  267. package/helps/scene/images/rect-01.png +0 -0
  268. package/helps/scene/images/rect-02.png +0 -0
  269. package/helps/scene/images/single-arrow-01.png +0 -0
  270. package/helps/scene/images/star-01.png +0 -0
  271. package/helps/scene/images/star-02.png +0 -0
  272. package/helps/scene/images/star-03.png +0 -0
  273. package/helps/scene/images/text-01.png +0 -0
  274. package/helps/scene/images/triangle-01.png +0 -0
  275. package/package.json +45 -0
  276. package/things-factory.config.js +21 -0
  277. package/translations/en.json +637 -0
  278. package/translations/ja.json +638 -0
  279. package/translations/ko.json +638 -0
  280. package/translations/ms.json +636 -0
  281. package/translations/zh.json +639 -0
@@ -0,0 +1,3 @@
1
+ import { ReferenceMap, Scene } from '@hatiolab/things-scene';
2
+ export declare function createBoardProvider(): ReferenceMap<Scene>;
3
+ export declare const provider: ReferenceMap<Scene>;
@@ -0,0 +1,44 @@
1
+ import { create, error, ReferenceMap } from '@hatiolab/things-scene';
2
+ import { DataStorage } from '@fmsim/board';
3
+ import { fetchBoardById } from '@fmsim/api';
4
+ export function createBoardProvider() {
5
+ var _provider = new ReferenceMap(async (boardId, resolve, reject) => {
6
+ try {
7
+ const { board, themes } = (await fetchBoardById(boardId)) || {};
8
+ const style = themes === null || themes === void 0 ? void 0 : themes.items.reduce((style, theme) => {
9
+ style[theme.name] = theme.value;
10
+ return style;
11
+ }, {});
12
+ if (!board) {
13
+ reject(new Error('Failed to get the requested board.'));
14
+ return;
15
+ }
16
+ var model = JSON.parse(board.model);
17
+ var scene;
18
+ try {
19
+ scene = await provider.get(boardId);
20
+ console.warn('Board fetched more than twice.', boardId);
21
+ }
22
+ catch (e) {
23
+ scene = create({
24
+ model,
25
+ style,
26
+ mode: 0,
27
+ refProvider: provider,
28
+ dataStorage: new DataStorage(boardId)
29
+ });
30
+ // s.app.baseUrl = undefined;
31
+ }
32
+ resolve(scene);
33
+ }
34
+ catch (e) {
35
+ error(e);
36
+ reject(e);
37
+ }
38
+ }, async (id, ref) => {
39
+ ref.dispose();
40
+ });
41
+ return _provider;
42
+ }
43
+ export const provider = createBoardProvider();
44
+ //# sourceMappingURL=board-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"board-provider.js","sourceRoot":"","sources":["../client/board-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAS,MAAM,wBAAwB,CAAA;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE3C,MAAM,UAAU,mBAAmB;IACjC,IAAI,SAAS,GAAG,IAAI,YAAY,CAC9B,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAgB,EAAE;QAC/C,IAAI;YACF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;YAC/D,MAAM,KAAK,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAClD,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAA;gBAC/B,OAAO,KAAK,CAAA;YACd,CAAC,EAAE,EAAE,CAAC,CAAA;YAEN,IAAI,CAAC,KAAK,EAAE;gBACV,MAAM,CAAC,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAA;gBACvD,OAAM;aACP;YAED,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAEnC,IAAI,KAAY,CAAA;YAEhB,IAAI;gBACF,KAAK,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;gBACnC,OAAO,CAAC,IAAI,CAAC,gCAAgC,EAAE,OAAO,CAAC,CAAA;aACxD;YAAC,OAAO,CAAC,EAAE;gBACV,KAAK,GAAG,MAAM,CAAC;oBACb,KAAK;oBACL,KAAK;oBACL,IAAI,EAAE,CAAC;oBACP,WAAW,EAAE,QAAe;oBAC5B,WAAW,EAAE,IAAI,WAAW,CAAC,OAAO,CAAC;iBACtC,CAAC,CAAA;gBAEF,6BAA6B;aAC9B;YAED,OAAO,CAAC,KAAK,CAAC,CAAA;SACf;QAAC,OAAO,CAAC,EAAE;YACV,KAAK,CAAC,CAAC,CAAC,CAAA;YACR,MAAM,CAAC,CAAC,CAAC,CAAA;SACV;IACH,CAAC,EACD,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;QAChB,GAAG,CAAC,OAAO,EAAE,CAAA;IACf,CAAC,CACF,CAAA;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAA","sourcesContent":["import { create, error, ReferenceMap, Scene } from '@hatiolab/things-scene'\nimport { DataStorage } from '@fmsim/board'\nimport { fetchBoardById } from '@fmsim/api'\n\nexport function createBoardProvider() {\n var _provider = new ReferenceMap<Scene>(\n async (boardId, resolve, reject): Promise<any> => {\n try {\n const { board, themes } = (await fetchBoardById(boardId)) || {}\n const style = themes?.items.reduce((style, theme) => {\n style[theme.name] = theme.value\n return style\n }, {})\n\n if (!board) {\n reject(new Error('Failed to get the requested board.'))\n return\n }\n\n var model = JSON.parse(board.model)\n\n var scene: Scene\n\n try {\n scene = await provider.get(boardId)\n console.warn('Board fetched more than twice.', boardId)\n } catch (e) {\n scene = create({\n model,\n style,\n mode: 0,\n refProvider: provider as any,\n dataStorage: new DataStorage(boardId)\n })\n\n // s.app.baseUrl = undefined;\n }\n\n resolve(scene)\n } catch (e) {\n error(e)\n reject(e)\n }\n },\n async (id, ref) => {\n ref.dispose()\n }\n )\n\n return _provider\n}\n\nexport const provider = createBoardProvider()\n"]}
@@ -0,0 +1,2 @@
1
+ import '@fmsim/board/ox-property-editor-board-selector.js';
2
+ export default function bootstrap(): void;
@@ -0,0 +1,16 @@
1
+ import '@fmsim/board/ox-property-editor-board-selector.js';
2
+ import { OxGristRendererJson5, registerEditor, registerRenderer } from '@operato/data-grist';
3
+ import { BoardModeller } from '@fmsim/board/ox-board-modeller.js';
4
+ import { registerDefaultGroups } from '@fmsim/board';
5
+ import { MachineGroups } from '@fmsim/machine';
6
+ import { ColorMapEditor } from './data-grist/color-map-editor';
7
+ import { ColorRangesEditor } from './data-grist/color-ranges-editor';
8
+ export default function bootstrap() {
9
+ registerRenderer('color-map', OxGristRendererJson5);
10
+ registerRenderer('color-ranges', OxGristRendererJson5);
11
+ registerEditor('color-map', ColorMapEditor);
12
+ registerEditor('color-ranges', ColorRangesEditor);
13
+ MachineGroups.map(group => BoardModeller.registerGroup(group));
14
+ registerDefaultGroups();
15
+ }
16
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../client/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,mDAAmD,CAAA;AAE1D,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AAEpE,MAAM,CAAC,OAAO,UAAU,SAAS;IAC/B,gBAAgB,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAA;IACnD,gBAAgB,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAA;IAEtD,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;IAC3C,cAAc,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAA;IAEjD,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9D,qBAAqB,EAAE,CAAA;AACzB,CAAC","sourcesContent":["import '@fmsim/board/ox-property-editor-board-selector.js'\n\nimport { OxGristRendererJson5, registerEditor, registerRenderer } from '@operato/data-grist'\nimport { BoardModeller } from '@fmsim/board/ox-board-modeller.js'\nimport { registerDefaultGroups } from '@fmsim/board'\nimport { MachineGroups } from '@fmsim/machine'\nimport { ColorMapEditor } from './data-grist/color-map-editor'\nimport { ColorRangesEditor } from './data-grist/color-ranges-editor'\n\nexport default function bootstrap() {\n registerRenderer('color-map', OxGristRendererJson5)\n registerRenderer('color-ranges', OxGristRendererJson5)\n\n registerEditor('color-map', ColorMapEditor)\n registerEditor('color-ranges', ColorRangesEditor)\n\n MachineGroups.map(group => BoardModeller.registerGroup(group))\n registerDefaultGroups()\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import { OxGristEditorValueMap } from '@operato/grist-editor/ox-grist-editor-value-map.js';
2
+ export declare class ColorMapEditor extends OxGristEditorValueMap {
3
+ get options(): {
4
+ name: string;
5
+ valuetype: string;
6
+ objectified: boolean;
7
+ };
8
+ }
@@ -0,0 +1,17 @@
1
+ import { __decorate } from "tslib";
2
+ import { customElement } from 'lit/decorators.js';
3
+ import { OxGristEditorValueMap } from '@operato/grist-editor/ox-grist-editor-value-map.js';
4
+ let ColorMapEditor = class ColorMapEditor extends OxGristEditorValueMap {
5
+ get options() {
6
+ return {
7
+ name: `Color Map : ${this.record.name}`,
8
+ valuetype: 'color',
9
+ objectified: true
10
+ };
11
+ }
12
+ };
13
+ ColorMapEditor = __decorate([
14
+ customElement('color-map-editor')
15
+ ], ColorMapEditor);
16
+ export { ColorMapEditor };
17
+ //# sourceMappingURL=color-map-editor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-map-editor.js","sourceRoot":"","sources":["../../client/data-grist/color-map-editor.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAA;AAG1F,IAAa,cAAc,GAA3B,MAAa,cAAe,SAAQ,qBAAqB;IACvD,IAAI,OAAO;QACT,OAAO;YACL,IAAI,EAAE,eAAe,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACvC,SAAS,EAAE,OAAO;YAClB,WAAW,EAAE,IAAI;SAClB,CAAA;IACH,CAAC;CACF,CAAA;AARY,cAAc;IAD1B,aAAa,CAAC,kBAAkB,CAAC;GACrB,cAAc,CAQ1B;SARY,cAAc","sourcesContent":["import { customElement } from 'lit/decorators.js'\n\nimport { OxGristEditorValueMap } from '@operato/grist-editor/ox-grist-editor-value-map.js'\n\n@customElement('color-map-editor')\nexport class ColorMapEditor extends OxGristEditorValueMap {\n get options() {\n return {\n name: `Color Map : ${this.record.name}`,\n valuetype: 'color',\n objectified: true\n }\n }\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import { OxGristEditorValueRanges } from '@operato/grist-editor/ox-grist-editor-value-ranges.js';
2
+ export declare class ColorRangesEditor extends OxGristEditorValueRanges {
3
+ get options(): {
4
+ name: string;
5
+ valuetype: string;
6
+ objectified: boolean;
7
+ };
8
+ }
@@ -0,0 +1,17 @@
1
+ import { __decorate } from "tslib";
2
+ import { customElement } from 'lit/decorators.js';
3
+ import { OxGristEditorValueRanges } from '@operato/grist-editor/ox-grist-editor-value-ranges.js';
4
+ let ColorRangesEditor = class ColorRangesEditor extends OxGristEditorValueRanges {
5
+ get options() {
6
+ return {
7
+ name: `Color Ranges : ${this.record.name}`,
8
+ valuetype: 'color',
9
+ objectified: true
10
+ };
11
+ }
12
+ };
13
+ ColorRangesEditor = __decorate([
14
+ customElement('color-ranges-editor')
15
+ ], ColorRangesEditor);
16
+ export { ColorRangesEditor };
17
+ //# sourceMappingURL=color-ranges-editor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-ranges-editor.js","sourceRoot":"","sources":["../../client/data-grist/color-ranges-editor.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAA;AAGhG,IAAa,iBAAiB,GAA9B,MAAa,iBAAkB,SAAQ,wBAAwB;IAC7D,IAAI,OAAO;QACT,OAAO;YACL,IAAI,EAAE,kBAAkB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAC1C,SAAS,EAAE,OAAO;YAClB,WAAW,EAAE,IAAI;SAClB,CAAA;IACH,CAAC;CACF,CAAA;AARY,iBAAiB;IAD7B,aAAa,CAAC,qBAAqB,CAAC;GACxB,iBAAiB,CAQ7B;SARY,iBAAiB","sourcesContent":["import { customElement } from 'lit/decorators.js'\n\nimport { OxGristEditorValueRanges } from '@operato/grist-editor/ox-grist-editor-value-ranges.js'\n\n@customElement('color-ranges-editor')\nexport class ColorRangesEditor extends OxGristEditorValueRanges {\n get options() {\n return {\n name: `Color Ranges : ${this.record.name}`,\n valuetype: 'color',\n objectified: true\n }\n }\n}\n"]}
@@ -0,0 +1,4 @@
1
+ export * from './board-provider';
2
+ export * from './pages/board-viewer-page';
3
+ export * from './pages/board-modeller-page';
4
+ export * from './pages/fmb-unit-info';
@@ -0,0 +1,5 @@
1
+ export * from './board-provider';
2
+ export * from './pages/board-viewer-page';
3
+ export * from './pages/board-modeller-page';
4
+ export * from './pages/fmb-unit-info';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../client/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAEhC,cAAc,2BAA2B,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,uBAAuB,CAAA","sourcesContent":["export * from './board-provider'\n\nexport * from './pages/board-viewer-page'\nexport * from './pages/board-modeller-page'\nexport * from './pages/fmb-unit-info'\n"]}
@@ -0,0 +1,49 @@
1
+ import './things-scene-components.import';
2
+ import '@fmsim/board/ox-board-modeller.js';
3
+ import { BoardModeller } from '@fmsim/board/ox-board-modeller.js';
4
+ import { PageView } from '@operato/shell';
5
+ declare const BoardModellerPage_base: (new (...args: any[]) => {
6
+ _storeUnsubscribe: import("redux").Unsubscribe;
7
+ connectedCallback(): void;
8
+ disconnectedCallback(): void;
9
+ stateChanged(_state: unknown): void;
10
+ readonly isConnected: boolean;
11
+ }) & typeof PageView;
12
+ export declare class BoardModellerPage extends BoardModellerPage_base {
13
+ constructor();
14
+ static styles: import("lit").CSSResult[];
15
+ boardId?: string | null;
16
+ boardName?: string;
17
+ model: any;
18
+ themes: any;
19
+ baseUrl?: string;
20
+ selected: any;
21
+ mode?: number;
22
+ hideProperty?: boolean;
23
+ overlay?: string | null;
24
+ scene: any;
25
+ componentGroupList?: any;
26
+ fonts: any;
27
+ propertyEditor: any;
28
+ preparing?: boolean;
29
+ board: any;
30
+ modeller?: BoardModeller;
31
+ get context(): {
32
+ title: string | undefined;
33
+ help: string;
34
+ widebleed: boolean;
35
+ };
36
+ get oopsNote(): {
37
+ icon: string;
38
+ title: string;
39
+ description: string;
40
+ };
41
+ refresh(): Promise<void>;
42
+ updated(changes: any): void;
43
+ pageUpdated(changes: any, lifecycle: any): void;
44
+ stateChanged(state: any): void;
45
+ render(): import("lit-html").TemplateResult<1>;
46
+ updateBoard(): Promise<void>;
47
+ saveBoard(): Promise<void>;
48
+ }
49
+ export {};
@@ -0,0 +1,267 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import './things-scene-components.import';
3
+ import '@fmsim/board/ox-board-modeller.js';
4
+ import { css, html } from 'lit';
5
+ import { customElement, property, query } from 'lit/decorators.js';
6
+ import { connect } from 'pwa-helpers/connect-mixin.js';
7
+ import { BoardModeller } from '@fmsim/board/ox-board-modeller.js';
8
+ import { OxPropertyEditor } from '@operato/property-editor';
9
+ import { PageView, store } from '@operato/shell';
10
+ import { fetchBoardById, updateBoard } from '@fmsim/api';
11
+ import { provider } from '../board-provider';
12
+ import components from './things-scene-components-with-tools.import';
13
+ const NOOP = () => { };
14
+ let BoardModellerPage = class BoardModellerPage extends connect(store)(PageView) {
15
+ constructor() {
16
+ super();
17
+ components.forEach(({ templates = [], groups = [] }) => {
18
+ groups.forEach(group => BoardModeller.registerGroup(group));
19
+ BoardModeller.registerTemplate(templates);
20
+ });
21
+ /* 컴포넌트에서 정의된 에디터들을 MODELLER_EDITORS에 등록 */
22
+ var addedEditors = {};
23
+ for (let component in components) {
24
+ let { editors } = components[component];
25
+ editors &&
26
+ editors.forEach(editor => {
27
+ let { type, element } = editor;
28
+ addedEditors[type] = element;
29
+ });
30
+ }
31
+ OxPropertyEditor.register(addedEditors);
32
+ this.boardName = '';
33
+ this.model = null;
34
+ this.themes = null;
35
+ this.baseUrl = '';
36
+ this.selected = [];
37
+ this.mode = 1;
38
+ this.hideProperty = false;
39
+ this.overlay = null;
40
+ this.scene = null;
41
+ this.fonts = [];
42
+ this.board = null;
43
+ this.componentGroupList = BoardModeller.groups;
44
+ }
45
+ get context() {
46
+ return {
47
+ title: this.board ? this.boardName : this.preparing ? 'Fetching board...' : 'Board Not Found',
48
+ help: 'board-modeller/modeller',
49
+ widebleed: true
50
+ };
51
+ }
52
+ get oopsNote() {
53
+ return {
54
+ icon: 'color_lens',
55
+ title: 'EMPTY BOARD',
56
+ description: 'There are no board to be designed'
57
+ };
58
+ }
59
+ async refresh() {
60
+ if (!this.boardId) {
61
+ this.board = null;
62
+ this.model = null;
63
+ return;
64
+ }
65
+ try {
66
+ this.preparing = true;
67
+ this.updateContext();
68
+ var { board, themes } = (await fetchBoardById(this.boardId)) || {};
69
+ if (!board) {
70
+ this.board = null;
71
+ throw 'board not found';
72
+ }
73
+ this.board = Object.assign(Object.assign({}, board), { model: Object.assign({}, JSON.parse(board.model)) });
74
+ this.boardName = this.board.name;
75
+ this.model = Object.assign({}, this.board.model);
76
+ this.themes = themes === null || themes === void 0 ? void 0 : themes.items.reduce((style, theme) => {
77
+ style[theme.name] = theme.value;
78
+ return style;
79
+ }, {});
80
+ }
81
+ catch (ex) {
82
+ document.dispatchEvent(new CustomEvent('notify', {
83
+ detail: {
84
+ level: 'error',
85
+ message: ex,
86
+ ex
87
+ }
88
+ }));
89
+ }
90
+ finally {
91
+ this.preparing = false;
92
+ this.updateContext();
93
+ }
94
+ }
95
+ updated(changes) {
96
+ if (changes.has('boardId')) {
97
+ this.refresh();
98
+ }
99
+ }
100
+ pageUpdated(changes, lifecycle) {
101
+ var _a;
102
+ if (this.active) {
103
+ this.boardId = lifecycle.resourceId;
104
+ }
105
+ else {
106
+ this.boardId = null;
107
+ this.model = null;
108
+ (_a = this.modeller) === null || _a === void 0 ? void 0 : _a.close();
109
+ }
110
+ }
111
+ stateChanged(state) {
112
+ this.baseUrl = state.route.rootPath;
113
+ this.fonts = state.font;
114
+ }
115
+ render() {
116
+ var oops = !this.preparing && !this.model && this.oopsNote;
117
+ return oops
118
+ ? html ` <oops-note icon=${oops.icon} title=${oops.title} description=${oops.description}></oops-note> `
119
+ : html `
120
+ <ox-board-modeller
121
+ .mode=${this.mode}
122
+ @mode-changed=${e => {
123
+ this.mode = e.detail.value;
124
+ }}
125
+ .model=${this.model}
126
+ @model-changed=${e => {
127
+ this.model = e.detail.value;
128
+ }}
129
+ .scene=${this.scene}
130
+ @scene-changed=${e => {
131
+ this.scene = e.detail.value;
132
+ }}
133
+ .selected=${this.selected}
134
+ @selected-changed=${e => {
135
+ this.selected = e.detail.value;
136
+ }}
137
+ .baseUrl=${this.baseUrl}
138
+ .provider=${provider}
139
+ @save-model=${e => this.saveBoard()}
140
+ .componentGroupList=${this.componentGroupList}
141
+ .fonts=${this.fonts}
142
+ .themes=${this.themes}
143
+ .hideProperty=${this.hideProperty}
144
+ >
145
+ </ox-board-modeller>
146
+ `;
147
+ }
148
+ async updateBoard() {
149
+ try {
150
+ this.preparing = true;
151
+ var { id, name, description, groupId } = this.board;
152
+ var model = JSON.stringify(this.scene.model);
153
+ await updateBoard({ id, name, description, model, groupId });
154
+ document.dispatchEvent(new CustomEvent('notify', {
155
+ detail: {
156
+ level: 'info',
157
+ message: 'saved'
158
+ }
159
+ }));
160
+ }
161
+ catch (ex) {
162
+ document.dispatchEvent(new CustomEvent('notify', {
163
+ detail: {
164
+ level: 'error',
165
+ message: ex,
166
+ ex: ex
167
+ }
168
+ }));
169
+ }
170
+ finally {
171
+ this.preparing = false;
172
+ }
173
+ this.updateContext();
174
+ }
175
+ async saveBoard() {
176
+ await this.updateBoard();
177
+ }
178
+ };
179
+ BoardModellerPage.styles = [
180
+ css `
181
+ :host {
182
+ display: flex;
183
+ flex-direction: column;
184
+
185
+ overflow: hidden;
186
+ position: relative;
187
+ }
188
+
189
+ board-modeller {
190
+ flex: 1;
191
+ }
192
+
193
+ oops-note {
194
+ display: block;
195
+ position: absolute;
196
+ left: 50%;
197
+ top: 50%;
198
+ transform: translate(-50%, -50%);
199
+ }
200
+ `
201
+ ];
202
+ __decorate([
203
+ property({ type: String }),
204
+ __metadata("design:type", Object)
205
+ ], BoardModellerPage.prototype, "boardId", void 0);
206
+ __decorate([
207
+ property({ type: String }),
208
+ __metadata("design:type", String)
209
+ ], BoardModellerPage.prototype, "boardName", void 0);
210
+ __decorate([
211
+ property({ type: Object }),
212
+ __metadata("design:type", Object)
213
+ ], BoardModellerPage.prototype, "model", void 0);
214
+ __decorate([
215
+ property({ type: Object }),
216
+ __metadata("design:type", Object)
217
+ ], BoardModellerPage.prototype, "themes", void 0);
218
+ __decorate([
219
+ property({ type: String }),
220
+ __metadata("design:type", String)
221
+ ], BoardModellerPage.prototype, "baseUrl", void 0);
222
+ __decorate([
223
+ property({ type: Array }),
224
+ __metadata("design:type", Object)
225
+ ], BoardModellerPage.prototype, "selected", void 0);
226
+ __decorate([
227
+ property({ type: Number }),
228
+ __metadata("design:type", Number)
229
+ ], BoardModellerPage.prototype, "mode", void 0);
230
+ __decorate([
231
+ property({ type: Boolean }),
232
+ __metadata("design:type", Boolean)
233
+ ], BoardModellerPage.prototype, "hideProperty", void 0);
234
+ __decorate([
235
+ property({ type: String }),
236
+ __metadata("design:type", Object)
237
+ ], BoardModellerPage.prototype, "overlay", void 0);
238
+ __decorate([
239
+ property({ type: Object }),
240
+ __metadata("design:type", Object)
241
+ ], BoardModellerPage.prototype, "scene", void 0);
242
+ __decorate([
243
+ property({ type: Array }),
244
+ __metadata("design:type", Object)
245
+ ], BoardModellerPage.prototype, "componentGroupList", void 0);
246
+ __decorate([
247
+ property({ type: Array }),
248
+ __metadata("design:type", Object)
249
+ ], BoardModellerPage.prototype, "fonts", void 0);
250
+ __decorate([
251
+ property({ type: Array }),
252
+ __metadata("design:type", Object)
253
+ ], BoardModellerPage.prototype, "propertyEditor", void 0);
254
+ __decorate([
255
+ property({ type: Boolean }),
256
+ __metadata("design:type", Boolean)
257
+ ], BoardModellerPage.prototype, "preparing", void 0);
258
+ __decorate([
259
+ query('ox-board-modeller'),
260
+ __metadata("design:type", BoardModeller)
261
+ ], BoardModellerPage.prototype, "modeller", void 0);
262
+ BoardModellerPage = __decorate([
263
+ customElement('board-modeller-page'),
264
+ __metadata("design:paramtypes", [])
265
+ ], BoardModellerPage);
266
+ export { BoardModellerPage };
267
+ //# sourceMappingURL=board-modeller-page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"board-modeller-page.js","sourceRoot":"","sources":["../../client/pages/board-modeller-page.ts"],"names":[],"mappings":";AAAA,OAAO,kCAAkC,CAAA;AACzC,OAAO,mCAAmC,CAAA;AAE1C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,UAAU,MAAM,6CAA6C,CAAA;AAEpE,MAAM,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;AAGrB,IAAa,iBAAiB,GAA9B,MAAa,iBAAkB,SAAQ,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;IAC7D;QACE,KAAK,EAAE,CAAA;QAEP,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,EAAE,EAAE;YACrD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;YAC3D,aAAa,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;QAEF,2CAA2C;QAC3C,IAAI,YAAY,GAAG,EAAE,CAAA;QACrB,KAAK,IAAI,SAAS,IAAI,UAAU,EAAE;YAChC,IAAI,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;YAEvC,OAAO;gBACL,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBACvB,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;oBAE9B,YAAY,CAAC,IAAI,CAAC,GAAG,OAAO,CAAA;gBAC9B,CAAC,CAAC,CAAA;SACL;QAED,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;QAEvC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;QACjB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;QAClB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;QACb,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;QACf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC,MAAM,CAAA;IAChD,CAAC;IA4CD,IAAI,OAAO;QACT,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,iBAAiB;YAC7F,IAAI,EAAE,yBAAyB;YAC/B,SAAS,EAAE,IAAI;SAChB,CAAA;IACH,CAAC;IAED,IAAI,QAAQ;QACV,OAAO;YACL,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,aAAa;YACpB,WAAW,EAAE,mCAAmC;SACjD,CAAA;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;YACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;YAEjB,OAAM;SACP;QACD,IAAI;YACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;YACrB,IAAI,CAAC,aAAa,EAAE,CAAA;YAEpB,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;YAElE,IAAI,CAAC,KAAK,EAAE;gBACV,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;gBACjB,MAAM,iBAAiB,CAAA;aACxB;YAED,IAAI,CAAC,KAAK,mCACL,KAAK,KACR,KAAK,oBACA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAE7B,CAAA;YAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAA;YAChC,IAAI,CAAC,KAAK,qBACL,IAAI,CAAC,KAAK,CAAC,KAAK,CACpB,CAAA;YACD,IAAI,CAAC,MAAM,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAClD,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAA;gBAC/B,OAAO,KAAK,CAAA;YACd,CAAC,EAAE,EAAE,CAAC,CAAA;SACP;QAAC,OAAO,EAAE,EAAE;YACX,QAAQ,CAAC,aAAa,CACpB,IAAI,WAAW,CAAC,QAAQ,EAAE;gBACxB,MAAM,EAAE;oBACN,KAAK,EAAE,OAAO;oBACd,OAAO,EAAE,EAAE;oBACX,EAAE;iBACH;aACF,CAAC,CACH,CAAA;SACF;gBAAS;YACR,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;YACtB,IAAI,CAAC,aAAa,EAAE,CAAA;SACrB;IACH,CAAC;IAED,OAAO,CAAC,OAAO;QACb,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAC1B,IAAI,CAAC,OAAO,EAAE,CAAA;SACf;IACH,CAAC;IAED,WAAW,CAAC,OAAO,EAAE,SAAS;;QAC5B,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,UAAU,CAAA;SACpC;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;YACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;YACjB,MAAA,IAAI,CAAC,QAAQ,0CAAE,KAAK,EAAE,CAAA;SACvB;IACH,CAAC;IAED,YAAY,CAAC,KAAK;QAChB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAA;QACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAA;IACzB,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAA;QAE1D,OAAO,IAAI;YACT,CAAC,CAAC,IAAI,CAAA,oBAAoB,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,KAAK,gBAAgB,IAAI,CAAC,WAAW,gBAAgB;YACvG,CAAC,CAAC,IAAI,CAAA;;oBAEQ,IAAI,CAAC,IAAI;4BACD,CAAC,CAAC,EAAE;gBAClB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAA;YAC5B,CAAC;qBACQ,IAAI,CAAC,KAAK;6BACF,CAAC,CAAC,EAAE;gBACnB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAA;YAC7B,CAAC;qBACQ,IAAI,CAAC,KAAK;6BACF,CAAC,CAAC,EAAE;gBACnB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAA;YAC7B,CAAC;wBACW,IAAI,CAAC,QAAQ;gCACL,CAAC,CAAC,EAAE;gBACtB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAA;YAChC,CAAC;uBACU,IAAI,CAAC,OAAO;wBACX,QAAQ;0BACN,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;kCACb,IAAI,CAAC,kBAAkB;qBACpC,IAAI,CAAC,KAAK;sBACT,IAAI,CAAC,MAAM;4BACL,IAAI,CAAC,YAAY;;;SAGpC,CAAA;IACP,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI;YACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;YAErB,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;YACnD,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAE5C,MAAM,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;YAE5D,QAAQ,CAAC,aAAa,CACpB,IAAI,WAAW,CAAC,QAAQ,EAAE;gBACxB,MAAM,EAAE;oBACN,KAAK,EAAE,MAAM;oBACb,OAAO,EAAE,OAAO;iBACjB;aACF,CAAC,CACH,CAAA;SACF;QAAC,OAAO,EAAE,EAAE;YACX,QAAQ,CAAC,aAAa,CACpB,IAAI,WAAW,CAAC,QAAQ,EAAE;gBACxB,MAAM,EAAE;oBACN,KAAK,EAAE,OAAO;oBACd,OAAO,EAAE,EAAE;oBACX,EAAE,EAAE,EAAE;iBACP;aACF,CAAC,CACH,CAAA;SACF;gBAAS;YACR,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;SACvB;QAED,IAAI,CAAC,aAAa,EAAE,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;IAC1B,CAAC;CACF,CAAA;AAxMQ,wBAAM,GAAG;IACd,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;KAoBF;CACF,CAAA;AAE2B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;kDAAwB;AACvB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;oDAAmB;AAClB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;gDAAW;AACV;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;iDAAY;AACX;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;kDAAiB;AACjB;IAA1B,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;;mDAAc;AACZ;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;+CAAc;AACZ;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;;uDAAuB;AACvB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;kDAAwB;AACvB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;gDAAW;AACX;IAA1B,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;;6DAAyB;AACxB;IAA1B,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;;gDAAW;AACV;IAA1B,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;;yDAAoB;AACjB;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;;oDAAoB;AAGpB;IAA3B,KAAK,CAAC,mBAAmB,CAAC;8BAAY,aAAa;mDAAA;AA9EzC,iBAAiB;IAD7B,aAAa,CAAC,qBAAqB,CAAC;;GACxB,iBAAiB,CA8O7B;SA9OY,iBAAiB","sourcesContent":["import './things-scene-components.import'\nimport '@fmsim/board/ox-board-modeller.js'\n\nimport { css, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { connect } from 'pwa-helpers/connect-mixin.js'\n\nimport { BoardModeller } from '@fmsim/board/ox-board-modeller.js'\nimport { OxPropertyEditor } from '@operato/property-editor'\nimport { PageView, store } from '@operato/shell'\nimport { fetchBoardById, updateBoard } from '@fmsim/api'\n\nimport { provider } from '../board-provider'\nimport components from './things-scene-components-with-tools.import'\n\nconst NOOP = () => {}\n\n@customElement('board-modeller-page')\nexport class BoardModellerPage extends connect(store)(PageView) {\n constructor() {\n super()\n\n components.forEach(({ templates = [], groups = [] }) => {\n groups.forEach(group => BoardModeller.registerGroup(group))\n BoardModeller.registerTemplate(templates)\n })\n\n /* 컴포넌트에서 정의된 에디터들을 MODELLER_EDITORS에 등록 */\n var addedEditors = {}\n for (let component in components) {\n let { editors } = components[component]\n\n editors &&\n editors.forEach(editor => {\n let { type, element } = editor\n\n addedEditors[type] = element\n })\n }\n\n OxPropertyEditor.register(addedEditors)\n\n this.boardName = ''\n this.model = null\n this.themes = null\n this.baseUrl = ''\n this.selected = []\n this.mode = 1\n this.hideProperty = false\n this.overlay = null\n this.scene = null\n this.fonts = []\n this.board = null\n this.componentGroupList = BoardModeller.groups\n }\n\n static styles = [\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n overflow: hidden;\n position: relative;\n }\n\n board-modeller {\n flex: 1;\n }\n\n oops-note {\n display: block;\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n `\n ]\n\n @property({ type: String }) boardId?: string | null\n @property({ type: String }) boardName?: string\n @property({ type: Object }) model: any\n @property({ type: Object }) themes: any\n @property({ type: String }) baseUrl?: string\n @property({ type: Array }) selected: any\n @property({ type: Number }) mode?: number\n @property({ type: Boolean }) hideProperty?: boolean\n @property({ type: String }) overlay?: string | null\n @property({ type: Object }) scene: any\n @property({ type: Array }) componentGroupList?: any\n @property({ type: Array }) fonts: any\n @property({ type: Array }) propertyEditor: any\n @property({ type: Boolean }) preparing?: boolean\n\n board: any\n @query('ox-board-modeller') modeller?: BoardModeller\n\n get context() {\n return {\n title: this.board ? this.boardName : this.preparing ? 'Fetching board...' : 'Board Not Found',\n help: 'board-modeller/modeller',\n widebleed: true\n }\n }\n\n get oopsNote() {\n return {\n icon: 'color_lens',\n title: 'EMPTY BOARD',\n description: 'There are no board to be designed'\n }\n }\n\n async refresh() {\n if (!this.boardId) {\n this.board = null\n this.model = null\n\n return\n }\n try {\n this.preparing = true\n this.updateContext()\n\n var { board, themes } = (await fetchBoardById(this.boardId)) || {}\n\n if (!board) {\n this.board = null\n throw 'board not found'\n }\n\n this.board = {\n ...board,\n model: {\n ...JSON.parse(board.model)\n }\n }\n\n this.boardName = this.board.name\n this.model = {\n ...this.board.model\n }\n this.themes = themes?.items.reduce((style, theme) => {\n style[theme.name] = theme.value\n return style\n }, {})\n } catch (ex) {\n document.dispatchEvent(\n new CustomEvent('notify', {\n detail: {\n level: 'error',\n message: ex,\n ex\n }\n })\n )\n } finally {\n this.preparing = false\n this.updateContext()\n }\n }\n\n updated(changes) {\n if (changes.has('boardId')) {\n this.refresh()\n }\n }\n\n pageUpdated(changes, lifecycle) {\n if (this.active) {\n this.boardId = lifecycle.resourceId\n } else {\n this.boardId = null\n this.model = null\n this.modeller?.close()\n }\n }\n\n stateChanged(state) {\n this.baseUrl = state.route.rootPath\n this.fonts = state.font\n }\n\n render() {\n var oops = !this.preparing && !this.model && this.oopsNote\n\n return oops\n ? html` <oops-note icon=${oops.icon} title=${oops.title} description=${oops.description}></oops-note> `\n : html`\n <ox-board-modeller\n .mode=${this.mode}\n @mode-changed=${e => {\n this.mode = e.detail.value\n }}\n .model=${this.model}\n @model-changed=${e => {\n this.model = e.detail.value\n }}\n .scene=${this.scene}\n @scene-changed=${e => {\n this.scene = e.detail.value\n }}\n .selected=${this.selected}\n @selected-changed=${e => {\n this.selected = e.detail.value\n }}\n .baseUrl=${this.baseUrl}\n .provider=${provider}\n @save-model=${e => this.saveBoard()}\n .componentGroupList=${this.componentGroupList}\n .fonts=${this.fonts}\n .themes=${this.themes}\n .hideProperty=${this.hideProperty}\n >\n </ox-board-modeller>\n `\n }\n\n async updateBoard() {\n try {\n this.preparing = true\n\n var { id, name, description, groupId } = this.board\n var model = JSON.stringify(this.scene.model)\n\n await updateBoard({ id, name, description, model, groupId })\n\n document.dispatchEvent(\n new CustomEvent('notify', {\n detail: {\n level: 'info',\n message: 'saved'\n }\n })\n )\n } catch (ex) {\n document.dispatchEvent(\n new CustomEvent('notify', {\n detail: {\n level: 'error',\n message: ex,\n ex: ex\n }\n })\n )\n } finally {\n this.preparing = false\n }\n\n this.updateContext()\n }\n\n async saveBoard() {\n await this.updateBoard()\n }\n}\n"]}
@@ -0,0 +1,41 @@
1
+ import './things-scene-components.import';
2
+ import '@fmsim/board/ox-board-viewer.js';
3
+ import './fmb-unit-info.js';
4
+ import { BoardViewer } from '@fmsim/board';
5
+ import { PageView } from '@operato/shell';
6
+ declare const BoardViewerPage_base: (new (...args: any[]) => {
7
+ _storeUnsubscribe: import("redux").Unsubscribe;
8
+ connectedCallback(): void;
9
+ disconnectedCallback(): void;
10
+ stateChanged(_state: unknown): void;
11
+ readonly isConnected: boolean;
12
+ }) & typeof PageView;
13
+ export declare class BoardViewerPage extends BoardViewerPage_base {
14
+ static styles: import("lit").CSSResult[];
15
+ _board: any;
16
+ _boardId?: string;
17
+ _baseUrl?: string;
18
+ _interactive?: boolean;
19
+ preparing?: boolean;
20
+ private showFMBUnitInfoHandler;
21
+ private popup?;
22
+ boardViewer: BoardViewer;
23
+ get oopsNote(): {
24
+ icon: string;
25
+ title: string;
26
+ description: string;
27
+ };
28
+ get context(): {
29
+ title: any;
30
+ };
31
+ connectedCallback(): void;
32
+ disconnectedCallback(): void;
33
+ render(): import("lit-html").TemplateResult<1>;
34
+ updated(changes: any): void;
35
+ pageUpdated(changes: any, lifecycle: any): void;
36
+ stateChanged(state: any): void;
37
+ refresh(): Promise<void>;
38
+ showFMBUnitInfo(e: Event): void;
39
+ hidePopup(): void;
40
+ }
41
+ export {};