@flexem/fc-gui 3.0.0-alpha.19 → 3.0.0-alpha.190

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 (212) hide show
  1. package/CHANGELOG.md +413 -0
  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/assets/img/exclamation-outline-circle.png +0 -0
  7. package/bundles/@flexem/fc-gui.umd.js +37817 -32408
  8. package/bundles/@flexem/fc-gui.umd.js.map +1 -1
  9. package/bundles/@flexem/fc-gui.umd.min.js +5 -5
  10. package/bundles/@flexem/fc-gui.umd.min.js.map +1 -1
  11. package/communication/variable/variable-communicator.d.ts +5 -0
  12. package/communication/variable/variable-state-enum.d.ts +1 -0
  13. package/communication/variable/variable-state-enum.js +1 -0
  14. package/communication/variable/variable-state-enum.metadata.json +1 -1
  15. package/communication/variable/variable-value.d.ts +4 -1
  16. package/communication/variable/variable-value.js +4 -1
  17. package/communication/variable/variable-value.metadata.json +1 -1
  18. package/config/alarm/alarm.store.d.ts +6 -0
  19. package/config/alarm/alarm.store.js +0 -0
  20. package/config/alarm/alarm.store.metadata.json +1 -0
  21. package/config/alarm/get-alarms-args.d.ts +12 -0
  22. package/config/alarm/get-alarms-args.js +13 -0
  23. package/config/alarm/get-alarms-args.metadata.json +1 -0
  24. package/config/alarm/index.d.ts +2 -0
  25. package/config/alarm/index.js +1 -0
  26. package/config/alarm/index.metadata.json +1 -0
  27. package/config/config-store.d.ts +2 -0
  28. package/config/gui-feature-config.d.ts +3 -0
  29. package/config/gui-feature-config.js +3 -0
  30. package/config/gui-feature-config.metadata.json +1 -0
  31. package/config/index.d.ts +2 -0
  32. package/config/index.js +2 -0
  33. package/config/index.metadata.json +1 -1
  34. package/config/variable/variable-store.d.ts +5 -0
  35. package/elements/air-quality/air-quality-element.js +3 -4
  36. package/elements/alarm/alarm-element.d.ts +106 -0
  37. package/elements/alarm/alarm-element.js +836 -0
  38. package/elements/alarm/alarm-element.metadata.json +1 -0
  39. package/elements/alarm/alarm-table-scrollbar.d.ts +35 -0
  40. package/elements/alarm/alarm-table-scrollbar.js +170 -0
  41. package/elements/alarm/alarm-table-scrollbar.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 +69 -2
  47. package/elements/base/readable-element.metadata.json +1 -1
  48. package/elements/base/state-control-element.d.ts +13 -1
  49. package/elements/base/state-control-element.js +42 -8
  50. package/elements/base/state-control-element.metadata.json +1 -1
  51. package/elements/character-display/character-display-element.d.ts +12 -2
  52. package/elements/character-display/character-display-element.js +35 -7
  53. package/elements/character-display/character-display-element.metadata.json +1 -1
  54. package/elements/datetime-display/datetime-display-element.d.ts +1 -0
  55. package/elements/datetime-display/datetime-display-element.js +10 -2
  56. package/elements/datetime-display/datetime-display-element.metadata.json +1 -1
  57. package/elements/datetime-display/time-zone-select-json.d.ts +8 -0
  58. package/elements/datetime-display/time-zone-select-json.js +558 -0
  59. package/elements/historical-curve/historical-curve.element.d.ts +45 -3
  60. package/elements/historical-curve/historical-curve.element.js +707 -45
  61. package/elements/historical-curve/historical-curve.element.metadata.json +1 -1
  62. package/elements/main-element.d.ts +1 -0
  63. package/elements/main-element.js +72 -10
  64. package/elements/main-element.metadata.json +1 -1
  65. package/elements/meter-element.d.ts +7 -1
  66. package/elements/meter-element.js +76 -7
  67. package/elements/meter-element.metadata.json +1 -1
  68. package/elements/numerical-display/numerical-display-element.d.ts +31 -3
  69. package/elements/numerical-display/numerical-display-element.js +166 -15
  70. package/elements/numerical-display/numerical-display-element.metadata.json +1 -1
  71. package/elements/per-view-variable-communicator.d.ts +4 -0
  72. package/elements/per-view-variable-communicator.js +21 -1
  73. package/elements/per-view-variable-communicator.metadata.json +1 -1
  74. package/elements/ring-graph/ring-graph-element.d.ts +13 -1
  75. package/elements/ring-graph/ring-graph-element.js +164 -3
  76. package/elements/ring-graph/ring-graph-element.metadata.json +1 -1
  77. package/elements/scroll-alarm/scroll-alarm-element.d.ts +79 -0
  78. package/elements/scroll-alarm/scroll-alarm-element.js +845 -0
  79. package/elements/scroll-alarm/scroll-alarm-element.metadata.json +1 -0
  80. package/elements/shared/graph/graph-state-element.d.ts +1 -0
  81. package/elements/shared/graph/graph-state-element.js +30 -1
  82. package/elements/shared/graph/graph-state-element.metadata.json +1 -1
  83. package/elements/shared/text/text-element.d.ts +14 -0
  84. package/elements/shared/text/text-element.js +38 -6
  85. package/elements/shared/text/text-element.metadata.json +1 -1
  86. package/elements/shared/text/text-state-element.d.ts +39 -2
  87. package/elements/shared/text/text-state-element.js +242 -67
  88. package/elements/shared/text/text-state-element.metadata.json +1 -1
  89. package/elements/static-elements/hyperlink-element.d.ts +28 -2
  90. package/elements/static-elements/hyperlink-element.js +153 -4
  91. package/elements/static-elements/hyperlink-element.metadata.json +1 -1
  92. package/elements/static-elements/text-element.d.ts +28 -2
  93. package/elements/static-elements/text-element.js +162 -12
  94. package/elements/static-elements/text-element.metadata.json +1 -1
  95. package/elements/switch-indicator-light/bit-indicator-light-operator.d.ts +1 -0
  96. package/elements/switch-indicator-light/bit-indicator-light-operator.js +10 -3
  97. package/elements/switch-indicator-light/bit-indicator-light-operator.metadata.json +1 -1
  98. package/elements/switch-indicator-light/switch-indicator-light-element.d.ts +20 -2
  99. package/elements/switch-indicator-light/switch-indicator-light-element.js +92 -15
  100. package/elements/switch-indicator-light/switch-indicator-light-element.metadata.json +1 -1
  101. package/elements/switch-indicator-light/word-indicator-light-operator.d.ts +1 -0
  102. package/elements/switch-indicator-light/word-indicator-light-operator.js +10 -3
  103. package/elements/switch-indicator-light/word-indicator-light-operator.metadata.json +1 -1
  104. package/elements/video/video-element.d.ts +10 -0
  105. package/elements/video/video-element.js +139 -21
  106. package/elements/video/video-element.metadata.json +1 -1
  107. package/elements/view-operation/view-operation.element.d.ts +28 -2
  108. package/elements/view-operation/view-operation.element.js +172 -8
  109. package/elements/view-operation/view-operation.element.metadata.json +1 -1
  110. package/elements/weather/weater-element.js +0 -1
  111. package/gui/gui-context.d.ts +25 -2
  112. package/gui/gui-host.d.ts +1 -1
  113. package/gui/gui-view.d.ts +19 -2
  114. package/gui/gui-view.js +147 -12
  115. package/gui/gui-view.metadata.json +1 -1
  116. package/gui/gui.component.d.ts +3 -0
  117. package/gui/gui.component.js +15 -2
  118. package/gui/gui.component.metadata.json +1 -1
  119. package/localization/localization.service.d.ts +11 -0
  120. package/localization/localization.service.js +16 -5
  121. package/localization/localization.service.metadata.json +1 -1
  122. package/localization/localization.service.zh_CN.js +12 -1
  123. package/localization/localization.service.zh_CN.metadata.json +1 -1
  124. package/modal/alert/alert-modal.component.js +1 -1
  125. package/modal/alert/alert-modal.component.less +13 -5
  126. package/modal/alert/alert-modal.component.metadata.json +1 -1
  127. package/modal/confirm-operation/confirm-operation-modal.component.html +2 -2
  128. package/modal/confirm-operation/confirm-operation-modal.component.js +2 -2
  129. package/modal/confirm-operation/confirm-operation-modal.component.less +10 -7
  130. package/modal/confirm-operation/confirm-operation-modal.component.metadata.json +1 -1
  131. package/modal/verify-password/verify-password-modal.component.d.ts +6 -2
  132. package/modal/verify-password/verify-password-modal.component.html +2 -2
  133. package/modal/verify-password/verify-password-modal.component.js +11 -5
  134. package/modal/verify-password/verify-password-modal.component.less +9 -0
  135. package/modal/verify-password/verify-password-modal.component.metadata.json +1 -1
  136. package/modal/write-character/write-character-modal-args.d.ts +3 -1
  137. package/modal/write-character/write-character-modal-args.js +2 -1
  138. package/modal/write-character/write-character-modal-args.metadata.json +1 -1
  139. package/modal/write-character/write-character-modal.component.d.ts +4 -2
  140. package/modal/write-character/write-character-modal.component.html +4 -4
  141. package/modal/write-character/write-character-modal.component.js +11 -5
  142. package/modal/write-character/write-character-modal.component.less +15 -0
  143. package/modal/write-character/write-character-modal.component.metadata.json +1 -1
  144. package/modal/write-value/write-value-modal-args.d.ts +5 -1
  145. package/modal/write-value/write-value-modal-args.js +3 -1
  146. package/modal/write-value/write-value-modal-args.metadata.json +1 -1
  147. package/modal/write-value/write-value-modal.component.d.ts +16 -8
  148. package/modal/write-value/write-value-modal.component.html +10 -5
  149. package/modal/write-value/write-value-modal.component.js +103 -21
  150. package/modal/write-value/write-value-modal.component.less +16 -1
  151. package/modal/write-value/write-value-modal.component.metadata.json +1 -1
  152. package/model/alarm/alarm.model.d.ts +14 -0
  153. package/model/alarm/alarm.model.js +0 -0
  154. package/model/alarm/alarm.model.metadata.json +1 -0
  155. package/model/bar-graph/bar-graph.d.ts +4 -0
  156. package/model/base/font-setting-model.d.ts +22 -1
  157. package/model/base/font-setting-model.metadata.json +1 -1
  158. package/model/base/readable-model.d.ts +4 -0
  159. package/model/character-display/character-display.d.ts +1 -0
  160. package/model/datetime-display/datetime-display.d.ts +1 -0
  161. package/model/historical-curve/historical-curve-axis-settings.d.ts +11 -0
  162. package/model/historical-curve/historical-curve-axis-settings.js +5 -0
  163. package/model/historical-curve/historical-curve-axis-settings.metadata.json +1 -1
  164. package/model/historical-curve/historical-curve-chanel.model.d.ts +8 -0
  165. package/model/historical-curve/historical-curve.display-settings.d.ts +1 -0
  166. package/model/meter/meter.d.ts +4 -0
  167. package/model/numerical-display/numerical-display.d.ts +1 -0
  168. package/model/numerical-display/numerical-operation.d.ts +10 -2
  169. package/model/ring-graph/ring-graph.model.d.ts +8 -0
  170. package/model/scroll-alarm/scroll-alarm.model.d.ts +21 -0
  171. package/model/scroll-alarm/scroll-alarm.model.js +0 -0
  172. package/model/scroll-alarm/scroll-alarm.model.metadata.json +1 -0
  173. package/model/settings/popup/view-popup-location-type.d.ts +2 -1
  174. package/model/settings/popup/view-popup-location-type.js +1 -0
  175. package/model/settings/popup/view-popup-location-type.metadata.json +1 -1
  176. package/model/shared/state/state.d.ts +1 -0
  177. package/model/shared/state/state.js +1 -0
  178. package/model/shared/state/state.metadata.json +1 -1
  179. package/model/shared/text/font.d.ts +1 -1
  180. package/model/shared/text/text.d.ts +3 -0
  181. package/model/switch-indicator-light/switch-indicator-light.d.ts +3 -0
  182. package/model/view-operation/view-operation-element.model.d.ts +7 -1
  183. package/package.json +1 -1
  184. package/public_api.js +1 -0
  185. package/remote/communication/variable/remote-variable-communicator.d.ts +30 -0
  186. package/remote/communication/variable/remote-variable-communicator.js +193 -3
  187. package/remote/communication/variable/remote-variable-communicator.metadata.json +1 -1
  188. package/remote/communication/variable/remote-variable-protocol.d.ts +8 -0
  189. package/service/index.d.ts +4 -0
  190. package/service/index.js +1 -0
  191. package/service/index.metadata.json +1 -1
  192. package/service/language.service.d.ts +37 -0
  193. package/service/language.service.js +0 -0
  194. package/service/language.service.metadata.json +1 -0
  195. package/service/released-variable/index.d.ts +1 -0
  196. package/service/released-variable/index.js +0 -0
  197. package/service/released-variable/index.metadata.json +1 -0
  198. package/service/released-variable/released-variable.service.d.ts +4 -0
  199. package/service/released-variable/released-variable.service.js +0 -0
  200. package/service/released-variable/released-variable.service.metadata.json +1 -0
  201. package/service/system-text-library.service.d.ts +77 -0
  202. package/service/system-text-library.service.js +29 -0
  203. package/service/system-text-library.service.metadata.json +1 -0
  204. package/service/text-library.service.d.ts +49 -0
  205. package/service/text-library.service.js +0 -0
  206. package/service/text-library.service.metadata.json +1 -0
  207. package/shared/gui-consts.d.ts +2 -0
  208. package/shared/gui-consts.js +3 -1
  209. package/shared/gui-consts.metadata.json +1 -1
  210. package/utils/data-type/fbox-data-type.service.js +40 -0
  211. package/utils/numerical-operation.service.js +28 -4
  212. package/view/popup-view.service.d.ts +1 -1
@@ -10,13 +10,16 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  var __param = (this && this.__param) || function (paramIndex, decorator) {
11
11
  return function (target, key) { decorator(target, key, paramIndex); }
12
12
  };
13
- import { Component, Inject, Output } from '@angular/core';
13
+ import { Component, Inject, Injector, Output } from '@angular/core';
14
14
  import { Subject } from 'rxjs';
15
15
  import { LOCALIZATION } from '../../localization';
16
+ import { DisplayMode, GlobalSettings } from '../../settings';
16
17
  let WriteCharacterModalComponent = class WriteCharacterModalComponent {
17
- constructor(localization) {
18
+ constructor(localization, injector) {
18
19
  this.localization = localization;
19
20
  this._onClosed = new Subject();
21
+ this.isMobileMode = false;
22
+ this.isDisplayModeMobile = DisplayMode.Mobile === injector.get(GlobalSettings).displayMode;
20
23
  }
21
24
  get onClosed() {
22
25
  return this._onClosed;
@@ -25,6 +28,9 @@ let WriteCharacterModalComponent = class WriteCharacterModalComponent {
25
28
  return this.localization.loadFailed;
26
29
  }
27
30
  ngOnInit() {
31
+ // 画面模拟(SimulateRemoteGuiContext)下 releasedVariableService 恒为空,
32
+ // 借此和真实移动端区分开,避免在 PC 浏览器模拟移动端时套用移动端专属样式
33
+ this.isMobileMode = this.isDisplayModeMobile && !!this.args.releasedVariableService;
28
34
  this.variableName = this.args.variableName;
29
35
  this.isPassword = this.args.isPassword ? this.args.isPassword : false;
30
36
  this.charCount = this.args.charCount;
@@ -65,10 +71,10 @@ __decorate([
65
71
  WriteCharacterModalComponent = __decorate([
66
72
  Component({
67
73
  selector: 'writeCharacterModal',
68
- template: "<form #writeValueForm=\"ngForm\" novalidate (ngSubmit)=\"save()\" bs-modal-drag> <div class=\"modal-header\"> <h4 class=\"modal-title\"> <span>{{localization.setting}}</span> <span>{{variableName}}</span> </h4> <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"close()\"> <span aria-hidden=\"true\">&times;</span> </button> </div> <div class=\"modal-body\"> <input type=\"text\" name=\"characterInput\" autoFocus class=\"form-control write-character-value\" [(ngModel)]=\"value\" (keyup)=\"validate()\" *ngIf=\"!isPassword\" autocomplete=\"off\"> <input type=\"password\" name=\"passwordInput\" autoFocus class=\"form-control write-character-value\" [(ngModel)]=\"value\" (keyup)=\"validate()\" *ngIf=\"isPassword\" autocomplete=\"off\"> <span class=\"help-block text-danger\" [hidden]=\"!validationError\">{{validationErrorText}}</span> </div> <div class=\"modal-footer\"> <button type=\"submit\" class=\"btn md-skip btn-primary btn-block\" [disabled]=\"validationError\">{{localization.submit}}</button> </div> </form> ",
69
- styles: [".modal-header { padding: 10px; border-color: transparent; } .modal-body { position: relative; padding: 0px 5px !important; } .modal-title { display: unset; margin-left: -6px; font-size: 16px !important; } .form-control { margin: 0 5%; float: none; width: 90%; } .modal-footer { padding: 10px 4px 20px 5px !important; text-align: right; border-color: transparent; } .text-danger { display: block; color: #ed6b75; font-size: 14px; margin: 10px 0px 0px 15px; } .btn-primary { background-color: #3B97FC; border-color: #3B97FC; padding: 5px 30px; width: 90%; margin: 0 5%; height: 32px; } .write-character-value { padding-left: 8px; height: 32px; margin-left: 16px; } "]
74
+ template: "<form #writeValueForm=\"ngForm\" novalidate (ngSubmit)=\"save()\" bs-modal-drag> <div class=\"modal-header\"> <h4 class=\"modal-title\"> <span>{{localization.setting}}</span> <span>{{variableName}}</span> </h4> <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"close()\"> <span aria-hidden=\"true\">&times;</span> </button> </div> <div class=\"modal-body\"> <input type=\"text\" name=\"characterInput\" autoFocus [class.form-control-write]=\"!isMobileMode\" class=\"form-control write-character-value\" [(ngModel)]=\"value\" (keyup)=\"validate()\" *ngIf=\"!isPassword\" autocomplete=\"off\"> <input type=\"password\" name=\"passwordInput\" autoFocus [class.form-control-write]=\"!isMobileMode\" class=\"form-control write-character-value\" [(ngModel)]=\"value\" (keyup)=\"validate()\" *ngIf=\"isPassword\" autocomplete=\"off\"> <span class=\"help-block text-danger\" [hidden]=\"!validationError\">{{validationErrorText}}</span> </div> <div class=\"modal-footer\" [class.modal-footer-write]=\"!isMobileMode\"> <button type=\"submit\" [class.btn-primary-write]=\"!isMobileMode\" class=\"btn md-skip btn-primary btn-block\" [disabled]=\"validationError\">{{localization.submit}}</button> </div> </form> ",
75
+ styles: [".modal-header { padding: 10px; border-color: transparent; } .modal-body { position: relative; padding: 0px 5px !important; } .modal-title { display: unset; margin-left: -6px; font-size: 16px !important; } .form-control { margin: 0 5%; float: none; width: 90%; } .modal-footer { padding: 10px 4px 20px 5px !important; text-align: right; border-color: transparent; } .text-danger { display: block; color: #ed6b75; font-size: 14px; margin: 10px 0px 0px 15px; } .btn-primary { background-color: #3B97FC; border-color: #3B97FC; padding: 5px 30px; width: 90%; margin: 0 5%; height: 32px; } .write-character-value { padding-left: 8px; height: 32px; margin-left: 16px; } .modal-footer-write { margin-right: 4px; padding: 10px 5px 20px 5px !important; } .btn-primary-write { width: 585px; margin: 0 15px 0 0; } .form-control-write { margin: 0 16px; width: 585px; } "]
70
76
  }),
71
77
  __param(0, Inject(LOCALIZATION)),
72
- __metadata("design:paramtypes", [Object])
78
+ __metadata("design:paramtypes", [Object, Injector])
73
79
  ], WriteCharacterModalComponent);
74
80
  export { WriteCharacterModalComponent };
@@ -47,3 +47,18 @@
47
47
  height: 32px;
48
48
  margin-left: 16px;
49
49
  }
50
+
51
+ .modal-footer-write {
52
+ margin-right: 4px;
53
+ padding: 10px 5px 20px 5px !important;
54
+ }
55
+
56
+ .btn-primary-write {
57
+ width: 585px;
58
+ margin: 0 15px 0 0;
59
+ }
60
+
61
+ .form-control-write {
62
+ margin: 0 16px;
63
+ width: 585px;
64
+ }
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"WriteCharacterModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"writeCharacterModal","template":"<form #writeValueForm=\"ngForm\" novalidate (ngSubmit)=\"save()\" bs-modal-drag> <div class=\"modal-header\"> <h4 class=\"modal-title\"> <span>{{localization.setting}}</span> <span>{{variableName}}</span> </h4> <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"close()\"> <span aria-hidden=\"true\">&times;</span> </button> </div> <div class=\"modal-body\"> <input type=\"text\" name=\"characterInput\" autoFocus class=\"form-control write-character-value\" [(ngModel)]=\"value\" (keyup)=\"validate()\" *ngIf=\"!isPassword\" autocomplete=\"off\"> <input type=\"password\" name=\"passwordInput\" autoFocus class=\"form-control write-character-value\" [(ngModel)]=\"value\" (keyup)=\"validate()\" *ngIf=\"isPassword\" autocomplete=\"off\"> <span class=\"help-block text-danger\" [hidden]=\"!validationError\">{{validationErrorText}}</span> </div> <div class=\"modal-footer\"> <button type=\"submit\" class=\"btn md-skip btn-primary btn-block\" [disabled]=\"validationError\">{{localization.submit}}</button> </div> </form> ","styles":[".modal-header { padding: 10px; border-color: transparent; } .modal-body { position: relative; padding: 0px 5px !important; } .modal-title { display: unset; margin-left: -6px; font-size: 16px !important; } .form-control { margin: 0 5%; float: none; width: 90%; } .modal-footer { padding: 10px 4px 20px 5px !important; text-align: right; border-color: transparent; } .text-danger { display: block; color: #ed6b75; font-size: 14px; margin: 10px 0px 0px 15px; } .btn-primary { background-color: #3B97FC; border-color: #3B97FC; padding: 5px 30px; width: 90%; margin: 0 5%; height: 32px; } .write-character-value { padding-left: 8px; height: 32px; margin-left: 16px; } "]}]}],"members":{"invalidErrorText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":28,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":33,"character":17},"arguments":[{"__symbolic":"reference","module":"../../localization","name":"LOCALIZATION","line":33,"character":24}]}]],"parameters":[{"__symbolic":"reference","module":"../../localization","name":"Localization","line":33,"character":59}]}],"ngOnInit":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}],"showValidationErrorInfo":[{"__symbolic":"method"}],"hideValidationErrorInfo":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"WriteCharacterModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"writeCharacterModal","template":"<form #writeValueForm=\"ngForm\" novalidate (ngSubmit)=\"save()\" bs-modal-drag> <div class=\"modal-header\"> <h4 class=\"modal-title\"> <span>{{localization.setting}}</span> <span>{{variableName}}</span> </h4> <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"close()\"> <span aria-hidden=\"true\">&times;</span> </button> </div> <div class=\"modal-body\"> <input type=\"text\" name=\"characterInput\" autoFocus [class.form-control-write]=\"!isMobileMode\" class=\"form-control write-character-value\" [(ngModel)]=\"value\" (keyup)=\"validate()\" *ngIf=\"!isPassword\" autocomplete=\"off\"> <input type=\"password\" name=\"passwordInput\" autoFocus [class.form-control-write]=\"!isMobileMode\" class=\"form-control write-character-value\" [(ngModel)]=\"value\" (keyup)=\"validate()\" *ngIf=\"isPassword\" autocomplete=\"off\"> <span class=\"help-block text-danger\" [hidden]=\"!validationError\">{{validationErrorText}}</span> </div> <div class=\"modal-footer\" [class.modal-footer-write]=\"!isMobileMode\"> <button type=\"submit\" [class.btn-primary-write]=\"!isMobileMode\" class=\"btn md-skip btn-primary btn-block\" [disabled]=\"validationError\">{{localization.submit}}</button> </div> </form> ","styles":[".modal-header { padding: 10px; border-color: transparent; } .modal-body { position: relative; padding: 0px 5px !important; } .modal-title { display: unset; margin-left: -6px; font-size: 16px !important; } .form-control { margin: 0 5%; float: none; width: 90%; } .modal-footer { padding: 10px 4px 20px 5px !important; text-align: right; border-color: transparent; } .text-danger { display: block; color: #ed6b75; font-size: 14px; margin: 10px 0px 0px 15px; } .btn-primary { background-color: #3B97FC; border-color: #3B97FC; padding: 5px 30px; width: 90%; margin: 0 5%; height: 32px; } .write-character-value { padding-left: 8px; height: 32px; margin-left: 16px; } .modal-footer-write { margin-right: 4px; padding: 10px 5px 20px 5px !important; } .btn-primary-write { width: 585px; margin: 0 15px 0 0; } .form-control-write { margin: 0 16px; width: 585px; } "]}]}],"members":{"invalidErrorText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":31,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":37,"character":9},"arguments":[{"__symbolic":"reference","module":"../../localization","name":"LOCALIZATION","line":37,"character":16}]}],null],"parameters":[{"__symbolic":"reference","module":"../../localization","name":"Localization","line":37,"character":51},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":38,"character":18}]}],"ngOnInit":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}],"showValidationErrorInfo":[{"__symbolic":"method"}],"hideValidationErrorInfo":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}]}}}}]
@@ -1,4 +1,6 @@
1
1
  import { NumericalOperation } from '../../model';
2
+ import { ReleasedVariableService } from '../../service';
3
+ import { GuiContext } from '../../gui/gui-context';
2
4
  export declare class WriteValueModalArgs {
3
5
  variableName: string;
4
6
  dataType: number;
@@ -8,5 +10,7 @@ export declare class WriteValueModalArgs {
8
10
  numericalOperation: NumericalOperation;
9
11
  version: number;
10
12
  enableDataParsed: boolean;
11
- constructor(variableName: string, dataType: number, fBoxDataType: number, integerDigits: number, fractionDigits: number, numericalOperation: NumericalOperation, version: number, enableDataParsed: boolean);
13
+ releasedVariableService: ReleasedVariableService;
14
+ guiContext?: GuiContext;
15
+ constructor(variableName: string, dataType: number, fBoxDataType: number, integerDigits: number, fractionDigits: number, numericalOperation: NumericalOperation, version: number, enableDataParsed: boolean, releasedVariableService: ReleasedVariableService, guiContext?: GuiContext);
12
16
  }
@@ -1,5 +1,5 @@
1
1
  export class WriteValueModalArgs {
2
- constructor(variableName, dataType, fBoxDataType, integerDigits, fractionDigits, numericalOperation, version, enableDataParsed) {
2
+ constructor(variableName, dataType, fBoxDataType, integerDigits, fractionDigits, numericalOperation, version, enableDataParsed, releasedVariableService, guiContext) {
3
3
  this.variableName = variableName;
4
4
  this.dataType = dataType;
5
5
  this.fBoxDataType = fBoxDataType;
@@ -8,5 +8,7 @@ export class WriteValueModalArgs {
8
8
  this.numericalOperation = numericalOperation;
9
9
  this.version = version;
10
10
  this.enableDataParsed = enableDataParsed;
11
+ this.releasedVariableService = releasedVariableService;
12
+ this.guiContext = guiContext;
11
13
  }
12
14
  }
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"WriteValueModalArgs":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","module":"../../model","name":"NumericalOperation","line":9,"character":35},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"boolean"}]}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"WriteValueModalArgs":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","module":"../../model","name":"NumericalOperation","line":11,"character":35},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"boolean"},{"__symbolic":"reference","module":"../../service","name":"ReleasedVariableService","line":14,"character":40},{"__symbolic":"reference","module":"../../gui/gui-context","name":"GuiContext","line":15,"character":28}]}]}}}}]
@@ -1,20 +1,21 @@
1
- import { OnInit } from '@angular/core';
2
- import { Observable } from 'rxjs';
1
+ import { Injector, OnInit } from '@angular/core';
3
2
  import { Localization } from '../../localization';
4
3
  import { NumericalOperation } from '../../model/numerical-display/numerical-operation';
5
4
  import { DataTypeService } from '../../utils/data-type/data-type.service';
6
5
  import { FractionDigitService } from '../../utils/fraction-digit.service';
7
6
  import { NumericalOperationService } from '../../utils/numerical-operation.service';
8
7
  import { WriteValueModalArgs } from './write-value-modal-args';
9
- import { WriteValueModelResult } from './write-value-model-result';
8
+ import { BsModalRef } from 'ngx-bootstrap/modal';
10
9
  export declare class WriteValueModalComponent implements OnInit {
11
10
  localization: Localization;
12
11
  private readonly dataTypeService;
13
12
  private readonly fractionDigitService;
14
13
  private readonly numericalOperationService;
15
- private _onClosed;
16
- get onClosed(): Observable<WriteValueModelResult>;
14
+ private readonly bsModalRef;
15
+ onClosed: any;
17
16
  args: WriteValueModalArgs;
17
+ isMobileMode: boolean;
18
+ private readonly isDisplayModeMobile;
18
19
  private dataType;
19
20
  private fBoxDataType;
20
21
  private pattern;
@@ -27,22 +28,29 @@ export declare class WriteValueModalComponent implements OnInit {
27
28
  value: string;
28
29
  valueType: string;
29
30
  variableName: string;
31
+ displayVariableName: string;
30
32
  enableNumericalOperation: boolean;
33
+ isNumericalOperation: boolean;
31
34
  numericalOperation: NumericalOperation;
32
35
  validationError: boolean;
33
36
  validationErrorText: string;
34
37
  writeMinValue: number;
35
38
  writeMaxValue: number;
36
39
  writeValueRangeText: string;
40
+ isSubmitting: boolean;
37
41
  get invalidErrorText(): string;
38
- constructor(localization: Localization, dataTypeService: DataTypeService, fractionDigitService: FractionDigitService, numericalOperationService: NumericalOperationService);
42
+ constructor(localization: Localization, dataTypeService: DataTypeService, fractionDigitService: FractionDigitService, numericalOperationService: NumericalOperationService, bsModalRef: BsModalRef, injector: Injector);
39
43
  ngOnInit(): void;
40
44
  initData(option: WriteValueModalArgs): void;
41
45
  private setValueRangeAccordToDataParsed;
42
46
  getWriteValueRangeText(): string;
43
47
  save(): void;
44
- close(modalResult?: WriteValueModelResult): void;
45
- validate(): void;
48
+ /**
49
+ * 处理"当前语种ID"系统变量的保存
50
+ */
51
+ private handleCurrentLanguageIdSave;
52
+ close(): void;
53
+ validate(event?: any): void;
46
54
  private showValidationErrorInfo;
47
55
  private hideValidationErrorInfo;
48
56
  private getFractionDigits;
@@ -2,20 +2,25 @@
2
2
  <div class="modal-header">
3
3
  <h4 class="modal-title">
4
4
  <span>{{localization.setting}}</span>
5
- <span>{{variableName}}</span>
5
+ <span>{{displayVariableName}}</span>
6
6
  </h4>
7
7
  <button type="button" class="close pull-right" aria-label="Close" (click)="close()">
8
8
  <span aria-hidden="true">&times;</span>
9
9
  </button>
10
10
  </div>
11
11
  <div class="modal-body">
12
- <span class="write-value-range">{{localization.writeValueRange}}:&nbsp;{{writeValueRangeText}}
12
+ <span class="write-value-range">{{localization.writeValueRange}}:</span>
13
+ <span>
14
+ {{writeValueRangeText}}
13
15
  <span *ngIf="valueType">({{valueType}})</span>
14
16
  </span>
15
- <input type="text" name="valueInput" autoFocus class="form-control write-value" [(ngModel)]="value" (keyup)="validate()" autocomplete="off">
17
+ <input type="text" name="valueInput" autoFocus [class.form-control-write]="!isMobileMode" class="form-control write-value" [(ngModel)]="value" (keyup)="validate($event)" autocomplete="off">
16
18
  <span class="help-block text-danger" [hidden]="!validationError">{{validationErrorText}}</span>
17
19
  </div>
18
- <div class="modal-footer">
19
- <button type="submit" class="btn md-skip btn-primary btn-block" [disabled]="validationError">{{localization.submit}}</button>
20
+ <div class="modal-footer" [class.modal-footer-write]="!isMobileMode">
21
+ <button type="submit" [class.btn-primary-write]="!isMobileMode" class="btn md-skip btn-primary btn-block" [disabled]="validationError || isSubmitting">
22
+ <ng-container *ngIf="!isSubmitting">{{localization.submit}}</ng-container>
23
+ <ng-container *ngIf="isSubmitting">{{localization.submitting}}</ng-container>
24
+ </button>
20
25
  </div>
21
26
  </form>
@@ -10,34 +10,52 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  var __param = (this && this.__param) || function (paramIndex, decorator) {
11
11
  return function (target, key) { decorator(target, key, paramIndex); }
12
12
  };
13
- import { Component, Inject, Output } from '@angular/core';
14
- import { Subject } from 'rxjs';
13
+ import { Component, Inject, Injector, Output } from '@angular/core';
15
14
  import { LOCALIZATION } from '../../localization';
16
15
  import { DataTypeService } from '../../utils/data-type/data-type.service';
17
16
  import { FractionDigitService } from '../../utils/fraction-digit.service';
18
17
  import { NumericalOperationService } from '../../utils/numerical-operation.service';
19
18
  import { isNil } from 'lodash';
19
+ import { BsModalRef } from 'ngx-bootstrap/modal';
20
+ import { DisplayMode, GlobalSettings } from '../../settings';
20
21
  let WriteValueModalComponent = class WriteValueModalComponent {
21
- constructor(localization, dataTypeService, fractionDigitService, numericalOperationService) {
22
+ constructor(localization, dataTypeService, fractionDigitService, numericalOperationService, bsModalRef, injector) {
22
23
  this.localization = localization;
23
24
  this.dataTypeService = dataTypeService;
24
25
  this.fractionDigitService = fractionDigitService;
25
26
  this.numericalOperationService = numericalOperationService;
26
- this._onClosed = new Subject();
27
+ this.bsModalRef = bsModalRef;
28
+ this.isMobileMode = false;
29
+ this.displayVariableName = '';
27
30
  this.writeValueRangeText = '';
28
- }
29
- get onClosed() {
30
- return this._onClosed;
31
+ this.isSubmitting = false;
32
+ this.isDisplayModeMobile = DisplayMode.Mobile === injector.get(GlobalSettings).displayMode;
31
33
  }
32
34
  get invalidErrorText() {
33
35
  return this.localization.loadFailed;
34
36
  }
35
37
  ngOnInit() {
38
+ // 画面模拟(SimulateRemoteGuiContext)下 releasedVariableService 恒为空,
39
+ // 借此和真实移动端区分开,避免在 PC 浏览器模拟移动端时套用移动端专属样式
40
+ this.isMobileMode = this.isDisplayModeMobile && !!this.args.releasedVariableService;
36
41
  this.initData(this.args);
37
42
  this.validate();
38
43
  }
39
44
  initData(option) {
45
+ var _a, _b, _c, _d, _e;
40
46
  this.variableName = option.variableName;
47
+ this.displayVariableName = this.variableName;
48
+ if (this.variableName === '当前语种ID') {
49
+ const language = ((_c = (_b = (_a = window.abp) === null || _a === void 0 ? void 0 : _a.localization) === null || _b === void 0 ? void 0 : _b.currentLanguage) === null || _c === void 0 ? void 0 : _c.name) || ((_e = (_d = this.localization.localizationService) === null || _d === void 0 ? void 0 : _d.translate) === null || _e === void 0 ? void 0 : _e.currentLang);
50
+ const isTraditionalChinese = language === 'zh-Hant' || language === 'zh-TW' || language === 'zh-tw';
51
+ const isChinese = language === 'zh-Hans' || language === 'zh';
52
+ if (isTraditionalChinese) {
53
+ this.displayVariableName = '當前語種ID';
54
+ }
55
+ else if (!isChinese) {
56
+ this.displayVariableName = 'Current Language ID';
57
+ }
58
+ }
41
59
  this.dataType = option.dataType;
42
60
  this.fBoxDataType = option.fBoxDataType;
43
61
  this.integerDigits = option.integerDigits ? option.integerDigits : 0;
@@ -58,17 +76,20 @@ let WriteValueModalComponent = class WriteValueModalComponent {
58
76
  this.writeValueRangeText = this.getWriteValueRangeText();
59
77
  }
60
78
  setValueRangeAccordToDataParsed(option) {
79
+ // 上下限已在 numerical-display-element.ts 中解析为数值,直接使用
80
+ const resolvedUpperLimit = Number(this.numericalOperation.numericalUpperLimit);
81
+ const resolvedLowerLimit = Number(this.numericalOperation.numericalLowerLimit);
61
82
  if (this.dataTypeService.isFloat(option.version, this.dataType) || this.enableNumericalOperation) {
62
83
  this.maxValueLimit = this.dataTypeService.getMaxValue(option.version, this.dataType, this.fBoxDataType);
63
84
  this.minValueLimit = this.dataTypeService.getMinValue(option.version, this.dataType, this.fBoxDataType);
64
- this.numericalLowerLimit = this.numericalOperation.numericalLowerLimit;
65
- this.numericalUpperLimit = this.numericalOperation.numericalUpperLimit;
85
+ this.numericalLowerLimit = resolvedLowerLimit;
86
+ this.numericalUpperLimit = resolvedUpperLimit;
66
87
  }
67
88
  else {
68
89
  this.maxValueLimit = +this.fractionDigitService.movePoint(this.dataTypeService.getMaxValue(option.version, this.dataType, this.fBoxDataType), -this.fractionDigits);
69
90
  this.minValueLimit = +this.fractionDigitService.movePoint(this.dataTypeService.getMinValue(option.version, this.dataType, this.fBoxDataType), -this.fractionDigits);
70
- this.numericalLowerLimit = +this.fractionDigitService.movePoint(this.numericalOperation.numericalLowerLimit, -this.fractionDigits);
71
- this.numericalUpperLimit = +this.fractionDigitService.movePoint(this.numericalOperation.numericalUpperLimit, -this.fractionDigits);
91
+ this.numericalLowerLimit = +this.fractionDigitService.movePoint(resolvedLowerLimit, -this.fractionDigits);
92
+ this.numericalUpperLimit = +this.fractionDigitService.movePoint(resolvedUpperLimit, -this.fractionDigits);
72
93
  }
73
94
  const minValue = this.numericalOperationService.getWriteMinValue(this.minValueLimit, this.numericalOperation);
74
95
  const maxValue = this.numericalOperationService.getWriteMaxValue(this.maxValueLimit, this.numericalOperation);
@@ -101,21 +122,80 @@ let WriteValueModalComponent = class WriteValueModalComponent {
101
122
  return minValue + '~' + maxValue;
102
123
  }
103
124
  save() {
125
+ this.isSubmitting = true;
126
+ let value = this.value;
127
+ const showValue = this.value;
104
128
  if (this.args.enableDataParsed) {
105
129
  if (this.enableNumericalOperation) {
106
- this.value = this.numericalOperationService.getWriteValue(this.args.version, this.value, this.numericalOperation, this.dataType, this.fractionDigits);
130
+ value = this.numericalOperationService.getWriteValue(this.args.version, this.value, this.numericalOperation, this.dataType, this.fractionDigits);
107
131
  }
108
132
  else {
109
- this.value = this.formatWriteValue();
133
+ value = this.formatWriteValue();
134
+ }
135
+ }
136
+ // 处理系统变量"当前语种ID"
137
+ if (this.variableName === '当前语种ID') {
138
+ this.handleCurrentLanguageIdSave(value);
139
+ return;
140
+ }
141
+ if (!this.args.releasedVariableService) {
142
+ this.onClosed({
143
+ value: value,
144
+ showValue: showValue,
145
+ enableNumericalOperation: false,
146
+ isNumericalOperation: this.isNumericalOperation,
147
+ variableRwType: 6
148
+ });
149
+ return;
150
+ }
151
+ this.args.releasedVariableService.getVariableWithValueTransform(this.variableName).subscribe(result => {
152
+ const valueTransform = JSON.parse(result.valueTransform);
153
+ if ((valueTransform === null || valueTransform === void 0 ? void 0 : valueTransform.Type) !== 0) {
154
+ this.isNumericalOperation = true;
110
155
  }
156
+ this.onClosed({
157
+ value: value,
158
+ showValue: showValue,
159
+ enableNumericalOperation: this.enableNumericalOperation,
160
+ isNumericalOperation: this.isNumericalOperation,
161
+ variableRwType: result.variableRwType
162
+ });
163
+ });
164
+ }
165
+ /**
166
+ * 处理"当前语种ID"系统变量的保存
167
+ */
168
+ handleCurrentLanguageIdSave(value) {
169
+ if (!this.args.guiContext || !this.args.guiContext.updateCurrentLanguageId) {
170
+ this.showValidationErrorInfo(this.localization.loadFailed);
171
+ this.isSubmitting = false;
172
+ return;
111
173
  }
112
- this.close({ value: this.value });
174
+ // 转换为数字类型
175
+ const languageId = value === '' || value == null ? null : Number(value);
176
+ // 调用 GuiContext 的语种切换方法
177
+ this.args.guiContext.updateCurrentLanguageId(languageId).then(() => {
178
+ // 语种切换成功,调用 onClosed 回调,让数字显示元件也能更新
179
+ this.onClosed({
180
+ value: value,
181
+ showValue: value,
182
+ enableNumericalOperation: false,
183
+ isNumericalOperation: false,
184
+ variableRwType: 6
185
+ });
186
+ }).catch(() => {
187
+ this.showValidationErrorInfo(this.localization.loadFailed);
188
+ this.isSubmitting = false;
189
+ });
113
190
  }
114
- close(modalResult) {
115
- this._onClosed.next(modalResult);
116
- this._onClosed.complete();
191
+ close() {
192
+ this.bsModalRef.hide();
117
193
  }
118
- validate() {
194
+ validate(event = null) {
195
+ if (event && event.keyCode === 13 && !this.validationError) {
196
+ this.save();
197
+ return;
198
+ }
119
199
  // 校验数值必填
120
200
  if (null == this.value || '' === this.value.trim()) {
121
201
  return this.showValidationErrorInfo(this.localization.numericalValueRequired);
@@ -193,12 +273,14 @@ __decorate([
193
273
  WriteValueModalComponent = __decorate([
194
274
  Component({
195
275
  selector: 'writeValueModal',
196
- template: "<form #writeValueForm=\"ngForm\" novalidate (ngSubmit)=\"save()\" bs-modal-drag> <div class=\"modal-header\"> <h4 class=\"modal-title\"> <span>{{localization.setting}}</span> <span>{{variableName}}</span> </h4> <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"close()\"> <span aria-hidden=\"true\">&times;</span> </button> </div> <div class=\"modal-body\"> <span class=\"write-value-range\">{{localization.writeValueRange}}:&nbsp;{{writeValueRangeText}} <span *ngIf=\"valueType\">({{valueType}})</span> </span> <input type=\"text\" name=\"valueInput\" autoFocus class=\"form-control write-value\" [(ngModel)]=\"value\" (keyup)=\"validate()\" autocomplete=\"off\"> <span class=\"help-block text-danger\" [hidden]=\"!validationError\">{{validationErrorText}}</span> </div> <div class=\"modal-footer\"> <button type=\"submit\" class=\"btn md-skip btn-primary btn-block\" [disabled]=\"validationError\">{{localization.submit}}</button> </div> </form> ",
197
- styles: [".modal-header { padding: 10px; border-color: transparent; } .modal-body { position: relative; padding: 0px 5px !important; padding-top: 10px !important; } .modal-title { display: unset; margin-left: -6px; font-size: 16px !important; } .form-control { margin: 0 5%; float: none; width: 90%; } .modal-footer { padding: 10px 4px 20px 5px !important; text-align: right; border-color: transparent; } .text-danger { display: block; color: #ed6b75; font-size: 14px; margin: 5px 0px 0px 15px; } .btn-primary { background-color: #3B97FC; border-color: #3B97FC; padding: 5px 30px; width: 90%; margin: 0 5%; height: 32px; } .write-value-range { color: #7f939e; font-size: 14px; margin-left: 15px; } .write-value { padding-left: 8px; margin-left: 16px; height: 32px; } "]
276
+ template: "<form #writeValueForm=\"ngForm\" novalidate (ngSubmit)=\"save()\" bs-modal-drag> <div class=\"modal-header\"> <h4 class=\"modal-title\"> <span>{{localization.setting}}</span> <span>{{displayVariableName}}</span> </h4> <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"close()\"> <span aria-hidden=\"true\">&times;</span> </button> </div> <div class=\"modal-body\"> <span class=\"write-value-range\">{{localization.writeValueRange}}:</span> <span> {{writeValueRangeText}} <span *ngIf=\"valueType\">({{valueType}})</span> </span> <input type=\"text\" name=\"valueInput\" autoFocus [class.form-control-write]=\"!isMobileMode\" class=\"form-control write-value\" [(ngModel)]=\"value\" (keyup)=\"validate($event)\" autocomplete=\"off\"> <span class=\"help-block text-danger\" [hidden]=\"!validationError\">{{validationErrorText}}</span> </div> <div class=\"modal-footer\" [class.modal-footer-write]=\"!isMobileMode\"> <button type=\"submit\" [class.btn-primary-write]=\"!isMobileMode\" class=\"btn md-skip btn-primary btn-block\" [disabled]=\"validationError || isSubmitting\"> <ng-container *ngIf=\"!isSubmitting\">{{localization.submit}}</ng-container> <ng-container *ngIf=\"isSubmitting\">{{localization.submitting}}</ng-container> </button> </div> </form> ",
277
+ styles: [".modal-header { padding: 10px; border-color: transparent; } .modal-body { position: relative; padding: 0px 5px !important; padding-top: 10px !important; } .modal-title { display: unset; margin-left: -6px; font-size: 16px !important; } .form-control { margin: 0 5%; float: none; width: 90%; } .form-control-write { margin: 0 20px; width: 585px; } .modal-footer { padding: 10px 5px 20px 5px !important; text-align: right; border-color: transparent; } .modal-footer-write { margin-right: 4px; padding: 10px 5px 20px 5px !important; } .text-danger { display: block; color: #ed6b75; font-size: 14px; margin: 5px 0px 0px 15px; } .btn-primary { background-color: #3B97FC; border-color: #3B97FC; padding: 5px 30px; width: 90%; margin: 0 5%; height: 32px; } .btn-primary-write { width: 585px; margin: 0 15px 0 0; } .write-value-range { color: #7f939e; font-size: 14px; margin-left: 15px; } .write-value { padding-left: 8px; margin-left: 16px; height: 32px; } "]
198
278
  }),
199
279
  __param(0, Inject(LOCALIZATION)),
200
280
  __metadata("design:paramtypes", [Object, DataTypeService,
201
281
  FractionDigitService,
202
- NumericalOperationService])
282
+ NumericalOperationService,
283
+ BsModalRef,
284
+ Injector])
203
285
  ], WriteValueModalComponent);
204
286
  export { WriteValueModalComponent };
@@ -21,12 +21,22 @@
21
21
  width: 90%;
22
22
  }
23
23
 
24
+ .form-control-write {
25
+ margin: 0 20px;
26
+ width: 585px;
27
+ }
28
+
24
29
  .modal-footer {
25
- padding: 10px 4px 20px 5px !important;
30
+ padding: 10px 5px 20px 5px !important;
26
31
  text-align: right;
27
32
  border-color: transparent;
28
33
  }
29
34
 
35
+ .modal-footer-write {
36
+ margin-right: 4px;
37
+ padding: 10px 5px 20px 5px !important;
38
+ }
39
+
30
40
  .text-danger {
31
41
  display: block;
32
42
  color: #ed6b75;
@@ -43,6 +53,11 @@
43
53
  height: 32px;
44
54
  }
45
55
 
56
+ .btn-primary-write {
57
+ width: 585px;
58
+ margin: 0 15px 0 0;
59
+ }
60
+
46
61
  .write-value-range {
47
62
  color: #7f939e;
48
63
  font-size: 14px;
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"WriteValueModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"writeValueModal","template":"<form #writeValueForm=\"ngForm\" novalidate (ngSubmit)=\"save()\" bs-modal-drag> <div class=\"modal-header\"> <h4 class=\"modal-title\"> <span>{{localization.setting}}</span> <span>{{variableName}}</span> </h4> <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"close()\"> <span aria-hidden=\"true\">&times;</span> </button> </div> <div class=\"modal-body\"> <span class=\"write-value-range\">{{localization.writeValueRange}}:&nbsp;{{writeValueRangeText}} <span *ngIf=\"valueType\">({{valueType}})</span> </span> <input type=\"text\" name=\"valueInput\" autoFocus class=\"form-control write-value\" [(ngModel)]=\"value\" (keyup)=\"validate()\" autocomplete=\"off\"> <span class=\"help-block text-danger\" [hidden]=\"!validationError\">{{validationErrorText}}</span> </div> <div class=\"modal-footer\"> <button type=\"submit\" class=\"btn md-skip btn-primary btn-block\" [disabled]=\"validationError\">{{localization.submit}}</button> </div> </form> ","styles":[".modal-header { padding: 10px; border-color: transparent; } .modal-body { position: relative; padding: 0px 5px !important; padding-top: 10px !important; } .modal-title { display: unset; margin-left: -6px; font-size: 16px !important; } .form-control { margin: 0 5%; float: none; width: 90%; } .modal-footer { padding: 10px 4px 20px 5px !important; text-align: right; border-color: transparent; } .text-danger { display: block; color: #ed6b75; font-size: 14px; margin: 5px 0px 0px 15px; } .btn-primary { background-color: #3B97FC; border-color: #3B97FC; padding: 5px 30px; width: 90%; margin: 0 5%; height: 32px; } .write-value-range { color: #7f939e; font-size: 14px; margin-left: 15px; } .write-value { padding-left: 8px; margin-left: 16px; height: 32px; } "]}]}],"members":{"invalidErrorText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":46,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":52,"character":9},"arguments":[{"__symbolic":"reference","module":"../../localization","name":"LOCALIZATION","line":52,"character":16}]}],null,null,null],"parameters":[{"__symbolic":"reference","module":"../../localization","name":"Localization","line":52,"character":51},{"__symbolic":"reference","module":"../../utils/data-type/data-type.service","name":"DataTypeService","line":53,"character":42},{"__symbolic":"reference","module":"../../utils/fraction-digit.service","name":"FractionDigitService","line":54,"character":47},{"__symbolic":"reference","module":"../../utils/numerical-operation.service","name":"NumericalOperationService","line":55,"character":52}]}],"ngOnInit":[{"__symbolic":"method"}],"initData":[{"__symbolic":"method"}],"setValueRangeAccordToDataParsed":[{"__symbolic":"method"}],"getWriteValueRangeText":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}],"showValidationErrorInfo":[{"__symbolic":"method"}],"hideValidationErrorInfo":[{"__symbolic":"method"}],"getFractionDigits":[{"__symbolic":"method"}],"formatWriteValue":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"WriteValueModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"writeValueModal","template":"<form #writeValueForm=\"ngForm\" novalidate (ngSubmit)=\"save()\" bs-modal-drag> <div class=\"modal-header\"> <h4 class=\"modal-title\"> <span>{{localization.setting}}</span> <span>{{displayVariableName}}</span> </h4> <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"close()\"> <span aria-hidden=\"true\">&times;</span> </button> </div> <div class=\"modal-body\"> <span class=\"write-value-range\">{{localization.writeValueRange}}:</span> <span> {{writeValueRangeText}} <span *ngIf=\"valueType\">({{valueType}})</span> </span> <input type=\"text\" name=\"valueInput\" autoFocus [class.form-control-write]=\"!isMobileMode\" class=\"form-control write-value\" [(ngModel)]=\"value\" (keyup)=\"validate($event)\" autocomplete=\"off\"> <span class=\"help-block text-danger\" [hidden]=\"!validationError\">{{validationErrorText}}</span> </div> <div class=\"modal-footer\" [class.modal-footer-write]=\"!isMobileMode\"> <button type=\"submit\" [class.btn-primary-write]=\"!isMobileMode\" class=\"btn md-skip btn-primary btn-block\" [disabled]=\"validationError || isSubmitting\"> <ng-container *ngIf=\"!isSubmitting\">{{localization.submit}}</ng-container> <ng-container *ngIf=\"isSubmitting\">{{localization.submitting}}</ng-container> </button> </div> </form> ","styles":[".modal-header { padding: 10px; border-color: transparent; } .modal-body { position: relative; padding: 0px 5px !important; padding-top: 10px !important; } .modal-title { display: unset; margin-left: -6px; font-size: 16px !important; } .form-control { margin: 0 5%; float: none; width: 90%; } .form-control-write { margin: 0 20px; width: 585px; } .modal-footer { padding: 10px 5px 20px 5px !important; text-align: right; border-color: transparent; } .modal-footer-write { margin-right: 4px; padding: 10px 5px 20px 5px !important; } .text-danger { display: block; color: #ed6b75; font-size: 14px; margin: 5px 0px 0px 15px; } .btn-primary { background-color: #3B97FC; border-color: #3B97FC; padding: 5px 30px; width: 90%; margin: 0 5%; height: 32px; } .btn-primary-write { width: 585px; margin: 0 15px 0 0; } .write-value-range { color: #7f939e; font-size: 14px; margin-left: 15px; } .write-value { padding-left: 8px; margin-left: 16px; height: 32px; } "]}]}],"members":{"invalidErrorText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":49,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":55,"character":9},"arguments":[{"__symbolic":"reference","module":"../../localization","name":"LOCALIZATION","line":55,"character":16}]}],null,null,null,null,null],"parameters":[{"__symbolic":"reference","module":"../../localization","name":"Localization","line":55,"character":51},{"__symbolic":"reference","module":"../../utils/data-type/data-type.service","name":"DataTypeService","line":56,"character":42},{"__symbolic":"reference","module":"../../utils/fraction-digit.service","name":"FractionDigitService","line":57,"character":47},{"__symbolic":"reference","module":"../../utils/numerical-operation.service","name":"NumericalOperationService","line":58,"character":52},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalRef","line":59,"character":37},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":60,"character":18}]}],"ngOnInit":[{"__symbolic":"method"}],"initData":[{"__symbolic":"method"}],"setValueRangeAccordToDataParsed":[{"__symbolic":"method"}],"getWriteValueRangeText":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"handleCurrentLanguageIdSave":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}],"showValidationErrorInfo":[{"__symbolic":"method"}],"hideValidationErrorInfo":[{"__symbolic":"method"}],"getFractionDigits":[{"__symbolic":"method"}],"formatWriteValue":[{"__symbolic":"method"}]}}}}]
@@ -0,0 +1,14 @@
1
+ import { ConditionalDisplayModel } from '../base/conditional-display-model';
2
+ import { Point, Size } from '../shared';
3
+ export interface AlarmModel extends ConditionalDisplayModel {
4
+ readonly version: number;
5
+ readonly size: Size;
6
+ readonly initSize?: Size;
7
+ readonly location: Point;
8
+ readonly generalSetting?: any;
9
+ readonly filterSetting?: any;
10
+ readonly widths: number[];
11
+ readonly heights: number[];
12
+ readonly columLabels: string[];
13
+ readonly levelText: string[];
14
+ }
File without changes
@@ -0,0 +1 @@
1
+ [{"__symbolic":"module","version":4,"metadata":{"AlarmModel":{"__symbolic":"interface"}}}]
@@ -19,4 +19,8 @@ export interface BarGraph extends ReadableModel {
19
19
  readonly upperLimitColor?: string;
20
20
  readonly lowerLimitColor?: string;
21
21
  readonly percentageFont?: FontStyleData;
22
+ readonly masterDivisionNumber: number;
23
+ readonly subDivisionNumber: number;
24
+ readonly integerDigits: number;
25
+ readonly fractionDigits: number;
22
26
  }
@@ -1,8 +1,29 @@
1
+ export interface TextLibrarySetting {
2
+ readonly labelType: 'text' | 'textLibrary';
3
+ readonly selectedTextLibraryItem?: string | number;
4
+ readonly selectedTextItem?: string | number;
5
+ }
6
+ export interface TextCultures {
7
+ readonly cultures: {
8
+ [languageCode: string]: string;
9
+ };
10
+ }
11
+ export interface FontStyleCultures {
12
+ readonly [languageCode: string]: {
13
+ readonly fontSize: string;
14
+ readonly fontStyle: string;
15
+ readonly fontColor: string;
16
+ readonly isUnderline: boolean;
17
+ readonly textAlign: string;
18
+ };
19
+ }
1
20
  export interface FontSettingModel {
2
- readonly text: string;
21
+ readonly text: string | TextCultures;
3
22
  readonly stroke: string;
4
23
  readonly font: string;
5
24
  readonly fontSize: string;
6
25
  readonly isUnderline: boolean;
7
26
  readonly textAlign: string;
27
+ readonly textLibrary?: TextLibrarySetting;
28
+ readonly fontStyleCultures?: FontStyleCultures;
8
29
  }
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"FontSettingModel":{"__symbolic":"interface"}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"TextLibrarySetting":{"__symbolic":"interface"},"TextCultures":{"__symbolic":"interface"},"FontStyleCultures":{"__symbolic":"interface"},"FontSettingModel":{"__symbolic":"interface"}}}]
@@ -7,4 +7,8 @@ export interface ReadableModel extends ConditionalEnableModel {
7
7
  readonly version?: number;
8
8
  readonly variableName?: string;
9
9
  readonly readVariable?: VariableDefinition;
10
+ readonly minVariable?: any;
11
+ readonly maxVariable?: any;
12
+ readonly minValueType?: any;
13
+ readonly maxValueType?: any;
10
14
  }
@@ -12,6 +12,7 @@ export interface CharacterDisplay extends ReadableModel, SecurityModel {
12
12
  readonly graphSetting: GraphSetting;
13
13
  readonly charCount: number;
14
14
  readonly size: Size;
15
+ readonly initSize?: Size;
15
16
  readonly useGraph: boolean;
16
17
  readonly accessPermission: any;
17
18
  readonly showVariableText?: boolean;
@@ -17,4 +17,5 @@ export interface DatetimeDisplay extends ConditionalDisplayModel {
17
17
  readonly version: number;
18
18
  readonly useGraph?: boolean;
19
19
  readonly graphSetting?: GraphSetting;
20
+ readonly timeZone?: string;
20
21
  }
@@ -1,6 +1,17 @@
1
1
  import { Font } from '../shared/text/font';
2
2
  export interface HistoricalCurveAxisSettings {
3
+ readonly yAxisRangeType: AxisRangeType;
4
+ readonly yAxisMax?: number;
5
+ readonly yAxisMin?: number;
3
6
  readonly axisColor: string;
4
7
  readonly showAxisLabel: boolean;
5
8
  readonly axisLabelFont: Font;
9
+ readonly showTick?: boolean;
10
+ readonly xAxisTickColor?: string;
11
+ readonly yAxisTickColor?: string;
12
+ readonly filterBackgroudColor?: string;
13
+ }
14
+ export declare enum AxisRangeType {
15
+ Auto = 0,
16
+ Custom = 1
6
17
  }
@@ -0,0 +1,5 @@
1
+ export var AxisRangeType;
2
+ (function (AxisRangeType) {
3
+ AxisRangeType[AxisRangeType["Auto"] = 0] = "Auto";
4
+ AxisRangeType[AxisRangeType["Custom"] = 1] = "Custom"; // 自定义范围
5
+ })(AxisRangeType || (AxisRangeType = {}));
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"HistoricalCurveAxisSettings":{"__symbolic":"interface"}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"HistoricalCurveAxisSettings":{"__symbolic":"interface"},"AxisRangeType":{"Auto":0,"Custom":1}}}]
@@ -7,6 +7,14 @@ export interface HistroicalCurveChannelModel {
7
7
  * 连接线颜色
8
8
  */
9
9
  readonly connectorColor: string;
10
+ /**
11
+ * 启用标记点
12
+ */
13
+ readonly enablePoint: boolean;
14
+ /**
15
+ * 标记点颜色
16
+ */
17
+ readonly pointColor: string;
10
18
  /**
11
19
  * 是否投影颜色
12
20
  */