@mxtommy/kip 1.2.3 → 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 (354) hide show
  1. package/CHANGELOG.md +180 -135
  2. package/CONTRIBUTORS.md +16 -16
  3. package/KipGaugeSample3-1024x508.png +0 -0
  4. package/LICENSE +21 -0
  5. package/README.md +140 -102
  6. package/package.json +93 -84
  7. package/public/3rdpartylicenses.txt +68 -139
  8. package/public/assets/NoSleep.min.js +2 -2
  9. package/public/assets/fontawesome6/css/all.min.css +6 -0
  10. package/public/assets/fontawesome6/webfonts/fa-brands-400.ttf +0 -0
  11. package/public/assets/fontawesome6/webfonts/fa-brands-400.woff2 +0 -0
  12. package/public/assets/fontawesome6/webfonts/fa-regular-400.ttf +0 -0
  13. package/public/assets/fontawesome6/webfonts/fa-regular-400.woff2 +0 -0
  14. package/public/assets/fontawesome6/webfonts/fa-solid-900.ttf +0 -0
  15. package/public/assets/fontawesome6/webfonts/fa-solid-900.woff2 +0 -0
  16. package/public/assets/fontawesome6/webfonts/fa-v4compatibility.ttf +0 -0
  17. package/public/assets/fontawesome6/webfonts/fa-v4compatibility.woff2 +0 -0
  18. package/public/assets/icon-192x192.png +0 -0
  19. package/public/assets/icon-256x256.png +0 -0
  20. package/public/assets/icon-384x384.png +0 -0
  21. package/public/assets/icon-512x512.png +0 -0
  22. package/public/assets/icon-64x64.png +0 -0
  23. package/public/assets/steelseries-min.js +25 -25
  24. package/public/assets/steelseries-min.js.map +8 -8
  25. package/public/assets/steelseries.js +15834 -15834
  26. package/public/assets/svg-autopilot-inkscape-plain.svg +983 -983
  27. package/public/assets/svg-wind-inkscape.svg +1358 -1358
  28. package/public/assets/tween.js +381 -381
  29. package/public/index.html +19 -20
  30. package/public/main.9dba30de44eed02b.js +1 -0
  31. package/public/manifest.json +38 -0
  32. package/public/polyfills.d1da7d2e907c253a.js +1 -0
  33. package/public/runtime.e75056c32c37f59d.js +1 -0
  34. package/public/styles.6b1c2c92be18a2cc.css +1 -0
  35. package/.angulardoc.json +0 -4
  36. package/angular.json +0 -153
  37. package/e2e/app.e2e-spec.ts +0 -14
  38. package/e2e/app.po.ts +0 -11
  39. package/e2e/tsconfig.e2e.json +0 -14
  40. package/karma.conf.js +0 -31
  41. package/public/assets/font-awesome/HELP-US-OUT.txt +0 -7
  42. package/public/assets/font-awesome/css/font-awesome.css +0 -2337
  43. package/public/assets/font-awesome/css/font-awesome.min.css +0 -4
  44. package/public/assets/font-awesome/desktop.ini +0 -4
  45. package/public/assets/font-awesome/fonts/FontAwesome.otf +0 -0
  46. package/public/assets/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  47. package/public/assets/font-awesome/fonts/fontawesome-webfont.svg +0 -2671
  48. package/public/assets/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  49. package/public/assets/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  50. package/public/assets/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
  51. package/public/assets/font-awesome/less/animated.less +0 -34
  52. package/public/assets/font-awesome/less/bordered-pulled.less +0 -25
  53. package/public/assets/font-awesome/less/core.less +0 -12
  54. package/public/assets/font-awesome/less/fixed-width.less +0 -6
  55. package/public/assets/font-awesome/less/font-awesome.less +0 -18
  56. package/public/assets/font-awesome/less/icons.less +0 -789
  57. package/public/assets/font-awesome/less/larger.less +0 -13
  58. package/public/assets/font-awesome/less/list.less +0 -19
  59. package/public/assets/font-awesome/less/mixins.less +0 -60
  60. package/public/assets/font-awesome/less/path.less +0 -15
  61. package/public/assets/font-awesome/less/rotated-flipped.less +0 -20
  62. package/public/assets/font-awesome/less/screen-reader.less +0 -5
  63. package/public/assets/font-awesome/less/stacked.less +0 -20
  64. package/public/assets/font-awesome/less/variables.less +0 -800
  65. package/public/assets/font-awesome/scss/_animated.scss +0 -34
  66. package/public/assets/font-awesome/scss/_bordered-pulled.scss +0 -25
  67. package/public/assets/font-awesome/scss/_core.scss +0 -12
  68. package/public/assets/font-awesome/scss/_fixed-width.scss +0 -6
  69. package/public/assets/font-awesome/scss/_icons.scss +0 -789
  70. package/public/assets/font-awesome/scss/_larger.scss +0 -13
  71. package/public/assets/font-awesome/scss/_list.scss +0 -19
  72. package/public/assets/font-awesome/scss/_mixins.scss +0 -60
  73. package/public/assets/font-awesome/scss/_path.scss +0 -15
  74. package/public/assets/font-awesome/scss/_rotated-flipped.scss +0 -20
  75. package/public/assets/font-awesome/scss/_screen-reader.scss +0 -5
  76. package/public/assets/font-awesome/scss/_stacked.scss +0 -20
  77. package/public/assets/font-awesome/scss/_variables.scss +0 -800
  78. package/public/assets/font-awesome/scss/font-awesome.scss +0 -18
  79. package/public/main-es2018.ab0adc5af3ab3e70c849.js +0 -1
  80. package/public/main-es5.ab0adc5af3ab3e70c849.js +0 -1
  81. package/public/polyfills-es2018.713f95af1f028e444854.js +0 -1
  82. package/public/polyfills-es5.c78877945523541d2597.js +0 -1
  83. package/public/runtime-es2018.a4dadbc03350107420a4.js +0 -1
  84. package/public/runtime-es5.a4dadbc03350107420a4.js +0 -1
  85. package/public/styles.71bb0d04cad96b5efbe1.css +0 -19
  86. package/src/app/alarm-menu/alarm-menu.component.html +0 -55
  87. package/src/app/alarm-menu/alarm-menu.component.scss +0 -53
  88. package/src/app/alarm-menu/alarm-menu.component.spec.ts +0 -25
  89. package/src/app/alarm-menu/alarm-menu.component.ts +0 -186
  90. package/src/app/app-help/app-help.component.css +0 -4
  91. package/src/app/app-help/app-help.component.html +0 -135
  92. package/src/app/app-help/app-help.component.ts +0 -45
  93. package/src/app/app-settings.service.spec.ts +0 -15
  94. package/src/app/app-settings.service.ts +0 -478
  95. package/src/app/app.component.css +0 -39
  96. package/src/app/app.component.html +0 -93
  97. package/src/app/app.component.scss +0 -79
  98. package/src/app/app.component.spec.ts +0 -32
  99. package/src/app/app.component.ts +0 -192
  100. package/src/app/app.module.ts +0 -200
  101. package/src/app/config.blank.const.ts +0 -52
  102. package/src/app/config.blank.notification.const.ts +0 -19
  103. package/src/app/config.blank.units.const.ts +0 -23
  104. package/src/app/config.demo.const.ts +0 -384
  105. package/src/app/data-browser/data-browser.component.css +0 -29
  106. package/src/app/data-browser/data-browser.component.html +0 -44
  107. package/src/app/data-browser/data-browser.component.spec.ts +0 -25
  108. package/src/app/data-browser/data-browser.component.ts +0 -91
  109. package/src/app/data-browser-row/data-browser-row-unit-modal.html +0 -17
  110. package/src/app/data-browser-row/data-browser-row.component.css +0 -10
  111. package/src/app/data-browser-row/data-browser-row.component.html +0 -5
  112. package/src/app/data-browser-row/data-browser-row.component.ts +0 -79
  113. package/src/app/data-set.service.spec.ts +0 -15
  114. package/src/app/data-set.service.ts +0 -273
  115. package/src/app/dynamic-widget.directive.spec.ts +0 -8
  116. package/src/app/dynamic-widget.directive.ts +0 -11
  117. package/src/app/filter-self.pipe.spec.ts +0 -8
  118. package/src/app/filter-self.pipe.ts +0 -14
  119. package/src/app/fit-text.directive.spec.ts +0 -8
  120. package/src/app/fit-text.directive.ts +0 -61
  121. package/src/app/gauge-steel/gauge-steel.component.css +0 -5
  122. package/src/app/gauge-steel/gauge-steel.component.html +0 -4
  123. package/src/app/gauge-steel/gauge-steel.component.spec.ts +0 -25
  124. package/src/app/gauge-steel/gauge-steel.component.ts +0 -282
  125. package/src/app/gauges-module/base-gauge.ts +0 -301
  126. package/src/app/gauges-module/gauges.module.ts +0 -17
  127. package/src/app/gauges-module/linear-gauge.ts +0 -50
  128. package/src/app/gauges-module/radial-gauge.ts +0 -48
  129. package/src/app/layout-split/layout-split.component.html +0 -30
  130. package/src/app/layout-split/layout-split.component.scss +0 -33
  131. package/src/app/layout-split/layout-split.component.spec.ts +0 -25
  132. package/src/app/layout-split/layout-split.component.ts +0 -59
  133. package/src/app/layout-splits.service.spec.ts +0 -15
  134. package/src/app/layout-splits.service.ts +0 -284
  135. package/src/app/modal-path-selector/modal-path-selector.component.html +0 -62
  136. package/src/app/modal-path-selector/modal-path-selector.component.scss +0 -39
  137. package/src/app/modal-path-selector/modal-path-selector.component.spec.ts +0 -25
  138. package/src/app/modal-path-selector/modal-path-selector.component.ts +0 -132
  139. package/src/app/modal-widget/modal-widget.component.css +0 -33
  140. package/src/app/modal-widget/modal-widget.component.html +0 -341
  141. package/src/app/modal-widget/modal-widget.component.spec.ts +0 -25
  142. package/src/app/modal-widget/modal-widget.component.ts +0 -84
  143. package/src/app/notifications.service.spec.ts +0 -12
  144. package/src/app/notifications.service.ts +0 -392
  145. package/src/app/object-keys.pipe.spec.ts +0 -8
  146. package/src/app/object-keys.pipe.ts +0 -13
  147. package/src/app/reset-config/reset-config.component.css +0 -0
  148. package/src/app/reset-config/reset-config.component.html +0 -3
  149. package/src/app/reset-config/reset-config.component.spec.ts +0 -25
  150. package/src/app/reset-config/reset-config.component.ts +0 -31
  151. package/src/app/root-display/root-display.component.css +0 -0
  152. package/src/app/root-display/root-display.component.html +0 -4
  153. package/src/app/root-display/root-display.component.spec.ts +0 -25
  154. package/src/app/root-display/root-display.component.ts +0 -57
  155. package/src/app/safe.pipe.ts +0 -16
  156. package/src/app/settings/settings.component.css +0 -9
  157. package/src/app/settings/settings.component.html +0 -25
  158. package/src/app/settings/settings.component.spec.ts +0 -25
  159. package/src/app/settings/settings.component.ts +0 -22
  160. package/src/app/settings-config/settings-config.component.css +0 -39
  161. package/src/app/settings-config/settings-config.component.html +0 -118
  162. package/src/app/settings-config/settings-config.component.spec.ts +0 -25
  163. package/src/app/settings-config/settings-config.component.ts +0 -161
  164. package/src/app/settings-datasets/settings-datasets.component.html +0 -43
  165. package/src/app/settings-datasets/settings-datasets.component.scss +0 -39
  166. package/src/app/settings-datasets/settings-datasets.component.spec.ts +0 -25
  167. package/src/app/settings-datasets/settings-datasets.component.ts +0 -98
  168. package/src/app/settings-datasets/settings-datasets.modal.html +0 -54
  169. package/src/app/settings-notifications/settings-notifications.component.css +0 -0
  170. package/src/app/settings-notifications/settings-notifications.component.html +0 -65
  171. package/src/app/settings-notifications/settings-notifications.component.spec.ts +0 -25
  172. package/src/app/settings-notifications/settings-notifications.component.ts +0 -29
  173. package/src/app/settings-signalk/settings-signalk.component.css +0 -3
  174. package/src/app/settings-signalk/settings-signalk.component.html +0 -89
  175. package/src/app/settings-signalk/settings-signalk.component.spec.ts +0 -25
  176. package/src/app/settings-signalk/settings-signalk.component.ts +0 -174
  177. package/src/app/settings-units/settings-units.component.css +0 -4
  178. package/src/app/settings-units/settings-units.component.html +0 -19
  179. package/src/app/settings-units/settings-units.component.spec.ts +0 -25
  180. package/src/app/settings-units/settings-units.component.ts +0 -62
  181. package/src/app/settings-zones/settings-zones.component.css +0 -22
  182. package/src/app/settings-zones/settings-zones.component.html +0 -70
  183. package/src/app/settings-zones/settings-zones.component.ts +0 -154
  184. package/src/app/settings-zones/settings-zones.modal.css +0 -14
  185. package/src/app/settings-zones/settings-zones.modal.html +0 -39
  186. package/src/app/signalk-connection.service.ts +0 -344
  187. package/src/app/signalk-delta.service.spec.ts +0 -15
  188. package/src/app/signalk-delta.service.ts +0 -97
  189. package/src/app/signalk-full.service.spec.ts +0 -15
  190. package/src/app/signalk-full.service.ts +0 -99
  191. package/src/app/signalk-interfaces.ts +0 -129
  192. package/src/app/signalk-requests.service.spec.ts +0 -12
  193. package/src/app/signalk-requests.service.ts +0 -180
  194. package/src/app/signalk.service.spec.ts +0 -15
  195. package/src/app/signalk.service.ts +0 -428
  196. package/src/app/svg-autopilot/svg-autopilot.component.html +0 -1036
  197. package/src/app/svg-autopilot/svg-autopilot.component.spec.ts +0 -25
  198. package/src/app/svg-autopilot/svg-autopilot.component.ts +0 -174
  199. package/src/app/svg-simple-linear-gauge/svg-simple-linear-gauge.component.html +0 -119
  200. package/src/app/svg-simple-linear-gauge/svg-simple-linear-gauge.component.scss +0 -0
  201. package/src/app/svg-simple-linear-gauge/svg-simple-linear-gauge.component.spec.ts +0 -25
  202. package/src/app/svg-simple-linear-gauge/svg-simple-linear-gauge.component.ts +0 -49
  203. package/src/app/svg-wind/svg-wind.component.css +0 -0
  204. package/src/app/svg-wind/svg-wind.component.html +0 -969
  205. package/src/app/svg-wind/svg-wind.component.scss +0 -76
  206. package/src/app/svg-wind/svg-wind.component.spec.ts +0 -25
  207. package/src/app/svg-wind/svg-wind.component.ts +0 -280
  208. package/src/app/unit-window/unit-window.component.css +0 -37
  209. package/src/app/unit-window/unit-window.component.html +0 -8
  210. package/src/app/unit-window/unit-window.component.spec.ts +0 -25
  211. package/src/app/unit-window/unit-window.component.ts +0 -134
  212. package/src/app/unit-window/unit-window.modal.html +0 -25
  213. package/src/app/units.service.ts +0 -300
  214. package/src/app/widget-autopilot/widget-autopilot.component.html +0 -85
  215. package/src/app/widget-autopilot/widget-autopilot.component.scss +0 -191
  216. package/src/app/widget-autopilot/widget-autopilot.component.spec.ts +0 -25
  217. package/src/app/widget-autopilot/widget-autopilot.component.ts +0 -781
  218. package/src/app/widget-blank/widget-blank.component.html +0 -5
  219. package/src/app/widget-blank/widget-blank.component.scss +0 -22
  220. package/src/app/widget-blank/widget-blank.component.spec.ts +0 -25
  221. package/src/app/widget-blank/widget-blank.component.ts +0 -17
  222. package/src/app/widget-gauge/widget-gauge.component.css +0 -26
  223. package/src/app/widget-gauge/widget-gauge.component.html +0 -29
  224. package/src/app/widget-gauge/widget-gauge.component.spec.ts +0 -25
  225. package/src/app/widget-gauge/widget-gauge.component.ts +0 -120
  226. package/src/app/widget-gauge-ng-linear/widget-gauge-ng-linear.component.html +0 -126
  227. package/src/app/widget-gauge-ng-linear/widget-gauge-ng-linear.component.scss +0 -93
  228. package/src/app/widget-gauge-ng-linear/widget-gauge-ng-linear.component.spec.ts +0 -25
  229. package/src/app/widget-gauge-ng-linear/widget-gauge-ng-linear.component.ts +0 -424
  230. package/src/app/widget-gauge-ng-radial/widget-gauge-ng-radial.component.html +0 -122
  231. package/src/app/widget-gauge-ng-radial/widget-gauge-ng-radial.component.scss +0 -69
  232. package/src/app/widget-gauge-ng-radial/widget-gauge-ng-radial.component.spec.ts +0 -25
  233. package/src/app/widget-gauge-ng-radial/widget-gauge-ng-radial.component.ts +0 -553
  234. package/src/app/widget-historical/widget-historical.component.css +0 -31
  235. package/src/app/widget-historical/widget-historical.component.html +0 -14
  236. package/src/app/widget-historical/widget-historical.component.scss +0 -0
  237. package/src/app/widget-historical/widget-historical.component.spec.ts +0 -25
  238. package/src/app/widget-historical/widget-historical.component.ts +0 -306
  239. package/src/app/widget-iframe/widget-iframe.component.css +0 -12
  240. package/src/app/widget-iframe/widget-iframe.component.html +0 -21
  241. package/src/app/widget-iframe/widget-iframe.component.spec.ts +0 -25
  242. package/src/app/widget-iframe/widget-iframe.component.ts +0 -63
  243. package/src/app/widget-list.service.spec.ts +0 -15
  244. package/src/app/widget-list.service.ts +0 -135
  245. package/src/app/widget-manager.service.spec.ts +0 -15
  246. package/src/app/widget-manager.service.ts +0 -141
  247. package/src/app/widget-numeric/widget-numeric.component.html +0 -13
  248. package/src/app/widget-numeric/widget-numeric.component.scss +0 -52
  249. package/src/app/widget-numeric/widget-numeric.component.spec.ts +0 -25
  250. package/src/app/widget-numeric/widget-numeric.component.ts +0 -457
  251. package/src/app/widget-simple-linear/widget-simple-linear.component.html +0 -28
  252. package/src/app/widget-simple-linear/widget-simple-linear.component.scss +0 -64
  253. package/src/app/widget-simple-linear/widget-simple-linear.component.spec.ts +0 -25
  254. package/src/app/widget-simple-linear/widget-simple-linear.component.ts +0 -199
  255. package/src/app/widget-state/widget-state.component.html +0 -27
  256. package/src/app/widget-state/widget-state.component.scss +0 -68
  257. package/src/app/widget-state/widget-state.component.spec.ts +0 -25
  258. package/src/app/widget-state/widget-state.component.ts +0 -178
  259. package/src/app/widget-switch/widget-switch.component.css +0 -70
  260. package/src/app/widget-switch/widget-switch.component.html +0 -17
  261. package/src/app/widget-switch/widget-switch.component.spec.ts +0 -25
  262. package/src/app/widget-switch/widget-switch.component.ts +0 -134
  263. package/src/app/widget-text-generic/widget-text-generic.component.css +0 -55
  264. package/src/app/widget-text-generic/widget-text-generic.component.html +0 -9
  265. package/src/app/widget-text-generic/widget-text-generic.component.spec.ts +0 -25
  266. package/src/app/widget-text-generic/widget-text-generic.component.ts +0 -253
  267. package/src/app/widget-tutorial/widget-tutorial.component.css +0 -0
  268. package/src/app/widget-tutorial/widget-tutorial.component.html +0 -34
  269. package/src/app/widget-tutorial/widget-tutorial.component.spec.ts +0 -25
  270. package/src/app/widget-tutorial/widget-tutorial.component.ts +0 -18
  271. package/src/app/widget-unknown/widget-unknown.component.css +0 -0
  272. package/src/app/widget-unknown/widget-unknown.component.html +0 -3
  273. package/src/app/widget-unknown/widget-unknown.component.spec.ts +0 -25
  274. package/src/app/widget-unknown/widget-unknown.component.ts +0 -15
  275. package/src/app/widget-wind/widget-wind.component.css +0 -24
  276. package/src/app/widget-wind/widget-wind.component.html +0 -20
  277. package/src/app/widget-wind/widget-wind.component.spec.ts +0 -25
  278. package/src/app/widget-wind/widget-wind.component.ts +0 -369
  279. package/src/assets/.gitkeep +0 -0
  280. package/src/assets/NoSleep.min.js +0 -2
  281. package/src/assets/alarm.mp3 +0 -0
  282. package/src/assets/alert.mp3 +0 -0
  283. package/src/assets/alertl.old.mp3 +0 -0
  284. package/src/assets/emergency.mp3 +0 -0
  285. package/src/assets/font-awesome/HELP-US-OUT.txt +0 -7
  286. package/src/assets/font-awesome/css/font-awesome.css +0 -2337
  287. package/src/assets/font-awesome/css/font-awesome.min.css +0 -4
  288. package/src/assets/font-awesome/desktop.ini +0 -4
  289. package/src/assets/font-awesome/fonts/FontAwesome.otf +0 -0
  290. package/src/assets/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  291. package/src/assets/font-awesome/fonts/fontawesome-webfont.svg +0 -2671
  292. package/src/assets/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  293. package/src/assets/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  294. package/src/assets/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
  295. package/src/assets/font-awesome/less/animated.less +0 -34
  296. package/src/assets/font-awesome/less/bordered-pulled.less +0 -25
  297. package/src/assets/font-awesome/less/core.less +0 -12
  298. package/src/assets/font-awesome/less/fixed-width.less +0 -6
  299. package/src/assets/font-awesome/less/font-awesome.less +0 -18
  300. package/src/assets/font-awesome/less/icons.less +0 -789
  301. package/src/assets/font-awesome/less/larger.less +0 -13
  302. package/src/assets/font-awesome/less/list.less +0 -19
  303. package/src/assets/font-awesome/less/mixins.less +0 -60
  304. package/src/assets/font-awesome/less/path.less +0 -15
  305. package/src/assets/font-awesome/less/rotated-flipped.less +0 -20
  306. package/src/assets/font-awesome/less/screen-reader.less +0 -5
  307. package/src/assets/font-awesome/less/stacked.less +0 -20
  308. package/src/assets/font-awesome/less/variables.less +0 -800
  309. package/src/assets/font-awesome/scss/_animated.scss +0 -34
  310. package/src/assets/font-awesome/scss/_bordered-pulled.scss +0 -25
  311. package/src/assets/font-awesome/scss/_core.scss +0 -12
  312. package/src/assets/font-awesome/scss/_fixed-width.scss +0 -6
  313. package/src/assets/font-awesome/scss/_icons.scss +0 -789
  314. package/src/assets/font-awesome/scss/_larger.scss +0 -13
  315. package/src/assets/font-awesome/scss/_list.scss +0 -19
  316. package/src/assets/font-awesome/scss/_mixins.scss +0 -60
  317. package/src/assets/font-awesome/scss/_path.scss +0 -15
  318. package/src/assets/font-awesome/scss/_rotated-flipped.scss +0 -20
  319. package/src/assets/font-awesome/scss/_screen-reader.scss +0 -5
  320. package/src/assets/font-awesome/scss/_stacked.scss +0 -20
  321. package/src/assets/font-awesome/scss/_variables.scss +0 -800
  322. package/src/assets/font-awesome/scss/font-awesome.scss +0 -18
  323. package/src/assets/notification.mp3 +0 -0
  324. package/src/assets/steelseries-min.js +0 -25
  325. package/src/assets/steelseries-min.js.map +0 -8
  326. package/src/assets/steelseries.js +0 -15834
  327. package/src/assets/svg-autopilot-inkscape-plain.svg +0 -983
  328. package/src/assets/svg-wind-inkscape.svg +0 -1358
  329. package/src/assets/tween-min.js +0 -1
  330. package/src/assets/tween.js +0 -381
  331. package/src/assets/warn.mp3 +0 -0
  332. package/src/environments/environment.prod.ts +0 -3
  333. package/src/environments/environment.ts +0 -8
  334. package/src/favicon.ico +0 -0
  335. package/src/index.html +0 -20
  336. package/src/main.ts +0 -11
  337. package/src/polyfills.ts +0 -76
  338. package/src/styles.css +0 -47
  339. package/src/styles.scss +0 -157
  340. package/src/test.ts +0 -32
  341. package/src/themes/darkBlueTheme.scss +0 -116
  342. package/src/themes/defaultTheme.scss +0 -49
  343. package/src/themes/highContrastTheme.scss +0 -46
  344. package/src/themes/modernTheme.scss +0 -142
  345. package/src/themes/nightMode.scss +0 -184
  346. package/src/themes/platypusTheme.scss +0 -79
  347. package/src/themes/signalkTheme.scss +0 -111
  348. package/src/tsconfig.app.json +0 -15
  349. package/src/tsconfig.spec.json +0 -20
  350. package/src/typings.d.ts +0 -5
  351. package/tsconfig.json +0 -24
  352. package/tslint.json +0 -143
  353. /package/{KipGaugeSample-1-1024x545.png → KipGaugeSample1-1024x545.png} +0 -0
  354. /package/{KipMonitor-1024x488.png → KipGaugeSample2-1024x488.png} +0 -0
@@ -1,15 +0,0 @@
1
- import { TestBed, inject } from '@angular/core/testing';
2
-
3
- import { DataSetService } from './data-set.service';
4
-
5
- describe('DataSetService', () => {
6
- beforeEach(() => {
7
- TestBed.configureTestingModule({
8
- providers: [DataSetService]
9
- });
10
- });
11
-
12
- it('should be created', inject([DataSetService], (service: DataSetService) => {
13
- expect(service).toBeTruthy();
14
- }));
15
- });
@@ -1,273 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Subscription , Observable , BehaviorSubject, interval } from 'rxjs';
3
- import { AppSettingsService } from './app-settings.service';
4
- import { SignalKService } from './signalk.service';
5
-
6
-
7
- export interface dataPoint {
8
- timestamp: number;
9
- average: number;
10
- minValue: number;
11
- maxValue: number;
12
- }
13
-
14
- interface dataCache {
15
- runningTotal: number;
16
- numberOfPoints: number;
17
- minValue: number;
18
- maxValue: number;
19
- }
20
-
21
- export interface IDataSet {
22
- uuid: string;
23
- path: string;
24
- signalKSource: string;
25
- updateTimer: number; //number of seconds between new dataPoints
26
- dataPoints: number; // how many datapoints do we keep?
27
- name?: string; // sometimes used for display purposes
28
- };
29
-
30
-
31
- interface DataSetSub {
32
- uuid: string;
33
- pathSub: Subscription;
34
- updateTimerSub: Subscription;
35
- data: dataPoint[];
36
- dataCache: dataCache // running calculations
37
- };
38
-
39
- interface registration {
40
- uuid: string;
41
- dataSetUuid: string;
42
- observable: BehaviorSubject<Array<dataPoint>>;
43
- }
44
-
45
- @Injectable()
46
- export class DataSetService {
47
-
48
- dataSets: IDataSet[] = [];
49
- dataSetSub: DataSetSub[] = [];
50
- dataSetRegister: registration[] = [];
51
-
52
- constructor(
53
- private AppSettingsService: AppSettingsService,
54
- private SignalKService: SignalKService,
55
- ) {
56
- this.dataSets = AppSettingsService.getDataSets();
57
- }
58
-
59
- startAllDataSets() {
60
- console.log("Starting " + this.dataSets.length.toString() + " DataSets");
61
- for (let i = 0; i < this.dataSets.length; i++) {
62
- this.startDataSet(this.dataSets[i].uuid);
63
- }
64
- }
65
-
66
- private newUuid() {
67
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
68
- var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
69
- return v.toString(16);
70
- });
71
- }
72
-
73
- subscribeDataSet(uuid, dataSetUuid) {
74
- //see if already subscribed, if yes return that...
75
- let registerIndex = this.dataSetRegister.findIndex(registration => (registration.uuid == uuid) && (registration.dataSetUuid == dataSetUuid));
76
- if (registerIndex >= 0) { // exists
77
- return this.dataSetRegister[registerIndex].observable.asObservable();
78
- }
79
-
80
-
81
- //find if we already have a value for this dataSet to return.
82
- let currentDataSet: dataPoint[];
83
- let dataIndex = this.dataSetSub.findIndex(dataSet => dataSet.uuid == dataSetUuid);
84
- if (dataIndex >= 0) { // exists
85
- currentDataSet = this.dataSetSub[dataIndex].data;
86
- } else {
87
- currentDataSet = null;
88
- }
89
-
90
- //register
91
- this.dataSetRegister.push({
92
- uuid: uuid,
93
- dataSetUuid: dataSetUuid,
94
- observable: new BehaviorSubject<Array<dataPoint>>(currentDataSet)
95
- });
96
- // should be subscribed now, use search now as maybe someone else adds something and it's no longer last in array :P
97
- registerIndex = this.dataSetRegister.findIndex(registration => (registration.uuid == uuid) && (registration.dataSetUuid == dataSetUuid));
98
- return this.dataSetRegister[registerIndex].observable.asObservable();
99
- }
100
-
101
-
102
-
103
- stopDataSet(uuid: string) {
104
- // stop any registrations to this dataset...
105
- for (let i=this.dataSetRegister.length-1; i >= 0; i--) { //backwards because lengh will change...
106
- if (this.dataSetRegister[i].uuid == uuid) {
107
- this.dataSetRegister.splice(i,1);
108
- }
109
- }
110
-
111
- //delete current DataSetSub if it exists...
112
- let dataSubIndex = this.dataSetSub.findIndex(dataSub => dataSub.uuid == uuid);
113
- if (dataSubIndex >= 0) {
114
- // stop pathSub
115
- this.dataSetSub[dataSubIndex].pathSub.unsubscribe();
116
- //stop TimerSub
117
- this.dataSetSub[dataSubIndex].updateTimerSub.unsubscribe();
118
- //delete DataSub
119
- this.dataSetSub.splice(dataSubIndex,1);
120
- }
121
- }
122
-
123
- startDataSet(uuid: string) {
124
- let dataIndex = this.dataSets.findIndex(dataSet => dataSet.uuid == uuid);
125
- if (dataIndex < 0) { return; }//not found...
126
-
127
- //delete current DataSetSub if it exists...
128
- let dataSubIndex = this.dataSetSub.findIndex(dataSub => dataSub.uuid == uuid);
129
- if (dataSubIndex >= 0) {
130
- this.dataSetSub.splice(dataSubIndex,1);
131
- }
132
-
133
- this.dataSetSub.push({
134
- uuid: uuid,
135
- pathSub: null,
136
- updateTimerSub: null,
137
- data: null,
138
- dataCache: null,
139
- });
140
- dataSubIndex = this.dataSetSub.findIndex(dataSub => dataSub.uuid == uuid);
141
-
142
-
143
- // initialize data
144
- this.dataSetSub[dataSubIndex].data = [];
145
- //for (let i=0; i<this.dataSets[dataIndex].dataPoints; i++) {
146
- // this.dataSetSub[dataSubIndex].data.push(null);
147
- //}
148
-
149
- // inistialize dataCache
150
- this.dataSetSub[dataSubIndex].dataCache = {
151
- runningTotal: 0,
152
- numberOfPoints: 0,
153
- minValue: null,
154
- maxValue: null
155
- }
156
-
157
- //Subscribe to path data
158
- this.dataSetSub[dataSubIndex].pathSub = this.SignalKService.subscribePath(this.dataSets[dataIndex].uuid, this.dataSets[dataIndex].path, this.dataSets[dataIndex].signalKSource).subscribe(
159
- newValue => {
160
- this.updateDataCache(uuid, newValue.value);
161
- });
162
-
163
- // start update timer
164
- this.dataSetSub[dataSubIndex].updateTimerSub = interval (1000 * this.dataSets[dataIndex].updateTimer).subscribe(x => {
165
- this.aggregateDataCache(uuid);
166
- });
167
-
168
- }
169
-
170
- addDataSet(path: string, source: string, updateTimer: number, dataPoints: number ) {
171
- let uuid = this.newUuid();
172
-
173
- let newSub: IDataSet = {
174
- uuid: uuid,
175
- path: path,
176
- signalKSource: source,
177
- updateTimer: updateTimer,
178
- dataPoints: dataPoints
179
- };
180
- this.dataSets.push(newSub);
181
-
182
- this.startDataSet(uuid);
183
- this.AppSettingsService.saveDataSets(this.dataSets);
184
- }
185
-
186
- deleteDataSet(uuid: string) {
187
- //get index
188
- let dataSetIndex = this.dataSetSub.findIndex(sub => sub.uuid == uuid);
189
- if (dataSetIndex < 0) { return; } // uuid doesn't exist...
190
-
191
- this.stopDataSet(uuid);
192
- // deleteSubscription
193
- this.dataSets.splice(dataSetIndex,1);
194
-
195
- this.AppSettingsService.saveDataSets(this.dataSets);
196
-
197
- }
198
-
199
- getDataSets(): IDataSet[] {
200
- let result = [];
201
- for (let i=0;i<this.dataSets.length; i++) {
202
-
203
- let name = this.dataSets[i].path + ' - Interval:' + this.dataSets[i].updateTimer.toString() + ' - DataPoints:' + this.dataSets[i].dataPoints.toString()
204
- result.push({
205
- uuid: this.dataSets[i].uuid,
206
- path: this.dataSets[i].path,
207
- updateTimer: this.dataSets[i].updateTimer,
208
- dataPoints: this.dataSets[i].dataPoints,
209
- name: name
210
- });
211
- }
212
- return result;
213
- }
214
-
215
- aggregateDataCache(uuid: string) {
216
- let avg: number = null;
217
-
218
- //get index
219
- let dataSetIndex = this.dataSets.findIndex(sub => sub.uuid == uuid);
220
- let dataSubIndex = this.dataSetSub.findIndex(sub => sub.uuid == uuid);
221
-
222
- // update average
223
- if (this.dataSetSub[dataSubIndex].dataCache.numberOfPoints > 0) { // if it's still 0, we had no update this timeperiod so leave it as null...
224
- avg = this.dataSetSub[dataSubIndex].dataCache.runningTotal / this.dataSetSub[dataSubIndex].dataCache.numberOfPoints;
225
- }
226
-
227
- // remove first item if we have dataPoints points.
228
- if (this.dataSetSub[dataSubIndex].data.length >= this.dataSets[dataSetIndex].dataPoints) {
229
- this.dataSetSub[dataSubIndex].data.shift();
230
- }
231
-
232
- // add our new dataPoint to end of dataset.
233
- let newDataPoint: dataPoint = {
234
- timestamp: Date.now(),
235
- average: avg,
236
- minValue: this.dataSetSub[dataSubIndex].dataCache.minValue,
237
- maxValue: this.dataSetSub[dataSubIndex].dataCache.maxValue
238
- }
239
- this.dataSetSub[dataSubIndex].data.push(newDataPoint);
240
-
241
- // reset dataCache
242
- this.dataSetSub[dataSubIndex].dataCache = {
243
- runningTotal: 0,
244
- numberOfPoints: 0,
245
- minValue: null,
246
- maxValue: null
247
- }
248
- // ... push to registered graphs...
249
-
250
- for (let i = 0; i < this.dataSetRegister.length; i++) {
251
- if (this.dataSetRegister[i].dataSetUuid == uuid) {
252
- this.dataSetRegister[i].observable.next(this.dataSetSub[dataSubIndex].data);
253
- }
254
- }
255
- }
256
-
257
- updateDataCache(uuid: string, newValue: number) {
258
- //get index
259
- let dsIndex = this.dataSetSub.findIndex(sub => sub.uuid == uuid);
260
-
261
- this.dataSetSub[dsIndex].dataCache.runningTotal = this.dataSetSub[dsIndex].dataCache.runningTotal + newValue;
262
- this.dataSetSub[dsIndex].dataCache.numberOfPoints = this.dataSetSub[dsIndex].dataCache.numberOfPoints + 1;
263
-
264
- if ((this.dataSetSub[dsIndex].dataCache.minValue === null) || (this.dataSetSub[dsIndex].dataCache.minValue > newValue)) {
265
- this.dataSetSub[dsIndex].dataCache.minValue = newValue;
266
- }
267
- if ((this.dataSetSub[dsIndex].dataCache.maxValue === null) || (this.dataSetSub[dsIndex].dataCache.maxValue < newValue)) {
268
- this.dataSetSub[dsIndex].dataCache.maxValue = newValue;
269
- }
270
- }
271
-
272
-
273
- }
@@ -1,8 +0,0 @@
1
- import { DynamicWidgetDirective } from './dynamic-widget.directive';
2
-
3
- describe('DynamicWidgetDirective', () => {
4
- it('should create an instance', () => {
5
- const directive = new DynamicWidgetDirective();
6
- expect(directive).toBeTruthy();
7
- });
8
- });
@@ -1,11 +0,0 @@
1
- import { Directive, ViewContainerRef } from '@angular/core';
2
-
3
- @Directive({
4
- selector: '[dynamic-widget]'
5
- })
6
- export class DynamicWidgetDirective {
7
-
8
- constructor(public viewContainerRef: ViewContainerRef) {
9
- viewContainerRef.constructor.name === "ViewContainerRef"; // true
10
- }
11
- }
@@ -1,8 +0,0 @@
1
- import { FilterSelfPipe } from './filter-self.pipe';
2
-
3
- describe('FilterSelfPipe', () => {
4
- it('create an instance', () => {
5
- const pipe = new FilterSelfPipe();
6
- expect(pipe).toBeTruthy();
7
- });
8
- });
@@ -1,14 +0,0 @@
1
- import { Pipe, PipeTransform } from '@angular/core';
2
-
3
- @Pipe({
4
- name: 'filterSelf'
5
- })
6
- export class FilterSelfPipe implements PipeTransform {
7
-
8
- transform(values: string[], filterSelf: boolean): any[] {
9
- if (!values || !values.length) return [];
10
- if (!filterSelf) return values;
11
- return values.filter(v => v.includes('self'));
12
- }
13
-
14
- }
@@ -1,8 +0,0 @@
1
- import { FitTextDirective } from './fit-text.directive';
2
-
3
- describe('FitTextDirective', () => {
4
- it('should create an instance', () => {
5
- const directive = new FitTextDirective();
6
- expect(directive).toBeTruthy();
7
- });
8
- });
@@ -1,61 +0,0 @@
1
- import {Directive, ElementRef, Input, AfterViewInit, HostListener} from '@angular/core';
2
-
3
- @Directive({
4
- selector: '[fit-text]'
5
- })
6
- export class FitTextDirective {
7
-
8
-
9
- @Input('fit-text') fittext: boolean = true;
10
- @Input('container') container: HTMLDivElement;
11
- @Input('activateOnResize') activateOnResize: boolean = true;
12
- @Input('minFontSize') minFontSize: number = -1 / 0;
13
- @Input('maxFontSize') maxFontSize: number = 1 / 0;
14
- @Input('compression') compression: number = 1;
15
-
16
- constructor(public el: ElementRef) {}
17
-
18
- private setFontSize = (): void => {
19
- if (this.fittext) {
20
- /* let containerWidth, fontSize;
21
-
22
- const windowWidth = window.screen.width;
23
- const parentWidth = this.container.parentElement.clientWidth;
24
- console.log(this.el.nativeElement.parentElement.clientWidth);
25
- console.log(this.el.nativeElement.parentElement.clientHeight);
26
- parentWidth > windowWidth ? containerWidth = windowWidth : containerWidth = parentWidth;
27
- fontSize = Math.max(Math.min(containerWidth / (this.compression * 10), this.maxFontSize), this.minFontSize); */
28
-
29
- let fontSize;
30
- let width = this.el.nativeElement.parentElement.clientWidth;
31
- let height = this.el.nativeElement.parentElement.clientHeight;
32
-
33
- fontSize =
34
- Math.min(
35
- Math.max(
36
- Math.min(
37
- width / (this.compression * 10),
38
- this.maxFontSize),
39
- this.minFontSize),
40
- height); //TODO, does not take text width into consideration :(
41
-
42
-
43
- return this.el.nativeElement.style.setProperty('font-size', (fontSize).toString() + 'px');
44
- }
45
- };
46
-
47
- /*@HostListener('window:resize', ['$event'])
48
- public onResize = (): void => { */
49
- ngOnChanges(changes: any) {
50
- if (this.activateOnResize) {
51
- setTimeout(() => {
52
- this.setFontSize();
53
- },10);
54
- }
55
- };
56
-
57
- /* ngAfterViewInit() {
58
- this.setFontSize();
59
- }
60
- */
61
- }
@@ -1,5 +0,0 @@
1
- .wrapper {
2
- height: 100%;
3
- width: 100%;
4
- text-align: center;
5
- }
@@ -1,4 +0,0 @@
1
- <div class=wrapper #wrapperDiv (resized)="onResized($event)">
2
- <canvas id="{{widgetUUID}}" width="201" height="201">No canvas in your browser...sorry...</canvas>
3
- </div>
4
-
@@ -1,25 +0,0 @@
1
- import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
2
-
3
- import { GaugeSteelComponent } from './gauge-steel.component';
4
-
5
- describe('GaugeSteelComponent', () => {
6
- let component: GaugeSteelComponent;
7
- let fixture: ComponentFixture<GaugeSteelComponent>;
8
-
9
- beforeEach(waitForAsync(() => {
10
- TestBed.configureTestingModule({
11
- declarations: [ GaugeSteelComponent ]
12
- })
13
- .compileComponents();
14
- }));
15
-
16
- beforeEach(() => {
17
- fixture = TestBed.createComponent(GaugeSteelComponent);
18
- component = fixture.componentInstance;
19
- fixture.detectChanges();
20
- });
21
-
22
- it('should be created', () => {
23
- expect(component).toBeTruthy();
24
- });
25
- });