@flexem/fc-gui 3.0.0-alpha.12 → 3.0.0-alpha.121

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 (148) hide show
  1. package/CHANGELOG.md +444 -1
  2. package/assets/img/black_first_page.png +0 -0
  3. package/assets/img/black_last_page.png +0 -0
  4. package/assets/img/black_next_page.png +0 -0
  5. package/assets/img/black_previous_page.png +0 -0
  6. package/bundles/@flexem/fc-gui.umd.js +16071 -13357
  7. package/bundles/@flexem/fc-gui.umd.js.map +1 -1
  8. package/bundles/@flexem/fc-gui.umd.min.js +5 -5
  9. package/bundles/@flexem/fc-gui.umd.min.js.map +1 -1
  10. package/communication/variable/variable-communicator.d.ts +2 -0
  11. package/communication/variable/variable-value.d.ts +4 -1
  12. package/communication/variable/variable-value.js +4 -1
  13. package/communication/variable/variable-value.metadata.json +1 -1
  14. package/config/alarm/alarm.store.d.ts +6 -0
  15. package/config/alarm/alarm.store.js +0 -0
  16. package/config/alarm/alarm.store.metadata.json +1 -0
  17. package/config/alarm/get-alarms-args.d.ts +9 -0
  18. package/config/alarm/get-alarms-args.js +9 -0
  19. package/config/alarm/get-alarms-args.metadata.json +1 -0
  20. package/config/alarm/index.d.ts +2 -0
  21. package/config/alarm/index.js +1 -0
  22. package/config/alarm/index.metadata.json +1 -0
  23. package/config/config-store.d.ts +2 -0
  24. package/config/index.d.ts +1 -0
  25. package/config/index.js +1 -0
  26. package/config/index.metadata.json +1 -1
  27. package/elements/air-quality/air-quality-element.d.ts +31 -0
  28. package/elements/air-quality/air-quality-element.js +194 -0
  29. package/elements/air-quality/air-quality-element.metadata.json +1 -0
  30. package/elements/alarm/alarm-element.d.ts +44 -0
  31. package/elements/alarm/alarm-element.js +386 -0
  32. package/elements/alarm/alarm-element.metadata.json +1 -0
  33. package/elements/bar-graph-element.d.ts +10 -2
  34. package/elements/bar-graph-element.js +135 -5
  35. package/elements/bar-graph-element.metadata.json +1 -1
  36. package/elements/base/readable-element.d.ts +6 -1
  37. package/elements/base/readable-element.js +55 -2
  38. package/elements/base/readable-element.metadata.json +1 -1
  39. package/elements/base/state-control-element.d.ts +3 -1
  40. package/elements/base/state-control-element.js +3 -0
  41. package/elements/datetime-display/datetime-display-element.d.ts +1 -0
  42. package/elements/datetime-display/datetime-display-element.js +10 -2
  43. package/elements/datetime-display/datetime-display-element.metadata.json +1 -1
  44. package/elements/datetime-display/time-zone-select-json.d.ts +8 -0
  45. package/elements/datetime-display/time-zone-select-json.js +558 -0
  46. package/elements/historical-curve/historical-curve.element.d.ts +9 -0
  47. package/elements/historical-curve/historical-curve.element.js +252 -13
  48. package/elements/historical-curve/historical-curve.element.metadata.json +1 -1
  49. package/elements/main-element.d.ts +1 -0
  50. package/elements/main-element.js +54 -4
  51. package/elements/main-element.metadata.json +1 -1
  52. package/elements/meter-element.d.ts +7 -1
  53. package/elements/meter-element.js +76 -7
  54. package/elements/meter-element.metadata.json +1 -1
  55. package/elements/numerical-display/numerical-display-element.d.ts +8 -2
  56. package/elements/numerical-display/numerical-display-element.js +55 -11
  57. package/elements/numerical-display/numerical-display-element.metadata.json +1 -1
  58. package/elements/per-view-variable-communicator.d.ts +3 -0
  59. package/elements/per-view-variable-communicator.js +11 -0
  60. package/elements/per-view-variable-communicator.metadata.json +1 -1
  61. package/elements/ring-graph/ring-graph-element.d.ts +13 -1
  62. package/elements/ring-graph/ring-graph-element.js +164 -3
  63. package/elements/ring-graph/ring-graph-element.metadata.json +1 -1
  64. package/elements/scroll-alarm/scroll-alarm-element.d.ts +50 -0
  65. package/elements/scroll-alarm/scroll-alarm-element.js +421 -0
  66. package/elements/scroll-alarm/scroll-alarm-element.metadata.json +1 -0
  67. package/elements/shared/graph/graph-state-element.js +0 -3
  68. package/elements/shared/text/text-element.js +13 -2
  69. package/elements/shared/text/text-state-element.d.ts +0 -1
  70. package/elements/shared/text/text-state-element.js +39 -61
  71. package/elements/shared/text/text-state-element.metadata.json +1 -1
  72. package/elements/switch-indicator-light/bit-switch-operator.d.ts +1 -0
  73. package/elements/switch-indicator-light/bit-switch-operator.js +19 -0
  74. package/elements/switch-indicator-light/bit-switch-operator.metadata.json +1 -1
  75. package/elements/switch-indicator-light/switch-indicator-light-element.d.ts +8 -0
  76. package/elements/switch-indicator-light/switch-indicator-light-element.js +93 -23
  77. package/elements/switch-indicator-light/switch-indicator-light-element.metadata.json +1 -1
  78. package/elements/switch-indicator-light/switch-operator.d.ts +1 -0
  79. package/elements/switch-indicator-light/word-switch-operator.d.ts +1 -0
  80. package/elements/switch-indicator-light/word-switch-operator.js +6 -0
  81. package/elements/switch-indicator-light/word-switch-operator.metadata.json +1 -1
  82. package/elements/video/video-element.d.ts +4 -0
  83. package/elements/video/video-element.js +81 -21
  84. package/elements/video/video-element.metadata.json +1 -1
  85. package/elements/view-operation/view-operation.element.js +8 -0
  86. package/elements/weather/weater-element.js +0 -1
  87. package/gui/gui-context.d.ts +2 -1
  88. package/gui/gui-host.d.ts +1 -1
  89. package/gui/gui-view.d.ts +2 -0
  90. package/gui/gui-view.js +20 -0
  91. package/gui/gui-view.metadata.json +1 -1
  92. package/gui/gui.component.d.ts +3 -0
  93. package/gui/gui.component.js +15 -2
  94. package/gui/gui.component.metadata.json +1 -1
  95. package/localization/localization.service.d.ts +7 -0
  96. package/localization/localization.service.js +10 -3
  97. package/localization/localization.service.metadata.json +1 -1
  98. package/localization/localization.service.zh_CN.js +8 -1
  99. package/localization/localization.service.zh_CN.metadata.json +1 -1
  100. package/modal/write-value/write-value-modal-args.d.ts +3 -1
  101. package/modal/write-value/write-value-modal-args.js +2 -1
  102. package/modal/write-value/write-value-modal-args.metadata.json +1 -1
  103. package/modal/write-value/write-value-modal.component.d.ts +8 -7
  104. package/modal/write-value/write-value-modal.component.html +9 -4
  105. package/modal/write-value/write-value-modal.component.js +42 -15
  106. package/modal/write-value/write-value-modal.component.metadata.json +1 -1
  107. package/model/air-quality/air-quality-info.d.ts +23 -0
  108. package/model/air-quality/air-quality-info.js +4 -0
  109. package/model/air-quality/air-quality-info.metadata.json +1 -0
  110. package/model/air-quality/air-quality.model.d.ts +7 -0
  111. package/model/air-quality/air-quality.model.js +0 -0
  112. package/model/air-quality/air-quality.model.metadata.json +1 -0
  113. package/model/alarm/alarm.model.d.ts +13 -0
  114. package/model/alarm/alarm.model.js +0 -0
  115. package/model/alarm/alarm.model.metadata.json +1 -0
  116. package/model/bar-graph/bar-graph.d.ts +4 -0
  117. package/model/base/readable-model.d.ts +4 -0
  118. package/model/datetime-display/datetime-display.d.ts +1 -0
  119. package/model/historical-curve/historical-curve-axis-settings.d.ts +11 -0
  120. package/model/historical-curve/historical-curve-axis-settings.js +5 -0
  121. package/model/historical-curve/historical-curve-axis-settings.metadata.json +1 -1
  122. package/model/historical-curve/historical-curve-chanel.model.d.ts +8 -0
  123. package/model/meter/meter.d.ts +4 -0
  124. package/model/ring-graph/ring-graph.model.d.ts +8 -0
  125. package/model/scroll-alarm/scroll-alarm.model.d.ts +21 -0
  126. package/model/scroll-alarm/scroll-alarm.model.js +0 -0
  127. package/model/scroll-alarm/scroll-alarm.model.metadata.json +1 -0
  128. package/model/switch-indicator-light/bit-switch-operation.d.ts +2 -1
  129. package/model/switch-indicator-light/bit-switch-operation.js +1 -0
  130. package/model/switch-indicator-light/bit-switch-operation.metadata.json +1 -1
  131. package/package.json +1 -1
  132. package/remote/communication/variable/remote-variable-communicator.d.ts +7 -0
  133. package/remote/communication/variable/remote-variable-communicator.js +47 -1
  134. package/remote/communication/variable/remote-variable-communicator.metadata.json +1 -1
  135. package/remote/communication/variable/remote-variable-protocol.d.ts +5 -0
  136. package/service/index.d.ts +1 -0
  137. package/service/index.metadata.json +1 -1
  138. package/service/released-variable/index.d.ts +1 -0
  139. package/service/released-variable/index.js +0 -0
  140. package/service/released-variable/index.metadata.json +1 -0
  141. package/service/released-variable/released-variable.service.d.ts +4 -0
  142. package/service/released-variable/released-variable.service.js +0 -0
  143. package/service/released-variable/released-variable.service.metadata.json +1 -0
  144. package/service/weather.service.d.ts +1 -0
  145. package/shared/gui-consts.d.ts +3 -0
  146. package/shared/gui-consts.js +3 -0
  147. package/shared/gui-consts.metadata.json +1 -1
  148. package/utils/data-type/fbox-data-type.service.js +40 -0
@@ -1,10 +1,20 @@
1
1
  import { ReadableElement } from './base';
2
+ import { isNumber } from 'lodash';
3
+ import { VariableValueType } from '../model/shared/condition/variable-value-type';
2
4
  export class MeterElement extends ReadableElement {
3
5
  constructor(element, permissionChecker, variableCommunicator, variableStore, localization, signalRAppId) {
4
6
  super(element, permissionChecker, variableCommunicator, variableStore, localization, signalRAppId);
5
7
  this.cx = 0;
6
8
  this.cy = 0;
7
9
  this.offsetY = 0;
10
+ this.valueObj = {};
11
+ this.isNeedUpdateScale = false;
12
+ if ((this.model.minValueType === VariableValueType.Constant && this.model.maxValueType === VariableValueType.Variable)
13
+ || this.model.maxValueType === VariableValueType.Constant && this.model.minValueType === VariableValueType.Variable) {
14
+ this.isNeedUpdateScale = true;
15
+ this.updateScale();
16
+ this.isNeedUpdateScale = false;
17
+ }
8
18
  let mainEl$;
9
19
  if (this.model.version && this.model.version > 3) {
10
20
  mainEl$ = this.$element.find('[data-id="main"]');
@@ -31,18 +41,75 @@ export class MeterElement extends ReadableElement {
31
41
  this.changeStates();
32
42
  });
33
43
  }
34
- updateVariableValue(value) {
35
- const angle = this.getAngle(value);
36
- this.$handEl.attr('transform', this.mainElementTransform + ` translate(0,${this.offsetY}) rotate(${angle}, ${this.cx}, ${this.cy})`);
44
+ updateValueObj(value, variableName) {
45
+ var _a, _b, _c;
46
+ if (((_a = this.model.readVariable) === null || _a === void 0 ? void 0 : _a.name) === variableName) {
47
+ this.isNeedUpdateScale = false;
48
+ this.valueObj.value = value;
49
+ }
50
+ if (((_b = this.model.minVariable) === null || _b === void 0 ? void 0 : _b.name) === variableName) {
51
+ this.isNeedUpdateScale = true;
52
+ this.valueObj.min = value;
53
+ }
54
+ if (((_c = this.model.maxVariable) === null || _c === void 0 ? void 0 : _c.name) === variableName) {
55
+ this.isNeedUpdateScale = true;
56
+ this.valueObj.max = value;
57
+ }
58
+ }
59
+ updateVariableValue(value, variableName) {
60
+ this.updateValueObj(value, variableName);
61
+ this.updateScale();
62
+ const angle = this.getAngle();
63
+ if (isNumber(angle)) {
64
+ this.$handEl.attr('transform', this.mainElementTransform + ` translate(0,${this.offsetY}) rotate(${angle}, ${this.cx}, ${this.cy})`);
65
+ }
37
66
  }
38
67
  initFrameNode() {
39
68
  const b = Snap(this.$element[0]).getBBox();
40
69
  this.rootElement.append('rect').attr('id', 'StateFrame').attr('width', b.width).attr('height', b.height).attr('fill', 'transparent');
41
70
  }
42
- getAngle(value) {
43
- const min = this.model.min;
44
- const max = this.model.max;
45
- value = Math.min(Math.max(value, min), max);
71
+ updateScale() {
72
+ if (!this.isNeedUpdateScale) {
73
+ return;
74
+ }
75
+ let min = this.model.minValueType ? this.valueObj.min : this.model.min;
76
+ let max = this.model.maxValueType ? this.valueObj.max : this.model.max;
77
+ min = Number(min);
78
+ max = Number(max);
79
+ if (isNaN(min) || isNaN(max)) {
80
+ min = MeterElement.DEFAULT_MIN_VALUE;
81
+ max = MeterElement.DEFAULT_MAX_VALUE;
82
+ }
83
+ const avgSacle = ((max - min) / this.model.masterDivisionNumber).toFixed(5);
84
+ const textElements = this.$element.find('g:first > text');
85
+ for (let i = 0; i < textElements.length; i++) {
86
+ const text = textElements[i];
87
+ if (!text.innerHTML) {
88
+ continue;
89
+ }
90
+ let sacleValue = ((Number(avgSacle) * i) + min).toFixed(0);
91
+ // 整数位和小数位格式化;
92
+ if (this.model.fractionDigits > 0) {
93
+ sacleValue = (sacleValue / Math.pow(10, this.model.fractionDigits)).toFixed(this.model.fractionDigits);
94
+ }
95
+ if (!isNaN(sacleValue)) {
96
+ text.innerHTML = sacleValue;
97
+ }
98
+ }
99
+ }
100
+ getAngle() {
101
+ let min = this.model.minValueType ? this.valueObj.min : this.model.min;
102
+ let max = this.model.maxValueType ? this.valueObj.max : this.model.max;
103
+ min = Number(min);
104
+ max = Number(max);
105
+ if (isNaN(min) || isNaN(max)) {
106
+ min = MeterElement.DEFAULT_MIN_VALUE;
107
+ max = MeterElement.DEFAULT_MAX_VALUE;
108
+ }
109
+ if (!this.valueObj.value && isNaN(Number(this.valueObj.value))) {
110
+ return undefined;
111
+ }
112
+ const value = Math.min(Math.max(this.valueObj.value || 0, min), max);
46
113
  const len = (value - min) / (max - min);
47
114
  const arcPath = Snap(this.arcPath$[0]);
48
115
  const b = arcPath.getBBox(true);
@@ -68,3 +135,5 @@ export class MeterElement extends ReadableElement {
68
135
  return c;
69
136
  }
70
137
  }
138
+ MeterElement.DEFAULT_MIN_VALUE = 0;
139
+ MeterElement.DEFAULT_MAX_VALUE = 100;
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"MeterElement":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"./base","name":"ReadableElement","line":7,"character":34},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":18,"character":25,"context":{"typeName":"HTMLElement"}},{"__symbolic":"reference","module":"../service","name":"PermissionChecker","line":18,"character":57},{"__symbolic":"reference","module":"../communication","name":"VariableCommunicator","line":19,"character":30},{"__symbolic":"reference","module":"../config","name":"VariableStore","line":19,"character":67},{"__symbolic":"reference","module":"../localization","name":"Localization","line":19,"character":96},{"__symbolic":"reference","name":"string"}]}],"updateVariableValue":[{"__symbolic":"method"}],"initFrameNode":[{"__symbolic":"method"}],"getAngle":[{"__symbolic":"method"}],"directionPoint":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"MeterElement":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"./base","name":"ReadableElement","line":9,"character":34},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":25,"character":25,"context":{"typeName":"HTMLElement"}},{"__symbolic":"reference","module":"../service","name":"PermissionChecker","line":25,"character":57},{"__symbolic":"reference","module":"../communication","name":"VariableCommunicator","line":26,"character":30},{"__symbolic":"reference","module":"../config","name":"VariableStore","line":26,"character":67},{"__symbolic":"reference","module":"../localization","name":"Localization","line":26,"character":96},{"__symbolic":"reference","name":"string"}]}],"updateValueObj":[{"__symbolic":"method"}],"updateVariableValue":[{"__symbolic":"method"}],"initFrameNode":[{"__symbolic":"method"}],"updateScale":[{"__symbolic":"method"}],"getAngle":[{"__symbolic":"method"}],"directionPoint":[{"__symbolic":"method"}]},"statics":{"DEFAULT_MIN_VALUE":0,"DEFAULT_MAX_VALUE":100}}}}]
@@ -3,7 +3,7 @@ import { BsModalService } from 'ngx-bootstrap/modal';
3
3
  import { GraphStore, VariableStore } from '../../config';
4
4
  import { Localization } from '../../localization';
5
5
  import { NumericalDisplay } from '../../model';
6
- import { PermissionChecker, OperationRecordService } from '../../service';
6
+ import { PermissionChecker, OperationRecordService, ReleasedVariableService } from '../../service';
7
7
  import { VariableCommunicator } from '../../communication';
8
8
  import { ReadableElement } from '../base/readable-element';
9
9
  import { SecurityChecker } from '../../security';
@@ -11,6 +11,7 @@ export declare class NumericalDisplayElement extends ReadableElement {
11
11
  private readonly modalService;
12
12
  private readonly graphStore;
13
13
  private readonly operationRecordService;
14
+ private readonly releasedVariableService;
14
15
  private readonly securityChecker;
15
16
  private readonly dataTypeService;
16
17
  private readonly fractionDigitService;
@@ -21,8 +22,13 @@ export declare class NumericalDisplayElement extends ReadableElement {
21
22
  private readonly logger;
22
23
  private displayForeignObject;
23
24
  private enableDataParsed;
25
+ private writeValueMmodalRef;
26
+ private recordValue;
27
+ private showValue;
28
+ private numericalOperation;
29
+ private restorationTimer;
24
30
  get writeVariableName(): string;
25
- constructor(element: HTMLElement, injector: Injector, modalService: BsModalService, permissionChecker: PermissionChecker, variableCommunicator: VariableCommunicator, graphStore: GraphStore, operationRecordService: OperationRecordService, securityChecker: SecurityChecker, variableStore: VariableStore, localization: Localization, signalRAppId: string);
31
+ constructor(element: HTMLElement, injector: Injector, modalService: BsModalService, permissionChecker: PermissionChecker, variableCommunicator: VariableCommunicator, graphStore: GraphStore, operationRecordService: OperationRecordService, releasedVariableService: ReleasedVariableService, securityChecker: SecurityChecker, variableStore: VariableStore, localization: Localization, signalRAppId: string);
26
32
  dispose(): void;
27
33
  initElement(): any;
28
34
  private checkElementPassword;
@@ -11,12 +11,19 @@ import { ConfirmOperationModalComponent } from '../../modal/confirm-operation/co
11
11
  import { VerifyPasswordModalComponent } from '../../modal/verify-password/verify-password-modal.component';
12
12
  import { isNil } from 'lodash';
13
13
  import { FCloudDataType } from '../../model/shared/data-type/fcloud-data-Type';
14
+ var variableRwTypeEnum;
15
+ (function (variableRwTypeEnum) {
16
+ variableRwTypeEnum[variableRwTypeEnum["read"] = 4] = "read";
17
+ variableRwTypeEnum[variableRwTypeEnum["witer"] = 2] = "witer";
18
+ variableRwTypeEnum[variableRwTypeEnum["readWiter"] = 6] = "readWiter";
19
+ })(variableRwTypeEnum || (variableRwTypeEnum = {}));
14
20
  export class NumericalDisplayElement extends ReadableElement {
15
- constructor(element, injector, modalService, permissionChecker, variableCommunicator, graphStore, operationRecordService, securityChecker, variableStore, localization, signalRAppId) {
21
+ constructor(element, injector, modalService, permissionChecker, variableCommunicator, graphStore, operationRecordService, releasedVariableService, securityChecker, variableStore, localization, signalRAppId) {
16
22
  super(element, permissionChecker, variableCommunicator, variableStore, localization, signalRAppId);
17
23
  this.modalService = modalService;
18
24
  this.graphStore = graphStore;
19
25
  this.operationRecordService = operationRecordService;
26
+ this.releasedVariableService = releasedVariableService;
20
27
  this.securityChecker = securityChecker;
21
28
  this.displayText = '';
22
29
  this.enableDataParsed = false;
@@ -173,19 +180,42 @@ export class NumericalDisplayElement extends ReadableElement {
173
180
  if (null == this.writeVariableName) {
174
181
  return;
175
182
  }
176
- const args = new WriteValueModalArgs(this.writeVariableName, this.model.dataType, this.model.fBoxDataType, this.model.integerDigits, this.model.fractionDigits, this.numericalOperationService.getNumericalOperations(this.model), this.model.version, this.enableDataParsed);
177
- const modalRef = this.modalService.show(WriteValueModalComponent, {
183
+ const args = new WriteValueModalArgs(this.writeVariableName, this.model.dataType, this.model.fBoxDataType, this.model.integerDigits, this.model.fractionDigits, this.numericalOperationService.getNumericalOperations(this.model), this.model.version, this.enableDataParsed, this.releasedVariableService);
184
+ this.writeValueMmodalRef = this.modalService.show(WriteValueModalComponent, {
178
185
  initialState: { args: args }, backdrop: 'static', class: 'gui-modal-dialog-position', animated: false
179
186
  });
180
- const onClosedSub = modalRef.content.onClosed.subscribe(result => {
181
- modalRef.hide();
182
- onClosedSub.unsubscribe();
187
+ this.writeValueMmodalRef.content.onClosed = (result) => {
183
188
  if (result) {
189
+ if (this.restorationTimer) {
190
+ clearTimeout(this.restorationTimer);
191
+ this.restorationTimer = undefined;
192
+ }
193
+ this.recordValue = result.value;
184
194
  const writeValue = this.dataTypeService.formatToDecimal(this.model.version, result.value, this.model.dataType);
185
- this.variableCommunicator.write(this.writeVariableName, writeValue).subscribe();
186
- this.recordOperation(result.value);
195
+ this.showValue = result.showValue;
196
+ if (this.displayText !== this.showValue || result.variableRwType === variableRwTypeEnum.witer) {
197
+ if (this.numericalOperation || result.enableNumericalOperation || result.isNumericalOperation || result.variableRwType === variableRwTypeEnum.witer) {
198
+ this.recordOperation(result.value);
199
+ this.writeValueMmodalRef.hide();
200
+ }
201
+ else {
202
+ this.restorationTimer = setTimeout(() => {
203
+ const isEquation = this.model.fractionDigits ?
204
+ parseFloat(this.displayText) === parseFloat(this.showValue) :
205
+ parseInt(this.displayText, 16) === parseInt(this.showValue, 16);
206
+ if (!isEquation) {
207
+ this.writeValueMmodalRef.content.isSubmitting = false;
208
+ this.writeValueMmodalRef.content.showValidationErrorInfo(this.localization.writeValueTimeout);
209
+ }
210
+ }, 30000);
211
+ }
212
+ this.variableCommunicator.write(this.writeVariableName, writeValue).subscribe();
213
+ }
214
+ else {
215
+ this.writeValueMmodalRef.hide();
216
+ }
187
217
  }
188
- });
218
+ };
189
219
  }
190
220
  recordOperation(newValue) {
191
221
  if (this.model.isRecordOperation || this.model.isRecordOperation === undefined) {
@@ -211,7 +241,21 @@ export class NumericalDisplayElement extends ReadableElement {
211
241
  }
212
242
  }
213
243
  updateVariableValue(value) {
214
- this.displayText = this.formatNumericalDisplayText(this.model.dataType, this.model.fractionDigits, value);
244
+ var _a;
245
+ const displayText = this.formatNumericalDisplayText(this.model.dataType, this.model.fractionDigits, value);
246
+ const isEquation = this.model.fractionDigits ?
247
+ parseFloat(displayText) === parseFloat(this.showValue) :
248
+ parseInt(displayText, 16) === parseInt(this.showValue, 16);
249
+ if (((_a = this.writeValueMmodalRef) === null || _a === void 0 ? void 0 : _a.content) && isEquation) {
250
+ if (this.restorationTimer) {
251
+ clearTimeout(this.restorationTimer);
252
+ this.restorationTimer = undefined;
253
+ this.recordOperation(this.recordValue);
254
+ }
255
+ this.writeValueMmodalRef.hide();
256
+ this.writeValueMmodalRef.content.hideValidationErrorInfo();
257
+ }
258
+ this.displayText = displayText;
215
259
  this.updateDisplayText(this.formatDisplayTextUnit(this.displayText));
216
260
  }
217
261
  updateDisplayText(text) {
@@ -354,7 +398,7 @@ export class NumericalDisplayElement extends ReadableElement {
354
398
  }
355
399
  formatDisplayTextUnit(displayText) {
356
400
  if (this.model.showUnit !== false && this.model.unit) {
357
- return `${displayText} ${this.model.unit}`;
401
+ return `${displayText || 0} ${this.model.unit}`;
358
402
  }
359
403
  return displayText;
360
404
  }
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"NumericalDisplayElement":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../base/readable-element","name":"ReadableElement","line":22,"character":45},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":39,"character":25,"context":{"typeName":"HTMLElement"}},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":40,"character":18},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":41,"character":39},{"__symbolic":"reference","module":"../../service","name":"PermissionChecker","line":42,"character":27},{"__symbolic":"reference","module":"../../communication","name":"VariableCommunicator","line":43,"character":30},{"__symbolic":"reference","module":"../../config","name":"GraphStore","line":44,"character":37},{"__symbolic":"reference","module":"../../service","name":"OperationRecordService","line":45,"character":49},{"__symbolic":"reference","module":"../../security","name":"SecurityChecker","line":46,"character":42},{"__symbolic":"reference","module":"../../config","name":"VariableStore","line":47,"character":23},{"__symbolic":"reference","module":"../../localization","name":"Localization","line":48,"character":22},{"__symbolic":"reference","name":"string"}]}],"dispose":[{"__symbolic":"method"}],"initElement":[{"__symbolic":"method"}],"checkElementPassword":[{"__symbolic":"method"}],"initVariableText":[{"__symbolic":"method"}],"initGraphAndText":[{"__symbolic":"method"}],"doWriteValue":[{"__symbolic":"method"}],"recordOperation":[{"__symbolic":"method"}],"changeStates":[{"__symbolic":"method"}],"updateVariableValue":[{"__symbolic":"method"}],"updateDisplayText":[{"__symbolic":"method"}],"rebuildTextElement":[{"__symbolic":"method"}],"formatNumericalDisplayText":[{"__symbolic":"method"}],"formatFloatDisplayText":[{"__symbolic":"method"}],"isNumeric":[{"__symbolic":"method"}],"formatDisplayTextUnit":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"NumericalDisplayElement":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../base/readable-element","name":"ReadableElement","line":28,"character":45},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":50,"character":25,"context":{"typeName":"HTMLElement"}},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":51,"character":18},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":52,"character":39},{"__symbolic":"reference","module":"../../service","name":"PermissionChecker","line":53,"character":27},{"__symbolic":"reference","module":"../../communication","name":"VariableCommunicator","line":54,"character":30},{"__symbolic":"reference","module":"../../config","name":"GraphStore","line":55,"character":37},{"__symbolic":"reference","module":"../../service","name":"OperationRecordService","line":56,"character":49},{"__symbolic":"reference","module":"../../service","name":"ReleasedVariableService","line":57,"character":50},{"__symbolic":"reference","module":"../../security","name":"SecurityChecker","line":58,"character":42},{"__symbolic":"reference","module":"../../config","name":"VariableStore","line":59,"character":23},{"__symbolic":"reference","module":"../../localization","name":"Localization","line":60,"character":22},{"__symbolic":"reference","name":"string"}]}],"dispose":[{"__symbolic":"method"}],"initElement":[{"__symbolic":"method"}],"checkElementPassword":[{"__symbolic":"method"}],"initVariableText":[{"__symbolic":"method"}],"initGraphAndText":[{"__symbolic":"method"}],"doWriteValue":[{"__symbolic":"method"}],"recordOperation":[{"__symbolic":"method"}],"changeStates":[{"__symbolic":"method"}],"updateVariableValue":[{"__symbolic":"method"}],"updateDisplayText":[{"__symbolic":"method"}],"rebuildTextElement":[{"__symbolic":"method"}],"formatNumericalDisplayText":[{"__symbolic":"method"}],"formatFloatDisplayText":[{"__symbolic":"method"}],"isNumeric":[{"__symbolic":"method"}],"formatDisplayTextUnit":[{"__symbolic":"method"}]}}}}]
@@ -6,12 +6,15 @@ export declare class PerViewVariableCommunicator implements VariableCommunicator
6
6
  private observers;
7
7
  private variableValuesChangedSubscriptions;
8
8
  private variableStatesChangedSubscription;
9
+ private alarmSubscription;
9
10
  constructor(variableCommunicator: VariableCommunicator);
10
11
  openVariable(variableName: string, appId: string): Observable<VariableValue>;
11
12
  openVariables(variableNames: Array<string>, appId?: string): Observable<Array<VariableValue>>;
12
13
  write(variableName: string, value: any): Observable<VariableValue>;
13
14
  writeWordByBit(variableName: string, index: number, value: number): Observable<VariableValue>;
15
+ requestVirtualDeviceState(): Observable<void>;
14
16
  subscribeVariableState(variableName: string): Observable<VariableState>;
15
17
  subscribeVariableStates(variableNames: string[]): Observable<Array<VariableState>>;
18
+ subscribeUserDeviceAlarms(appId?: string): Observable<VariableState[]>;
16
19
  dispose(): void;
17
20
  }
@@ -6,6 +6,7 @@ export class PerViewVariableCommunicator {
6
6
  this.observers = new Map();
7
7
  this.variableValuesChangedSubscriptions = new Array();
8
8
  this.variableStatesChangedSubscription = new Array();
9
+ this.alarmSubscription = new Array();
9
10
  this._rawVariableCommunicator = variableCommunicator;
10
11
  }
11
12
  openVariable(variableName, appId) {
@@ -29,6 +30,9 @@ export class PerViewVariableCommunicator {
29
30
  writeWordByBit(variableName, index, value) {
30
31
  return this._rawVariableCommunicator.writeWordByBit(variableName, index, value);
31
32
  }
33
+ requestVirtualDeviceState() {
34
+ return this._rawVariableCommunicator.requestVirtualDeviceState();
35
+ }
32
36
  subscribeVariableState(variableName) {
33
37
  return this.subscribeVariableStates([variableName]).pipe(map(values => values[0]));
34
38
  }
@@ -38,8 +42,15 @@ export class PerViewVariableCommunicator {
38
42
  this.variableStatesChangedSubscription.push(subscription);
39
43
  });
40
44
  }
45
+ subscribeUserDeviceAlarms(appId = '') {
46
+ return new Observable(subscriber => {
47
+ const subscription = this._rawVariableCommunicator.subscribeUserDeviceAlarms(appId).subscribe(values => subscriber.next(values), error => subscriber.error(error), () => subscriber.complete());
48
+ this.alarmSubscription.push(subscription);
49
+ });
50
+ }
41
51
  dispose() {
42
52
  forEach(this.variableValuesChangedSubscriptions, s => s.unsubscribe());
43
53
  forEach(this.variableStatesChangedSubscription, s => s.unsubscribe());
54
+ forEach(this.alarmSubscription, s => s.unsubscribe());
44
55
  }
45
56
  }
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"PerViewVariableCommunicator":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"../communication","name":"VariableCommunicator","line":14,"character":38}]}],"openVariable":[{"__symbolic":"method"}],"openVariables":[{"__symbolic":"method"}],"write":[{"__symbolic":"method"}],"writeWordByBit":[{"__symbolic":"method"}],"subscribeVariableState":[{"__symbolic":"method"}],"subscribeVariableStates":[{"__symbolic":"method"}],"dispose":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"PerViewVariableCommunicator":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"../communication","name":"VariableCommunicator","line":15,"character":38}]}],"openVariable":[{"__symbolic":"method"}],"openVariables":[{"__symbolic":"method"}],"write":[{"__symbolic":"method"}],"writeWordByBit":[{"__symbolic":"method"}],"requestVirtualDeviceState":[{"__symbolic":"method"}],"subscribeVariableState":[{"__symbolic":"method"}],"subscribeVariableStates":[{"__symbolic":"method"}],"subscribeUserDeviceAlarms":[{"__symbolic":"method"}],"dispose":[{"__symbolic":"method"}]}}}}]
@@ -5,13 +5,25 @@ import { ReadableElement } from '../base/readable-element';
5
5
  import { VariableStore } from '../../config';
6
6
  import { PermissionChecker } from '../../service';
7
7
  export declare class RingGraphElement extends ReadableElement {
8
+ private static DEFAULT_MIN_VALUE;
9
+ private static DEFAULT_MAX_VALUE;
8
10
  protected readonly model: RingGraphModel;
9
11
  private _barElement$;
10
12
  private _textElement$;
13
+ private valueObj;
14
+ private isNeedUpdateScale;
15
+ private initTransform;
16
+ private needAddNumber;
11
17
  get readVariableName(): string;
18
+ get minVariableName(): string;
19
+ get maxVariableName(): string;
12
20
  constructor(element: HTMLElement, permissionChecker: PermissionChecker, variableCommunicator: VariableCommunicator, variableStore: VariableStore, localization: Localization, signalRAppId: string);
21
+ private initTransformFun;
13
22
  private initFrameNode;
14
- protected updateVariableValue(value: number): void;
23
+ init(variableName: string): void;
24
+ private updateValueObj;
25
+ private updateScale;
26
+ protected updateVariableValue(value: number, variableName: any): void;
15
27
  private updateBar;
16
28
  private getBarColor;
17
29
  private drawClockWiseArc;
@@ -4,31 +4,190 @@ import { RotationDirectionType } from '../../model/shared/rotation/rotation-dire
4
4
  import { calculatePercent, degreesToRadians } from '../shared/math-utils';
5
5
  import { VariableUtil } from '../../utils/variable-util';
6
6
  import { VariableDefinition } from '../../communication/variable/variable-definition';
7
+ import { forEach } from 'lodash';
8
+ import { VariableState } from '../../communication';
9
+ import { VariableValueType } from '../../model/shared/condition/variable-value-type';
7
10
  export class RingGraphElement extends ReadableElement {
8
11
  constructor(element, permissionChecker, variableCommunicator, variableStore, localization, signalRAppId) {
9
12
  super(element, permissionChecker, variableCommunicator, variableStore, localization, signalRAppId);
13
+ this.valueObj = {};
14
+ this.isNeedUpdateScale = false;
15
+ this.initTransform = false;
16
+ this.needAddNumber = 0;
17
+ if ((this.model.minValueType === VariableValueType.Constant && this.model.maxValueType === VariableValueType.Variable)
18
+ || this.model.maxValueType === VariableValueType.Constant && this.model.minValueType === VariableValueType.Variable) {
19
+ this.isNeedUpdateScale = true;
20
+ this.updateScale();
21
+ this.isNeedUpdateScale = false;
22
+ }
10
23
  const el$ = $(element);
11
24
  this._barElement$ = el$.find('path[data-id="barArc"]');
12
25
  this._textElement$ = el$.find('text[data-id="pText"]');
13
26
  setTimeout(() => {
14
27
  this.initFrameNode();
15
28
  this.changeStates();
16
- }, 0);
29
+ });
17
30
  }
18
31
  get readVariableName() {
19
32
  if (!this.model.variableId) {
20
33
  return '';
21
34
  }
35
+ if (!this.model.variableId.variableName || !this.model.variableId.variableName.name) {
36
+ return undefined;
37
+ }
22
38
  const variable = new VariableDefinition(this.model.variableId.variableName.name, this.model.variableId.variableName.groupName, this.model.variableId.dataSourceCode, this.model.variableId.variableName.variableVersion);
23
39
  return VariableUtil.getConvertedVariableName(this.variableStore, variable);
24
40
  }
41
+ get minVariableName() {
42
+ if (!this.model.minValueType) {
43
+ return undefined;
44
+ }
45
+ if (!this.model.minVariable || !this.model.minVariable.name) {
46
+ return undefined;
47
+ }
48
+ const variable = new VariableDefinition(this.model.minVariable.name, this.model.minVariable.groupName, this.model.minVariable.dataSourceCode, this.model.minVariable.variableVersion);
49
+ return VariableUtil.getConvertedVariableName(this.variableStore, variable);
50
+ }
51
+ get maxVariableName() {
52
+ if (!this.model.maxValueType) {
53
+ return undefined;
54
+ }
55
+ if (!this.model.maxVariable || !this.model.maxVariable.name) {
56
+ return undefined;
57
+ }
58
+ const variable = new VariableDefinition(this.model.maxVariable.name, this.model.maxVariable.groupName, this.model.maxVariable.dataSourceCode, this.model.maxVariable.variableVersion);
59
+ return VariableUtil.getConvertedVariableName(this.variableStore, variable);
60
+ }
61
+ initTransformFun(len) {
62
+ this.$element[0].childNodes.forEach((node) => {
63
+ if (!node.transform.baseVal[0])
64
+ return;
65
+ // const matrixE = node.transform.baseVal[0].matrix.e;
66
+ // node.transform.baseVal[0].matrix.e = matrixE + len * 5;
67
+ if (node.nodeName === 'g') {
68
+ const nodeValue = node.attributes['clip-path'].value.replace('url(#', '').replace(')', '');
69
+ const rootNode = node.parentNode.parentNode.parentElement;
70
+ const clipPath = $(rootNode).find(`clipPath[id="${nodeValue}"]`);
71
+ const demoPath = clipPath.find('path');
72
+ const dValues = demoPath.attr('d').split(',');
73
+ const retValues = [];
74
+ dValues.forEach((line, index) => {
75
+ const values = [];
76
+ line.split(' ').forEach((item) => {
77
+ const nItem = Number(item);
78
+ if (!isNaN(nItem) && (index === 1 || index === 2 || nItem === -1)) {
79
+ item = nItem > 0 ? (index === 1 || index === 2 ? nItem + (len + 2) * 8 : nItem + len * 8) : nItem - len * 8;
80
+ }
81
+ values.push(item);
82
+ });
83
+ retValues.push(values.join(' '));
84
+ });
85
+ demoPath.attr('d', retValues.join(','));
86
+ }
87
+ });
88
+ }
25
89
  initFrameNode() {
26
90
  const arcPath = Snap(this.$element[0]);
27
91
  const b = arcPath.getBBox(true);
28
92
  this.rootElement.append('rect').attr('id', 'StateFrame').attr('width', b.width).attr('height', b.height).attr('fill', 'transparent');
29
93
  }
30
- updateVariableValue(value) {
31
- const percent = calculatePercent(this.model.min, this.model.max, value);
94
+ init(variableName) {
95
+ if (variableName) {
96
+ let hasVariable = false;
97
+ forEach(this.elementStates, elementState => {
98
+ if (elementState.variableName === variableName) {
99
+ hasVariable = true;
100
+ }
101
+ });
102
+ if (!hasVariable && variableName === this.readVariableName) {
103
+ this.elementStates.push(new VariableState(variableName, undefined));
104
+ }
105
+ }
106
+ }
107
+ updateValueObj(value, variableName) {
108
+ var _a, _b, _c;
109
+ if (((_a = this.model.variableId) === null || _a === void 0 ? void 0 : _a.variableName.name) === variableName) {
110
+ this.isNeedUpdateScale = false;
111
+ this.valueObj.value = value;
112
+ }
113
+ if (((_b = this.model.minVariable) === null || _b === void 0 ? void 0 : _b.name) === variableName) {
114
+ this.isNeedUpdateScale = true;
115
+ this.valueObj.min = value;
116
+ }
117
+ if (((_c = this.model.maxVariable) === null || _c === void 0 ? void 0 : _c.name) === variableName) {
118
+ this.isNeedUpdateScale = true;
119
+ this.valueObj.max = value;
120
+ }
121
+ }
122
+ updateScale() {
123
+ // 刻度模糊问题
124
+ const matrix = this.$element[0].transform.baseVal[0].matrix;
125
+ if (!this.$element[0].style.transform) {
126
+ this.$element[0].style.transform = `translate3d(${matrix.e}px, ${matrix.f}px, 0)`;
127
+ }
128
+ if (!this.isNeedUpdateScale) {
129
+ return;
130
+ }
131
+ const textElements = this.$element.find('g:first > text');
132
+ let min = this.model.minValueType ? this.valueObj.min : this.model.min;
133
+ let max = this.model.maxValueType ? this.valueObj.max : this.model.max;
134
+ min = Number(min);
135
+ max = Number(max);
136
+ if (isNaN(min) || isNaN(max)) {
137
+ min = RingGraphElement.DEFAULT_MIN_VALUE;
138
+ max = RingGraphElement.DEFAULT_MAX_VALUE;
139
+ }
140
+ if (this.model.minValueType === VariableValueType.Variable || this.model.maxValueType === VariableValueType.Variable) {
141
+ const len = max.toString().length > min.toString().length ? max.toString().length : min.toString().length;
142
+ if (Math.abs(len - this.needAddNumber) > 2) {
143
+ const width = this.$element.find('rect').attr('width');
144
+ this.$element.find('rect').attr('width', Number(width) + (len - this.needAddNumber) * 8);
145
+ this.initTransformFun(Math.abs(len - this.needAddNumber));
146
+ this.needAddNumber = len;
147
+ }
148
+ }
149
+ const avgSacle = ((max - min) / this.model.masterDivisionNumber).toFixed(5);
150
+ for (let i = 0; i < textElements.length; i++) {
151
+ const text = textElements[i];
152
+ if (!text.innerHTML) {
153
+ continue;
154
+ }
155
+ let sacleValue = ((Number(avgSacle) * i) + min).toFixed(0);
156
+ // 整数位和小数位格式化;
157
+ if (this.model.fractionDigits > 0) {
158
+ sacleValue = (sacleValue / Math.pow(10, this.model.fractionDigits)).toFixed(this.model.fractionDigits);
159
+ }
160
+ if (!isNaN(sacleValue)) {
161
+ const oriValue = text.innerHTML;
162
+ text.innerHTML = sacleValue;
163
+ if (this.model.minValueType !== VariableValueType.Constant || this.model.maxValueType !== VariableValueType.Constant) {
164
+ // FLEXCLOUD-2619 刻度显示不全问题
165
+ const order = (i + 1) / textElements.length;
166
+ const len = oriValue.toString().length - sacleValue.toString().length;
167
+ if (order <= 0.7 && len > 1 && !this.initTransform) {
168
+ text.transform.baseVal[0].matrix.e += (len - 1) * 5;
169
+ }
170
+ if (order > 0.7 && Math.abs(len) > 0) {
171
+ text.transform.baseVal[0].matrix.e += len > 1 ? (len - 1) * 5 : len < -1 ? (len + 1) * 5 : len * 5;
172
+ text.transform.baseVal[0].matrix.e += len === -2 ? -3 : 0;
173
+ }
174
+ }
175
+ }
176
+ }
177
+ this.initTransform = true;
178
+ }
179
+ updateVariableValue(value, variableName) {
180
+ this.updateValueObj(value, variableName);
181
+ this.updateScale();
182
+ let min = this.model.minValueType ? this.valueObj.min : this.model.min;
183
+ let max = this.model.maxValueType ? this.valueObj.max : this.model.max;
184
+ min = Number(min);
185
+ max = Number(max);
186
+ if (isNaN(min) || isNaN(max)) {
187
+ min = RingGraphElement.DEFAULT_MIN_VALUE;
188
+ max = RingGraphElement.DEFAULT_MAX_VALUE;
189
+ }
190
+ const percent = calculatePercent(min, max, this.valueObj.value || 0);
32
191
  this.updateBar(percent);
33
192
  this._barElement$.attr('fill', this.getBarColor(value));
34
193
  if (this.model.showPercentage) {
@@ -87,3 +246,5 @@ export class RingGraphElement extends ReadableElement {
87
246
  arcPath.arc(outer, outer, inner, endRadians, startRadians);
88
247
  }
89
248
  }
249
+ RingGraphElement.DEFAULT_MIN_VALUE = 0;
250
+ RingGraphElement.DEFAULT_MAX_VALUE = 100;
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"RingGraphElement":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../base/readable-element","name":"ReadableElement","line":13,"character":38},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":27,"character":25,"context":{"typeName":"HTMLElement"}},{"__symbolic":"reference","module":"../../service","name":"PermissionChecker","line":27,"character":57},{"__symbolic":"reference","module":"../../communication/variable/variable-communicator","name":"VariableCommunicator","line":28,"character":30},{"__symbolic":"reference","module":"../../config","name":"VariableStore","line":29,"character":23},{"__symbolic":"reference","module":"../../localization/localization.service","name":"Localization","line":30,"character":22},{"__symbolic":"reference","name":"string"}]}],"initFrameNode":[{"__symbolic":"method"}],"updateVariableValue":[{"__symbolic":"method"}],"updateBar":[{"__symbolic":"method"}],"getBarColor":[{"__symbolic":"method"}],"drawClockWiseArc":[{"__symbolic":"method"}],"drawAntiClockWiseArc":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"RingGraphElement":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../base/readable-element","name":"ReadableElement","line":16,"character":38},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":62,"character":25,"context":{"typeName":"HTMLElement"}},{"__symbolic":"reference","module":"../../service","name":"PermissionChecker","line":62,"character":57},{"__symbolic":"reference","module":"../../communication/variable/variable-communicator","name":"VariableCommunicator","line":63,"character":30},{"__symbolic":"reference","module":"../../config","name":"VariableStore","line":64,"character":23},{"__symbolic":"reference","module":"../../localization/localization.service","name":"Localization","line":65,"character":22},{"__symbolic":"reference","name":"string"}]}],"initTransformFun":[{"__symbolic":"method"}],"initFrameNode":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"updateValueObj":[{"__symbolic":"method"}],"updateScale":[{"__symbolic":"method"}],"updateVariableValue":[{"__symbolic":"method"}],"updateBar":[{"__symbolic":"method"}],"getBarColor":[{"__symbolic":"method"}],"drawClockWiseArc":[{"__symbolic":"method"}],"drawAntiClockWiseArc":[{"__symbolic":"method"}]},"statics":{"DEFAULT_MIN_VALUE":0,"DEFAULT_MAX_VALUE":100}}}}]
@@ -0,0 +1,50 @@
1
+ import { Injector } from '@angular/core';
2
+ import { PermissionChecker } from '../../service';
3
+ import { VariableCommunicator } from '../../communication';
4
+ import { ConditionalDynamicDisplayElement } from '../base/conditional-dynamic-display-element';
5
+ import { ScrollAlarmModel } from '../../model/scroll-alarm/scroll-alarm.model';
6
+ import { AlarmsStore, VariableStore } from '../../config';
7
+ export declare class ScrollAlarmElement extends ConditionalDynamicDisplayElement {
8
+ private readonly alarmsStore;
9
+ readonly model: ScrollAlarmModel;
10
+ private readonly logger;
11
+ readonly variableCommunicator: VariableCommunicator;
12
+ private elementStatus;
13
+ private element;
14
+ private scrollIntervalId;
15
+ private alarmNames;
16
+ private startTime;
17
+ private endTime;
18
+ private getAlarmDataId;
19
+ private isScrolling;
20
+ private isDisposed;
21
+ private currentPage;
22
+ private maxResultCount;
23
+ private displayedItems;
24
+ private pageWidths;
25
+ private totalWidth;
26
+ private container;
27
+ private allAlarmsContainer;
28
+ private currentLeft;
29
+ private autoCycle;
30
+ private hasMoreData;
31
+ private isLoadingNextPage;
32
+ private headerFont;
33
+ private fontString;
34
+ constructor(element: HTMLElement, injector: Injector, permissionChecker: PermissionChecker, variableCommunicator: VariableCommunicator, variableStore: VariableStore, alarmsStore: AlarmsStore, signalRAppId: string);
35
+ dispose(): void;
36
+ private getAlarmData;
37
+ private initDisplayContainer;
38
+ private renderNewPage;
39
+ private removeOldestPage;
40
+ private resetToFirstPage;
41
+ private scrollContent;
42
+ private initScrolling;
43
+ private pauseScroll;
44
+ private resumeScroll;
45
+ private updateQueryTimeRange;
46
+ private setStatusAsNormal;
47
+ private setStatusAsLoading;
48
+ private renderStatus;
49
+ private clearStatus;
50
+ }