@mxtommy/kip 3.10.0 → 3.10.1-beta.1

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 (486) hide show
  1. package/README.md +39 -59
  2. package/dist/out-tsc/kip-plugin/src/index.js +223 -0
  3. package/dist/out-tsc/kip-plugin/src/index.js.map +1 -0
  4. package/dist/out-tsc/kip-plugin/src/openApi.json +367 -0
  5. package/dist/out-tsc/package.json +118 -0
  6. package/dist/out-tsc/schematics/widget/index.js +70 -0
  7. package/dist/out-tsc/schematics/widget/index.js.map +1 -0
  8. package/dist/out-tsc/src/app/app.component.js +286 -0
  9. package/dist/out-tsc/src/app/app.component.js.map +1 -0
  10. package/dist/out-tsc/src/app/app.component.spec.js +26 -0
  11. package/dist/out-tsc/src/app/app.component.spec.js.map +1 -0
  12. package/dist/out-tsc/src/app/app.routes.js +35 -0
  13. package/dist/out-tsc/src/app/app.routes.js.map +1 -0
  14. package/dist/out-tsc/src/app/core/components/app-help/app-help.component.js +60 -0
  15. package/dist/out-tsc/src/app/core/components/app-help/app-help.component.js.map +1 -0
  16. package/dist/out-tsc/src/app/core/components/app-help/app-help.component.spec.js +150 -0
  17. package/dist/out-tsc/src/app/core/components/app-help/app-help.component.spec.js.map +1 -0
  18. package/dist/out-tsc/src/app/core/components/dashboard/dashboard.component.js +361 -0
  19. package/dist/out-tsc/src/app/core/components/dashboard/dashboard.component.js.map +1 -0
  20. package/dist/out-tsc/src/app/core/components/dashboard/dashboard.component.spec.js +19 -0
  21. package/dist/out-tsc/src/app/core/components/dashboard/dashboard.component.spec.js.map +1 -0
  22. package/dist/out-tsc/src/app/core/components/dashboard-scroller/dashboard-scroller.component.js +33 -0
  23. package/dist/out-tsc/src/app/core/components/dashboard-scroller/dashboard-scroller.component.js.map +1 -0
  24. package/dist/out-tsc/src/app/core/components/dashboard-scroller/dashboard-scroller.component.spec.js +19 -0
  25. package/dist/out-tsc/src/app/core/components/dashboard-scroller/dashboard-scroller.component.spec.js.map +1 -0
  26. package/dist/out-tsc/src/app/core/components/dashboards-editor/dashboards-editor.component.js +183 -0
  27. package/dist/out-tsc/src/app/core/components/dashboards-editor/dashboards-editor.component.js.map +1 -0
  28. package/dist/out-tsc/src/app/core/components/dashboards-editor/dashboards-editor.component.spec.js +19 -0
  29. package/dist/out-tsc/src/app/core/components/dashboards-editor/dashboards-editor.component.spec.js.map +1 -0
  30. package/dist/out-tsc/src/app/core/components/dashboards-manage-bottom-sheet/dashboards-manage-bottom-sheet.component.js +28 -0
  31. package/dist/out-tsc/src/app/core/components/dashboards-manage-bottom-sheet/dashboards-manage-bottom-sheet.component.js.map +1 -0
  32. package/dist/out-tsc/src/app/core/components/dashboards-manage-bottom-sheet/dashboards-manage-bottom-sheet.component.spec.js +19 -0
  33. package/dist/out-tsc/src/app/core/components/dashboards-manage-bottom-sheet/dashboards-manage-bottom-sheet.component.spec.js.map +1 -0
  34. package/dist/out-tsc/src/app/core/components/data-inspector/data-inspector.component.js +130 -0
  35. package/dist/out-tsc/src/app/core/components/data-inspector/data-inspector.component.js.map +1 -0
  36. package/dist/out-tsc/src/app/core/components/data-inspector/data-inspector.component.spec.js +21 -0
  37. package/dist/out-tsc/src/app/core/components/data-inspector/data-inspector.component.spec.js.map +1 -0
  38. package/dist/out-tsc/src/app/core/components/data-inspector-row/data-inspector-row.component.js +82 -0
  39. package/dist/out-tsc/src/app/core/components/data-inspector-row/data-inspector-row.component.js.map +1 -0
  40. package/dist/out-tsc/src/app/core/components/datasets/datasets.component.js +168 -0
  41. package/dist/out-tsc/src/app/core/components/datasets/datasets.component.js.map +1 -0
  42. package/dist/out-tsc/src/app/core/components/datasets/datasets.component.spec.js +21 -0
  43. package/dist/out-tsc/src/app/core/components/datasets/datasets.component.spec.js.map +1 -0
  44. package/dist/out-tsc/src/app/core/components/dialog-confirmation/dialog-confirmation.component.js +24 -0
  45. package/dist/out-tsc/src/app/core/components/dialog-confirmation/dialog-confirmation.component.js.map +1 -0
  46. package/dist/out-tsc/src/app/core/components/dialog-confirmation/dialog-confirmation.component.spec.js +19 -0
  47. package/dist/out-tsc/src/app/core/components/dialog-confirmation/dialog-confirmation.component.spec.js.map +1 -0
  48. package/dist/out-tsc/src/app/core/components/dialog-dashboard-page-editor/dialog-dashboard-page-editor.component.js +45 -0
  49. package/dist/out-tsc/src/app/core/components/dialog-dashboard-page-editor/dialog-dashboard-page-editor.component.js.map +1 -0
  50. package/dist/out-tsc/src/app/core/components/dialog-dashboard-page-editor/dialog-dashboard-page-editor.component.spec.js +19 -0
  51. package/dist/out-tsc/src/app/core/components/dialog-dashboard-page-editor/dialog-dashboard-page-editor.component.spec.js.map +1 -0
  52. package/dist/out-tsc/src/app/core/components/dialog-frame/dialog-frame.component.js +25 -0
  53. package/dist/out-tsc/src/app/core/components/dialog-frame/dialog-frame.component.js.map +1 -0
  54. package/dist/out-tsc/src/app/core/components/dialog-frame/dialog-frame.component.spec.js +19 -0
  55. package/dist/out-tsc/src/app/core/components/dialog-frame/dialog-frame.component.spec.js.map +1 -0
  56. package/dist/out-tsc/src/app/core/components/dialog-name/dialog-name.component.js +31 -0
  57. package/dist/out-tsc/src/app/core/components/dialog-name/dialog-name.component.js.map +1 -0
  58. package/dist/out-tsc/src/app/core/components/dialog-name/dialog-name.component.spec.js +19 -0
  59. package/dist/out-tsc/src/app/core/components/dialog-name/dialog-name.component.spec.js.map +1 -0
  60. package/dist/out-tsc/src/app/core/components/menu-actions/menu-actions.component.js +100 -0
  61. package/dist/out-tsc/src/app/core/components/menu-actions/menu-actions.component.js.map +1 -0
  62. package/dist/out-tsc/src/app/core/components/menu-actions/menu-actions.component.spec.js +19 -0
  63. package/dist/out-tsc/src/app/core/components/menu-actions/menu-actions.component.spec.js.map +1 -0
  64. package/dist/out-tsc/src/app/core/components/menu-notifications/menu-notifications.component.js +60 -0
  65. package/dist/out-tsc/src/app/core/components/menu-notifications/menu-notifications.component.js.map +1 -0
  66. package/dist/out-tsc/src/app/core/components/menu-notifications/menu-notifications.component.spec.js +21 -0
  67. package/dist/out-tsc/src/app/core/components/menu-notifications/menu-notifications.component.spec.js.map +1 -0
  68. package/dist/out-tsc/src/app/core/components/modal-user-credential/modal-user-credential.component.js +32 -0
  69. package/dist/out-tsc/src/app/core/components/modal-user-credential/modal-user-credential.component.js.map +1 -0
  70. package/dist/out-tsc/src/app/core/components/modal-user-credential/modal-user-credential.component.spec.js +21 -0
  71. package/dist/out-tsc/src/app/core/components/modal-user-credential/modal-user-credential.component.spec.js.map +1 -0
  72. package/dist/out-tsc/src/app/core/components/notification-badge/notification-badge.component.js +51 -0
  73. package/dist/out-tsc/src/app/core/components/notification-badge/notification-badge.component.js.map +1 -0
  74. package/dist/out-tsc/src/app/core/components/notification-badge/notification-badge.component.spec.js +19 -0
  75. package/dist/out-tsc/src/app/core/components/notification-badge/notification-badge.component.spec.js.map +1 -0
  76. package/dist/out-tsc/src/app/core/components/options/configuration/config.component.js +228 -0
  77. package/dist/out-tsc/src/app/core/components/options/configuration/config.component.js.map +1 -0
  78. package/dist/out-tsc/src/app/core/components/options/configuration/config.component.spec.js +21 -0
  79. package/dist/out-tsc/src/app/core/components/options/configuration/config.component.spec.js.map +1 -0
  80. package/dist/out-tsc/src/app/core/components/options/display/display.component.js +142 -0
  81. package/dist/out-tsc/src/app/core/components/options/display/display.component.js.map +1 -0
  82. package/dist/out-tsc/src/app/core/components/options/display/display.component.spec.js +21 -0
  83. package/dist/out-tsc/src/app/core/components/options/display/display.component.spec.js.map +1 -0
  84. package/dist/out-tsc/src/app/core/components/options/notifications/notifications.component.js +66 -0
  85. package/dist/out-tsc/src/app/core/components/options/notifications/notifications.component.js.map +1 -0
  86. package/dist/out-tsc/src/app/core/components/options/notifications/notifications.component.spec.js +21 -0
  87. package/dist/out-tsc/src/app/core/components/options/notifications/notifications.component.spec.js.map +1 -0
  88. package/dist/out-tsc/src/app/core/components/options/signalk/signalk.component.js +255 -0
  89. package/dist/out-tsc/src/app/core/components/options/signalk/signalk.component.js.map +1 -0
  90. package/dist/out-tsc/src/app/core/components/options/signalk/signalk.component.spec.js +21 -0
  91. package/dist/out-tsc/src/app/core/components/options/signalk/signalk.component.spec.js.map +1 -0
  92. package/dist/out-tsc/src/app/core/components/options/tabs/tabs.component.js +44 -0
  93. package/dist/out-tsc/src/app/core/components/options/tabs/tabs.component.js.map +1 -0
  94. package/dist/out-tsc/src/app/core/components/options/tabs/tabs.component.spec.js +21 -0
  95. package/dist/out-tsc/src/app/core/components/options/tabs/tabs.component.spec.js.map +1 -0
  96. package/dist/out-tsc/src/app/core/components/options/units/units.component.js +55 -0
  97. package/dist/out-tsc/src/app/core/components/options/units/units.component.js.map +1 -0
  98. package/dist/out-tsc/src/app/core/components/options/units/units.component.spec.js +21 -0
  99. package/dist/out-tsc/src/app/core/components/options/units/units.component.spec.js.map +1 -0
  100. package/dist/out-tsc/src/app/core/components/page-header/page-header.component.js +31 -0
  101. package/dist/out-tsc/src/app/core/components/page-header/page-header.component.js.map +1 -0
  102. package/dist/out-tsc/src/app/core/components/page-header/page-header.component.spec.js +19 -0
  103. package/dist/out-tsc/src/app/core/components/page-header/page-header.component.spec.js.map +1 -0
  104. package/dist/out-tsc/src/app/core/components/remote-control/remote-control.component.js +63 -0
  105. package/dist/out-tsc/src/app/core/components/remote-control/remote-control.component.js.map +1 -0
  106. package/dist/out-tsc/src/app/core/components/remote-control/remote-control.component.spec.js +19 -0
  107. package/dist/out-tsc/src/app/core/components/remote-control/remote-control.component.spec.js.map +1 -0
  108. package/dist/out-tsc/src/app/core/components/select-icon/select-icon.component.js +75 -0
  109. package/dist/out-tsc/src/app/core/components/select-icon/select-icon.component.js.map +1 -0
  110. package/dist/out-tsc/src/app/core/components/select-icon/select-icon.component.spec.js +19 -0
  111. package/dist/out-tsc/src/app/core/components/select-icon/select-icon.component.spec.js.map +1 -0
  112. package/dist/out-tsc/src/app/core/components/settings/settings.component.js +56 -0
  113. package/dist/out-tsc/src/app/core/components/settings/settings.component.js.map +1 -0
  114. package/dist/out-tsc/src/app/core/components/settings/settings.component.spec.js +19 -0
  115. package/dist/out-tsc/src/app/core/components/settings/settings.component.spec.js.map +1 -0
  116. package/dist/out-tsc/src/app/core/components/tile-large-icon/tile-large-icon.component.js +28 -0
  117. package/dist/out-tsc/src/app/core/components/tile-large-icon/tile-large-icon.component.js.map +1 -0
  118. package/dist/out-tsc/src/app/core/components/tile-large-icon/tile-large-icon.component.spec.js +19 -0
  119. package/dist/out-tsc/src/app/core/components/tile-large-icon/tile-large-icon.component.spec.js.map +1 -0
  120. package/dist/out-tsc/src/app/core/components/upgrade-config/upgrade-config.component.js +336 -0
  121. package/dist/out-tsc/src/app/core/components/upgrade-config/upgrade-config.component.js.map +1 -0
  122. package/dist/out-tsc/src/app/core/components/upgrade-config/upgrade-config.component.spec.js +19 -0
  123. package/dist/out-tsc/src/app/core/components/upgrade-config/upgrade-config.component.spec.js.map +1 -0
  124. package/dist/out-tsc/src/app/core/components/upgrade-config/v10-config-interface.js +2 -0
  125. package/dist/out-tsc/src/app/core/components/upgrade-config/v10-config-interface.js.map +1 -0
  126. package/dist/out-tsc/src/app/core/components/widget-host/widget-host.component.js +77 -0
  127. package/dist/out-tsc/src/app/core/components/widget-host/widget-host.component.js.map +1 -0
  128. package/dist/out-tsc/src/app/core/components/widget-host/widget-host.component.spec.js +19 -0
  129. package/dist/out-tsc/src/app/core/components/widget-host/widget-host.component.spec.js.map +1 -0
  130. package/dist/out-tsc/src/app/core/components/widget-host-bottom-sheet/widget-host-bottom-sheet.component.js +29 -0
  131. package/dist/out-tsc/src/app/core/components/widget-host-bottom-sheet/widget-host-bottom-sheet.component.js.map +1 -0
  132. package/dist/out-tsc/src/app/core/components/widget-host-bottom-sheet/widget-host-bottom-sheet.component.spec.js +19 -0
  133. package/dist/out-tsc/src/app/core/components/widget-host-bottom-sheet/widget-host-bottom-sheet.component.spec.js.map +1 -0
  134. package/dist/out-tsc/src/app/core/components/widget-list-card/widget-list-card.component.js +34 -0
  135. package/dist/out-tsc/src/app/core/components/widget-list-card/widget-list-card.component.js.map +1 -0
  136. package/dist/out-tsc/src/app/core/components/widget-list-card/widget-list-card.component.spec.js +19 -0
  137. package/dist/out-tsc/src/app/core/components/widget-list-card/widget-list-card.component.spec.js.map +1 -0
  138. package/dist/out-tsc/src/app/core/components/widget-title/widget-title.component.js +70 -0
  139. package/dist/out-tsc/src/app/core/components/widget-title/widget-title.component.js.map +1 -0
  140. package/dist/out-tsc/src/app/core/components/widget-title/widget-title.component.spec.js +19 -0
  141. package/dist/out-tsc/src/app/core/components/widget-title/widget-title.component.spec.js.map +1 -0
  142. package/dist/out-tsc/src/app/core/components/widgets-list/widgets-list.component.js +61 -0
  143. package/dist/out-tsc/src/app/core/components/widgets-list/widgets-list.component.js.map +1 -0
  144. package/dist/out-tsc/src/app/core/components/widgets-list/widgets-list.component.spec.js +19 -0
  145. package/dist/out-tsc/src/app/core/components/widgets-list/widgets-list.component.spec.js.map +1 -0
  146. package/dist/out-tsc/src/app/core/directives/gesture.directive.js +457 -0
  147. package/dist/out-tsc/src/app/core/directives/gesture.directive.js.map +1 -0
  148. package/dist/out-tsc/src/app/core/interceptors/authentication-interceptor.js +43 -0
  149. package/dist/out-tsc/src/app/core/interceptors/authentication-interceptor.js.map +1 -0
  150. package/dist/out-tsc/src/app/core/interceptors/authentication-interceptor.spec.js +7 -0
  151. package/dist/out-tsc/src/app/core/interceptors/authentication-interceptor.spec.js.map +1 -0
  152. package/dist/out-tsc/src/app/core/interfaces/app-interfaces.js +8 -0
  153. package/dist/out-tsc/src/app/core/interfaces/app-interfaces.js.map +1 -0
  154. package/dist/out-tsc/src/app/core/interfaces/app-settings.interfaces.js +2 -0
  155. package/dist/out-tsc/src/app/core/interfaces/app-settings.interfaces.js.map +1 -0
  156. package/dist/out-tsc/src/app/core/interfaces/dialog-data.js +2 -0
  157. package/dist/out-tsc/src/app/core/interfaces/dialog-data.js.map +1 -0
  158. package/dist/out-tsc/src/app/core/interfaces/signalk-autopilot-interfaces.js +11 -0
  159. package/dist/out-tsc/src/app/core/interfaces/signalk-autopilot-interfaces.js.map +1 -0
  160. package/dist/out-tsc/src/app/core/interfaces/signalk-interfaces.js +45 -0
  161. package/dist/out-tsc/src/app/core/interfaces/signalk-interfaces.js.map +1 -0
  162. package/dist/out-tsc/src/app/core/interfaces/widgets-interface.js +7 -0
  163. package/dist/out-tsc/src/app/core/interfaces/widgets-interface.js.map +1 -0
  164. package/dist/out-tsc/src/app/core/pipes/filter-self.pipe.js +24 -0
  165. package/dist/out-tsc/src/app/core/pipes/filter-self.pipe.js.map +1 -0
  166. package/dist/out-tsc/src/app/core/pipes/filter-self.pipe.spec.js +8 -0
  167. package/dist/out-tsc/src/app/core/pipes/filter-self.pipe.spec.js.map +1 -0
  168. package/dist/out-tsc/src/app/core/pipes/object-keys.pipe.js +20 -0
  169. package/dist/out-tsc/src/app/core/pipes/object-keys.pipe.js.map +1 -0
  170. package/dist/out-tsc/src/app/core/pipes/object-keys.pipe.spec.js +8 -0
  171. package/dist/out-tsc/src/app/core/pipes/object-keys.pipe.spec.js.map +1 -0
  172. package/dist/out-tsc/src/app/core/pipes/safe.pipe.js +22 -0
  173. package/dist/out-tsc/src/app/core/pipes/safe.pipe.js.map +1 -0
  174. package/dist/out-tsc/src/app/core/services/app-initNetwork.service.js +199 -0
  175. package/dist/out-tsc/src/app/core/services/app-initNetwork.service.js.map +1 -0
  176. package/dist/out-tsc/src/app/core/services/app-initNetwork.service.spec.js +13 -0
  177. package/dist/out-tsc/src/app/core/services/app-initNetwork.service.spec.js.map +1 -0
  178. package/dist/out-tsc/src/app/core/services/app-service.js +249 -0
  179. package/dist/out-tsc/src/app/core/services/app-service.js.map +1 -0
  180. package/dist/out-tsc/src/app/core/services/app-service.spec.js +13 -0
  181. package/dist/out-tsc/src/app/core/services/app-service.spec.js.map +1 -0
  182. package/dist/out-tsc/src/app/core/services/app-settings.service.js +566 -0
  183. package/dist/out-tsc/src/app/core/services/app-settings.service.js.map +1 -0
  184. package/dist/out-tsc/src/app/core/services/app-settings.service.spec.js +13 -0
  185. package/dist/out-tsc/src/app/core/services/app-settings.service.spec.js.map +1 -0
  186. package/dist/out-tsc/src/app/core/services/authentication.service.js +308 -0
  187. package/dist/out-tsc/src/app/core/services/authentication.service.js.map +1 -0
  188. package/dist/out-tsc/src/app/core/services/authentication.service.spec.js +13 -0
  189. package/dist/out-tsc/src/app/core/services/authentication.service.spec.js.map +1 -0
  190. package/dist/out-tsc/src/app/core/services/canvas.service.js +566 -0
  191. package/dist/out-tsc/src/app/core/services/canvas.service.js.map +1 -0
  192. package/dist/out-tsc/src/app/core/services/canvas.service.spec.js +13 -0
  193. package/dist/out-tsc/src/app/core/services/canvas.service.spec.js.map +1 -0
  194. package/dist/out-tsc/src/app/core/services/connection-state-machine.service.js +325 -0
  195. package/dist/out-tsc/src/app/core/services/connection-state-machine.service.js.map +1 -0
  196. package/dist/out-tsc/src/app/core/services/dashboard.service.js +273 -0
  197. package/dist/out-tsc/src/app/core/services/dashboard.service.js.map +1 -0
  198. package/dist/out-tsc/src/app/core/services/dashboard.service.spec.js +13 -0
  199. package/dist/out-tsc/src/app/core/services/dashboard.service.spec.js.map +1 -0
  200. package/dist/out-tsc/src/app/core/services/data-set.service.js +515 -0
  201. package/dist/out-tsc/src/app/core/services/data-set.service.js.map +1 -0
  202. package/dist/out-tsc/src/app/core/services/data-set.service.spec.js +13 -0
  203. package/dist/out-tsc/src/app/core/services/data-set.service.spec.js.map +1 -0
  204. package/dist/out-tsc/src/app/core/services/data.service.js +425 -0
  205. package/dist/out-tsc/src/app/core/services/data.service.js.map +1 -0
  206. package/dist/out-tsc/src/app/core/services/data.service.spec.js +13 -0
  207. package/dist/out-tsc/src/app/core/services/data.service.spec.js.map +1 -0
  208. package/dist/out-tsc/src/app/core/services/dialog.service.js +73 -0
  209. package/dist/out-tsc/src/app/core/services/dialog.service.js.map +1 -0
  210. package/dist/out-tsc/src/app/core/services/dialog.service.spec.js +13 -0
  211. package/dist/out-tsc/src/app/core/services/dialog.service.spec.js.map +1 -0
  212. package/dist/out-tsc/src/app/core/services/notification-overlay.service.js +106 -0
  213. package/dist/out-tsc/src/app/core/services/notification-overlay.service.js.map +1 -0
  214. package/dist/out-tsc/src/app/core/services/notifications.service.js +322 -0
  215. package/dist/out-tsc/src/app/core/services/notifications.service.js.map +1 -0
  216. package/dist/out-tsc/src/app/core/services/notifications.service.spec.js +10 -0
  217. package/dist/out-tsc/src/app/core/services/notifications.service.spec.js.map +1 -0
  218. package/dist/out-tsc/src/app/core/services/remote-dashboards.service.js +125 -0
  219. package/dist/out-tsc/src/app/core/services/remote-dashboards.service.js.map +1 -0
  220. package/dist/out-tsc/src/app/core/services/remote-dashboards.service.spec.js +13 -0
  221. package/dist/out-tsc/src/app/core/services/remote-dashboards.service.spec.js.map +1 -0
  222. package/dist/out-tsc/src/app/core/services/signalk-connection.service.js +283 -0
  223. package/dist/out-tsc/src/app/core/services/signalk-connection.service.js.map +1 -0
  224. package/dist/out-tsc/src/app/core/services/signalk-delta.service.js +486 -0
  225. package/dist/out-tsc/src/app/core/services/signalk-delta.service.js.map +1 -0
  226. package/dist/out-tsc/src/app/core/services/signalk-delta.service.spec.js +13 -0
  227. package/dist/out-tsc/src/app/core/services/signalk-delta.service.spec.js.map +1 -0
  228. package/dist/out-tsc/src/app/core/services/signalk-plugins.service.js +121 -0
  229. package/dist/out-tsc/src/app/core/services/signalk-plugins.service.js.map +1 -0
  230. package/dist/out-tsc/src/app/core/services/signalk-plugins.service.spec.js +13 -0
  231. package/dist/out-tsc/src/app/core/services/signalk-plugins.service.spec.js.map +1 -0
  232. package/dist/out-tsc/src/app/core/services/signalk-requests.service.js +232 -0
  233. package/dist/out-tsc/src/app/core/services/signalk-requests.service.js.map +1 -0
  234. package/dist/out-tsc/src/app/core/services/signalk-requests.service.spec.js +10 -0
  235. package/dist/out-tsc/src/app/core/services/signalk-requests.service.spec.js.map +1 -0
  236. package/dist/out-tsc/src/app/core/services/storage.service.js +390 -0
  237. package/dist/out-tsc/src/app/core/services/storage.service.js.map +1 -0
  238. package/dist/out-tsc/src/app/core/services/storage.service.spec.js +13 -0
  239. package/dist/out-tsc/src/app/core/services/storage.service.spec.js.map +1 -0
  240. package/dist/out-tsc/src/app/core/services/timers.service.js +107 -0
  241. package/dist/out-tsc/src/app/core/services/timers.service.js.map +1 -0
  242. package/dist/out-tsc/src/app/core/services/timers.service.spec.js +13 -0
  243. package/dist/out-tsc/src/app/core/services/timers.service.spec.js.map +1 -0
  244. package/dist/out-tsc/src/app/core/services/uiEvent.service.js +256 -0
  245. package/dist/out-tsc/src/app/core/services/uiEvent.service.js.map +1 -0
  246. package/dist/out-tsc/src/app/core/services/uiEvent.service.spec.js +13 -0
  247. package/dist/out-tsc/src/app/core/services/uiEvent.service.spec.js.map +1 -0
  248. package/dist/out-tsc/src/app/core/services/units.service.js +630 -0
  249. package/dist/out-tsc/src/app/core/services/units.service.js.map +1 -0
  250. package/dist/out-tsc/src/app/core/services/widget.service.js +405 -0
  251. package/dist/out-tsc/src/app/core/services/widget.service.js.map +1 -0
  252. package/dist/out-tsc/src/app/core/services/widget.service.spec.js +13 -0
  253. package/dist/out-tsc/src/app/core/services/widget.service.spec.js.map +1 -0
  254. package/dist/out-tsc/src/app/core/utils/app-overlay-container.js +30 -0
  255. package/dist/out-tsc/src/app/core/utils/app-overlay-container.js.map +1 -0
  256. package/dist/out-tsc/src/app/core/utils/base-widget.component.js +291 -0
  257. package/dist/out-tsc/src/app/core/utils/base-widget.component.js.map +1 -0
  258. package/dist/out-tsc/src/app/core/utils/base-widget.component.spec.js +88 -0
  259. package/dist/out-tsc/src/app/core/utils/base-widget.component.spec.js.map +1 -0
  260. package/dist/out-tsc/src/app/core/utils/dataScales.util.js +127 -0
  261. package/dist/out-tsc/src/app/core/utils/dataScales.util.js.map +1 -0
  262. package/dist/out-tsc/src/app/core/utils/dataTransforms.util.js +138 -0
  263. package/dist/out-tsc/src/app/core/utils/dataTransforms.util.js.map +1 -0
  264. package/dist/out-tsc/src/app/core/utils/iframe-inputs-inject.utils.js +55 -0
  265. package/dist/out-tsc/src/app/core/utils/iframe-inputs-inject.utils.js.map +1 -0
  266. package/dist/out-tsc/src/app/core/utils/svg-animate.util.js +303 -0
  267. package/dist/out-tsc/src/app/core/utils/svg-animate.util.js.map +1 -0
  268. package/dist/out-tsc/src/app/core/utils/themeColors.utils.js +34 -0
  269. package/dist/out-tsc/src/app/core/utils/themeColors.utils.js.map +1 -0
  270. package/dist/out-tsc/src/app/core/utils/uuid.util.js +17 -0
  271. package/dist/out-tsc/src/app/core/utils/uuid.util.js.map +1 -0
  272. package/dist/out-tsc/src/app/core/utils/zones-highlight.utils.js +87 -0
  273. package/dist/out-tsc/src/app/core/utils/zones-highlight.utils.js.map +1 -0
  274. package/dist/out-tsc/src/app/widget-config/boolean-control-config/boolean-control-config.component.js +49 -0
  275. package/dist/out-tsc/src/app/widget-config/boolean-control-config/boolean-control-config.component.js.map +1 -0
  276. package/dist/out-tsc/src/app/widget-config/boolean-control-config/boolean-control-config.component.spec.js +19 -0
  277. package/dist/out-tsc/src/app/widget-config/boolean-control-config/boolean-control-config.component.spec.js.map +1 -0
  278. package/dist/out-tsc/src/app/widget-config/boolean-multicontrol-options/boolean-multicontrol-options.component.js +100 -0
  279. package/dist/out-tsc/src/app/widget-config/boolean-multicontrol-options/boolean-multicontrol-options.component.js.map +1 -0
  280. package/dist/out-tsc/src/app/widget-config/boolean-multicontrol-options/boolean-multicontrol-options.component.spec.js +19 -0
  281. package/dist/out-tsc/src/app/widget-config/boolean-multicontrol-options/boolean-multicontrol-options.component.spec.js.map +1 -0
  282. package/dist/out-tsc/src/app/widget-config/dataset-chart-options/dataset-chart-options.component.js +54 -0
  283. package/dist/out-tsc/src/app/widget-config/dataset-chart-options/dataset-chart-options.component.js.map +1 -0
  284. package/dist/out-tsc/src/app/widget-config/dataset-chart-options/dataset-chart-options.component.spec.js +19 -0
  285. package/dist/out-tsc/src/app/widget-config/dataset-chart-options/dataset-chart-options.component.spec.js.map +1 -0
  286. package/dist/out-tsc/src/app/widget-config/display-chart-options/display-chart-options.component.js +89 -0
  287. package/dist/out-tsc/src/app/widget-config/display-chart-options/display-chart-options.component.js.map +1 -0
  288. package/dist/out-tsc/src/app/widget-config/display-chart-options/display-chart-options.component.spec.js +19 -0
  289. package/dist/out-tsc/src/app/widget-config/display-chart-options/display-chart-options.component.spec.js.map +1 -0
  290. package/dist/out-tsc/src/app/widget-config/display-datetime/display-datetime.component.js +1760 -0
  291. package/dist/out-tsc/src/app/widget-config/display-datetime/display-datetime.component.js.map +1 -0
  292. package/dist/out-tsc/src/app/widget-config/display-datetime/display-datetime.component.spec.js +19 -0
  293. package/dist/out-tsc/src/app/widget-config/display-datetime/display-datetime.component.spec.js.map +1 -0
  294. package/dist/out-tsc/src/app/widget-config/modal-widget-config/modal-widget-config.component.js +327 -0
  295. package/dist/out-tsc/src/app/widget-config/modal-widget-config/modal-widget-config.component.js.map +1 -0
  296. package/dist/out-tsc/src/app/widget-config/modal-widget-config/modal-widget-config.component.spec.js +21 -0
  297. package/dist/out-tsc/src/app/widget-config/modal-widget-config/modal-widget-config.component.spec.js.map +1 -0
  298. package/dist/out-tsc/src/app/widget-config/path-control-config/path-control-config.component.js +268 -0
  299. package/dist/out-tsc/src/app/widget-config/path-control-config/path-control-config.component.js.map +1 -0
  300. package/dist/out-tsc/src/app/widget-config/path-control-config/path-control-config.component.spec.js +21 -0
  301. package/dist/out-tsc/src/app/widget-config/path-control-config/path-control-config.component.spec.js.map +1 -0
  302. package/dist/out-tsc/src/app/widget-config/paths-options/paths-options.component.js +81 -0
  303. package/dist/out-tsc/src/app/widget-config/paths-options/paths-options.component.js.map +1 -0
  304. package/dist/out-tsc/src/app/widget-config/paths-options/paths-options.component.spec.js +19 -0
  305. package/dist/out-tsc/src/app/widget-config/paths-options/paths-options.component.spec.js.map +1 -0
  306. package/dist/out-tsc/src/app/widget-config/select-autopilot/select-autopilot.component.js +266 -0
  307. package/dist/out-tsc/src/app/widget-config/select-autopilot/select-autopilot.component.js.map +1 -0
  308. package/dist/out-tsc/src/app/widget-config/select-autopilot/select-autopilot.component.spec.js +19 -0
  309. package/dist/out-tsc/src/app/widget-config/select-autopilot/select-autopilot.component.spec.js.map +1 -0
  310. package/dist/out-tsc/src/app/widgets/gauge-steel/gauge-steel.component.js +309 -0
  311. package/dist/out-tsc/src/app/widgets/gauge-steel/gauge-steel.component.js.map +1 -0
  312. package/dist/out-tsc/src/app/widgets/gauge-steel/gauge-steel.component.spec.js +21 -0
  313. package/dist/out-tsc/src/app/widgets/gauge-steel/gauge-steel.component.spec.js.map +1 -0
  314. package/dist/out-tsc/src/app/widgets/minichart/minichart.component.js +512 -0
  315. package/dist/out-tsc/src/app/widgets/minichart/minichart.component.js.map +1 -0
  316. package/dist/out-tsc/src/app/widgets/minichart/minichart.component.spec.js +19 -0
  317. package/dist/out-tsc/src/app/widgets/minichart/minichart.component.spec.js.map +1 -0
  318. package/dist/out-tsc/src/app/widgets/svg-autopilot/svg-autopilot.component.js +227 -0
  319. package/dist/out-tsc/src/app/widgets/svg-autopilot/svg-autopilot.component.js.map +1 -0
  320. package/dist/out-tsc/src/app/widgets/svg-autopilot/svg-autopilot.component.spec.js +21 -0
  321. package/dist/out-tsc/src/app/widgets/svg-autopilot/svg-autopilot.component.spec.js.map +1 -0
  322. package/dist/out-tsc/src/app/widgets/svg-boolean-button/svg-boolean-button.component.js +163 -0
  323. package/dist/out-tsc/src/app/widgets/svg-boolean-button/svg-boolean-button.component.js.map +1 -0
  324. package/dist/out-tsc/src/app/widgets/svg-boolean-button/svg-boolean-button.component.spec.js +19 -0
  325. package/dist/out-tsc/src/app/widgets/svg-boolean-button/svg-boolean-button.component.spec.js.map +1 -0
  326. package/dist/out-tsc/src/app/widgets/svg-boolean-light/svg-boolean-light.component.js +97 -0
  327. package/dist/out-tsc/src/app/widgets/svg-boolean-light/svg-boolean-light.component.js.map +1 -0
  328. package/dist/out-tsc/src/app/widgets/svg-boolean-light/svg-boolean-light.component.spec.js +19 -0
  329. package/dist/out-tsc/src/app/widgets/svg-boolean-light/svg-boolean-light.component.spec.js.map +1 -0
  330. package/dist/out-tsc/src/app/widgets/svg-boolean-switch/svg-boolean-switch.component.js +122 -0
  331. package/dist/out-tsc/src/app/widgets/svg-boolean-switch/svg-boolean-switch.component.js.map +1 -0
  332. package/dist/out-tsc/src/app/widgets/svg-boolean-switch/svg-boolean-switch.component.spec.js +19 -0
  333. package/dist/out-tsc/src/app/widgets/svg-boolean-switch/svg-boolean-switch.component.spec.js.map +1 -0
  334. package/dist/out-tsc/src/app/widgets/svg-racesteer/svg-racesteer.component.js +389 -0
  335. package/dist/out-tsc/src/app/widgets/svg-racesteer/svg-racesteer.component.js.map +1 -0
  336. package/dist/out-tsc/src/app/widgets/svg-racesteer/svg-racesteer.component.spec.js +21 -0
  337. package/dist/out-tsc/src/app/widgets/svg-racesteer/svg-racesteer.component.spec.js.map +1 -0
  338. package/dist/out-tsc/src/app/widgets/svg-simple-linear-gauge/svg-simple-linear-gauge.component.js +76 -0
  339. package/dist/out-tsc/src/app/widgets/svg-simple-linear-gauge/svg-simple-linear-gauge.component.js.map +1 -0
  340. package/dist/out-tsc/src/app/widgets/svg-simple-linear-gauge/svg-simple-linear-gauge.component.spec.js +21 -0
  341. package/dist/out-tsc/src/app/widgets/svg-simple-linear-gauge/svg-simple-linear-gauge.component.spec.js.map +1 -0
  342. package/dist/out-tsc/src/app/widgets/svg-windsteer/svg-windsteer.component.js +429 -0
  343. package/dist/out-tsc/src/app/widgets/svg-windsteer/svg-windsteer.component.js.map +1 -0
  344. package/dist/out-tsc/src/app/widgets/svg-windsteer/svg-windsteer.component.spec.js +21 -0
  345. package/dist/out-tsc/src/app/widgets/svg-windsteer/svg-windsteer.component.spec.js.map +1 -0
  346. package/dist/out-tsc/src/app/widgets/widget-autopilot/widget-autopilot.component.js +1128 -0
  347. package/dist/out-tsc/src/app/widgets/widget-autopilot/widget-autopilot.component.js.map +1 -0
  348. package/dist/out-tsc/src/app/widgets/widget-autopilot/widget-autopilot.component.spec.js +21 -0
  349. package/dist/out-tsc/src/app/widgets/widget-autopilot/widget-autopilot.component.spec.js.map +1 -0
  350. package/dist/out-tsc/src/app/widgets/widget-boolean-switch/widget-boolean-switch.component.js +140 -0
  351. package/dist/out-tsc/src/app/widgets/widget-boolean-switch/widget-boolean-switch.component.js.map +1 -0
  352. package/dist/out-tsc/src/app/widgets/widget-boolean-switch/widget-boolean-switch.component.spec.js +19 -0
  353. package/dist/out-tsc/src/app/widgets/widget-boolean-switch/widget-boolean-switch.component.spec.js.map +1 -0
  354. package/dist/out-tsc/src/app/widgets/widget-data-chart/widget-data-chart.component.js +678 -0
  355. package/dist/out-tsc/src/app/widgets/widget-data-chart/widget-data-chart.component.js.map +1 -0
  356. package/dist/out-tsc/src/app/widgets/widget-data-chart/widget-data-chart.component.spec.js +19 -0
  357. package/dist/out-tsc/src/app/widgets/widget-data-chart/widget-data-chart.component.spec.js.map +1 -0
  358. package/dist/out-tsc/src/app/widgets/widget-datetime/widget-datetime.component.js +177 -0
  359. package/dist/out-tsc/src/app/widgets/widget-datetime/widget-datetime.component.js.map +1 -0
  360. package/dist/out-tsc/src/app/widgets/widget-datetime/widget-datetime.component.spec.js +21 -0
  361. package/dist/out-tsc/src/app/widgets/widget-datetime/widget-datetime.component.spec.js.map +1 -0
  362. package/dist/out-tsc/src/app/widgets/widget-freeboardsk/widget-freeboardsk.component.js +146 -0
  363. package/dist/out-tsc/src/app/widgets/widget-freeboardsk/widget-freeboardsk.component.js.map +1 -0
  364. package/dist/out-tsc/src/app/widgets/widget-freeboardsk/widget-freeboardsk.component.spec.js +19 -0
  365. package/dist/out-tsc/src/app/widgets/widget-freeboardsk/widget-freeboardsk.component.spec.js.map +1 -0
  366. package/dist/out-tsc/src/app/widgets/widget-gauge-ng-compass/widget-gauge-ng-compass.component.js +301 -0
  367. package/dist/out-tsc/src/app/widgets/widget-gauge-ng-compass/widget-gauge-ng-compass.component.js.map +1 -0
  368. package/dist/out-tsc/src/app/widgets/widget-gauge-ng-compass/widget-gauge-ng-compass.component.spec.js +19 -0
  369. package/dist/out-tsc/src/app/widgets/widget-gauge-ng-compass/widget-gauge-ng-compass.component.spec.js.map +1 -0
  370. package/dist/out-tsc/src/app/widgets/widget-gauge-ng-linear/widget-gauge-ng-linear.component.js +413 -0
  371. package/dist/out-tsc/src/app/widgets/widget-gauge-ng-linear/widget-gauge-ng-linear.component.js.map +1 -0
  372. package/dist/out-tsc/src/app/widgets/widget-gauge-ng-linear/widget-gauge-ng-linear.component.spec.js +21 -0
  373. package/dist/out-tsc/src/app/widgets/widget-gauge-ng-linear/widget-gauge-ng-linear.component.spec.js.map +1 -0
  374. package/dist/out-tsc/src/app/widgets/widget-gauge-ng-radial/widget-gauge-ng-radial.component.js +360 -0
  375. package/dist/out-tsc/src/app/widgets/widget-gauge-ng-radial/widget-gauge-ng-radial.component.js.map +1 -0
  376. package/dist/out-tsc/src/app/widgets/widget-gauge-ng-radial/widget-gauge-ng-radial.component.spec.js +21 -0
  377. package/dist/out-tsc/src/app/widgets/widget-gauge-ng-radial/widget-gauge-ng-radial.component.spec.js.map +1 -0
  378. package/dist/out-tsc/src/app/widgets/widget-gauge-steel/widget-gauge-steel.component.js +119 -0
  379. package/dist/out-tsc/src/app/widgets/widget-gauge-steel/widget-gauge-steel.component.js.map +1 -0
  380. package/dist/out-tsc/src/app/widgets/widget-gauge-steel/widget-gauge-steel.component.spec.js +21 -0
  381. package/dist/out-tsc/src/app/widgets/widget-gauge-steel/widget-gauge-steel.component.spec.js.map +1 -0
  382. package/dist/out-tsc/src/app/widgets/widget-heel-gauge/widget-heel-gauge.component.js +205 -0
  383. package/dist/out-tsc/src/app/widgets/widget-heel-gauge/widget-heel-gauge.component.js.map +1 -0
  384. package/dist/out-tsc/src/app/widgets/widget-heel-gauge/widget-heel-gauge.component.spec.js +15 -0
  385. package/dist/out-tsc/src/app/widgets/widget-heel-gauge/widget-heel-gauge.component.spec.js.map +1 -0
  386. package/dist/out-tsc/src/app/widgets/widget-horizon/widget-horizon.component.js +196 -0
  387. package/dist/out-tsc/src/app/widgets/widget-horizon/widget-horizon.component.js.map +1 -0
  388. package/dist/out-tsc/src/app/widgets/widget-horizon/widget-horizon.component.spec.js +21 -0
  389. package/dist/out-tsc/src/app/widgets/widget-horizon/widget-horizon.component.spec.js.map +1 -0
  390. package/dist/out-tsc/src/app/widgets/widget-iframe/widget-iframe.component.js +173 -0
  391. package/dist/out-tsc/src/app/widgets/widget-iframe/widget-iframe.component.js.map +1 -0
  392. package/dist/out-tsc/src/app/widgets/widget-iframe/widget-iframe.component.spec.js +21 -0
  393. package/dist/out-tsc/src/app/widgets/widget-iframe/widget-iframe.component.spec.js.map +1 -0
  394. package/dist/out-tsc/src/app/widgets/widget-label/widget-label.component.js +128 -0
  395. package/dist/out-tsc/src/app/widgets/widget-label/widget-label.component.js.map +1 -0
  396. package/dist/out-tsc/src/app/widgets/widget-label/widget-label.component.spec.js +19 -0
  397. package/dist/out-tsc/src/app/widgets/widget-label/widget-label.component.spec.js.map +1 -0
  398. package/dist/out-tsc/src/app/widgets/widget-login/login.component.spec.js +21 -0
  399. package/dist/out-tsc/src/app/widgets/widget-login/login.component.spec.js.map +1 -0
  400. package/dist/out-tsc/src/app/widgets/widget-login/widget-login.component.js +78 -0
  401. package/dist/out-tsc/src/app/widgets/widget-login/widget-login.component.js.map +1 -0
  402. package/dist/out-tsc/src/app/widgets/widget-numeric/widget-numeric.component.js +303 -0
  403. package/dist/out-tsc/src/app/widgets/widget-numeric/widget-numeric.component.js.map +1 -0
  404. package/dist/out-tsc/src/app/widgets/widget-numeric/widget-numeric.spec.js +21 -0
  405. package/dist/out-tsc/src/app/widgets/widget-numeric/widget-numeric.spec.js.map +1 -0
  406. package/dist/out-tsc/src/app/widgets/widget-position/widget-position.component.js +177 -0
  407. package/dist/out-tsc/src/app/widgets/widget-position/widget-position.component.js.map +1 -0
  408. package/dist/out-tsc/src/app/widgets/widget-position/widget-position.component.spec.js +21 -0
  409. package/dist/out-tsc/src/app/widgets/widget-position/widget-position.component.spec.js.map +1 -0
  410. package/dist/out-tsc/src/app/widgets/widget-race-timer/widget-race-timer.component.js +275 -0
  411. package/dist/out-tsc/src/app/widgets/widget-race-timer/widget-race-timer.component.js.map +1 -0
  412. package/dist/out-tsc/src/app/widgets/widget-race-timer/widget-race-timer.component.spec.js +21 -0
  413. package/dist/out-tsc/src/app/widgets/widget-race-timer/widget-race-timer.component.spec.js.map +1 -0
  414. package/dist/out-tsc/src/app/widgets/widget-racer-line/widget-racer-line.component.js +319 -0
  415. package/dist/out-tsc/src/app/widgets/widget-racer-line/widget-racer-line.component.js.map +1 -0
  416. package/dist/out-tsc/src/app/widgets/widget-racer-line/widget-racer-line.component.spec.js +21 -0
  417. package/dist/out-tsc/src/app/widgets/widget-racer-line/widget-racer-line.component.spec.js.map +1 -0
  418. package/dist/out-tsc/src/app/widgets/widget-racer-timer/widget-racer-timer.component.js +365 -0
  419. package/dist/out-tsc/src/app/widgets/widget-racer-timer/widget-racer-timer.component.js.map +1 -0
  420. package/dist/out-tsc/src/app/widgets/widget-racer-timer/widget-racer-timer.component.spec.js +21 -0
  421. package/dist/out-tsc/src/app/widgets/widget-racer-timer/widget-racer-timer.component.spec.js.map +1 -0
  422. package/dist/out-tsc/src/app/widgets/widget-racesteer/widget-racesteer.component.js +321 -0
  423. package/dist/out-tsc/src/app/widgets/widget-racesteer/widget-racesteer.component.js.map +1 -0
  424. package/dist/out-tsc/src/app/widgets/widget-racesteer/widget-racesteer.component.spec.js +21 -0
  425. package/dist/out-tsc/src/app/widgets/widget-racesteer/widget-racesteer.component.spec.js.map +1 -0
  426. package/dist/out-tsc/src/app/widgets/widget-simple-linear/widget-simple-linear.component.js +189 -0
  427. package/dist/out-tsc/src/app/widgets/widget-simple-linear/widget-simple-linear.component.js.map +1 -0
  428. package/dist/out-tsc/src/app/widgets/widget-simple-linear/widget-simple-linear.component.spec.js +21 -0
  429. package/dist/out-tsc/src/app/widgets/widget-simple-linear/widget-simple-linear.component.spec.js.map +1 -0
  430. package/dist/out-tsc/src/app/widgets/widget-slider/widget-slider.component.js +248 -0
  431. package/dist/out-tsc/src/app/widgets/widget-slider/widget-slider.component.js.map +1 -0
  432. package/dist/out-tsc/src/app/widgets/widget-slider/widget-slider.component.spec.js +19 -0
  433. package/dist/out-tsc/src/app/widgets/widget-slider/widget-slider.component.spec.js.map +1 -0
  434. package/dist/out-tsc/src/app/widgets/widget-text/widget-text.component.js +138 -0
  435. package/dist/out-tsc/src/app/widgets/widget-text/widget-text.component.js.map +1 -0
  436. package/dist/out-tsc/src/app/widgets/widget-text/widget-text.component.spec.js +21 -0
  437. package/dist/out-tsc/src/app/widgets/widget-text/widget-text.component.spec.js.map +1 -0
  438. package/dist/out-tsc/src/app/widgets/widget-tutorial/widget-tutorial.component.js +43 -0
  439. package/dist/out-tsc/src/app/widgets/widget-tutorial/widget-tutorial.component.js.map +1 -0
  440. package/dist/out-tsc/src/app/widgets/widget-tutorial/widget-tutorial.component.spec.js +21 -0
  441. package/dist/out-tsc/src/app/widgets/widget-tutorial/widget-tutorial.component.spec.js.map +1 -0
  442. package/dist/out-tsc/src/app/widgets/widget-windsteer/widget-windsteer.component.js +483 -0
  443. package/dist/out-tsc/src/app/widgets/widget-windsteer/widget-windsteer.component.js.map +1 -0
  444. package/dist/out-tsc/src/app/widgets/widget-windsteer/widget-windsteer.component.spec.js +21 -0
  445. package/dist/out-tsc/src/app/widgets/widget-windsteer/widget-windsteer.component.spec.js.map +1 -0
  446. package/dist/out-tsc/src/app/widgets/widget-windtrends-chart/widget-windtrends-chart.component.js +1067 -0
  447. package/dist/out-tsc/src/app/widgets/widget-windtrends-chart/widget-windtrends-chart.component.js.map +1 -0
  448. package/dist/out-tsc/src/app/widgets/widget-windtrends-chart/widget-windtrends-chart.component.spec.js +19 -0
  449. package/dist/out-tsc/src/app/widgets/widget-windtrends-chart/widget-windtrends-chart.component.spec.js.map +1 -0
  450. package/dist/out-tsc/src/default-config/config.blank.const.js +35 -0
  451. package/dist/out-tsc/src/default-config/config.blank.const.js.map +1 -0
  452. package/dist/out-tsc/src/default-config/config.blank.notification.const.js +22 -0
  453. package/dist/out-tsc/src/default-config/config.blank.notification.const.js.map +1 -0
  454. package/dist/out-tsc/src/default-config/config.blank.units.const.js +24 -0
  455. package/dist/out-tsc/src/default-config/config.blank.units.const.js.map +1 -0
  456. package/dist/out-tsc/src/default-config/config.demo.const.js +739 -0
  457. package/dist/out-tsc/src/default-config/config.demo.const.js.map +1 -0
  458. package/dist/out-tsc/src/environments/environment.js +8 -0
  459. package/dist/out-tsc/src/environments/environment.js.map +1 -0
  460. package/dist/out-tsc/src/environments/environment.prod.js +4 -0
  461. package/dist/out-tsc/src/environments/environment.prod.js.map +1 -0
  462. package/dist/out-tsc/src/main.js +111 -0
  463. package/dist/out-tsc/src/main.js.map +1 -0
  464. package/dist/out-tsc/src/polyfills.js +67 -0
  465. package/dist/out-tsc/src/polyfills.js.map +1 -0
  466. package/dist/out-tsc/src/test-setup.js +1 -0
  467. package/dist/out-tsc/src/test-setup.js.map +1 -0
  468. package/dist/out-tsc/src/test-shims/steelseries-shim.js +44 -0
  469. package/dist/out-tsc/src/test-shims/steelseries-shim.js.map +1 -0
  470. package/dist/out-tsc/src/test.js +84 -0
  471. package/dist/out-tsc/src/test.js.map +1 -0
  472. package/images/ActionSidenav.png +0 -0
  473. package/images/KipBrightness-1024.png +0 -0
  474. package/images/KipNightMode-1024.png +0 -0
  475. package/images/Options.png +0 -0
  476. package/images/exterior_user_installs.png +0 -0
  477. package/package.json +1 -1
  478. package/plugin/index.js +2 -1
  479. package/public/{chunk-TTNX7JB6.js → chunk-AAENY2CA.js} +1 -1
  480. package/public/{chunk-YPVFGYWU.js → chunk-BQ27NXSF.js} +1 -1
  481. package/public/chunk-DAFXHRNH.js +1 -0
  482. package/public/{chunk-TSNRNW3D.js → chunk-R6Z4XAJE.js} +1 -1
  483. package/public/{chunk-CCEKSCJH.js → chunk-SMG4DK42.js} +1 -1
  484. package/public/index.html +1 -1
  485. package/public/{main-JN6ENHFX.js → main-4CBSJEBR.js} +2 -2
  486. package/public/chunk-G5U7W6LL.js +0 -1
package/README.md CHANGED
@@ -1,13 +1,11 @@
1
1
  # About KIP
2
2
 
3
- KIP is a powerful and versatile marine instrumentation package designed to display Signal K data. It replicates the functionality of modern Multi-Function Displays (MFDs) similar to most commercial products, while offering unmatched flexibility and customization. KIP can be tailored to any arrangement, displaying all kinds of data available from the Signal K server.
3
+ KIP is a powerful and versatile marine instrumentation package designed to display [Signal K](https://signalk.org) data ([GitHub Projet](https://github.com/SignalK/signalk-server)). It replicates the functionality of modern Multi-Function Displays (MFDs) similar to most commercial products, while offering unmatched flexibility and customization. KIP can be tailored to any arrangement, displaying all kinds of data available from the [Signal K](https://signalk.org) server.
4
4
 
5
- With its responsive design, KIP works seamlessly across phones, tablets, Raspberry Pi, and computers, ensuring an optimal user experience on any device. It supports touchscreen gestures, night/day modes, and even Progressive Web App (PWA) functionality for a full-screen, app-like experience.
5
+ With its responsive design, KIP works seamlessly across phones, tablets, Raspberry Pi, and computers, ensuring an optimal user experience on any device. It supports touchscreen gestures, night/day modes, Progressive Web App (PWA) functionality for a full-screen, app-like experience or Kiosk mode as a dedicate hardware solution.
6
6
 
7
7
  ![KIP](./images/KIPDemo.png)
8
8
 
9
- ![Form factor support](./images/formfactor.png)
10
-
11
9
  Key features include:
12
10
  - **Flexible Layouts**: Build purposeful dashboards with an easy-to-use and intuitive grid layout system. Drag widgets into place and make adjustments with simple gestures or clicks.
13
11
  - **Reusable Widget Library**: A wide range of widgets for numerical, textual, and graphical data, as well as advanced controls like switches, sliders, and autopilot operation.
@@ -15,14 +13,19 @@ Key features include:
15
13
  - **Data State Notifications**: Stay informed with visual and audio alerts for critical data thresholds.
16
14
  - **Multiple User Profiles**: Tailor configurations for different roles, devices, or use cases.
17
15
  - **Cross-Device Compatibility**: Access KIP remotely on any device by navigating to `http://<Signal K Server URL>:<port>/@mxtommy/kip`.
16
+ - **Remote Control**: Control which dashboard is shown on another KIP instance (e.g., a mast display, hard-to-reach screen, or a non‑touch device).
17
+ - **Kiosk Mode**: Run as a single full-screen application; mast, helm, portable display used as a dedicated instrument panel, a chartplotter, etc.
18
+
19
+ KIP is open-source under the MIT license, built by the community and 100% free. [Join the community](https://discord.gg/AMDYT2DQga) on Discord or contribute to the project on GitHub!
18
20
 
19
- KIP is open-source under the MIT license, built by the community and 100% free. Join the community on Discord or contribute to the project on GitHub!
21
+ ## Installations Showcase
22
+ ![Form factor support](./images/exterior_user_installs.png)
23
+ In addition to the obvious navstation, tablet and phone use cases, users have taken KIP outside using Raspberry Pi and Pi Zero computers, rugged tablets and all kinds of cheap to expensive touch screens.
20
24
 
21
25
  ## Read the Help introduction How-to
22
- Read the [Introduction](https://github.com/mxtommy/Kip/blob/master/src/assets/help-docs/welcome.md) help file.
26
+ You just installed KIP and your stuck; read the [Introduction](https://github.com/mxtommy/Kip/blob/master/src/assets/help-docs/welcome.md) help file.
23
27
 
24
28
  # Design Goal
25
-
26
29
  The goal is to replicate and enhance the functionality of modern marine instrumentation displays while providing unmatched customization and flexibility. The design principles include:
27
30
 
28
31
  - **Full-Screen Utilization**: Ensure the display uses the entire screen without requiring scrolling, maximizing visibility and usability.
@@ -31,6 +34,8 @@ The goal is to replicate and enhance the functionality of modern marine instrume
31
34
  - **Cross-Device Compatibility**: Guarantee a consistent and responsive experience across phones, tablets, computers, and other devices.
32
35
  - **Modern Browser Support**: Include support for the latest versions of Chromium and other modern web browsers to ensure optimal performance and compatibility.
33
36
 
37
+ ![Form factor support](./images/formfactor.png)
38
+
34
39
  ## Features
35
40
 
36
41
  ### Intuitive Controls
@@ -38,6 +43,9 @@ The goal is to replicate and enhance the functionality of modern marine instrume
38
43
  - Swipe left and right to access notifications and other system features quickly.
39
44
  - Use keyboard shortcuts for essential features, ensuring fast and efficient navigation across devices.
40
45
 
46
+ ![Sidenav Dashboard Access](./images/ActionSidenav.png)
47
+ Sidenav for quick access to all important features.
48
+
41
49
  ### Progressive Web App (PWA) Support
42
50
  Run KIP in full-screen mode without browser controls, just like a native mobile app. This feature is supported on most mobile operating systems. Follow your browser's instructions to install KIP as a PWA for quick and easy access. It's usually just a few clicks, such as "Add to Home Screen".
43
51
 
@@ -51,15 +59,14 @@ Run KIP in full-screen mode without browser controls, just like a native mobile
51
59
  ### Multiple User Profiles
52
60
  Create and manage profiles for different roles, devices, or use cases. Each profile can have its own dashboard configurations and settings.
53
61
 
54
- ### Open Source and Community-Driven
55
- KIP is built with modern web technologies and is open-source under the MIT license. Like many others, join the community on Discord or contribute to the project on GitHub to help shape its future.
56
-
57
62
  ## User Experience
58
63
 
59
64
  ### Flexible and Easy
60
- Meant to build purposeful screens with however many widgets you want, wherever you want them.
65
+ Meant to build purposeful dashboards with however many widgets you want, wherever you want them.
61
66
 
62
67
  Add, resize, and position the widgets of your choosing. Need more? Add as many additional dashboards as you wish to keep your display purposeful. Simply swipe up and down to quickly cycle through dashboards.
68
+
69
+ Add widget lists sorted by category
63
70
  ![Layouts Configuration Image](./images/KipWidgetConfig-layout-1024.png)
64
71
 
65
72
  Intuitive widget configuration.
@@ -71,6 +78,9 @@ See what Signal K has to offer that you can leverage with widgets. Select it and
71
78
  Many units are supported. Choose your preferred app defaults, then tweak them widget-by-widget as necessary. KIP will automatically convert the units for you.
72
79
  ![Units Configuration Image](./images/KipConfig-Units-1024.png)
73
80
 
81
+ Organize your dashboards and access tools
82
+ ![Options and Dashboards](./images/Options.png)
83
+
74
84
  ## Reusable Widget Library
75
85
  All KIP widgets are visual presentation controls that are very versatile, with multiple advanced configuration options available to suit your needs:
76
86
  - **Numeric display**: Create gauges to display any numerical data sent by your system: SOG, depth, wind speed, VMG, refrigerator temperature, weather data, etc.
@@ -98,22 +108,24 @@ All KIP widgets are visual presentation controls that are very versatile, with m
98
108
  Get the latest version of KIP to see what's new!
99
109
 
100
110
  ### Widget Samples
101
- Various
111
+ Gauges
102
112
  ![Sample Gauges Image](./images/KipGaugeSample1-1024x545.png)
103
113
 
104
- Electrical and Tank Monitoring Sample
114
+ Various
105
115
  ![Electrical Concept Image](./images/KipGaugeSample2-1024x488.png)
106
116
 
107
- Freeboard-SK Integration
117
+ Freeboard-SK Integration with Autopilot
108
118
  ![Freeboard-SK Image](./images/KipFreeboard-SK-1024.png)
109
119
 
110
120
  Grafana Integration
111
121
  ![Embedded Webpage Concept Image](./images/KipGaugeSample3-1024x508.png)
112
122
 
113
- ## Night Mode
114
- Keep your night vision with automatic or manual day and night switching. The image below looks very dark, but at night... it's perfect!
123
+ ## Night Modes
124
+ Keep your night vision with automatic or manual day and night switching to a color preserving dim mode or an all Red theme. The images below look very dark, but at night... they are perfect!
115
125
 
116
- ![Night mode](./images/KipNightMode-1024.png)
126
+ ![Night mode - All Red](./images/KipNightMode-1024.png)
127
+
128
+ ![Night mode - Brightness](./images/KipBrightness-1024.png)
117
129
 
118
130
  ## Harness the Power of Data State Notifications
119
131
  Stay informed with notifications about the state of the data you are interested in.
@@ -131,20 +143,7 @@ Use cases
131
143
  - Non‑touch/no input: select dashboards when no keyboard/mouse is connected or touch is not supported/disabled.
132
144
 
133
145
  ## Dedicated Fullscreen instrument display (Kiosk Mode)
134
- Runs KIP on Raspberry Pi as a single application full-screen, suppresses desktop UI and stays on screen like a dedicated instrument display at a fraction of the cost. Read the [Kiosk Mode](https://github.com/mxtommy/Kip/blob/master/src/assets/help-docs/kiosk.md) help file.
135
-
136
- ## Complementary Components
137
- Typical complementary components you may install (many are often bundled with Signal K distributions):
138
-
139
- **Navigation & Charting**
140
- - **Freeboard‑SK** – Multi‑station, web chart plotter dedicated to Signal K: routes, waypoints, charts, alarms, weather layers, and instrument overlays.
141
-
142
- **Visual Flow / Automation**
143
- - **Node‑RED** – Low‑code, flow‑based wiring of devices, APIs, online services, and custom logic (alert escalation, device control automation, data enrichment, protocol bridging).
144
-
145
- **Data Storage & Analytics**
146
- - **InfluxDB / other TSDB** – High‑resolution historical storage of sensor & performance metrics beyond what lightweight widget charts should retain.
147
- - **Grafana** – Rich exploratory / comparative dashboards, ad‑hoc queries, alert rules on stored metrics, correlation across heterogeneous data sources.
146
+ Runs KIP on Raspberry Pi as a single full-screen application, suppresses desktop UI and stays on screen like a dedicated instrument display at a fraction of the cost. Read the [Kiosk Mode](https://github.com/mxtommy/Kip/blob/master/src/assets/help-docs/kiosk.md) help file.
148
147
 
149
148
  ## Complementary Components
150
149
  Typical complementary components you may install (many are often bundled with Signal K distributions):
@@ -187,35 +186,15 @@ Those domains already have excellent, specialized open‑source tools. Instead o
187
186
  - **Signal K Plugins** – Domain‑specific enrichment (polars, performance calculations, derived environmental data, routing aids) published directly into the Signal K data model that KIP can then display.
188
187
 
189
188
  **Why this separation matters**
190
- Keeping KIP focused preserves responsiveness (lower CPU / memory), reduces UI clutter, and accelerates iteration on core sailing UX. Heavy analytics, complex workflow logic, and broad third‑party embedding stay where they are strongest—outside—but still feed KIP through the common Signal K data fabric.
191
-
192
- In short: use KIP to see & act on live sailing information; use the complementary tools to store it long‑term, analyze it deeply, automate decisions, or build advanced integrations.
193
-
194
- ## Project Scope
195
- What KIP IS about:
196
- - Real‑time presentation of vessel & environment data (navigation, performance, systems) pulled from Signal K.
197
- - Fast, legible, touchscreen‑friendly dashboards for underway decision making.
198
- - Configurable widgets (gauges, charts, timers, controls) tuned for sailing operations.
199
-
200
- What KIP deliberately IS NOT trying to become:
201
- - A full data lake / long‑term time‑series historian.
202
- - A general purpose automation / rules / orchestration engine.
203
- - A universal external web‑app embedding or mash‑up framework.
204
- - A low‑code integration hub for arbitrarily wiring protocols and services.
205
-
206
- Those domains already have excellent, specialized open‑source tools. Instead of re‑implementing them, KIP plays nicely alongside them within a Signal K based onboard stack.
207
189
 
208
- **Processing & Extensions**
209
- - **Signal K Plugins** – Domain‑specific enrichment (polars, performance calculations, derived environmental data, routing aids) published directly into the Signal K data model that KIP can then display.
210
-
211
- **Why this separation matters**
212
- Keeping KIP focused preserves responsiveness (lower CPU / memory), reduces UI clutter, and accelerates iteration on core sailing UX. Heavy analytics, complex workflow logic, and broad third‑party embedding stay where they are strongest—outside—but still feed KIP through the common Signal K data fabric.
190
+ Keeping KIP focused preserves responsiveness (lower CPU / memory), reduces UI clutter, and accelerates core sailing user experience development. Heavy analytics, complex workflow logic, and broad third‑party embedding stay where they are strongest—outside—but still feed KIP through the common Signal K data fabric.
213
191
 
214
192
  In short: use KIP to see & act on live sailing information; use the complementary tools to store it long‑term, analyze it deeply, automate decisions, or build advanced integrations.
215
193
 
216
194
  **Tools**
195
+
217
196
  Linux, Mac, RPi, or Windows dev platform supported
218
- 1. Install the latest Node version (v16+, v18 recommended)
197
+ 1. Install the latest Node version (v20+)
219
198
  2. Download your favorite coding IDE (we use the free Visual Studio Code)
220
199
  3. Create your own GitHub KIP fork.
221
200
  4. Configure your IDE's source control to point to your forked KIP instance (with Visual Studio Code, GitHub support is built-in) and get the fork's master branch locally.
@@ -227,12 +206,12 @@ Linux, Mac, RPi, or Windows dev platform supported
227
206
  2. Check out this new branch.
228
207
  3. In a command shell (or in the Visual Studio Code Terminal window), go to the root of your local project branch folder, if not done automatically by your IDE.
229
208
  4. Install project dependencies using the NPM package and dependency manager: run `npm install`. NPM will read the Kip project dependencies, download, and install everything automatically for you.
230
- 5. Build the app locally using Angular CLI: from that same project root folder, run `ng build`. The CLI tool will build KIP.
209
+ 5. Build the app locally using Angular CLI: from that same project root folder, run `npm run build:all`. The CLI tool will build KIP.
231
210
 
232
211
  **Setup**
233
212
  1. Fire up your local dev instance with `npm run dev`.
234
- 2. Hit Run/Start Debugging in Visual Studio Code or point your favorite browser to `http://localhost:4200/@mxtommy/kip`. Alternatively, to start the dev server and connect using remote devices such as your phone:
235
- `ng serve --configuration=dev --serve-path=/@mxtommy/kip/ --host=<your computer's IP> --port=4200 --disable-host-check`
213
+ 2. Hit Run/Start Debugging in Visual Studio Code or point your favorite browser to `http://localhost:4200/@mxtommy/kip`. Alternatively, to start the dev server and allow remote devices connections, such as with your phone or RPi:
214
+ `ng serve --configuration=dev --serve-path=/@mxtommy/kip/ --host=<your computer's IP> --port=4200`
236
215
  3. Voila!
237
216
 
238
217
  *As you work on source code and save files, the app will automatically reload in the browser with your latest changes.*
@@ -243,7 +222,8 @@ Use the following tool and command line:
243
222
  `npx pwa-asset-generator ./src/assets/favicon.svg ./src/assets/ -i ./src/index.html -m ./src manifest.json -b "linear-gradient(to bottom, rgba(255,255,255,0.15) 0%, rgba(0,0,0,0.15) 100%), radial-gradient(at top center, rgba(255,255,255,0.40) 0%, rgba(0,0,0,0.40) 120%) #989898" -p 5%`
244
223
 
245
224
  **Share**
246
- Once done with your work, from your fork's working branch, make a GitHub pull request to have your code reviewed, merged, and included in the next release.
225
+
226
+ Once done with your work, from your fork's working branch, make a GitHub pull request to have your code reviewed, merged, and included in the next release. It's always optimal to sync with us prior to engaging in extensive new development work.
247
227
 
248
228
  ## Development Instructions & Guidelines
249
229
 
@@ -265,4 +245,4 @@ For guidance on high-performance widget animations (e.g., wind dial rotations, l
265
245
  - **Widget Development**: Always extend `BaseWidgetComponent` (see COPILOT.md).
266
246
  - **Angular Patterns**: Use signals, standalone components, and modern control flow.
267
247
  - **Theming**: Follow KIP's theme system for consistent UI.
268
- - **Code Quality**: Run `npm run lint` before commits (enforced by Husky).
248
+ - **Code Quality**: Run `npm run lint` before commits.
@@ -0,0 +1,223 @@
1
+ import { SKVersion } from '@signalk/server-api';
2
+ import * as openapi from './openApi.json';
3
+ export default (server) => {
4
+ const API_PATHS = {
5
+ DISPLAYS: `/displays`,
6
+ INSTANCE: `/displays/:displayId`,
7
+ ACTIVE_SCREEN: `/displays/:displayId/activeScreen`
8
+ };
9
+ // Helpers
10
+ function getDisplaySelfPath(displayId, suffix) {
11
+ const tail = suffix ? `.${suffix}` : '';
12
+ const want = `displays.${displayId}${tail}`;
13
+ const full = server.getSelfPath(want);
14
+ server.debug(`getDisplaySelfPath: displayId: ${displayId}, suffix: ${suffix}, want=${want}, fullPath=${JSON.stringify(full)}`);
15
+ return full ? full : undefined;
16
+ }
17
+ function getAvailableDisplays() {
18
+ const fullPath = server.getSelfPath('displays');
19
+ server.debug(`getAvailableDisplays: fullPath=${JSON.stringify(fullPath)}`);
20
+ return fullPath ? fullPath : undefined;
21
+ }
22
+ function pathToDotNotation(path) {
23
+ const dottedPath = path.replace(/\//g, '.').replace(/^\./, '');
24
+ server.debug(`pathToDotNotation: input path=${path}, dottedPath=${dottedPath}`);
25
+ return dottedPath;
26
+ }
27
+ function sendOk(res, body) {
28
+ if (body === undefined)
29
+ return res.status(204).end();
30
+ return res.status(200).json(body);
31
+ }
32
+ function sendFail(res, statusCode, message) {
33
+ return res.status(statusCode).json({ state: 'FAILED', statusCode, message });
34
+ }
35
+ const plugin = {
36
+ id: 'kip',
37
+ name: 'KIP',
38
+ description: 'KIP server plugin',
39
+ start: (settings) => {
40
+ server.debug(`Starting plugin with settings: ${JSON.stringify(settings)}`);
41
+ server.setPluginStatus(`Starting...`);
42
+ },
43
+ stop: () => {
44
+ server.debug(`Stopping plugin`);
45
+ const msg = 'Stopped.';
46
+ server.setPluginStatus(msg);
47
+ },
48
+ schema: () => {
49
+ return {
50
+ type: "object",
51
+ properties: {}
52
+ };
53
+ },
54
+ registerWithRouter(router) {
55
+ server.debug(`Registering plugin routes: ${API_PATHS.DISPLAYS}, ${API_PATHS.INSTANCE}, ${API_PATHS.ACTIVE_SCREEN}`);
56
+ // Validate/normalize :displayId where present
57
+ router.param('displayId', (req, res, next, displayId) => {
58
+ if (displayId == null)
59
+ return sendFail(res, 400, 'Missing displayId parameter');
60
+ try {
61
+ let id = String(displayId);
62
+ // Decode percent-encoding if present
63
+ try {
64
+ id = decodeURIComponent(id);
65
+ }
66
+ catch {
67
+ // ignore decode errors, keep original id
68
+ }
69
+ // If someone sent JSON as the path segment, try to recover {"displayId":"..."}
70
+ if (id.trim().startsWith('{')) {
71
+ try {
72
+ const parsed = JSON.parse(id);
73
+ if (parsed && typeof parsed.displayId === 'string') {
74
+ id = parsed.displayId;
75
+ }
76
+ else {
77
+ return sendFail(res, 400, 'Invalid displayId format in JSON');
78
+ }
79
+ }
80
+ catch {
81
+ return sendFail(res, 400, 'Invalid displayId JSON');
82
+ }
83
+ }
84
+ // Basic safety: allow UUID-like strings (alphanum + dash)
85
+ if (!/^[A-Za-z0-9-]+$/.test(id)) {
86
+ return sendFail(res, 400, 'Invalid displayId format');
87
+ }
88
+ req.displayId = id;
89
+ next();
90
+ }
91
+ catch {
92
+ return sendFail(res, 400, 'Missing or invalid displayId parameter');
93
+ }
94
+ });
95
+ router.put(`${API_PATHS.INSTANCE}`, async (req, res) => {
96
+ server.debug(`** PUT ${API_PATHS.INSTANCE}. Params: ${JSON.stringify(req.params)} Body: ${JSON.stringify(req.body)}`);
97
+ try {
98
+ const dottedPath = pathToDotNotation(req.path);
99
+ server.debug(`Updating SK path ${dottedPath}`);
100
+ server.handleMessage(plugin.id, {
101
+ updates: [
102
+ {
103
+ values: [
104
+ {
105
+ path: dottedPath,
106
+ value: req.body ?? null
107
+ }
108
+ ]
109
+ }
110
+ ]
111
+ }, SKVersion.v1);
112
+ return res.status(200).json({ state: 'SUCCESS', statusCode: 200 });
113
+ }
114
+ catch (error) {
115
+ const msg = `HandleMessage failed with errors!`;
116
+ server.setPluginError(msg);
117
+ server.error(`Error in HandleMessage: ${error}`);
118
+ return sendFail(res, 400, error.message);
119
+ }
120
+ });
121
+ router.put(`${API_PATHS.ACTIVE_SCREEN}`, async (req, res) => {
122
+ server.debug(`** PUT ${API_PATHS.ACTIVE_SCREEN}. Params: ${JSON.stringify(req.params)} Body: ${JSON.stringify(req.body)}`);
123
+ try {
124
+ const dottedPath = pathToDotNotation(req.path);
125
+ server.debug(`Updating SK path ${dottedPath} with body.screenIdx`);
126
+ server.handleMessage(plugin.id, {
127
+ updates: [
128
+ {
129
+ values: [
130
+ {
131
+ path: dottedPath,
132
+ value: req.body.screenIdx !== undefined ? req.body.screenIdx : null
133
+ }
134
+ ]
135
+ }
136
+ ]
137
+ }, SKVersion.v1);
138
+ return res.status(200).json({ state: 'SUCCESS', statusCode: 200 });
139
+ }
140
+ catch (error) {
141
+ const msg = `HandleMessage failed with errors!`;
142
+ server.setPluginError(msg);
143
+ server.error(`Error in HandleMessage: ${error}`);
144
+ return sendFail(res, 400, error.message);
145
+ }
146
+ });
147
+ router.get(API_PATHS.DISPLAYS, (req, res) => {
148
+ server.debug(`** GET ${API_PATHS.DISPLAYS}. Params: ${JSON.stringify(req.params)}`);
149
+ try {
150
+ const displays = getAvailableDisplays();
151
+ const items = displays && typeof displays === 'object'
152
+ ? Object.entries(displays)
153
+ .filter(([, v]) => v && typeof v === 'object')
154
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
155
+ .map(([displayId, v]) => ({
156
+ displayId,
157
+ displayName: v?.value?.displayName ?? null
158
+ }))
159
+ : [];
160
+ server.debug(`getAvailableDisplays returned: ${JSON.stringify(displays)}`);
161
+ server.debug(`Found ${items.length} displays: ${JSON.stringify(items)}`);
162
+ return res.status(200).json(items);
163
+ }
164
+ catch (error) {
165
+ server.error(`Error reading displays: ${String(error.message || error)}`);
166
+ return sendFail(res, 400, error.message);
167
+ }
168
+ });
169
+ router.get(`${API_PATHS.INSTANCE}`, (req, res) => {
170
+ server.debug(`** GET ${API_PATHS.INSTANCE}. Params: ${JSON.stringify(req.params)}`);
171
+ try {
172
+ const displayId = req.displayId;
173
+ if (!displayId) {
174
+ return sendFail(res, 400, 'Missing displayId parameter');
175
+ }
176
+ const node = getDisplaySelfPath(displayId);
177
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
178
+ const screens = node?.value?.screens ?? null;
179
+ if (screens === undefined) {
180
+ return sendFail(res, 404, `Display ${displayId} not found`);
181
+ }
182
+ return sendOk(res, screens);
183
+ }
184
+ catch (error) {
185
+ server.error(`Error reading display ${req.params?.displayId}: ${String(error.message || error)}`);
186
+ return sendFail(res, 400, error.message);
187
+ }
188
+ });
189
+ router.get(`${API_PATHS.ACTIVE_SCREEN}`, (req, res) => {
190
+ server.debug(`** GET ${API_PATHS.ACTIVE_SCREEN}. Params: ${JSON.stringify(req.params)}`);
191
+ try {
192
+ const displayId = req.displayId;
193
+ if (!displayId) {
194
+ return sendFail(res, 400, 'Missing displayId parameter');
195
+ }
196
+ const node = getDisplaySelfPath(displayId, 'activeScreen');
197
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
198
+ const idx = node?.value ?? null;
199
+ if (idx === undefined) {
200
+ return sendFail(res, 404, `Active screen for display ${displayId} not found`);
201
+ }
202
+ return sendOk(res, idx);
203
+ }
204
+ catch (error) {
205
+ server.error(`Error reading activeScreen for ${req.params?.displayId}: ${String(error.message || error)}`);
206
+ return sendFail(res, 400, error.message);
207
+ }
208
+ });
209
+ // List all registered routes for debugging
210
+ if (router.stack) {
211
+ router.stack.forEach((layer) => {
212
+ if (layer.route && layer.route.path) {
213
+ server.debug(`Registered route: ${layer.route.stack[0].method.toUpperCase()} ${layer.route.path}`);
214
+ }
215
+ });
216
+ }
217
+ server.setPluginStatus(`Providing remote display screen control`);
218
+ },
219
+ getOpenApi: () => openapi
220
+ };
221
+ return plugin;
222
+ };
223
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../kip-plugin/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAExE,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAE1C,eAAe,CAAC,MAAiB,EAAU,EAAE;IAE3C,MAAM,SAAS,GAAG;QAChB,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,sBAAsB;QAChC,aAAa,EAAE,mCAAmC;KAC1C,CAAC;IAEX,UAAU;IACV,SAAS,kBAAkB,CAAC,SAAiB,EAAE,MAAe;QAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QACvC,MAAM,IAAI,GAAG,YAAY,SAAS,GAAG,IAAI,EAAE,CAAA;QAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QACrC,MAAM,CAAC,KAAK,CAAC,kCAAkC,SAAS,aAAa,MAAM,UAAU,IAAI,cAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC9H,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACjC,CAAC;IAED,SAAS,oBAAoB;QAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAE;QACjD,MAAM,CAAC,KAAK,CAAC,kCAAkC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC3E,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACzC,CAAC;IAED,SAAS,iBAAiB,CAAC,IAAY;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,KAAK,CAAC,iCAAiC,IAAI,gBAAgB,UAAU,EAAE,CAAC,CAAC;QAChF,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,SAAS,MAAM,CAAC,GAAa,EAAE,IAAc;QAC3C,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;QACpD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAED,SAAS,QAAQ,CAAC,GAAa,EAAE,UAAkB,EAAE,OAAe;QAClE,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAA;IAC9E,CAAC;IAED,MAAM,MAAM,GAAW;QACrB,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,mBAAmB;QAChC,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE;YAClB,MAAM,CAAC,KAAK,CAAC,kCAAkC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC3E,MAAM,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,EAAE,GAAG,EAAE;YACT,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAChC,MAAM,GAAG,GAAG,UAAU,CAAC;YACvB,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;QACD,MAAM,EAAE,GAAG,EAAE;YACX,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE;aACf,CAAC;QACJ,CAAC;QACD,kBAAkB,CAAC,MAAM;YACvB,MAAM,CAAC,KAAK,CAAC,8BAA8B,SAAS,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,KAAK,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC;YAEpH,8CAA8C;YAC9C,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,GAAqC,EAAE,GAAa,EAAE,IAAkB,EAAE,SAAiB,EAAE,EAAE;gBACxH,IAAI,SAAS,IAAI,IAAI;oBAAE,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,6BAA6B,CAAC,CAAA;gBAC/E,IAAI,CAAC;oBACH,IAAI,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;oBAC1B,qCAAqC;oBACrC,IAAI,CAAC;wBACH,EAAE,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAA;oBAC7B,CAAC;oBAAC,MAAM,CAAC;wBACP,yCAAyC;oBAC3C,CAAC;oBACD,+EAA+E;oBAC/E,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC9B,IAAI,CAAC;4BACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;4BAC7B,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;gCACnD,EAAE,GAAG,MAAM,CAAC,SAAS,CAAA;4BACvB,CAAC;iCAAM,CAAC;gCACN,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,kCAAkC,CAAC,CAAA;4BAC/D,CAAC;wBACH,CAAC;wBAAC,MAAM,CAAC;4BACP,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,wBAAwB,CAAC,CAAA;wBACrD,CAAC;oBACH,CAAC;oBACD,0DAA0D;oBAC1D,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;wBAChC,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,0BAA0B,CAAC,CAAA;oBACvD,CAAC;oBACD,GAAG,CAAC,SAAS,GAAG,EAAE,CAAA;oBAClB,IAAI,EAAE,CAAA;gBACR,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,wCAAwC,CAAC,CAAA;gBACrE,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;gBACxE,MAAM,CAAC,KAAK,CAAC,UAAU,SAAS,CAAC,QAAQ,aAAa,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtH,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC/C,MAAM,CAAC,KAAK,CAAC,oBAAoB,UAAU,EAAE,CAAC,CAAA;oBAC9C,MAAM,CAAC,aAAa,CAClB,MAAM,CAAC,EAAE,EACT;wBACE,OAAO,EAAE;4BACP;gCACE,MAAM,EAAE;oCACN;wCACE,IAAI,EAAE,UAAkB;wCACxB,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;qCACxB;iCACF;6BACF;yBACF;qBACF,EACD,SAAS,CAAC,EAAE,CACb,CAAC;oBACF,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;gBAErE,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,GAAG,GAAG,mCAAmC,CAAA;oBAC/C,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;oBAC1B,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;oBAEjD,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAG,KAAe,CAAC,OAAO,CAAC,CAAA;gBACrD,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;gBAC7E,MAAM,CAAC,KAAK,CAAC,UAAU,SAAS,CAAC,aAAa,aAAa,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3H,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC/C,MAAM,CAAC,KAAK,CAAC,oBAAoB,UAAU,sBAAsB,CAAC,CAAA;oBAClE,MAAM,CAAC,aAAa,CAClB,MAAM,CAAC,EAAE,EACT;wBACE,OAAO,EAAE;4BACP;gCACE,MAAM,EAAE;oCACN;wCACE,IAAI,EAAE,UAAkB;wCACxB,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;qCACpE;iCACF;6BACF;yBACF;qBACF,EACD,SAAS,CAAC,EAAE,CACb,CAAC;oBACF,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;gBAErE,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,GAAG,GAAG,mCAAmC,CAAA;oBAC/C,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;oBAC1B,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;oBAEjD,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAG,KAAe,CAAC,OAAO,CAAC,CAAA;gBACrD,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;gBAC7D,MAAM,CAAC,KAAK,CAAC,UAAU,SAAS,CAAC,QAAQ,aAAa,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACpF,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC;oBACxC,MAAM,KAAK,GAAG,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;wBACpD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;6BACrB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC;4BAC9C,8DAA8D;6BAC7D,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAgB,EAAE,EAAE,CAAC,CAAC;4BACvC,SAAS;4BACT,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,IAAI,IAAI;yBAC3C,CAAC,CAAC;wBACP,CAAC,CAAC,EAAE,CAAC;oBACP,MAAM,CAAC,KAAK,CAAC,kCAAkC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC3E,MAAM,CAAC,KAAK,CAAC,SAAS,KAAK,CAAC,MAAM,cAAc,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACzE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,2BAA2B,MAAM,CAAE,KAAe,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;oBACrF,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAG,KAAe,CAAC,OAAO,CAAC,CAAA;gBACrD,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;gBAClE,MAAM,CAAC,KAAK,CAAC,UAAU,SAAS,CAAC,QAAQ,aAAa,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACpF,IAAI,CAAC;oBACH,MAAM,SAAS,GAAI,GAAwC,CAAC,SAAS,CAAA;oBACrE,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,6BAA6B,CAAC,CAAA;oBAC1D,CAAC;oBAED,MAAM,IAAI,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;oBAC3C,8DAA8D;oBAC9D,MAAM,OAAO,GAAI,IAAY,EAAE,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC;oBAEtD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;wBAC1B,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,SAAS,YAAY,CAAC,CAAA;oBAC7D,CAAC;oBAED,OAAO,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAC9B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,yBAAyB,GAAG,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,CAAE,KAAe,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC7G,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAG,KAAe,CAAC,OAAO,CAAC,CAAA;gBACrD,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;gBACvE,MAAM,CAAC,KAAK,CAAC,UAAU,SAAS,CAAC,aAAa,aAAa,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACzF,IAAI,CAAC;oBACH,MAAM,SAAS,GAAI,GAAwC,CAAC,SAAS,CAAA;oBACrE,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,6BAA6B,CAAC,CAAA;oBAC1D,CAAC;oBAED,MAAM,IAAI,GAAG,kBAAkB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;oBAC3D,8DAA8D;oBAC9D,MAAM,GAAG,GAAI,IAAY,EAAE,KAAK,IAAI,IAAI,CAAC;oBAEzC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;wBACtB,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,6BAA6B,SAAS,YAAY,CAAC,CAAA;oBAC/E,CAAC;oBAED,OAAO,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC1B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,kCAAkC,GAAG,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,CAAE,KAAe,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;oBACtH,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAG,KAAe,CAAC,OAAO,CAAC,CAAA;gBACrD,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,2CAA2C;YAC3C,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAiE,EAAE,EAAE;oBACzF,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;wBACpC,MAAM,CAAC,KAAK,CAAC,qBAAqB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;oBACrG,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAED,MAAM,CAAC,eAAe,CAAC,yCAAyC,CAAC,CAAC;QACpE,CAAC;QACD,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO;KAC1B,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAA"}