@flexem/fc-gui 3.0.0-alpha.13 → 3.0.0-alpha.130

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 (184) hide show
  1. package/CHANGELOG.md +439 -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 +23330 -19502
  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 +4 -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 +12 -0
  18. package/config/alarm/get-alarms-args.js +13 -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/history-data/get-history-data-args.d.ts +14 -3
  25. package/config/history-data/get-history-data-args.js +5 -3
  26. package/config/history-data/get-history-data-args.metadata.json +1 -1
  27. package/config/history-data/history-data.model.d.ts +7 -1
  28. package/config/history-data/history-data.model.js +9 -1
  29. package/config/history-data/history-data.model.metadata.json +1 -1
  30. package/config/history-data/index.d.ts +1 -1
  31. package/config/history-data/index.js +1 -1
  32. package/config/history-data/index.metadata.json +1 -1
  33. package/config/index.d.ts +1 -0
  34. package/config/index.js +1 -0
  35. package/config/index.metadata.json +1 -1
  36. package/elements/air-quality/air-quality-element.d.ts +31 -0
  37. package/elements/air-quality/air-quality-element.js +194 -0
  38. package/elements/air-quality/air-quality-element.metadata.json +1 -0
  39. package/elements/alarm/alarm-element.d.ts +69 -0
  40. package/elements/alarm/alarm-element.js +497 -0
  41. package/elements/alarm/alarm-element.metadata.json +1 -0
  42. package/elements/bar-graph-element.d.ts +10 -2
  43. package/elements/bar-graph-element.js +135 -5
  44. package/elements/bar-graph-element.metadata.json +1 -1
  45. package/elements/base/readable-element.d.ts +6 -1
  46. package/elements/base/readable-element.js +64 -2
  47. package/elements/base/readable-element.metadata.json +1 -1
  48. package/elements/base/state-control-element.d.ts +3 -1
  49. package/elements/base/state-control-element.js +3 -0
  50. package/elements/datetime-display/datetime-display-element.d.ts +1 -0
  51. package/elements/datetime-display/datetime-display-element.js +10 -2
  52. package/elements/datetime-display/datetime-display-element.metadata.json +1 -1
  53. package/elements/datetime-display/time-zone-select-json.d.ts +8 -0
  54. package/elements/datetime-display/time-zone-select-json.js +558 -0
  55. package/elements/historical-curve/historical-curve.element.d.ts +39 -3
  56. package/elements/historical-curve/historical-curve.element.js +499 -39
  57. package/elements/historical-curve/historical-curve.element.metadata.json +1 -1
  58. package/elements/main-element.d.ts +1 -0
  59. package/elements/main-element.js +59 -9
  60. package/elements/main-element.metadata.json +1 -1
  61. package/elements/meter-element.d.ts +7 -1
  62. package/elements/meter-element.js +76 -7
  63. package/elements/meter-element.metadata.json +1 -1
  64. package/elements/numerical-display/numerical-display-element.d.ts +16 -3
  65. package/elements/numerical-display/numerical-display-element.js +83 -11
  66. package/elements/numerical-display/numerical-display-element.metadata.json +1 -1
  67. package/elements/per-view-variable-communicator.d.ts +3 -0
  68. package/elements/per-view-variable-communicator.js +11 -0
  69. package/elements/per-view-variable-communicator.metadata.json +1 -1
  70. package/elements/ring-graph/ring-graph-element.d.ts +13 -1
  71. package/elements/ring-graph/ring-graph-element.js +164 -3
  72. package/elements/ring-graph/ring-graph-element.metadata.json +1 -1
  73. package/elements/scroll-alarm/scroll-alarm-element.d.ts +54 -0
  74. package/elements/scroll-alarm/scroll-alarm-element.js +517 -0
  75. package/elements/scroll-alarm/scroll-alarm-element.metadata.json +1 -0
  76. package/elements/shared/graph/graph-state-element.js +0 -3
  77. package/elements/shared/text/text-element.d.ts +9 -0
  78. package/elements/shared/text/text-element.js +33 -2
  79. package/elements/shared/text/text-element.metadata.json +1 -1
  80. package/elements/shared/text/text-state-element.d.ts +25 -2
  81. package/elements/shared/text/text-state-element.js +138 -63
  82. package/elements/shared/text/text-state-element.metadata.json +1 -1
  83. package/elements/static-elements/hyperlink-element.d.ts +24 -2
  84. package/elements/static-elements/hyperlink-element.js +101 -3
  85. package/elements/static-elements/hyperlink-element.metadata.json +1 -1
  86. package/elements/static-elements/text-element.d.ts +23 -2
  87. package/elements/static-elements/text-element.js +96 -3
  88. package/elements/static-elements/text-element.metadata.json +1 -1
  89. package/elements/switch-indicator-light/bit-switch-operator.d.ts +1 -0
  90. package/elements/switch-indicator-light/bit-switch-operator.js +19 -0
  91. package/elements/switch-indicator-light/bit-switch-operator.metadata.json +1 -1
  92. package/elements/switch-indicator-light/switch-indicator-light-element.d.ts +18 -2
  93. package/elements/switch-indicator-light/switch-indicator-light-element.js +120 -25
  94. package/elements/switch-indicator-light/switch-indicator-light-element.metadata.json +1 -1
  95. package/elements/switch-indicator-light/switch-operator.d.ts +1 -0
  96. package/elements/switch-indicator-light/word-switch-operator.d.ts +1 -0
  97. package/elements/switch-indicator-light/word-switch-operator.js +6 -0
  98. package/elements/switch-indicator-light/word-switch-operator.metadata.json +1 -1
  99. package/elements/video/video-element.d.ts +4 -0
  100. package/elements/video/video-element.js +81 -21
  101. package/elements/video/video-element.metadata.json +1 -1
  102. package/elements/view-operation/view-operation.element.d.ts +23 -2
  103. package/elements/view-operation/view-operation.element.js +103 -1
  104. package/elements/view-operation/view-operation.element.metadata.json +1 -1
  105. package/elements/weather/weater-element.js +0 -1
  106. package/gui/gui-context.d.ts +12 -2
  107. package/gui/gui-host.d.ts +1 -1
  108. package/gui/gui-view.d.ts +2 -0
  109. package/gui/gui-view.js +38 -2
  110. package/gui/gui-view.metadata.json +1 -1
  111. package/gui/gui.component.d.ts +3 -0
  112. package/gui/gui.component.js +15 -2
  113. package/gui/gui.component.metadata.json +1 -1
  114. package/localization/localization.service.d.ts +7 -0
  115. package/localization/localization.service.js +10 -3
  116. package/localization/localization.service.metadata.json +1 -1
  117. package/localization/localization.service.zh_CN.js +8 -1
  118. package/localization/localization.service.zh_CN.metadata.json +1 -1
  119. package/modal/write-value/write-value-modal-args.d.ts +5 -1
  120. package/modal/write-value/write-value-modal-args.js +3 -1
  121. package/modal/write-value/write-value-modal-args.metadata.json +1 -1
  122. package/modal/write-value/write-value-modal.component.d.ts +12 -7
  123. package/modal/write-value/write-value-modal.component.html +9 -4
  124. package/modal/write-value/write-value-modal.component.js +73 -15
  125. package/modal/write-value/write-value-modal.component.metadata.json +1 -1
  126. package/model/air-quality/air-quality-info.d.ts +23 -0
  127. package/model/air-quality/air-quality-info.js +4 -0
  128. package/model/air-quality/air-quality-info.metadata.json +1 -0
  129. package/model/air-quality/air-quality.model.d.ts +7 -0
  130. package/model/air-quality/air-quality.model.js +0 -0
  131. package/model/air-quality/air-quality.model.metadata.json +1 -0
  132. package/model/alarm/alarm.model.d.ts +13 -0
  133. package/model/alarm/alarm.model.js +0 -0
  134. package/model/alarm/alarm.model.metadata.json +1 -0
  135. package/model/bar-graph/bar-graph.d.ts +4 -0
  136. package/model/base/font-setting-model.d.ts +6 -0
  137. package/model/base/font-setting-model.metadata.json +1 -1
  138. package/model/base/readable-model.d.ts +4 -0
  139. package/model/datetime-display/datetime-display.d.ts +1 -0
  140. package/model/historical-curve/historical-curve-axis-settings.d.ts +11 -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/historical-curve/historical-curve-chanel.model.d.ts +8 -0
  144. package/model/historical-curve/historical-curve.data-settings.d.ts +18 -1
  145. package/model/historical-curve/historical-curve.data-settings.metadata.json +1 -1
  146. package/model/meter/meter.d.ts +4 -0
  147. package/model/ring-graph/ring-graph.model.d.ts +8 -0
  148. package/model/scroll-alarm/scroll-alarm.model.d.ts +21 -0
  149. package/model/scroll-alarm/scroll-alarm.model.js +0 -0
  150. package/model/scroll-alarm/scroll-alarm.model.metadata.json +1 -0
  151. package/model/switch-indicator-light/bit-switch-operation.d.ts +2 -1
  152. package/model/switch-indicator-light/bit-switch-operation.js +1 -0
  153. package/model/switch-indicator-light/bit-switch-operation.metadata.json +1 -1
  154. package/model/switch-indicator-light/switch-indicator-light.d.ts +2 -0
  155. package/model/view-operation/view-operation-element.model.d.ts +7 -1
  156. package/package.json +1 -1
  157. package/public_api.js +1 -0
  158. package/remote/communication/variable/remote-variable-communicator.d.ts +22 -0
  159. package/remote/communication/variable/remote-variable-communicator.js +122 -2
  160. package/remote/communication/variable/remote-variable-communicator.metadata.json +1 -1
  161. package/remote/communication/variable/remote-variable-protocol.d.ts +5 -0
  162. package/service/index.d.ts +4 -0
  163. package/service/index.js +1 -0
  164. package/service/index.metadata.json +1 -1
  165. package/service/language.service.d.ts +37 -0
  166. package/service/language.service.js +0 -0
  167. package/service/language.service.metadata.json +1 -0
  168. package/service/released-variable/index.d.ts +1 -0
  169. package/service/released-variable/index.js +0 -0
  170. package/service/released-variable/index.metadata.json +1 -0
  171. package/service/released-variable/released-variable.service.d.ts +4 -0
  172. package/service/released-variable/released-variable.service.js +0 -0
  173. package/service/released-variable/released-variable.service.metadata.json +1 -0
  174. package/service/system-text-library.service.d.ts +76 -0
  175. package/service/system-text-library.service.js +28 -0
  176. package/service/system-text-library.service.metadata.json +1 -0
  177. package/service/text-library.service.d.ts +49 -0
  178. package/service/text-library.service.js +0 -0
  179. package/service/text-library.service.metadata.json +1 -0
  180. package/service/weather.service.d.ts +1 -0
  181. package/shared/gui-consts.d.ts +3 -0
  182. package/shared/gui-consts.js +3 -0
  183. package/shared/gui-consts.metadata.json +1 -1
  184. package/utils/data-type/fbox-data-type.service.js +40 -0
@@ -6,7 +6,11 @@ export interface VariableCommunicator {
6
6
  openVariables(variableNames: Array<string>, appId: string): Observable<Array<VariableValue>>;
7
7
  write(variableName: string, value: any): Observable<VariableValue>;
8
8
  writeWordByBit(variableName: string, index: number, value: number): Observable<VariableValue>;
9
+ requestVirtualDeviceState(): Observable<void>;
9
10
  subscribeVariableState(variableName: string): Observable<VariableState>;
10
11
  subscribeVariableStates(variableNames: Array<string>): Observable<Array<VariableState>>;
12
+ subscribeUserDeviceAlarms(appId: string): any;
13
+ registerSystemVariableHandler?(variableName: string, getValue: () => Promise<any>, setValue: (value: any) => Promise<void>): void;
14
+ notifySystemVariableChange?(variableName: string, value: any): void;
11
15
  dispose(): any;
12
16
  }
@@ -4,5 +4,8 @@ export declare class VariableValue {
4
4
  state: VariableStateEnum;
5
5
  value?: any;
6
6
  readonly timeStamp?: string;
7
- constructor(variableName: string, state: VariableStateEnum, value?: any, timeStamp?: string);
7
+ systemName?: string;
8
+ customStatus?: string;
9
+ virtualDeviceId?: number;
10
+ constructor(variableName: string, state: VariableStateEnum, value?: any, timeStamp?: string, systemName?: string, customStatus?: string, virtualDeviceId?: number);
8
11
  }
@@ -1,8 +1,11 @@
1
1
  export class VariableValue {
2
- constructor(variableName, state, value, timeStamp) {
2
+ constructor(variableName, state, value, timeStamp, systemName, customStatus, virtualDeviceId) {
3
3
  this.variableName = variableName;
4
4
  this.state = state;
5
5
  this.value = value;
6
6
  this.timeStamp = timeStamp;
7
+ this.systemName = systemName;
8
+ this.customStatus = customStatus;
9
+ this.virtualDeviceId = virtualDeviceId;
7
10
  }
8
11
  }
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"VariableValue":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"./variable-state-enum","name":"VariableStateEnum","line":3,"character":68},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"string"}]}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"VariableValue":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"./variable-state-enum","name":"VariableStateEnum","line":3,"character":68},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"number"}]}]}}}}]
@@ -0,0 +1,6 @@
1
+ import { Observable } from 'rxjs';
2
+ import { GetAlarmsArgs } from './get-alarms-args';
3
+ export interface AlarmsStore {
4
+ getHistoryAlarms(input: GetAlarmsArgs): Observable<any>;
5
+ getCurrentAlarms(input: GetAlarmsArgs): Observable<any>;
6
+ }
File without changes
@@ -0,0 +1 @@
1
+ [{"__symbolic":"module","version":4,"metadata":{"AlarmsStore":{"__symbolic":"interface"}}}]
@@ -0,0 +1,12 @@
1
+ import * as moment from 'moment';
2
+ export declare class GetAlarmsArgs {
3
+ readonly alarmNames: string[];
4
+ readonly triggeredStartTime: moment.Moment;
5
+ readonly triggeredEndTime: moment.Moment;
6
+ readonly maxResultCount: number;
7
+ readonly skipCount: number;
8
+ readonly state?: number[];
9
+ readonly sorting?: string;
10
+ constructor(alarmNames: string[], triggeredStartTime: moment.Moment, triggeredEndTime: moment.Moment, maxResultCount: number, skipCount: number, state?: number[], // 告警状态数组 (0=触发/未确认, 1=触发/已确认, 2=恢复/未确认, 3=恢复/已确认)
11
+ sorting?: string);
12
+ }
@@ -0,0 +1,13 @@
1
+ export class GetAlarmsArgs {
2
+ constructor(alarmNames, triggeredStartTime, triggeredEndTime, maxResultCount, skipCount, state, // 告警状态数组 (0=触发/未确认, 1=触发/已确认, 2=恢复/未确认, 3=恢复/已确认)
3
+ sorting // 排序字段 (如: "TriggeredTime DESC" 或 "TriggeredTime ASC")
4
+ ) {
5
+ this.alarmNames = alarmNames;
6
+ this.triggeredStartTime = triggeredStartTime;
7
+ this.triggeredEndTime = triggeredEndTime;
8
+ this.maxResultCount = maxResultCount;
9
+ this.skipCount = skipCount;
10
+ this.state = state;
11
+ this.sorting = sorting;
12
+ }
13
+ }
@@ -0,0 +1 @@
1
+ [{"__symbolic":"module","version":4,"metadata":{"GetAlarmsArgs":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"string"}]},{"__symbolic":"reference","module":"moment","name":"Moment","line":5,"character":37},{"__symbolic":"reference","module":"moment","name":"Moment","line":6,"character":35},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"number"}]},{"__symbolic":"reference","name":"string"}]}]}}}}]
@@ -0,0 +1,2 @@
1
+ export { AlarmsStore } from './alarm.store';
2
+ export { GetAlarmsArgs } from './get-alarms-args';
@@ -0,0 +1 @@
1
+ export { GetAlarmsArgs } from './get-alarms-args';
@@ -0,0 +1 @@
1
+ [{"__symbolic":"module","version":4,"metadata":{},"exports":[{"from":"./alarm.store","export":["AlarmsStore"]},{"from":"./get-alarms-args","export":["GetAlarmsArgs"]}]}]
@@ -3,6 +3,7 @@ import { ViewStore } from './view/view-store';
3
3
  import { ImageStore } from './image/image-store';
4
4
  import { HistoryDataStore } from './history-data/history-data.store';
5
5
  import { VariableStore } from './variable/variable-store';
6
+ import { AlarmsStore } from './alarm';
6
7
  /**
7
8
  * 配置仓储
8
9
  */
@@ -11,5 +12,6 @@ export interface ConfigStore {
11
12
  readonly graphStore: GraphStore;
12
13
  readonly imageStore: ImageStore;
13
14
  readonly historyDataStore: HistoryDataStore;
15
+ readonly alarmsStore: AlarmsStore;
14
16
  readonly variableStore: VariableStore;
15
17
  }
@@ -1,5 +1,14 @@
1
1
  import * as moment from 'moment';
2
2
  import { HistoricalCurveTimeRange } from './historical-curve.time-range';
3
+ /**
4
+ * 单个历史数据条目查询参数
5
+ */
6
+ export interface HistoryDataItemArgs {
7
+ /** 历史数据条目名称 */
8
+ dataItemName: string;
9
+ /** 该条目下的通道名称列表 */
10
+ channelNames: Array<string>;
11
+ }
3
12
  export declare class GetHistoryDataArgs {
4
13
  readonly dataSourceCode: number;
5
14
  readonly dataItemName: string;
@@ -8,15 +17,17 @@ export declare class GetHistoryDataArgs {
8
17
  readonly endTime: moment.Moment;
9
18
  readonly limit: number;
10
19
  readonly rangeType: HistoricalCurveTimeRange;
20
+ readonly historyDataItems?: Array<HistoryDataItemArgs>;
11
21
  /**
12
22
  * 获取历史数据参数
13
23
  * @param dataSourceCode 数据源编码
14
- * @param dataItemName 历史数据条目名称
15
- * @param channelNames 通道名称
24
+ * @param dataItemName 历史数据条目名称(单条目模式,兼容旧版)
25
+ * @param channelNames 通道名称(单条目模式,兼容旧版)
16
26
  * @param startTime 开始时间
17
27
  * @param endTime 结束时间
18
28
  * @param limit 获取数据数量,为负数则倒叙
19
29
  * @param rangeType 区间类型
30
+ * @param historyDataItems 多条目模式:多个历史数据条目及其通道配置
20
31
  */
21
- constructor(dataSourceCode: number, dataItemName: string, channelNames: Array<string>, startTime: moment.Moment, endTime: moment.Moment, limit: number, rangeType: HistoricalCurveTimeRange);
32
+ constructor(dataSourceCode: number, dataItemName: string, channelNames: Array<string>, startTime: moment.Moment, endTime: moment.Moment, limit: number, rangeType: HistoricalCurveTimeRange, historyDataItems?: Array<HistoryDataItemArgs>);
22
33
  }
@@ -2,14 +2,15 @@ export class GetHistoryDataArgs {
2
2
  /**
3
3
  * 获取历史数据参数
4
4
  * @param dataSourceCode 数据源编码
5
- * @param dataItemName 历史数据条目名称
6
- * @param channelNames 通道名称
5
+ * @param dataItemName 历史数据条目名称(单条目模式,兼容旧版)
6
+ * @param channelNames 通道名称(单条目模式,兼容旧版)
7
7
  * @param startTime 开始时间
8
8
  * @param endTime 结束时间
9
9
  * @param limit 获取数据数量,为负数则倒叙
10
10
  * @param rangeType 区间类型
11
+ * @param historyDataItems 多条目模式:多个历史数据条目及其通道配置
11
12
  */
12
- constructor(dataSourceCode, dataItemName, channelNames, startTime, endTime, limit, rangeType) {
13
+ constructor(dataSourceCode, dataItemName, channelNames, startTime, endTime, limit, rangeType, historyDataItems) {
13
14
  this.dataSourceCode = dataSourceCode;
14
15
  this.dataItemName = dataItemName;
15
16
  this.channelNames = channelNames;
@@ -17,5 +18,6 @@ export class GetHistoryDataArgs {
17
18
  this.endTime = endTime;
18
19
  this.limit = limit;
19
20
  this.rangeType = rangeType;
21
+ this.historyDataItems = historyDataItems;
20
22
  }
21
23
  }
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"GetHistoryDataArgs":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"string"}]},{"__symbolic":"reference","module":"moment","name":"Moment","line":17,"character":28},{"__symbolic":"reference","module":"moment","name":"Moment","line":18,"character":26},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","module":"./historical-curve.time-range","name":"HistoricalCurveTimeRange","line":20,"character":28}]}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"HistoryDataItemArgs":{"__symbolic":"interface"},"GetHistoryDataArgs":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"moment","name":"Moment","line":28,"character":28},{"__symbolic":"reference","module":"moment","name":"Moment","line":29,"character":26},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","module":"./historical-curve.time-range","name":"HistoricalCurveTimeRange","line":31,"character":28},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}}}}]
@@ -3,5 +3,11 @@ export declare class HistoryDataModel {
3
3
  readonly error: string;
4
4
  readonly isUnbind: boolean;
5
5
  readonly values: Array<HistoryDataValue>;
6
- constructor(error: string, isUnbind: boolean, values: Array<HistoryDataValue>);
6
+ readonly historyDataItems?: Array<HistoryDataItemModel>;
7
+ constructor(error: string, isUnbind: boolean, values: Array<HistoryDataValue>, historyDataItems?: Array<HistoryDataItemModel>);
8
+ }
9
+ export declare class HistoryDataItemModel {
10
+ readonly itemName: string;
11
+ readonly rows: Array<HistoryDataValue>;
12
+ constructor(itemName: string, rows: Array<HistoryDataValue>);
7
13
  }
@@ -1,7 +1,15 @@
1
1
  export class HistoryDataModel {
2
- constructor(error, isUnbind, values) {
2
+ constructor(error, isUnbind, values, historyDataItems // 新增:多条目独立数据
3
+ ) {
3
4
  this.error = error;
4
5
  this.isUnbind = isUnbind;
5
6
  this.values = values;
7
+ this.historyDataItems = historyDataItems;
8
+ }
9
+ }
10
+ export class HistoryDataItemModel {
11
+ constructor(itemName, rows) {
12
+ this.itemName = itemName;
13
+ this.rows = rows;
6
14
  }
7
15
  }
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"HistoryDataModel":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"boolean"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","module":"./history-data-value","name":"HistoryDataValue","line":3,"character":91}]}]}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"HistoryDataModel":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"boolean"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","module":"./history-data-value","name":"HistoryDataValue","line":6,"character":31}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","module":"./history-data-value","name":"HistoryDataValue","line":6,"character":31}]}]}]}},"HistoryDataItemModel":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","module":"./history-data-value","name":"HistoryDataValue","line":6,"character":31}]}]}]}}}}]
@@ -1,4 +1,4 @@
1
1
  export { HistoryDataStore } from './history-data.store';
2
- export { HistoryDataModel } from './history-data.model';
2
+ export { HistoryDataModel, HistoryDataItemModel } from './history-data.model';
3
3
  export { HistoryDataValue } from './history-data-value';
4
4
  export { GetHistoryDataArgs } from './get-history-data-args';
@@ -1,3 +1,3 @@
1
- export { HistoryDataModel } from './history-data.model';
1
+ export { HistoryDataModel, HistoryDataItemModel } from './history-data.model';
2
2
  export { HistoryDataValue } from './history-data-value';
3
3
  export { GetHistoryDataArgs } from './get-history-data-args';
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{},"exports":[{"from":"./history-data.store","export":["HistoryDataStore"]},{"from":"./history-data.model","export":["HistoryDataModel"]},{"from":"./history-data-value","export":["HistoryDataValue"]},{"from":"./get-history-data-args","export":["GetHistoryDataArgs"]}]}]
1
+ [{"__symbolic":"module","version":4,"metadata":{},"exports":[{"from":"./history-data.store","export":["HistoryDataStore"]},{"from":"./history-data.model","export":["HistoryDataModel","HistoryDataItemModel"]},{"from":"./history-data-value","export":["HistoryDataValue"]},{"from":"./get-history-data-args","export":["GetHistoryDataArgs"]}]}]
package/config/index.d.ts CHANGED
@@ -8,3 +8,4 @@ export { ViewModel } from './view/view.model';
8
8
  export { ImageStore } from './image/image-store';
9
9
  export * from './history-data';
10
10
  export * from './variable';
11
+ export * from './alarm';
package/config/index.js CHANGED
@@ -4,3 +4,4 @@ export { GraphType } from './graph/graph-type';
4
4
  export { ViewModel } from './view/view.model';
5
5
  export * from './history-data';
6
6
  export * from './variable';
7
+ export * from './alarm';
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{},"exports":[{"from":"./config-store","export":["ConfigStore"]},{"from":"./graph/graph","export":["Graph"]},{"from":"./graph/graph-result","export":["GraphResult"]},{"from":"./graph/graph-type","export":["GraphType"]},{"from":"./graph/graph-store","export":["GraphStore"]},{"from":"./view/view-store","export":["ViewStore"]},{"from":"./view/view.model","export":["ViewModel"]},{"from":"./image/image-store","export":["ImageStore"]},{"from":"./history-data"},{"from":"./variable"}]}]
1
+ [{"__symbolic":"module","version":4,"metadata":{},"exports":[{"from":"./config-store","export":["ConfigStore"]},{"from":"./graph/graph","export":["Graph"]},{"from":"./graph/graph-result","export":["GraphResult"]},{"from":"./graph/graph-type","export":["GraphType"]},{"from":"./graph/graph-store","export":["GraphStore"]},{"from":"./view/view-store","export":["ViewStore"]},{"from":"./view/view.model","export":["ViewModel"]},{"from":"./image/image-store","export":["ImageStore"]},{"from":"./history-data"},{"from":"./variable"},{"from":"./alarm"}]}]
@@ -0,0 +1,31 @@
1
+ import { Injector } from '@angular/core';
2
+ import { AirQualityModel } from '../../model/air-quality/air-quality.model';
3
+ import { ConditionalDisplayElement } from '../base/conditional-display-element';
4
+ import { PermissionChecker } from '../../service';
5
+ import { VariableCommunicator } from '../../communication/variable';
6
+ import { VariableStore } from '../../config/variable';
7
+ import { WeatherService } from '../../service';
8
+ export declare class AirQualityElement extends ConditionalDisplayElement {
9
+ private readonly weatherService;
10
+ model: AirQualityModel;
11
+ timer: any;
12
+ private readonly localization;
13
+ constructor(element: HTMLElement, injector: Injector, permissionChecker: PermissionChecker, variableCommunicator: VariableCommunicator, variableStore: VariableStore, weatherService: WeatherService, signalRAppId: string);
14
+ dispose(): void;
15
+ initAirQualityInfo(): void;
16
+ private handleData;
17
+ private handleNotSupported;
18
+ private handleGettingAddress;
19
+ private handleNoAddress;
20
+ private handleUnusualCommon;
21
+ private buildBackgroudRect;
22
+ private buildRectBackgroundForAqi;
23
+ private buildUnusualTipIcon;
24
+ getUnusualIconPath(): string;
25
+ private buildUnusualTipText;
26
+ private buildAirQualityText;
27
+ private buildLocGroup;
28
+ getLocPath(): string;
29
+ private appendAirQualitySvg;
30
+ clear(): void;
31
+ }
@@ -0,0 +1,194 @@
1
+ import { ConditionalDisplayElement } from '../base/conditional-display-element';
2
+ import * as d3 from 'd3-selection';
3
+ import { LOCALIZATION } from '../../localization';
4
+ export class AirQualityElement extends ConditionalDisplayElement {
5
+ constructor(element, injector, permissionChecker, variableCommunicator, variableStore, weatherService, signalRAppId) {
6
+ super(element, permissionChecker, variableCommunicator, variableStore, signalRAppId);
7
+ this.weatherService = weatherService;
8
+ this.localization = injector.get(LOCALIZATION);
9
+ this.initAirQualityInfo();
10
+ this.timer = setInterval(() => this.initAirQualityInfo(), 1000 * 60 * 60);
11
+ }
12
+ dispose() {
13
+ clearInterval(this.timer);
14
+ }
15
+ initAirQualityInfo() {
16
+ this.clear();
17
+ this.weatherService.getAirQualityInfo().then(airQuality => {
18
+ const airQualityDto = airQuality;
19
+ if (!airQualityDto.supported) {
20
+ this.handleNotSupported();
21
+ return;
22
+ }
23
+ if (airQualityDto.gettingAddress) {
24
+ this.handleGettingAddress();
25
+ return;
26
+ }
27
+ if (!airQualityDto.hasAddress) {
28
+ this.handleNoAddress();
29
+ return;
30
+ }
31
+ this.handleData(airQualityDto.airQuality);
32
+ }).catch(() => {
33
+ this.handleNotSupported();
34
+ });
35
+ }
36
+ handleData(airQuality) {
37
+ const fontColor = this.model.stroke ? this.model.stroke : '#FFFFFF';
38
+ const backgroundColor = this.model.fill && this.model.fill || '#86A7C5';
39
+ const airQualitySvg = d3.create('svg');
40
+ this.buildBackgroudRect(airQualitySvg, backgroundColor);
41
+ this.buildLocGroup(airQualitySvg, airQuality.city, fontColor);
42
+ this.buildAirQualityText(airQualitySvg, 130, 55, airQuality.aqi, fontColor, 53);
43
+ this.buildAirQualityText(airQualitySvg, 220, 28, '空气质量', fontColor);
44
+ this.buildRectBackgroundForAqi(airQualitySvg, airQuality.level);
45
+ this.buildAirQualityText(airQualitySvg, 220, 49, airQuality.category, fontColor);
46
+ this.buildAirQualityText(airQualitySvg, 30, 75, 'PM2.5', fontColor, 12, 0.8);
47
+ this.buildAirQualityText(airQualitySvg, 30, 95, airQuality.pm25, fontColor, 15);
48
+ this.buildAirQualityText(airQualitySvg, 80, 75, 'PM10', fontColor, 12, 0.8);
49
+ this.buildAirQualityText(airQualitySvg, 80, 95, airQuality.pm10, fontColor, 15);
50
+ this.buildAirQualityText(airQualitySvg, 130, 75, 'NO2', fontColor, 12, 0.8);
51
+ this.buildAirQualityText(airQualitySvg, 130, 95, airQuality.no2, fontColor, 15);
52
+ this.buildAirQualityText(airQualitySvg, 175, 75, 'SO2', fontColor, 12, 0.8);
53
+ this.buildAirQualityText(airQualitySvg, 175, 95, airQuality.so2, fontColor, 15);
54
+ this.buildAirQualityText(airQualitySvg, 215, 75, 'CO', fontColor, 12, 0.8);
55
+ this.buildAirQualityText(airQualitySvg, 215, 95, airQuality.co, fontColor, 15);
56
+ this.buildAirQualityText(airQualitySvg, 250, 75, 'O3', fontColor, 12, 0.8);
57
+ this.buildAirQualityText(airQualitySvg, 250, 95, airQuality.o3, fontColor, 15);
58
+ this.appendAirQualitySvg(airQualitySvg);
59
+ }
60
+ handleNotSupported() {
61
+ this.handleUnusualCommon(this.localization.airQualityNotSupport);
62
+ }
63
+ handleGettingAddress() {
64
+ this.handleUnusualCommon(this.localization.airQualityNotAvailable);
65
+ }
66
+ handleNoAddress() {
67
+ this.handleUnusualCommon(this.localization.airQualityNotAddress);
68
+ }
69
+ handleUnusualCommon(text) {
70
+ const airQualitySvg = d3.create('svg');
71
+ this.buildBackgroudRect(airQualitySvg, '#081625', '0.5');
72
+ this.buildUnusualTipIcon(airQualitySvg, text.length);
73
+ this.buildUnusualTipText(airQualitySvg, text);
74
+ this.appendAirQualitySvg(airQualitySvg);
75
+ }
76
+ buildBackgroudRect(airQualitySvg, backgroundColor, opacity = '1') {
77
+ airQualitySvg.append('rect')
78
+ .attr('x', '0')
79
+ .attr('y', '0')
80
+ .attr('rx', '2')
81
+ .attr('width', '280')
82
+ .attr('height', '105')
83
+ .attr('fill', backgroundColor)
84
+ .attr('fill-opacity', opacity);
85
+ }
86
+ buildRectBackgroundForAqi(airQualitySvg, level, opacity = '1') {
87
+ let backgroundColor;
88
+ if (level >= 0 && level <= 50) {
89
+ backgroundColor = '#50DF56';
90
+ }
91
+ else if (level >= 51 && level <= 100) {
92
+ backgroundColor = '#FBCD1C';
93
+ }
94
+ else if (level >= 101 && level <= 150) {
95
+ backgroundColor = '#FF9900';
96
+ }
97
+ else if (level >= 151 && level <= 200) {
98
+ backgroundColor = '#FF3232';
99
+ }
100
+ else if (level >= 201 && level <= 300) {
101
+ backgroundColor = '#F403B5';
102
+ }
103
+ else if (level > 300) {
104
+ backgroundColor = '#A10E0E';
105
+ }
106
+ airQualitySvg.append('rect')
107
+ .attr('x', '195')
108
+ .attr('y', '35')
109
+ .attr('rx', '5')
110
+ .attr('width', '50')
111
+ .attr('height', '20')
112
+ .attr('fill', backgroundColor)
113
+ .attr('fill-opacity', opacity);
114
+ }
115
+ buildUnusualTipIcon(airQualitySvg, length) {
116
+ airQualitySvg.append('svg')
117
+ .attr('x', length > 9 ? (268 - 7 * length - 8 - 42) / 2 : '44')
118
+ .attr('y', '23')
119
+ .attr('width', '42')
120
+ .attr('height', '34')
121
+ .attr('viewBox', '0 0 200 160')
122
+ .html(this.getUnusualIconPath);
123
+ }
124
+ getUnusualIconPath() {
125
+ return `<g>
126
+ <ellipse class="st2" cx="74.6" cy="72.3" rx="36.4" ry="36.3" fill="#EFCA30"/>
127
+ <path class="st2" fill="#EFCA30" d="M74.5,24.5C74.6,24.5,74.6,24.5,74.5,24.5c3.7,0,5.7-2,5.7-5.5V5.5C80.2,2,78,0,74.6,0C71,0,69,2.1,69,5.5V19
128
+ C69,22.3,71,24.4,74.5,24.5L74.5,24.5z"/>
129
+ <path class="st2" fill="#EFCA30" d="M37.2,28.5l-6.9-6.7c-1.3-1.3-2.7-1.9-4.1-1.9s-2.8,0.6-4.1,1.9c-1.3,1.3-1.9,2.6-1.9,4s0.6,2.7,1.9,4
130
+ l6.4,6.1c0.5,0.5,1.2,1.1,1.9,1.4c1.2,0.5,2,0.7,2.8,0.7c0.6,0,1.3-0.2,2-0.4c1.4-0.5,2.7-1.5,3.3-2.8c0.3-0.7,0.5-1.5,0.5-2.2
131
+ C39.1,31.2,38.5,29.8,37.2,28.5L37.2,28.5z"/>
132
+ <path class="st2" fill="#EFCA30" d="M112.5,36.9c1.6,0.7,2.7,1.2,3.7,1.2s2-0.4,3.6-1.2c0.2-0.1,0.4-0.2,0.5-0.4l6.9-6.7c1.3-1.3,1.9-2.6,1.9-4
133
+ s-0.6-2.7-1.9-4c-1.3-1.3-2.7-1.9-4.1-1.9s-2.8,0.6-4.1,1.9l-6.9,6.7c-1.3,1.3-1.9,2.6-1.9,4c0,1.4,0.6,2.7,1.9,4
134
+ C112.1,36.6,112.3,36.8,112.5,36.9L112.5,36.9z"/>
135
+ <path class="st2" fill="#EFCA30" d="M25.1,73.2C25.1,73.1,25.1,73.1,25.1,73.2c0-3.6-2-5.6-5.6-5.6H5.6C2,67.6,0,69.7,0,73.1
136
+ c0,3.4,2.2,5.5,5.6,5.5h13.8C22.7,78.6,24.9,76.6,25.1,73.2L25.1,73.2z"/>
137
+ <path class="st2" fill="#EFCA30" d="M33.2,107.6c-1.4,0-2.8,0.6-4.1,1.9l-6.9,6.7c-1.3,1.3-1.9,2.6-1.9,4s0.6,2.7,1.9,4c0.2,0.2,0.3,0.3,0.5,0.4
138
+ c1.6,0.7,2.7,1.2,3.7,1.2c0.5,0,1.5-0.1,3.6-1.2c0.2-0.1,0.4-0.2,0.5-0.4l6.9-6.7c2.6-2.5,2.6-5.6,0-8.1
139
+ C36,108.3,34.6,107.6,33.2,107.6L33.2,107.6z"/>
140
+ </g>
141
+ <path class="st3" fill="#FFFFFF" d="M68.8,160h99.3c17.9-2,31.9-17.1,31.9-35.5c0-18.3-13.8-33.3-31.5-35.4c-8-17-25.2-28.9-45.3-28.9
142
+ c-22.4,0-41.4,14.7-47.7,35c-1.1-0.1-2.2-0.2-3.4-0.2c-18,0-32.6,14.6-32.6,32.6C39.5,144.5,52.3,158.3,68.8,160z"/>`;
143
+ }
144
+ buildUnusualTipText(airQualitySvg, text) {
145
+ const length = text.length;
146
+ airQualitySvg.append('text')
147
+ .attr('x', length > 9 ? (268 - 7 * length - 8 - 42) / 2 + 42 + 8 : '94')
148
+ .attr('y', '46')
149
+ .attr('font-size', 14)
150
+ .attr('font-anchor', 'middle')
151
+ .attr('fill', '#FFFFFF')
152
+ .attr('dominant-baseline', 'central')
153
+ .text(text);
154
+ }
155
+ buildAirQualityText(airQualitySvg, x, y, text, fontColor, size = 12, opacity = 1) {
156
+ airQualitySvg.append('text')
157
+ .attr('x', x)
158
+ .attr('y', y)
159
+ .attr('font-size', size)
160
+ .attr('text-anchor', 'middle')
161
+ .attr('fill', fontColor)
162
+ .attr('opacity', opacity)
163
+ .text(text);
164
+ }
165
+ buildLocGroup(airQualitySvg, location, fontColor) {
166
+ airQualitySvg.append('svg')
167
+ .attr('x', '14')
168
+ .attr('y', '10')
169
+ .attr('width', '11')
170
+ .attr('height', '15')
171
+ .attr('viewBox', '0 0 156 200')
172
+ .append('path')
173
+ .attr('fill', fontColor)
174
+ .attr('d', this.getLocPath);
175
+ airQualitySvg.append('text')
176
+ .attr('x', '30')
177
+ .attr('y', '22')
178
+ .attr('font-size', '12')
179
+ .attr('fill', fontColor)
180
+ .text(location);
181
+ }
182
+ getLocPath() {
183
+ return `M78,0C35,0,0,33.3,0,74.3c0,50.8,55.5,105.4,72.6,120.9l5.3,4.8l5.3-4.7c0.7-0.6,72.5-64.6,72.8-121v0
184
+ C156,33.3,121,0,78,0z M78,178.6c-17.8-17.1-62.1-63.9-62.1-104.4C15.8,42,43.7,15.7,78,15.7c34.3,0,62.2,26.3,62.2,58.5
185
+ C140,111.8,99.2,158.4,78,178.6z M78,40.4c-17.8,0-32.4,14.4-32.4,32.2s14.5,32.2,32.4,32.2s32.4-14.4,32.4-32.2S95.8,
186
+ 40.4,78,40.4z M78,89.1c-9.1,0-16.5-7.4-16.5-16.5S68.9,56.2,78,56.2s16.5,7.4,16.5,16.5S87.1,89.1,78,89.1z`;
187
+ }
188
+ appendAirQualitySvg(airQualitySvg) {
189
+ this.rootElement.append(() => airQualitySvg.node());
190
+ }
191
+ clear() {
192
+ this.rootElement.selectAll('*').remove();
193
+ }
194
+ }
@@ -0,0 +1 @@
1
+ [{"__symbolic":"module","version":4,"metadata":{"AirQualityElement":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../base/conditional-display-element","name":"ConditionalDisplayElement","line":11,"character":39},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":18,"character":25,"context":{"typeName":"HTMLElement"}},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":19,"character":18},{"__symbolic":"reference","module":"../../service","name":"PermissionChecker","line":20,"character":27},{"__symbolic":"reference","module":"../../communication/variable","name":"VariableCommunicator","line":21,"character":30},{"__symbolic":"reference","module":"../../config/variable","name":"VariableStore","line":22,"character":23},{"__symbolic":"reference","module":"../../service","name":"WeatherService","line":23,"character":41},{"__symbolic":"reference","name":"string"}]}],"dispose":[{"__symbolic":"method"}],"initAirQualityInfo":[{"__symbolic":"method"}],"handleData":[{"__symbolic":"method"}],"handleNotSupported":[{"__symbolic":"method"}],"handleGettingAddress":[{"__symbolic":"method"}],"handleNoAddress":[{"__symbolic":"method"}],"handleUnusualCommon":[{"__symbolic":"method"}],"buildBackgroudRect":[{"__symbolic":"method"}],"buildRectBackgroundForAqi":[{"__symbolic":"method"}],"buildUnusualTipIcon":[{"__symbolic":"method"}],"getUnusualIconPath":[{"__symbolic":"method"}],"buildUnusualTipText":[{"__symbolic":"method"}],"buildAirQualityText":[{"__symbolic":"method"}],"buildLocGroup":[{"__symbolic":"method"}],"getLocPath":[{"__symbolic":"method"}],"appendAirQualitySvg":[{"__symbolic":"method"}],"clear":[{"__symbolic":"method"}]}}}}]
@@ -0,0 +1,69 @@
1
+ import { Injector } from '@angular/core';
2
+ import { PermissionChecker, SystemTextLibraryService, LanguageService } from '../../service';
3
+ import { VariableCommunicator } from '../../communication';
4
+ import { ConditionalDisplayElement } from '../base/conditional-display-element';
5
+ import { AlarmModel } from '../../model/alarm/alarm.model';
6
+ import { AlarmsStore, VariableStore } from '../../config';
7
+ import { GuiContext } from '../../gui/gui-context';
8
+ export declare class AlarmElement extends ConditionalDisplayElement {
9
+ private readonly alarmsStore;
10
+ private readonly systemTextLibraryService?;
11
+ private readonly languageService?;
12
+ private readonly guiContext?;
13
+ readonly model: AlarmModel;
14
+ private readonly logger;
15
+ readonly variableCommunicator: VariableCommunicator;
16
+ private timePeriods;
17
+ private languageChangeSubscription?;
18
+ private elementStatus;
19
+ private element;
20
+ private refreshIntervalId;
21
+ private readonly displayOption;
22
+ private alarmNames;
23
+ private startTime;
24
+ private endTime;
25
+ private currentTimePeriod;
26
+ private alarmList;
27
+ private currentAlarmList;
28
+ private page;
29
+ private totalCount;
30
+ private pageSize;
31
+ private getAlarmDataId;
32
+ constructor(element: HTMLElement, injector: Injector, permissionChecker: PermissionChecker, variableCommunicator: VariableCommunicator, variableStore: VariableStore, alarmsStore: AlarmsStore, signalRAppId: string, systemTextLibraryService?: SystemTextLibraryService, languageService?: LanguageService, guiContext?: GuiContext);
33
+ dispose(): void;
34
+ /**
35
+ * 订阅语种变化事件
36
+ */
37
+ private subscribeLanguageChange;
38
+ /**
39
+ * 更新语种相关的文案(表头和时间段选择器)
40
+ */
41
+ private updateLanguageTexts;
42
+ /**
43
+ * 获取当前语种的 culture 代码
44
+ */
45
+ private getCurrentCulture;
46
+ /**
47
+ * 根据列索引获取表头翻译(从系统文本库获取多语种翻译)
48
+ * 固定4项表头,按列索引顺序:告警名称、告警内容、告警等级、时间
49
+ */
50
+ private getHeaderTextByColumn;
51
+ private getValidTimePeriods;
52
+ /**
53
+ * 获取时间段文案(从系统文本库获取多语种翻译)
54
+ */
55
+ private getTimePeriodText;
56
+ private getAlarmData;
57
+ private renderElement;
58
+ private renderOperationArea;
59
+ private updateTimeRange;
60
+ private updateQueryTimeRange;
61
+ private loadFirstPage;
62
+ private loadNextPage;
63
+ private loadPreviousPage;
64
+ private loadLastPage;
65
+ private setStatusAsNormal;
66
+ private setStatusAsLoading;
67
+ private renderStatus;
68
+ private clearStatus;
69
+ }