@mxtommy/kip 1.3.0 → 2.0.0

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 (273) hide show
  1. package/CHANGELOG.md +38 -3
  2. package/CONTRIBUTORS.md +4 -4
  3. package/KipGaugeSample3-1024x508.png +0 -0
  4. package/LICENSE +21 -0
  5. package/README.md +80 -42
  6. package/package.json +52 -46
  7. package/public/3rdpartylicenses.txt +61 -412
  8. package/public/assets/NoSleep.min.js +2 -2
  9. package/public/assets/icon-64x64.png +0 -0
  10. package/public/index.html +3 -3
  11. package/public/main.9dba30de44eed02b.js +1 -0
  12. package/public/manifest.json +9 -4
  13. package/public/polyfills.d1da7d2e907c253a.js +1 -0
  14. package/public/runtime.e75056c32c37f59d.js +1 -0
  15. package/public/styles.6b1c2c92be18a2cc.css +1 -0
  16. package/.angulardoc.json +0 -4
  17. package/angular.json +0 -162
  18. package/e2e/app.e2e-spec.ts +0 -14
  19. package/e2e/app.po.ts +0 -11
  20. package/e2e/tsconfig.e2e.json +0 -14
  21. package/karma.conf.js +0 -31
  22. package/public/main-es2018.98175eb4c61ccaf7eb17.js +0 -1
  23. package/public/main-es5.98175eb4c61ccaf7eb17.js +0 -1
  24. package/public/polyfills-es2018.3a61665863c173cd6ba3.js +0 -1
  25. package/public/polyfills-es5.44827ae4ff4e41de51fb.js +0 -1
  26. package/public/runtime-es2018.baedb88c6d2abacae2b8.js +0 -1
  27. package/public/runtime-es5.baedb88c6d2abacae2b8.js +0 -1
  28. package/public/styles.b92ae2c466c89712209d.css +0 -5
  29. package/src/app/alarm-menu/alarm-menu.component.html +0 -55
  30. package/src/app/alarm-menu/alarm-menu.component.scss +0 -52
  31. package/src/app/alarm-menu/alarm-menu.component.spec.ts +0 -25
  32. package/src/app/alarm-menu/alarm-menu.component.ts +0 -186
  33. package/src/app/app-help/app-help.component.css +0 -4
  34. package/src/app/app-help/app-help.component.html +0 -135
  35. package/src/app/app-help/app-help.component.ts +0 -45
  36. package/src/app/app-settings.service.spec.ts +0 -15
  37. package/src/app/app-settings.service.ts +0 -478
  38. package/src/app/app.component.css +0 -39
  39. package/src/app/app.component.html +0 -93
  40. package/src/app/app.component.scss +0 -79
  41. package/src/app/app.component.spec.ts +0 -32
  42. package/src/app/app.component.ts +0 -191
  43. package/src/app/app.module.ts +0 -200
  44. package/src/app/config.blank.const.ts +0 -52
  45. package/src/app/config.blank.notification.const.ts +0 -19
  46. package/src/app/config.blank.units.const.ts +0 -23
  47. package/src/app/config.demo.const.ts +0 -384
  48. package/src/app/data-browser/data-browser.component.css +0 -29
  49. package/src/app/data-browser/data-browser.component.html +0 -44
  50. package/src/app/data-browser/data-browser.component.spec.ts +0 -25
  51. package/src/app/data-browser/data-browser.component.ts +0 -91
  52. package/src/app/data-browser-row/data-browser-row-unit-modal.html +0 -17
  53. package/src/app/data-browser-row/data-browser-row.component.css +0 -10
  54. package/src/app/data-browser-row/data-browser-row.component.html +0 -5
  55. package/src/app/data-browser-row/data-browser-row.component.ts +0 -79
  56. package/src/app/data-set.service.spec.ts +0 -15
  57. package/src/app/data-set.service.ts +0 -273
  58. package/src/app/dynamic-widget.directive.spec.ts +0 -8
  59. package/src/app/dynamic-widget.directive.ts +0 -11
  60. package/src/app/filter-self.pipe.spec.ts +0 -8
  61. package/src/app/filter-self.pipe.ts +0 -14
  62. package/src/app/fit-text.directive.spec.ts +0 -8
  63. package/src/app/fit-text.directive.ts +0 -61
  64. package/src/app/gauge-steel/gauge-steel.component.css +0 -5
  65. package/src/app/gauge-steel/gauge-steel.component.html +0 -4
  66. package/src/app/gauge-steel/gauge-steel.component.spec.ts +0 -25
  67. package/src/app/gauge-steel/gauge-steel.component.ts +0 -282
  68. package/src/app/gauges-module/base-gauge.ts +0 -301
  69. package/src/app/gauges-module/gauges.module.ts +0 -17
  70. package/src/app/gauges-module/linear-gauge.ts +0 -50
  71. package/src/app/gauges-module/radial-gauge.ts +0 -48
  72. package/src/app/layout-split/layout-split.component.html +0 -30
  73. package/src/app/layout-split/layout-split.component.scss +0 -33
  74. package/src/app/layout-split/layout-split.component.spec.ts +0 -25
  75. package/src/app/layout-split/layout-split.component.ts +0 -59
  76. package/src/app/layout-splits.service.spec.ts +0 -15
  77. package/src/app/layout-splits.service.ts +0 -284
  78. package/src/app/modal-path-selector/modal-path-selector.component.html +0 -62
  79. package/src/app/modal-path-selector/modal-path-selector.component.scss +0 -39
  80. package/src/app/modal-path-selector/modal-path-selector.component.spec.ts +0 -25
  81. package/src/app/modal-path-selector/modal-path-selector.component.ts +0 -132
  82. package/src/app/modal-widget/modal-widget.component.css +0 -33
  83. package/src/app/modal-widget/modal-widget.component.html +0 -341
  84. package/src/app/modal-widget/modal-widget.component.spec.ts +0 -25
  85. package/src/app/modal-widget/modal-widget.component.ts +0 -84
  86. package/src/app/notifications.service.spec.ts +0 -12
  87. package/src/app/notifications.service.ts +0 -392
  88. package/src/app/object-keys.pipe.spec.ts +0 -8
  89. package/src/app/object-keys.pipe.ts +0 -13
  90. package/src/app/reset-config/reset-config.component.css +0 -0
  91. package/src/app/reset-config/reset-config.component.html +0 -3
  92. package/src/app/reset-config/reset-config.component.spec.ts +0 -25
  93. package/src/app/reset-config/reset-config.component.ts +0 -31
  94. package/src/app/root-display/root-display.component.css +0 -0
  95. package/src/app/root-display/root-display.component.html +0 -4
  96. package/src/app/root-display/root-display.component.spec.ts +0 -25
  97. package/src/app/root-display/root-display.component.ts +0 -57
  98. package/src/app/safe.pipe.ts +0 -16
  99. package/src/app/settings/settings.component.css +0 -9
  100. package/src/app/settings/settings.component.html +0 -25
  101. package/src/app/settings/settings.component.spec.ts +0 -25
  102. package/src/app/settings/settings.component.ts +0 -22
  103. package/src/app/settings-config/settings-config.component.css +0 -39
  104. package/src/app/settings-config/settings-config.component.html +0 -118
  105. package/src/app/settings-config/settings-config.component.spec.ts +0 -25
  106. package/src/app/settings-config/settings-config.component.ts +0 -161
  107. package/src/app/settings-datasets/settings-datasets.component.html +0 -43
  108. package/src/app/settings-datasets/settings-datasets.component.scss +0 -39
  109. package/src/app/settings-datasets/settings-datasets.component.spec.ts +0 -25
  110. package/src/app/settings-datasets/settings-datasets.component.ts +0 -98
  111. package/src/app/settings-datasets/settings-datasets.modal.html +0 -54
  112. package/src/app/settings-notifications/settings-notifications.component.css +0 -0
  113. package/src/app/settings-notifications/settings-notifications.component.html +0 -65
  114. package/src/app/settings-notifications/settings-notifications.component.spec.ts +0 -25
  115. package/src/app/settings-notifications/settings-notifications.component.ts +0 -29
  116. package/src/app/settings-signalk/settings-signalk.component.css +0 -3
  117. package/src/app/settings-signalk/settings-signalk.component.html +0 -89
  118. package/src/app/settings-signalk/settings-signalk.component.spec.ts +0 -25
  119. package/src/app/settings-signalk/settings-signalk.component.ts +0 -174
  120. package/src/app/settings-units/settings-units.component.css +0 -4
  121. package/src/app/settings-units/settings-units.component.html +0 -19
  122. package/src/app/settings-units/settings-units.component.spec.ts +0 -25
  123. package/src/app/settings-units/settings-units.component.ts +0 -62
  124. package/src/app/settings-zones/settings-zones.component.css +0 -22
  125. package/src/app/settings-zones/settings-zones.component.html +0 -70
  126. package/src/app/settings-zones/settings-zones.component.ts +0 -154
  127. package/src/app/settings-zones/settings-zones.modal.css +0 -14
  128. package/src/app/settings-zones/settings-zones.modal.html +0 -39
  129. package/src/app/signalk-connection.service.ts +0 -344
  130. package/src/app/signalk-delta.service.spec.ts +0 -15
  131. package/src/app/signalk-delta.service.ts +0 -97
  132. package/src/app/signalk-full.service.spec.ts +0 -15
  133. package/src/app/signalk-full.service.ts +0 -99
  134. package/src/app/signalk-interfaces.ts +0 -129
  135. package/src/app/signalk-requests.service.spec.ts +0 -12
  136. package/src/app/signalk-requests.service.ts +0 -180
  137. package/src/app/signalk.service.spec.ts +0 -15
  138. package/src/app/signalk.service.ts +0 -428
  139. package/src/app/svg-autopilot/svg-autopilot.component.html +0 -1036
  140. package/src/app/svg-autopilot/svg-autopilot.component.spec.ts +0 -25
  141. package/src/app/svg-autopilot/svg-autopilot.component.ts +0 -174
  142. package/src/app/svg-simple-linear-gauge/svg-simple-linear-gauge.component.html +0 -119
  143. package/src/app/svg-simple-linear-gauge/svg-simple-linear-gauge.component.scss +0 -0
  144. package/src/app/svg-simple-linear-gauge/svg-simple-linear-gauge.component.spec.ts +0 -25
  145. package/src/app/svg-simple-linear-gauge/svg-simple-linear-gauge.component.ts +0 -49
  146. package/src/app/svg-wind/svg-wind.component.css +0 -0
  147. package/src/app/svg-wind/svg-wind.component.html +0 -969
  148. package/src/app/svg-wind/svg-wind.component.scss +0 -76
  149. package/src/app/svg-wind/svg-wind.component.spec.ts +0 -25
  150. package/src/app/svg-wind/svg-wind.component.ts +0 -280
  151. package/src/app/unit-window/unit-window.component.css +0 -37
  152. package/src/app/unit-window/unit-window.component.html +0 -8
  153. package/src/app/unit-window/unit-window.component.spec.ts +0 -25
  154. package/src/app/unit-window/unit-window.component.ts +0 -134
  155. package/src/app/unit-window/unit-window.modal.html +0 -25
  156. package/src/app/units.service.ts +0 -300
  157. package/src/app/widget-autopilot/widget-autopilot.component.html +0 -78
  158. package/src/app/widget-autopilot/widget-autopilot.component.scss +0 -191
  159. package/src/app/widget-autopilot/widget-autopilot.component.spec.ts +0 -25
  160. package/src/app/widget-autopilot/widget-autopilot.component.ts +0 -774
  161. package/src/app/widget-blank/widget-blank.component.html +0 -5
  162. package/src/app/widget-blank/widget-blank.component.scss +0 -21
  163. package/src/app/widget-blank/widget-blank.component.spec.ts +0 -25
  164. package/src/app/widget-blank/widget-blank.component.ts +0 -17
  165. package/src/app/widget-gauge/widget-gauge.component.css +0 -26
  166. package/src/app/widget-gauge/widget-gauge.component.html +0 -29
  167. package/src/app/widget-gauge/widget-gauge.component.spec.ts +0 -25
  168. package/src/app/widget-gauge/widget-gauge.component.ts +0 -120
  169. package/src/app/widget-gauge-ng-linear/widget-gauge-ng-linear.component.html +0 -126
  170. package/src/app/widget-gauge-ng-linear/widget-gauge-ng-linear.component.scss +0 -94
  171. package/src/app/widget-gauge-ng-linear/widget-gauge-ng-linear.component.spec.ts +0 -25
  172. package/src/app/widget-gauge-ng-linear/widget-gauge-ng-linear.component.ts +0 -424
  173. package/src/app/widget-gauge-ng-radial/widget-gauge-ng-radial.component.html +0 -122
  174. package/src/app/widget-gauge-ng-radial/widget-gauge-ng-radial.component.scss +0 -69
  175. package/src/app/widget-gauge-ng-radial/widget-gauge-ng-radial.component.spec.ts +0 -25
  176. package/src/app/widget-gauge-ng-radial/widget-gauge-ng-radial.component.ts +0 -553
  177. package/src/app/widget-historical/widget-historical.component.css +0 -31
  178. package/src/app/widget-historical/widget-historical.component.html +0 -14
  179. package/src/app/widget-historical/widget-historical.component.scss +0 -0
  180. package/src/app/widget-historical/widget-historical.component.spec.ts +0 -25
  181. package/src/app/widget-historical/widget-historical.component.ts +0 -306
  182. package/src/app/widget-iframe/widget-iframe.component.css +0 -12
  183. package/src/app/widget-iframe/widget-iframe.component.html +0 -21
  184. package/src/app/widget-iframe/widget-iframe.component.spec.ts +0 -25
  185. package/src/app/widget-iframe/widget-iframe.component.ts +0 -63
  186. package/src/app/widget-list.service.spec.ts +0 -15
  187. package/src/app/widget-list.service.ts +0 -135
  188. package/src/app/widget-manager.service.spec.ts +0 -15
  189. package/src/app/widget-manager.service.ts +0 -141
  190. package/src/app/widget-numeric/widget-numeric.component.html +0 -13
  191. package/src/app/widget-numeric/widget-numeric.component.scss +0 -52
  192. package/src/app/widget-numeric/widget-numeric.component.spec.ts +0 -25
  193. package/src/app/widget-numeric/widget-numeric.component.ts +0 -457
  194. package/src/app/widget-simple-linear/widget-simple-linear.component.html +0 -28
  195. package/src/app/widget-simple-linear/widget-simple-linear.component.scss +0 -64
  196. package/src/app/widget-simple-linear/widget-simple-linear.component.spec.ts +0 -25
  197. package/src/app/widget-simple-linear/widget-simple-linear.component.ts +0 -199
  198. package/src/app/widget-state/widget-state.component.html +0 -27
  199. package/src/app/widget-state/widget-state.component.scss +0 -68
  200. package/src/app/widget-state/widget-state.component.spec.ts +0 -25
  201. package/src/app/widget-state/widget-state.component.ts +0 -178
  202. package/src/app/widget-switch/widget-switch.component.css +0 -70
  203. package/src/app/widget-switch/widget-switch.component.html +0 -17
  204. package/src/app/widget-switch/widget-switch.component.spec.ts +0 -25
  205. package/src/app/widget-switch/widget-switch.component.ts +0 -134
  206. package/src/app/widget-text-generic/widget-text-generic.component.css +0 -55
  207. package/src/app/widget-text-generic/widget-text-generic.component.html +0 -9
  208. package/src/app/widget-text-generic/widget-text-generic.component.spec.ts +0 -25
  209. package/src/app/widget-text-generic/widget-text-generic.component.ts +0 -253
  210. package/src/app/widget-tutorial/widget-tutorial.component.css +0 -0
  211. package/src/app/widget-tutorial/widget-tutorial.component.html +0 -34
  212. package/src/app/widget-tutorial/widget-tutorial.component.spec.ts +0 -25
  213. package/src/app/widget-tutorial/widget-tutorial.component.ts +0 -18
  214. package/src/app/widget-unknown/widget-unknown.component.css +0 -0
  215. package/src/app/widget-unknown/widget-unknown.component.html +0 -3
  216. package/src/app/widget-unknown/widget-unknown.component.spec.ts +0 -25
  217. package/src/app/widget-unknown/widget-unknown.component.ts +0 -15
  218. package/src/app/widget-wind/widget-wind.component.css +0 -24
  219. package/src/app/widget-wind/widget-wind.component.html +0 -20
  220. package/src/app/widget-wind/widget-wind.component.spec.ts +0 -25
  221. package/src/app/widget-wind/widget-wind.component.ts +0 -369
  222. package/src/assets/.gitkeep +0 -0
  223. package/src/assets/NoSleep.min.js +0 -2
  224. package/src/assets/alarm.mp3 +0 -0
  225. package/src/assets/alert.mp3 +0 -0
  226. package/src/assets/alertl.old.mp3 +0 -0
  227. package/src/assets/emergency.mp3 +0 -0
  228. package/src/assets/fontawesome6/css/all.min.css +0 -6
  229. package/src/assets/fontawesome6/webfonts/fa-brands-400.ttf +0 -0
  230. package/src/assets/fontawesome6/webfonts/fa-brands-400.woff2 +0 -0
  231. package/src/assets/fontawesome6/webfonts/fa-regular-400.ttf +0 -0
  232. package/src/assets/fontawesome6/webfonts/fa-regular-400.woff2 +0 -0
  233. package/src/assets/fontawesome6/webfonts/fa-solid-900.ttf +0 -0
  234. package/src/assets/fontawesome6/webfonts/fa-solid-900.woff2 +0 -0
  235. package/src/assets/fontawesome6/webfonts/fa-v4compatibility.ttf +0 -0
  236. package/src/assets/fontawesome6/webfonts/fa-v4compatibility.woff2 +0 -0
  237. package/src/assets/icon-192x192.png +0 -0
  238. package/src/assets/icon-256x256.png +0 -0
  239. package/src/assets/icon-384x384.png +0 -0
  240. package/src/assets/icon-512x512.png +0 -0
  241. package/src/assets/notification.mp3 +0 -0
  242. package/src/assets/steelseries-min.js +0 -25
  243. package/src/assets/steelseries-min.js.map +0 -8
  244. package/src/assets/steelseries.js +0 -15834
  245. package/src/assets/svg-autopilot-inkscape-plain.svg +0 -983
  246. package/src/assets/svg-wind-inkscape.svg +0 -1358
  247. package/src/assets/tween-min.js +0 -1
  248. package/src/assets/tween.js +0 -381
  249. package/src/assets/warn.mp3 +0 -0
  250. package/src/environments/environment.prod.ts +0 -3
  251. package/src/environments/environment.ts +0 -8
  252. package/src/favicon.ico +0 -0
  253. package/src/index.html +0 -20
  254. package/src/main.ts +0 -11
  255. package/src/manifest.json +0 -33
  256. package/src/polyfills.ts +0 -80
  257. package/src/styles.css +0 -47
  258. package/src/styles.scss +0 -157
  259. package/src/test.ts +0 -32
  260. package/src/themes/darkBlueTheme.scss +0 -117
  261. package/src/themes/defaultTheme.scss +0 -50
  262. package/src/themes/highContrastTheme.scss +0 -47
  263. package/src/themes/modernTheme.scss +0 -143
  264. package/src/themes/nightMode.scss +0 -185
  265. package/src/themes/platypusTheme.scss +0 -80
  266. package/src/themes/signalkTheme.scss +0 -112
  267. package/src/tsconfig.app.json +0 -15
  268. package/src/tsconfig.spec.json +0 -20
  269. package/src/typings.d.ts +0 -5
  270. package/tsconfig.json +0 -24
  271. package/tslint.json +0 -143
  272. /package/{KipGaugeSample-1-1024x545.png → KipGaugeSample1-1024x545.png} +0 -0
  273. /package/{KipMonitor-1024x488.png → KipGaugeSample2-1024x488.png} +0 -0
@@ -1,25 +0,0 @@
1
- import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
2
-
3
- import { SvgAutopilotComponent } from './svg-autopilot.component';
4
-
5
- describe('SvgAutopilotComponent', () => {
6
- let component: SvgAutopilotComponent;
7
- let fixture: ComponentFixture<SvgAutopilotComponent>;
8
-
9
- beforeEach(waitForAsync(() => {
10
- TestBed.configureTestingModule({
11
- declarations: [ SvgAutopilotComponent ]
12
- })
13
- .compileComponents();
14
- }));
15
-
16
- beforeEach(() => {
17
- fixture = TestBed.createComponent(SvgAutopilotComponent);
18
- component = fixture.componentInstance;
19
- fixture.detectChanges();
20
- });
21
-
22
- it('should create', () => {
23
- expect(component).toBeTruthy();
24
- });
25
- });
@@ -1,174 +0,0 @@
1
- import { Component, Input, ViewChild, ElementRef, SimpleChanges } from '@angular/core';
2
- import { trigger, state, style, animate, transition } from '@angular/animations';
3
-
4
-
5
- @Component({
6
- selector: 'app-svg-autopilot',
7
- templateUrl: './svg-autopilot.component.html',
8
- // uses svg-wind SCSS styles
9
- animations: [
10
- trigger('fadeInOut', [
11
- state('connected', style({
12
- opacity: 0,
13
- })),
14
- state('disconnected', style({
15
- opacity: 1,
16
- })),
17
- transition('connected => disconnected', [
18
- animate('.3s')
19
- ]),
20
- transition('disconnected => connected', [
21
- animate('1s')
22
- ]),
23
- ]),
24
- ]
25
- })
26
- export class SvgAutopilotComponent {
27
- // AP screen
28
- @ViewChild('apStencil', {static: true, read: ElementRef}) ApStencil: ElementRef;
29
- @ViewChild('countDown', {static: true, read: ElementRef}) countDown: ElementRef;
30
-
31
- // SVG
32
- @ViewChild('compassAnimate', {static: true, read: ElementRef}) compassAnimate: ElementRef;
33
- @ViewChild('appWindAnimate', {static: true, read: ElementRef}) appWindAnimate: ElementRef;
34
- @ViewChild('rudderPrtAnimate', {static: true, read: ElementRef}) rudderPrtAnimate: ElementRef;
35
- @ViewChild('rudderStbAnimate', {static: true, read: ElementRef}) rudderStbAnimate: ElementRef;
36
-
37
- @Input('compassHeading') compassHeading: number;
38
- @Input('appWindAngle') appWindAngle: number;
39
- @Input('rudderAngle') rudderAngle: number;
40
- @Input('apState') apState: string;
41
- @Input('apTargetAppWindAngle') apTargetAppWindAngle: string;
42
- @Input('isApConnected') isApConnected: boolean;
43
-
44
- constructor() { }
45
-
46
- // compass
47
- oldCompassRotate: number = 0;
48
- newCompassRotate: number = 0;
49
- headingValue: string ="0";
50
-
51
- // Apparent wind
52
- oldAppWindAngle: string = "0";
53
- newAppWindAngle: string = "0";
54
- oldAppWindRotateAngle: string = "0";
55
- newAppWindRotateAngle: string = "0";
56
-
57
- // rudder
58
- oldRudderPrtAngle: number = 0;
59
- newRudderPrtAngle: number = 0;
60
- oldRudderStbAngle: number = 0;
61
- newRudderStbAngle: number = 0;
62
-
63
- activityIconVisibility: string = "hidden;";
64
- errorIconVisibility: string = "hidden";
65
- msgStencilVisibility: string = "hidden";
66
- msgStencilInnerHTML: string = "Empty Message Stencil";
67
- errorStencilVisibility: string = "hidden";
68
- errorStencilInnerText: string = "Empty Error Stencil";
69
- messageVisibility: string = "hidden";
70
- messageInnerText: string = "";
71
-
72
-
73
- ngOnChanges(changes: SimpleChanges) {
74
-
75
- //heading
76
- if (changes.compassHeading) {
77
- if (! changes.compassHeading.firstChange) {
78
- this.oldCompassRotate = this.newCompassRotate;
79
- this.newCompassRotate = changes.compassHeading.currentValue;
80
- this.headingValue = this.newCompassRotate.toFixed(0);
81
- this.compassAnimate.nativeElement.beginElement();
82
- }
83
- }
84
-
85
- //AP State
86
- if (changes.apState) {
87
- if (! changes.apState.firstChange) {
88
- this.apState = this.apState.toUpperCase();
89
- }
90
- }
91
-
92
- //AP Target Apparent Wind Angle
93
- if (changes.apTargetAppWindAngle) {
94
- if (! changes.apTargetAppWindAngle.firstChange) {
95
- this.apTargetAppWindAngle = changes.apTargetAppWindAngle.currentValue.toFixed(0);
96
- }
97
- }
98
-
99
- //appWindAngle
100
- if (changes.appWindAngle) {
101
- if (! changes.appWindAngle.firstChange) {
102
- this.oldAppWindAngle = this.newAppWindAngle;
103
- this.newAppWindAngle = changes.appWindAngle.currentValue.toFixed(0);
104
-
105
- let oldAngle = Number(this.oldAppWindAngle)
106
- let newAngle = Number(this.newAppWindAngle);
107
- let diff = oldAngle - newAngle;
108
-
109
- // only update if on DOM and value rounded changed
110
- if (this.appWindAnimate && (diff != 0)) {
111
- // Special cases to smooth out passing between 359 to/from 0
112
- // if more than half the circle, it could need to go over the 359 / 0 values
113
- if ( Math.abs(diff) > 180 ) {
114
- // In what direction are we moving?
115
- if (Math.sign(diff) == 1) {
116
- if (oldAngle == 359) {
117
- // special cases
118
- this.oldAppWindAngle = "0";
119
- this.appWindAnimate.nativeElement.beginElement();
120
- } else {
121
- this.newAppWindAngle = "359";
122
- this.appWindAnimate.nativeElement.beginElement();
123
- this.oldAppWindAngle = "0";
124
- this.newAppWindAngle = changes.appWindAngle.currentValue.toFixed(0);
125
- this.appWindAnimate.nativeElement.beginElement();
126
- }
127
- } else {
128
- if (oldAngle == 0) {
129
- // special cases
130
- this.oldAppWindAngle = "359";
131
- this.appWindAnimate.nativeElement.beginElement();
132
- } else {
133
- this.newAppWindAngle = "0";
134
- this.appWindAnimate.nativeElement.beginElement();
135
- this.oldAppWindAngle = "359";
136
- this.newAppWindAngle = changes.appWindAngle.currentValue.toFixed(0);
137
- this.appWindAnimate.nativeElement.beginElement();
138
- }
139
- }
140
- } else {
141
- this.appWindAnimate.nativeElement.beginElement();
142
- }
143
- }
144
- }
145
- }
146
-
147
- //rudderAngle
148
- if (changes.rudderAngle) {
149
- if (! changes.rudderAngle.firstChange) {
150
- if (changes.rudderAngle.currentValue <=0) {
151
- this.oldRudderPrtAngle = 0;
152
- this.newRudderPrtAngle = 0;
153
-
154
- this.oldRudderStbAngle = this.newRudderStbAngle
155
- this.newRudderStbAngle = Math.round(changes.rudderAngle.currentValue * 7.16 * -1); //pixel to angle ratio for rudder box and set positive
156
- } else {
157
- this.oldRudderStbAngle = 0;
158
- this.newRudderStbAngle = 0;
159
-
160
- this.oldRudderPrtAngle = this.newRudderPrtAngle;
161
- this.newRudderPrtAngle = Math.round(changes.rudderAngle.currentValue * 7.16); //pixel to angle ratio for rudder box
162
- }
163
-
164
- if (this.rudderPrtAnimate) { // only update if on dom...
165
- this.rudderPrtAnimate.nativeElement.beginElement();
166
- }
167
- if (this.rudderStbAnimate) { // only update if on dom...
168
- this.rudderStbAnimate.nativeElement.beginElement();
169
- }
170
- }
171
- }
172
- }
173
-
174
- }
@@ -1,119 +0,0 @@
1
-
2
- <svg
3
- xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
4
- xmlns:dc="http://purl.org/dc/elements/1.1/"
5
- xmlns:cc="http://creativecommons.org/ns#"
6
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
7
- xmlns:svg="http://www.w3.org/2000/svg"
8
- xmlns="http://www.w3.org/2000/svg"
9
- xmlns:xlink="http://www.w3.org/1999/xlink"
10
- height="100%"
11
- width="100%"
12
- viewBox="0 0 205 50"
13
- version="1.1"
14
- id="svg8">
15
- <defs
16
- id="defs2">
17
- <linearGradient id="gaugeBarGradient">
18
- <stop
19
- id="stop849"
20
- offset="0"
21
- style="stop-opacity:1;"
22
- [style.stop-color]="barColorGradient" />
23
- <stop
24
- id="stop851"
25
- offset="0.40"
26
- style="stop-opacity:0;"
27
- [style.stop-color]="barColorGradient" />
28
- </linearGradient>
29
- <linearGradient
30
- gradientTransform="translate(5,-30)"
31
- gradientUnits="userSpaceOnUse"
32
- y2="34.5"
33
- x2="-5"
34
- y1="34.5"
35
- x1="-6"
36
- id="linearGradient855"
37
- xlink:href="#gaugeBarGradient" />
38
- </defs>
39
- <g
40
- id="layer1"
41
- style="display:inline">
42
- <rect
43
- style="opacity:1;fill-opacity:1;stroke:none;stroke-width:0.265899;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
44
- [style.fill]="barColorBackground"
45
- id="GaugeBackground"
46
- width="195"
47
- height="9"
48
- x="5"
49
- y="30"
50
- ry="0" />
51
- <defs>
52
- <g
53
- id="gaugeBar">
54
- <rect
55
- id="gaugeValue"
56
- width="1"
57
- height="9"
58
- x="0"
59
- y="0"
60
- ry="0"
61
- style="mix-blend-mode:normal;fill-opacity:1;stroke-width:0.0864229;"
62
- />
63
- <rect
64
- id="GaugeValueGradient"
65
- transform="scale(-1,1)"
66
- width="1"
67
- height="9"
68
- x="-1"
69
- y="0"
70
- ry="0"
71
- style="display:inline;opacity:0.38141;mix-blend-mode:multiply;fill:url(#linearGradient855);fill-opacity:1;stroke-width:0.0864229"/>
72
- </g>
73
- </defs>
74
- <use xlink:href="#gaugeBar" transform="translate(5,30)" [style.fill]="barColor">
75
- <animateTransform #gaugeBarAnimate attributeName="transform"
76
- type="scale"
77
- [attr.from]="oldGaugeValue + ' 1'"
78
- [attr.to]="newGaugeValue +' 1'"
79
- begin="indefinite"
80
- dur="0.5s"
81
- additive="sum"
82
- fill="freeze" />
83
- </use>
84
- </g>
85
- <g
86
- id="layer2"
87
- style="display:inline">
88
- <text
89
- xml:space="preserve"
90
- class="wind-text"
91
- style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:12.7px;line-height:1.25;font-family:Arial;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;"
92
- x="4.1731763"
93
- y="25.413595"
94
- id="displayNameText"><tspan
95
- id="tspan1945"
96
- x="4.1731763"
97
- y="25.413595"
98
- style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:12.7px;font-family:Arial;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;">{{displayName}}</tspan>
99
- </text>
100
- <text
101
- text-anchor="end"
102
- id="gaugeTexts"
103
- y="25.293016"
104
- x="200.37138"
105
- class="wind-text"
106
- style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.5778px;line-height:1.25;font-family:Arial;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;"
107
- xml:space="preserve">
108
- <tspan
109
- style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.5778px;font-family:Arial;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;"
110
- y="25.293016"
111
- x="200.37138"
112
- id="valueText">{{dataValue}}</tspan>
113
- <tspan
114
- dy="-9"
115
- id="unitText"
116
- style="text-transform: capitalize;font-size:9.87778px">{{unitLabel}}</tspan>
117
- </text>
118
- </g>
119
- </svg>
@@ -1,25 +0,0 @@
1
- import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
2
-
3
- import { SvgSimpleLinearGaugeComponent } from './svg-simple-linear-gauge.component';
4
-
5
- describe('SvgSimpleLinearGaugeComponent', () => {
6
- let component: SvgSimpleLinearGaugeComponent;
7
- let fixture: ComponentFixture<SvgSimpleLinearGaugeComponent>;
8
-
9
- beforeEach(waitForAsync(() => {
10
- TestBed.configureTestingModule({
11
- declarations: [ SvgSimpleLinearGaugeComponent ]
12
- })
13
- .compileComponents();
14
- }));
15
-
16
- beforeEach(() => {
17
- fixture = TestBed.createComponent(SvgSimpleLinearGaugeComponent);
18
- component = fixture.componentInstance;
19
- fixture.detectChanges();
20
- });
21
-
22
- it('should create', () => {
23
- expect(component).toBeTruthy();
24
- });
25
- });
@@ -1,49 +0,0 @@
1
- import { ViewChild, ElementRef, Input, Component, SimpleChanges, OnChanges } from '@angular/core';
2
-
3
- @Component({
4
- selector: 'svg-simple-linear-gauge',
5
- templateUrl: './svg-simple-linear-gauge.component.html',
6
- styleUrls: ['./svg-simple-linear-gauge.component.scss']
7
- })
8
- export class SvgSimpleLinearGaugeComponent implements OnChanges {
9
- @ViewChild('gaugeBarAnimate', {static: true}) gaugeBarAnimate: ElementRef;
10
- @Input('displayName') displayName: string;
11
- @Input('dataValue') dataValue: number;
12
- @Input('unitLabel') unitLabel: string;
13
- @Input('barColor') barColor: string;
14
- @Input('barColorGradient') barColorGradient: string;
15
- @Input('barColorBackground') barColorBackground: string;
16
- @Input('gaugeValue') gaugeValue: number;
17
- @Input('gaugeMinValue') gaugeMinValue: number;
18
- @Input('gaugeMaxValue') gaugeMaxValue: number;
19
-
20
- newGaugeValue: number = 1;
21
- oldGaugeValue: number = 1;
22
-
23
- constructor() { }
24
-
25
-
26
- ngOnChanges(changes: SimpleChanges) {
27
-
28
- // Data Value
29
- if (changes.dataValue) {
30
- if (! changes.dataValue.firstChange) {
31
- this.dataValue = changes.dataValue.currentValue;
32
- }
33
- }
34
-
35
- // Gauge bar value
36
- if (changes.gaugeValue) {
37
- if (! changes.gaugeValue.firstChange) {
38
- // scale value to svg gauge pixel length (195), proportional to gauge min/max set values
39
- let scaleRange = this.gaugeMaxValue - this.gaugeMinValue;
40
- let scaleSliceValue = 195 / scaleRange;
41
-
42
- this.oldGaugeValue = this.newGaugeValue;
43
- this.newGaugeValue = changes.gaugeValue.currentValue * scaleSliceValue;
44
-
45
- this.gaugeBarAnimate.nativeElement.beginElement();
46
- }
47
- }
48
- }
49
- }
File without changes