@mxtommy/kip 1.2.3 → 1.3.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 (314) hide show
  1. package/.angulardoc.json +3 -3
  2. package/CHANGELOG.md +145 -135
  3. package/CONTRIBUTORS.md +16 -16
  4. package/README.md +102 -102
  5. package/angular.json +162 -153
  6. package/karma.conf.js +31 -31
  7. package/package.json +87 -84
  8. package/public/3rdpartylicenses.txt +301 -21
  9. package/public/assets/NoSleep.min.js +1 -1
  10. package/public/assets/fontawesome6/css/all.min.css +6 -0
  11. package/public/assets/fontawesome6/webfonts/fa-brands-400.ttf +0 -0
  12. package/public/assets/fontawesome6/webfonts/fa-brands-400.woff2 +0 -0
  13. package/public/assets/fontawesome6/webfonts/fa-regular-400.ttf +0 -0
  14. package/public/assets/fontawesome6/webfonts/fa-regular-400.woff2 +0 -0
  15. package/public/assets/fontawesome6/webfonts/fa-solid-900.ttf +0 -0
  16. package/public/assets/fontawesome6/webfonts/fa-solid-900.woff2 +0 -0
  17. package/public/assets/fontawesome6/webfonts/fa-v4compatibility.ttf +0 -0
  18. package/public/assets/fontawesome6/webfonts/fa-v4compatibility.woff2 +0 -0
  19. package/public/assets/icon-192x192.png +0 -0
  20. package/public/assets/icon-256x256.png +0 -0
  21. package/public/assets/icon-384x384.png +0 -0
  22. package/public/assets/icon-512x512.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-es2018.98175eb4c61ccaf7eb17.js +1 -0
  31. package/public/main-es5.98175eb4c61ccaf7eb17.js +1 -0
  32. package/public/manifest.json +33 -0
  33. package/public/polyfills-es2018.3a61665863c173cd6ba3.js +1 -0
  34. package/public/polyfills-es5.44827ae4ff4e41de51fb.js +1 -0
  35. package/public/runtime-es2018.baedb88c6d2abacae2b8.js +1 -0
  36. package/public/runtime-es5.baedb88c6d2abacae2b8.js +1 -0
  37. package/public/styles.b92ae2c466c89712209d.css +5 -0
  38. package/src/app/alarm-menu/alarm-menu.component.html +55 -55
  39. package/src/app/alarm-menu/alarm-menu.component.scss +52 -53
  40. package/src/app/alarm-menu/alarm-menu.component.spec.ts +25 -25
  41. package/src/app/alarm-menu/alarm-menu.component.ts +186 -186
  42. package/src/app/app-help/app-help.component.css +4 -4
  43. package/src/app/app-help/app-help.component.html +135 -135
  44. package/src/app/app-help/app-help.component.ts +45 -45
  45. package/src/app/app.component.css +39 -39
  46. package/src/app/app.component.html +93 -93
  47. package/src/app/app.component.scss +79 -79
  48. package/src/app/app.component.spec.ts +32 -32
  49. package/src/app/app.component.ts +191 -192
  50. package/src/app/app.module.ts +200 -200
  51. package/src/app/config.blank.const.ts +51 -51
  52. package/src/app/config.blank.notification.const.ts +19 -19
  53. package/src/app/config.blank.units.const.ts +23 -23
  54. package/src/app/config.demo.const.ts +383 -383
  55. package/src/app/data-browser/data-browser.component.css +29 -29
  56. package/src/app/data-browser/data-browser.component.html +44 -44
  57. package/src/app/data-browser/data-browser.component.spec.ts +25 -25
  58. package/src/app/data-browser/data-browser.component.ts +91 -91
  59. package/src/app/data-browser-row/data-browser-row-unit-modal.html +17 -17
  60. package/src/app/data-browser-row/data-browser-row.component.css +9 -9
  61. package/src/app/data-browser-row/data-browser-row.component.html +4 -4
  62. package/src/app/data-browser-row/data-browser-row.component.ts +78 -78
  63. package/src/app/data-set.service.ts +273 -273
  64. package/src/app/dynamic-widget.directive.ts +11 -11
  65. package/src/app/gauge-steel/gauge-steel.component.css +4 -4
  66. package/src/app/gauge-steel/gauge-steel.component.html +4 -4
  67. package/src/app/gauge-steel/gauge-steel.component.spec.ts +25 -25
  68. package/src/app/gauge-steel/gauge-steel.component.ts +282 -282
  69. package/src/app/gauges-module/base-gauge.ts +300 -300
  70. package/src/app/gauges-module/linear-gauge.ts +49 -49
  71. package/src/app/gauges-module/radial-gauge.ts +47 -47
  72. package/src/app/layout-split/layout-split.component.html +30 -30
  73. package/src/app/layout-split/layout-split.component.scss +33 -33
  74. package/src/app/layout-split/layout-split.component.spec.ts +25 -25
  75. package/src/app/layout-split/layout-split.component.ts +59 -59
  76. package/src/app/layout-splits.service.ts +284 -284
  77. package/src/app/modal-path-selector/modal-path-selector.component.html +62 -62
  78. package/src/app/modal-path-selector/modal-path-selector.component.scss +39 -39
  79. package/src/app/modal-path-selector/modal-path-selector.component.spec.ts +25 -25
  80. package/src/app/modal-path-selector/modal-path-selector.component.ts +132 -132
  81. package/src/app/modal-widget/modal-widget.component.css +32 -32
  82. package/src/app/modal-widget/modal-widget.component.html +341 -341
  83. package/src/app/modal-widget/modal-widget.component.spec.ts +25 -25
  84. package/src/app/modal-widget/modal-widget.component.ts +84 -84
  85. package/src/app/notifications.service.ts +392 -392
  86. package/src/app/object-keys.pipe.spec.ts +8 -8
  87. package/src/app/object-keys.pipe.ts +13 -13
  88. package/src/app/reset-config/reset-config.component.html +3 -3
  89. package/src/app/reset-config/reset-config.component.spec.ts +25 -25
  90. package/src/app/reset-config/reset-config.component.ts +31 -31
  91. package/src/app/root-display/root-display.component.html +4 -4
  92. package/src/app/root-display/root-display.component.spec.ts +25 -25
  93. package/src/app/root-display/root-display.component.ts +57 -57
  94. package/src/app/safe.pipe.ts +15 -15
  95. package/src/app/settings/settings.component.css +9 -9
  96. package/src/app/settings/settings.component.html +25 -25
  97. package/src/app/settings/settings.component.spec.ts +25 -25
  98. package/src/app/settings/settings.component.ts +22 -22
  99. package/src/app/settings-config/settings-config.component.css +38 -38
  100. package/src/app/settings-config/settings-config.component.spec.ts +25 -25
  101. package/src/app/settings-config/settings-config.component.ts +161 -161
  102. package/src/app/settings-datasets/settings-datasets.component.html +43 -43
  103. package/src/app/settings-datasets/settings-datasets.component.scss +39 -39
  104. package/src/app/settings-datasets/settings-datasets.component.spec.ts +25 -25
  105. package/src/app/settings-datasets/settings-datasets.component.ts +98 -98
  106. package/src/app/settings-datasets/settings-datasets.modal.html +54 -54
  107. package/src/app/settings-notifications/settings-notifications.component.html +65 -65
  108. package/src/app/settings-notifications/settings-notifications.component.spec.ts +25 -25
  109. package/src/app/settings-notifications/settings-notifications.component.ts +29 -29
  110. package/src/app/settings-signalk/settings-signalk.component.html +8 -8
  111. package/src/app/settings-signalk/settings-signalk.component.spec.ts +25 -25
  112. package/src/app/settings-signalk/settings-signalk.component.ts +174 -174
  113. package/src/app/settings-units/settings-units.component.css +4 -4
  114. package/src/app/settings-units/settings-units.component.html +19 -19
  115. package/src/app/settings-units/settings-units.component.spec.ts +25 -25
  116. package/src/app/settings-units/settings-units.component.ts +62 -62
  117. package/src/app/settings-zones/settings-zones.component.css +21 -21
  118. package/src/app/settings-zones/settings-zones.component.html +70 -70
  119. package/src/app/settings-zones/settings-zones.modal.html +38 -38
  120. package/src/app/signalk-connection.service.ts +344 -344
  121. package/src/app/signalk-delta.service.spec.ts +15 -15
  122. package/src/app/signalk-delta.service.ts +97 -97
  123. package/src/app/signalk-full.service.ts +99 -99
  124. package/src/app/signalk-interfaces.ts +129 -129
  125. package/src/app/signalk-requests.service.spec.ts +12 -12
  126. package/src/app/signalk-requests.service.ts +180 -180
  127. package/src/app/svg-autopilot/svg-autopilot.component.html +1036 -1036
  128. package/src/app/svg-autopilot/svg-autopilot.component.spec.ts +25 -25
  129. package/src/app/svg-autopilot/svg-autopilot.component.ts +174 -174
  130. package/src/app/svg-simple-linear-gauge/svg-simple-linear-gauge.component.html +119 -119
  131. package/src/app/svg-simple-linear-gauge/svg-simple-linear-gauge.component.spec.ts +25 -25
  132. package/src/app/svg-simple-linear-gauge/svg-simple-linear-gauge.component.ts +49 -49
  133. package/src/app/svg-wind/svg-wind.component.html +969 -969
  134. package/src/app/svg-wind/svg-wind.component.scss +76 -76
  135. package/src/app/svg-wind/svg-wind.component.spec.ts +25 -25
  136. package/src/app/svg-wind/svg-wind.component.ts +280 -280
  137. package/src/app/unit-window/unit-window.component.css +37 -37
  138. package/src/app/unit-window/unit-window.component.html +8 -8
  139. package/src/app/unit-window/unit-window.component.spec.ts +25 -25
  140. package/src/app/unit-window/unit-window.component.ts +134 -134
  141. package/src/app/unit-window/unit-window.modal.html +24 -24
  142. package/src/app/units.service.ts +300 -300
  143. package/src/app/widget-autopilot/widget-autopilot.component.html +78 -85
  144. package/src/app/widget-autopilot/widget-autopilot.component.scss +191 -191
  145. package/src/app/widget-autopilot/widget-autopilot.component.spec.ts +25 -25
  146. package/src/app/widget-autopilot/widget-autopilot.component.ts +774 -781
  147. package/src/app/widget-blank/widget-blank.component.scss +21 -22
  148. package/src/app/widget-blank/widget-blank.component.spec.ts +25 -25
  149. package/src/app/widget-blank/widget-blank.component.ts +17 -17
  150. package/src/app/widget-gauge/widget-gauge.component.css +25 -25
  151. package/src/app/widget-gauge/widget-gauge.component.html +29 -29
  152. package/src/app/widget-gauge/widget-gauge.component.spec.ts +25 -25
  153. package/src/app/widget-gauge/widget-gauge.component.ts +120 -120
  154. package/src/app/widget-gauge-ng-linear/widget-gauge-ng-linear.component.html +126 -126
  155. package/src/app/widget-gauge-ng-linear/widget-gauge-ng-linear.component.scss +94 -93
  156. package/src/app/widget-gauge-ng-linear/widget-gauge-ng-linear.component.spec.ts +25 -25
  157. package/src/app/widget-gauge-ng-linear/widget-gauge-ng-linear.component.ts +424 -424
  158. package/src/app/widget-gauge-ng-radial/widget-gauge-ng-radial.component.html +1 -1
  159. package/src/app/widget-gauge-ng-radial/widget-gauge-ng-radial.component.scss +69 -69
  160. package/src/app/widget-gauge-ng-radial/widget-gauge-ng-radial.component.spec.ts +25 -25
  161. package/src/app/widget-gauge-ng-radial/widget-gauge-ng-radial.component.ts +553 -553
  162. package/src/app/widget-historical/widget-historical.component.html +14 -14
  163. package/src/app/widget-historical/widget-historical.component.spec.ts +25 -25
  164. package/src/app/widget-historical/widget-historical.component.ts +306 -306
  165. package/src/app/widget-iframe/widget-iframe.component.css +11 -11
  166. package/src/app/widget-iframe/widget-iframe.component.html +21 -21
  167. package/src/app/widget-iframe/widget-iframe.component.spec.ts +25 -25
  168. package/src/app/widget-iframe/widget-iframe.component.ts +63 -63
  169. package/src/app/widget-list.service.ts +135 -135
  170. package/src/app/widget-manager.service.ts +141 -141
  171. package/src/app/widget-numeric/widget-numeric.component.html +1 -1
  172. package/src/app/widget-numeric/widget-numeric.component.scss +3 -3
  173. package/src/app/widget-numeric/widget-numeric.component.spec.ts +25 -25
  174. package/src/app/widget-simple-linear/widget-simple-linear.component.html +28 -28
  175. package/src/app/widget-simple-linear/widget-simple-linear.component.scss +64 -64
  176. package/src/app/widget-simple-linear/widget-simple-linear.component.spec.ts +25 -25
  177. package/src/app/widget-simple-linear/widget-simple-linear.component.ts +199 -199
  178. package/src/app/widget-state/widget-state.component.html +27 -27
  179. package/src/app/widget-state/widget-state.component.scss +68 -68
  180. package/src/app/widget-state/widget-state.component.spec.ts +25 -25
  181. package/src/app/widget-state/widget-state.component.ts +178 -178
  182. package/src/app/widget-switch/widget-switch.component.css +69 -69
  183. package/src/app/widget-switch/widget-switch.component.html +17 -17
  184. package/src/app/widget-switch/widget-switch.component.spec.ts +25 -25
  185. package/src/app/widget-switch/widget-switch.component.ts +134 -134
  186. package/src/app/widget-text-generic/widget-text-generic.component.html +9 -9
  187. package/src/app/widget-text-generic/widget-text-generic.component.spec.ts +25 -25
  188. package/src/app/widget-tutorial/widget-tutorial.component.html +34 -34
  189. package/src/app/widget-tutorial/widget-tutorial.component.spec.ts +25 -25
  190. package/src/app/widget-tutorial/widget-tutorial.component.ts +18 -18
  191. package/src/app/widget-unknown/widget-unknown.component.spec.ts +25 -25
  192. package/src/app/widget-wind/widget-wind.component.css +23 -23
  193. package/src/app/widget-wind/widget-wind.component.html +20 -20
  194. package/src/app/widget-wind/widget-wind.component.spec.ts +25 -25
  195. package/src/app/widget-wind/widget-wind.component.ts +369 -369
  196. package/src/assets/NoSleep.min.js +1 -1
  197. package/src/assets/fontawesome6/css/all.min.css +6 -0
  198. package/src/assets/fontawesome6/webfonts/fa-brands-400.ttf +0 -0
  199. package/src/assets/fontawesome6/webfonts/fa-brands-400.woff2 +0 -0
  200. package/src/assets/fontawesome6/webfonts/fa-regular-400.ttf +0 -0
  201. package/src/assets/fontawesome6/webfonts/fa-regular-400.woff2 +0 -0
  202. package/src/assets/fontawesome6/webfonts/fa-solid-900.ttf +0 -0
  203. package/src/assets/fontawesome6/webfonts/fa-solid-900.woff2 +0 -0
  204. package/src/assets/fontawesome6/webfonts/fa-v4compatibility.ttf +0 -0
  205. package/src/assets/fontawesome6/webfonts/fa-v4compatibility.woff2 +0 -0
  206. package/src/assets/icon-192x192.png +0 -0
  207. package/src/assets/icon-256x256.png +0 -0
  208. package/src/assets/icon-384x384.png +0 -0
  209. package/src/assets/icon-512x512.png +0 -0
  210. package/src/assets/steelseries-min.js +25 -25
  211. package/src/assets/steelseries-min.js.map +8 -8
  212. package/src/assets/steelseries.js +15834 -15834
  213. package/src/assets/svg-autopilot-inkscape-plain.svg +983 -983
  214. package/src/assets/svg-wind-inkscape.svg +1358 -1358
  215. package/src/assets/tween.js +381 -381
  216. package/src/index.html +20 -20
  217. package/src/main.ts +11 -11
  218. package/src/manifest.json +33 -0
  219. package/src/polyfills.ts +80 -76
  220. package/src/styles.scss +11 -11
  221. package/src/themes/darkBlueTheme.scss +117 -116
  222. package/src/themes/defaultTheme.scss +50 -49
  223. package/src/themes/highContrastTheme.scss +47 -46
  224. package/src/themes/modernTheme.scss +143 -142
  225. package/src/themes/nightMode.scss +185 -184
  226. package/src/themes/platypusTheme.scss +80 -79
  227. package/src/themes/signalkTheme.scss +112 -111
  228. package/src/tsconfig.app.json +15 -15
  229. package/src/tsconfig.spec.json +20 -20
  230. package/tsconfig.json +23 -23
  231. package/tslint.json +143 -143
  232. package/public/assets/font-awesome/HELP-US-OUT.txt +0 -7
  233. package/public/assets/font-awesome/css/font-awesome.css +0 -2337
  234. package/public/assets/font-awesome/css/font-awesome.min.css +0 -4
  235. package/public/assets/font-awesome/desktop.ini +0 -4
  236. package/public/assets/font-awesome/fonts/FontAwesome.otf +0 -0
  237. package/public/assets/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  238. package/public/assets/font-awesome/fonts/fontawesome-webfont.svg +0 -2671
  239. package/public/assets/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  240. package/public/assets/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  241. package/public/assets/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
  242. package/public/assets/font-awesome/less/animated.less +0 -34
  243. package/public/assets/font-awesome/less/bordered-pulled.less +0 -25
  244. package/public/assets/font-awesome/less/core.less +0 -12
  245. package/public/assets/font-awesome/less/fixed-width.less +0 -6
  246. package/public/assets/font-awesome/less/font-awesome.less +0 -18
  247. package/public/assets/font-awesome/less/icons.less +0 -789
  248. package/public/assets/font-awesome/less/larger.less +0 -13
  249. package/public/assets/font-awesome/less/list.less +0 -19
  250. package/public/assets/font-awesome/less/mixins.less +0 -60
  251. package/public/assets/font-awesome/less/path.less +0 -15
  252. package/public/assets/font-awesome/less/rotated-flipped.less +0 -20
  253. package/public/assets/font-awesome/less/screen-reader.less +0 -5
  254. package/public/assets/font-awesome/less/stacked.less +0 -20
  255. package/public/assets/font-awesome/less/variables.less +0 -800
  256. package/public/assets/font-awesome/scss/_animated.scss +0 -34
  257. package/public/assets/font-awesome/scss/_bordered-pulled.scss +0 -25
  258. package/public/assets/font-awesome/scss/_core.scss +0 -12
  259. package/public/assets/font-awesome/scss/_fixed-width.scss +0 -6
  260. package/public/assets/font-awesome/scss/_icons.scss +0 -789
  261. package/public/assets/font-awesome/scss/_larger.scss +0 -13
  262. package/public/assets/font-awesome/scss/_list.scss +0 -19
  263. package/public/assets/font-awesome/scss/_mixins.scss +0 -60
  264. package/public/assets/font-awesome/scss/_path.scss +0 -15
  265. package/public/assets/font-awesome/scss/_rotated-flipped.scss +0 -20
  266. package/public/assets/font-awesome/scss/_screen-reader.scss +0 -5
  267. package/public/assets/font-awesome/scss/_stacked.scss +0 -20
  268. package/public/assets/font-awesome/scss/_variables.scss +0 -800
  269. package/public/assets/font-awesome/scss/font-awesome.scss +0 -18
  270. package/public/main-es2018.ab0adc5af3ab3e70c849.js +0 -1
  271. package/public/main-es5.ab0adc5af3ab3e70c849.js +0 -1
  272. package/public/polyfills-es2018.713f95af1f028e444854.js +0 -1
  273. package/public/polyfills-es5.c78877945523541d2597.js +0 -1
  274. package/public/runtime-es2018.a4dadbc03350107420a4.js +0 -1
  275. package/public/runtime-es5.a4dadbc03350107420a4.js +0 -1
  276. package/public/styles.71bb0d04cad96b5efbe1.css +0 -19
  277. package/src/assets/font-awesome/HELP-US-OUT.txt +0 -7
  278. package/src/assets/font-awesome/css/font-awesome.css +0 -2337
  279. package/src/assets/font-awesome/css/font-awesome.min.css +0 -4
  280. package/src/assets/font-awesome/desktop.ini +0 -4
  281. package/src/assets/font-awesome/fonts/FontAwesome.otf +0 -0
  282. package/src/assets/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  283. package/src/assets/font-awesome/fonts/fontawesome-webfont.svg +0 -2671
  284. package/src/assets/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  285. package/src/assets/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  286. package/src/assets/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
  287. package/src/assets/font-awesome/less/animated.less +0 -34
  288. package/src/assets/font-awesome/less/bordered-pulled.less +0 -25
  289. package/src/assets/font-awesome/less/core.less +0 -12
  290. package/src/assets/font-awesome/less/fixed-width.less +0 -6
  291. package/src/assets/font-awesome/less/font-awesome.less +0 -18
  292. package/src/assets/font-awesome/less/icons.less +0 -789
  293. package/src/assets/font-awesome/less/larger.less +0 -13
  294. package/src/assets/font-awesome/less/list.less +0 -19
  295. package/src/assets/font-awesome/less/mixins.less +0 -60
  296. package/src/assets/font-awesome/less/path.less +0 -15
  297. package/src/assets/font-awesome/less/rotated-flipped.less +0 -20
  298. package/src/assets/font-awesome/less/screen-reader.less +0 -5
  299. package/src/assets/font-awesome/less/stacked.less +0 -20
  300. package/src/assets/font-awesome/less/variables.less +0 -800
  301. package/src/assets/font-awesome/scss/_animated.scss +0 -34
  302. package/src/assets/font-awesome/scss/_bordered-pulled.scss +0 -25
  303. package/src/assets/font-awesome/scss/_core.scss +0 -12
  304. package/src/assets/font-awesome/scss/_fixed-width.scss +0 -6
  305. package/src/assets/font-awesome/scss/_icons.scss +0 -789
  306. package/src/assets/font-awesome/scss/_larger.scss +0 -13
  307. package/src/assets/font-awesome/scss/_list.scss +0 -19
  308. package/src/assets/font-awesome/scss/_mixins.scss +0 -60
  309. package/src/assets/font-awesome/scss/_path.scss +0 -15
  310. package/src/assets/font-awesome/scss/_rotated-flipped.scss +0 -20
  311. package/src/assets/font-awesome/scss/_screen-reader.scss +0 -5
  312. package/src/assets/font-awesome/scss/_stacked.scss +0 -20
  313. package/src/assets/font-awesome/scss/_variables.scss +0 -800
  314. package/src/assets/font-awesome/scss/font-awesome.scss +0 -18
@@ -1,384 +1,384 @@
1
- import { IAppConfig, IThemeConfig, IWidgetConfig, ILayoutConfig, INotificationConfig } from './app-settings.service';
2
-
3
-
4
- // Demo Mode config settings file
5
- export const DemoAppConfig: IAppConfig = {
6
- "configVersion": 6,
7
- "kipUUID": newUuid(),
8
- "signalKUrl": "http://demo.signalk.org",
9
- "signalKToken": null,
10
- "dataSets": [
11
- {
12
- "uuid": "afbe4e41-26f5-404f-a55d-9f7b9b76fbd1",
13
- "path": "self.environment.wind.speedTrue",
14
- "signalKSource": "default",
15
- "updateTimer": 1,
16
- "dataPoints": 15
17
- }
18
- ],
19
- "unitDefaults": {
20
- "Unitless": 'unitless',
21
- "Speed": 'knots',
22
- "Flow": 'l/h',
23
- "Temperature": 'celsius',
24
- "Length": 'm',
25
- "Volume": 'liter',
26
- "Current": 'A',
27
- "Potential": 'V',
28
- "Charge": 'C',
29
- "Power": 'W',
30
- "Energy": 'J',
31
- "Pressure": 'mmHg',
32
- "Density": 'kg/m3',
33
- "Time": 'Hours',
34
- "Angular Velocity": 'deg/min',
35
- "Angle": 'deg',
36
- "Frequency": 'Hz',
37
- "Ratio": 'ratio'
38
- },
39
- "notificationConfig": {
40
- "disableNotifications": false,
41
- "menuGrouping": true,
42
- "security": {
43
- "disableSecurity": true,
44
- },
45
- "devices": {
46
- "disableDevices": false,
47
- "showNormalState": false,
48
- },
49
- "sound": {
50
- "disableSound": false,
51
- "muteNormal": false,
52
- "muteWarning": false,
53
- "muteAlert": false,
54
- "muteAlarm": false,
55
- "muteEmergency": false,
56
- },
57
- }
58
- }
59
-
60
- export const DemoThemeConfig: IThemeConfig = {
61
- "themeName": "modern-dark"
62
- }
63
-
64
- export const DemoWidgetConfig: IWidgetConfig = {
65
- "widgets": [
66
- {
67
- "uuid": "7298b3be-232f-48bf-9b3d-3b445131a908",
68
- "type": "WidgetNumeric",
69
- "config": {
70
- "paths": {
71
- "numericPath": {
72
- "description": "Numeric Data",
73
- "path": "self.environment.depth.belowTransducer",
74
- "source": "default",
75
- "pathType": "number",
76
- "isPathConfigurable": true,
77
- "convertUnitTo": "m"
78
- }
79
- },
80
- "displayName": "Depth",
81
- "filterSelfPaths": true,
82
- "showMin": false,
83
- "showMax": false,
84
- "numDecimal": 1,
85
- "numInt": 1
86
- }
87
- },
88
- {
89
- "uuid": "7298b3be-232f-48bf-9b3d-3b433131a908",
90
- "type": "WidgetWindComponent",
91
- "config": {
92
- "paths": {
93
- "headingPath": {
94
- "description": "Heading",
95
- "path": "self.navigation.courseOverGroundTrue",
96
- "source": "default",
97
- "pathType": "number",
98
- "isPathConfigurable": true,
99
- "convertUnitTo": "deg"
100
- },
101
- "trueWindAngle": {
102
- "description": "True Wind Angle",
103
- "path": "self.environment.wind.angleTrueWater",
104
- "source": "default",
105
- "pathType": "number",
106
- "isPathConfigurable": true,
107
- "convertUnitTo": "deg"
108
- },
109
- "trueWindSpeed": {
110
- "description": "True Wind Speed",
111
- "path": "self.environment.wind.speedTrue",
112
- "source": "default",
113
- "pathType": "number",
114
- "isPathConfigurable": true,
115
- "convertUnitTo": "knots"
116
- },
117
- "appWindAngle": {
118
- "description": "Apparent Wind Angle",
119
- "path": "self.environment.wind.angleApparent",
120
- "source": "default",
121
- "pathType": "number",
122
- "isPathConfigurable": true,
123
- "convertUnitTo": "deg"
124
- },
125
- "appWindSpeed": {
126
- "description": "Apparent Wind Speed",
127
- "path": "self.environment.wind.speedApparent",
128
- "source": "default",
129
- "pathType": "number",
130
- "isPathConfigurable": true,
131
- "convertUnitTo": "knots"
132
- }
133
- },
134
- "filterSelfPaths": true,
135
- "windSectorEnable": true,
136
- "windSectorWindowSeconds": 10,
137
- "laylineEnable": true,
138
- "laylineAngle": 35
139
- }
140
- },
141
- {
142
- "uuid": "912b86e4-e068-49e9-9f75-a2292d772578",
143
- "type": "WidgetGaugeNgRadialComponent",
144
- "config": {
145
- "displayName": "SOG",
146
- "filterSelfPaths": true,
147
- "paths": {
148
- "gaugePath": {
149
- "description": "Numeric Data",
150
- "path": "self.navigation.speedOverGround",
151
- "source": "default",
152
- "pathType": "number",
153
- "isPathConfigurable": true,
154
- "convertUnitTo": "knots"
155
- }
156
- },
157
- "gaugeType": "ngRadial",
158
- "gaugeTicks": false,
159
- "radialSize": "measuring",
160
- "minValue": 0,
161
- "maxValue": 10,
162
- "numInt": 1,
163
- "numDecimal": 1,
164
- "barColor": "accent"
165
- }
166
- },
167
- {
168
- "uuid": "85525ebc-c40c-41e6-8379-05d573a331e1",
169
- "type": "WidgetGaugeNgLinearComponent",
170
- "config": {
171
- "displayName": "Apparent Wind Speed",
172
- "filterSelfPaths": true,
173
- "paths": {
174
- "gaugePath": {
175
- "description": "Numeric Data",
176
- "path": "self.environment.wind.speedApparent",
177
- "source": "default",
178
- "pathType": "number",
179
- "isPathConfigurable": true,
180
- "convertUnitTo": "knots"
181
- }
182
- },
183
- "gaugeType": "ngLinearHorizontal",
184
- "gaugeTicks": true,
185
- "minValue": 0,
186
- "maxValue": 30,
187
- "numInt": 1,
188
- "numDecimal": 1,
189
- "barColor": "accent"
190
- }
191
- },
192
- {
193
- "uuid": "a49a59c6-b83d-40e0-b759-9d153da69105",
194
- "type": "WidgetNumeric",
195
- "config": {
196
- "paths": {
197
- "numericPath": {
198
- "description": "Numeric Data",
199
- "path": "self.navigation.speedThroughWater",
200
- "source": "default",
201
- "pathType": "number",
202
- "isPathConfigurable": true,
203
- "convertUnitTo": "knots"
204
- }
205
- },
206
- "displayName": "Speed",
207
- "filterSelfPaths": true,
208
- "showMin": true,
209
- "showMax": true,
210
- "numDecimal": 1,
211
- "numInt": 1
212
- }
213
- },
214
- {
215
- "uuid": "62fa8155-10fd-49cb-a495-cee6e9491b8a",
216
- "type": "WidgetNumeric",
217
- "config": {
218
- "paths": {
219
- "numericPath": {
220
- "description": "Numeric Data",
221
- "path": "self.performance.velocityMadeGood",
222
- "source": "default",
223
- "pathType": "number",
224
- "isPathConfigurable": true,
225
- "convertUnitTo": "knots"
226
- }
227
- },
228
- "displayName": "VMG",
229
- "filterSelfPaths": true,
230
- "showMin": true,
231
- "showMax": true,
232
- "numDecimal": 1,
233
- "numInt": 1
234
- }
235
- },
236
- {
237
- "uuid": "42de0119-481c-4466-8b50-1407533ac2aa",
238
- "type": "WidgetHistorical",
239
- "config": {
240
- "convertUnitTo": "knots",
241
- "displayName": "WindSpeed True",
242
- "filterSelfPaths": true,
243
- "dataSetUUID": "afbe4e41-26f5-404f-a55d-9f7b9b76fbd1",
244
- "invertData": false,
245
- "displayMinMax": false,
246
- "includeZero": true,
247
- "minValue": null,
248
- "maxValue": null,
249
- "verticalGraph": false
250
- }
251
- },
252
- {
253
- "uuid": "66eb9453-73a2-4f69-9fc6-ececd3f96ce6",
254
- "type": "WidgetGaugeNgRadialComponent",
255
- "config": {
256
- "displayName": "COG (True)",
257
- "filterSelfPaths": true,
258
- "paths": {
259
- "gaugePath": {
260
- "description": "Numeric Data",
261
- "path": "self.navigation.courseOverGroundTrue",
262
- "source": "default",
263
- "pathType": "number",
264
- "isPathConfigurable": true,
265
- "convertUnitTo": "deg"
266
- }
267
- },
268
- "gaugeType": "ngRadial",
269
- "gaugeTicks": false,
270
- "radialSize": "baseplateCompass",
271
- "minValue": 0,
272
- "maxValue": 360,
273
- "numInt": 1,
274
- "numDecimal": 0,
275
- "barColor": "accent"
276
- }
277
- }
278
- ]
279
- }
280
-
281
- export const DemoLayoutConfig: ILayoutConfig = {
282
- "splitSets": [
283
- {
284
- "uuid": "isplitsx-xxxx-4xxx-yxxx-xxxxxxxxxxxx",
285
- "direction": "horizontal",
286
- "splitAreas": [
287
- {
288
- "uuid": "d107e54d-2db5-4abf-aba7-b96ce19f5abd",
289
- "type": "splitSet",
290
- "size": 30.079353380503136
291
- },
292
- {
293
- "uuid": "9249373f-7aa4-4673-8004-3e4e900e0b3d",
294
- "type": "splitSet",
295
- "size": 38.1436713836478
296
- },
297
- {
298
- "uuid": "d5be7f74-28c0-484c-a0cd-e623eb5db837",
299
- "type": "splitSet",
300
- "size": 31.776975235849058
301
- }
302
- ]
303
- },
304
- {
305
- "uuid": "9249373f-7aa4-4673-8004-3e4e900e0b3d",
306
- "parentUUID": "isplitsx-xxxx-4xxx-yxxx-xxxxxxxxxxxx",
307
- "direction": "vertical",
308
- "splitAreas": [
309
- {
310
- "uuid": "7298b3be-232f-48bf-9b3d-3b433131a908",
311
- "type": "widget",
312
- "size": 71.69133771929825
313
- },
314
- {
315
- "uuid": "85525ebc-c40c-41e6-8379-05d573a331e1",
316
- "type": "widget",
317
- "size": 28.308662280701753
318
- }
319
- ]
320
- },
321
- {
322
- "uuid": "d107e54d-2db5-4abf-aba7-b96ce19f5abd",
323
- "parentUUID": "isplitsx-xxxx-4xxx-yxxx-xxxxxxxxxxxx",
324
- "direction": "vertical",
325
- "splitAreas": [
326
- {
327
- "uuid": "7298b3be-232f-48bf-9b3d-3b445131a908",
328
- "type": "widget",
329
- "size": 33.13526570048309
330
- },
331
- {
332
- "uuid": "a49a59c6-b83d-40e0-b759-9d153da69105",
333
- "type": "widget",
334
- "size": 33.432367149758456
335
- },
336
- {
337
- "uuid": "62fa8155-10fd-49cb-a495-cee6e9491b8a",
338
- "type": "widget",
339
- "size": 33.432367149758456
340
- }
341
- ]
342
- },
343
- {
344
- "uuid": "d5be7f74-28c0-484c-a0cd-e623eb5db837",
345
- "parentUUID": "isplitsx-xxxx-4xxx-yxxx-xxxxxxxxxxxx",
346
- "direction": "vertical",
347
- "splitAreas": [
348
- {
349
- "uuid": "912b86e4-e068-49e9-9f75-a2292d772578",
350
- "type": "widget",
351
- "size": 25
352
- },
353
- {
354
- "uuid": "42de0119-481c-4466-8b50-1407533ac2aa",
355
- "type": "widget",
356
- "size": 25
357
- }
358
- ]
359
- },
360
- {
361
- "uuid": "d735c561-d413-4f7e-93d9-2c494e16184e",
362
- "direction": "horizontal",
363
- "splitAreas": [
364
- {
365
- "uuid": "66eb9453-73a2-4f69-9fc6-ececd3f96ce6",
366
- "type": "widget",
367
- "size": 100
368
- }
369
- ]
370
- }
371
- ],
372
- "rootSplits": [
373
- "isplitsx-xxxx-4xxx-yxxx-xxxxxxxxxxxx",
374
- "d735c561-d413-4f7e-93d9-2c494e16184e"
375
- ]
376
- }
377
-
378
-
379
- function newUuid() {
380
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
381
- var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
382
- return v.toString(16);
383
- });
1
+ import { IAppConfig, IThemeConfig, IWidgetConfig, ILayoutConfig, INotificationConfig } from './app-settings.service';
2
+
3
+
4
+ // Demo Mode config settings file
5
+ export const DemoAppConfig: IAppConfig = {
6
+ "configVersion": 6,
7
+ "kipUUID": newUuid(),
8
+ "signalKUrl": "http://demo.signalk.org",
9
+ "signalKToken": null,
10
+ "dataSets": [
11
+ {
12
+ "uuid": "afbe4e41-26f5-404f-a55d-9f7b9b76fbd1",
13
+ "path": "self.environment.wind.speedTrue",
14
+ "signalKSource": "default",
15
+ "updateTimer": 1,
16
+ "dataPoints": 15
17
+ }
18
+ ],
19
+ "unitDefaults": {
20
+ "Unitless": 'unitless',
21
+ "Speed": 'knots',
22
+ "Flow": 'l/h',
23
+ "Temperature": 'celsius',
24
+ "Length": 'm',
25
+ "Volume": 'liter',
26
+ "Current": 'A',
27
+ "Potential": 'V',
28
+ "Charge": 'C',
29
+ "Power": 'W',
30
+ "Energy": 'J',
31
+ "Pressure": 'mmHg',
32
+ "Density": 'kg/m3',
33
+ "Time": 'Hours',
34
+ "Angular Velocity": 'deg/min',
35
+ "Angle": 'deg',
36
+ "Frequency": 'Hz',
37
+ "Ratio": 'ratio'
38
+ },
39
+ "notificationConfig": {
40
+ "disableNotifications": false,
41
+ "menuGrouping": true,
42
+ "security": {
43
+ "disableSecurity": true,
44
+ },
45
+ "devices": {
46
+ "disableDevices": false,
47
+ "showNormalState": false,
48
+ },
49
+ "sound": {
50
+ "disableSound": false,
51
+ "muteNormal": false,
52
+ "muteWarning": false,
53
+ "muteAlert": false,
54
+ "muteAlarm": false,
55
+ "muteEmergency": false,
56
+ },
57
+ }
58
+ }
59
+
60
+ export const DemoThemeConfig: IThemeConfig = {
61
+ "themeName": "modern-dark"
62
+ }
63
+
64
+ export const DemoWidgetConfig: IWidgetConfig = {
65
+ "widgets": [
66
+ {
67
+ "uuid": "7298b3be-232f-48bf-9b3d-3b445131a908",
68
+ "type": "WidgetNumeric",
69
+ "config": {
70
+ "paths": {
71
+ "numericPath": {
72
+ "description": "Numeric Data",
73
+ "path": "self.environment.depth.belowTransducer",
74
+ "source": "default",
75
+ "pathType": "number",
76
+ "isPathConfigurable": true,
77
+ "convertUnitTo": "m"
78
+ }
79
+ },
80
+ "displayName": "Depth",
81
+ "filterSelfPaths": true,
82
+ "showMin": false,
83
+ "showMax": false,
84
+ "numDecimal": 1,
85
+ "numInt": 1
86
+ }
87
+ },
88
+ {
89
+ "uuid": "7298b3be-232f-48bf-9b3d-3b433131a908",
90
+ "type": "WidgetWindComponent",
91
+ "config": {
92
+ "paths": {
93
+ "headingPath": {
94
+ "description": "Heading",
95
+ "path": "self.navigation.courseOverGroundTrue",
96
+ "source": "default",
97
+ "pathType": "number",
98
+ "isPathConfigurable": true,
99
+ "convertUnitTo": "deg"
100
+ },
101
+ "trueWindAngle": {
102
+ "description": "True Wind Angle",
103
+ "path": "self.environment.wind.angleTrueWater",
104
+ "source": "default",
105
+ "pathType": "number",
106
+ "isPathConfigurable": true,
107
+ "convertUnitTo": "deg"
108
+ },
109
+ "trueWindSpeed": {
110
+ "description": "True Wind Speed",
111
+ "path": "self.environment.wind.speedTrue",
112
+ "source": "default",
113
+ "pathType": "number",
114
+ "isPathConfigurable": true,
115
+ "convertUnitTo": "knots"
116
+ },
117
+ "appWindAngle": {
118
+ "description": "Apparent Wind Angle",
119
+ "path": "self.environment.wind.angleApparent",
120
+ "source": "default",
121
+ "pathType": "number",
122
+ "isPathConfigurable": true,
123
+ "convertUnitTo": "deg"
124
+ },
125
+ "appWindSpeed": {
126
+ "description": "Apparent Wind Speed",
127
+ "path": "self.environment.wind.speedApparent",
128
+ "source": "default",
129
+ "pathType": "number",
130
+ "isPathConfigurable": true,
131
+ "convertUnitTo": "knots"
132
+ }
133
+ },
134
+ "filterSelfPaths": true,
135
+ "windSectorEnable": true,
136
+ "windSectorWindowSeconds": 10,
137
+ "laylineEnable": true,
138
+ "laylineAngle": 35
139
+ }
140
+ },
141
+ {
142
+ "uuid": "912b86e4-e068-49e9-9f75-a2292d772578",
143
+ "type": "WidgetGaugeNgRadialComponent",
144
+ "config": {
145
+ "displayName": "SOG",
146
+ "filterSelfPaths": true,
147
+ "paths": {
148
+ "gaugePath": {
149
+ "description": "Numeric Data",
150
+ "path": "self.navigation.speedOverGround",
151
+ "source": "default",
152
+ "pathType": "number",
153
+ "isPathConfigurable": true,
154
+ "convertUnitTo": "knots"
155
+ }
156
+ },
157
+ "gaugeType": "ngRadial",
158
+ "gaugeTicks": false,
159
+ "radialSize": "measuring",
160
+ "minValue": 0,
161
+ "maxValue": 10,
162
+ "numInt": 1,
163
+ "numDecimal": 1,
164
+ "barColor": "accent"
165
+ }
166
+ },
167
+ {
168
+ "uuid": "85525ebc-c40c-41e6-8379-05d573a331e1",
169
+ "type": "WidgetGaugeNgLinearComponent",
170
+ "config": {
171
+ "displayName": "Apparent Wind Speed",
172
+ "filterSelfPaths": true,
173
+ "paths": {
174
+ "gaugePath": {
175
+ "description": "Numeric Data",
176
+ "path": "self.environment.wind.speedApparent",
177
+ "source": "default",
178
+ "pathType": "number",
179
+ "isPathConfigurable": true,
180
+ "convertUnitTo": "knots"
181
+ }
182
+ },
183
+ "gaugeType": "ngLinearHorizontal",
184
+ "gaugeTicks": true,
185
+ "minValue": 0,
186
+ "maxValue": 30,
187
+ "numInt": 1,
188
+ "numDecimal": 1,
189
+ "barColor": "accent"
190
+ }
191
+ },
192
+ {
193
+ "uuid": "a49a59c6-b83d-40e0-b759-9d153da69105",
194
+ "type": "WidgetNumeric",
195
+ "config": {
196
+ "paths": {
197
+ "numericPath": {
198
+ "description": "Numeric Data",
199
+ "path": "self.navigation.speedThroughWater",
200
+ "source": "default",
201
+ "pathType": "number",
202
+ "isPathConfigurable": true,
203
+ "convertUnitTo": "knots"
204
+ }
205
+ },
206
+ "displayName": "Speed",
207
+ "filterSelfPaths": true,
208
+ "showMin": true,
209
+ "showMax": true,
210
+ "numDecimal": 1,
211
+ "numInt": 1
212
+ }
213
+ },
214
+ {
215
+ "uuid": "62fa8155-10fd-49cb-a495-cee6e9491b8a",
216
+ "type": "WidgetNumeric",
217
+ "config": {
218
+ "paths": {
219
+ "numericPath": {
220
+ "description": "Numeric Data",
221
+ "path": "self.performance.velocityMadeGood",
222
+ "source": "default",
223
+ "pathType": "number",
224
+ "isPathConfigurable": true,
225
+ "convertUnitTo": "knots"
226
+ }
227
+ },
228
+ "displayName": "VMG",
229
+ "filterSelfPaths": true,
230
+ "showMin": true,
231
+ "showMax": true,
232
+ "numDecimal": 1,
233
+ "numInt": 1
234
+ }
235
+ },
236
+ {
237
+ "uuid": "42de0119-481c-4466-8b50-1407533ac2aa",
238
+ "type": "WidgetHistorical",
239
+ "config": {
240
+ "convertUnitTo": "knots",
241
+ "displayName": "WindSpeed True",
242
+ "filterSelfPaths": true,
243
+ "dataSetUUID": "afbe4e41-26f5-404f-a55d-9f7b9b76fbd1",
244
+ "invertData": false,
245
+ "displayMinMax": false,
246
+ "includeZero": true,
247
+ "minValue": null,
248
+ "maxValue": null,
249
+ "verticalGraph": false
250
+ }
251
+ },
252
+ {
253
+ "uuid": "66eb9453-73a2-4f69-9fc6-ececd3f96ce6",
254
+ "type": "WidgetGaugeNgRadialComponent",
255
+ "config": {
256
+ "displayName": "COG (True)",
257
+ "filterSelfPaths": true,
258
+ "paths": {
259
+ "gaugePath": {
260
+ "description": "Numeric Data",
261
+ "path": "self.navigation.courseOverGroundTrue",
262
+ "source": "default",
263
+ "pathType": "number",
264
+ "isPathConfigurable": true,
265
+ "convertUnitTo": "deg"
266
+ }
267
+ },
268
+ "gaugeType": "ngRadial",
269
+ "gaugeTicks": false,
270
+ "radialSize": "baseplateCompass",
271
+ "minValue": 0,
272
+ "maxValue": 360,
273
+ "numInt": 1,
274
+ "numDecimal": 0,
275
+ "barColor": "accent"
276
+ }
277
+ }
278
+ ]
279
+ }
280
+
281
+ export const DemoLayoutConfig: ILayoutConfig = {
282
+ "splitSets": [
283
+ {
284
+ "uuid": "isplitsx-xxxx-4xxx-yxxx-xxxxxxxxxxxx",
285
+ "direction": "horizontal",
286
+ "splitAreas": [
287
+ {
288
+ "uuid": "d107e54d-2db5-4abf-aba7-b96ce19f5abd",
289
+ "type": "splitSet",
290
+ "size": 30.079353380503136
291
+ },
292
+ {
293
+ "uuid": "9249373f-7aa4-4673-8004-3e4e900e0b3d",
294
+ "type": "splitSet",
295
+ "size": 38.1436713836478
296
+ },
297
+ {
298
+ "uuid": "d5be7f74-28c0-484c-a0cd-e623eb5db837",
299
+ "type": "splitSet",
300
+ "size": 31.776975235849058
301
+ }
302
+ ]
303
+ },
304
+ {
305
+ "uuid": "9249373f-7aa4-4673-8004-3e4e900e0b3d",
306
+ "parentUUID": "isplitsx-xxxx-4xxx-yxxx-xxxxxxxxxxxx",
307
+ "direction": "vertical",
308
+ "splitAreas": [
309
+ {
310
+ "uuid": "7298b3be-232f-48bf-9b3d-3b433131a908",
311
+ "type": "widget",
312
+ "size": 71.69133771929825
313
+ },
314
+ {
315
+ "uuid": "85525ebc-c40c-41e6-8379-05d573a331e1",
316
+ "type": "widget",
317
+ "size": 28.308662280701753
318
+ }
319
+ ]
320
+ },
321
+ {
322
+ "uuid": "d107e54d-2db5-4abf-aba7-b96ce19f5abd",
323
+ "parentUUID": "isplitsx-xxxx-4xxx-yxxx-xxxxxxxxxxxx",
324
+ "direction": "vertical",
325
+ "splitAreas": [
326
+ {
327
+ "uuid": "7298b3be-232f-48bf-9b3d-3b445131a908",
328
+ "type": "widget",
329
+ "size": 33.13526570048309
330
+ },
331
+ {
332
+ "uuid": "a49a59c6-b83d-40e0-b759-9d153da69105",
333
+ "type": "widget",
334
+ "size": 33.432367149758456
335
+ },
336
+ {
337
+ "uuid": "62fa8155-10fd-49cb-a495-cee6e9491b8a",
338
+ "type": "widget",
339
+ "size": 33.432367149758456
340
+ }
341
+ ]
342
+ },
343
+ {
344
+ "uuid": "d5be7f74-28c0-484c-a0cd-e623eb5db837",
345
+ "parentUUID": "isplitsx-xxxx-4xxx-yxxx-xxxxxxxxxxxx",
346
+ "direction": "vertical",
347
+ "splitAreas": [
348
+ {
349
+ "uuid": "912b86e4-e068-49e9-9f75-a2292d772578",
350
+ "type": "widget",
351
+ "size": 25
352
+ },
353
+ {
354
+ "uuid": "42de0119-481c-4466-8b50-1407533ac2aa",
355
+ "type": "widget",
356
+ "size": 25
357
+ }
358
+ ]
359
+ },
360
+ {
361
+ "uuid": "d735c561-d413-4f7e-93d9-2c494e16184e",
362
+ "direction": "horizontal",
363
+ "splitAreas": [
364
+ {
365
+ "uuid": "66eb9453-73a2-4f69-9fc6-ececd3f96ce6",
366
+ "type": "widget",
367
+ "size": 100
368
+ }
369
+ ]
370
+ }
371
+ ],
372
+ "rootSplits": [
373
+ "isplitsx-xxxx-4xxx-yxxx-xxxxxxxxxxxx",
374
+ "d735c561-d413-4f7e-93d9-2c494e16184e"
375
+ ]
376
+ }
377
+
378
+
379
+ function newUuid() {
380
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
381
+ var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
382
+ return v.toString(16);
383
+ });
384
384
  }