@flexem/fc-gui 3.0.0-alpha.3 → 3.0.0-alpha.32

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 (191) hide show
  1. package/CHANGELOG.md +142 -0
  2. package/bundles/@flexem/fc-gui.umd.js +2253 -1278
  3. package/bundles/@flexem/fc-gui.umd.js.map +1 -1
  4. package/bundles/@flexem/fc-gui.umd.min.js +5 -5
  5. package/bundles/@flexem/fc-gui.umd.min.js.map +1 -1
  6. package/communication/variable/variable-communicator.d.ts +2 -2
  7. package/elements/air-quality/air-quality-element.d.ts +31 -0
  8. package/elements/air-quality/air-quality-element.js +195 -0
  9. package/elements/air-quality/air-quality-element.metadata.json +1 -0
  10. package/elements/bar-graph-element.d.ts +8 -2
  11. package/elements/bar-graph-element.js +72 -6
  12. package/elements/bar-graph-element.metadata.json +1 -1
  13. package/elements/base/base-element.d.ts +2 -1
  14. package/elements/base/base-element.js +2 -1
  15. package/elements/base/base-element.metadata.json +1 -1
  16. package/elements/base/conditional-control-element.d.ts +1 -1
  17. package/elements/base/conditional-control-element.js +3 -3
  18. package/elements/base/conditional-control-element.metadata.json +1 -1
  19. package/elements/base/conditional-display-element.d.ts +1 -1
  20. package/elements/base/conditional-display-element.js +4 -4
  21. package/elements/base/conditional-display-element.metadata.json +1 -1
  22. package/elements/base/conditional-dynamic-display-element.d.ts +1 -1
  23. package/elements/base/conditional-dynamic-display-element.js +3 -3
  24. package/elements/base/conditional-dynamic-display-element.metadata.json +1 -1
  25. package/elements/base/conditional-enable-element.d.ts +1 -1
  26. package/elements/base/conditional-enable-element.js +4 -4
  27. package/elements/base/conditional-enable-element.metadata.json +1 -1
  28. package/elements/base/readable-element.d.ts +7 -2
  29. package/elements/base/readable-element.js +33 -4
  30. package/elements/base/readable-element.metadata.json +1 -1
  31. package/elements/base/state-control-element.d.ts +1 -1
  32. package/elements/base/state-control-element.js +2 -2
  33. package/elements/base/state-control-element.metadata.json +1 -1
  34. package/elements/character-display/character-display-element.d.ts +1 -1
  35. package/elements/character-display/character-display-element.js +2 -2
  36. package/elements/character-display/character-display-element.metadata.json +1 -1
  37. package/elements/datetime-display/datetime-display-element.d.ts +1 -1
  38. package/elements/datetime-display/datetime-display-element.js +2 -2
  39. package/elements/datetime-display/datetime-display-element.metadata.json +1 -1
  40. package/elements/historical-curve/historical-curve.element.d.ts +1 -1
  41. package/elements/historical-curve/historical-curve.element.js +17 -10
  42. package/elements/historical-curve/historical-curve.element.metadata.json +1 -1
  43. package/elements/main-element.d.ts +2 -1
  44. package/elements/main-element.js +44 -26
  45. package/elements/main-element.metadata.json +1 -1
  46. package/elements/meter-element.d.ts +8 -2
  47. package/elements/meter-element.js +78 -9
  48. package/elements/meter-element.metadata.json +1 -1
  49. package/elements/numerical-display/numerical-display-element.d.ts +2 -1
  50. package/elements/numerical-display/numerical-display-element.js +14 -5
  51. package/elements/numerical-display/numerical-display-element.metadata.json +1 -1
  52. package/elements/per-view-variable-communicator.d.ts +2 -2
  53. package/elements/per-view-variable-communicator.js +4 -4
  54. package/elements/pipe/pipe-element.d.ts +1 -1
  55. package/elements/pipe/pipe-element.js +2 -2
  56. package/elements/pipe/pipe-element.metadata.json +1 -1
  57. package/elements/ring-graph/ring-graph-element.d.ts +11 -2
  58. package/elements/ring-graph/ring-graph-element.js +108 -5
  59. package/elements/ring-graph/ring-graph-element.metadata.json +1 -1
  60. package/elements/shared/graph/graph-state-element.js +0 -3
  61. package/elements/shared/text/text-element.js +13 -2
  62. package/elements/shared/text/text-state-element.js +1 -1
  63. package/elements/static-elements/hyperlink-element.d.ts +1 -1
  64. package/elements/static-elements/hyperlink-element.js +2 -2
  65. package/elements/static-elements/hyperlink-element.metadata.json +1 -1
  66. package/elements/static-elements/image-element.d.ts +1 -1
  67. package/elements/static-elements/image-element.js +2 -2
  68. package/elements/static-elements/image-element.metadata.json +1 -1
  69. package/elements/static-elements/text-element.d.ts +1 -1
  70. package/elements/static-elements/text-element.js +2 -2
  71. package/elements/static-elements/text-element.metadata.json +1 -1
  72. package/elements/switch-indicator-light/bit-indicator-light-operator.d.ts +1 -1
  73. package/elements/switch-indicator-light/bit-indicator-light-operator.js +4 -4
  74. package/elements/switch-indicator-light/bit-switch-operator.d.ts +3 -1
  75. package/elements/switch-indicator-light/bit-switch-operator.js +22 -2
  76. package/elements/switch-indicator-light/bit-switch-operator.metadata.json +1 -1
  77. package/elements/switch-indicator-light/indicator-light-operator.d.ts +1 -1
  78. package/elements/switch-indicator-light/switch-indicator-light-element.d.ts +9 -1
  79. package/elements/switch-indicator-light/switch-indicator-light-element.js +97 -28
  80. package/elements/switch-indicator-light/switch-indicator-light-element.metadata.json +1 -1
  81. package/elements/switch-indicator-light/switch-operator.d.ts +1 -0
  82. package/elements/switch-indicator-light/word-indicator-light-operator.d.ts +1 -1
  83. package/elements/switch-indicator-light/word-indicator-light-operator.js +5 -5
  84. package/elements/switch-indicator-light/word-switch-operator.d.ts +3 -1
  85. package/elements/switch-indicator-light/word-switch-operator.js +9 -2
  86. package/elements/switch-indicator-light/word-switch-operator.metadata.json +1 -1
  87. package/elements/table/table-element.d.ts +1 -1
  88. package/elements/table/table-element.js +2 -2
  89. package/elements/table/table-element.metadata.json +1 -1
  90. package/elements/vector-graphics/ellipse-element.d.ts +1 -1
  91. package/elements/vector-graphics/ellipse-element.js +2 -2
  92. package/elements/vector-graphics/ellipse-element.metadata.json +1 -1
  93. package/elements/vector-graphics/poly-line-element.d.ts +1 -1
  94. package/elements/vector-graphics/poly-line-element.js +2 -2
  95. package/elements/vector-graphics/poly-line-element.metadata.json +1 -1
  96. package/elements/vector-graphics/polygon-element.d.ts +1 -1
  97. package/elements/vector-graphics/polygon-element.js +2 -2
  98. package/elements/vector-graphics/polygon-element.metadata.json +1 -1
  99. package/elements/vector-graphics/rectangle-element.d.ts +1 -1
  100. package/elements/vector-graphics/rectangle-element.js +2 -2
  101. package/elements/vector-graphics/rectangle-element.metadata.json +1 -1
  102. package/elements/vector-graphics/sector-element.d.ts +1 -1
  103. package/elements/vector-graphics/sector-element.js +2 -2
  104. package/elements/vector-graphics/sector-element.metadata.json +1 -1
  105. package/elements/vector-graphics/straight-line-element.d.ts +1 -1
  106. package/elements/vector-graphics/straight-line-element.js +2 -2
  107. package/elements/vector-graphics/straight-line-element.metadata.json +1 -1
  108. package/elements/video/video-element.d.ts +1 -1
  109. package/elements/video/video-element.js +2 -2
  110. package/elements/video/video-element.metadata.json +1 -1
  111. package/elements/view-operation/view-operation.element.d.ts +1 -1
  112. package/elements/view-operation/view-operation.element.js +2 -2
  113. package/elements/view-operation/view-operation.element.metadata.json +1 -1
  114. package/elements/weather/weater-element.d.ts +1 -1
  115. package/elements/weather/weater-element.js +2 -2
  116. package/elements/weather/weater-element.metadata.json +1 -1
  117. package/gui/gui-host.js +1 -1
  118. package/gui/gui-view.d.ts +1 -0
  119. package/gui/gui-view.js +3 -2
  120. package/gui/gui-view.metadata.json +1 -1
  121. package/localization/localization.service.d.ts +5 -0
  122. package/localization/localization.service.js +6 -1
  123. package/localization/localization.service.metadata.json +1 -1
  124. package/localization/localization.service.zh_CN.js +6 -1
  125. package/localization/localization.service.zh_CN.metadata.json +1 -1
  126. package/modal/write-value/write-value-modal-args.d.ts +3 -1
  127. package/modal/write-value/write-value-modal-args.js +3 -1
  128. package/modal/write-value/write-value-modal-args.metadata.json +1 -1
  129. package/modal/write-value/write-value-modal.component.d.ts +2 -0
  130. package/modal/write-value/write-value-modal.component.js +24 -12
  131. package/modal/write-value/write-value-modal.component.metadata.json +1 -1
  132. package/model/air-quality/air-quality-info.d.ts +23 -0
  133. package/model/air-quality/air-quality-info.js +4 -0
  134. package/model/air-quality/air-quality-info.metadata.json +1 -0
  135. package/model/air-quality/air-quality.model.d.ts +7 -0
  136. package/model/air-quality/air-quality.model.js +0 -0
  137. package/model/air-quality/air-quality.model.metadata.json +1 -0
  138. package/model/bar-graph/bar-graph.d.ts +4 -0
  139. package/model/base/readable-model.d.ts +4 -0
  140. package/model/historical-curve/historical-curve-axis-settings.d.ts +7 -0
  141. package/model/historical-curve/historical-curve-axis-settings.js +5 -0
  142. package/model/historical-curve/historical-curve-axis-settings.metadata.json +1 -1
  143. package/model/meter/meter.d.ts +4 -0
  144. package/model/numerical-display/numerical-display.d.ts +2 -0
  145. package/model/ring-graph/ring-graph.model.d.ts +8 -0
  146. package/model/shared/condition/bit-condition-item-observer.d.ts +1 -1
  147. package/model/shared/condition/bit-condition-item-observer.js +4 -4
  148. package/model/shared/condition/condition-items-result-observer.d.ts +1 -1
  149. package/model/shared/condition/condition-items-result-observer.js +22 -12
  150. package/model/shared/condition/condition-items-result-observer.metadata.json +1 -1
  151. package/model/shared/condition/convert-condition-model.d.ts +5 -0
  152. package/model/shared/condition/convert-condition-model.js +0 -0
  153. package/model/shared/condition/convert-condition-model.metadata.json +1 -0
  154. package/model/shared/condition/relation-condition-result.d.ts +2 -1
  155. package/model/shared/condition/relation-condition-result.js +2 -1
  156. package/model/shared/condition/relation-condition-result.metadata.json +1 -1
  157. package/model/shared/condition/word-condition-item-observer.d.ts +1 -1
  158. package/model/shared/condition/word-condition-item-observer.js +11 -11
  159. package/model/shared/dynamic-display/dynamic-display.d.ts +1 -1
  160. package/model/shared/dynamic-display/dynamic-display.js +4 -4
  161. package/model/shared/dynamic-display/dynamic-display.metadata.json +1 -1
  162. package/model/shared/rotation/rotation-behavior.d.ts +1 -1
  163. package/model/shared/rotation/rotation-behavior.js +2 -2
  164. package/model/shared/rotation/rotation-behavior.metadata.json +1 -1
  165. package/model/shared/rotation/rotation-observer.d.ts +2 -1
  166. package/model/shared/rotation/rotation-observer.js +3 -2
  167. package/model/shared/rotation/rotation-observer.metadata.json +1 -1
  168. package/model/shared/translation/translation-behavior.d.ts +1 -1
  169. package/model/shared/translation/translation-behavior.js +3 -3
  170. package/model/shared/translation/translation-behavior.metadata.json +1 -1
  171. package/model/shared/translation/translation-observer.d.ts +1 -1
  172. package/model/shared/translation/translation-observer.js +2 -2
  173. package/model/shared/translation/translation-observer.metadata.json +1 -1
  174. package/model/switch-indicator-light/bit-switch-operation.d.ts +2 -1
  175. package/model/switch-indicator-light/bit-switch-operation.js +1 -0
  176. package/model/switch-indicator-light/bit-switch-operation.metadata.json +1 -1
  177. package/package.json +1 -1
  178. package/remote/communication/variable/remote-variable-communicator.d.ts +3 -2
  179. package/remote/communication/variable/remote-variable-communicator.js +16 -9
  180. package/remote/communication/variable/remote-variable-communicator.metadata.json +1 -1
  181. package/remote/communication/variable/remote-variable-protocol.d.ts +2 -2
  182. package/service/weather.service.d.ts +1 -0
  183. package/shared/gui-consts.d.ts +1 -0
  184. package/shared/gui-consts.js +1 -0
  185. package/shared/gui-consts.metadata.json +1 -1
  186. package/utils/data-type/data-type.service.d.ts +4 -7
  187. package/utils/data-type/data-type.service.js +29 -17
  188. package/utils/numerical-operation.service.js +2 -2
  189. package/gui/scripts/config.js +0 -6
  190. package/gui/scripts/require.js +0 -2145
  191. package/libs/nvd3/build/nv.d3.min.js +0 -13
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"RectangleElement":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../base/conditional-dynamic-display-element","name":"ConditionalDynamicDisplayElement","line":6,"character":38},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":10,"character":25,"context":{"typeName":"HTMLElement"}},{"__symbolic":"reference","module":"../../service","name":"PermissionChecker","line":10,"character":57},{"__symbolic":"reference","module":"../../communication","name":"VariableCommunicator","line":10,"character":98},{"__symbolic":"reference","module":"../../config","name":"VariableStore","line":10,"character":135}]}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"RectangleElement":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../base/conditional-dynamic-display-element","name":"ConditionalDynamicDisplayElement","line":6,"character":38},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":10,"character":25,"context":{"typeName":"HTMLElement"}},{"__symbolic":"reference","module":"../../service","name":"PermissionChecker","line":10,"character":57},{"__symbolic":"reference","module":"../../communication","name":"VariableCommunicator","line":10,"character":98},{"__symbolic":"reference","module":"../../config","name":"VariableStore","line":10,"character":135},{"__symbolic":"reference","name":"string"}]}]}}}}]
@@ -5,5 +5,5 @@ import { ConditionalDynamicDisplayElement } from '../base/conditional-dynamic-di
5
5
  import { VariableStore } from '../../config';
6
6
  export declare class SectorElement extends ConditionalDynamicDisplayElement {
7
7
  readonly model: ConditionalDynamicDisplayModel;
8
- constructor(element: HTMLElement, permissionChecker: PermissionChecker, variableCommunicator: VariableCommunicator, variableStore: VariableStore);
8
+ constructor(element: HTMLElement, permissionChecker: PermissionChecker, variableCommunicator: VariableCommunicator, variableStore: VariableStore, signalRAppId: string);
9
9
  }
@@ -1,6 +1,6 @@
1
1
  import { ConditionalDynamicDisplayElement } from '../base/conditional-dynamic-display-element';
2
2
  export class SectorElement extends ConditionalDynamicDisplayElement {
3
- constructor(element, permissionChecker, variableCommunicator, variableStore) {
4
- super(element, permissionChecker, variableCommunicator, variableStore);
3
+ constructor(element, permissionChecker, variableCommunicator, variableStore, signalRAppId) {
4
+ super(element, permissionChecker, variableCommunicator, variableStore, signalRAppId);
5
5
  }
6
6
  }
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"SectorElement":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../base/conditional-dynamic-display-element","name":"ConditionalDynamicDisplayElement","line":6,"character":35},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":10,"character":25,"context":{"typeName":"HTMLElement"}},{"__symbolic":"reference","module":"../../service","name":"PermissionChecker","line":10,"character":57},{"__symbolic":"reference","module":"../../communication","name":"VariableCommunicator","line":10,"character":98},{"__symbolic":"reference","module":"../../config","name":"VariableStore","line":10,"character":135}]}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"SectorElement":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../base/conditional-dynamic-display-element","name":"ConditionalDynamicDisplayElement","line":6,"character":35},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":10,"character":25,"context":{"typeName":"HTMLElement"}},{"__symbolic":"reference","module":"../../service","name":"PermissionChecker","line":10,"character":57},{"__symbolic":"reference","module":"../../communication","name":"VariableCommunicator","line":10,"character":98},{"__symbolic":"reference","module":"../../config","name":"VariableStore","line":10,"character":135},{"__symbolic":"reference","name":"string"}]}]}}}}]
@@ -6,7 +6,7 @@ import { StraightLineModel } from '../../model/straight-line/straight-line-model
6
6
  import { VariableStore } from '../../config';
7
7
  export declare class StraightLineElement extends ConditionalDynamicDisplayElement {
8
8
  readonly model: StraightLineModel;
9
- constructor(element: HTMLElement, permissionChecker: PermissionChecker, variableCommunicator: VariableCommunicator, variableStore: VariableStore);
9
+ constructor(element: HTMLElement, permissionChecker: PermissionChecker, variableCommunicator: VariableCommunicator, variableStore: VariableStore, signalRAppId: string);
10
10
  getActualSize(): Size;
11
11
  getActualLocation(): Point;
12
12
  }
@@ -1,8 +1,8 @@
1
1
  import { Size } from '../../model';
2
2
  import { ConditionalDynamicDisplayElement } from '../base/conditional-dynamic-display-element';
3
3
  export class StraightLineElement extends ConditionalDynamicDisplayElement {
4
- constructor(element, permissionChecker, variableCommunicator, variableStore) {
5
- super(element, permissionChecker, variableCommunicator, variableStore);
4
+ constructor(element, permissionChecker, variableCommunicator, variableStore, signalRAppId) {
5
+ super(element, permissionChecker, variableCommunicator, variableStore, signalRAppId);
6
6
  }
7
7
  getActualSize() {
8
8
  const arcPath = Snap(this.$element.find('path')[0]);
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"StraightLineElement":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../base/conditional-dynamic-display-element","name":"ConditionalDynamicDisplayElement","line":7,"character":41},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":11,"character":25,"context":{"typeName":"HTMLElement"}},{"__symbolic":"reference","module":"../../service","name":"PermissionChecker","line":11,"character":57},{"__symbolic":"reference","module":"../../communication","name":"VariableCommunicator","line":12,"character":30},{"__symbolic":"reference","module":"../../config","name":"VariableStore","line":12,"character":67}]}],"getActualSize":[{"__symbolic":"method"}],"getActualLocation":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"StraightLineElement":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../base/conditional-dynamic-display-element","name":"ConditionalDynamicDisplayElement","line":7,"character":41},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":11,"character":25,"context":{"typeName":"HTMLElement"}},{"__symbolic":"reference","module":"../../service","name":"PermissionChecker","line":11,"character":57},{"__symbolic":"reference","module":"../../communication","name":"VariableCommunicator","line":12,"character":30},{"__symbolic":"reference","module":"../../config","name":"VariableStore","line":12,"character":67},{"__symbolic":"reference","name":"string"}]}],"getActualSize":[{"__symbolic":"method"}],"getActualLocation":[{"__symbolic":"method"}]}}}}]
@@ -16,7 +16,7 @@ export declare class VideoElement extends ConditionalDisplayElement {
16
16
  private videoId;
17
17
  private isShow;
18
18
  private videoPlayer;
19
- constructor(element: HTMLElement, injector: Injector, permissionChecker: PermissionChecker, variableCommunicator: VariableCommunicator, variableStore: VariableStore, videoService: VideoService, guiSize: Size, svgRootClass: string);
19
+ constructor(element: HTMLElement, injector: Injector, permissionChecker: PermissionChecker, variableCommunicator: VariableCommunicator, variableStore: VariableStore, videoService: VideoService, guiSize: Size, svgRootClass: string, signalRAppId: string);
20
20
  dispose(): void;
21
21
  hide(): void;
22
22
  show(): void;
@@ -5,8 +5,8 @@ import { TextElementModal } from '../shared/text/text-element';
5
5
  import { LOCALIZATION } from '../../localization';
6
6
  import { isNil } from 'lodash';
7
7
  export class VideoElement extends ConditionalDisplayElement {
8
- constructor(element, injector, permissionChecker, variableCommunicator, variableStore, videoService, guiSize, svgRootClass) {
9
- super(element, permissionChecker, variableCommunicator, variableStore);
8
+ constructor(element, injector, permissionChecker, variableCommunicator, variableStore, videoService, guiSize, svgRootClass, signalRAppId) {
9
+ super(element, permissionChecker, variableCommunicator, variableStore, signalRAppId);
10
10
  this.videoService = videoService;
11
11
  this.guiSize = guiSize;
12
12
  this.svgRootClass = svgRootClass;
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"VideoElement":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../base/conditional-display-element","name":"ConditionalDisplayElement","line":15,"character":34},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":23,"character":25,"context":{"typeName":"HTMLElement"}},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":24,"character":18},{"__symbolic":"reference","module":"../../service","name":"PermissionChecker","line":25,"character":27},{"__symbolic":"reference","module":"../../communication","name":"VariableCommunicator","line":26,"character":30},{"__symbolic":"reference","module":"../../config","name":"VariableStore","line":27,"character":23},{"__symbolic":"reference","module":"../../service","name":"VideoService","line":28,"character":39},{"__symbolic":"reference","module":"../../model","name":"Size","line":29,"character":34},{"__symbolic":"reference","name":"string"}]}],"dispose":[{"__symbolic":"method"}],"hide":[{"__symbolic":"method"}],"show":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"initVideo":[{"__symbolic":"method"}],"addVideoAddressToolTip":[{"__symbolic":"method"}],"setAndroidVideo":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"VideoElement":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../base/conditional-display-element","name":"ConditionalDisplayElement","line":15,"character":34},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":23,"character":25,"context":{"typeName":"HTMLElement"}},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":24,"character":18},{"__symbolic":"reference","module":"../../service","name":"PermissionChecker","line":25,"character":27},{"__symbolic":"reference","module":"../../communication","name":"VariableCommunicator","line":26,"character":30},{"__symbolic":"reference","module":"../../config","name":"VariableStore","line":27,"character":23},{"__symbolic":"reference","module":"../../service","name":"VideoService","line":28,"character":39},{"__symbolic":"reference","module":"../../model","name":"Size","line":29,"character":34},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"}]}],"dispose":[{"__symbolic":"method"}],"hide":[{"__symbolic":"method"}],"show":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"initVideo":[{"__symbolic":"method"}],"addVideoAddressToolTip":[{"__symbolic":"method"}],"setAndroidVideo":[{"__symbolic":"method"}]}}}}]
@@ -22,7 +22,7 @@ export declare class ViewOperationElement extends ConditionalEnableElement {
22
22
  private graphStateElement?;
23
23
  private touchedScreenX;
24
24
  private touchedScreenY;
25
- constructor(element: HTMLElement, injector: Injector, modalService: BsModalService, variableCommunicator: VariableCommunicator, variableStore: VariableStore, graphStore: GraphStore, permissionChecker: PermissionChecker, operationRecordService: OperationRecordService, securityChecker: SecurityChecker, localization: Localization, popupViewService: PopupViewService, hostContainerId: string, el: ElementRef);
25
+ constructor(element: HTMLElement, injector: Injector, modalService: BsModalService, variableCommunicator: VariableCommunicator, variableStore: VariableStore, graphStore: GraphStore, permissionChecker: PermissionChecker, operationRecordService: OperationRecordService, securityChecker: SecurityChecker, localization: Localization, popupViewService: PopupViewService, hostContainerId: string, el: ElementRef, signalRAppId: string);
26
26
  private initElement;
27
27
  private switchToState;
28
28
  private initGraph;
@@ -9,8 +9,8 @@ import { ConfirmOperationModalComponent } from '../../modal/confirm-operation/co
9
9
  import { VerifyPasswordModalComponent } from '../../modal/verify-password/verify-password-modal.component';
10
10
  import { ViewService } from '../../view/view.service';
11
11
  export class ViewOperationElement extends ConditionalEnableElement {
12
- constructor(element, injector, modalService, variableCommunicator, variableStore, graphStore, permissionChecker, operationRecordService, securityChecker, localization, popupViewService, hostContainerId, el) {
13
- super(element, permissionChecker, variableCommunicator, variableStore, localization);
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
14
  this.modalService = modalService;
15
15
  this.graphStore = graphStore;
16
16
  this.operationRecordService = operationRecordService;
@@ -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}]}],"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":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"}]}}}}]
@@ -13,7 +13,7 @@ export declare class WeatherElement extends ConditionalDisplayElement {
13
13
  private readonly localization;
14
14
  protected readonly logger: LoggerService;
15
15
  timer: any;
16
- constructor(element: HTMLElement, injector: Injector, permissionChecker: PermissionChecker, variableCommunicator: VariableCommunicator, variableStore: VariableStore, weatherService: WeatherService);
16
+ constructor(element: HTMLElement, injector: Injector, permissionChecker: PermissionChecker, variableCommunicator: VariableCommunicator, variableStore: VariableStore, weatherService: WeatherService, signalRAppId: string);
17
17
  dispose(): void;
18
18
  private initWeatherInfo;
19
19
  private clear;
@@ -3,8 +3,8 @@ import { LOGGER_SERVICE_TOKEN } from '../../logger';
3
3
  import * as d3 from 'd3-selection';
4
4
  import { LOCALIZATION } from '../../localization';
5
5
  export class WeatherElement extends ConditionalDisplayElement {
6
- constructor(element, injector, permissionChecker, variableCommunicator, variableStore, weatherService) {
7
- super(element, permissionChecker, variableCommunicator, variableStore);
6
+ constructor(element, injector, permissionChecker, variableCommunicator, variableStore, weatherService, signalRAppId) {
7
+ super(element, permissionChecker, variableCommunicator, variableStore, signalRAppId);
8
8
  this.weatherService = weatherService;
9
9
  this.localization = injector.get(LOCALIZATION);
10
10
  this.logger = injector.get(LOGGER_SERVICE_TOKEN);
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"WeatherElement":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../base/conditional-display-element","name":"ConditionalDisplayElement","line":12,"character":36},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":20,"character":25,"context":{"typeName":"HTMLElement"}},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":21,"character":18},{"__symbolic":"reference","module":"../../service","name":"PermissionChecker","line":22,"character":27},{"__symbolic":"reference","module":"../../communication/variable","name":"VariableCommunicator","line":23,"character":30},{"__symbolic":"reference","module":"../../config/variable","name":"VariableStore","line":24,"character":23},{"__symbolic":"reference","module":"../../service","name":"WeatherService","line":25,"character":41}]}],"dispose":[{"__symbolic":"method"}],"initWeatherInfo":[{"__symbolic":"method"}],"clear":[{"__symbolic":"method"}],"handleNotSupported":[{"__symbolic":"method"}],"handleGettingAddress":[{"__symbolic":"method"}],"handleNoAddress":[{"__symbolic":"method"}],"handleUnusualCommon":[{"__symbolic":"method"}],"handleNormal":[{"__symbolic":"method"}],"getRainPath":[{"__symbolic":"method"}],"getLocPath":[{"__symbolic":"method"}],"getWindPath":[{"__symbolic":"method"}],"getUnusualIconPath":[{"__symbolic":"method"}],"buildBackgroudRect":[{"__symbolic":"method"}],"buildTemperatureGroup":[{"__symbolic":"method"}],"buildWeather":[{"__symbolic":"method"}],"buildLocGroup":[{"__symbolic":"method"}],"buildWindGroup":[{"__symbolic":"method"}],"buildWeatherText":[{"__symbolic":"method"}],"buildUnusualTipIcon":[{"__symbolic":"method"}],"buildUnusualTipText":[{"__symbolic":"method"}],"appendWeatherSvg":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"WeatherElement":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../base/conditional-display-element","name":"ConditionalDisplayElement","line":12,"character":36},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":20,"character":25,"context":{"typeName":"HTMLElement"}},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":21,"character":18},{"__symbolic":"reference","module":"../../service","name":"PermissionChecker","line":22,"character":27},{"__symbolic":"reference","module":"../../communication/variable","name":"VariableCommunicator","line":23,"character":30},{"__symbolic":"reference","module":"../../config/variable","name":"VariableStore","line":24,"character":23},{"__symbolic":"reference","module":"../../service","name":"WeatherService","line":25,"character":41},{"__symbolic":"reference","name":"string"}]}],"dispose":[{"__symbolic":"method"}],"initWeatherInfo":[{"__symbolic":"method"}],"clear":[{"__symbolic":"method"}],"handleNotSupported":[{"__symbolic":"method"}],"handleGettingAddress":[{"__symbolic":"method"}],"handleNoAddress":[{"__symbolic":"method"}],"handleUnusualCommon":[{"__symbolic":"method"}],"handleNormal":[{"__symbolic":"method"}],"getRainPath":[{"__symbolic":"method"}],"getLocPath":[{"__symbolic":"method"}],"getWindPath":[{"__symbolic":"method"}],"getUnusualIconPath":[{"__symbolic":"method"}],"buildBackgroudRect":[{"__symbolic":"method"}],"buildTemperatureGroup":[{"__symbolic":"method"}],"buildWeather":[{"__symbolic":"method"}],"buildLocGroup":[{"__symbolic":"method"}],"buildWindGroup":[{"__symbolic":"method"}],"buildWeatherText":[{"__symbolic":"method"}],"buildUnusualTipIcon":[{"__symbolic":"method"}],"buildUnusualTipText":[{"__symbolic":"method"}],"appendWeatherSvg":[{"__symbolic":"method"}]}}}}]
package/gui/gui-host.js CHANGED
@@ -55,7 +55,7 @@ export class GuiHost {
55
55
  throw new Error('The GuiHost already loaded.');
56
56
  }
57
57
  this.isLoaded = true;
58
- this.containerEl = $(`<div class="svg-content" id= "${this.guiOptions.hostContainerId}" style="display: inline-block;position: relative;"></div>`);
58
+ this.containerEl = $(`<div class="svg-content" id= "${this.guiOptions.hostContainerId}" style="display:flex;position:relative;"></div>`);
59
59
  const result = new Promise((resolve, reject) => {
60
60
  if (configureViewId && configureViewId !== 0) {
61
61
  this.loadViewConfigByConfigureViewId(resolve, reject, configureViewId);
package/gui/gui-view.d.ts CHANGED
@@ -26,6 +26,7 @@ export declare class GuiView implements PopupViewService {
26
26
  private perViewVariableCommunicator;
27
27
  private svgRootClass;
28
28
  private isMobileMode;
29
+ private signalRAppId;
29
30
  constructor(injector: Injector, bsModalService: BsModalService, context: GuiContext, parentView?: GuiView);
30
31
  resize(size: Size, resizeMode: ViewResizeMode, svgRootClass: string): void;
31
32
  load(config: ViewModel, guiOptions: GuiOptions): void;
package/gui/gui-view.js CHANGED
@@ -22,6 +22,7 @@ export class GuiView {
22
22
  parentView.childViews.push(this);
23
23
  }
24
24
  this.isMobileMode = DisplayMode.Mobile === injector.get(GlobalSettings).displayMode;
25
+ this.signalRAppId = Guid.newGuid().toString('n');
25
26
  }
26
27
  get element() {
27
28
  return this.mainElement.rootElement;
@@ -52,7 +53,7 @@ export class GuiView {
52
53
  const { context } = this;
53
54
  this.svgRootClass = guiOptions.svgRootClass;
54
55
  this.perViewVariableCommunicator = new PerViewVariableCommunicator(context.variableCommunicator);
55
- this.mainElement = new MainElement(this.injector, this.bsModalService, context, this.perViewVariableCommunicator, this);
56
+ this.mainElement = new MainElement(this.injector, this.bsModalService, context, this.perViewVariableCommunicator, this, this.signalRAppId);
56
57
  this.mainElement.load(config.config, !!this.parentView, guiOptions);
57
58
  setTimeout(() => {
58
59
  this.loadElementState();
@@ -196,7 +197,7 @@ export class GuiView {
196
197
  }
197
198
  normalOpenedVariableNames(normalVariableNames) {
198
199
  if (normalVariableNames.length > 0) {
199
- this.openVariablesSubscription = this.perViewVariableCommunicator.openVariables(normalVariableNames)
200
+ this.openVariablesSubscription = this.perViewVariableCommunicator.openVariables(normalVariableNames, this.signalRAppId)
200
201
  .subscribe(variableValues => this.mainElement.reportVariableValues(variableValues));
201
202
  }
202
203
  }
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"GuiView":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":46,"character":43},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":47,"character":41},{"__symbolic":"reference","module":"./gui-context","name":"GuiContext","line":48,"character":34},{"__symbolic":"reference","name":"GuiView"}]}],"resize":[{"__symbolic":"method"}],"load":[{"__symbolic":"method"}],"loadElementState":[{"__symbolic":"method"}],"popView":[{"__symbolic":"method"}],"closeView":[{"__symbolic":"method"}],"moveView":[{"__symbolic":"method"}],"showMusk":[{"__symbolic":"method"}],"showShadow":[{"__symbolic":"method"}],"hideMusk":[{"__symbolic":"method"}],"dispose":[{"__symbolic":"method"}],"normalOpenedVariableNames":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"GuiView":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":47,"character":43},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":48,"character":41},{"__symbolic":"reference","module":"./gui-context","name":"GuiContext","line":49,"character":34},{"__symbolic":"reference","name":"GuiView"}]}],"resize":[{"__symbolic":"method"}],"load":[{"__symbolic":"method"}],"loadElementState":[{"__symbolic":"method"}],"popView":[{"__symbolic":"method"}],"closeView":[{"__symbolic":"method"}],"moveView":[{"__symbolic":"method"}],"showMusk":[{"__symbolic":"method"}],"showShadow":[{"__symbolic":"method"}],"hideMusk":[{"__symbolic":"method"}],"dispose":[{"__symbolic":"method"}],"normalOpenedVariableNames":[{"__symbolic":"method"}]}}}}]
@@ -30,7 +30,9 @@ export interface Localization {
30
30
  permissiontip: any;
31
31
  conditionIsNotMetTip: any;
32
32
  chartNoData: any;
33
+ lastThirtyMinutes: any;
33
34
  lastOneHour: any;
35
+ lastEightHour: any;
34
36
  lastTwentyFourHours: any;
35
37
  lastSevenDays: any;
36
38
  lastThirtyDays: any;
@@ -47,5 +49,8 @@ export interface Localization {
47
49
  weatherNotSupport: any;
48
50
  weatherNotAddress: any;
49
51
  weatherNotAvailable: any;
52
+ airQualityNotSupport: any;
53
+ airQualityNotAddress: any;
54
+ airQualityNotAvailable: any;
50
55
  }
51
56
  export declare const DefaultLocalization: Localization;
@@ -30,7 +30,9 @@ export const DefaultLocalization = {
30
30
  permissiontip: 'You have no permission to operate.',
31
31
  conditionIsNotMetTip: 'Unsatisfied operating conditions or variable abnorma.',
32
32
  chartNoData: 'No Data Available',
33
+ lastThirtyMinutes: 'Last thirty minutes',
33
34
  lastOneHour: 'Last one hour',
35
+ lastEightHour: 'Last eight hours',
34
36
  lastTwentyFourHours: 'Last 24 hours',
35
37
  lastSevenDays: 'Last 7 days',
36
38
  lastThirtyDays: 'Last 30 days',
@@ -46,5 +48,8 @@ export const DefaultLocalization = {
46
48
  unconfiguredVideoAddress: 'Unconfigured Video Address',
47
49
  weatherNotSupport: 'Location not supported',
48
50
  weatherNotAddress: 'Address not configured',
49
- weatherNotAvailable: 'Address not yet available'
51
+ weatherNotAvailable: 'Address not yet available',
52
+ airQualityNotSupport: 'Location not supported',
53
+ airQualityNotAddress: 'Address not configured',
54
+ airQualityNotAvailable: 'Address not yet available'
50
55
  };
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"LOCALIZATION":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":32},"arguments":["fc.gui.loc"]},"Localization":{"__symbolic":"interface"},"DefaultLocalization":{"loadFailed":"Load failed.","setting":"Setting","submit":"Submit","numericalValueRequired":"Numerical value can't be emtpy","invalidNumericalValue":"Numerical value is not valid","binaryType":"Binary","decimalType":"Decimal","hexadecimalType":"Hexadecimal","stringType":"String","numericalValueTooLong":"Numerical value too long","fractionDigitsMustLessThan":"Fraction digits must be less than ","canNotBeNegative":"Can not be negative","valueOutOfRange":"Numerical value is out of range","timeout":"timeout","confirmOperationPrompt":"Sure to do this operation?","confirm":"Yes","cancel":"Cancel","characterInputRequired":"Character input can't be empty","character":"(Character)","characterOutofRange":"Character length is out of range","writeValueRange":"Write value range","loading":"Loading","unbind":"Unbind","offline":"Offline","abnormal":"Data abnormal","disable":"Disable","permissiontip":"You have no permission to operate.","conditionIsNotMetTip":"Unsatisfied operating conditions or variable abnorma.","chartNoData":"No Data Available","lastOneHour":"Last one hour","lastTwentyFourHours":"Last 24 hours","lastSevenDays":"Last 7 days","lastThirtyDays":"Last 30 days","lastOneYear":"Last 1 year","grouped":"Grouped","stacked":"Stacked","passwordVerify":"Password verifiers","passwordError":"Password error","password":"Password","passwordToolTip":"Password error, please re-enter","passwordRequired":"Password can't be empty","invalidVideoAddress":"Invalid video address","unconfiguredVideoAddress":"Unconfigured Video Address","weatherNotSupport":"Location not supported","weatherNotAddress":"Address not configured","weatherNotAvailable":"Address not yet available"}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"LOCALIZATION":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":32},"arguments":["fc.gui.loc"]},"Localization":{"__symbolic":"interface"},"DefaultLocalization":{"loadFailed":"Load failed.","setting":"Setting","submit":"Submit","numericalValueRequired":"Numerical value can't be emtpy","invalidNumericalValue":"Numerical value is not valid","binaryType":"Binary","decimalType":"Decimal","hexadecimalType":"Hexadecimal","stringType":"String","numericalValueTooLong":"Numerical value too long","fractionDigitsMustLessThan":"Fraction digits must be less than ","canNotBeNegative":"Can not be negative","valueOutOfRange":"Numerical value is out of range","timeout":"timeout","confirmOperationPrompt":"Sure to do this operation?","confirm":"Yes","cancel":"Cancel","characterInputRequired":"Character input can't be empty","character":"(Character)","characterOutofRange":"Character length is out of range","writeValueRange":"Write value range","loading":"Loading","unbind":"Unbind","offline":"Offline","abnormal":"Data abnormal","disable":"Disable","permissiontip":"You have no permission to operate.","conditionIsNotMetTip":"Unsatisfied operating conditions or variable abnorma.","chartNoData":"No Data Available","lastThirtyMinutes":"Last thirty minutes","lastOneHour":"Last one hour","lastEightHour":"Last eight hours","lastTwentyFourHours":"Last 24 hours","lastSevenDays":"Last 7 days","lastThirtyDays":"Last 30 days","lastOneYear":"Last 1 year","grouped":"Grouped","stacked":"Stacked","passwordVerify":"Password verifiers","passwordError":"Password error","password":"Password","passwordToolTip":"Password error, please re-enter","passwordRequired":"Password can't be empty","invalidVideoAddress":"Invalid video address","unconfiguredVideoAddress":"Unconfigured Video Address","weatherNotSupport":"Location not supported","weatherNotAddress":"Address not configured","weatherNotAvailable":"Address not yet available","airQualityNotSupport":"Location not supported","airQualityNotAddress":"Address not configured","airQualityNotAvailable":"Address not yet available"}}}]
@@ -28,7 +28,9 @@ export const Localization_zh_CN = {
28
28
  permissiontip: '您无权限执行此操作',
29
29
  conditionIsNotMetTip: '操作条件不满足或逻辑控制变量异常',
30
30
  chartNoData: '无数据',
31
+ lastThirtyMinutes: '最近30分钟',
31
32
  lastOneHour: '最近1小时',
33
+ lastEightHour: '最近8小时',
32
34
  lastTwentyFourHours: '最近24小时',
33
35
  lastSevenDays: '最近7天',
34
36
  lastThirtyDays: '最近30天',
@@ -44,5 +46,8 @@ export const Localization_zh_CN = {
44
46
  unconfiguredVideoAddress: '未配置视频地址',
45
47
  weatherNotSupport: '当前位置暂不支持',
46
48
  weatherNotAddress: '当前设备未设置地址',
47
- weatherNotAvailable: '暂未获取设备地址'
49
+ weatherNotAvailable: '暂未获取设备地址',
50
+ airQualityNotSupport: '当前位置暂不支持',
51
+ airQualityNotAddress: '当前设备未设置地址',
52
+ airQualityNotAvailable: '暂未获取设备地址'
48
53
  };
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"Localization_zh_CN":{"loadFailed":"加载失败.","setting":"设置","submit":"提交","numericalValueRequired":"数值不能为空","invalidNumericalValue":"数值格式不正确","binaryType":"二进制","decimalType":"十进制","hexadecimalType":"十六进制","stringType":"字符串","numericalValueTooLong":"数值超长","fractionDigitsMustLessThan":"小数位不能超过","canNotBeNegative":"不能为负数","valueOutOfRange":"数值超出范围","timeout":"超时","confirmOperationPrompt":"是否确认要执行此操作?","confirm":"确定","cancel":"取消","characterInputRequired":"请输入至少一个字符","character":"(字符串)","characterOutofRange":"字符长度超限","writeValueRange":"写值范围","loading":"加载中","unbind":"未绑定","offline":"离线","abnormal":"数据异常","disable":"禁用","permissiontip":"您无权限执行此操作","conditionIsNotMetTip":"操作条件不满足或逻辑控制变量异常","chartNoData":"无数据","lastOneHour":"最近1小时","lastTwentyFourHours":"最近24小时","lastSevenDays":"最近7天","lastThirtyDays":"最近30天","lastOneYear":"最近1年","grouped":"分组","stacked":"叠加","passwordVerify":"密码校验","passwordError":"密码错误","password":"密码","passwordToolTip":"密码错误,请重新输入","passwordRequired":"密码不能为空","invalidVideoAddress":"无效的视频地址","unconfiguredVideoAddress":"未配置视频地址","weatherNotSupport":"当前位置暂不支持","weatherNotAddress":"当前设备未设置地址","weatherNotAvailable":"暂未获取设备地址"}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"Localization_zh_CN":{"loadFailed":"加载失败.","setting":"设置","submit":"提交","numericalValueRequired":"数值不能为空","invalidNumericalValue":"数值格式不正确","binaryType":"二进制","decimalType":"十进制","hexadecimalType":"十六进制","stringType":"字符串","numericalValueTooLong":"数值超长","fractionDigitsMustLessThan":"小数位不能超过","canNotBeNegative":"不能为负数","valueOutOfRange":"数值超出范围","timeout":"超时","confirmOperationPrompt":"是否确认要执行此操作?","confirm":"确定","cancel":"取消","characterInputRequired":"请输入至少一个字符","character":"(字符串)","characterOutofRange":"字符长度超限","writeValueRange":"写值范围","loading":"加载中","unbind":"未绑定","offline":"离线","abnormal":"数据异常","disable":"禁用","permissiontip":"您无权限执行此操作","conditionIsNotMetTip":"操作条件不满足或逻辑控制变量异常","chartNoData":"无数据","lastThirtyMinutes":"最近30分钟","lastOneHour":"最近1小时","lastEightHour":"最近8小时","lastTwentyFourHours":"最近24小时","lastSevenDays":"最近7天","lastThirtyDays":"最近30天","lastOneYear":"最近1年","grouped":"分组","stacked":"叠加","passwordVerify":"密码校验","passwordError":"密码错误","password":"密码","passwordToolTip":"密码错误,请重新输入","passwordRequired":"密码不能为空","invalidVideoAddress":"无效的视频地址","unconfiguredVideoAddress":"未配置视频地址","weatherNotSupport":"当前位置暂不支持","weatherNotAddress":"当前设备未设置地址","weatherNotAvailable":"暂未获取设备地址","airQualityNotSupport":"当前位置暂不支持","airQualityNotAddress":"当前设备未设置地址","airQualityNotAvailable":"暂未获取设备地址"}}}]
@@ -2,9 +2,11 @@ import { NumericalOperation } from '../../model';
2
2
  export declare class WriteValueModalArgs {
3
3
  variableName: string;
4
4
  dataType: number;
5
+ fBoxDataType: number;
5
6
  integerDigits: number;
6
7
  fractionDigits: number;
7
8
  numericalOperation: NumericalOperation;
8
9
  version: number;
9
- constructor(variableName: string, dataType: number, integerDigits: number, fractionDigits: number, numericalOperation: NumericalOperation, version: number);
10
+ enableDataParsed: boolean;
11
+ constructor(variableName: string, dataType: number, fBoxDataType: number, integerDigits: number, fractionDigits: number, numericalOperation: NumericalOperation, version: number, enableDataParsed: boolean);
10
12
  }
@@ -1,10 +1,12 @@
1
1
  export class WriteValueModalArgs {
2
- constructor(variableName, dataType, integerDigits, fractionDigits, numericalOperation, version) {
2
+ constructor(variableName, dataType, fBoxDataType, integerDigits, fractionDigits, numericalOperation, version, enableDataParsed) {
3
3
  this.variableName = variableName;
4
4
  this.dataType = dataType;
5
+ this.fBoxDataType = fBoxDataType;
5
6
  this.integerDigits = integerDigits;
6
7
  this.fractionDigits = fractionDigits;
7
8
  this.numericalOperation = numericalOperation;
8
9
  this.version = version;
10
+ this.enableDataParsed = enableDataParsed;
9
11
  }
10
12
  }
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"WriteValueModalArgs":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","module":"../../model","name":"NumericalOperation","line":8,"character":35},{"__symbolic":"reference","name":"number"}]}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"WriteValueModalArgs":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","module":"../../model","name":"NumericalOperation","line":9,"character":35},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"boolean"}]}]}}}}]
@@ -16,6 +16,7 @@ export declare class WriteValueModalComponent implements OnInit {
16
16
  get onClosed(): Observable<WriteValueModelResult>;
17
17
  args: WriteValueModalArgs;
18
18
  private dataType;
19
+ private fBoxDataType;
19
20
  private pattern;
20
21
  private fractionDigits;
21
22
  private integerDigits;
@@ -37,6 +38,7 @@ export declare class WriteValueModalComponent implements OnInit {
37
38
  constructor(localization: Localization, dataTypeService: DataTypeService, fractionDigitService: FractionDigitService, numericalOperationService: NumericalOperationService);
38
39
  ngOnInit(): void;
39
40
  initData(option: WriteValueModalArgs): void;
41
+ private setValueRangeAccordToDataParsed;
40
42
  getWriteValueRangeText(): string;
41
43
  save(): void;
42
44
  close(modalResult?: WriteValueModelResult): void;
@@ -39,6 +39,7 @@ let WriteValueModalComponent = class WriteValueModalComponent {
39
39
  initData(option) {
40
40
  this.variableName = option.variableName;
41
41
  this.dataType = option.dataType;
42
+ this.fBoxDataType = option.fBoxDataType;
42
43
  this.integerDigits = option.integerDigits ? option.integerDigits : 0;
43
44
  this.fractionDigits = option.fractionDigits ? option.fractionDigits : 0;
44
45
  this.valueType = this.dataTypeService.getValueType(option.version, option.dataType);
@@ -47,15 +48,25 @@ let WriteValueModalComponent = class WriteValueModalComponent {
47
48
  this.enableNumericalOperation = this.numericalOperation.enableNumericalOperation ?
48
49
  this.numericalOperation.enableNumericalOperation : false;
49
50
  this.value = '';
51
+ if (this.args.enableDataParsed) {
52
+ this.setValueRangeAccordToDataParsed(option);
53
+ }
54
+ else {
55
+ this.writeMaxValue = this.dataTypeService.getMaxValue(option.version, this.dataType, this.fBoxDataType);
56
+ this.writeMinValue = this.dataTypeService.getMinValue(option.version, this.dataType, this.fBoxDataType);
57
+ }
58
+ this.writeValueRangeText = this.getWriteValueRangeText();
59
+ }
60
+ setValueRangeAccordToDataParsed(option) {
50
61
  if (this.dataTypeService.isFloat(option.version, this.dataType) || this.enableNumericalOperation) {
51
- this.maxValueLimit = this.dataTypeService.getMaxValue(option.version, this.dataType);
52
- this.minValueLimit = this.dataTypeService.getMinValue(option.version, this.dataType);
62
+ this.maxValueLimit = this.dataTypeService.getMaxValue(option.version, this.dataType, this.fBoxDataType);
63
+ this.minValueLimit = this.dataTypeService.getMinValue(option.version, this.dataType, this.fBoxDataType);
53
64
  this.numericalLowerLimit = this.numericalOperation.numericalLowerLimit;
54
65
  this.numericalUpperLimit = this.numericalOperation.numericalUpperLimit;
55
66
  }
56
67
  else {
57
- this.maxValueLimit = +this.fractionDigitService.movePoint(this.dataTypeService.getMaxValue(option.version, this.dataType), -this.fractionDigits);
58
- this.minValueLimit = +this.fractionDigitService.movePoint(this.dataTypeService.getMinValue(option.version, this.dataType), -this.fractionDigits);
68
+ this.maxValueLimit = +this.fractionDigitService.movePoint(this.dataTypeService.getMaxValue(option.version, this.dataType, this.fBoxDataType), -this.fractionDigits);
69
+ this.minValueLimit = +this.fractionDigitService.movePoint(this.dataTypeService.getMinValue(option.version, this.dataType, this.fBoxDataType), -this.fractionDigits);
59
70
  this.numericalLowerLimit = +this.fractionDigitService.movePoint(this.numericalOperation.numericalLowerLimit, -this.fractionDigits);
60
71
  this.numericalUpperLimit = +this.fractionDigitService.movePoint(this.numericalOperation.numericalUpperLimit, -this.fractionDigits);
61
72
  }
@@ -69,7 +80,6 @@ let WriteValueModalComponent = class WriteValueModalComponent {
69
80
  const realUpperLimitValue = lowerLimitValue < upperLimitValue ? upperLimitValue : lowerLimitValue;
70
81
  this.writeMinValue = realMinValue > realLowerLimitValue ? realMinValue : realLowerLimitValue;
71
82
  this.writeMaxValue = realMaxValue < realUpperLimitValue ? realMaxValue : realUpperLimitValue;
72
- this.writeValueRangeText = this.getWriteValueRangeText();
73
83
  }
74
84
  getWriteValueRangeText() {
75
85
  let minValue = '';
@@ -79,7 +89,7 @@ let WriteValueModalComponent = class WriteValueModalComponent {
79
89
  maxValue = this.writeMaxValue.toString(16);
80
90
  }
81
91
  else {
82
- if (this.fractionDigits > 0) {
92
+ if (this.args.enableDataParsed && this.fractionDigits > 0) {
83
93
  minValue = this.writeMinValue.toFixed(this.fractionDigits).toString();
84
94
  maxValue = this.writeMaxValue.toFixed(this.fractionDigits).toString();
85
95
  }
@@ -91,11 +101,13 @@ let WriteValueModalComponent = class WriteValueModalComponent {
91
101
  return minValue + '~' + maxValue;
92
102
  }
93
103
  save() {
94
- if (this.enableNumericalOperation) {
95
- this.value = this.numericalOperationService.getWriteValue(this.args.version, this.value, this.numericalOperation, this.dataType, this.fractionDigits);
96
- }
97
- else {
98
- this.value = this.formatWriteValue();
104
+ if (this.args.enableDataParsed) {
105
+ if (this.enableNumericalOperation) {
106
+ this.value = this.numericalOperationService.getWriteValue(this.args.version, this.value, this.numericalOperation, this.dataType, this.fractionDigits);
107
+ }
108
+ else {
109
+ this.value = this.formatWriteValue();
110
+ }
99
111
  }
100
112
  this.close({ value: this.value });
101
113
  }
@@ -125,7 +137,7 @@ let WriteValueModalComponent = class WriteValueModalComponent {
125
137
  }
126
138
  if (this.dataTypeService.isBinaryType(this.args.version, this.dataType) || this.dataTypeService.isHexType(this.args.version, this.dataType)) {
127
139
  // 校验数值最大长度
128
- const valueMaxLength = this.dataTypeService.getValueMaxLength(this.args.version, this.dataType);
140
+ const valueMaxLength = this.dataTypeService.getValueMaxLength(this.args.version, this.dataType, this.fBoxDataType);
129
141
  const maxLength = this.integerDigits ? Math.min(this.integerDigits, valueMaxLength) : valueMaxLength;
130
142
  if (this.value.length > maxLength) {
131
143
  return this.showValidationErrorInfo(this.localization.numericalValueTooLong);
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"WriteValueModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"writeValueModal","template":"<form #writeValueForm=\"ngForm\" novalidate (ngSubmit)=\"save()\" bs-modal-drag> <div class=\"modal-header\"> <h4 class=\"modal-title\"> <span>{{localization.setting}}</span> <span>{{variableName}}</span> </h4> <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"close()\"> <span aria-hidden=\"true\">&times;</span> </button> </div> <div class=\"modal-body\"> <span class=\"write-value-range\">{{localization.writeValueRange}}:&nbsp;{{writeValueRangeText}} <span *ngIf=\"valueType\">({{valueType}})</span> </span> <input type=\"text\" name=\"valueInput\" autoFocus class=\"form-control write-value\" [(ngModel)]=\"value\" (keyup)=\"validate()\" autocomplete=\"off\"> <span class=\"help-block text-danger\" [hidden]=\"!validationError\">{{validationErrorText}}</span> </div> <div class=\"modal-footer\"> <button type=\"submit\" class=\"btn md-skip btn-primary btn-block\" [disabled]=\"validationError\">{{localization.submit}}</button> </div> </form> ","styles":[".modal-header { padding: 10px; border-color: transparent; } .modal-body { position: relative; padding: 0px 5px !important; padding-top: 10px !important; } .modal-title { display: unset; margin-left: -6px; font-size: 16px !important; } .form-control { margin: 0 5%; float: none; width: 90%; } .modal-footer { padding: 10px 4px 20px 5px !important; text-align: right; border-color: transparent; } .text-danger { display: block; color: #ed6b75; font-size: 14px; margin: 5px 0px 0px 15px; } .btn-primary { background-color: #3B97FC; border-color: #3B97FC; padding: 5px 30px; width: 90%; margin: 0 5%; height: 32px; } .write-value-range { color: #7f939e; font-size: 14px; margin-left: 15px; } .write-value { padding-left: 8px; margin-left: 16px; height: 32px; } "]}]}],"members":{"invalidErrorText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":45,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":51,"character":9},"arguments":[{"__symbolic":"reference","module":"../../localization","name":"LOCALIZATION","line":51,"character":16}]}],null,null,null],"parameters":[{"__symbolic":"reference","module":"../../localization","name":"Localization","line":51,"character":51},{"__symbolic":"reference","module":"../../utils/data-type/data-type.service","name":"DataTypeService","line":52,"character":42},{"__symbolic":"reference","module":"../../utils/fraction-digit.service","name":"FractionDigitService","line":53,"character":47},{"__symbolic":"reference","module":"../../utils/numerical-operation.service","name":"NumericalOperationService","line":54,"character":52}]}],"ngOnInit":[{"__symbolic":"method"}],"initData":[{"__symbolic":"method"}],"getWriteValueRangeText":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}],"showValidationErrorInfo":[{"__symbolic":"method"}],"hideValidationErrorInfo":[{"__symbolic":"method"}],"getFractionDigits":[{"__symbolic":"method"}],"formatWriteValue":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"WriteValueModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"writeValueModal","template":"<form #writeValueForm=\"ngForm\" novalidate (ngSubmit)=\"save()\" bs-modal-drag> <div class=\"modal-header\"> <h4 class=\"modal-title\"> <span>{{localization.setting}}</span> <span>{{variableName}}</span> </h4> <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"close()\"> <span aria-hidden=\"true\">&times;</span> </button> </div> <div class=\"modal-body\"> <span class=\"write-value-range\">{{localization.writeValueRange}}:&nbsp;{{writeValueRangeText}} <span *ngIf=\"valueType\">({{valueType}})</span> </span> <input type=\"text\" name=\"valueInput\" autoFocus class=\"form-control write-value\" [(ngModel)]=\"value\" (keyup)=\"validate()\" autocomplete=\"off\"> <span class=\"help-block text-danger\" [hidden]=\"!validationError\">{{validationErrorText}}</span> </div> <div class=\"modal-footer\"> <button type=\"submit\" class=\"btn md-skip btn-primary btn-block\" [disabled]=\"validationError\">{{localization.submit}}</button> </div> </form> ","styles":[".modal-header { padding: 10px; border-color: transparent; } .modal-body { position: relative; padding: 0px 5px !important; padding-top: 10px !important; } .modal-title { display: unset; margin-left: -6px; font-size: 16px !important; } .form-control { margin: 0 5%; float: none; width: 90%; } .modal-footer { padding: 10px 4px 20px 5px !important; text-align: right; border-color: transparent; } .text-danger { display: block; color: #ed6b75; font-size: 14px; margin: 5px 0px 0px 15px; } .btn-primary { background-color: #3B97FC; border-color: #3B97FC; padding: 5px 30px; width: 90%; margin: 0 5%; height: 32px; } .write-value-range { color: #7f939e; font-size: 14px; margin-left: 15px; } .write-value { padding-left: 8px; margin-left: 16px; height: 32px; } "]}]}],"members":{"invalidErrorText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":46,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":52,"character":9},"arguments":[{"__symbolic":"reference","module":"../../localization","name":"LOCALIZATION","line":52,"character":16}]}],null,null,null],"parameters":[{"__symbolic":"reference","module":"../../localization","name":"Localization","line":52,"character":51},{"__symbolic":"reference","module":"../../utils/data-type/data-type.service","name":"DataTypeService","line":53,"character":42},{"__symbolic":"reference","module":"../../utils/fraction-digit.service","name":"FractionDigitService","line":54,"character":47},{"__symbolic":"reference","module":"../../utils/numerical-operation.service","name":"NumericalOperationService","line":55,"character":52}]}],"ngOnInit":[{"__symbolic":"method"}],"initData":[{"__symbolic":"method"}],"setValueRangeAccordToDataParsed":[{"__symbolic":"method"}],"getWriteValueRangeText":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}],"showValidationErrorInfo":[{"__symbolic":"method"}],"hideValidationErrorInfo":[{"__symbolic":"method"}],"getFractionDigits":[{"__symbolic":"method"}],"formatWriteValue":[{"__symbolic":"method"}]}}}}]
@@ -0,0 +1,23 @@
1
+ import * as moment from 'moment';
2
+ export declare class AirQualityInfo {
3
+ /** 有无地址 */
4
+ hasAddress: boolean | undefined;
5
+ /** 是否获取地址中 */
6
+ gettingAddress: boolean | undefined;
7
+ /** 是否支持 */
8
+ supported: boolean | undefined;
9
+ airQuality: AirQuality | undefined;
10
+ }
11
+ export declare class AirQuality {
12
+ city: string | undefined;
13
+ aqi: string | undefined;
14
+ level: number | undefined;
15
+ category: string | undefined;
16
+ pm10: string | undefined;
17
+ pm25: string | undefined;
18
+ no2: string | undefined;
19
+ so2: string | undefined;
20
+ co: string | undefined;
21
+ o3: string | undefined;
22
+ reportTime: moment.Moment | undefined;
23
+ }
@@ -0,0 +1,4 @@
1
+ export class AirQualityInfo {
2
+ }
3
+ export class AirQuality {
4
+ }
@@ -0,0 +1 @@
1
+ [{"__symbolic":"module","version":4,"metadata":{"AirQualityInfo":{"__symbolic":"class"},"AirQuality":{"__symbolic":"class"}}}]
@@ -0,0 +1,7 @@
1
+ import { Size } from '../shared';
2
+ import { ConditionalDisplayModel } from '../base';
3
+ export interface AirQualityModel extends ConditionalDisplayModel {
4
+ size: Size;
5
+ stroke: string;
6
+ fill: string;
7
+ }
File without changes
@@ -0,0 +1 @@
1
+ [{"__symbolic":"module","version":4,"metadata":{"AirQualityModel":{"__symbolic":"interface"}}}]
@@ -19,4 +19,8 @@ export interface BarGraph extends ReadableModel {
19
19
  readonly upperLimitColor?: string;
20
20
  readonly lowerLimitColor?: string;
21
21
  readonly percentageFont?: FontStyleData;
22
+ readonly masterDivisionNumber: number;
23
+ readonly subDivisionNumber: number;
24
+ readonly integerDigits: number;
25
+ readonly fractionDigits: number;
22
26
  }
@@ -7,4 +7,8 @@ export interface ReadableModel extends ConditionalEnableModel {
7
7
  readonly version?: number;
8
8
  readonly variableName?: string;
9
9
  readonly readVariable?: VariableDefinition;
10
+ readonly minVariable?: any;
11
+ readonly maxVariable?: any;
12
+ readonly minValueType?: any;
13
+ readonly maxValueType?: any;
10
14
  }
@@ -1,6 +1,13 @@
1
1
  import { Font } from '../shared/text/font';
2
2
  export interface HistoricalCurveAxisSettings {
3
+ readonly yAxisRangeType: AxisRangeType;
4
+ readonly yAxisMax?: number;
5
+ readonly yAxisMin?: number;
3
6
  readonly axisColor: string;
4
7
  readonly showAxisLabel: boolean;
5
8
  readonly axisLabelFont: Font;
6
9
  }
10
+ export declare enum AxisRangeType {
11
+ Auto = 0,
12
+ Custom = 1
13
+ }
@@ -0,0 +1,5 @@
1
+ export var AxisRangeType;
2
+ (function (AxisRangeType) {
3
+ AxisRangeType[AxisRangeType["Auto"] = 0] = "Auto";
4
+ AxisRangeType[AxisRangeType["Custom"] = 1] = "Custom"; // 自定义范围
5
+ })(AxisRangeType || (AxisRangeType = {}));
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"HistoricalCurveAxisSettings":{"__symbolic":"interface"}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"HistoricalCurveAxisSettings":{"__symbolic":"interface"},"AxisRangeType":{"Auto":0,"Custom":1}}}]