@flexem/fc-gui 3.0.0-alpha.16 → 3.0.0-alpha.160

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 (567) hide show
  1. package/CHANGELOG.md +492 -69
  2. package/README.md +4 -4
  3. package/assets/img/alert.svg +18 -18
  4. package/assets/img/black_first_page.png +0 -0
  5. package/assets/img/black_last_page.png +0 -0
  6. package/assets/img/black_next_page.png +0 -0
  7. package/assets/img/black_previous_page.png +0 -0
  8. package/assets/img/first_page.svg +19 -19
  9. package/assets/img/last_page.svg +19 -19
  10. package/assets/img/next_page.svg +14 -14
  11. package/assets/img/previous_page.svg +14 -14
  12. package/bundles/@flexem/fc-gui.umd.js +25472 -20764
  13. package/bundles/@flexem/fc-gui.umd.js.map +1 -1
  14. package/bundles/@flexem/fc-gui.umd.min.js +5 -5
  15. package/bundles/@flexem/fc-gui.umd.min.js.map +1 -1
  16. package/communication/index.d.ts +1 -1
  17. package/communication/index.js +1 -1
  18. package/communication/variable/index.d.ts +5 -5
  19. package/communication/variable/index.js +4 -4
  20. package/communication/variable/variable-communicator.d.ts +16 -12
  21. package/communication/variable/variable-definition.d.ts +10 -10
  22. package/communication/variable/variable-definition.js +14 -14
  23. package/communication/variable/variable-state-enum.d.ts +8 -7
  24. package/communication/variable/variable-state-enum.js +9 -8
  25. package/communication/variable/variable-state-enum.metadata.json +1 -1
  26. package/communication/variable/variable-state.d.ts +6 -6
  27. package/communication/variable/variable-state.js +6 -6
  28. package/communication/variable/variable-value.d.ts +11 -8
  29. package/communication/variable/variable-value.js +11 -8
  30. package/communication/variable/variable-value.metadata.json +1 -1
  31. package/config/alarm/alarm.store.d.ts +6 -0
  32. package/config/alarm/alarm.store.js +0 -0
  33. package/config/alarm/alarm.store.metadata.json +1 -0
  34. package/config/alarm/get-alarms-args.d.ts +12 -0
  35. package/config/alarm/get-alarms-args.js +13 -0
  36. package/config/alarm/get-alarms-args.metadata.json +1 -0
  37. package/config/alarm/index.d.ts +2 -0
  38. package/config/alarm/index.js +1 -0
  39. package/config/alarm/index.metadata.json +1 -0
  40. package/config/config-store.d.ts +17 -15
  41. package/config/graph/graph-result.d.ts +9 -9
  42. package/config/graph/graph-result.js +13 -13
  43. package/config/graph/graph-store.d.ts +9 -9
  44. package/config/graph/graph-type.d.ts +4 -4
  45. package/config/graph/graph-type.js +5 -5
  46. package/config/graph/graph.d.ts +6 -6
  47. package/config/graph/graph.js +6 -6
  48. package/config/gui-feature-config.d.ts +3 -0
  49. package/config/gui-feature-config.js +3 -0
  50. package/config/gui-feature-config.metadata.json +1 -0
  51. package/config/history-data/get-history-data-args.d.ts +22 -22
  52. package/config/history-data/get-history-data-args.js +21 -21
  53. package/config/history-data/historical-curve.time-range.d.ts +18 -18
  54. package/config/history-data/historical-curve.time-range.js +19 -19
  55. package/config/history-data/history-data-value.d.ts +6 -6
  56. package/config/history-data/history-data-value.js +6 -6
  57. package/config/history-data/history-data.model.d.ts +7 -7
  58. package/config/history-data/history-data.model.js +7 -7
  59. package/config/history-data/history-data.store.d.ts +10 -10
  60. package/config/history-data/index.d.ts +4 -4
  61. package/config/history-data/index.js +3 -3
  62. package/config/image/image-store.d.ts +6 -6
  63. package/config/index.d.ts +12 -10
  64. package/config/index.js +8 -6
  65. package/config/index.metadata.json +1 -1
  66. package/config/variable/get-variable-name-args.d.ts +6 -6
  67. package/config/variable/get-variable-name-args.js +7 -7
  68. package/config/variable/index.d.ts +2 -2
  69. package/config/variable/index.js +1 -1
  70. package/config/variable/variable-store.d.ts +8 -7
  71. package/config/view/view-store.d.ts +20 -20
  72. package/config/view/view.model.d.ts +4 -4
  73. package/config/view/view.model.js +5 -5
  74. package/core/index.d.ts +1 -1
  75. package/core/index.js +1 -1
  76. package/core/stringifying-map.d.ts +11 -11
  77. package/core/stringifying-map.js +24 -24
  78. package/core/stringifying-set.d.ts +10 -10
  79. package/core/stringifying-set.js +21 -21
  80. package/elements/air-quality/air-quality-element.d.ts +31 -0
  81. package/elements/air-quality/air-quality-element.js +194 -0
  82. package/elements/air-quality/air-quality-element.metadata.json +1 -0
  83. package/elements/alarm/alarm-element.d.ts +69 -0
  84. package/elements/alarm/alarm-element.js +497 -0
  85. package/elements/alarm/alarm-element.metadata.json +1 -0
  86. package/elements/bar-graph-element.d.ts +29 -21
  87. package/elements/bar-graph-element.js +244 -114
  88. package/elements/bar-graph-element.metadata.json +1 -1
  89. package/elements/base/base-element.d.ts +11 -11
  90. package/elements/base/base-element.js +9 -9
  91. package/elements/base/conditional-control-element.d.ts +16 -16
  92. package/elements/base/conditional-control-element.js +87 -87
  93. package/elements/base/conditional-display-element.d.ts +24 -24
  94. package/elements/base/conditional-display-element.js +86 -86
  95. package/elements/base/conditional-dynamic-display-element.d.ts +26 -26
  96. package/elements/base/conditional-dynamic-display-element.js +142 -142
  97. package/elements/base/conditional-enable-element.d.ts +21 -21
  98. package/elements/base/conditional-enable-element.js +100 -100
  99. package/elements/base/index.d.ts +3 -3
  100. package/elements/base/index.js +3 -3
  101. package/elements/base/readable-element.d.ts +20 -15
  102. package/elements/base/readable-element.js +122 -58
  103. package/elements/base/readable-element.metadata.json +1 -1
  104. package/elements/base/state-control-element.d.ts +26 -24
  105. package/elements/base/state-control-element.js +196 -180
  106. package/elements/character-display/character-display-element.d.ts +35 -35
  107. package/elements/character-display/character-display-element.js +312 -311
  108. package/elements/character-display/character-display-element.metadata.json +1 -1
  109. package/elements/datetime-display/datetime-display-element.d.ts +22 -21
  110. package/elements/datetime-display/datetime-display-element.js +140 -132
  111. package/elements/datetime-display/datetime-display-element.metadata.json +1 -1
  112. package/elements/datetime-display/time-zone-select-json.d.ts +8 -0
  113. package/elements/datetime-display/time-zone-select-json.js +558 -0
  114. package/elements/historical-curve/historical-curve-element-status.d.ts +6 -6
  115. package/elements/historical-curve/historical-curve-element-status.js +7 -7
  116. package/elements/historical-curve/historical-curve.element.d.ts +96 -59
  117. package/elements/historical-curve/historical-curve.element.js +990 -364
  118. package/elements/historical-curve/historical-curve.element.metadata.json +1 -1
  119. package/elements/historical-curve/historical-curve.element.option.d.ts +13 -13
  120. package/elements/historical-curve/historical-curve.time-period.d.ts +4 -4
  121. package/elements/main-element.d.ts +46 -45
  122. package/elements/main-element.js +373 -307
  123. package/elements/main-element.metadata.json +1 -1
  124. package/elements/meter-element.d.ts +26 -20
  125. package/elements/meter-element.js +139 -70
  126. package/elements/meter-element.metadata.json +1 -1
  127. package/elements/numerical-display/numerical-display-element.d.ts +60 -41
  128. package/elements/numerical-display/numerical-display-element.js +476 -361
  129. package/elements/numerical-display/numerical-display-element.metadata.json +1 -1
  130. package/elements/per-view-variable-communicator.d.ts +20 -17
  131. package/elements/per-view-variable-communicator.js +59 -45
  132. package/elements/per-view-variable-communicator.metadata.json +1 -1
  133. package/elements/pipe/pipe-element.d.ts +19 -19
  134. package/elements/pipe/pipe-element.js +141 -141
  135. package/elements/ring-graph/ring-graph-element.d.ts +31 -19
  136. package/elements/ring-graph/ring-graph-element.js +250 -89
  137. package/elements/ring-graph/ring-graph-element.metadata.json +1 -1
  138. package/elements/scroll-alarm/scroll-alarm-element.d.ts +74 -0
  139. package/elements/scroll-alarm/scroll-alarm-element.js +761 -0
  140. package/elements/scroll-alarm/scroll-alarm-element.metadata.json +1 -0
  141. package/elements/shared/graph/graph-state-element.d.ts +28 -27
  142. package/elements/shared/graph/graph-state-element.js +139 -110
  143. package/elements/shared/graph/graph-state-element.metadata.json +1 -1
  144. package/elements/shared/math-utils.d.ts +2 -2
  145. package/elements/shared/math-utils.js +14 -14
  146. package/elements/shared/text/text-element.d.ts +22 -8
  147. package/elements/shared/text/text-element.js +106 -68
  148. package/elements/shared/text/text-element.metadata.json +1 -1
  149. package/elements/shared/text/text-state-element.d.ts +58 -23
  150. package/elements/shared/text/text-state-element.js +286 -136
  151. package/elements/shared/text/text-state-element.metadata.json +1 -1
  152. package/elements/shared/text/text-state.model.d.ts +5 -5
  153. package/elements/shared/text/text-utils.d.ts +5 -5
  154. package/elements/shared/text/text-utils.js +45 -45
  155. package/elements/static-elements/hyperlink-element.d.ts +40 -14
  156. package/elements/static-elements/hyperlink-element.js +197 -48
  157. package/elements/static-elements/hyperlink-element.metadata.json +1 -1
  158. package/elements/static-elements/image-element.d.ts +14 -14
  159. package/elements/static-elements/image-element.js +41 -41
  160. package/elements/static-elements/text-element.d.ts +42 -16
  161. package/elements/static-elements/text-element.js +205 -55
  162. package/elements/static-elements/text-element.metadata.json +1 -1
  163. package/elements/switch-indicator-light/bit-indicator-light-operator.d.ts +21 -20
  164. package/elements/switch-indicator-light/bit-indicator-light-operator.js +85 -78
  165. package/elements/switch-indicator-light/bit-indicator-light-operator.metadata.json +1 -1
  166. package/elements/switch-indicator-light/bit-switch-operator.d.ts +19 -19
  167. package/elements/switch-indicator-light/bit-switch-operator.js +107 -107
  168. package/elements/switch-indicator-light/current-stateId-value.d.ts +6 -6
  169. package/elements/switch-indicator-light/current-stateId-value.js +8 -8
  170. package/elements/switch-indicator-light/indicator-light-operator.d.ts +8 -8
  171. package/elements/switch-indicator-light/switch-indicator-light-element.d.ts +48 -39
  172. package/elements/switch-indicator-light/switch-indicator-light-element.js +302 -251
  173. package/elements/switch-indicator-light/switch-indicator-light-element.metadata.json +1 -1
  174. package/elements/switch-indicator-light/switch-operator.d.ts +6 -6
  175. package/elements/switch-indicator-light/word-indicator-light-operator.d.ts +19 -18
  176. package/elements/switch-indicator-light/word-indicator-light-operator.js +72 -65
  177. package/elements/switch-indicator-light/word-indicator-light-operator.metadata.json +1 -1
  178. package/elements/switch-indicator-light/word-switch-operator.d.ts +18 -18
  179. package/elements/switch-indicator-light/word-switch-operator.js +75 -75
  180. package/elements/table/table-element.d.ts +9 -9
  181. package/elements/table/table-element.js +6 -6
  182. package/elements/vector-graphics/ellipse-element.d.ts +9 -9
  183. package/elements/vector-graphics/ellipse-element.js +6 -6
  184. package/elements/vector-graphics/poly-line-element.d.ts +12 -12
  185. package/elements/vector-graphics/poly-line-element.js +19 -19
  186. package/elements/vector-graphics/polygon-element.d.ts +12 -12
  187. package/elements/vector-graphics/polygon-element.js +19 -19
  188. package/elements/vector-graphics/rectangle-element.d.ts +9 -9
  189. package/elements/vector-graphics/rectangle-element.js +6 -6
  190. package/elements/vector-graphics/sector-element.d.ts +9 -9
  191. package/elements/vector-graphics/sector-element.js +6 -6
  192. package/elements/vector-graphics/straight-line-element.d.ts +12 -12
  193. package/elements/vector-graphics/straight-line-element.js +19 -19
  194. package/elements/video/video-element.d.ts +37 -27
  195. package/elements/video/video-element.js +258 -160
  196. package/elements/video/video-element.metadata.json +1 -1
  197. package/elements/view-operation/view-operation.element.d.ts +62 -36
  198. package/elements/view-operation/view-operation.element.js +348 -194
  199. package/elements/view-operation/view-operation.element.metadata.json +1 -1
  200. package/elements/weather/weater-element.d.ts +38 -38
  201. package/elements/weather/weater-element.js +237 -238
  202. package/gui/gui-context.d.ts +33 -16
  203. package/gui/gui-host.d.ts +50 -50
  204. package/gui/gui-host.js +173 -173
  205. package/gui/gui-view.d.ts +45 -42
  206. package/gui/gui-view.js +265 -204
  207. package/gui/gui-view.metadata.json +1 -1
  208. package/gui/gui.component.d.ts +45 -42
  209. package/gui/gui.component.html +3 -3
  210. package/gui/gui.component.js +240 -227
  211. package/gui/gui.component.metadata.json +1 -1
  212. package/gui/interfaces/gui-options.d.ts +6 -6
  213. package/gui.module.d.ts +2 -2
  214. package/gui.module.js +78 -78
  215. package/localization/index.d.ts +2 -2
  216. package/localization/index.js +2 -2
  217. package/localization/localization.service.d.ts +62 -51
  218. package/localization/localization.service.js +61 -50
  219. package/localization/localization.service.metadata.json +1 -1
  220. package/localization/localization.service.zh_CN.d.ts +2 -2
  221. package/localization/localization.service.zh_CN.js +59 -48
  222. package/localization/localization.service.zh_CN.metadata.json +1 -1
  223. package/logger/console-logger.service.d.ts +13 -13
  224. package/logger/console-logger.service.js +38 -38
  225. package/logger/index.d.ts +2 -2
  226. package/logger/index.js +2 -2
  227. package/logger/logger.service.d.ts +14 -14
  228. package/logger/logger.service.js +2 -2
  229. package/modal/alert/alert-modal.component.d.ts +10 -10
  230. package/modal/alert/alert-modal.component.html +11 -11
  231. package/modal/alert/alert-modal.component.js +38 -38
  232. package/modal/alert/alert-modal.component.less +59 -59
  233. package/modal/confirm-operation/confirm-operation-modal.component.d.ts +10 -10
  234. package/modal/confirm-operation/confirm-operation-modal.component.html +16 -16
  235. package/modal/confirm-operation/confirm-operation-modal.component.js +41 -41
  236. package/modal/confirm-operation/confirm-operation-modal.component.less +58 -58
  237. package/modal/verify-password/verify-password-modal.component.d.ts +18 -18
  238. package/modal/verify-password/verify-password-modal.component.html +22 -22
  239. package/modal/verify-password/verify-password-modal.component.js +66 -66
  240. package/modal/verify-password/verify-password-modal.component.less +65 -65
  241. package/modal/write-character/write-character-modal-args.d.ts +7 -7
  242. package/modal/write-character/write-character-modal-args.js +8 -8
  243. package/modal/write-character/write-character-modal.component.d.ts +25 -25
  244. package/modal/write-character/write-character-modal.component.html +21 -21
  245. package/modal/write-character/write-character-modal.component.js +74 -74
  246. package/modal/write-character/write-character-modal.component.less +49 -49
  247. package/modal/write-value/write-value-modal-args.d.ts +16 -12
  248. package/modal/write-value/write-value-modal-args.js +14 -12
  249. package/modal/write-value/write-value-modal-args.metadata.json +1 -1
  250. package/modal/write-value/write-value-modal.component.d.ts +60 -54
  251. package/modal/write-value/write-value-modal.component.html +26 -21
  252. package/modal/write-value/write-value-modal.component.js +279 -204
  253. package/modal/write-value/write-value-modal.component.less +56 -56
  254. package/modal/write-value/write-value-modal.component.metadata.json +1 -1
  255. package/modal/write-value/write-value-model-result.d.ts +3 -3
  256. package/model/air-quality/air-quality-info.d.ts +23 -0
  257. package/model/air-quality/air-quality-info.js +4 -0
  258. package/model/air-quality/air-quality-info.metadata.json +1 -0
  259. package/model/air-quality/air-quality.model.d.ts +7 -0
  260. package/model/air-quality/air-quality.model.js +0 -0
  261. package/model/air-quality/air-quality.model.metadata.json +1 -0
  262. package/model/alarm/alarm.model.d.ts +13 -0
  263. package/model/alarm/alarm.model.js +0 -0
  264. package/model/alarm/alarm.model.metadata.json +1 -0
  265. package/model/bar-graph/FontStyleData.d.ts +7 -7
  266. package/model/bar-graph/bar-graph-direction.d.ts +6 -6
  267. package/model/bar-graph/bar-graph-direction.js +7 -7
  268. package/model/bar-graph/bar-graph.d.ts +26 -22
  269. package/model/base/base-element-model.d.ts +5 -5
  270. package/model/base/base-element-model.js +2 -2
  271. package/model/base/conditional-control-model.d.ts +6 -6
  272. package/model/base/conditional-display-model.d.ts +9 -9
  273. package/model/base/conditional-dynamic-display-model.d.ts +13 -13
  274. package/model/base/conditional-enable-model.d.ts +9 -9
  275. package/model/base/font-setting-model.d.ts +29 -8
  276. package/model/base/font-setting-model.metadata.json +1 -1
  277. package/model/base/index.d.ts +7 -7
  278. package/model/base/index.js +1 -1
  279. package/model/base/readable-model.d.ts +14 -10
  280. package/model/base/security-model.d.ts +6 -6
  281. package/model/character-display/character-display.d.ts +19 -19
  282. package/model/datetime-display/date-format-type.d.ts +5 -5
  283. package/model/datetime-display/date-format-type.js +6 -6
  284. package/model/datetime-display/datetime-display-settings.d.ts +17 -17
  285. package/model/datetime-display/datetime-display.d.ts +21 -20
  286. package/model/datetime-display/datetime-separator-type.d.ts +6 -6
  287. package/model/datetime-display/datetime-separator-type.js +7 -7
  288. package/model/datetime-display/time-format-type.d.ts +4 -4
  289. package/model/datetime-display/time-format-type.js +5 -5
  290. package/model/historical-curve/curve-type.d.ts +5 -5
  291. package/model/historical-curve/curve-type.js +6 -6
  292. package/model/historical-curve/historical-curve-axis-settings.d.ts +17 -6
  293. package/model/historical-curve/historical-curve-axis-settings.js +5 -0
  294. package/model/historical-curve/historical-curve-axis-settings.metadata.json +1 -1
  295. package/model/historical-curve/historical-curve-chanel.model.d.ts +22 -14
  296. package/model/historical-curve/historical-curve.data-settings.d.ts +9 -9
  297. package/model/historical-curve/historical-curve.display-settings.d.ts +19 -19
  298. package/model/historical-curve/historical-curve.model.d.ts +8 -8
  299. package/model/historical-curve/index.d.ts +4 -4
  300. package/model/hyperlink/hyperlink.model.d.ts +8 -8
  301. package/model/image/image-fill-type.d.ts +4 -4
  302. package/model/image/image-fill-type.js +5 -5
  303. package/model/image/image.d.ts +9 -9
  304. package/model/index.d.ts +15 -15
  305. package/model/index.js +8 -8
  306. package/model/meter/meter.d.ts +17 -13
  307. package/model/numerical-display/index.d.ts +8 -8
  308. package/model/numerical-display/index.js +2 -2
  309. package/model/numerical-display/numerical-display.d.ts +29 -29
  310. package/model/numerical-display/numerical-operation-settings.d.ts +6 -6
  311. package/model/numerical-display/numerical-operation-type.d.ts +4 -4
  312. package/model/numerical-display/numerical-operation-type.js +5 -5
  313. package/model/numerical-display/numerical-operation.d.ts +19 -11
  314. package/model/numerical-display/proportional-conversion.d.ts +4 -4
  315. package/model/numerical-display/type-settings.d.ts +6 -6
  316. package/model/numerical-display/zoom.d.ts +4 -4
  317. package/model/pipe/flow-direction-type.d.ts +4 -4
  318. package/model/pipe/flow-direction-type.js +5 -5
  319. package/model/pipe/index.d.ts +2 -2
  320. package/model/pipe/index.js +1 -1
  321. package/model/pipe/pipe.d.ts +17 -17
  322. package/model/poly-line/poly-line-model.d.ts +4 -4
  323. package/model/polygon/polygon-model.d.ts +4 -4
  324. package/model/ring-graph/ring-graph.model.d.ts +33 -25
  325. package/model/scroll-alarm/scroll-alarm.model.d.ts +21 -0
  326. package/model/scroll-alarm/scroll-alarm.model.js +0 -0
  327. package/model/scroll-alarm/scroll-alarm.model.metadata.json +1 -0
  328. package/model/settings/background/view-background-fill-type.d.ts +5 -5
  329. package/model/settings/background/view-background-fill-type.js +6 -6
  330. package/model/settings/background/view-background.model.d.ts +8 -8
  331. package/model/settings/index.d.ts +3 -3
  332. package/model/settings/index.js +2 -2
  333. package/model/settings/popup/view-popup-backdrop-type.d.ts +4 -4
  334. package/model/settings/popup/view-popup-backdrop-type.js +5 -5
  335. package/model/settings/popup/view-popup-location-type.d.ts +4 -4
  336. package/model/settings/popup/view-popup-location-type.js +5 -5
  337. package/model/settings/popup/view-popup-setting.model.d.ts +17 -17
  338. package/model/settings/popup/view-popup-setting.model.js +2 -2
  339. package/model/settings/view-settings.model.d.ts +6 -6
  340. package/model/shared/alarm/alarm-range.model.d.ts +6 -6
  341. package/model/shared/arc.model.d.ts +4 -4
  342. package/model/shared/binary.d.ts +7 -7
  343. package/model/shared/binary.js +37 -37
  344. package/model/shared/condition/bit-condition-item-observer.d.ts +14 -14
  345. package/model/shared/condition/bit-condition-item-observer.js +53 -53
  346. package/model/shared/condition/bit-condition-logic.d.ts +4 -4
  347. package/model/shared/condition/bit-condition-logic.js +5 -5
  348. package/model/shared/condition/bit-condition-model.d.ts +8 -8
  349. package/model/shared/condition/bit-condition.d.ts +4 -4
  350. package/model/shared/condition/condition-control-result-value.d.ts +5 -5
  351. package/model/shared/condition/condition-helper.d.ts +4 -4
  352. package/model/shared/condition/condition-helper.js +22 -22
  353. package/model/shared/condition/condition-item-model.d.ts +10 -10
  354. package/model/shared/condition/condition-item-observer.d.ts +12 -12
  355. package/model/shared/condition/condition-item-observer.js +14 -14
  356. package/model/shared/condition/condition-items-observer.d.ts +5 -5
  357. package/model/shared/condition/condition-items-result-observer.d.ts +16 -16
  358. package/model/shared/condition/condition-items-result-observer.js +87 -87
  359. package/model/shared/condition/condition-model.d.ts +6 -6
  360. package/model/shared/condition/condition-type.d.ts +4 -4
  361. package/model/shared/condition/condition-type.js +5 -5
  362. package/model/shared/condition/convert-condition-model.d.ts +5 -5
  363. package/model/shared/condition/index.d.ts +11 -11
  364. package/model/shared/condition/index.js +4 -4
  365. package/model/shared/condition/relation-condition-result-state.d.ts +6 -6
  366. package/model/shared/condition/relation-condition-result-state.js +8 -8
  367. package/model/shared/condition/relation-condition-result.d.ts +8 -8
  368. package/model/shared/condition/relation-condition-result.js +7 -7
  369. package/model/shared/condition/relation-type.d.ts +5 -5
  370. package/model/shared/condition/relation-type.js +6 -6
  371. package/model/shared/condition/relational-operator.d.ts +8 -8
  372. package/model/shared/condition/relational-operator.js +9 -9
  373. package/model/shared/condition/variable-value-logic-model.d.ts +11 -11
  374. package/model/shared/condition/variable-value-type.d.ts +4 -4
  375. package/model/shared/condition/variable-value-type.js +5 -5
  376. package/model/shared/condition/word-condition-item-observer.d.ts +21 -21
  377. package/model/shared/condition/word-condition-item-observer.js +165 -165
  378. package/model/shared/condition/word-condition-model.d.ts +8 -8
  379. package/model/shared/condition/word-condition.d.ts +5 -5
  380. package/model/shared/data-type/display-data-type.d.ts +5 -5
  381. package/model/shared/data-type/display-data-type.js +6 -6
  382. package/model/shared/data-type/fbox-data-type.d.ts +15 -15
  383. package/model/shared/data-type/fbox-data-type.js +16 -16
  384. package/model/shared/data-type/fcloud-data-Type.d.ts +8 -8
  385. package/model/shared/data-type/fcloud-data-Type.js +9 -9
  386. package/model/shared/dynamic-display/dynamic-behavior-type.d.ts +5 -5
  387. package/model/shared/dynamic-display/dynamic-behavior-type.js +6 -6
  388. package/model/shared/dynamic-display/dynamic-display-behavior-model.d.ts +5 -5
  389. package/model/shared/dynamic-display/dynamic-display-model.d.ts +10 -10
  390. package/model/shared/dynamic-display/dynamic-display-result-model.d.ts +7 -7
  391. package/model/shared/dynamic-display/dynamic-display-result-model.js +7 -7
  392. package/model/shared/dynamic-display/dynamic-display.d.ts +11 -11
  393. package/model/shared/dynamic-display/dynamic-display.js +35 -35
  394. package/model/shared/graph/custom-style.d.ts +14 -14
  395. package/model/shared/graph/graph-setting.d.ts +10 -10
  396. package/model/shared/index.d.ts +8 -8
  397. package/model/shared/index.js +3 -3
  398. package/model/shared/point.model.d.ts +4 -4
  399. package/model/shared/rotation/rotation-behavior-model.d.ts +4 -4
  400. package/model/shared/rotation/rotation-behavior.d.ts +9 -9
  401. package/model/shared/rotation/rotation-behavior.js +101 -101
  402. package/model/shared/rotation/rotation-direction-type.d.ts +4 -4
  403. package/model/shared/rotation/rotation-direction-type.js +5 -5
  404. package/model/shared/rotation/rotation-model.d.ts +14 -14
  405. package/model/shared/rotation/rotation-observer-model.d.ts +4 -4
  406. package/model/shared/rotation/rotation-observer.d.ts +11 -11
  407. package/model/shared/rotation/rotation-observer.js +28 -28
  408. package/model/shared/scale/scale-mark.model.d.ts +6 -6
  409. package/model/shared/scale/scale-model.d.ts +20 -20
  410. package/model/shared/size.model.d.ts +7 -7
  411. package/model/shared/size.model.js +12 -12
  412. package/model/shared/state/index.d.ts +1 -1
  413. package/model/shared/state/index.js +1 -1
  414. package/model/shared/state/state.d.ts +9 -8
  415. package/model/shared/state/state.js +10 -9
  416. package/model/shared/state/state.metadata.json +1 -1
  417. package/model/shared/text/font.d.ts +10 -10
  418. package/model/shared/text/index.d.ts +2 -2
  419. package/model/shared/text/text.d.ts +8 -5
  420. package/model/shared/translation/translation-behavior-model.d.ts +4 -4
  421. package/model/shared/translation/translation-behavior.d.ts +12 -12
  422. package/model/shared/translation/translation-behavior.js +63 -63
  423. package/model/shared/translation/translation-direction-type.d.ts +4 -4
  424. package/model/shared/translation/translation-direction-type.js +5 -5
  425. package/model/shared/translation/translation-model.d.ts +12 -12
  426. package/model/shared/translation/translation-observer-model.d.ts +4 -4
  427. package/model/shared/translation/translation-observer.d.ts +10 -10
  428. package/model/shared/translation/translation-observer.js +27 -27
  429. package/model/shared/variable/variable-identifier.model.d.ts +5 -5
  430. package/model/shared/variable/variable-name.model.d.ts +5 -5
  431. package/model/straight-line/straight-line-model.d.ts +4 -4
  432. package/model/switch-indicator-light/bit-indicator-light-settings.d.ts +8 -8
  433. package/model/switch-indicator-light/bit-switch-operation.d.ts +6 -6
  434. package/model/switch-indicator-light/bit-switch-operation.js +7 -7
  435. package/model/switch-indicator-light/bit-switch-settings.d.ts +11 -11
  436. package/model/switch-indicator-light/fault-flicker.d.ts +5 -5
  437. package/model/switch-indicator-light/flicker.d.ts +5 -5
  438. package/model/switch-indicator-light/flicker.js +6 -6
  439. package/model/switch-indicator-light/index.d.ts +14 -14
  440. package/model/switch-indicator-light/index.js +5 -5
  441. package/model/switch-indicator-light/indicator-light-fault-flicker.d.ts +5 -5
  442. package/model/switch-indicator-light/indicator-light-settings.d.ts +7 -7
  443. package/model/switch-indicator-light/indicator-light-type.d.ts +4 -4
  444. package/model/switch-indicator-light/indicator-light-type.js +5 -5
  445. package/model/switch-indicator-light/switch-indicator-light.d.ts +35 -33
  446. package/model/switch-indicator-light/switch-indicator-state.d.ts +8 -8
  447. package/model/switch-indicator-light/switch-settings.d.ts +7 -7
  448. package/model/switch-indicator-light/switch-type.d.ts +4 -4
  449. package/model/switch-indicator-light/switch-type.js +5 -5
  450. package/model/switch-indicator-light/word-indicator-light-settings.d.ts +6 -6
  451. package/model/switch-indicator-light/word-switch-operation.d.ts +5 -5
  452. package/model/switch-indicator-light/word-switch-operation.js +6 -6
  453. package/model/switch-indicator-light/word-switch-settings.d.ts +13 -13
  454. package/model/table/table-model.d.ts +9 -9
  455. package/model/text/text.model.d.ts +7 -7
  456. package/model/video/video.model.d.ts +8 -8
  457. package/model/view-operation/index.d.ts +2 -2
  458. package/model/view-operation/index.js +1 -1
  459. package/model/view-operation/view-operation-element.model.d.ts +25 -19
  460. package/model/view-operation/view-operation-type.d.ts +18 -18
  461. package/model/view-operation/view-operation-type.js +19 -19
  462. package/model/weather/weather-info.d.ts +11 -11
  463. package/model/weather/weather-info.js +2 -2
  464. package/model/weather/weather.model.d.ts +7 -7
  465. package/package.json +1 -1
  466. package/public_api.d.ts +14 -14
  467. package/public_api.js +12 -11
  468. package/remote/communication/variable/remote-variable-communicator.d.ts +59 -30
  469. package/remote/communication/variable/remote-variable-communicator.js +395 -215
  470. package/remote/communication/variable/remote-variable-communicator.metadata.json +1 -1
  471. package/remote/communication/variable/remote-variable-protocol.d.ts +18 -13
  472. package/remote/config/graph/get-released-graph-state-result.d.ts +6 -6
  473. package/remote/config/graph/get-released-graph-states.d.ts +4 -4
  474. package/remote/config/graph/graph-state-key.d.ts +6 -6
  475. package/remote/config/graph/graph-state-result.d.ts +5 -5
  476. package/remote/config/graph/graph-state.d.ts +4 -4
  477. package/remote/config/graph/remote-graph-protocol.d.ts +11 -11
  478. package/remote/config/graph/remote-graph-store.d.ts +16 -16
  479. package/remote/config/graph/remote-graph-store.js +101 -101
  480. package/remote/config/image/remote-image-protocol.d.ts +4 -4
  481. package/remote/config/image/remote-image-store.d.ts +8 -8
  482. package/remote/config/image/remote-image-store.js +19 -19
  483. package/remote/config/view/remote-view-protocol.d.ts +8 -8
  484. package/remote/config/view/remote-view-store.d.ts +13 -13
  485. package/remote/config/view/remote-view-store.js +39 -39
  486. package/remote/config/view/view-result.d.ts +4 -4
  487. package/remote/index.d.ts +14 -14
  488. package/remote/index.js +4 -4
  489. package/security/index.d.ts +1 -1
  490. package/security/security-checker.d.ts +3 -3
  491. package/service/index.d.ts +8 -4
  492. package/service/index.js +1 -0
  493. package/service/index.metadata.json +1 -1
  494. package/service/language.service.d.ts +37 -0
  495. package/service/language.service.js +0 -0
  496. package/service/language.service.metadata.json +1 -0
  497. package/service/operation-record/create-operation-record-args.d.ts +5 -5
  498. package/service/operation-record/index.d.ts +3 -3
  499. package/service/operation-record/operation-record.service.d.ts +4 -4
  500. package/service/operation-record/variable-option.model.d.ts +5 -5
  501. package/service/permission-checker.d.ts +3 -3
  502. package/service/released-variable/index.d.ts +1 -0
  503. package/service/released-variable/index.js +0 -0
  504. package/service/released-variable/index.metadata.json +1 -0
  505. package/service/released-variable/released-variable.service.d.ts +4 -0
  506. package/service/released-variable/released-variable.service.js +0 -0
  507. package/service/released-variable/released-variable.service.metadata.json +1 -0
  508. package/service/system-text-library.service.d.ts +77 -0
  509. package/service/system-text-library.service.js +29 -0
  510. package/service/system-text-library.service.metadata.json +1 -0
  511. package/service/text-library.service.d.ts +49 -0
  512. package/service/text-library.service.js +0 -0
  513. package/service/text-library.service.metadata.json +1 -0
  514. package/service/video/index.d.ts +2 -2
  515. package/service/video/video-url.d.ts +4 -4
  516. package/service/video/video.service.d.ts +4 -4
  517. package/service/weather.service.d.ts +4 -3
  518. package/settings/display-mode.d.ts +10 -10
  519. package/settings/display-mode.js +11 -11
  520. package/settings/global-settings.d.ts +7 -7
  521. package/settings/global-settings.js +13 -13
  522. package/settings/index.d.ts +3 -3
  523. package/settings/index.js +3 -3
  524. package/settings/view-resize-mode.d.ts +10 -10
  525. package/settings/view-resize-mode.js +11 -11
  526. package/shared/config-is-empty-error.d.ts +3 -3
  527. package/shared/config-is-empty-error.js +7 -7
  528. package/shared/disposable.d.ts +3 -3
  529. package/shared/graph-extended-style.d.ts +4 -4
  530. package/shared/gui-consts.d.ts +33 -30
  531. package/shared/gui-consts.js +33 -30
  532. package/shared/gui-consts.metadata.json +1 -1
  533. package/shared/index.d.ts +5 -5
  534. package/shared/index.js +3 -3
  535. package/shared/operation-helper.d.ts +6 -6
  536. package/shared/operation-helper.js +38 -38
  537. package/utils/access-permission.d.ts +5 -5
  538. package/utils/access-permission.js +6 -6
  539. package/utils/access-permission.service.d.ts +11 -11
  540. package/utils/access-permission.service.js +30 -30
  541. package/utils/auto-focus.directive.d.ts +6 -6
  542. package/utils/auto-focus.directive.js +27 -27
  543. package/utils/bs-modal-drag.directive.d.ts +7 -7
  544. package/utils/bs-modal-drag.directive.js +38 -38
  545. package/utils/data-type/data-type.service.d.ts +57 -57
  546. package/utils/data-type/data-type.service.js +155 -155
  547. package/utils/data-type/fbox-data-type.service.d.ts +54 -54
  548. package/utils/data-type/fbox-data-type.service.js +300 -260
  549. package/utils/data-type/fcloud-data-type.service.d.ts +55 -55
  550. package/utils/data-type/fcloud-data-type.service.js +203 -203
  551. package/utils/fraction-digit.service.d.ts +41 -41
  552. package/utils/fraction-digit.service.js +133 -133
  553. package/utils/graph-util.d.ts +5 -5
  554. package/utils/graph-util.js +19 -19
  555. package/utils/guid.d.ts +6 -6
  556. package/utils/guid.js +27 -27
  557. package/utils/index.d.ts +7 -7
  558. package/utils/index.js +7 -7
  559. package/utils/numerical-operation-type.d.ts +4 -4
  560. package/utils/numerical-operation-type.js +5 -5
  561. package/utils/numerical-operation.service.d.ts +17 -17
  562. package/utils/numerical-operation.service.js +201 -177
  563. package/utils/variable-util.d.ts +5 -5
  564. package/utils/variable-util.js +11 -11
  565. package/view/popup-view.service.d.ts +7 -7
  566. package/view/view.service.d.ts +6 -6
  567. package/view/view.service.js +20 -20
@@ -1,194 +1,348 @@
1
- import { LOGGER_SERVICE_TOKEN } from '../../logger';
2
- import * as d3 from 'd3-selection';
3
- import { drag } from 'd3-drag';
4
- import { ViewOperationType } from '../../model';
5
- import { ConditionalEnableElement } from '../base/conditional-enable-element';
6
- import { GraphStateElement } from '../shared/graph/graph-state-element';
7
- import { AlertModalComponent } from '../../modal/alert/alert-modal.component';
8
- import { ConfirmOperationModalComponent } from '../../modal/confirm-operation/confirm-operation-modal.component';
9
- import { VerifyPasswordModalComponent } from '../../modal/verify-password/verify-password-modal.component';
10
- import { ViewService } from '../../view/view.service';
11
- export class ViewOperationElement extends ConditionalEnableElement {
12
- constructor(element, injector, modalService, variableCommunicator, variableStore, graphStore, permissionChecker, operationRecordService, securityChecker, localization, popupViewService, hostContainerId, el, signalRAppId) {
13
- super(element, permissionChecker, variableCommunicator, variableStore, localization, signalRAppId);
14
- this.modalService = modalService;
15
- this.graphStore = graphStore;
16
- this.operationRecordService = operationRecordService;
17
- this.securityChecker = securityChecker;
18
- this.popupViewService = popupViewService;
19
- this.hostContainerId = hostContainerId;
20
- this.el = el;
21
- this.touchedScreenX = 0;
22
- this.touchedScreenY = 0;
23
- this.logger = injector.get(LOGGER_SERVICE_TOKEN);
24
- this.viewService = injector.get(ViewService);
25
- this.initElement();
26
- }
27
- initElement() {
28
- const width = this.model.size.width;
29
- const height = this.model.size.height;
30
- this.initGraph(width, height);
31
- this.rootElement.append('rect').attr('id', 'StateFrame').attr('width', width).attr('height', height).attr('fill', 'transparent');
32
- const $dateTimeText = this.$element.find('text').last();
33
- const fontStyle = this.model.label.font.fontStyle;
34
- $dateTimeText.css('font', fontStyle + ',msyh');
35
- this.switchToState(0);
36
- this.rootElement.on('mousedown', () => {
37
- if (!this.isInitialized) {
38
- return;
39
- }
40
- this.switchToState(1);
41
- d3.event.preventDefault();
42
- if (!this.isEnable) {
43
- const message = !this.isGrantedPermission ? this.localization.permissiontip : this.localization.conditionIsNotMetTip;
44
- const modalRef = this.modalService.show(AlertModalComponent, { initialState: { alermMessage: message }, backdrop: 'static', class: 'gui-modal-dialog-position', animated: false });
45
- const onClosedSub = modalRef.content.onClosed.subscribe(() => {
46
- modalRef.hide();
47
- onClosedSub.unsubscribe();
48
- });
49
- return;
50
- }
51
- });
52
- this.rootElement.on('mouseup', () => {
53
- this.switchToState(0);
54
- d3.event.preventDefault();
55
- if (!this.isInitialized || !this.isEnable) {
56
- return;
57
- }
58
- if (this.model.useSecurity) {
59
- const modalRef = this.modalService.show(ConfirmOperationModalComponent, {
60
- backdrop: 'static', class: 'gui-modal-dialog-position', animated: false
61
- });
62
- const onClosedSub = modalRef.content.onClosed.subscribe(result => {
63
- modalRef.hide();
64
- onClosedSub.unsubscribe();
65
- if (result) {
66
- this.checkElementPassword();
67
- }
68
- });
69
- }
70
- else {
71
- this.checkElementPassword();
72
- }
73
- });
74
- if (this.model.operationType === ViewOperationType.ControlView) {
75
- this.rootElement.style('cursor', 'move');
76
- this.rootElement.call(drag().on('start', () => {
77
- if (!this.isEnable) {
78
- this.rootElement.style('cursor', 'hand');
79
- return;
80
- }
81
- if (!d3.event || !d3.event.sourceEvent) {
82
- this.logger.error('[GUI]Failed to get DragEvent', d3.event);
83
- return;
84
- }
85
- if (d3.event.sourceEvent.type === 'touchstart' && d3.event.sourceEvent.touches.length) {
86
- this.touchedScreenX = d3.event.sourceEvent.touches[0].screenX;
87
- this.touchedScreenY = d3.event.sourceEvent.touches[0].screenY;
88
- }
89
- }).on('drag', () => {
90
- if (!this.isEnable) {
91
- this.rootElement.style('cursor', 'hand');
92
- return;
93
- }
94
- if (!d3.event || !d3.event.sourceEvent) {
95
- this.logger.error('[GUI]Failed to get DragEvent', d3.event);
96
- return;
97
- }
98
- if (d3.event.sourceEvent.type === 'mousemove') {
99
- this.moveView(d3.event.sourceEvent.movementX, d3.event.sourceEvent.movementY);
100
- }
101
- else if (d3.event.sourceEvent.type === 'touchmove' && d3.event.sourceEvent.touches.length) {
102
- const movementX = d3.event.sourceEvent.touches[0].screenX - this.touchedScreenX;
103
- const movementY = d3.event.sourceEvent.touches[0].screenY - this.touchedScreenY;
104
- this.touchedScreenX = d3.event.sourceEvent.touches[0].screenX;
105
- this.touchedScreenY = d3.event.sourceEvent.touches[0].screenY;
106
- this.moveView(movementX, movementY);
107
- }
108
- }).on('end', () => this.switchToState(0)));
109
- }
110
- else {
111
- this.rootElement.style('cursor', 'hand');
112
- }
113
- }
114
- switchToState(stateId) {
115
- if (this.graphStateElement) {
116
- this.graphStateElement.switchToState(stateId);
117
- }
118
- }
119
- initGraph(width, height) {
120
- if (this.model.useGraph === true) {
121
- this.graphStateElement = new GraphStateElement(this.model.graphSetting, width, height, this.graphStore, this.logger);
122
- this.$element.prepend(this.graphStateElement.Element);
123
- this.graphStateElement.switchToState(0);
124
- }
125
- }
126
- checkElementPassword() {
127
- if (this.model.enablePassword) {
128
- const modalRef = this.modalService.show(VerifyPasswordModalComponent, { initialState: { securityChecker: this.securityChecker }, backdrop: 'static', class: 'gui-modal-dialog-position', animated: false });
129
- const onClosedSub = modalRef.content.onClosed.subscribe(result => {
130
- modalRef.hide();
131
- onClosedSub.unsubscribe();
132
- if (result) {
133
- this.executeViewOperation();
134
- }
135
- });
136
- }
137
- else {
138
- this.executeViewOperation();
139
- }
140
- }
141
- executeViewOperation() {
142
- let operationType = this.model.version >= 5 ? this.model.operationType : ViewOperationType.ToggleView;
143
- operationType = operationType === undefined ? ViewOperationType.ToggleView : operationType;
144
- switch (operationType) {
145
- case ViewOperationType.ToggleView:
146
- this.toggleView();
147
- break;
148
- case ViewOperationType.PopupView:
149
- this.popView();
150
- break;
151
- case ViewOperationType.CloseView:
152
- this.closeView();
153
- break;
154
- }
155
- }
156
- toggleView() {
157
- const viewIndex = this.model.viewIndex;
158
- if (null != viewIndex) {
159
- const toggleView = this.viewService.toggleViews.get(this.el);
160
- if (!toggleView) {
161
- return;
162
- }
163
- toggleView(viewIndex, this.hostContainerId, this.el).subscribe(() => this.recordViewOperation(), error => this.logger.error(`ToggleView(${viewIndex}) failed. `, error));
164
- }
165
- else {
166
- this.logger.error('[GUI]Toggle View:invalid view index');
167
- }
168
- }
169
- popView() {
170
- const viewIndex = this.model.viewIndex;
171
- if (null != viewIndex) {
172
- this.popupViewService.popView(viewIndex, this.hostContainerId, this.el).subscribe(() => this.recordViewOperation(), error => this.logger.error(`ToggleView(${viewIndex}) failed. ${error}`));
173
- }
174
- else {
175
- this.logger.error('[GUI]Toggle View:invalid view index');
176
- }
177
- }
178
- closeView() {
179
- this.popupViewService.closeView();
180
- this.recordViewOperation();
181
- }
182
- moveView(movementX, movementY) {
183
- if (isNaN(movementX) || isNaN(movementY)) {
184
- return;
185
- }
186
- this.popupViewService.moveView(movementX, movementY);
187
- this.recordViewOperation();
188
- }
189
- recordViewOperation() {
190
- if (this.model.isRecordOperation) {
191
- this.operationRecordService.record({ operationDescription: this.model.operationDescription });
192
- }
193
- }
194
- }
1
+ import { LOGGER_SERVICE_TOKEN } from '../../logger';
2
+ import * as d3 from 'd3-selection';
3
+ import { drag } from 'd3-drag';
4
+ import { ViewOperationType } from '../../model';
5
+ import { TextElementModal } from '../shared/text/text-element';
6
+ import { ConditionalEnableElement } from '../base/conditional-enable-element';
7
+ import { GraphStateElement } from '../shared/graph/graph-state-element';
8
+ import { AlertModalComponent } from '../../modal/alert/alert-modal.component';
9
+ import { ConfirmOperationModalComponent } from '../../modal/confirm-operation/confirm-operation-modal.component';
10
+ import { VerifyPasswordModalComponent } from '../../modal/verify-password/verify-password-modal.component';
11
+ import { ViewService } from '../../view/view.service';
12
+ export class ViewOperationElement extends ConditionalEnableElement {
13
+ constructor(element, injector, modalService, variableCommunicator, variableStore, graphStore, permissionChecker, operationRecordService, securityChecker, localization, popupViewService, hostContainerId, el, signalRAppId, textLibraryService, languageService, guiContext) {
14
+ super(element, permissionChecker, variableCommunicator, variableStore, localization, signalRAppId);
15
+ this.modalService = modalService;
16
+ this.graphStore = graphStore;
17
+ this.operationRecordService = operationRecordService;
18
+ this.securityChecker = securityChecker;
19
+ this.popupViewService = popupViewService;
20
+ this.hostContainerId = hostContainerId;
21
+ this.el = el;
22
+ this.textLibraryService = textLibraryService;
23
+ this.languageService = languageService;
24
+ this.guiContext = guiContext;
25
+ this.touchedScreenX = 0;
26
+ this.touchedScreenY = 0;
27
+ this.logger = injector.get(LOGGER_SERVICE_TOKEN);
28
+ this.viewService = injector.get(ViewService);
29
+ this.initElement();
30
+ this.subscribeLanguageChange();
31
+ }
32
+ initElement() {
33
+ const width = this.model.size.width;
34
+ const height = this.model.size.height;
35
+ // 在 initGraph 之前移除模板原有的 SVG <text>(改用 foreignObject 渲染,支持换行居中)
36
+ // 必须在 initGraph 前执行,否则会误删图形状态内部后续添加的文字节点
37
+ this.$element.find('text').remove();
38
+ this.initGraph(width, height);
39
+ this.rootElement.append('rect').attr('id', 'StateFrame').attr('width', width).attr('height', height).attr('fill', 'transparent');
40
+ const font = this.getFontStyle();
41
+ this.textElementModal = new TextElementModal(this.getDisplayText(), font, width, height);
42
+ this.$element.append(this.textElementModal.Element);
43
+ this.switchToState(0);
44
+ this.rootElement.on('mousedown', () => {
45
+ if (!this.isInitialized) {
46
+ return;
47
+ }
48
+ this.switchToState(1);
49
+ d3.event.preventDefault();
50
+ if (!this.isEnable) {
51
+ const message = !this.isGrantedPermission ? this.localization.permissiontip : this.localization.conditionIsNotMetTip;
52
+ const modalRef = this.modalService.show(AlertModalComponent, { initialState: { alermMessage: message }, backdrop: 'static', class: 'gui-modal-dialog-position', animated: false });
53
+ const onClosedSub = modalRef.content.onClosed.subscribe(() => {
54
+ modalRef.hide();
55
+ onClosedSub.unsubscribe();
56
+ });
57
+ return;
58
+ }
59
+ });
60
+ this.rootElement.on('mouseup', () => {
61
+ this.switchToState(0);
62
+ d3.event.preventDefault();
63
+ if (!this.isInitialized || !this.isEnable) {
64
+ return;
65
+ }
66
+ if (this.model.useSecurity) {
67
+ const modalRef = this.modalService.show(ConfirmOperationModalComponent, {
68
+ backdrop: 'static', class: 'gui-modal-dialog-position', animated: false
69
+ });
70
+ const onClosedSub = modalRef.content.onClosed.subscribe(result => {
71
+ modalRef.hide();
72
+ onClosedSub.unsubscribe();
73
+ if (result) {
74
+ this.checkElementPassword();
75
+ }
76
+ });
77
+ }
78
+ else {
79
+ this.checkElementPassword();
80
+ }
81
+ });
82
+ if (this.model.operationType === ViewOperationType.ControlView) {
83
+ this.rootElement.style('cursor', 'move');
84
+ this.rootElement.call(drag().on('start', () => {
85
+ if (!this.isEnable) {
86
+ this.rootElement.style('cursor', 'hand');
87
+ return;
88
+ }
89
+ if (!d3.event || !d3.event.sourceEvent) {
90
+ this.logger.error('[GUI]Failed to get DragEvent', d3.event);
91
+ return;
92
+ }
93
+ if (d3.event.sourceEvent.type === 'touchstart' && d3.event.sourceEvent.touches.length) {
94
+ this.touchedScreenX = d3.event.sourceEvent.touches[0].screenX;
95
+ this.touchedScreenY = d3.event.sourceEvent.touches[0].screenY;
96
+ }
97
+ }).on('drag', () => {
98
+ if (!this.isEnable) {
99
+ this.rootElement.style('cursor', 'hand');
100
+ return;
101
+ }
102
+ if (!d3.event || !d3.event.sourceEvent) {
103
+ this.logger.error('[GUI]Failed to get DragEvent', d3.event);
104
+ return;
105
+ }
106
+ if (d3.event.sourceEvent.type === 'mousemove') {
107
+ this.moveView(d3.event.sourceEvent.movementX, d3.event.sourceEvent.movementY);
108
+ }
109
+ else if (d3.event.sourceEvent.type === 'touchmove' && d3.event.sourceEvent.touches.length) {
110
+ const movementX = d3.event.sourceEvent.touches[0].screenX - this.touchedScreenX;
111
+ const movementY = d3.event.sourceEvent.touches[0].screenY - this.touchedScreenY;
112
+ this.touchedScreenX = d3.event.sourceEvent.touches[0].screenX;
113
+ this.touchedScreenY = d3.event.sourceEvent.touches[0].screenY;
114
+ this.moveView(movementX, movementY);
115
+ }
116
+ }).on('end', () => this.switchToState(0)));
117
+ }
118
+ else {
119
+ this.rootElement.style('cursor', 'hand');
120
+ }
121
+ }
122
+ switchToState(stateId) {
123
+ if (this.graphStateElement) {
124
+ this.graphStateElement.switchToState(stateId);
125
+ }
126
+ }
127
+ initGraph(width, height) {
128
+ if (this.model.useGraph === true) {
129
+ this.graphStateElement = new GraphStateElement(this.model.graphSetting, width, height, this.graphStore, this.logger);
130
+ this.$element.prepend(this.graphStateElement.Element);
131
+ this.graphStateElement.switchToState(0);
132
+ }
133
+ }
134
+ checkElementPassword() {
135
+ if (this.model.enablePassword) {
136
+ const modalRef = this.modalService.show(VerifyPasswordModalComponent, { initialState: { securityChecker: this.securityChecker }, backdrop: 'static', class: 'gui-modal-dialog-position', animated: false });
137
+ const onClosedSub = modalRef.content.onClosed.subscribe(result => {
138
+ modalRef.hide();
139
+ onClosedSub.unsubscribe();
140
+ if (result) {
141
+ this.executeViewOperation();
142
+ }
143
+ });
144
+ }
145
+ else {
146
+ this.executeViewOperation();
147
+ }
148
+ }
149
+ executeViewOperation() {
150
+ let operationType = this.model.version >= 5 ? this.model.operationType : ViewOperationType.ToggleView;
151
+ operationType = operationType === undefined ? ViewOperationType.ToggleView : operationType;
152
+ switch (operationType) {
153
+ case ViewOperationType.ToggleView:
154
+ this.toggleView();
155
+ break;
156
+ case ViewOperationType.PopupView:
157
+ this.popView();
158
+ break;
159
+ case ViewOperationType.CloseView:
160
+ this.closeView();
161
+ break;
162
+ }
163
+ }
164
+ toggleView() {
165
+ const viewIndex = this.model.viewIndex;
166
+ if (null != viewIndex) {
167
+ const toggleView = this.viewService.toggleViews.get(this.el);
168
+ if (!toggleView) {
169
+ return;
170
+ }
171
+ toggleView(viewIndex, this.hostContainerId, this.el).subscribe(() => this.recordViewOperation(), error => this.logger.error(`ToggleView(${viewIndex}) failed. `, error));
172
+ }
173
+ else {
174
+ this.logger.error('[GUI]Toggle View:invalid view index');
175
+ }
176
+ }
177
+ popView() {
178
+ const viewIndex = this.model.viewIndex;
179
+ if (null != viewIndex) {
180
+ this.popupViewService.popView(viewIndex, this.hostContainerId, this.el).subscribe(() => this.recordViewOperation(), error => this.logger.error(`ToggleView(${viewIndex}) failed. ${error}`));
181
+ $(`#${this.hostContainerId} video`)
182
+ .addClass('video-hidden')
183
+ .css('visibility', 'hidden');
184
+ }
185
+ else {
186
+ this.logger.error('[GUI]Toggle View:invalid view index');
187
+ }
188
+ }
189
+ closeView() {
190
+ this.popupViewService.closeView();
191
+ if ($(`#${this.hostContainerId} > svg > svg`).length === 0) {
192
+ $(`#${this.hostContainerId} .video-hidden`)
193
+ .removeClass('video-hidden')
194
+ .css('visibility', 'visible');
195
+ }
196
+ this.recordViewOperation();
197
+ }
198
+ moveView(movementX, movementY) {
199
+ if (isNaN(movementX) || isNaN(movementY)) {
200
+ return;
201
+ }
202
+ this.popupViewService.moveView(movementX, movementY);
203
+ this.recordViewOperation();
204
+ }
205
+ recordViewOperation() {
206
+ if (this.model.isRecordOperation) {
207
+ this.operationRecordService.record({ operationDescription: this.model.operationDescription });
208
+ }
209
+ }
210
+ /**
211
+ * 订阅语种变化事件
212
+ */
213
+ subscribeLanguageChange() {
214
+ if (this.guiContext && this.guiContext.languageChanged$) {
215
+ this.languageChangeSubscription = this.guiContext.languageChanged$.subscribe(() => {
216
+ this.updateTextContent();
217
+ });
218
+ }
219
+ }
220
+ /**
221
+ * 获取当前语种的字体样式
222
+ */
223
+ getFontStyle() {
224
+ const getTargetLanguage = () => {
225
+ var _a, _b, _c, _d, _e, _f;
226
+ const currentLanguageId = (_c = (_b = (_a = this.guiContext) === null || _a === void 0 ? void 0 : _a.getCurrentLanguageId) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : null;
227
+ const defaultLanguage = ((_d = this.languageService) === null || _d === void 0 ? void 0 : _d.getDefaultLanguage()) || 'zh-CN';
228
+ if (currentLanguageId === null || currentLanguageId === undefined) {
229
+ return defaultLanguage;
230
+ }
231
+ return ((_f = (_e = this.guiContext) === null || _e === void 0 ? void 0 : _e.getLanguageCultureById) === null || _f === void 0 ? void 0 : _f.call(_e, currentLanguageId)) || defaultLanguage;
232
+ };
233
+ const targetLanguage = getTargetLanguage();
234
+ if (this.model.fontStyleCultures && this.model.fontStyleCultures[targetLanguage]) {
235
+ const style = this.model.fontStyleCultures[targetLanguage];
236
+ return {
237
+ isUnderline: style.isUnderline,
238
+ isBold: style.isBold,
239
+ isItalic: style.isItalic,
240
+ fontSize: style.fontSize,
241
+ fontFamily: style.fontFamily || 'msyh',
242
+ color: style.color,
243
+ textAlign: style.textAlign
244
+ };
245
+ }
246
+ return Object.assign(Object.assign({}, this.model.label.font), { fontFamily: this.model.label.font.fontFamily || 'msyh' });
247
+ }
248
+ /**
249
+ * 更新文本内容(支持文本库和语种切换)
250
+ */
251
+ updateTextContent() {
252
+ if (this.textElementModal) {
253
+ const font = this.getFontStyle();
254
+ this.textElementModal.updateFont(font);
255
+ this.textElementModal.updateText(this.getDisplayText());
256
+ }
257
+ }
258
+ /**
259
+ * 获取显示文本
260
+ */
261
+ getDisplayText() {
262
+ var _a, _b, _c, _d, _e, _f;
263
+ // 检查是否使用文本库
264
+ if (this.model.textLibrary && this.model.textLibrary.labelType === 'textLibrary') {
265
+ const textLibraryId = this.model.textLibrary.selectedTextLibraryItem;
266
+ const textItem = this.model.textLibrary.selectedTextItem;
267
+ if (textLibraryId && textItem && this.textLibraryService) {
268
+ // 获取文本库数据
269
+ const textLibraryData = this.textLibraryService.getTextLibraryById(typeof textLibraryId === 'string' ? parseInt(textLibraryId, 10) : textLibraryId);
270
+ if (textLibraryData && textLibraryData.data) {
271
+ // 查找对应的文本条目
272
+ const textEntry = textLibraryData.data.find(entry => entry.key === textItem.toString());
273
+ if (textEntry) {
274
+ // 获取当前语种ID
275
+ const currentLanguageId = (_c = (_b = (_a = this.guiContext) === null || _a === void 0 ? void 0 : _a.getCurrentLanguageId) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : null;
276
+ // 确定要使用的语种代码(culture)
277
+ let targetLanguage;
278
+ const defaultLanguage = ((_d = this.languageService) === null || _d === void 0 ? void 0 : _d.getDefaultLanguage()) || 'zh-CN';
279
+ if (currentLanguageId === null || currentLanguageId === undefined) {
280
+ // 设备未设置当前语种,使用默认语种
281
+ targetLanguage = defaultLanguage;
282
+ }
283
+ else {
284
+ // 设备已设置当前语种,获取对应的语种代码
285
+ const currentLanguage = (_f = (_e = this.guiContext) === null || _e === void 0 ? void 0 : _e.getLanguageCultureById) === null || _f === void 0 ? void 0 : _f.call(_e, currentLanguageId);
286
+ if (currentLanguage) {
287
+ targetLanguage = currentLanguage;
288
+ }
289
+ else {
290
+ // 无法获取语种代码,使用默认语种
291
+ targetLanguage = defaultLanguage;
292
+ }
293
+ }
294
+ // 返回对应语种的文本
295
+ if (textEntry.cultures && textEntry.cultures[targetLanguage]) {
296
+ return textEntry.cultures[targetLanguage];
297
+ }
298
+ // 如果没有对应语种,返回空字符串
299
+ return '';
300
+ }
301
+ }
302
+ }
303
+ // 文本库配置但未找到数据,返回空字符串
304
+ return '';
305
+ }
306
+ // 处理自定义文本(支持多语种)
307
+ if (this.model.label) {
308
+ // 获取目标语种(公共逻辑)
309
+ const getTargetLanguage = () => {
310
+ var _a, _b, _c, _d, _e, _f;
311
+ const currentLanguageId = (_c = (_b = (_a = this.guiContext) === null || _a === void 0 ? void 0 : _a.getCurrentLanguageId) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : null;
312
+ const defaultLanguage = ((_d = this.languageService) === null || _d === void 0 ? void 0 : _d.getDefaultLanguage()) || 'zh-CN';
313
+ if (currentLanguageId === null || currentLanguageId === undefined) {
314
+ return defaultLanguage;
315
+ }
316
+ return ((_f = (_e = this.guiContext) === null || _e === void 0 ? void 0 : _e.getLanguageCultureById) === null || _f === void 0 ? void 0 : _f.call(_e, currentLanguageId)) || defaultLanguage;
317
+ };
318
+ // 新格式:cultures 在 label 顶层
319
+ if (this.model.label.cultures && typeof this.model.label.cultures === 'object') {
320
+ return this.model.label.cultures[getTargetLanguage()] || '';
321
+ }
322
+ if (this.model.label.content) {
323
+ // 中间格式(兼容):content 为 { cultures: {...} }
324
+ if (typeof this.model.label.content === 'object' && this.model.label.content.cultures) {
325
+ return this.model.label.content.cultures[getTargetLanguage()] || '';
326
+ }
327
+ // 旧格式:字符串
328
+ if (typeof this.model.label.content === 'string') {
329
+ return this.model.label.content;
330
+ }
331
+ }
332
+ }
333
+ return '';
334
+ }
335
+ /**
336
+ * 释放资源
337
+ */
338
+ dispose() {
339
+ // 取消语种变化订阅
340
+ if (this.languageChangeSubscription) {
341
+ this.languageChangeSubscription.unsubscribe();
342
+ this.languageChangeSubscription = undefined;
343
+ }
344
+ if (this.$element) {
345
+ this.$element.remove();
346
+ }
347
+ }
348
+ }
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"ViewOperationElement":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../base/conditional-enable-element","name":"ConditionalEnableElement","line":20,"character":42},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":31,"character":25,"context":{"typeName":"HTMLElement"}},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":31,"character":48},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":32,"character":39},{"__symbolic":"reference","module":"../../communication","name":"VariableCommunicator","line":33,"character":30},{"__symbolic":"reference","module":"../../config","name":"VariableStore","line":34,"character":23},{"__symbolic":"reference","module":"../../config","name":"GraphStore","line":35,"character":37},{"__symbolic":"reference","module":"../../service","name":"PermissionChecker","line":36,"character":27},{"__symbolic":"reference","module":"../../service","name":"OperationRecordService","line":37,"character":49},{"__symbolic":"reference","module":"../../security","name":"SecurityChecker","line":38,"character":42},{"__symbolic":"reference","module":"../../localization","name":"Localization","line":39,"character":22},{"__symbolic":"reference","module":"../../view/popup-view.service","name":"PopupViewService","line":40,"character":43},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":42,"character":29},{"__symbolic":"reference","name":"string"}]}],"initElement":[{"__symbolic":"method"}],"switchToState":[{"__symbolic":"method"}],"initGraph":[{"__symbolic":"method"}],"checkElementPassword":[{"__symbolic":"method"}],"executeViewOperation":[{"__symbolic":"method"}],"toggleView":[{"__symbolic":"method"}],"popView":[{"__symbolic":"method"}],"closeView":[{"__symbolic":"method"}],"moveView":[{"__symbolic":"method"}],"recordViewOperation":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"ViewOperationElement":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../base/conditional-enable-element","name":"ConditionalEnableElement","line":23,"character":42},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":36,"character":25,"context":{"typeName":"HTMLElement"}},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":36,"character":48},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":37,"character":39},{"__symbolic":"reference","module":"../../communication","name":"VariableCommunicator","line":38,"character":30},{"__symbolic":"reference","module":"../../config","name":"VariableStore","line":39,"character":23},{"__symbolic":"reference","module":"../../config","name":"GraphStore","line":40,"character":37},{"__symbolic":"reference","module":"../../service","name":"PermissionChecker","line":41,"character":27},{"__symbolic":"reference","module":"../../service","name":"OperationRecordService","line":42,"character":49},{"__symbolic":"reference","module":"../../security","name":"SecurityChecker","line":43,"character":42},{"__symbolic":"reference","module":"../../localization","name":"Localization","line":44,"character":22},{"__symbolic":"reference","module":"../../view/popup-view.service","name":"PopupViewService","line":45,"character":43},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":47,"character":29},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"../../service","name":"TextLibraryService","line":49,"character":46},{"__symbolic":"reference","module":"../../service","name":"LanguageService","line":50,"character":43},{"__symbolic":"reference","module":"../../gui/gui-context","name":"GuiContext","line":51,"character":38}]}],"initElement":[{"__symbolic":"method"}],"switchToState":[{"__symbolic":"method"}],"initGraph":[{"__symbolic":"method"}],"checkElementPassword":[{"__symbolic":"method"}],"executeViewOperation":[{"__symbolic":"method"}],"toggleView":[{"__symbolic":"method"}],"popView":[{"__symbolic":"method"}],"closeView":[{"__symbolic":"method"}],"moveView":[{"__symbolic":"method"}],"recordViewOperation":[{"__symbolic":"method"}],"subscribeLanguageChange":[{"__symbolic":"method"}],"getFontStyle":[{"__symbolic":"method"}],"updateTextContent":[{"__symbolic":"method"}],"getDisplayText":[{"__symbolic":"method"}],"dispose":[{"__symbolic":"method"}]}}}}]