@flexem/fc-gui 3.0.0-alpha.7 → 3.0.0-alpha.70

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 (227) hide show
  1. package/CHANGELOG.md +296 -0
  2. package/bundles/@flexem/fc-gui.umd.js +18535 -17021
  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 +3 -2
  7. package/config/alarm/alarm.store.d.ts +6 -0
  8. package/config/alarm/alarm.store.js +0 -0
  9. package/config/alarm/alarm.store.metadata.json +1 -0
  10. package/config/alarm/get-alarms-args.d.ts +9 -0
  11. package/config/alarm/get-alarms-args.js +9 -0
  12. package/config/alarm/get-alarms-args.metadata.json +1 -0
  13. package/config/alarm/index.d.ts +2 -0
  14. package/config/alarm/index.js +1 -0
  15. package/config/alarm/index.metadata.json +1 -0
  16. package/config/config-store.d.ts +2 -0
  17. package/config/index.d.ts +1 -0
  18. package/config/index.js +1 -0
  19. package/config/index.metadata.json +1 -1
  20. package/elements/air-quality/air-quality-element.d.ts +31 -0
  21. package/elements/air-quality/air-quality-element.js +194 -0
  22. package/elements/air-quality/air-quality-element.metadata.json +1 -0
  23. package/elements/alarm/alarm-element.d.ts +38 -0
  24. package/elements/alarm/alarm-element.js +323 -0
  25. package/elements/alarm/alarm-element.metadata.json +1 -0
  26. package/elements/alarm/alarm-state-enum.d.ts +4 -0
  27. package/elements/alarm/alarm-state-enum.js +5 -0
  28. package/elements/alarm/alarm-state-enum.metadata.json +1 -0
  29. package/elements/bar-graph-element.d.ts +8 -2
  30. package/elements/bar-graph-element.js +72 -6
  31. package/elements/bar-graph-element.metadata.json +1 -1
  32. package/elements/base/base-element.d.ts +2 -1
  33. package/elements/base/base-element.js +2 -1
  34. package/elements/base/base-element.metadata.json +1 -1
  35. package/elements/base/conditional-control-element.d.ts +1 -1
  36. package/elements/base/conditional-control-element.js +3 -3
  37. package/elements/base/conditional-control-element.metadata.json +1 -1
  38. package/elements/base/conditional-display-element.d.ts +1 -1
  39. package/elements/base/conditional-display-element.js +4 -4
  40. package/elements/base/conditional-display-element.metadata.json +1 -1
  41. package/elements/base/conditional-dynamic-display-element.d.ts +1 -1
  42. package/elements/base/conditional-dynamic-display-element.js +3 -3
  43. package/elements/base/conditional-dynamic-display-element.metadata.json +1 -1
  44. package/elements/base/conditional-enable-element.d.ts +1 -1
  45. package/elements/base/conditional-enable-element.js +4 -4
  46. package/elements/base/conditional-enable-element.metadata.json +1 -1
  47. package/elements/base/readable-element.d.ts +7 -2
  48. package/elements/base/readable-element.js +33 -4
  49. package/elements/base/readable-element.metadata.json +1 -1
  50. package/elements/base/state-control-element.d.ts +1 -1
  51. package/elements/base/state-control-element.js +2 -2
  52. package/elements/base/state-control-element.metadata.json +1 -1
  53. package/elements/character-display/character-display-element.d.ts +1 -1
  54. package/elements/character-display/character-display-element.js +2 -2
  55. package/elements/character-display/character-display-element.metadata.json +1 -1
  56. package/elements/datetime-display/datetime-display-element.d.ts +1 -1
  57. package/elements/datetime-display/datetime-display-element.js +2 -2
  58. package/elements/datetime-display/datetime-display-element.metadata.json +1 -1
  59. package/elements/historical-curve/historical-curve.element.d.ts +1 -1
  60. package/elements/historical-curve/historical-curve.element.js +104 -15
  61. package/elements/historical-curve/historical-curve.element.metadata.json +1 -1
  62. package/elements/main-element.d.ts +2 -1
  63. package/elements/main-element.js +48 -26
  64. package/elements/main-element.metadata.json +1 -1
  65. package/elements/meter-element.d.ts +8 -2
  66. package/elements/meter-element.js +78 -9
  67. package/elements/meter-element.metadata.json +1 -1
  68. package/elements/numerical-display/numerical-display-element.d.ts +8 -2
  69. package/elements/numerical-display/numerical-display-element.js +47 -11
  70. package/elements/numerical-display/numerical-display-element.metadata.json +1 -1
  71. package/elements/per-view-variable-communicator.d.ts +4 -2
  72. package/elements/per-view-variable-communicator.js +12 -4
  73. package/elements/per-view-variable-communicator.metadata.json +1 -1
  74. package/elements/pipe/pipe-element.d.ts +1 -1
  75. package/elements/pipe/pipe-element.js +2 -2
  76. package/elements/pipe/pipe-element.metadata.json +1 -1
  77. package/elements/ring-graph/ring-graph-element.d.ts +11 -2
  78. package/elements/ring-graph/ring-graph-element.js +108 -5
  79. package/elements/ring-graph/ring-graph-element.metadata.json +1 -1
  80. package/elements/shared/graph/graph-state-element.js +0 -3
  81. package/elements/shared/text/text-element.js +13 -2
  82. package/elements/shared/text/text-state-element.js +1 -1
  83. package/elements/static-elements/hyperlink-element.d.ts +1 -1
  84. package/elements/static-elements/hyperlink-element.js +2 -2
  85. package/elements/static-elements/hyperlink-element.metadata.json +1 -1
  86. package/elements/static-elements/image-element.d.ts +1 -1
  87. package/elements/static-elements/image-element.js +2 -2
  88. package/elements/static-elements/image-element.metadata.json +1 -1
  89. package/elements/static-elements/text-element.d.ts +1 -1
  90. package/elements/static-elements/text-element.js +2 -2
  91. package/elements/static-elements/text-element.metadata.json +1 -1
  92. package/elements/switch-indicator-light/bit-indicator-light-operator.d.ts +1 -1
  93. package/elements/switch-indicator-light/bit-indicator-light-operator.js +4 -4
  94. package/elements/switch-indicator-light/bit-switch-operator.d.ts +3 -1
  95. package/elements/switch-indicator-light/bit-switch-operator.js +22 -2
  96. package/elements/switch-indicator-light/bit-switch-operator.metadata.json +1 -1
  97. package/elements/switch-indicator-light/indicator-light-operator.d.ts +1 -1
  98. package/elements/switch-indicator-light/switch-indicator-light-element.d.ts +9 -1
  99. package/elements/switch-indicator-light/switch-indicator-light-element.js +97 -28
  100. package/elements/switch-indicator-light/switch-indicator-light-element.metadata.json +1 -1
  101. package/elements/switch-indicator-light/switch-operator.d.ts +1 -0
  102. package/elements/switch-indicator-light/word-indicator-light-operator.d.ts +1 -1
  103. package/elements/switch-indicator-light/word-indicator-light-operator.js +5 -5
  104. package/elements/switch-indicator-light/word-switch-operator.d.ts +3 -1
  105. package/elements/switch-indicator-light/word-switch-operator.js +9 -2
  106. package/elements/switch-indicator-light/word-switch-operator.metadata.json +1 -1
  107. package/elements/table/table-element.d.ts +1 -1
  108. package/elements/table/table-element.js +2 -2
  109. package/elements/table/table-element.metadata.json +1 -1
  110. package/elements/vector-graphics/ellipse-element.d.ts +1 -1
  111. package/elements/vector-graphics/ellipse-element.js +2 -2
  112. package/elements/vector-graphics/ellipse-element.metadata.json +1 -1
  113. package/elements/vector-graphics/poly-line-element.d.ts +1 -1
  114. package/elements/vector-graphics/poly-line-element.js +2 -2
  115. package/elements/vector-graphics/poly-line-element.metadata.json +1 -1
  116. package/elements/vector-graphics/polygon-element.d.ts +1 -1
  117. package/elements/vector-graphics/polygon-element.js +2 -2
  118. package/elements/vector-graphics/polygon-element.metadata.json +1 -1
  119. package/elements/vector-graphics/rectangle-element.d.ts +1 -1
  120. package/elements/vector-graphics/rectangle-element.js +2 -2
  121. package/elements/vector-graphics/rectangle-element.metadata.json +1 -1
  122. package/elements/vector-graphics/sector-element.d.ts +1 -1
  123. package/elements/vector-graphics/sector-element.js +2 -2
  124. package/elements/vector-graphics/sector-element.metadata.json +1 -1
  125. package/elements/vector-graphics/straight-line-element.d.ts +1 -1
  126. package/elements/vector-graphics/straight-line-element.js +2 -2
  127. package/elements/vector-graphics/straight-line-element.metadata.json +1 -1
  128. package/elements/video/video-element.d.ts +1 -2
  129. package/elements/video/video-element.js +53 -54
  130. package/elements/video/video-element.metadata.json +1 -1
  131. package/elements/view-operation/view-operation.element.d.ts +1 -1
  132. package/elements/view-operation/view-operation.element.js +2 -2
  133. package/elements/view-operation/view-operation.element.metadata.json +1 -1
  134. package/elements/weather/weater-element.d.ts +1 -1
  135. package/elements/weather/weater-element.js +2 -3
  136. package/elements/weather/weater-element.metadata.json +1 -1
  137. package/gui/gui-context.d.ts +2 -1
  138. package/gui/gui-host.d.ts +1 -1
  139. package/gui/gui-view.d.ts +1 -0
  140. package/gui/gui-view.js +3 -2
  141. package/gui/gui-view.metadata.json +1 -1
  142. package/gui/gui.component.d.ts +3 -0
  143. package/gui/gui.component.js +15 -2
  144. package/gui/gui.component.metadata.json +1 -1
  145. package/localization/localization.service.d.ts +7 -0
  146. package/localization/localization.service.js +8 -1
  147. package/localization/localization.service.metadata.json +1 -1
  148. package/localization/localization.service.zh_CN.js +8 -1
  149. package/localization/localization.service.zh_CN.metadata.json +1 -1
  150. package/modal/write-value/write-value-modal-args.d.ts +4 -1
  151. package/modal/write-value/write-value-modal-args.js +3 -1
  152. package/modal/write-value/write-value-modal-args.metadata.json +1 -1
  153. package/modal/write-value/write-value-modal.component.d.ts +9 -7
  154. package/modal/write-value/write-value-modal.component.html +5 -2
  155. package/modal/write-value/write-value-modal.component.js +39 -22
  156. package/modal/write-value/write-value-modal.component.metadata.json +1 -1
  157. package/model/air-quality/air-quality-info.d.ts +23 -0
  158. package/model/air-quality/air-quality-info.js +4 -0
  159. package/model/air-quality/air-quality-info.metadata.json +1 -0
  160. package/model/air-quality/air-quality.model.d.ts +7 -0
  161. package/model/air-quality/air-quality.model.js +0 -0
  162. package/model/air-quality/air-quality.model.metadata.json +1 -0
  163. package/model/alarm/alarm.model.d.ts +13 -0
  164. package/model/alarm/alarm.model.js +0 -0
  165. package/model/alarm/alarm.model.metadata.json +1 -0
  166. package/model/bar-graph/bar-graph.d.ts +4 -0
  167. package/model/base/readable-model.d.ts +4 -0
  168. package/model/historical-curve/historical-curve-axis-settings.d.ts +7 -0
  169. package/model/historical-curve/historical-curve-axis-settings.js +5 -0
  170. package/model/historical-curve/historical-curve-axis-settings.metadata.json +1 -1
  171. package/model/meter/meter.d.ts +4 -0
  172. package/model/numerical-display/numerical-display.d.ts +1 -0
  173. package/model/ring-graph/ring-graph.model.d.ts +8 -0
  174. package/model/shared/condition/bit-condition-item-observer.d.ts +1 -1
  175. package/model/shared/condition/bit-condition-item-observer.js +4 -4
  176. package/model/shared/condition/condition-items-result-observer.d.ts +1 -1
  177. package/model/shared/condition/condition-items-result-observer.js +22 -12
  178. package/model/shared/condition/condition-items-result-observer.metadata.json +1 -1
  179. package/model/shared/condition/convert-condition-model.d.ts +5 -0
  180. package/model/shared/condition/convert-condition-model.js +0 -0
  181. package/model/shared/condition/convert-condition-model.metadata.json +1 -0
  182. package/model/shared/condition/relation-condition-result.d.ts +2 -1
  183. package/model/shared/condition/relation-condition-result.js +2 -1
  184. package/model/shared/condition/relation-condition-result.metadata.json +1 -1
  185. package/model/shared/condition/word-condition-item-observer.d.ts +1 -1
  186. package/model/shared/condition/word-condition-item-observer.js +11 -11
  187. package/model/shared/dynamic-display/dynamic-display.d.ts +1 -1
  188. package/model/shared/dynamic-display/dynamic-display.js +4 -4
  189. package/model/shared/dynamic-display/dynamic-display.metadata.json +1 -1
  190. package/model/shared/rotation/rotation-behavior.d.ts +1 -1
  191. package/model/shared/rotation/rotation-behavior.js +2 -2
  192. package/model/shared/rotation/rotation-behavior.metadata.json +1 -1
  193. package/model/shared/rotation/rotation-observer.d.ts +2 -1
  194. package/model/shared/rotation/rotation-observer.js +3 -2
  195. package/model/shared/rotation/rotation-observer.metadata.json +1 -1
  196. package/model/shared/translation/translation-behavior.d.ts +1 -1
  197. package/model/shared/translation/translation-behavior.js +3 -3
  198. package/model/shared/translation/translation-behavior.metadata.json +1 -1
  199. package/model/shared/translation/translation-observer.d.ts +1 -1
  200. package/model/shared/translation/translation-observer.js +2 -2
  201. package/model/shared/translation/translation-observer.metadata.json +1 -1
  202. package/model/switch-indicator-light/bit-switch-operation.d.ts +2 -1
  203. package/model/switch-indicator-light/bit-switch-operation.js +1 -0
  204. package/model/switch-indicator-light/bit-switch-operation.metadata.json +1 -1
  205. package/package.json +1 -1
  206. package/remote/communication/variable/remote-variable-communicator.d.ts +7 -2
  207. package/remote/communication/variable/remote-variable-communicator.js +38 -9
  208. package/remote/communication/variable/remote-variable-communicator.metadata.json +1 -1
  209. package/remote/communication/variable/remote-variable-protocol.d.ts +5 -2
  210. package/service/index.d.ts +1 -0
  211. package/service/index.metadata.json +1 -1
  212. package/service/released-variable/index.d.ts +1 -0
  213. package/service/released-variable/index.js +0 -0
  214. package/service/released-variable/index.metadata.json +1 -0
  215. package/service/released-variable/released-variable.service.d.ts +4 -0
  216. package/service/released-variable/released-variable.service.js +0 -0
  217. package/service/released-variable/released-variable.service.metadata.json +1 -0
  218. package/service/weather.service.d.ts +1 -0
  219. package/shared/gui-consts.d.ts +2 -0
  220. package/shared/gui-consts.js +2 -0
  221. package/shared/gui-consts.metadata.json +1 -1
  222. package/utils/data-type/data-type.service.d.ts +4 -7
  223. package/utils/data-type/data-type.service.js +29 -17
  224. package/utils/numerical-operation.service.js +2 -2
  225. package/gui/scripts/config.js +0 -6
  226. package/gui/scripts/require.js +0 -2145
  227. package/libs/nvd3/build/nv.d3.min.js +0 -13
@@ -2,11 +2,12 @@ import { Observable } from 'rxjs';
2
2
  import { VariableValue } from './variable-value';
3
3
  import { VariableState } from './variable-state';
4
4
  export interface VariableCommunicator {
5
- openVariable(variableName: string): Observable<VariableValue>;
6
- openVariables(variableNames: Array<string>): Observable<Array<VariableValue>>;
5
+ openVariable(variableName: string, appId: string): Observable<VariableValue>;
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
9
  subscribeVariableState(variableName: string): Observable<VariableState>;
10
10
  subscribeVariableStates(variableNames: Array<string>): Observable<Array<VariableState>>;
11
+ subscribeUserDeviceAlarms(appId: string): any;
11
12
  dispose(): any;
12
13
  }
@@ -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,9 @@
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
+ constructor(alarmNames: string[], triggeredStartTime: moment.Moment, triggeredEndTime: moment.Moment, maxResultCount: number, skipCount: number);
9
+ }
@@ -0,0 +1,9 @@
1
+ export class GetAlarmsArgs {
2
+ constructor(alarmNames, triggeredStartTime, triggeredEndTime, maxResultCount, skipCount) {
3
+ this.alarmNames = alarmNames;
4
+ this.triggeredStartTime = triggeredStartTime;
5
+ this.triggeredEndTime = triggeredEndTime;
6
+ this.maxResultCount = maxResultCount;
7
+ this.skipCount = skipCount;
8
+ }
9
+ }
@@ -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"}]}]}}}}]
@@ -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
  }
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,38 @@
1
+ import { Injector } from '@angular/core';
2
+ import { PermissionChecker } 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
+ export declare class AlarmElement extends ConditionalDisplayElement {
8
+ private readonly alarmsStore;
9
+ readonly model: AlarmModel;
10
+ private readonly logger;
11
+ readonly variableCommunicator: VariableCommunicator;
12
+ private readonly localization;
13
+ private readonly timePeriods;
14
+ private element;
15
+ private refreshIntervalId;
16
+ private readonly displayOption;
17
+ private alarmNames;
18
+ private startTime;
19
+ private endTime;
20
+ private currentTimePeriod;
21
+ private alarmList;
22
+ private currentAlarmList;
23
+ private page;
24
+ private totalCount;
25
+ private pageSize;
26
+ constructor(element: HTMLElement, injector: Injector, permissionChecker: PermissionChecker, variableCommunicator: VariableCommunicator, variableStore: VariableStore, alarmsStore: AlarmsStore, signalRAppId: string);
27
+ dispose(): void;
28
+ private getValidTimePeriods;
29
+ private init;
30
+ private renderElement;
31
+ private renderOperationArea;
32
+ private updateTimeRange;
33
+ private updateQueryTimeRange;
34
+ private loadFirstPage;
35
+ private loadNextPage;
36
+ private loadPreviousPage;
37
+ private loadLastPage;
38
+ }