@c8y/ngx-components 1022.9.6 → 1022.13.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 (710) hide show
  1. package/actility-device-registration/actility-device-registration-button.component.d.ts +1 -1
  2. package/actility-device-registration/actility-device-registration-button.component.d.ts.map +1 -1
  3. package/actility-device-registration/actility-device-registration.component.d.ts +1 -1
  4. package/actility-device-registration/actility-device-registration.component.d.ts.map +1 -1
  5. package/actility-device-registration/actility-device-registration.module.d.ts +4 -4
  6. package/actility-device-registration/actility-device-registration.module.d.ts.map +1 -1
  7. package/alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.component.d.ts +1 -1
  8. package/alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.component.d.ts.map +1 -1
  9. package/alarm-event-selector/alarm-event-selection-list/alarm-event-selection-list.component.d.ts +25 -1
  10. package/alarm-event-selector/alarm-event-selection-list/alarm-event-selection-list.component.d.ts.map +1 -1
  11. package/alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.d.ts +1 -1
  12. package/alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.d.ts.map +1 -1
  13. package/alarm-event-selector/alarm-event-selector-modal/alarm-event-selector-modal.component.d.ts +1 -1
  14. package/alarm-event-selector/alarm-event-selector-modal/alarm-event-selector-modal.component.d.ts.map +1 -1
  15. package/alarm-event-selector/alarm-event-selector.component.d.ts +1 -1
  16. package/alarm-event-selector/alarm-event-selector.component.d.ts.map +1 -1
  17. package/alarm-event-selector/alarm-event-selector.module.d.ts +15 -15
  18. package/alarm-event-selector/alarm-event-selector.module.d.ts.map +1 -1
  19. package/alarm-event-selector/custom-alarm-event-form/custom-alarm-event-form.component.d.ts +1 -1
  20. package/alarm-event-selector/custom-alarm-event-form/custom-alarm-event-form.component.d.ts.map +1 -1
  21. package/alarm-event-selector/pipes/includes-alarm.pipe.d.ts +1 -1
  22. package/alarm-event-selector/pipes/includes-alarm.pipe.d.ts.map +1 -1
  23. package/alarms/alarm-details.component.d.ts +1 -1
  24. package/alarms/alarm-details.component.d.ts.map +1 -1
  25. package/alarms/alarm-empty.component.d.ts +1 -1
  26. package/alarms/alarm-empty.component.d.ts.map +1 -1
  27. package/alarms/alarm-info.component.d.ts +1 -1
  28. package/alarms/alarm-info.component.d.ts.map +1 -1
  29. package/alarms/alarm-severities-to-title.pipe.d.ts +1 -1
  30. package/alarms/alarm-severities-to-title.pipe.d.ts.map +1 -1
  31. package/alarms/alarm-severity-to-label.pipe.d.ts +1 -1
  32. package/alarms/alarm-severity-to-label.pipe.d.ts.map +1 -1
  33. package/alarms/alarm-status-to-icon.pipe.d.ts +1 -1
  34. package/alarms/alarm-status-to-icon.pipe.d.ts.map +1 -1
  35. package/alarms/alarm-status-to-label.pipe.d.ts +1 -1
  36. package/alarms/alarm-status-to-label.pipe.d.ts.map +1 -1
  37. package/alarms/alarms-date-filter.component.d.ts +1 -1
  38. package/alarms/alarms-date-filter.component.d.ts.map +1 -1
  39. package/alarms/alarms-filter.component.d.ts +1 -1
  40. package/alarms/alarms-filter.component.d.ts.map +1 -1
  41. package/alarms/alarms-icon.component.d.ts +1 -1
  42. package/alarms/alarms-icon.component.d.ts.map +1 -1
  43. package/alarms/alarms-interval-refresh.component.d.ts +1 -1
  44. package/alarms/alarms-interval-refresh.component.d.ts.map +1 -1
  45. package/alarms/alarms-list.component.d.ts +1 -1
  46. package/alarms/alarms-list.component.d.ts.map +1 -1
  47. package/alarms/alarms-type-filter.component.d.ts +1 -1
  48. package/alarms/alarms-type-filter.component.d.ts.map +1 -1
  49. package/alarms/alarms.component.d.ts +1 -1
  50. package/alarms/alarms.component.d.ts.map +1 -1
  51. package/alarms/alarms.module.d.ts +27 -27
  52. package/alarms/alarms.module.d.ts.map +1 -1
  53. package/alarms/audit-changes-message.pipe.d.ts +1 -1
  54. package/alarms/audit-changes-message.pipe.d.ts.map +1 -1
  55. package/api/api.service.d.ts +8 -0
  56. package/api/api.service.d.ts.map +1 -1
  57. package/app-logs/app-logs-auto-refresh.component.d.ts +1 -1
  58. package/app-logs/app-logs-auto-refresh.component.d.ts.map +1 -1
  59. package/app-logs/app-logs-auto-refresh.module.d.ts +4 -4
  60. package/app-logs/app-logs-auto-refresh.module.d.ts.map +1 -1
  61. package/assets-navigator/asset-selector/asset-selector-node.component.d.ts +1 -1
  62. package/assets-navigator/asset-selector/asset-selector-node.component.d.ts.map +1 -1
  63. package/assets-navigator/asset-selector/asset-selector.component.d.ts +12 -1
  64. package/assets-navigator/asset-selector/asset-selector.component.d.ts.map +1 -1
  65. package/assets-navigator/asset-selector/asset-selector.module.d.ts +8 -8
  66. package/assets-navigator/asset-selector/asset-selector.module.d.ts.map +1 -1
  67. package/assets-navigator/asset-selector/miller-view.component.d.ts +1 -1
  68. package/assets-navigator/asset-selector/miller-view.component.d.ts.map +1 -1
  69. package/auth-configuration/basic-settings/auth-configuration.component.d.ts +1 -1
  70. package/auth-configuration/basic-settings/auth-configuration.component.d.ts.map +1 -1
  71. package/auth-configuration/basic-settings/basic-auth-settings.component.d.ts +1 -1
  72. package/auth-configuration/basic-settings/basic-auth-settings.component.d.ts.map +1 -1
  73. package/auth-configuration/basic-settings/basic-settings.module.d.ts +8 -8
  74. package/auth-configuration/basic-settings/basic-settings.module.d.ts.map +1 -1
  75. package/auth-configuration/basic-settings/login-settings.component.d.ts +2 -2
  76. package/auth-configuration/basic-settings/login-settings.component.d.ts.map +1 -1
  77. package/auth-configuration/basic-settings/session-configuration.component.d.ts +1 -1
  78. package/auth-configuration/basic-settings/session-configuration.component.d.ts.map +1 -1
  79. package/auth-configuration/basic-settings/tfa-settings.component.d.ts +1 -1
  80. package/auth-configuration/basic-settings/tfa-settings.component.d.ts.map +1 -1
  81. package/auth-configuration/sso-configuration/sso-configuration.component.d.ts +1 -1
  82. package/auth-configuration/sso-configuration/sso-configuration.component.d.ts.map +1 -1
  83. package/auth-configuration/sso-configuration/sso-configuration.module.d.ts +24 -24
  84. package/auth-configuration/sso-configuration/sso-configuration.module.d.ts.map +1 -1
  85. package/auth-configuration/sso-configuration/template-parts/access-mapping/access-mapping.component.d.ts +1 -1
  86. package/auth-configuration/sso-configuration/template-parts/access-mapping/access-mapping.component.d.ts.map +1 -1
  87. package/auth-configuration/sso-configuration/template-parts/access-mapping/child-predicates.component.d.ts +1 -1
  88. package/auth-configuration/sso-configuration/template-parts/access-mapping/child-predicates.component.d.ts.map +1 -1
  89. package/auth-configuration/sso-configuration/template-parts/access-mapping/dynamic-access-mapping.component.d.ts +1 -1
  90. package/auth-configuration/sso-configuration/template-parts/access-mapping/dynamic-access-mapping.component.d.ts.map +1 -1
  91. package/auth-configuration/sso-configuration/template-parts/access-mapping/inventory-roles-mapping.component.d.ts +1 -1
  92. package/auth-configuration/sso-configuration/template-parts/access-mapping/inventory-roles-mapping.component.d.ts.map +1 -1
  93. package/auth-configuration/sso-configuration/template-parts/access-mapping/inventory-roles-modal.component.d.ts +1 -1
  94. package/auth-configuration/sso-configuration/template-parts/access-mapping/inventory-roles-modal.component.d.ts.map +1 -1
  95. package/auth-configuration/sso-configuration/template-parts/basic-configuration.component.d.ts +1 -1
  96. package/auth-configuration/sso-configuration/template-parts/basic-configuration.component.d.ts.map +1 -1
  97. package/auth-configuration/sso-configuration/template-parts/external-token-config.component.d.ts +1 -1
  98. package/auth-configuration/sso-configuration/template-parts/external-token-config.component.d.ts.map +1 -1
  99. package/auth-configuration/sso-configuration/template-parts/logout-configuration.component.d.ts +1 -1
  100. package/auth-configuration/sso-configuration/template-parts/logout-configuration.component.d.ts.map +1 -1
  101. package/auth-configuration/sso-configuration/template-parts/request-configuration.component.d.ts +1 -1
  102. package/auth-configuration/sso-configuration/template-parts/request-configuration.component.d.ts.map +1 -1
  103. package/auth-configuration/sso-configuration/template-parts/signature-configuration.component.d.ts +1 -1
  104. package/auth-configuration/sso-configuration/template-parts/signature-configuration.component.d.ts.map +1 -1
  105. package/auth-configuration/sso-configuration/template-parts/user-data-mapping.component.d.ts +1 -1
  106. package/auth-configuration/sso-configuration/template-parts/user-data-mapping.component.d.ts.map +1 -1
  107. package/auth-configuration/sso-configuration/template-parts/user-id-configuration.component.d.ts +1 -1
  108. package/auth-configuration/sso-configuration/template-parts/user-id-configuration.component.d.ts.map +1 -1
  109. package/auth-configuration/sso-configuration/templates/aad-template.component.d.ts +1 -1
  110. package/auth-configuration/sso-configuration/templates/aad-template.component.d.ts.map +1 -1
  111. package/auth-configuration/sso-configuration/templates/custom-template.component.d.ts +1 -1
  112. package/auth-configuration/sso-configuration/templates/custom-template.component.d.ts.map +1 -1
  113. package/auth-configuration/sso-configuration/templates/key-cloak-template.component.d.ts +1 -1
  114. package/auth-configuration/sso-configuration/templates/key-cloak-template.component.d.ts.map +1 -1
  115. package/bookmarks/bookmarks.component.d.ts +1 -1
  116. package/bookmarks/bookmarks.component.d.ts.map +1 -1
  117. package/bookmarks/bookmarks.module.d.ts +7 -7
  118. package/bookmarks/bookmarks.module.d.ts.map +1 -1
  119. package/bookmarks/edit-bookmarks/edit-bookmarks.component.d.ts +1 -1
  120. package/bookmarks/edit-bookmarks/edit-bookmarks.component.d.ts.map +1 -1
  121. package/child-devices/child-devices.component.d.ts +1 -1
  122. package/child-devices/child-devices.component.d.ts.map +1 -1
  123. package/child-devices/child-devices.module.d.ts +5 -5
  124. package/child-devices/child-devices.module.d.ts.map +1 -1
  125. package/cockpit-config/cockpit-config.module.d.ts +17 -17
  126. package/cockpit-config/cockpit-config.module.d.ts.map +1 -1
  127. package/cockpit-config/cockpit-configuration.component.d.ts +1 -1
  128. package/cockpit-config/cockpit-configuration.component.d.ts.map +1 -1
  129. package/cockpit-config/feature-config.component.d.ts +1 -1
  130. package/cockpit-config/feature-config.component.d.ts.map +1 -1
  131. package/cockpit-config/home-dashboard-config.component.d.ts +1 -1
  132. package/cockpit-config/home-dashboard-config.component.d.ts.map +1 -1
  133. package/cockpit-config/misc-config.component.d.ts +1 -1
  134. package/cockpit-config/misc-config.component.d.ts.map +1 -1
  135. package/cockpit-config/root-node-config.component.d.ts +1 -1
  136. package/cockpit-config/root-node-config.component.d.ts.map +1 -1
  137. package/cockpit-config/setup/cockpit-setup-step1.component.d.ts +1 -1
  138. package/cockpit-config/setup/cockpit-setup-step1.component.d.ts.map +1 -1
  139. package/cockpit-config/setup/cockpit-setup-step2.component.d.ts +1 -1
  140. package/cockpit-config/setup/cockpit-setup-step2.component.d.ts.map +1 -1
  141. package/cockpit-config/setup/cockpit-setup-step3.component.d.ts +1 -1
  142. package/cockpit-config/setup/cockpit-setup-step3.component.d.ts.map +1 -1
  143. package/cockpit-config/setup/cockpit-setup-step4.component.d.ts +1 -1
  144. package/cockpit-config/setup/cockpit-setup-step4.component.d.ts.map +1 -1
  145. package/cockpit-config/setup/cockpit-setup-stepper-buttons.component.d.ts +1 -1
  146. package/cockpit-config/setup/cockpit-setup-stepper-buttons.component.d.ts.map +1 -1
  147. package/context-dashboard/add-dashboard.component.d.ts +1 -1
  148. package/context-dashboard/add-dashboard.component.d.ts.map +1 -1
  149. package/context-dashboard/context-dashboard.component.d.ts +2 -1
  150. package/context-dashboard/context-dashboard.component.d.ts.map +1 -1
  151. package/context-dashboard/context-dashboard.model.d.ts +0 -1
  152. package/context-dashboard/context-dashboard.model.d.ts.map +1 -1
  153. package/context-dashboard/context-dashboard.module.d.ts +26 -19
  154. package/context-dashboard/context-dashboard.module.d.ts.map +1 -1
  155. package/context-dashboard/context-dashboard.service.d.ts +6 -1
  156. package/context-dashboard/context-dashboard.service.d.ts.map +1 -1
  157. package/context-dashboard/dashboard-detail.component.d.ts +2 -2
  158. package/context-dashboard/dashboard-detail.component.d.ts.map +1 -1
  159. package/context-dashboard/device-info-dashboard/device-info-dashboard.component.d.ts +1 -1
  160. package/context-dashboard/device-info-dashboard/device-info-dashboard.component.d.ts.map +1 -1
  161. package/context-dashboard/device-info-dashboard/device-info-dashboard.module.d.ts +5 -5
  162. package/context-dashboard/device-info-dashboard/device-info-dashboard.module.d.ts.map +1 -1
  163. package/context-dashboard/device-management-home-dashboard/device-management-home-dashboard.component.d.ts +1 -1
  164. package/context-dashboard/device-management-home-dashboard/device-management-home-dashboard.component.d.ts.map +1 -1
  165. package/context-dashboard/device-management-home-dashboard/device-management-home-dashboard.module.d.ts +5 -5
  166. package/context-dashboard/device-management-home-dashboard/device-management-home-dashboard.module.d.ts.map +1 -1
  167. package/context-dashboard/paste-dashboard-action.component.d.ts +1 -1
  168. package/context-dashboard/paste-dashboard-action.component.d.ts.map +1 -1
  169. package/context-dashboard/widget-config.component.d.ts +1 -1
  170. package/context-dashboard/widget-config.component.d.ts.map +1 -1
  171. package/context-dashboard/widget-config.service.d.ts +1 -1
  172. package/core/alert/alert.service.d.ts +14 -5
  173. package/core/alert/alert.service.d.ts.map +1 -1
  174. package/core/bottom-drawer/bottom-drawer.component.d.ts +3 -0
  175. package/core/bottom-drawer/bottom-drawer.component.d.ts.map +1 -1
  176. package/core/breadcrumb/breadcrumb.module.d.ts +3 -3
  177. package/core/common/ApplicationOptions.d.ts +14 -12
  178. package/core/common/ApplicationOptions.d.ts.map +1 -1
  179. package/core/common/date.pipe.d.ts +1 -1
  180. package/core/common/forOf.directive.d.ts +16 -16
  181. package/core/common/forOf.directive.d.ts.map +1 -1
  182. package/core/common/humanize-app-name.pipe.d.ts +7 -0
  183. package/core/common/humanize-app-name.pipe.d.ts.map +1 -1
  184. package/core/common/humanize.pipe.d.ts +7 -0
  185. package/core/common/humanize.pipe.d.ts.map +1 -1
  186. package/core/common/icon.directive.d.ts +19 -0
  187. package/core/common/icon.directive.d.ts.map +1 -1
  188. package/core/common/markdown-to-html.pipe.d.ts +8 -0
  189. package/core/common/markdown-to-html.pipe.d.ts.map +1 -1
  190. package/core/common/options.service.d.ts +5 -5
  191. package/core/common/outlet.directive.d.ts +4 -6
  192. package/core/common/outlet.directive.d.ts.map +1 -1
  193. package/core/common/permissions.service.d.ts +12 -12
  194. package/core/common/service-registry.service.d.ts +2 -1
  195. package/core/common/service-registry.service.d.ts.map +1 -1
  196. package/core/common/user-name-initials.pipe.d.ts +7 -0
  197. package/core/common/user-name-initials.pipe.d.ts.map +1 -1
  198. package/core/common/user-preferences/user-preferences.service.d.ts +1 -1
  199. package/core/countdown-interval/countdown-interval.component.d.ts +7 -0
  200. package/core/countdown-interval/countdown-interval.component.d.ts.map +1 -1
  201. package/core/date-time-picker/date-time-picker.component.d.ts +20 -0
  202. package/core/date-time-picker/date-time-picker.component.d.ts.map +1 -1
  203. package/core/device-status/device-status.component.d.ts +3 -0
  204. package/core/device-status/device-status.component.d.ts.map +1 -1
  205. package/core/header/header.model.d.ts +3 -2
  206. package/core/header/header.model.d.ts.map +1 -1
  207. package/core/header/title/title.component.d.ts +2 -0
  208. package/core/header/title/title.component.d.ts.map +1 -1
  209. package/core/i18n/c8y-translate.directive.d.ts +2 -2
  210. package/core/list-display-switch/list-display-switch.component.d.ts +9 -0
  211. package/core/list-display-switch/list-display-switch.component.d.ts.map +1 -1
  212. package/core/preview-feature/preview-feature.service.d.ts +1 -0
  213. package/core/preview-feature/preview-feature.service.d.ts.map +1 -1
  214. package/core/range-display/range-display.component.d.ts +11 -0
  215. package/core/range-display/range-display.component.d.ts.map +1 -1
  216. package/core/realtime/realtime.service.d.ts +4 -4
  217. package/dashboard-manager/dashboard-manager.module.d.ts +8 -8
  218. package/dashboard-manager/dashboard-manager.module.d.ts.map +1 -1
  219. package/dashboard-manager/type-dashboard-target-assets-grid/type-dashboard-target-assets-grid.component.d.ts +1 -1
  220. package/dashboard-manager/type-dashboard-target-assets-grid/type-dashboard-target-assets-grid.component.d.ts.map +1 -1
  221. package/dashboard-manager/type-dashboard-target-assets-modal/type-dashboard-target-assets-modal.component.d.ts +1 -1
  222. package/dashboard-manager/type-dashboard-target-assets-modal/type-dashboard-target-assets-modal.component.d.ts.map +1 -1
  223. package/dashboard-manager/type-dashboards-list/type-dashboards-list.component.d.ts +1 -1
  224. package/dashboard-manager/type-dashboards-list/type-dashboards-list.component.d.ts.map +1 -1
  225. package/datapoint-explorer/datapoint-explorer.module.d.ts.map +1 -1
  226. package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.d.ts +1 -1
  227. package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.d.ts.map +1 -1
  228. package/datapoint-selector/datapoint-selection-list/datapoint-selection-list.component.d.ts +10 -1
  229. package/datapoint-selector/datapoint-selection-list/datapoint-selection-list.component.d.ts.map +1 -1
  230. package/datapoint-selector/datapoint-selector-list-item/datapoint-selector-list-item.component.d.ts +1 -1
  231. package/datapoint-selector/datapoint-selector-list-item/datapoint-selector-list-item.component.d.ts.map +1 -1
  232. package/datapoint-selector/datapoint-selector-modal/datapoint-selector-modal.component.d.ts +1 -1
  233. package/datapoint-selector/datapoint-selector-modal/datapoint-selector-modal.component.d.ts.map +1 -1
  234. package/datapoint-selector/datapoint-selector.component.d.ts +1 -1
  235. package/datapoint-selector/datapoint-selector.component.d.ts.map +1 -1
  236. package/datapoint-selector/datapoint-selector.module.d.ts +18 -18
  237. package/datapoint-selector/datapoint-selector.module.d.ts.map +1 -1
  238. package/datapoint-selector/datapoint-template-popover/datapoint-template-popover.component.d.ts +1 -1
  239. package/datapoint-selector/datapoint-template-popover/datapoint-template-popover.component.d.ts.map +1 -1
  240. package/datapoint-selector/pipes/datapoint-label.pipe.d.ts +1 -1
  241. package/datapoint-selector/pipes/datapoint-label.pipe.d.ts.map +1 -1
  242. package/datapoint-selector/pipes/filter-datapoints.pipe.d.ts +1 -1
  243. package/datapoint-selector/pipes/filter-datapoints.pipe.d.ts.map +1 -1
  244. package/datapoint-selector/pipes/includes-datapoint.pipe.d.ts +1 -1
  245. package/datapoint-selector/pipes/includes-datapoint.pipe.d.ts.map +1 -1
  246. package/datapoints-export-selector/datapoints-export-selector.component.d.ts +7 -0
  247. package/datapoints-export-selector/datapoints-export-selector.component.d.ts.map +1 -1
  248. package/default-subscriptions/default-subscriptions.component.d.ts +1 -1
  249. package/default-subscriptions/default-subscriptions.component.d.ts.map +1 -1
  250. package/default-subscriptions/default-subscriptions.module.d.ts +4 -4
  251. package/default-subscriptions/default-subscriptions.module.d.ts.map +1 -1
  252. package/device-grid/columns/alarms.cell-renderer.component.d.ts +1 -1
  253. package/device-grid/columns/alarms.cell-renderer.component.d.ts.map +1 -1
  254. package/device-grid/columns/alarms.header-cell-renderer.component.d.ts +1 -1
  255. package/device-grid/columns/alarms.header-cell-renderer.component.d.ts.map +1 -1
  256. package/device-grid/columns/group.cell-renderer.component.d.ts +1 -1
  257. package/device-grid/columns/group.cell-renderer.component.d.ts.map +1 -1
  258. package/device-grid/columns/group.filtering-form-renderer.component.d.ts +1 -1
  259. package/device-grid/columns/group.filtering-form-renderer.component.d.ts.map +1 -1
  260. package/device-grid/columns/model.cell-renderer.component.d.ts +1 -1
  261. package/device-grid/columns/model.cell-renderer.component.d.ts.map +1 -1
  262. package/device-grid/columns/name.cell-renderer.component.d.ts +1 -1
  263. package/device-grid/columns/name.cell-renderer.component.d.ts.map +1 -1
  264. package/device-grid/columns/registration-date.cell-renderer.component.d.ts +1 -1
  265. package/device-grid/columns/registration-date.cell-renderer.component.d.ts.map +1 -1
  266. package/device-grid/columns/serial-number.cell-renderer.component.d.ts +1 -1
  267. package/device-grid/columns/serial-number.cell-renderer.component.d.ts.map +1 -1
  268. package/device-grid/columns/status.cell-renderer.component.d.ts +1 -1
  269. package/device-grid/columns/status.cell-renderer.component.d.ts.map +1 -1
  270. package/device-grid/device-grid.component.d.ts +1 -1
  271. package/device-grid/device-grid.component.d.ts.map +1 -1
  272. package/device-grid/device-grid.module.d.ts +15 -15
  273. package/device-grid/device-grid.module.d.ts.map +1 -1
  274. package/device-list/add-smart-group.component.d.ts +1 -1
  275. package/device-list/add-smart-group.component.d.ts.map +1 -1
  276. package/device-list/device-list.component.d.ts +1 -1
  277. package/device-list/device-list.component.d.ts.map +1 -1
  278. package/device-list/device-list.module.d.ts +8 -8
  279. package/device-list/device-list.module.d.ts.map +1 -1
  280. package/device-protocols/device-protocols.module.d.ts +1 -1
  281. package/device-protocols/device-type-detail.component.d.ts +1 -1
  282. package/device-protocols/device-type-detail.component.d.ts.map +1 -1
  283. package/device-protocols/device-type-detail.directive.d.ts +1 -1
  284. package/device-protocols/device-type-detail.directive.d.ts.map +1 -1
  285. package/device-provisioned-certificates/device-provisioned-certificates.module.d.ts +7 -7
  286. package/device-provisioned-certificates/device-provisioned-certificates.module.d.ts.map +1 -1
  287. package/device-provisioned-certificates/device-tab-provisioned-certificates.component.d.ts +1 -1
  288. package/device-provisioned-certificates/device-tab-provisioned-certificates.component.d.ts.map +1 -1
  289. package/echart/charts.component.d.ts.map +1 -1
  290. package/echart/models/datapoints-graph-widget.model.d.ts +1 -0
  291. package/echart/models/datapoints-graph-widget.model.d.ts.map +1 -1
  292. package/echart/services/chart-realtime.service.d.ts +8 -1
  293. package/echart/services/chart-realtime.service.d.ts.map +1 -1
  294. package/echart/services/echarts-options.service.d.ts +7 -0
  295. package/echart/services/echarts-options.service.d.ts.map +1 -1
  296. package/ecosystem/activity-log/activity-log.component.d.ts +1 -1
  297. package/ecosystem/activity-log/activity-log.component.d.ts.map +1 -1
  298. package/ecosystem/application-plugins/appState.pipe.d.ts +1 -1
  299. package/ecosystem/application-plugins/appState.pipe.d.ts.map +1 -1
  300. package/ecosystem/application-plugins/application-plugin-readme.component.d.ts +1 -1
  301. package/ecosystem/application-plugins/application-plugin-readme.component.d.ts.map +1 -1
  302. package/ecosystem/application-plugins/application-plugins.component.d.ts +1 -1
  303. package/ecosystem/application-plugins/application-plugins.component.d.ts.map +1 -1
  304. package/ecosystem/application-plugins/application-plugins.module.d.ts +14 -14
  305. package/ecosystem/application-plugins/application-plugins.module.d.ts.map +1 -1
  306. package/ecosystem/application-plugins/apps-to-update-remotes-select.component.d.ts +2 -2
  307. package/ecosystem/application-plugins/apps-to-update-remotes-select.component.d.ts.map +1 -1
  308. package/ecosystem/application-plugins/install-plugin.component.d.ts +1 -1
  309. package/ecosystem/application-plugins/install-plugin.component.d.ts.map +1 -1
  310. package/ecosystem/application-plugins/label-cell-renderer.component.d.ts +1 -1
  311. package/ecosystem/application-plugins/label-cell-renderer.component.d.ts.map +1 -1
  312. package/ecosystem/application-plugins/only-latest-filter/only-latest-filter.component.d.ts +1 -1
  313. package/ecosystem/application-plugins/only-latest-filter/only-latest-filter.component.d.ts.map +1 -1
  314. package/ecosystem/application-plugins/orphaned-status-cell-renderer.component.d.ts +1 -1
  315. package/ecosystem/application-plugins/orphaned-status-cell-renderer.component.d.ts.map +1 -1
  316. package/ecosystem/application-plugins/plugin-list-item.component.d.ts +1 -1
  317. package/ecosystem/application-plugins/plugin-list-item.component.d.ts.map +1 -1
  318. package/ecosystem/application-plugins/plugin-list.component.d.ts +1 -1
  319. package/ecosystem/application-plugins/plugin-list.component.d.ts.map +1 -1
  320. package/ecosystem/application-plugins/update-plugin-of-app/update-plugin-of-app.component.d.ts +1 -1
  321. package/ecosystem/application-plugins/update-plugin-of-app/update-plugin-of-app.component.d.ts.map +1 -1
  322. package/ecosystem/application-properties/application-properties.component.d.ts +1 -1
  323. package/ecosystem/application-properties/application-properties.component.d.ts.map +1 -1
  324. package/ecosystem/application-properties/subscription-modal/subscription-modal.component.d.ts +1 -1
  325. package/ecosystem/application-properties/subscription-modal/subscription-modal.component.d.ts.map +1 -1
  326. package/ecosystem/application-properties/update-application-modal/update-application-modal.component.d.ts +1 -1
  327. package/ecosystem/application-properties/update-application-modal/update-application-modal.component.d.ts.map +1 -1
  328. package/ecosystem/applications/add-external-applicaiton/add-external-application.component.d.ts +1 -1
  329. package/ecosystem/applications/add-external-applicaiton/add-external-application.component.d.ts.map +1 -1
  330. package/ecosystem/applications/add-web-application/add-web-application.component.d.ts +1 -1
  331. package/ecosystem/applications/add-web-application/add-web-application.component.d.ts.map +1 -1
  332. package/ecosystem/applications/application-list/application-list.component.d.ts +1 -1
  333. package/ecosystem/applications/application-list/application-list.component.d.ts.map +1 -1
  334. package/ecosystem/applications/install-from-package/install-from-package.component.d.ts +2 -3
  335. package/ecosystem/applications/install-from-package/install-from-package.component.d.ts.map +1 -1
  336. package/ecosystem/archived-confirm/archived-confirm-modal.component.d.ts +1 -1
  337. package/ecosystem/archived-confirm/archived-confirm-modal.component.d.ts.map +1 -1
  338. package/ecosystem/archived-confirm/archived-confirm.module.d.ts +4 -4
  339. package/ecosystem/archived-confirm/archived-confirm.module.d.ts.map +1 -1
  340. package/ecosystem/ecosystem.module.d.ts +34 -34
  341. package/ecosystem/ecosystem.module.d.ts.map +1 -1
  342. package/ecosystem/features/feature-list.component.d.ts +1 -1
  343. package/ecosystem/features/feature-list.component.d.ts.map +1 -1
  344. package/ecosystem/license-confirm/license-confirm-modal.component.d.ts +1 -1
  345. package/ecosystem/license-confirm/license-confirm-modal.component.d.ts.map +1 -1
  346. package/ecosystem/license-confirm/license-confirm.module.d.ts +5 -5
  347. package/ecosystem/license-confirm/license-confirm.module.d.ts.map +1 -1
  348. package/ecosystem/license-confirm/license-view.component.d.ts +1 -1
  349. package/ecosystem/license-confirm/license-view.component.d.ts.map +1 -1
  350. package/ecosystem/microservices/add-microservice.component.d.ts +1 -1
  351. package/ecosystem/microservices/add-microservice.component.d.ts.map +1 -1
  352. package/ecosystem/microservices/microservice-list.component.d.ts +1 -1
  353. package/ecosystem/microservices/microservice-list.component.d.ts.map +1 -1
  354. package/ecosystem/packages/add-package.component.d.ts +1 -1
  355. package/ecosystem/packages/add-package.component.d.ts.map +1 -1
  356. package/ecosystem/packages/deploy-application/deploy-application.component.d.ts +1 -1
  357. package/ecosystem/packages/deploy-application/deploy-application.component.d.ts.map +1 -1
  358. package/ecosystem/packages/package-details/package-details.component.d.ts +1 -1
  359. package/ecosystem/packages/package-details/package-details.component.d.ts.map +1 -1
  360. package/ecosystem/packages/package-list/packages-list.component.d.ts +1 -1
  361. package/ecosystem/packages/package-list/packages-list.component.d.ts.map +1 -1
  362. package/ecosystem/packages/package-versions/package-contents/contents-apps/contents-apps.component.d.ts +1 -1
  363. package/ecosystem/packages/package-versions/package-contents/contents-apps/contents-apps.component.d.ts.map +1 -1
  364. package/ecosystem/packages/package-versions/package-contents/contents-plugins/contents-plugins.component.d.ts +1 -1
  365. package/ecosystem/packages/package-versions/package-contents/contents-plugins/contents-plugins.component.d.ts.map +1 -1
  366. package/ecosystem/packages/package-versions/package-contents/packages-contents.component.d.ts +1 -1
  367. package/ecosystem/packages/package-versions/package-contents/packages-contents.component.d.ts.map +1 -1
  368. package/ecosystem/packages/package-versions/package-versions-list/package-versions-list.component.d.ts +1 -1
  369. package/ecosystem/packages/package-versions/package-versions-list/package-versions-list.component.d.ts.map +1 -1
  370. package/ecosystem/packages/package-versions/packages-versions.component.d.ts +1 -1
  371. package/ecosystem/packages/package-versions/packages-versions.component.d.ts.map +1 -1
  372. package/ecosystem/shared/add-application.component.d.ts +1 -1
  373. package/ecosystem/shared/add-application.component.d.ts.map +1 -1
  374. package/ecosystem/shared/application-card.component.d.ts +1 -1
  375. package/ecosystem/shared/application-card.component.d.ts.map +1 -1
  376. package/ecosystem/shared/application-properties-form.component.d.ts +1 -1
  377. package/ecosystem/shared/application-properties-form.component.d.ts.map +1 -1
  378. package/ecosystem/shared/archived-filter/archived-filter.component.d.ts +1 -1
  379. package/ecosystem/shared/archived-filter/archived-filter.component.d.ts.map +1 -1
  380. package/ecosystem/shared/duplicate-application/duplicate-application-list/duplicate-application-list.component.d.ts +1 -1
  381. package/ecosystem/shared/duplicate-application/duplicate-application-list/duplicate-application-list.component.d.ts.map +1 -1
  382. package/ecosystem/shared/duplicate-application/duplicate-application-properties/duplicate-application-properties.component.d.ts +2 -2
  383. package/ecosystem/shared/duplicate-application/duplicate-application-properties/duplicate-application-properties.component.d.ts.map +1 -1
  384. package/ecosystem/shared/duplicate-application/duplicate-application.component.d.ts +1 -1
  385. package/ecosystem/shared/duplicate-application/duplicate-application.component.d.ts.map +1 -1
  386. package/ecosystem/shared/list-filters/list-filters.component.d.ts +1 -1
  387. package/ecosystem/shared/list-filters/list-filters.component.d.ts.map +1 -1
  388. package/ecosystem/shared/package-version-select/package-version-select.component.d.ts +1 -1
  389. package/ecosystem/shared/package-version-select/package-version-select.component.d.ts.map +1 -1
  390. package/ecosystem/shared/shared-ecosystem.module.d.ts +20 -20
  391. package/ecosystem/shared/shared-ecosystem.module.d.ts.map +1 -1
  392. package/ecosystem/shared/translate-package-label.pipe.d.ts +1 -1
  393. package/ecosystem/shared/translate-package-label.pipe.d.ts.map +1 -1
  394. package/ecosystem/shared/upload-archive.component.d.ts +1 -1
  395. package/ecosystem/shared/upload-archive.component.d.ts.map +1 -1
  396. package/fesm2022/c8y-ngx-components-actility-device-registration.mjs +36 -12
  397. package/fesm2022/c8y-ngx-components-actility-device-registration.mjs.map +1 -1
  398. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +195 -107
  399. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs.map +1 -1
  400. package/fesm2022/c8y-ngx-components-alarms.mjs +236 -96
  401. package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
  402. package/fesm2022/c8y-ngx-components-api.mjs +8 -0
  403. package/fesm2022/c8y-ngx-components-api.mjs.map +1 -1
  404. package/fesm2022/c8y-ngx-components-app-logs.mjs +6 -8
  405. package/fesm2022/c8y-ngx-components-app-logs.mjs.map +1 -1
  406. package/fesm2022/c8y-ngx-components-assets-navigator.mjs +74 -26
  407. package/fesm2022/c8y-ngx-components-assets-navigator.mjs.map +1 -1
  408. package/fesm2022/c8y-ngx-components-auth-configuration.mjs +578 -366
  409. package/fesm2022/c8y-ngx-components-auth-configuration.mjs.map +1 -1
  410. package/fesm2022/c8y-ngx-components-bookmarks.mjs +36 -17
  411. package/fesm2022/c8y-ngx-components-bookmarks.mjs.map +1 -1
  412. package/fesm2022/c8y-ngx-components-child-devices.mjs +7 -9
  413. package/fesm2022/c8y-ngx-components-child-devices.mjs.map +1 -1
  414. package/fesm2022/c8y-ngx-components-cockpit-config.mjs +138 -67
  415. package/fesm2022/c8y-ngx-components-cockpit-config.mjs.map +1 -1
  416. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-B7m2lsIe.mjs → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-C-JLbcn5.mjs} +3 -3
  417. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-B7m2lsIe.mjs.map → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-C-JLbcn5.mjs.map} +1 -1
  418. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-BCG_pjJz.mjs → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-RXvOcs04.mjs} +5 -5
  419. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-BCG_pjJz.mjs.map → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-RXvOcs04.mjs.map} +1 -1
  420. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-DjCdFkJw.mjs → c8y-ngx-components-context-dashboard-dashboard-version-history.component-DmPIJGXO.mjs} +3 -3
  421. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-DjCdFkJw.mjs.map → c8y-ngx-components-context-dashboard-dashboard-version-history.component-DmPIJGXO.mjs.map} +1 -1
  422. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +170 -94
  423. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  424. package/fesm2022/c8y-ngx-components-dashboard-manager.mjs +44 -31
  425. package/fesm2022/c8y-ngx-components-dashboard-manager.mjs.map +1 -1
  426. package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs +4 -2
  427. package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs.map +1 -1
  428. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +132 -66
  429. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
  430. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -1
  431. package/fesm2022/c8y-ngx-components-default-subscriptions.mjs +32 -16
  432. package/fesm2022/c8y-ngx-components-default-subscriptions.mjs.map +1 -1
  433. package/fesm2022/c8y-ngx-components-device-grid.mjs +50 -45
  434. package/fesm2022/c8y-ngx-components-device-grid.mjs.map +1 -1
  435. package/fesm2022/c8y-ngx-components-device-list.mjs +50 -25
  436. package/fesm2022/c8y-ngx-components-device-list.mjs.map +1 -1
  437. package/fesm2022/c8y-ngx-components-device-protocols.mjs +6 -9
  438. package/fesm2022/c8y-ngx-components-device-protocols.mjs.map +1 -1
  439. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +36 -8
  440. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs.map +1 -1
  441. package/fesm2022/c8y-ngx-components-echart-models.mjs.map +1 -1
  442. package/fesm2022/c8y-ngx-components-echart.mjs +220 -7
  443. package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
  444. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +155 -72
  445. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
  446. package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs +13 -7
  447. package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs.map +1 -1
  448. package/fesm2022/c8y-ngx-components-ecosystem-license-confirm.mjs +43 -12
  449. package/fesm2022/c8y-ngx-components-ecosystem-license-confirm.mjs.map +1 -1
  450. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +179 -80
  451. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
  452. package/fesm2022/c8y-ngx-components-ecosystem.mjs +353 -1316
  453. package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
  454. package/fesm2022/c8y-ngx-components-file-preview.mjs +17 -8
  455. package/fesm2022/c8y-ngx-components-file-preview.mjs.map +1 -1
  456. package/fesm2022/c8y-ngx-components-files-repository.mjs +55 -22
  457. package/fesm2022/c8y-ngx-components-files-repository.mjs.map +1 -1
  458. package/fesm2022/c8y-ngx-components-icon-selector.mjs +46 -28
  459. package/fesm2022/c8y-ngx-components-icon-selector.mjs.map +1 -1
  460. package/fesm2022/c8y-ngx-components-location.mjs +28 -15
  461. package/fesm2022/c8y-ngx-components-location.mjs.map +1 -1
  462. package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs +36 -12
  463. package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs.map +1 -1
  464. package/fesm2022/c8y-ngx-components-map.mjs +260 -28
  465. package/fesm2022/c8y-ngx-components-map.mjs.map +1 -1
  466. package/fesm2022/c8y-ngx-components-platform-configuration.mjs +24 -13
  467. package/fesm2022/c8y-ngx-components-platform-configuration.mjs.map +1 -1
  468. package/fesm2022/c8y-ngx-components-protocol-lpwan.mjs +133 -26
  469. package/fesm2022/c8y-ngx-components-protocol-lpwan.mjs.map +1 -1
  470. package/fesm2022/c8y-ngx-components-register-device.mjs +314 -249
  471. package/fesm2022/c8y-ngx-components-register-device.mjs.map +1 -1
  472. package/fesm2022/c8y-ngx-components-report-dashboard.mjs +41 -17
  473. package/fesm2022/c8y-ngx-components-report-dashboard.mjs.map +1 -1
  474. package/fesm2022/c8y-ngx-components-reports.mjs +61 -21
  475. package/fesm2022/c8y-ngx-components-reports.mjs.map +1 -1
  476. package/fesm2022/c8y-ngx-components-search.mjs +34 -21
  477. package/fesm2022/c8y-ngx-components-search.mjs.map +1 -1
  478. package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs +43 -19
  479. package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs.map +1 -1
  480. package/fesm2022/c8y-ngx-components-sub-assets.mjs +207 -72
  481. package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
  482. package/fesm2022/c8y-ngx-components-tenants.mjs +96 -39
  483. package/fesm2022/c8y-ngx-components-tenants.mjs.map +1 -1
  484. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +173 -53
  485. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs.map +1 -1
  486. package/fesm2022/c8y-ngx-components-upgrade.mjs +19 -10
  487. package/fesm2022/c8y-ngx-components-upgrade.mjs.map +1 -1
  488. package/fesm2022/c8y-ngx-components-user-roles.mjs +19 -14
  489. package/fesm2022/c8y-ngx-components-user-roles.mjs.map +1 -1
  490. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +76 -50
  491. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
  492. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +2 -2
  493. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
  494. package/fesm2022/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs +15 -8
  495. package/fesm2022/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs.map +1 -1
  496. package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs +2 -2
  497. package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs.map +1 -1
  498. package/fesm2022/c8y-ngx-components.mjs +166 -80
  499. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  500. package/file-preview/file-preview.component.d.ts +1 -1
  501. package/file-preview/file-preview.component.d.ts.map +1 -1
  502. package/file-preview/file-preview.module.d.ts +3 -3
  503. package/file-preview/file-preview.module.d.ts.map +1 -1
  504. package/files-repository/files-repository-upload.component.d.ts +1 -1
  505. package/files-repository/files-repository-upload.component.d.ts.map +1 -1
  506. package/files-repository/files-repository.component.d.ts +1 -1
  507. package/files-repository/files-repository.component.d.ts.map +1 -1
  508. package/files-repository/files-repository.module.d.ts +6 -6
  509. package/files-repository/files-repository.module.d.ts.map +1 -1
  510. package/icon-selector/icon-name.pipe.d.ts +1 -1
  511. package/icon-selector/icon-name.pipe.d.ts.map +1 -1
  512. package/icon-selector/icon-selector-modal/icon-selector-modal.component.d.ts +1 -1
  513. package/icon-selector/icon-selector-modal/icon-selector-modal.component.d.ts.map +1 -1
  514. package/icon-selector/icon-selector-wrapper/icon-selector-wrapper.component.d.ts +1 -1
  515. package/icon-selector/icon-selector-wrapper/icon-selector-wrapper.component.d.ts.map +1 -1
  516. package/icon-selector/icon-selector.component.d.ts +1 -1
  517. package/icon-selector/icon-selector.component.d.ts.map +1 -1
  518. package/icon-selector/icon-selector.module.d.ts +8 -8
  519. package/icon-selector/icon-selector.module.d.ts.map +1 -1
  520. package/locales/de.po +23 -2
  521. package/locales/es.po +23 -2
  522. package/locales/fr.po +23 -2
  523. package/locales/ja_JP.po +23 -2
  524. package/locales/ko.po +23 -2
  525. package/locales/locales.pot +22 -1
  526. package/locales/nl.po +23 -2
  527. package/locales/pl.po +23 -2
  528. package/locales/pt_BR.po +23 -2
  529. package/locales/zh_CN.po +23 -2
  530. package/locales/zh_TW.po +23 -2
  531. package/location/add-location.component.d.ts +1 -1
  532. package/location/add-location.component.d.ts.map +1 -1
  533. package/location/location.component.d.ts +1 -1
  534. package/location/location.component.d.ts.map +1 -1
  535. package/location/location.module.d.ts +6 -6
  536. package/location/location.module.d.ts.map +1 -1
  537. package/loriot-device-registration/loriot-device-registration-button.component.d.ts +1 -1
  538. package/loriot-device-registration/loriot-device-registration-button.component.d.ts.map +1 -1
  539. package/loriot-device-registration/loriot-device-registration.component.d.ts +1 -1
  540. package/loriot-device-registration/loriot-device-registration.component.d.ts.map +1 -1
  541. package/loriot-device-registration/loriot-device-registration.module.d.ts +4 -4
  542. package/loriot-device-registration/loriot-device-registration.module.d.ts.map +1 -1
  543. package/map/cluster-map.component.d.ts +61 -1
  544. package/map/cluster-map.component.d.ts.map +1 -1
  545. package/map/map-popup.directive.d.ts +1 -1
  546. package/map/map-popup.directive.d.ts.map +1 -1
  547. package/map/map-status.component.d.ts +86 -3
  548. package/map/map-status.component.d.ts.map +1 -1
  549. package/map/map.component.d.ts +100 -5
  550. package/map/map.component.d.ts.map +1 -1
  551. package/map/map.model.d.ts +98 -4
  552. package/map/map.model.d.ts.map +1 -1
  553. package/map/map.module.d.ts +9 -9
  554. package/map/map.module.d.ts.map +1 -1
  555. package/package.json +1 -1
  556. package/platform-configuration/platform-configuration-form.component.d.ts +1 -1
  557. package/platform-configuration/platform-configuration-form.component.d.ts.map +1 -1
  558. package/platform-configuration/platform-configuration.module.d.ts +4 -4
  559. package/platform-configuration/platform-configuration.module.d.ts.map +1 -1
  560. package/protocol-lpwan/lpwan-protocol.module.d.ts +4 -4
  561. package/protocol-lpwan/lpwan-protocol.module.d.ts.map +1 -1
  562. package/protocol-lpwan/lpwan-set-connections.component.d.ts +1 -1
  563. package/protocol-lpwan/lpwan-set-connections.component.d.ts.map +1 -1
  564. package/protocol-lpwan/lpwan-set-device-protocol.component.d.ts +1 -1
  565. package/protocol-lpwan/lpwan-set-device-protocol.component.d.ts.map +1 -1
  566. package/protocol-lpwan/multiple-lns-connectors/actility-multiple-lns-connector.component.d.ts +1 -1
  567. package/protocol-lpwan/multiple-lns-connectors/actility-multiple-lns-connector.component.d.ts.map +1 -1
  568. package/protocol-lpwan/multiple-lns-connectors/connection-info-with-download-csv.component.d.ts +1 -1
  569. package/protocol-lpwan/multiple-lns-connectors/connection-info-with-download-csv.component.d.ts.map +1 -1
  570. package/protocol-lpwan/multiple-lns-connectors/loriot/loriot-multiple-lns-connector.component.d.ts +1 -1
  571. package/protocol-lpwan/multiple-lns-connectors/loriot/loriot-multiple-lns-connector.component.d.ts.map +1 -1
  572. package/protocol-lpwan/multiple-lns-connectors/multiple-lns-connectors.module.d.ts +8 -8
  573. package/protocol-lpwan/multiple-lns-connectors/multiple-lns-connectors.module.d.ts.map +1 -1
  574. package/protocol-lpwan/multiple-lns-connectors/no-connections-found.component.d.ts +1 -1
  575. package/protocol-lpwan/multiple-lns-connectors/sigfox-multiple-lns-connector.component.d.ts +1 -1
  576. package/protocol-lpwan/multiple-lns-connectors/sigfox-multiple-lns-connector.component.d.ts.map +1 -1
  577. package/register-device/bulk/bulk-device-registration-button.component.d.ts +1 -1
  578. package/register-device/bulk/bulk-device-registration-button.component.d.ts.map +1 -1
  579. package/register-device/bulk/bulk-device-registration-modal.component.d.ts +1 -1
  580. package/register-device/bulk/bulk-device-registration-modal.component.d.ts.map +1 -1
  581. package/register-device/device-registration-view.component.d.ts +1 -1
  582. package/register-device/device-registration-view.component.d.ts.map +1 -1
  583. package/register-device/dropdown/register-device-dropdown.component.d.ts +1 -1
  584. package/register-device/dropdown/register-device-dropdown.component.d.ts.map +1 -1
  585. package/register-device/extensible/bulk/extensible-bulk-device-registration-button.component.d.ts +1 -1
  586. package/register-device/extensible/bulk/extensible-bulk-device-registration-button.component.d.ts.map +1 -1
  587. package/register-device/extensible/bulk/extensible-bulk-device-registration-modal.component.d.ts +1 -1
  588. package/register-device/extensible/bulk/extensible-bulk-device-registration-modal.component.d.ts.map +1 -1
  589. package/register-device/extensible/single/extensible-device-registration-button.component.d.ts +1 -1
  590. package/register-device/extensible/single/extensible-device-registration-button.component.d.ts.map +1 -1
  591. package/register-device/extensible/single/extensible-device-registration-modal.component.d.ts +1 -1
  592. package/register-device/extensible/single/extensible-device-registration-modal.component.d.ts.map +1 -1
  593. package/register-device/extensible/single/extensible-device-registration-stepper.component.d.ts +1 -1
  594. package/register-device/extensible/single/extensible-device-registration-stepper.component.d.ts.map +1 -1
  595. package/register-device/general/general-device-registration-button.component.d.ts +1 -1
  596. package/register-device/general/general-device-registration-button.component.d.ts.map +1 -1
  597. package/register-device/general/general-device-registration.component.d.ts +3 -6
  598. package/register-device/general/general-device-registration.component.d.ts.map +1 -1
  599. package/register-device/register-device.module.d.ts +16 -16
  600. package/register-device/register-device.module.d.ts.map +1 -1
  601. package/report-dashboard/report-dashboard-list.component.d.ts +1 -1
  602. package/report-dashboard/report-dashboard-list.component.d.ts.map +1 -1
  603. package/report-dashboard/report-dashboard.module.d.ts +7 -7
  604. package/reports/cron.component.d.ts +1 -1
  605. package/reports/cron.component.d.ts.map +1 -1
  606. package/reports/export-schedules.component.d.ts +2 -3
  607. package/reports/export-schedules.component.d.ts.map +1 -1
  608. package/reports/reports.module.d.ts +7 -7
  609. package/reports/reports.module.d.ts.map +1 -1
  610. package/reports/schedule-modal.component.d.ts +2 -3
  611. package/reports/schedule-modal.component.d.ts.map +1 -1
  612. package/search/search-action.component.d.ts +1 -1
  613. package/search/search-action.component.d.ts.map +1 -1
  614. package/search/search-custom-filters.component.d.ts +1 -1
  615. package/search/search-custom-filters.component.d.ts.map +1 -1
  616. package/search/search-grid.component.d.ts +1 -1
  617. package/search/search-grid.component.d.ts.map +1 -1
  618. package/search/search-results.component.d.ts +1 -1
  619. package/search/search-results.component.d.ts.map +1 -1
  620. package/search/search.module.d.ts +8 -8
  621. package/search/search.module.d.ts.map +1 -1
  622. package/sigfox-device-registration/sigfox-device-registration-button.component.d.ts +1 -1
  623. package/sigfox-device-registration/sigfox-device-registration-button.component.d.ts.map +1 -1
  624. package/sigfox-device-registration/sigfox-device-registration.component.d.ts +1 -1
  625. package/sigfox-device-registration/sigfox-device-registration.component.d.ts.map +1 -1
  626. package/sigfox-device-registration/sigfox-device-registration.module.d.ts +4 -4
  627. package/sigfox-device-registration/sigfox-device-registration.module.d.ts.map +1 -1
  628. package/sub-assets/add-group/add-group.component.d.ts +1 -1
  629. package/sub-assets/add-group/add-group.component.d.ts.map +1 -1
  630. package/sub-assets/add-group/add-group.module.d.ts +7 -7
  631. package/sub-assets/asset-properties-item.component.d.ts +1 -1
  632. package/sub-assets/asset-properties-item.component.d.ts.map +1 -1
  633. package/sub-assets/asset-properties.component.d.ts +1 -1
  634. package/sub-assets/asset-properties.component.d.ts.map +1 -1
  635. package/sub-assets/assign-devices/assign-child-devices.component.d.ts +2 -3
  636. package/sub-assets/assign-devices/assign-child-devices.component.d.ts.map +1 -1
  637. package/sub-assets/assign-devices/assign-devices.component.d.ts +1 -1
  638. package/sub-assets/assign-devices/assign-devices.component.d.ts.map +1 -1
  639. package/sub-assets/delete-assets-modal/delete-assets-modal.component.d.ts +1 -1
  640. package/sub-assets/delete-assets-modal/delete-assets-modal.component.d.ts.map +1 -1
  641. package/sub-assets/group-info.component.d.ts +1 -1
  642. package/sub-assets/group-info.component.d.ts.map +1 -1
  643. package/sub-assets/groups.component.d.ts +1 -1
  644. package/sub-assets/groups.component.d.ts.map +1 -1
  645. package/sub-assets/location/asset-location.component.d.ts +1 -1
  646. package/sub-assets/location/asset-location.component.d.ts.map +1 -1
  647. package/sub-assets/sub-assets-grid.component.d.ts +1 -1
  648. package/sub-assets/sub-assets-grid.component.d.ts.map +1 -1
  649. package/sub-assets/sub-assets-grids.module.d.ts +9 -9
  650. package/sub-assets/sub-assets-grids.module.d.ts.map +1 -1
  651. package/sub-assets/sub-assets.component.d.ts +1 -1
  652. package/sub-assets/sub-assets.component.d.ts.map +1 -1
  653. package/sub-assets/sub-assets.module.d.ts +18 -18
  654. package/sub-assets/sub-assets.module.d.ts.map +1 -1
  655. package/sub-assets/unassign-assets-modal/unassign-modal.component.d.ts +1 -1
  656. package/sub-assets/unassign-assets-modal/unassign-modal.component.d.ts.map +1 -1
  657. package/tenants/tenant-form/tenant-form.component.d.ts +1 -1
  658. package/tenants/tenant-form/tenant-form.component.d.ts.map +1 -1
  659. package/tenants/tenant-list/creation-time.filtering-form-renderer.component.d.ts +2 -3
  660. package/tenants/tenant-list/creation-time.filtering-form-renderer.component.d.ts.map +1 -1
  661. package/tenants/tenant-list/status.filtering-form-renderer.component.d.ts +1 -1
  662. package/tenants/tenant-list/status.filtering-form-renderer.component.d.ts.map +1 -1
  663. package/tenants/tenant-list/tenant-list.component.d.ts +1 -1
  664. package/tenants/tenant-list/tenant-list.component.d.ts.map +1 -1
  665. package/tenants/tenants.module.d.ts +9 -9
  666. package/tenants/tenants.module.d.ts.map +1 -1
  667. package/trusted-certificates/crl/crl-check-settings.component.d.ts +1 -1
  668. package/trusted-certificates/crl/crl-check-settings.component.d.ts.map +1 -1
  669. package/trusted-certificates/crl/crl-settings.component.d.ts +1 -1
  670. package/trusted-certificates/crl/crl-settings.component.d.ts.map +1 -1
  671. package/trusted-certificates/crl/crl-settings.module.d.ts +8 -8
  672. package/trusted-certificates/crl/crl-settings.module.d.ts.map +1 -1
  673. package/trusted-certificates/list/add-trusted-certificate.component.d.ts +4 -3
  674. package/trusted-certificates/list/add-trusted-certificate.component.d.ts.map +1 -1
  675. package/trusted-certificates/list/trusted-certificate-list.component.d.ts +11 -2
  676. package/trusted-certificates/list/trusted-certificate-list.component.d.ts.map +1 -1
  677. package/trusted-certificates/list/trusted-certificate-list.module.d.ts +10 -10
  678. package/trusted-certificates/list/trusted-certificate-list.module.d.ts.map +1 -1
  679. package/trusted-certificates/list/trusted-certificate.model.d.ts +2 -0
  680. package/trusted-certificates/list/trusted-certificate.model.d.ts.map +1 -1
  681. package/trusted-certificates/pattern-messages.data.d.ts +6 -0
  682. package/trusted-certificates/pattern-messages.data.d.ts.map +1 -1
  683. package/upgrade/dashboard/dashboard-upgrade.module.d.ts +6 -6
  684. package/upgrade/dashboard/dashboard-upgrade.module.d.ts.map +1 -1
  685. package/upgrade/dashboard/device-selector.component.d.ts +1 -1
  686. package/upgrade/dashboard/device-selector.component.d.ts.map +1 -1
  687. package/upgrade/dashboard/widget.component.d.ts +1 -1
  688. package/upgrade/dashboard/widget.component.d.ts.map +1 -1
  689. package/user-roles/inventory-role-selector/inventory-role-selector.component.d.ts +1 -1
  690. package/user-roles/inventory-role-selector/inventory-role-selector.component.d.ts.map +1 -1
  691. package/user-roles/roles-asset-tree/roles-asset-tree.component.d.ts +1 -1
  692. package/user-roles/roles-asset-tree/roles-asset-tree.component.d.ts.map +1 -1
  693. package/user-roles/user-roles.module.d.ts +4 -4
  694. package/user-roles/user-roles.module.d.ts.map +1 -1
  695. package/widgets/implementations/alarms/alarm-list-widget-config/alarm-list-widget-config.component.d.ts +1 -1
  696. package/widgets/implementations/alarms/alarm-list-widget-config/alarm-list-widget-config.component.d.ts.map +1 -1
  697. package/widgets/implementations/alarms/alarm-list-widget-view/alarm-list-widget.component.d.ts +1 -1
  698. package/widgets/implementations/alarms/alarm-list-widget-view/alarm-list-widget.component.d.ts.map +1 -1
  699. package/widgets/implementations/alarms/alarm-widget-alarms-reload.component.d.ts +1 -1
  700. package/widgets/implementations/alarms/alarm-widget-alarms-reload.component.d.ts.map +1 -1
  701. package/widgets/implementations/alarms/alarms-widget.module.d.ts +13 -13
  702. package/widgets/implementations/alarms/alarms-widget.module.d.ts.map +1 -1
  703. package/widgets/implementations/alarms/severity-icon.pipe.d.ts +1 -1
  704. package/widgets/implementations/alarms/severity-icon.pipe.d.ts.map +1 -1
  705. package/widgets/implementations/alarms/sorting-description-popover-message.pipe.d.ts +1 -1
  706. package/widgets/implementations/alarms/sorting-description-popover-message.pipe.d.ts.map +1 -1
  707. package/widgets/implementations/device-management-welcome/device-management-welcome-widget.module.d.ts +4 -4
  708. package/widgets/implementations/device-management-welcome/device-management-welcome-widget.module.d.ts.map +1 -1
  709. package/widgets/implementations/device-management-welcome/welcome.component.d.ts +1 -1
  710. package/widgets/implementations/device-management-welcome/welcome.component.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-cockpit-config.mjs","sources":["../../cockpit-config/cockpit-config.model.ts","../../cockpit-config/cockpit-config.guard.ts","../../cockpit-config/cockpit-config.service.ts","../../cockpit-config/feature-config.component.ts","../../cockpit-config/feature-config.component.html","../../cockpit-config/root-node-config.component.ts","../../cockpit-config/root-node-config.component.html","../../cockpit-config/home-dashboard-config.component.ts","../../cockpit-config/home-dashboard-config.component.html","../../cockpit-config/misc-config.component.ts","../../cockpit-config/misc-config.component.html","../../cockpit-config/cockpit-configuration.component.ts","../../cockpit-config/cockpit-configuration.component.html","../../cockpit-config/setup/cockpit-setup-step.ts","../../cockpit-config/setup/cockpit-setup-stepper-buttons.component.ts","../../cockpit-config/setup/cockpit-setup-stepper-buttons.component.html","../../cockpit-config/setup/cockpit-setup-step1.component.ts","../../cockpit-config/setup/cockpit-setup-step1.component.html","../../cockpit-config/setup/cockpit-setup-step2.component.ts","../../cockpit-config/setup/cockpit-setup-step2.component.html","../../cockpit-config/setup/cockpit-setup-step3.component.ts","../../cockpit-config/setup/cockpit-setup-step3.component.html","../../cockpit-config/setup/cockpit-setup-step4.component.ts","../../cockpit-config/setup/cockpit-setup-step4.component.html","../../cockpit-config/cockpit-config.module.ts","../../cockpit-config/c8y-ngx-components-cockpit-config.ts"],"sourcesContent":["export const DEFAULT_HOME_DASHBOARD_NAME = 'home-cockpit1';\nexport const USER_HOME_DASHBOARD_NAME = 'home-cockpit-user';\n\nexport interface CockpitConfig {\n rootNodes: CockpitConfigRootNode[];\n features: {\n alarms: boolean;\n dataExplorer: boolean;\n groups: boolean;\n reports: boolean;\n exports: boolean;\n dataPointLibrary: boolean;\n globalSmartRules: boolean;\n smartRules: boolean;\n subassets: boolean;\n search: boolean;\n dashboardManager: boolean;\n [key: string]: boolean;\n };\n hideNavigator: boolean;\n homeDashboardName: string;\n userSpecificHomeDashboard: boolean;\n icon: {\n class: string;\n };\n appTitle?: string;\n htmlWidgetDisableSanitization?: boolean;\n htmlWidgetDefaultToAdvancedMode?: boolean;\n}\n\nexport const DEFAULT_CONFIG: CockpitConfig = {\n rootNodes: [],\n features: {\n alarms: true,\n dataExplorer: true,\n groups: true,\n reports: true,\n exports: true,\n dataPointLibrary: true,\n globalSmartRules: true,\n smartRules: true,\n subassets: true,\n search: true,\n dashboardManager: true\n },\n hideNavigator: false,\n homeDashboardName: DEFAULT_HOME_DASHBOARD_NAME,\n userSpecificHomeDashboard: false,\n icon: {\n class: 'c8y-cockpit'\n },\n htmlWidgetDisableSanitization: false,\n htmlWidgetDefaultToAdvancedMode: false\n};\n\nexport interface CockpitConfigRootNode {\n id: string;\n name: string;\n hideDevices?: boolean;\n}\n\nexport enum HomeDashboardType {\n /**\n * Shared by all Cockpit apps\n */\n DEFAULT,\n /**\n * Only for the current Cockpit.\n */\n APP,\n /**\n * Only for the current user.\n */\n USER\n}\n\nexport const COCKPIT_CONFIG_PATH = 'cockpit-application-configuration';\n","import { Injectable } from '@angular/core';\n\nimport {\n AppStateService,\n gettext,\n NavigatorNode,\n NavigatorNodeFactory,\n Permissions\n} from '@c8y/ngx-components';\nimport { EcosystemService } from '@c8y/ngx-components/ecosystem/shared';\nimport { COCKPIT_CONFIG_PATH } from './cockpit-config.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CockpitConfigGuard implements NavigatorNodeFactory {\n protected readonly configNode: NavigatorNode = new NavigatorNode({\n path: `/${COCKPIT_CONFIG_PATH}`,\n parent: gettext('Configuration'),\n label: gettext('Application configuration'),\n icon: 'imac-settings',\n preventDuplicates: true\n });\n\n constructor(\n private permissions: Permissions,\n private appState: AppStateService,\n private ecosystemService: EcosystemService\n ) {}\n\n get(): NavigatorNode {\n if (this.canActivate()) {\n return this.configNode;\n }\n return;\n }\n\n canActivate(): boolean {\n return (\n this.permissions.hasRole(Permissions.ROLE_APPLICATION_MANAGEMENT_ADMIN) &&\n this.ecosystemService.isOwner(this.appState.currentApplication.value)\n );\n }\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { ApplicationService, InventoryService } from '@c8y/client';\nimport {\n AppStateService,\n ExtensionFactory,\n NavigatorNode,\n NavigatorService,\n OptionsService,\n Permissions,\n SearchService,\n Tab,\n TabsService\n} from '@c8y/ngx-components';\nimport {\n AssetNavigatorConfig,\n AssetNodeService,\n ASSET_NAVIGATOR_CONFIG\n} from '@c8y/ngx-components/assets-navigator';\nimport { isUndefined, startCase } from 'lodash-es';\nimport { map, take } from 'rxjs/operators';\nimport { CockpitConfig, DEFAULT_CONFIG, DEFAULT_HOME_DASHBOARD_NAME } from './cockpit-config.model';\nimport { uniqBy } from 'lodash-es';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CockpitConfigService {\n currentConfig: CockpitConfig = DEFAULT_CONFIG;\n nodes: NavigatorNode[] = [];\n private navigationFactory: ExtensionFactory<NavigatorNode> = {\n get: () => this.nodes\n };\n\n private readonly DEFAULT_NODE_PRIORITY = 2000;\n\n get excludedFeatureKeys() {\n return Object.keys(this.currentConfig.features).filter(\n key => !this.currentConfig.features[key]\n );\n }\n\n constructor(\n private navigatorService: NavigatorService,\n private tabsService: TabsService,\n private searchService: SearchService,\n private assetNodeService: AssetNodeService,\n private inventoryService: InventoryService,\n private appState: AppStateService,\n private applicationService: ApplicationService,\n private optionsService: OptionsService,\n private permissions: Permissions,\n @Optional() @Inject(ASSET_NAVIGATOR_CONFIG) public moduleConfig: AssetNavigatorConfig\n ) {\n this.registerFilterForFeatures();\n this.init();\n }\n\n init() {\n if (this.optionsService.hideNavigator !== undefined) {\n this.currentConfig.hideNavigator = this.optionsService.hideNavigator;\n }\n this.appState.currentApplicationConfig.subscribe(config => {\n if (config) {\n this.currentConfig = { ...DEFAULT_CONFIG, ...config } as CockpitConfig;\n }\n });\n\n this.appState.currentApplicationConfig.pipe(take(1)).subscribe(() => {\n this.setRootNodes();\n });\n }\n\n /**\n * Save and apply new cockpit configuration\n * @param config - New cockpit configuration\n */\n async saveConfig(config: CockpitConfig) {\n this.currentConfig = config;\n await this.storeApplicationConfig(this.currentConfig);\n await this.updateApplication(this.currentConfig);\n }\n\n /**\n * Update current application using the provided configuration\n * @param config - Cockpit configuration\n */\n async updateApplication(config: CockpitConfig) {\n if (!config.appTitle && !config.icon) {\n return;\n }\n const application = this.appState.currentApplication.value;\n\n const updatedApp = {\n ...application,\n name: config.appTitle || application.name\n };\n\n const manifest = {\n ...updatedApp.manifest,\n name: updatedApp.name,\n icon: config.icon || { class: 'c8y-cockpit' }\n };\n\n await this.applicationService.update({\n id: updatedApp.id,\n name: updatedApp.name,\n manifest\n });\n\n this.appState.currentApplication.next(updatedApp);\n }\n\n refresh() {\n this.optionsService.hideNavigator = this.currentConfig.hideNavigator;\n this.navigatorService.refresh();\n this.searchService.refresh();\n }\n\n async setRootNodes() {\n this.addNodesToFactories();\n this.nodes.length = 0;\n for (const node of this.currentConfig.rootNodes) {\n try {\n const { data } = await this.inventoryService.detail(node.id);\n if (data) {\n this.nodes.push(\n this.assetNodeService.createAssetNode({\n mo: data,\n hideDevices: node.hideDevices,\n priority: isUndefined(this.moduleConfig?.rootNodePriority)\n ? this.DEFAULT_NODE_PRIORITY\n : this.moduleConfig.rootNodePriority\n })\n );\n }\n } catch (error) {\n // do nothing\n }\n }\n this.nodes = uniqBy(this.nodes, 'path');\n this.refresh();\n }\n\n getAppDashboardName() {\n return `${DEFAULT_HOME_DASHBOARD_NAME.substring(0, DEFAULT_HOME_DASHBOARD_NAME.length - 1)}_${\n this.appState.state.app.id\n }`;\n }\n\n private async storeApplicationConfig(config: CockpitConfig) {\n await this.appState.updateCurrentApplicationConfig<CockpitConfig>(config);\n }\n\n private addNodesToFactories() {\n const nodeInFactories = this.navigatorService.factories.find(\n fatcory => fatcory === this.navigationFactory\n );\n if (!nodeInFactories) {\n this.navigatorService.factories.push(this.navigationFactory);\n }\n }\n\n private registerFilterForFeatures() {\n this.navigatorService.items$ = this.navigatorService.items$.pipe(\n map(nodes => this.setHiddenAttrLock(nodes)),\n map(nodes => this.filterNavigatorNode(nodes))\n );\n this.tabsService.items$ = this.tabsService.items$.pipe(map(tabs => this.filterTabs(tabs)));\n this.searchService.items$ = this.searchService.items$.pipe(\n map(search => (this.currentConfig.features.search ? search : []))\n );\n }\n\n private setHiddenAttrLock(nodes) {\n nodes.forEach(node => {\n Object.keys(this.currentConfig.features).forEach(key => {\n const childNode = node.find(startCase(key).toLowerCase());\n\n if (childNode) {\n if (\n !this.permissions.hasRole(Permissions.ROLE_APPLICATION_MANAGEMENT_ADMIN) &&\n childNode.lockHiddenAttr === undefined &&\n childNode.hidden === true\n ) {\n childNode.lockHiddenAttr = childNode.hidden;\n }\n }\n });\n });\n return nodes;\n }\n\n private filterTabs(tabs: Tab[]) {\n return tabs.filter(tab => !this.excludedFeatureKeys.some(key => tab.featureId === key));\n }\n\n private filterNavigatorNode(nodes: NavigatorNode[]) {\n if (!this.currentConfig) {\n return nodes;\n }\n const disabledFeatures = this.excludedFeatureKeys;\n const filteredNodes = nodes.filter(\n node => !disabledFeatures.some(key => node.featureId === key)\n );\n\n this.showAllChildrenNodes(nodes);\n this.hideChildrenNodesThatAreDisabled(nodes, disabledFeatures);\n return filteredNodes;\n }\n\n private hideChildrenNodesThatAreDisabled(nodes: NavigatorNode[], disabledFeatures: string[]) {\n nodes.forEach(node =>\n disabledFeatures.forEach(key => {\n const childNode = node.find(key, 'featureId');\n if (childNode) {\n childNode.hidden = true;\n }\n })\n );\n }\n\n private showAllChildrenNodes(nodes: NavigatorNode[]) {\n nodes.forEach(node => {\n Object.keys(this.currentConfig.features).forEach(key => {\n const childNode = node.find(startCase(key).toLowerCase());\n\n if (childNode) {\n if (childNode.lockHiddenAttr === true) {\n return;\n }\n\n childNode.hidden = false;\n }\n });\n });\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CockpitConfig } from './cockpit-config.model';\n\n@Component({\n selector: 'c8y-feature-config',\n templateUrl: './feature-config.component.html',\n standalone: false\n})\nexport class FeatureConfigComponent {\n @Input()\n config: CockpitConfig;\n\n @Output()\n onUpdate = new EventEmitter<void>();\n\n updateFeatures() {\n this.onUpdate.emit();\n }\n}\n","<c8y-list-group>\n <c8y-li data-cy=\"feature-config--feature-list\" *ngIf=\"'SearchModule' | c8yPluginLoaded | async\">\n <c8y-li-icon icon=\"search\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Global search' | translate }}</p>\n <p>\n <small translate>Display the global search in the main header.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global search' | translate }}\"\n >\n <input\n name=\"search\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.search\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-group\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Groups' | translate }}</p>\n <p>\n <small translate>Display top level groups under the Groups navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Groups' | translate }}\"\n >\n <input\n name=\"groups\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.groups\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\" *ngIf=\"'CockpitAlarmsModule' | c8yPluginLoaded | async\">\n <c8y-li-icon icon=\"bell\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Alarms' | translate }}</p>\n <p>\n <small translate>Display a link to the global alarms list in the navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global Alarms view' | translate }}\"\n >\n <input\n name=\"alarms\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.alarms\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-data-explorer\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Data explorer' | translate }}</p>\n <p>\n <small translate>\n Display the data explorer in the navigator menu and on the group tabs.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Data explorer' | translate }}\"\n >\n <input\n name=\"dataExplorer\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dataExplorer\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\" *ngIf=\"'ReportDashboardModule' | c8yPluginLoaded | async\">\n <c8y-li-icon icon=\"c8y-reports\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Reports' | translate }}</p>\n <p>\n <small translate>Display a link to the Reports list in the navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Reports' | translate }}\"\n >\n <input\n name=\"reports\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.reports\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\" *ngIf=\"'exportsProviders' | c8yPluginLoaded | async\">\n <c8y-li-icon icon=\"graph-report\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Exports' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Exports list under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Exports' | translate }}\"\n >\n <input\n name=\"exports\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.exports\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\" *ngIf=\"'DatapointLibraryModule' | c8yPluginLoaded | async\">\n <c8y-li-icon icon=\"c8y-data-points\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Data point library' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Data point library under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Data point library' | translate }}\"\n >\n <input\n name=\"dataPointLibrary\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dataPointLibrary\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-smart-rules\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Global smart rules' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Global smart rules under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global smart rules' | translate }}\"\n >\n <input\n name=\"globalSmartRules\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.globalSmartRules\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-group-open\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Subassets view' | translate }}</p>\n <p><small translate>Display the \"Subassets\" tab on groups.</small></p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Subassets view' | translate }}\"\n >\n <input\n name=\"subassets\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.subassets\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-smart-rules\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Smart rules for devices and groups' | translate }}</p>\n <p>\n <small translate>Display the smart rules tab on groups and devices.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Smart rules for devices and groups' | translate }}\"\n >\n <input\n name=\"smartRules\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.smartRules\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\" *ngIf=\"'DashboardManagerModule' | c8yPluginLoaded | async\">\n <c8y-li-icon icon=\"management1\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Dashboard manager' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Dashboard manager under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Dashboard manager' | translate }}\"\n >\n <input\n name=\"dashboardManager\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dashboardManager\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n</c8y-list-group>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CockpitConfig, CockpitConfigRootNode } from './cockpit-config.model';\n\n@Component({\n selector: 'c8y-root-node-config',\n templateUrl: './root-node-config.component.html',\n standalone: false\n})\nexport class RootNodeConfigComponent {\n @Input()\n config: CockpitConfig;\n\n @Input() disabled = false;\n\n @Output()\n onUpdate = new EventEmitter<void>();\n\n /**\n * Removes one of the root nodes.\n * @param node The node to remove.\n */\n removeNavigatorNode(node: CockpitConfigRootNode) {\n const index = this.config.rootNodes.indexOf(node);\n if (index > -1) {\n const newNodes = this.config.rootNodes.filter((_, i) => i !== index);\n this.config.rootNodes = newNodes;\n this.onUpdate.emit();\n }\n }\n}\n","<div class=\"col-sm-6\">\n <label title=\"{{ 'Current top level nodes' | translate }}\" translate>\n Current top level nodes\n </label>\n <c8y-list-group class=\"separator-top\">\n <c8y-li *ngIf=\"config.rootNodes.length === 0\">\n <c8y-ui-empty-state\n [icon]=\"'folder-open'\"\n [title]=\"'No top level nodes set.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </c8y-li>\n <c8y-li *ngFor=\"let node of config.rootNodes; let index = index\">\n <c8y-li-icon icon=\"c8y-group\"></c8y-li-icon>\n <div class=\"content-flex-30\">\n <div class=\"col-6\">\n <div class=\"text-truncate\" title=\"{{ node.name }}\">\n {{ node.name }}\n </div>\n </div>\n <div class=\"col-4\">\n <label class=\"c8y-switch c8y-switch--inline d-flex\" title=\"{{ 'Hide devices' | translate }}\">\n <input\n type=\"checkbox\"\n [(ngModel)]=\"node.hideDevices\"\n name=\"node.{{ index }}.hideDevices\"\n (change)=\"onUpdate.emit()\"\n [disabled]=\"disabled\"\n />\n <span></span>\n <small class=\"text-truncate a-s-center l-h-1\">{{ 'Hide devices' | translate }}</small>\n </label>\n </div>\n <div class=\"col-2 text-right\">\n <div class=\"d-flex fit-w\">\n <button\n class=\"btn-dot btn-dot--danger m-l-auto\"\n type=\"button\"\n [attr.aria-label]=\"'Remove' | translate\"\n tooltip=\"{{ 'Remove' | translate }}\"\n [disabled]=\"disabled\"\n [delay]=\"500\"\n (click)=\"removeNavigatorNode(node)\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </div>\n </div>\n </div>\n </c8y-li>\n </c8y-list-group>\n</div>\n\n<div class=\"col-sm-6 col-md-5\" style=\"height: calc(100vh - 430px)\">\n <label title=\"{{ 'Select top level nodes' | translate }}\" translate>Select top level nodes</label>\n <c8y-asset-selector\n [config]=\"{ groupsOnly: true, multi: true, groupsSelectable: true }\"\n [(ngModel)]=\"config.rootNodes\"\n [disabled]=\"disabled\"\n (onSelected)=\"onUpdate.emit()\"\n name=\"rootNodes\"\n class=\"border-top d-block\"\n ></c8y-asset-selector>\n</div>\n","import { Component, Input } from '@angular/core';\nimport {\n CockpitConfig,\n DEFAULT_HOME_DASHBOARD_NAME,\n HomeDashboardType,\n USER_HOME_DASHBOARD_NAME\n} from './cockpit-config.model';\nimport { CockpitConfigService } from './cockpit-config.service';\n\n@Component({\n selector: 'c8y-home-dashboard-config',\n templateUrl: './home-dashboard-config.component.html',\n standalone: false\n})\nexport class HomeDashboardConfigComponent {\n @Input()\n config: CockpitConfig;\n\n /**\n * The types of dashboard that can be configured.\n */\n readonly homeDashboardTypes = HomeDashboardType;\n\n /**\n * @ignore\n */\n constructor(private cockpitConfigService: CockpitConfigService) {}\n\n /**\n * @ignore\n */\n dashboardChange(selected: boolean, type: HomeDashboardType) {\n if (!selected) {\n return;\n }\n\n switch (type) {\n case this.homeDashboardTypes.DEFAULT: {\n this.config.homeDashboardName = DEFAULT_HOME_DASHBOARD_NAME;\n this.config.userSpecificHomeDashboard = false;\n break;\n }\n case this.homeDashboardTypes.APP: {\n this.config.homeDashboardName = this.cockpitConfigService.getAppDashboardName();\n this.config.userSpecificHomeDashboard = false;\n break;\n }\n case this.homeDashboardTypes.USER: {\n this.config.homeDashboardName = USER_HOME_DASHBOARD_NAME;\n this.config.userSpecificHomeDashboard = true;\n break;\n }\n }\n }\n\n /**\n * @ignore\n */\n verifySelected(type: HomeDashboardType) {\n if (type === this.homeDashboardTypes.USER) {\n return this.config.userSpecificHomeDashboard;\n }\n if (type === this.homeDashboardTypes.DEFAULT) {\n return this.config.homeDashboardName === DEFAULT_HOME_DASHBOARD_NAME;\n }\n return this.config.homeDashboardName === this.cockpitConfigService.getAppDashboardName();\n }\n}\n","<c8y-list-group>\n <c8y-li data-cy=\"home-dashboard-config--dashboard-list\">\n <c8y-li-radio\n (onSelect)=\"dashboardChange($event, homeDashboardTypes.DEFAULT)\"\n [selected]=\"verifySelected(homeDashboardTypes.DEFAULT)\"\n ></c8y-li-radio>\n <p translate>Default home dashboard</p>\n <small translate>Changes done in the home dashboard are reflected across the platform.</small>\n </c8y-li>\n <c8y-li data-cy=\"home-dashboard-config--dashboard-list\">\n <c8y-li-radio\n (onSelect)=\"dashboardChange($event, homeDashboardTypes.APP)\"\n [selected]=\"verifySelected(homeDashboardTypes.APP)\"\n ></c8y-li-radio>\n <p translate>Custom home dashboard</p>\n <small translate>\n Changes done to the home dashboard are reflected only in the current application.\n </small>\n </c8y-li>\n <c8y-li data-cy=\"home-dashboard-config--dashboard-list\">\n <c8y-li-radio\n (onSelect)=\"dashboardChange($event, homeDashboardTypes.USER)\"\n [selected]=\"verifySelected(homeDashboardTypes.USER)\"\n ></c8y-li-radio>\n <p translate>User home dashboard</p>\n <small translate>\n Changes done to the home dashboard are reflected only for the current user. NOTE: This user\n needs to have inventory write permission.\n </small>\n </c8y-li>\n</c8y-list-group>\n","import { Component, Input } from '@angular/core';\nimport { CockpitConfig } from './cockpit-config.model';\n\n@Component({\n selector: 'c8y-misc-config',\n templateUrl: './misc-config.component.html',\n standalone: false\n})\nexport class MiscConfigComponent {\n @Input()\n config: CockpitConfig;\n}\n","<c8y-list-group class=\"separator-top\">\n <c8y-li>\n <div class=\"d-flex a-i-center\">\n <p>{{ 'Always collapse navigator on start up' | translate }}</p>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Collapse navigator on start up' | translate }}\"\n >\n <input data-cy=\"c8y-misc-config--collapse-button\" type=\"checkbox\" [(ngModel)]=\"config.hideNavigator\" name=\"hideNavigator\" />\n <span></span>\n </label>\n </div>\n </c8y-li>\n</c8y-list-group>\n","import { Component, OnInit } from '@angular/core';\nimport { AlertService, AppStateService, gettext } from '@c8y/ngx-components';\nimport { CockpitConfig, DEFAULT_CONFIG } from './cockpit-config.model';\nimport { CockpitConfigService } from './cockpit-config.service';\n\n@Component({\n selector: 'c8y-cockpit-configuration',\n templateUrl: './cockpit-configuration.component.html',\n standalone: false\n})\nexport class CockpitConfigurationComponent implements OnInit {\n /**\n * The currently used configuration.\n */\n config: CockpitConfig = DEFAULT_CONFIG;\n\n rootNodeDisabled = false;\n\n constructor(\n private cockpitConfigService: CockpitConfigService,\n private alertService: AlertService,\n private appState: AppStateService\n ) {}\n\n /**\n * @ignore\n */\n ngOnInit() {\n this.config = this.cockpitConfigService.currentConfig;\n }\n\n /**\n * Stores the configuration and shows a success message.\n */\n async save() {\n try {\n await this.cockpitConfigService.saveConfig(this.config);\n this.alertService.success(gettext('Cockpit configuration saved.'));\n } catch (ex) {\n this.alertService.addServerFailure(ex);\n }\n }\n\n /**\n * @ignore\n */\n iconSelectionChange(icon: string): void {\n this.config.icon = { class: icon };\n this.appState.currentApplication.next({\n ...this.appState.currentApplication.value,\n ...{ config: this.config }\n });\n }\n\n /**\n * Updates the features to directly reflect the results of the change.\n */\n updateFeatures() {\n this.cockpitConfigService.currentConfig = this.config;\n this.cockpitConfigService.refresh();\n }\n\n /**\n * Updates the root nodes to directly reflect the results of the change.\n */\n async updateRootNodes() {\n this.rootNodeDisabled = true;\n this.cockpitConfigService.currentConfig = this.config;\n await this.cockpitConfigService.setRootNodes();\n this.rootNodeDisabled = false;\n }\n}\n","<c8y-title>{{ 'Application configuration' | translate }}</c8y-title>\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-tools'\"\n [label]=\"'Configuration' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-tools'\"\n [label]=\"'Application configuration' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n<div class=\"row\">\n <div class=\"col-lg-12 col-lg-max\">\n <form #configForm=\"ngForm\">\n <div class=\"card card--fullpage\">\n <div class=\"card-header separator\">\n <div class=\"card-title\">\n {{ config.appTitle || ('Cockpit' | translate) }} {{ 'configuration' | translate }}\n </div>\n </div>\n\n <div class=\"inner-scroll\">\n <div class=\"card-block p-t-0 p-b-0\">\n <fieldset class=\"row separator-bottom p-t-24 p-b-24\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 text-left-xs text-right-sm\">\n <div\n class=\"h4 text-medium d-inline-block m-r-4\"\n translate\n >\n Title, icon, and navigator collapse\n </div>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-8 p-l-16\">\n <div class=\"d-flex a-i-start gap-16\">\n <div class=\"form-group d-inline-block\">\n <label>{{ 'Icon' | translate }}</label>\n <c8y-icon-selector-wrapper\n [selectedIcon]=\"config?.icon?.class || 'c8y-cockpit'\"\n [iconSize]=\"24\"\n (onSelect)=\"iconSelectionChange($event)\"\n ></c8y-icon-selector-wrapper>\n </div>\n <div class=\"form-group flex-grow\">\n <label\n for=\"confAppTitle\"\n translate\n >\n Change application title\n </label>\n <input\n class=\"form-control\"\n id=\"confAppTitle\"\n placeholder=\"{{ 'e.g. Cockpit' | translate }} \"\n type=\"text\"\n maxlength=\"254\"\n [(ngModel)]=\"config.appTitle\"\n [ngModelOptions]=\"{ standalone: true }\"\n />\n </div>\n </div>\n\n <c8y-misc-config [config]=\"config\"></c8y-misc-config>\n </div>\n </fieldset>\n <fieldset class=\"row separator-bottom p-t-24 p-b-24\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 text-left-xs text-right-sm\">\n <div class=\"d-inline-flex m-b-16\">\n <div\n class=\"h4 text-medium m-r-4\"\n translate\n >\n Features\n </div>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{\n 'Define which are the enabled features in the current application.'\n | translate\n }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </div>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-8\">\n <c8y-feature-config\n [config]=\"config\"\n (onUpdate)=\"updateFeatures()\"\n ></c8y-feature-config>\n </div>\n </fieldset>\n <fieldset class=\"row separator-bottom p-t-24 p-b-24\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 text-left-xs text-right-sm\">\n <div class=\"d-inline-flex m-b-16\">\n <div\n class=\"h4 text-medium m-r-8\"\n translate\n >\n Top level nodes\n </div>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{\n 'Select which nodes to display in the top level of the navigator menu. By default, only Groups is shown.'\n | translate\n }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </div>\n </div>\n <div class=\"col-xs-12 col-sm-10 col-md-10\">\n <div class=\"row\">\n <c8y-root-node-config\n [config]=\"config\"\n (onUpdate)=\"updateRootNodes()\"\n [disabled]=\"rootNodeDisabled\"\n ></c8y-root-node-config>\n </div>\n </div>\n </fieldset>\n\n <fieldset\n class=\"row separator-bottom p-t-24 p-b-24\"\n *ngIf=\"'CockpitDashboardModule' | c8yPluginLoaded | async\"\n >\n <div class=\"col-xs-12 col-sm-3 col-md-2 text-left-xs text-right-sm\">\n <div class=\"d-inline-flex m-b-16\">\n <div\n class=\"h4 text-medium m-r-8\"\n translate\n >\n Home dashboard\n </div>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{\n 'The homepage of this application. By default, it is a customizable dashboard displaying the most important alarms and shortcuts to frequently used features.'\n | translate\n }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </div>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-8\">\n <c8y-home-dashboard-config [config]=\"config\"></c8y-home-dashboard-config>\n </div>\n </fieldset>\n\n <fieldset\n class=\"row p-t-24 p-b-24\"\n *ngIf=\"'htmlWidgetProviders' | c8yPluginLoaded | async\"\n >\n <div class=\"col-xs-12 col-sm-3 col-md-2 text-left-xs text-right-sm\">\n <div class=\"d-inline-flex m-b-16\">\n <div\n class=\"h4 text-medium m-r-8\"\n translate\n >\n HTML widget\n </div>\n </div>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-8\">\n <c8y-li>\n <c8y-li-icon icon=\"code1\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div class=\"p-r-16\">\n <p> {{ 'Disable sanitization' | translate }}</p>\n <p>\n <small translate>\n By default, every unsecure HTML is removed from the HTML widget. You can disable\n this behavior in this application and allow unsecure HTML to be used.\n </small>\n </p>\n </div>\n <label class=\"c8y-switch c8y-switch--inline m-l-auto\">\n <input\n [attr.aria-label]=\"'Disable sanitization' | translate\"\n name=\"htmlWidgetDisableSanitization\"\n type=\"checkbox\"\n [(ngModel)]=\"config.htmlWidgetDisableSanitization\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li class=\"\">\n <c8y-li-icon icon=\"settings\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div class=\"p-r-16\">\n <p>{{ 'Enforce advanced mode' | translate }}</p>\n <p>\n <small translate>\n If set to true, the HTML widget configuration will always be opened in the advanced mode\n (web component mode).\n </small>\n </p>\n </div>\n <label class=\"c8y-switch c8y-switch--inline m-l-auto\">\n <input\n [attr.aria-label]=\"'Enforce advanced mode' | translate\"\n name=\"htmlWidgetDefaultToAdvancedMode\"\n type=\"checkbox\"\n [(ngModel)]=\"config.htmlWidgetDefaultToAdvancedMode\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n </div>\n </fieldset>\n </div>\n </div>\n <div class=\"card-footer separator\">\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n [disabled]=\"!configForm.form.valid\"\n (click)=\"save()\"\n [actionName]=\"'cockpitConfigurationSaved'\"\n [actionData]=\"{ config: config }\"\n c8yProductExperience\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n </form>\n </div>\n</div>\n","import { CdkStep } from '@angular/cdk/stepper';\nimport { AppStateService, AlertService, C8yStepper, SetupComponent } from '@c8y/ngx-components';\nimport { CockpitConfig, DEFAULT_CONFIG } from '../cockpit-config.model';\nimport { ApplicationService } from '@c8y/client';\nimport { CockpitConfigService } from '../cockpit-config.service';\n\nexport abstract class CockpitSetupStep {\n config: CockpitConfig = DEFAULT_CONFIG;\n pending = false;\n\n constructor(\n public stepper: C8yStepper,\n protected step: CdkStep,\n protected setup: SetupComponent,\n protected appState: AppStateService,\n protected alert: AlertService,\n protected applicationService: ApplicationService,\n protected cockpitConfigService: CockpitConfigService\n ) {}\n\n async next() {\n this.pending = true;\n try {\n const newConfig = { ...this.setup.data$.value, ...this.config };\n await this.appState.updateCurrentApplicationConfig(newConfig);\n this.cockpitConfigService.updateApplication(newConfig);\n this.setup.stepCompleted(this.stepper.selectedIndex);\n this.setup.data$.next(newConfig);\n this.stepper.next();\n } catch (ex) {\n this.alert.addServerFailure(ex);\n } finally {\n this.pending = false;\n }\n }\n\n back() {\n this.stepper.previous();\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'c8y-cockpit-setup-stepper-buttons',\n templateUrl: './cockpit-setup-stepper-buttons.component.html',\n standalone: false\n})\nexport class CockpitSetupStepperButtonsComponent {\n @Input() index;\n @Output() onNext = new EventEmitter<void>();\n @Output() onBack = new EventEmitter<void>();\n}\n","<div class=\"card-footer separator d-flex j-c-center\">\n <button\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"onBack.emit()\"\n *ngIf=\"index !== 0\"\n translate\n >\n Previous\n </button>\n <button data-cy=\"c8y-cockpit-setup-stepper-buttons--save-continue-button\" class=\"btn btn-primary\" type=\"submit\" (click)=\"onNext.emit()\" translate>\n Continue\n </button>\n</div>\n","import { CdkStep } from '@angular/cdk/stepper';\nimport { Component } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { AlertService, AppStateService, C8yStepper, SetupComponent } from '@c8y/ngx-components';\nimport { CockpitSetupStep } from './cockpit-setup-step';\nimport { ApplicationService, IApplication } from '@c8y/client';\nimport { CockpitConfigService } from '../cockpit-config.service';\n\n@Component({\n selector: 'c8y-cockpit-setup-step1',\n templateUrl: './cockpit-setup-step1.component.html',\n host: { class: 'd-contents' },\n standalone: false\n})\nexport class CockpitSetupStep1Component extends CockpitSetupStep {\n app$: Observable<IApplication>;\n\n constructor(\n public stepper: C8yStepper,\n protected step: CdkStep,\n protected setup: SetupComponent,\n protected appState: AppStateService,\n protected alert: AlertService,\n protected appService: ApplicationService,\n protected cockpitConfigService: CockpitConfigService\n ) {\n super(stepper, step, setup, appState, alert, appService, cockpitConfigService);\n this.app$ = this.appState.currentApplication.pipe(filter(app => !!app));\n }\n\n iconSelectionChange(icon): void {\n this.config.icon = { class: icon };\n }\n}\n","<form\n class=\"d-contents\"\n name=\"form\"\n #stepForm=\"ngForm\"\n>\n <div class=\"container-fluid flex-no-shrink fit-w\">\n <div class=\"row separator-bottom\">\n <div class=\"col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3 p-t-24 p-l-16 p-r-16\">\n <h3\n data-cy=\"c8y-cockpit-setup-step1--step1-header-title\"\n class=\"text-medium l-h-base\"\n translate\n >\n Title, icon, and navigator collapse\n </h3>\n <p\n class=\"lead text-normal\"\n translate\n >\n Change the icon, the title, and set the initial navigator state.\n </p>\n </div>\n </div>\n </div>\n <div class=\"inner-scroll flex-grow\">\n <div class=\"container-fluid fit-w\">\n <div class=\"row\">\n <div class=\"col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\n <div class=\"d-flex a-i-start gap-16 p-t-16\">\n <div class=\"form-group d-inline-block\">\n <label>{{ 'Icon' | translate }}</label>\n <c8y-icon-selector-wrapper\n [selectedIcon]=\"(app$ | async)?.config?.icon?.class || 'c8y-cockpit'\"\n [iconSize]=\"24\"\n (onSelect)=\"iconSelectionChange($event)\"\n ></c8y-icon-selector-wrapper>\n </div>\n <div class=\"form-group flex-grow\">\n <label\n for=\"confAppTitle\"\n translate\n >\n Change application title\n </label>\n <input\n class=\"form-control\"\n id=\"confAppTitle\"\n placeholder=\"{{ 'e.g. Cockpit' | translate }} \"\n type=\"text\"\n maxlength=\"254\"\n [(ngModel)]=\"config.appTitle\"\n [ngModelOptions]=\"{ standalone: true }\"\n />\n </div>\n </div>\n\n <c8y-misc-config [config]=\"config\"></c8y-misc-config>\n </div>\n </div>\n </div>\n </div>\n <c8y-cockpit-setup-stepper-buttons\n [index]=\"stepper.selectedIndex\"\n (onNext)=\"next()\"\n (onBack)=\"back()\"\n ></c8y-cockpit-setup-stepper-buttons>\n</form>\n","import { CdkStep } from '@angular/cdk/stepper';\nimport { Component } from '@angular/core';\nimport { AlertService, AppStateService, C8yStepper, SetupComponent } from '@c8y/ngx-components';\nimport { CockpitSetupStep } from './cockpit-setup-step';\nimport { ApplicationService } from '@c8y/client';\nimport { CockpitConfigService } from '../cockpit-config.service';\n\n@Component({\n selector: 'c8y-cockpit-setup-step2',\n templateUrl: './cockpit-setup-step2.component.html',\n host: { class: 'd-contents' },\n standalone: false\n})\nexport class CockpitSetupStep2Component extends CockpitSetupStep {\n constructor(\n public stepper: C8yStepper,\n protected step: CdkStep,\n protected setup: SetupComponent,\n protected appState: AppStateService,\n protected alert: AlertService,\n protected appService: ApplicationService,\n protected cockpitConfigService: CockpitConfigService\n ) {\n super(stepper, step, setup, appState, alert, appService, cockpitConfigService);\n }\n}\n","<form #stepForm=\"ngForm\" name=\"form\" class=\"d-contents\">\n <div class=\"container-fluid flex-no-shrink fit-w\">\n <div class=\"row separator-bottom\">\n <div class=\"col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3 p-t-24 p-l-16 p-r-16\">\n <h3 translate class=\"text-medium l-h-base\" data-cy=\"c8y-cockpit-setup-step2--step2-header-title\">Features</h3>\n <p class=\"lead text-normal\" translate>\n Define which are the enabled features in the current application.\n </p>\n </div>\n </div>\n </div>\n <div class=\"inner-scroll flex-grow\">\n <div class=\"container-fluid fit-w\">\n <div class=\"row\">\n <div class=\"col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\n <c8y-feature-config [config]=\"config\"></c8y-feature-config>\n </div>\n </div>\n </div>\n </div>\n <c8y-cockpit-setup-stepper-buttons\n [index]=\"stepper.selectedIndex\"\n (onNext)=\"next()\"\n (onBack)=\"back()\"\n >\n </c8y-cockpit-setup-stepper-buttons>\n</form>\n","import { CdkStep } from '@angular/cdk/stepper';\nimport { Component } from '@angular/core';\nimport { AlertService, AppStateService, C8yStepper, SetupComponent } from '@c8y/ngx-components';\nimport { CockpitSetupStep } from './cockpit-setup-step';\nimport { ApplicationService } from '@c8y/client';\nimport { CockpitConfigService } from '../cockpit-config.service';\n\n@Component({\n selector: 'c8y-cockpit-setup-step3',\n templateUrl: './cockpit-setup-step3.component.html',\n host: { class: 'd-contents' },\n standalone: false\n})\nexport class CockpitSetupStep3Component extends CockpitSetupStep {\n constructor(\n public stepper: C8yStepper,\n protected step: CdkStep,\n protected setup: SetupComponent,\n protected appState: AppStateService,\n protected alert: AlertService,\n protected appService: ApplicationService,\n protected cockpitConfigService: CockpitConfigService\n ) {\n super(stepper, step, setup, appState, alert, appService, cockpitConfigService);\n }\n}\n","<form #stepForm=\"ngForm\" name=\"form\" class=\"d-contents\">\n <div class=\"container-fluid flex-no-shrink fit-w\">\n <div class=\"row separator-bottom\">\n <div class=\"col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3 p-t-24 p-l-16 p-r-16\">\n <h3 translate class=\"text-medium l-h-base\" data-cy=\"c8y-cockpit-setup-step3--step3-header-title\">Top level nodes</h3>\n <p class=\"lead text-normal\" translate>\n Select which nodes to display in the top level of the navigator menu. By default, only\n Groups is shown.\n </p>\n </div>\n </div>\n </div>\n <div class=\"inner-scroll flex-grow\">\n <div class=\"container-fluid fit-w p-t-16\">\n <div class=\"row\">\n <div class=\"col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2\">\n <c8y-root-node-config [config]=\"config\"></c8y-root-node-config>\n </div>\n </div>\n </div>\n </div>\n <c8y-cockpit-setup-stepper-buttons\n [index]=\"stepper.selectedIndex\"\n (onNext)=\"next()\"\n (onBack)=\"back()\"\n >\n </c8y-cockpit-setup-stepper-buttons>\n</form>\n","import { CdkStep } from '@angular/cdk/stepper';\nimport { Component } from '@angular/core';\nimport { AlertService, AppStateService, C8yStepper, SetupComponent } from '@c8y/ngx-components';\nimport { CockpitSetupStep } from './cockpit-setup-step';\nimport { ApplicationService } from '@c8y/client';\nimport { CockpitConfigService } from '../cockpit-config.service';\n\n@Component({\n selector: 'c8y-cockpit-setup-step4',\n templateUrl: './cockpit-setup-step4.component.html',\n host: { class: 'd-contents' },\n standalone: false\n})\nexport class CockpitSetupStep4Component extends CockpitSetupStep {\n constructor(\n public stepper: C8yStepper,\n protected step: CdkStep,\n protected setup: SetupComponent,\n protected appState: AppStateService,\n protected alert: AlertService,\n protected appService: ApplicationService,\n protected cockpitConfigService: CockpitConfigService\n ) {\n super(stepper, step, setup, appState, alert, appService, cockpitConfigService);\n }\n}\n","<form #stepForm=\"ngForm\" name=\"form\" class=\"d-contents\">\n <div class=\"container-fluid flex-no-shrink fit-w\">\n <div class=\"row separator-bottom\">\n <div class=\"col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3 p-t-24 p-l-16 p-r-16\">\n <h3 translate class=\"text-medium l-h-base\" data-cy=\"c8y-cockpit-setup-step4--step4-header-title\">Home dashboard</h3>\n <p class=\"lead text-normal\" translate>\n The homepage of this application. By default, it is a customizable dashboard displaying\n the most important alarms and shortcuts to frequently used features.\n </p>\n </div>\n </div>\n </div>\n <div class=\"inner-scroll flex-grow\">\n <div class=\"container-fluid fit-w\">\n <div class=\"row\">\n <div class=\"col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\n <c8y-home-dashboard-config [config]=\"config\"></c8y-home-dashboard-config>\n </div>\n </div>\n </div>\n </div>\n <c8y-cockpit-setup-stepper-buttons\n [index]=\"stepper.selectedIndex\"\n (onNext)=\"next()\"\n (onBack)=\"back()\"\n ></c8y-cockpit-setup-stepper-buttons>\n</form>\n","import { NgModule } from '@angular/core';\nimport {\n CoreModule,\n gettext,\n hookNavigator,\n hookRoute,\n hookStepper,\n SetupStep,\n Steppers\n} from '@c8y/ngx-components';\nimport { AssetSelectorModule } from '@c8y/ngx-components/assets-navigator';\nimport { EcosystemModule } from '@c8y/ngx-components/ecosystem';\nimport { IconSelectorModule } from '@c8y/ngx-components/icon-selector';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { CockpitConfigGuard } from './cockpit-config.guard';\nimport { COCKPIT_CONFIG_PATH } from './cockpit-config.model';\nimport { CockpitConfigService } from './cockpit-config.service';\nimport { CockpitConfigurationComponent } from './cockpit-configuration.component';\nimport { FeatureConfigComponent } from './feature-config.component';\nimport { HomeDashboardConfigComponent } from './home-dashboard-config.component';\nimport { MiscConfigComponent } from './misc-config.component';\nimport { RootNodeConfigComponent } from './root-node-config.component';\nimport { CockpitSetupStep1Component } from './setup/cockpit-setup-step1.component';\nimport { CockpitSetupStep2Component } from './setup/cockpit-setup-step2.component';\nimport { CockpitSetupStep3Component } from './setup/cockpit-setup-step3.component';\nimport { CockpitSetupStep4Component } from './setup/cockpit-setup-step4.component';\nimport { CockpitSetupStepperButtonsComponent } from './setup/cockpit-setup-stepper-buttons.component';\nimport { PluginLoadedPipe } from '@c8y/ngx-components';\n\n@NgModule({\n declarations: [\n CockpitConfigurationComponent,\n CockpitSetupStep1Component,\n CockpitSetupStep2Component,\n CockpitSetupStep3Component,\n CockpitSetupStep4Component,\n FeatureConfigComponent,\n RootNodeConfigComponent,\n HomeDashboardConfigComponent,\n MiscConfigComponent,\n CockpitSetupStepperButtonsComponent\n ],\n imports: [\n CoreModule,\n AssetSelectorModule,\n PopoverModule,\n TooltipModule,\n EcosystemModule,\n IconSelectorModule,\n PluginLoadedPipe\n ],\n providers: [\n CockpitConfigGuard,\n hookRoute({\n path: COCKPIT_CONFIG_PATH,\n component: CockpitConfigurationComponent,\n canActivate: [CockpitConfigGuard]\n }),\n hookNavigator(CockpitConfigGuard),\n hookStepper([\n {\n stepperId: Steppers.SETUP,\n component: CockpitSetupStep1Component,\n label: gettext('Title, icon, and navigator collapse'),\n setupId: 'cockpitMisc',\n priority: 40\n },\n {\n stepperId: Steppers.SETUP,\n component: CockpitSetupStep2Component,\n label: gettext('Features'),\n setupId: 'cockpitFeatures',\n priority: 30\n },\n {\n stepperId: Steppers.SETUP,\n component: CockpitSetupStep3Component,\n label: gettext('Top level nodes'),\n setupId: 'cockpitTopLevelNodes',\n priority: 20\n },\n {\n stepperId: Steppers.SETUP,\n component: CockpitSetupStep4Component,\n label: gettext('Home dashboard'),\n setupId: 'cockpitHomeDashboard',\n priority: 10\n }\n ] as SetupStep[])\n ]\n})\nexport class CockpitConfigModule {\n constructor(private service: CockpitConfigService) {\n // only for DI, not used but needed.\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i3","i4","i5","i1.CockpitConfigService","i1","i7.FeatureConfigComponent","i8.RootNodeConfigComponent","i9.HomeDashboardConfigComponent","i10.MiscConfigComponent","i4.CockpitConfigService","i7.MiscConfigComponent","i8.CockpitSetupStepperButtonsComponent","i9","i6.FeatureConfigComponent","i7.CockpitSetupStepperButtonsComponent","i6.RootNodeConfigComponent","i6.HomeDashboardConfigComponent"],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-cockpit-config.mjs","sources":["../../cockpit-config/cockpit-config.model.ts","../../cockpit-config/cockpit-config.guard.ts","../../cockpit-config/cockpit-config.service.ts","../../cockpit-config/misc-config.component.ts","../../cockpit-config/misc-config.component.html","../../cockpit-config/feature-config.component.ts","../../cockpit-config/feature-config.component.html","../../cockpit-config/root-node-config.component.ts","../../cockpit-config/root-node-config.component.html","../../cockpit-config/home-dashboard-config.component.ts","../../cockpit-config/home-dashboard-config.component.html","../../cockpit-config/cockpit-configuration.component.ts","../../cockpit-config/cockpit-configuration.component.html","../../cockpit-config/setup/cockpit-setup-step.ts","../../cockpit-config/setup/cockpit-setup-stepper-buttons.component.ts","../../cockpit-config/setup/cockpit-setup-stepper-buttons.component.html","../../cockpit-config/setup/cockpit-setup-step1.component.ts","../../cockpit-config/setup/cockpit-setup-step1.component.html","../../cockpit-config/setup/cockpit-setup-step2.component.ts","../../cockpit-config/setup/cockpit-setup-step2.component.html","../../cockpit-config/setup/cockpit-setup-step3.component.ts","../../cockpit-config/setup/cockpit-setup-step3.component.html","../../cockpit-config/setup/cockpit-setup-step4.component.ts","../../cockpit-config/setup/cockpit-setup-step4.component.html","../../cockpit-config/cockpit-config.module.ts","../../cockpit-config/c8y-ngx-components-cockpit-config.ts"],"sourcesContent":["export const DEFAULT_HOME_DASHBOARD_NAME = 'home-cockpit1';\nexport const USER_HOME_DASHBOARD_NAME = 'home-cockpit-user';\n\nexport interface CockpitConfig {\n rootNodes: CockpitConfigRootNode[];\n features: {\n alarms: boolean;\n dataExplorer: boolean;\n groups: boolean;\n reports: boolean;\n exports: boolean;\n dataPointLibrary: boolean;\n globalSmartRules: boolean;\n smartRules: boolean;\n subassets: boolean;\n search: boolean;\n dashboardManager: boolean;\n [key: string]: boolean;\n };\n hideNavigator: boolean;\n homeDashboardName: string;\n userSpecificHomeDashboard: boolean;\n icon: {\n class: string;\n };\n appTitle?: string;\n htmlWidgetDisableSanitization?: boolean;\n htmlWidgetDefaultToAdvancedMode?: boolean;\n}\n\nexport const DEFAULT_CONFIG: CockpitConfig = {\n rootNodes: [],\n features: {\n alarms: true,\n dataExplorer: true,\n groups: true,\n reports: true,\n exports: true,\n dataPointLibrary: true,\n globalSmartRules: true,\n smartRules: true,\n subassets: true,\n search: true,\n dashboardManager: true\n },\n hideNavigator: false,\n homeDashboardName: DEFAULT_HOME_DASHBOARD_NAME,\n userSpecificHomeDashboard: false,\n icon: {\n class: 'c8y-cockpit'\n },\n htmlWidgetDisableSanitization: false,\n htmlWidgetDefaultToAdvancedMode: false\n};\n\nexport interface CockpitConfigRootNode {\n id: string;\n name: string;\n hideDevices?: boolean;\n}\n\nexport enum HomeDashboardType {\n /**\n * Shared by all Cockpit apps\n */\n DEFAULT,\n /**\n * Only for the current Cockpit.\n */\n APP,\n /**\n * Only for the current user.\n */\n USER\n}\n\nexport const COCKPIT_CONFIG_PATH = 'cockpit-application-configuration';\n","import { Injectable } from '@angular/core';\n\nimport {\n AppStateService,\n gettext,\n NavigatorNode,\n NavigatorNodeFactory,\n Permissions\n} from '@c8y/ngx-components';\nimport { EcosystemService } from '@c8y/ngx-components/ecosystem/shared';\nimport { COCKPIT_CONFIG_PATH } from './cockpit-config.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CockpitConfigGuard implements NavigatorNodeFactory {\n protected readonly configNode: NavigatorNode = new NavigatorNode({\n path: `/${COCKPIT_CONFIG_PATH}`,\n parent: gettext('Configuration'),\n label: gettext('Application configuration'),\n icon: 'imac-settings',\n preventDuplicates: true\n });\n\n constructor(\n private permissions: Permissions,\n private appState: AppStateService,\n private ecosystemService: EcosystemService\n ) {}\n\n get(): NavigatorNode {\n if (this.canActivate()) {\n return this.configNode;\n }\n return;\n }\n\n canActivate(): boolean {\n return (\n this.permissions.hasRole(Permissions.ROLE_APPLICATION_MANAGEMENT_ADMIN) &&\n this.ecosystemService.isOwner(this.appState.currentApplication.value)\n );\n }\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { ApplicationService, InventoryService } from '@c8y/client';\nimport {\n AppStateService,\n ExtensionFactory,\n NavigatorNode,\n NavigatorService,\n OptionsService,\n Permissions,\n SearchService,\n Tab,\n TabsService\n} from '@c8y/ngx-components';\nimport {\n AssetNavigatorConfig,\n AssetNodeService,\n ASSET_NAVIGATOR_CONFIG\n} from '@c8y/ngx-components/assets-navigator';\nimport { isUndefined, startCase } from 'lodash-es';\nimport { map, take } from 'rxjs/operators';\nimport { CockpitConfig, DEFAULT_CONFIG, DEFAULT_HOME_DASHBOARD_NAME } from './cockpit-config.model';\nimport { uniqBy } from 'lodash-es';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CockpitConfigService {\n currentConfig: CockpitConfig = DEFAULT_CONFIG;\n nodes: NavigatorNode[] = [];\n private navigationFactory: ExtensionFactory<NavigatorNode> = {\n get: () => this.nodes\n };\n\n private readonly DEFAULT_NODE_PRIORITY = 2000;\n\n get excludedFeatureKeys() {\n return Object.keys(this.currentConfig.features).filter(\n key => !this.currentConfig.features[key]\n );\n }\n\n constructor(\n private navigatorService: NavigatorService,\n private tabsService: TabsService,\n private searchService: SearchService,\n private assetNodeService: AssetNodeService,\n private inventoryService: InventoryService,\n private appState: AppStateService,\n private applicationService: ApplicationService,\n private optionsService: OptionsService,\n private permissions: Permissions,\n @Optional() @Inject(ASSET_NAVIGATOR_CONFIG) public moduleConfig: AssetNavigatorConfig\n ) {\n this.registerFilterForFeatures();\n this.init();\n }\n\n init() {\n if (this.optionsService.hideNavigator !== undefined) {\n this.currentConfig.hideNavigator = this.optionsService.hideNavigator;\n }\n this.appState.currentApplicationConfig.subscribe(config => {\n if (config) {\n this.currentConfig = { ...DEFAULT_CONFIG, ...config } as CockpitConfig;\n }\n });\n\n this.appState.currentApplicationConfig.pipe(take(1)).subscribe(() => {\n this.setRootNodes();\n });\n }\n\n /**\n * Save and apply new cockpit configuration\n * @param config - New cockpit configuration\n */\n async saveConfig(config: CockpitConfig) {\n this.currentConfig = config;\n await this.storeApplicationConfig(this.currentConfig);\n await this.updateApplication(this.currentConfig);\n }\n\n /**\n * Update current application using the provided configuration\n * @param config - Cockpit configuration\n */\n async updateApplication(config: CockpitConfig) {\n if (!config.appTitle && !config.icon) {\n return;\n }\n const application = this.appState.currentApplication.value;\n\n const updatedApp = {\n ...application,\n name: config.appTitle || application.name\n };\n\n const manifest = {\n ...updatedApp.manifest,\n name: updatedApp.name,\n icon: config.icon || { class: 'c8y-cockpit' }\n };\n\n await this.applicationService.update({\n id: updatedApp.id,\n name: updatedApp.name,\n manifest\n });\n\n this.appState.currentApplication.next(updatedApp);\n }\n\n refresh() {\n this.optionsService.hideNavigator = this.currentConfig.hideNavigator;\n this.navigatorService.refresh();\n this.searchService.refresh();\n }\n\n async setRootNodes() {\n this.addNodesToFactories();\n this.nodes.length = 0;\n for (const node of this.currentConfig.rootNodes) {\n try {\n const { data } = await this.inventoryService.detail(node.id);\n if (data) {\n this.nodes.push(\n this.assetNodeService.createAssetNode({\n mo: data,\n hideDevices: node.hideDevices,\n priority: isUndefined(this.moduleConfig?.rootNodePriority)\n ? this.DEFAULT_NODE_PRIORITY\n : this.moduleConfig.rootNodePriority\n })\n );\n }\n } catch (error) {\n // do nothing\n }\n }\n this.nodes = uniqBy(this.nodes, 'path');\n this.refresh();\n }\n\n getAppDashboardName() {\n return `${DEFAULT_HOME_DASHBOARD_NAME.substring(0, DEFAULT_HOME_DASHBOARD_NAME.length - 1)}_${\n this.appState.state.app.id\n }`;\n }\n\n private async storeApplicationConfig(config: CockpitConfig) {\n await this.appState.updateCurrentApplicationConfig<CockpitConfig>(config);\n }\n\n private addNodesToFactories() {\n const nodeInFactories = this.navigatorService.factories.find(\n fatcory => fatcory === this.navigationFactory\n );\n if (!nodeInFactories) {\n this.navigatorService.factories.push(this.navigationFactory);\n }\n }\n\n private registerFilterForFeatures() {\n this.navigatorService.items$ = this.navigatorService.items$.pipe(\n map(nodes => this.setHiddenAttrLock(nodes)),\n map(nodes => this.filterNavigatorNode(nodes))\n );\n this.tabsService.items$ = this.tabsService.items$.pipe(map(tabs => this.filterTabs(tabs)));\n this.searchService.items$ = this.searchService.items$.pipe(\n map(search => (this.currentConfig.features.search ? search : []))\n );\n }\n\n private setHiddenAttrLock(nodes) {\n nodes.forEach(node => {\n Object.keys(this.currentConfig.features).forEach(key => {\n const childNode = node.find(startCase(key).toLowerCase());\n\n if (childNode) {\n if (\n !this.permissions.hasRole(Permissions.ROLE_APPLICATION_MANAGEMENT_ADMIN) &&\n childNode.lockHiddenAttr === undefined &&\n childNode.hidden === true\n ) {\n childNode.lockHiddenAttr = childNode.hidden;\n }\n }\n });\n });\n return nodes;\n }\n\n private filterTabs(tabs: Tab[]) {\n return tabs.filter(tab => !this.excludedFeatureKeys.some(key => tab.featureId === key));\n }\n\n private filterNavigatorNode(nodes: NavigatorNode[]) {\n if (!this.currentConfig) {\n return nodes;\n }\n const disabledFeatures = this.excludedFeatureKeys;\n const filteredNodes = nodes.filter(\n node => !disabledFeatures.some(key => node.featureId === key)\n );\n\n this.showAllChildrenNodes(nodes);\n this.hideChildrenNodesThatAreDisabled(nodes, disabledFeatures);\n return filteredNodes;\n }\n\n private hideChildrenNodesThatAreDisabled(nodes: NavigatorNode[], disabledFeatures: string[]) {\n nodes.forEach(node =>\n disabledFeatures.forEach(key => {\n const childNode = node.find(key, 'featureId');\n if (childNode) {\n childNode.hidden = true;\n }\n })\n );\n }\n\n private showAllChildrenNodes(nodes: NavigatorNode[]) {\n nodes.forEach(node => {\n Object.keys(this.currentConfig.features).forEach(key => {\n const childNode = node.find(startCase(key).toLowerCase());\n\n if (childNode) {\n if (childNode.lockHiddenAttr === true) {\n return;\n }\n\n childNode.hidden = false;\n }\n });\n });\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { CockpitConfig } from './cockpit-config.model';\nimport { ListGroupComponent, ListItemComponent, C8yTranslatePipe } from '@c8y/ngx-components';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'c8y-misc-config',\n templateUrl: './misc-config.component.html',\n imports: [ListGroupComponent, ListItemComponent, FormsModule, C8yTranslatePipe]\n})\nexport class MiscConfigComponent {\n @Input()\n config: CockpitConfig;\n}\n","<c8y-list-group class=\"separator-top\">\n <c8y-li>\n <div class=\"d-flex a-i-center\">\n <p>{{ 'Always collapse navigator on start up' | translate }}</p>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Collapse navigator on start up' | translate }}\"\n >\n <input data-cy=\"c8y-misc-config--collapse-button\" type=\"checkbox\" [(ngModel)]=\"config.hideNavigator\" name=\"hideNavigator\" />\n <span></span>\n </label>\n </div>\n </c8y-li>\n</c8y-list-group>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CockpitConfig } from './cockpit-config.model';\nimport {\n ListGroupComponent,\n ListItemComponent,\n ListItemIconComponent,\n C8yTranslateDirective,\n C8yTranslatePipe,\n PluginLoadedPipe\n} from '@c8y/ngx-components';\nimport { NgIf, AsyncPipe } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'c8y-feature-config',\n templateUrl: './feature-config.component.html',\n imports: [\n ListGroupComponent,\n NgIf,\n ListItemComponent,\n ListItemIconComponent,\n C8yTranslateDirective,\n FormsModule,\n C8yTranslatePipe,\n AsyncPipe,\n PluginLoadedPipe\n ]\n})\nexport class FeatureConfigComponent {\n @Input()\n config: CockpitConfig;\n\n @Output()\n onUpdate = new EventEmitter<void>();\n\n updateFeatures() {\n this.onUpdate.emit();\n }\n}\n","<c8y-list-group>\n <c8y-li data-cy=\"feature-config--feature-list\" *ngIf=\"'SearchModule' | c8yPluginLoaded | async\">\n <c8y-li-icon icon=\"search\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Global search' | translate }}</p>\n <p>\n <small translate>Display the global search in the main header.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global search' | translate }}\"\n >\n <input\n name=\"search\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.search\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-group\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Groups' | translate }}</p>\n <p>\n <small translate>Display top level groups under the Groups navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Groups' | translate }}\"\n >\n <input\n name=\"groups\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.groups\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\" *ngIf=\"'CockpitAlarmsModule' | c8yPluginLoaded | async\">\n <c8y-li-icon icon=\"bell\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Alarms' | translate }}</p>\n <p>\n <small translate>Display a link to the global alarms list in the navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global Alarms view' | translate }}\"\n >\n <input\n name=\"alarms\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.alarms\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-data-explorer\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Data explorer' | translate }}</p>\n <p>\n <small translate>\n Display the data explorer in the navigator menu and on the group tabs.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Data explorer' | translate }}\"\n >\n <input\n name=\"dataExplorer\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dataExplorer\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\" *ngIf=\"'ReportDashboardModule' | c8yPluginLoaded | async\">\n <c8y-li-icon icon=\"c8y-reports\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Reports' | translate }}</p>\n <p>\n <small translate>Display a link to the Reports list in the navigator menu.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Reports' | translate }}\"\n >\n <input\n name=\"reports\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.reports\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\" *ngIf=\"'exportsProviders' | c8yPluginLoaded | async\">\n <c8y-li-icon icon=\"graph-report\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Exports' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Exports list under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Exports' | translate }}\"\n >\n <input\n name=\"exports\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.exports\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\" *ngIf=\"'DatapointLibraryModule' | c8yPluginLoaded | async\">\n <c8y-li-icon icon=\"c8y-data-points\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Data point library' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Data point library under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Data point library' | translate }}\"\n >\n <input\n name=\"dataPointLibrary\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dataPointLibrary\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-smart-rules\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Global smart rules' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Global smart rules under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Global smart rules' | translate }}\"\n >\n <input\n name=\"globalSmartRules\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.globalSmartRules\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-group-open\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Subassets view' | translate }}</p>\n <p><small translate>Display the \"Subassets\" tab on groups.</small></p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Subassets view' | translate }}\"\n >\n <input\n name=\"subassets\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.subassets\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"c8y-smart-rules\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Smart rules for devices and groups' | translate }}</p>\n <p>\n <small translate>Display the smart rules tab on groups and devices.</small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Smart rules for devices and groups' | translate }}\"\n >\n <input\n name=\"smartRules\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.smartRules\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li data-cy=\"feature-config--feature-list\" *ngIf=\"'DashboardManagerModule' | c8yPluginLoaded | async\">\n <c8y-li-icon icon=\"management1\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Dashboard manager' | translate }}</p>\n <p>\n <small translate>\n Display a link to the Dashboard manager under the Configuration navigator menu.\n </small>\n </p>\n </div>\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Dashboard manager' | translate }}\"\n >\n <input\n name=\"dashboardManager\"\n type=\"checkbox\"\n [(ngModel)]=\"config.features.dashboardManager\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n</c8y-list-group>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CockpitConfig, CockpitConfigRootNode } from './cockpit-config.model';\nimport {\n C8yTranslateDirective,\n ListGroupComponent,\n ListItemComponent,\n EmptyStateComponent,\n ListItemIconComponent,\n IconDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { NgIf, NgFor } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { TooltipDirective } from 'ngx-bootstrap/tooltip';\nimport { AssetSelectorComponent } from '@c8y/ngx-components/assets-navigator';\n\n@Component({\n selector: 'c8y-root-node-config',\n templateUrl: './root-node-config.component.html',\n imports: [\n C8yTranslateDirective,\n ListGroupComponent,\n NgIf,\n ListItemComponent,\n EmptyStateComponent,\n NgFor,\n ListItemIconComponent,\n FormsModule,\n TooltipDirective,\n IconDirective,\n AssetSelectorComponent,\n C8yTranslatePipe\n ]\n})\nexport class RootNodeConfigComponent {\n @Input()\n config: CockpitConfig;\n\n @Input() disabled = false;\n\n @Output()\n onUpdate = new EventEmitter<void>();\n\n /**\n * Removes one of the root nodes.\n * @param node The node to remove.\n */\n removeNavigatorNode(node: CockpitConfigRootNode) {\n const index = this.config.rootNodes.indexOf(node);\n if (index > -1) {\n const newNodes = this.config.rootNodes.filter((_, i) => i !== index);\n this.config.rootNodes = newNodes;\n this.onUpdate.emit();\n }\n }\n}\n","<div class=\"col-sm-6\">\n <label title=\"{{ 'Current top level nodes' | translate }}\" translate>\n Current top level nodes\n </label>\n <c8y-list-group class=\"separator-top\">\n <c8y-li *ngIf=\"config.rootNodes.length === 0\">\n <c8y-ui-empty-state\n [icon]=\"'folder-open'\"\n [title]=\"'No top level nodes set.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </c8y-li>\n <c8y-li *ngFor=\"let node of config.rootNodes; let index = index\">\n <c8y-li-icon icon=\"c8y-group\"></c8y-li-icon>\n <div class=\"content-flex-30\">\n <div class=\"col-6\">\n <div class=\"text-truncate\" title=\"{{ node.name }}\">\n {{ node.name }}\n </div>\n </div>\n <div class=\"col-4\">\n <label class=\"c8y-switch c8y-switch--inline d-flex\" title=\"{{ 'Hide devices' | translate }}\">\n <input\n type=\"checkbox\"\n [(ngModel)]=\"node.hideDevices\"\n name=\"node.{{ index }}.hideDevices\"\n (change)=\"onUpdate.emit()\"\n [disabled]=\"disabled\"\n />\n <span></span>\n <small class=\"text-truncate a-s-center l-h-1\">{{ 'Hide devices' | translate }}</small>\n </label>\n </div>\n <div class=\"col-2 text-right\">\n <div class=\"d-flex fit-w\">\n <button\n class=\"btn-dot btn-dot--danger m-l-auto\"\n type=\"button\"\n [attr.aria-label]=\"'Remove' | translate\"\n tooltip=\"{{ 'Remove' | translate }}\"\n [disabled]=\"disabled\"\n [delay]=\"500\"\n (click)=\"removeNavigatorNode(node)\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </div>\n </div>\n </div>\n </c8y-li>\n </c8y-list-group>\n</div>\n\n<div class=\"col-sm-6 col-md-5\" style=\"height: calc(100vh - 430px)\">\n <label title=\"{{ 'Select top level nodes' | translate }}\" translate>Select top level nodes</label>\n <c8y-asset-selector\n [config]=\"{ groupsOnly: true, multi: true, groupsSelectable: true }\"\n [(ngModel)]=\"config.rootNodes\"\n [disabled]=\"disabled\"\n (onSelected)=\"onUpdate.emit()\"\n name=\"rootNodes\"\n class=\"border-top d-block\"\n ></c8y-asset-selector>\n</div>\n","import { Component, Input } from '@angular/core';\nimport {\n CockpitConfig,\n DEFAULT_HOME_DASHBOARD_NAME,\n HomeDashboardType,\n USER_HOME_DASHBOARD_NAME\n} from './cockpit-config.model';\nimport { CockpitConfigService } from './cockpit-config.service';\nimport {\n ListGroupComponent,\n ListItemComponent,\n ListItemRadioComponent,\n C8yTranslateDirective\n} from '@c8y/ngx-components';\n\n@Component({\n selector: 'c8y-home-dashboard-config',\n templateUrl: './home-dashboard-config.component.html',\n imports: [ListGroupComponent, ListItemComponent, ListItemRadioComponent, C8yTranslateDirective]\n})\nexport class HomeDashboardConfigComponent {\n @Input()\n config: CockpitConfig;\n\n /**\n * The types of dashboard that can be configured.\n */\n readonly homeDashboardTypes = HomeDashboardType;\n\n /**\n * @ignore\n */\n constructor(private cockpitConfigService: CockpitConfigService) {}\n\n /**\n * @ignore\n */\n dashboardChange(selected: boolean, type: HomeDashboardType) {\n if (!selected) {\n return;\n }\n\n switch (type) {\n case this.homeDashboardTypes.DEFAULT: {\n this.config.homeDashboardName = DEFAULT_HOME_DASHBOARD_NAME;\n this.config.userSpecificHomeDashboard = false;\n break;\n }\n case this.homeDashboardTypes.APP: {\n this.config.homeDashboardName = this.cockpitConfigService.getAppDashboardName();\n this.config.userSpecificHomeDashboard = false;\n break;\n }\n case this.homeDashboardTypes.USER: {\n this.config.homeDashboardName = USER_HOME_DASHBOARD_NAME;\n this.config.userSpecificHomeDashboard = true;\n break;\n }\n }\n }\n\n /**\n * @ignore\n */\n verifySelected(type: HomeDashboardType) {\n if (type === this.homeDashboardTypes.USER) {\n return this.config.userSpecificHomeDashboard;\n }\n if (type === this.homeDashboardTypes.DEFAULT) {\n return this.config.homeDashboardName === DEFAULT_HOME_DASHBOARD_NAME;\n }\n return this.config.homeDashboardName === this.cockpitConfigService.getAppDashboardName();\n }\n}\n","<c8y-list-group>\n <c8y-li data-cy=\"home-dashboard-config--dashboard-list\">\n <c8y-li-radio\n (onSelect)=\"dashboardChange($event, homeDashboardTypes.DEFAULT)\"\n [selected]=\"verifySelected(homeDashboardTypes.DEFAULT)\"\n ></c8y-li-radio>\n <p translate>Default home dashboard</p>\n <small translate>Changes done in the home dashboard are reflected across the platform.</small>\n </c8y-li>\n <c8y-li data-cy=\"home-dashboard-config--dashboard-list\">\n <c8y-li-radio\n (onSelect)=\"dashboardChange($event, homeDashboardTypes.APP)\"\n [selected]=\"verifySelected(homeDashboardTypes.APP)\"\n ></c8y-li-radio>\n <p translate>Custom home dashboard</p>\n <small translate>\n Changes done to the home dashboard are reflected only in the current application.\n </small>\n </c8y-li>\n <c8y-li data-cy=\"home-dashboard-config--dashboard-list\">\n <c8y-li-radio\n (onSelect)=\"dashboardChange($event, homeDashboardTypes.USER)\"\n [selected]=\"verifySelected(homeDashboardTypes.USER)\"\n ></c8y-li-radio>\n <p translate>User home dashboard</p>\n <small translate>\n Changes done to the home dashboard are reflected only for the current user. NOTE: This user\n needs to have inventory write permission.\n </small>\n </c8y-li>\n</c8y-list-group>\n","import { Component, OnInit } from '@angular/core';\nimport {\n AlertService,\n AppStateService,\n gettext,\n TitleComponent,\n BreadcrumbComponent,\n BreadcrumbItemComponent,\n C8yTranslateDirective,\n ListItemComponent,\n ListItemIconComponent,\n ProductExperienceDirective,\n C8yTranslatePipe,\n PluginLoadedPipe\n} from '@c8y/ngx-components';\nimport { CockpitConfig, DEFAULT_CONFIG } from './cockpit-config.model';\nimport { CockpitConfigService } from './cockpit-config.service';\nimport { FormsModule } from '@angular/forms';\nimport { IconSelectorWrapperComponent } from '@c8y/ngx-components/icon-selector';\nimport { MiscConfigComponent } from './misc-config.component';\nimport { PopoverDirective } from 'ngx-bootstrap/popover';\nimport { FeatureConfigComponent } from './feature-config.component';\nimport { RootNodeConfigComponent } from './root-node-config.component';\nimport { NgIf, AsyncPipe } from '@angular/common';\nimport { HomeDashboardConfigComponent } from './home-dashboard-config.component';\n\n@Component({\n selector: 'c8y-cockpit-configuration',\n templateUrl: './cockpit-configuration.component.html',\n imports: [\n TitleComponent,\n BreadcrumbComponent,\n BreadcrumbItemComponent,\n FormsModule,\n C8yTranslateDirective,\n IconSelectorWrapperComponent,\n MiscConfigComponent,\n PopoverDirective,\n FeatureConfigComponent,\n RootNodeConfigComponent,\n NgIf,\n HomeDashboardConfigComponent,\n ListItemComponent,\n ListItemIconComponent,\n ProductExperienceDirective,\n C8yTranslatePipe,\n AsyncPipe,\n PluginLoadedPipe\n ]\n})\nexport class CockpitConfigurationComponent implements OnInit {\n /**\n * The currently used configuration.\n */\n config: CockpitConfig = DEFAULT_CONFIG;\n\n rootNodeDisabled = false;\n\n constructor(\n private cockpitConfigService: CockpitConfigService,\n private alertService: AlertService,\n private appState: AppStateService\n ) {}\n\n /**\n * @ignore\n */\n ngOnInit() {\n this.config = this.cockpitConfigService.currentConfig;\n }\n\n /**\n * Stores the configuration and shows a success message.\n */\n async save() {\n try {\n await this.cockpitConfigService.saveConfig(this.config);\n this.alertService.success(gettext('Cockpit configuration saved.'));\n } catch (ex) {\n this.alertService.addServerFailure(ex);\n }\n }\n\n /**\n * @ignore\n */\n iconSelectionChange(icon: string): void {\n this.config.icon = { class: icon };\n this.appState.currentApplication.next({\n ...this.appState.currentApplication.value,\n ...{ config: this.config }\n });\n }\n\n /**\n * Updates the features to directly reflect the results of the change.\n */\n updateFeatures() {\n this.cockpitConfigService.currentConfig = this.config;\n this.cockpitConfigService.refresh();\n }\n\n /**\n * Updates the root nodes to directly reflect the results of the change.\n */\n async updateRootNodes() {\n this.rootNodeDisabled = true;\n this.cockpitConfigService.currentConfig = this.config;\n await this.cockpitConfigService.setRootNodes();\n this.rootNodeDisabled = false;\n }\n}\n","<c8y-title>{{ 'Application configuration' | translate }}</c8y-title>\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-tools'\"\n [label]=\"'Configuration' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-tools'\"\n [label]=\"'Application configuration' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n<div class=\"row\">\n <div class=\"col-lg-12 col-lg-max\">\n <form #configForm=\"ngForm\">\n <div class=\"card card--fullpage\">\n <div class=\"card-header separator\">\n <div class=\"card-title\">\n {{ config.appTitle || ('Cockpit' | translate) }} {{ 'configuration' | translate }}\n </div>\n </div>\n\n <div class=\"inner-scroll\">\n <div class=\"card-block p-t-0 p-b-0\">\n <fieldset class=\"row separator-bottom p-t-24 p-b-24\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 text-left-xs text-right-sm\">\n <div\n class=\"h4 text-medium d-inline-block m-r-4\"\n translate\n >\n Title, icon, and navigator collapse\n </div>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-8 p-l-16\">\n <div class=\"d-flex a-i-start gap-16\">\n <div class=\"form-group d-inline-block\">\n <label>{{ 'Icon' | translate }}</label>\n <c8y-icon-selector-wrapper\n [selectedIcon]=\"config?.icon?.class || 'c8y-cockpit'\"\n [iconSize]=\"24\"\n (onSelect)=\"iconSelectionChange($event)\"\n ></c8y-icon-selector-wrapper>\n </div>\n <div class=\"form-group flex-grow\">\n <label\n for=\"confAppTitle\"\n translate\n >\n Change application title\n </label>\n <input\n class=\"form-control\"\n id=\"confAppTitle\"\n placeholder=\"{{ 'e.g. Cockpit' | translate }} \"\n type=\"text\"\n maxlength=\"254\"\n [(ngModel)]=\"config.appTitle\"\n [ngModelOptions]=\"{ standalone: true }\"\n />\n </div>\n </div>\n\n <c8y-misc-config [config]=\"config\"></c8y-misc-config>\n </div>\n </fieldset>\n <fieldset class=\"row separator-bottom p-t-24 p-b-24\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 text-left-xs text-right-sm\">\n <div class=\"d-inline-flex m-b-16\">\n <div\n class=\"h4 text-medium m-r-4\"\n translate\n >\n Features\n </div>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{\n 'Define which are the enabled features in the current application.'\n | translate\n }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </div>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-8\">\n <c8y-feature-config\n [config]=\"config\"\n (onUpdate)=\"updateFeatures()\"\n ></c8y-feature-config>\n </div>\n </fieldset>\n <fieldset class=\"row separator-bottom p-t-24 p-b-24\">\n <div class=\"col-xs-12 col-sm-3 col-md-2 text-left-xs text-right-sm\">\n <div class=\"d-inline-flex m-b-16\">\n <div\n class=\"h4 text-medium m-r-8\"\n translate\n >\n Top level nodes\n </div>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{\n 'Select which nodes to display in the top level of the navigator menu. By default, only Groups is shown.'\n | translate\n }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </div>\n </div>\n <div class=\"col-xs-12 col-sm-10 col-md-10\">\n <div class=\"row\">\n <c8y-root-node-config\n [config]=\"config\"\n (onUpdate)=\"updateRootNodes()\"\n [disabled]=\"rootNodeDisabled\"\n ></c8y-root-node-config>\n </div>\n </div>\n </fieldset>\n\n <fieldset\n class=\"row separator-bottom p-t-24 p-b-24\"\n *ngIf=\"'CockpitDashboardModule' | c8yPluginLoaded | async\"\n >\n <div class=\"col-xs-12 col-sm-3 col-md-2 text-left-xs text-right-sm\">\n <div class=\"d-inline-flex m-b-16\">\n <div\n class=\"h4 text-medium m-r-8\"\n translate\n >\n Home dashboard\n </div>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{\n 'The homepage of this application. By default, it is a customizable dashboard displaying the most important alarms and shortcuts to frequently used features.'\n | translate\n }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </div>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-8\">\n <c8y-home-dashboard-config [config]=\"config\"></c8y-home-dashboard-config>\n </div>\n </fieldset>\n\n <fieldset\n class=\"row p-t-24 p-b-24\"\n *ngIf=\"'htmlWidgetProviders' | c8yPluginLoaded | async\"\n >\n <div class=\"col-xs-12 col-sm-3 col-md-2 text-left-xs text-right-sm\">\n <div class=\"d-inline-flex m-b-16\">\n <div\n class=\"h4 text-medium m-r-8\"\n translate\n >\n HTML widget\n </div>\n </div>\n </div>\n <div class=\"col-xs-12 col-sm-9 col-md-8\">\n <c8y-li>\n <c8y-li-icon icon=\"code1\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div class=\"p-r-16\">\n <p> {{ 'Disable sanitization' | translate }}</p>\n <p>\n <small translate>\n By default, every unsecure HTML is removed from the HTML widget. You can disable\n this behavior in this application and allow unsecure HTML to be used.\n </small>\n </p>\n </div>\n <label class=\"c8y-switch c8y-switch--inline m-l-auto\">\n <input\n [attr.aria-label]=\"'Disable sanitization' | translate\"\n name=\"htmlWidgetDisableSanitization\"\n type=\"checkbox\"\n [(ngModel)]=\"config.htmlWidgetDisableSanitization\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n <c8y-li class=\"\">\n <c8y-li-icon icon=\"settings\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div class=\"p-r-16\">\n <p>{{ 'Enforce advanced mode' | translate }}</p>\n <p>\n <small translate>\n If set to true, the HTML widget configuration will always be opened in the advanced mode\n (web component mode).\n </small>\n </p>\n </div>\n <label class=\"c8y-switch c8y-switch--inline m-l-auto\">\n <input\n [attr.aria-label]=\"'Enforce advanced mode' | translate\"\n name=\"htmlWidgetDefaultToAdvancedMode\"\n type=\"checkbox\"\n [(ngModel)]=\"config.htmlWidgetDefaultToAdvancedMode\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n </div>\n </fieldset>\n </div>\n </div>\n <div class=\"card-footer separator\">\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n [disabled]=\"!configForm.form.valid\"\n (click)=\"save()\"\n [actionName]=\"'cockpitConfigurationSaved'\"\n [actionData]=\"{ config: config }\"\n c8yProductExperience\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n </form>\n </div>\n</div>\n","import { CdkStep } from '@angular/cdk/stepper';\nimport { AppStateService, AlertService, C8yStepper, SetupComponent } from '@c8y/ngx-components';\nimport { CockpitConfig, DEFAULT_CONFIG } from '../cockpit-config.model';\nimport { ApplicationService } from '@c8y/client';\nimport { CockpitConfigService } from '../cockpit-config.service';\n\nexport abstract class CockpitSetupStep {\n config: CockpitConfig = DEFAULT_CONFIG;\n pending = false;\n\n constructor(\n public stepper: C8yStepper,\n protected step: CdkStep,\n protected setup: SetupComponent,\n protected appState: AppStateService,\n protected alert: AlertService,\n protected applicationService: ApplicationService,\n protected cockpitConfigService: CockpitConfigService\n ) {}\n\n async next() {\n this.pending = true;\n try {\n const newConfig = { ...this.setup.data$.value, ...this.config };\n await this.appState.updateCurrentApplicationConfig(newConfig);\n this.cockpitConfigService.updateApplication(newConfig);\n this.setup.stepCompleted(this.stepper.selectedIndex);\n this.setup.data$.next(newConfig);\n this.stepper.next();\n } catch (ex) {\n this.alert.addServerFailure(ex);\n } finally {\n this.pending = false;\n }\n }\n\n back() {\n this.stepper.previous();\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { C8yTranslateDirective } from '@c8y/ngx-components';\n\n@Component({\n selector: 'c8y-cockpit-setup-stepper-buttons',\n templateUrl: './cockpit-setup-stepper-buttons.component.html',\n imports: [NgIf, C8yTranslateDirective]\n})\nexport class CockpitSetupStepperButtonsComponent {\n @Input() index;\n @Output() onNext = new EventEmitter<void>();\n @Output() onBack = new EventEmitter<void>();\n}\n","<div class=\"card-footer separator d-flex j-c-center\">\n <button\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"onBack.emit()\"\n *ngIf=\"index !== 0\"\n translate\n >\n Previous\n </button>\n <button data-cy=\"c8y-cockpit-setup-stepper-buttons--save-continue-button\" class=\"btn btn-primary\" type=\"submit\" (click)=\"onNext.emit()\" translate>\n Continue\n </button>\n</div>\n","import { CdkStep } from '@angular/cdk/stepper';\nimport { Component } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport {\n AlertService,\n AppStateService,\n C8yStepper,\n SetupComponent,\n C8yTranslateDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { CockpitSetupStep } from './cockpit-setup-step';\nimport { ApplicationService, IApplication } from '@c8y/client';\nimport { CockpitConfigService } from '../cockpit-config.service';\nimport { FormsModule } from '@angular/forms';\nimport { IconSelectorWrapperComponent } from '@c8y/ngx-components/icon-selector';\nimport { MiscConfigComponent } from '../misc-config.component';\nimport { CockpitSetupStepperButtonsComponent } from './cockpit-setup-stepper-buttons.component';\nimport { AsyncPipe } from '@angular/common';\n\n@Component({\n selector: 'c8y-cockpit-setup-step1',\n templateUrl: './cockpit-setup-step1.component.html',\n host: { class: 'd-contents' },\n imports: [\n FormsModule,\n C8yTranslateDirective,\n IconSelectorWrapperComponent,\n MiscConfigComponent,\n CockpitSetupStepperButtonsComponent,\n C8yTranslatePipe,\n AsyncPipe\n ]\n})\nexport class CockpitSetupStep1Component extends CockpitSetupStep {\n app$: Observable<IApplication>;\n\n constructor(\n public stepper: C8yStepper,\n protected step: CdkStep,\n protected setup: SetupComponent,\n protected appState: AppStateService,\n protected alert: AlertService,\n protected appService: ApplicationService,\n protected cockpitConfigService: CockpitConfigService\n ) {\n super(stepper, step, setup, appState, alert, appService, cockpitConfigService);\n this.app$ = this.appState.currentApplication.pipe(filter(app => !!app));\n }\n\n iconSelectionChange(icon): void {\n this.config.icon = { class: icon };\n }\n}\n","<form\n class=\"d-contents\"\n name=\"form\"\n #stepForm=\"ngForm\"\n>\n <div class=\"container-fluid flex-no-shrink fit-w\">\n <div class=\"row separator-bottom\">\n <div class=\"col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3 p-t-24 p-l-16 p-r-16\">\n <h3\n data-cy=\"c8y-cockpit-setup-step1--step1-header-title\"\n class=\"text-medium l-h-base\"\n translate\n >\n Title, icon, and navigator collapse\n </h3>\n <p\n class=\"lead text-normal\"\n translate\n >\n Change the icon, the title, and set the initial navigator state.\n </p>\n </div>\n </div>\n </div>\n <div class=\"inner-scroll flex-grow\">\n <div class=\"container-fluid fit-w\">\n <div class=\"row\">\n <div class=\"col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\n <div class=\"d-flex a-i-start gap-16 p-t-16\">\n <div class=\"form-group d-inline-block\">\n <label>{{ 'Icon' | translate }}</label>\n <c8y-icon-selector-wrapper\n [selectedIcon]=\"(app$ | async)?.config?.icon?.class || 'c8y-cockpit'\"\n [iconSize]=\"24\"\n (onSelect)=\"iconSelectionChange($event)\"\n ></c8y-icon-selector-wrapper>\n </div>\n <div class=\"form-group flex-grow\">\n <label\n for=\"confAppTitle\"\n translate\n >\n Change application title\n </label>\n <input\n class=\"form-control\"\n id=\"confAppTitle\"\n placeholder=\"{{ 'e.g. Cockpit' | translate }} \"\n type=\"text\"\n maxlength=\"254\"\n [(ngModel)]=\"config.appTitle\"\n [ngModelOptions]=\"{ standalone: true }\"\n />\n </div>\n </div>\n\n <c8y-misc-config [config]=\"config\"></c8y-misc-config>\n </div>\n </div>\n </div>\n </div>\n <c8y-cockpit-setup-stepper-buttons\n [index]=\"stepper.selectedIndex\"\n (onNext)=\"next()\"\n (onBack)=\"back()\"\n ></c8y-cockpit-setup-stepper-buttons>\n</form>\n","import { CdkStep } from '@angular/cdk/stepper';\nimport { Component } from '@angular/core';\nimport {\n AlertService,\n AppStateService,\n C8yStepper,\n SetupComponent,\n C8yTranslateDirective\n} from '@c8y/ngx-components';\nimport { CockpitSetupStep } from './cockpit-setup-step';\nimport { ApplicationService } from '@c8y/client';\nimport { CockpitConfigService } from '../cockpit-config.service';\nimport { FormsModule } from '@angular/forms';\nimport { FeatureConfigComponent } from '../feature-config.component';\nimport { CockpitSetupStepperButtonsComponent } from './cockpit-setup-stepper-buttons.component';\n\n@Component({\n selector: 'c8y-cockpit-setup-step2',\n templateUrl: './cockpit-setup-step2.component.html',\n host: { class: 'd-contents' },\n imports: [\n FormsModule,\n C8yTranslateDirective,\n FeatureConfigComponent,\n CockpitSetupStepperButtonsComponent\n ]\n})\nexport class CockpitSetupStep2Component extends CockpitSetupStep {\n constructor(\n public stepper: C8yStepper,\n protected step: CdkStep,\n protected setup: SetupComponent,\n protected appState: AppStateService,\n protected alert: AlertService,\n protected appService: ApplicationService,\n protected cockpitConfigService: CockpitConfigService\n ) {\n super(stepper, step, setup, appState, alert, appService, cockpitConfigService);\n }\n}\n","<form #stepForm=\"ngForm\" name=\"form\" class=\"d-contents\">\n <div class=\"container-fluid flex-no-shrink fit-w\">\n <div class=\"row separator-bottom\">\n <div class=\"col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3 p-t-24 p-l-16 p-r-16\">\n <h3 translate class=\"text-medium l-h-base\" data-cy=\"c8y-cockpit-setup-step2--step2-header-title\">Features</h3>\n <p class=\"lead text-normal\" translate>\n Define which are the enabled features in the current application.\n </p>\n </div>\n </div>\n </div>\n <div class=\"inner-scroll flex-grow\">\n <div class=\"container-fluid fit-w\">\n <div class=\"row\">\n <div class=\"col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\n <c8y-feature-config [config]=\"config\"></c8y-feature-config>\n </div>\n </div>\n </div>\n </div>\n <c8y-cockpit-setup-stepper-buttons\n [index]=\"stepper.selectedIndex\"\n (onNext)=\"next()\"\n (onBack)=\"back()\"\n >\n </c8y-cockpit-setup-stepper-buttons>\n</form>\n","import { CdkStep } from '@angular/cdk/stepper';\nimport { Component } from '@angular/core';\nimport {\n AlertService,\n AppStateService,\n C8yStepper,\n SetupComponent,\n C8yTranslateDirective\n} from '@c8y/ngx-components';\nimport { CockpitSetupStep } from './cockpit-setup-step';\nimport { ApplicationService } from '@c8y/client';\nimport { CockpitConfigService } from '../cockpit-config.service';\nimport { FormsModule } from '@angular/forms';\nimport { RootNodeConfigComponent } from '../root-node-config.component';\nimport { CockpitSetupStepperButtonsComponent } from './cockpit-setup-stepper-buttons.component';\n\n@Component({\n selector: 'c8y-cockpit-setup-step3',\n templateUrl: './cockpit-setup-step3.component.html',\n host: { class: 'd-contents' },\n imports: [\n FormsModule,\n C8yTranslateDirective,\n RootNodeConfigComponent,\n CockpitSetupStepperButtonsComponent\n ]\n})\nexport class CockpitSetupStep3Component extends CockpitSetupStep {\n constructor(\n public stepper: C8yStepper,\n protected step: CdkStep,\n protected setup: SetupComponent,\n protected appState: AppStateService,\n protected alert: AlertService,\n protected appService: ApplicationService,\n protected cockpitConfigService: CockpitConfigService\n ) {\n super(stepper, step, setup, appState, alert, appService, cockpitConfigService);\n }\n}\n","<form #stepForm=\"ngForm\" name=\"form\" class=\"d-contents\">\n <div class=\"container-fluid flex-no-shrink fit-w\">\n <div class=\"row separator-bottom\">\n <div class=\"col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3 p-t-24 p-l-16 p-r-16\">\n <h3 translate class=\"text-medium l-h-base\" data-cy=\"c8y-cockpit-setup-step3--step3-header-title\">Top level nodes</h3>\n <p class=\"lead text-normal\" translate>\n Select which nodes to display in the top level of the navigator menu. By default, only\n Groups is shown.\n </p>\n </div>\n </div>\n </div>\n <div class=\"inner-scroll flex-grow\">\n <div class=\"container-fluid fit-w p-t-16\">\n <div class=\"row\">\n <div class=\"col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2\">\n <c8y-root-node-config [config]=\"config\"></c8y-root-node-config>\n </div>\n </div>\n </div>\n </div>\n <c8y-cockpit-setup-stepper-buttons\n [index]=\"stepper.selectedIndex\"\n (onNext)=\"next()\"\n (onBack)=\"back()\"\n >\n </c8y-cockpit-setup-stepper-buttons>\n</form>\n","import { CdkStep } from '@angular/cdk/stepper';\nimport { Component } from '@angular/core';\nimport {\n AlertService,\n AppStateService,\n C8yStepper,\n SetupComponent,\n C8yTranslateDirective\n} from '@c8y/ngx-components';\nimport { CockpitSetupStep } from './cockpit-setup-step';\nimport { ApplicationService } from '@c8y/client';\nimport { CockpitConfigService } from '../cockpit-config.service';\nimport { FormsModule } from '@angular/forms';\nimport { HomeDashboardConfigComponent } from '../home-dashboard-config.component';\nimport { CockpitSetupStepperButtonsComponent } from './cockpit-setup-stepper-buttons.component';\n\n@Component({\n selector: 'c8y-cockpit-setup-step4',\n templateUrl: './cockpit-setup-step4.component.html',\n host: { class: 'd-contents' },\n imports: [\n FormsModule,\n C8yTranslateDirective,\n HomeDashboardConfigComponent,\n CockpitSetupStepperButtonsComponent\n ]\n})\nexport class CockpitSetupStep4Component extends CockpitSetupStep {\n constructor(\n public stepper: C8yStepper,\n protected step: CdkStep,\n protected setup: SetupComponent,\n protected appState: AppStateService,\n protected alert: AlertService,\n protected appService: ApplicationService,\n protected cockpitConfigService: CockpitConfigService\n ) {\n super(stepper, step, setup, appState, alert, appService, cockpitConfigService);\n }\n}\n","<form #stepForm=\"ngForm\" name=\"form\" class=\"d-contents\">\n <div class=\"container-fluid flex-no-shrink fit-w\">\n <div class=\"row separator-bottom\">\n <div class=\"col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3 p-t-24 p-l-16 p-r-16\">\n <h3 translate class=\"text-medium l-h-base\" data-cy=\"c8y-cockpit-setup-step4--step4-header-title\">Home dashboard</h3>\n <p class=\"lead text-normal\" translate>\n The homepage of this application. By default, it is a customizable dashboard displaying\n the most important alarms and shortcuts to frequently used features.\n </p>\n </div>\n </div>\n </div>\n <div class=\"inner-scroll flex-grow\">\n <div class=\"container-fluid fit-w\">\n <div class=\"row\">\n <div class=\"col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\n <c8y-home-dashboard-config [config]=\"config\"></c8y-home-dashboard-config>\n </div>\n </div>\n </div>\n </div>\n <c8y-cockpit-setup-stepper-buttons\n [index]=\"stepper.selectedIndex\"\n (onNext)=\"next()\"\n (onBack)=\"back()\"\n ></c8y-cockpit-setup-stepper-buttons>\n</form>\n","import { NgModule } from '@angular/core';\nimport {\n CoreModule,\n gettext,\n hookNavigator,\n hookRoute,\n hookStepper,\n SetupStep,\n Steppers,\n PluginLoadedPipe\n} from '@c8y/ngx-components';\nimport { AssetSelectorModule } from '@c8y/ngx-components/assets-navigator';\nimport { EcosystemModule } from '@c8y/ngx-components/ecosystem';\nimport { IconSelectorModule } from '@c8y/ngx-components/icon-selector';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { CockpitConfigGuard } from './cockpit-config.guard';\nimport { COCKPIT_CONFIG_PATH } from './cockpit-config.model';\nimport { CockpitConfigService } from './cockpit-config.service';\nimport { CockpitConfigurationComponent } from './cockpit-configuration.component';\nimport { FeatureConfigComponent } from './feature-config.component';\nimport { HomeDashboardConfigComponent } from './home-dashboard-config.component';\nimport { MiscConfigComponent } from './misc-config.component';\nimport { RootNodeConfigComponent } from './root-node-config.component';\nimport { CockpitSetupStep1Component } from './setup/cockpit-setup-step1.component';\nimport { CockpitSetupStep2Component } from './setup/cockpit-setup-step2.component';\nimport { CockpitSetupStep3Component } from './setup/cockpit-setup-step3.component';\nimport { CockpitSetupStep4Component } from './setup/cockpit-setup-step4.component';\nimport { CockpitSetupStepperButtonsComponent } from './setup/cockpit-setup-stepper-buttons.component';\n\n@NgModule({\n imports: [\n CoreModule,\n AssetSelectorModule,\n PopoverModule,\n TooltipModule,\n EcosystemModule,\n IconSelectorModule,\n PluginLoadedPipe,\n CockpitConfigurationComponent,\n CockpitSetupStep1Component,\n CockpitSetupStep2Component,\n CockpitSetupStep3Component,\n CockpitSetupStep4Component,\n FeatureConfigComponent,\n RootNodeConfigComponent,\n HomeDashboardConfigComponent,\n MiscConfigComponent,\n CockpitSetupStepperButtonsComponent\n ],\n providers: [\n CockpitConfigGuard,\n hookRoute({\n path: COCKPIT_CONFIG_PATH,\n component: CockpitConfigurationComponent,\n canActivate: [CockpitConfigGuard]\n }),\n hookNavigator(CockpitConfigGuard),\n hookStepper([\n {\n stepperId: Steppers.SETUP,\n component: CockpitSetupStep1Component,\n label: gettext('Title, icon, and navigator collapse'),\n setupId: 'cockpitMisc',\n priority: 40\n },\n {\n stepperId: Steppers.SETUP,\n component: CockpitSetupStep2Component,\n label: gettext('Features'),\n setupId: 'cockpitFeatures',\n priority: 30\n },\n {\n stepperId: Steppers.SETUP,\n component: CockpitSetupStep3Component,\n label: gettext('Top level nodes'),\n setupId: 'cockpitTopLevelNodes',\n priority: 20\n },\n {\n stepperId: Steppers.SETUP,\n component: CockpitSetupStep4Component,\n label: gettext('Home dashboard'),\n setupId: 'cockpitHomeDashboard',\n priority: 10\n }\n ] as SetupStep[])\n ]\n})\nexport class CockpitConfigModule {\n constructor(private service: CockpitConfigService) {\n // only for DI, not used but needed.\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.CockpitConfigService","i2","i4.CockpitConfigService"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Component } from '@angular/core';
3
3
  import { DASHBOARD_THEME_CLASSES, WIDGET_HEADER_CLASSES, ContextDashboardService, DashboardDetailService, AppearanceSettingsComponent } from './c8y-ngx-components-context-dashboard.mjs';
4
- import * as i6 from '@angular/forms';
4
+ import * as i5 from '@angular/forms';
5
5
  import { ReactiveFormsModule } from '@angular/forms';
6
6
  import * as i2 from '@c8y/ngx-components';
7
7
  import { CoreModule, C8yTranslatePipe } from '@c8y/ngx-components';
@@ -49,7 +49,7 @@ class DashboardAppearanceSettingsComponent {
49
49
  });
50
50
  }
51
51
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DashboardAppearanceSettingsComponent, deps: [{ token: ContextDashboardService }, { token: DashboardDetailService }], target: i0.ɵɵFactoryTarget.Component }); }
52
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: DashboardAppearanceSettingsComponent, isStandalone: true, selector: "c8y-dashboard-appearance-settings", ngImport: i0, template: "<div [formGroup]=\"appearanceSettingsForm\">\n <c8y-appearance-settings\n [themeClass]=\"styling.themeClass\"\n [headerClass]=\"styling.headerClass\"\n (themeClassChange)=\"changeThemeClass($event)\"\n (headerClassChange)=\"changeHeaderClass($event)\"\n [dashboardSettings]=\"true\"\n [columns]=\"3\"\n >\n <div class=\"col-md-4\">\n <fieldset class=\"c8y-fieldset c8y-fieldset--lg\">\n <legend translate>Misc</legend>\n <c8y-form-group>\n <label for=\"margin\">{{ 'Widget margin' | translate }}</label>\n <div class=\"input-group\">\n <input\n class=\"form-control\"\n id=\"margin\"\n placeholder=\"{{ DEFAULT_DASHBOARD_MARGIN }}\"\n name=\"margin\"\n type=\"number\"\n formControlName=\"widgetMargin\"\n />\n <span class=\"input-group-addon\">px</span>\n </div>\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Widget titles</label>\n <label\n class=\"c8y-checkbox\"\n title=\"{{ 'Translate if possible' | translate }}\"\n >\n <input\n name=\"translateWidgetTitle\"\n type=\"checkbox\"\n formControlName=\"translateWidgetTitle\"\n />\n <span></span>\n <span>{{ 'Translate if possible' | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n </div>\n </c8y-appearance-settings>\n</div>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i6.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: CoreModule }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: AppearanceSettingsComponent, selector: "c8y-appearance-settings", inputs: ["themeClass", "headerClass", "defaultThemeClass", "defaultHeaderClass", "dashboardSettings", "possibleStylingTheme", "possibleStylingHeader", "columns"], outputs: ["themeClassChange", "headerClassChange", "onChange"] }] }); }
52
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: DashboardAppearanceSettingsComponent, isStandalone: true, selector: "c8y-dashboard-appearance-settings", ngImport: i0, template: "<div [formGroup]=\"appearanceSettingsForm\">\n <c8y-appearance-settings\n [themeClass]=\"styling.themeClass\"\n [headerClass]=\"styling.headerClass\"\n (themeClassChange)=\"changeThemeClass($event)\"\n (headerClassChange)=\"changeHeaderClass($event)\"\n [dashboardSettings]=\"true\"\n [columns]=\"3\"\n >\n <div class=\"col-md-4\">\n <fieldset class=\"c8y-fieldset c8y-fieldset--lg\">\n <legend translate>Misc</legend>\n <c8y-form-group>\n <label for=\"margin\">{{ 'Widget margin' | translate }}</label>\n <div class=\"input-group\">\n <input\n class=\"form-control\"\n id=\"margin\"\n placeholder=\"{{ DEFAULT_DASHBOARD_MARGIN }}\"\n name=\"margin\"\n type=\"number\"\n formControlName=\"widgetMargin\"\n />\n <span class=\"input-group-addon\">px</span>\n </div>\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Widget titles</label>\n <label\n class=\"c8y-checkbox\"\n title=\"{{ 'Translate if possible' | translate }}\"\n >\n <input\n name=\"translateWidgetTitle\"\n type=\"checkbox\"\n formControlName=\"translateWidgetTitle\"\n />\n <span></span>\n <span>{{ 'Translate if possible' | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n </div>\n </c8y-appearance-settings>\n</div>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: CoreModule }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: AppearanceSettingsComponent, selector: "c8y-appearance-settings", inputs: ["themeClass", "headerClass", "defaultThemeClass", "defaultHeaderClass", "dashboardSettings", "possibleStylingTheme", "possibleStylingHeader", "columns"], outputs: ["themeClassChange", "headerClassChange", "onChange"] }] }); }
53
53
  }
54
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DashboardAppearanceSettingsComponent, decorators: [{
55
55
  type: Component,
@@ -57,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
57
57
  }], ctorParameters: () => [{ type: ContextDashboardService }, { type: DashboardDetailService }] });
58
58
 
59
59
  export { DashboardAppearanceSettingsComponent };
60
- //# sourceMappingURL=c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-B7m2lsIe.mjs.map
60
+ //# sourceMappingURL=c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-C-JLbcn5.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-B7m2lsIe.mjs","sources":["../../context-dashboard/dashboard-settings/dashboard-appearance-settings.component.ts","../../context-dashboard/dashboard-settings/dashboard-appearance-settings.component.html"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport {\n ContextDashboard,\n DASHBOARD_THEME_CLASSES,\n WIDGET_HEADER_CLASSES\n} from '../context-dashboard.model';\nimport { ContextDashboardService } from '../context-dashboard.service';\nimport { DashboardDetailService } from '../dashboard-detail.service';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { C8yTranslatePipe, CoreModule } from '@c8y/ngx-components';\nimport { AppearanceSettingsComponent } from '../widget-config/appearance-settings.component';\n\n@Component({\n selector: 'c8y-dashboard-appearance-settings',\n templateUrl: './dashboard-appearance-settings.component.html',\n standalone: true,\n imports: [ReactiveFormsModule, CoreModule, AppearanceSettingsComponent, C8yTranslatePipe]\n})\nexport class DashboardAppearanceSettingsComponent implements OnInit {\n dashboard: ContextDashboard;\n appearanceSettingsForm: DashboardDetailService['appearanceSettingsForm'];\n styling = {\n themeClass: 'dashboard-theme-light',\n headerClass: 'panel-title-regular'\n };\n\n readonly DEFAULT_DASHBOARD_MARGIN = 12;\n\n constructor(\n private contextDashboardService: ContextDashboardService,\n private dashboardDetailService: DashboardDetailService\n ) {}\n\n ngOnInit() {\n this.dashboard = this.dashboardDetailService.details.dashboard;\n this.appearanceSettingsForm = this.dashboardDetailService.appearanceSettingsForm;\n if (this.dashboard) {\n this.setDashboardStyle();\n }\n }\n\n changeThemeClass(themeClass: string) {\n this.styling.themeClass = themeClass;\n this.appearanceSettingsForm.get('classes').setValue({ [this.styling.themeClass]: true });\n this.dashboardDetailService.previewChangedFn({ classes: { [this.styling.themeClass]: true } });\n this.appearanceSettingsForm.markAsDirty();\n }\n\n changeHeaderClass(headerClass: string) {\n this.styling.headerClass = headerClass;\n this.appearanceSettingsForm.get('widgetClasses').setValue({ [this.styling.headerClass]: true });\n this.dashboardDetailService.previewChangedFn({\n widgetClasses: { [this.styling.headerClass]: true }\n });\n this.appearanceSettingsForm.markAsDirty();\n }\n\n private setDashboardStyle() {\n const allClasses = {\n ...this.appearanceSettingsForm.get('classes').value,\n ...this.appearanceSettingsForm.get('widgetClasses').value\n };\n\n const styles = Object.keys(allClasses).map(c => c.split('-').pop());\n styles.forEach(styleName => {\n this.styling.themeClass = this.contextDashboardService.getStyling(\n DASHBOARD_THEME_CLASSES,\n styleName,\n this.styling.themeClass\n );\n this.styling.headerClass = this.contextDashboardService.getStyling(\n WIDGET_HEADER_CLASSES,\n styleName,\n this.styling.headerClass\n );\n });\n }\n}\n","<div [formGroup]=\"appearanceSettingsForm\">\n <c8y-appearance-settings\n [themeClass]=\"styling.themeClass\"\n [headerClass]=\"styling.headerClass\"\n (themeClassChange)=\"changeThemeClass($event)\"\n (headerClassChange)=\"changeHeaderClass($event)\"\n [dashboardSettings]=\"true\"\n [columns]=\"3\"\n >\n <div class=\"col-md-4\">\n <fieldset class=\"c8y-fieldset c8y-fieldset--lg\">\n <legend translate>Misc</legend>\n <c8y-form-group>\n <label for=\"margin\">{{ 'Widget margin' | translate }}</label>\n <div class=\"input-group\">\n <input\n class=\"form-control\"\n id=\"margin\"\n placeholder=\"{{ DEFAULT_DASHBOARD_MARGIN }}\"\n name=\"margin\"\n type=\"number\"\n formControlName=\"widgetMargin\"\n />\n <span class=\"input-group-addon\">px</span>\n </div>\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Widget titles</label>\n <label\n class=\"c8y-checkbox\"\n title=\"{{ 'Translate if possible' | translate }}\"\n >\n <input\n name=\"translateWidgetTitle\"\n type=\"checkbox\"\n formControlName=\"translateWidgetTitle\"\n />\n <span></span>\n <span>{{ 'Translate if possible' | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n </div>\n </c8y-appearance-settings>\n</div>\n"],"names":["i1.ContextDashboardService","i2.DashboardDetailService","i3"],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-C-JLbcn5.mjs","sources":["../../context-dashboard/dashboard-settings/dashboard-appearance-settings.component.ts","../../context-dashboard/dashboard-settings/dashboard-appearance-settings.component.html"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport {\n ContextDashboard,\n DASHBOARD_THEME_CLASSES,\n WIDGET_HEADER_CLASSES\n} from '../context-dashboard.model';\nimport { ContextDashboardService } from '../context-dashboard.service';\nimport { DashboardDetailService } from '../dashboard-detail.service';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { C8yTranslatePipe, CoreModule } from '@c8y/ngx-components';\nimport { AppearanceSettingsComponent } from '../widget-config/appearance-settings.component';\n\n@Component({\n selector: 'c8y-dashboard-appearance-settings',\n templateUrl: './dashboard-appearance-settings.component.html',\n standalone: true,\n imports: [ReactiveFormsModule, CoreModule, AppearanceSettingsComponent, C8yTranslatePipe]\n})\nexport class DashboardAppearanceSettingsComponent implements OnInit {\n dashboard: ContextDashboard;\n appearanceSettingsForm: DashboardDetailService['appearanceSettingsForm'];\n styling = {\n themeClass: 'dashboard-theme-light',\n headerClass: 'panel-title-regular'\n };\n\n readonly DEFAULT_DASHBOARD_MARGIN = 12;\n\n constructor(\n private contextDashboardService: ContextDashboardService,\n private dashboardDetailService: DashboardDetailService\n ) {}\n\n ngOnInit() {\n this.dashboard = this.dashboardDetailService.details.dashboard;\n this.appearanceSettingsForm = this.dashboardDetailService.appearanceSettingsForm;\n if (this.dashboard) {\n this.setDashboardStyle();\n }\n }\n\n changeThemeClass(themeClass: string) {\n this.styling.themeClass = themeClass;\n this.appearanceSettingsForm.get('classes').setValue({ [this.styling.themeClass]: true });\n this.dashboardDetailService.previewChangedFn({ classes: { [this.styling.themeClass]: true } });\n this.appearanceSettingsForm.markAsDirty();\n }\n\n changeHeaderClass(headerClass: string) {\n this.styling.headerClass = headerClass;\n this.appearanceSettingsForm.get('widgetClasses').setValue({ [this.styling.headerClass]: true });\n this.dashboardDetailService.previewChangedFn({\n widgetClasses: { [this.styling.headerClass]: true }\n });\n this.appearanceSettingsForm.markAsDirty();\n }\n\n private setDashboardStyle() {\n const allClasses = {\n ...this.appearanceSettingsForm.get('classes').value,\n ...this.appearanceSettingsForm.get('widgetClasses').value\n };\n\n const styles = Object.keys(allClasses).map(c => c.split('-').pop());\n styles.forEach(styleName => {\n this.styling.themeClass = this.contextDashboardService.getStyling(\n DASHBOARD_THEME_CLASSES,\n styleName,\n this.styling.themeClass\n );\n this.styling.headerClass = this.contextDashboardService.getStyling(\n WIDGET_HEADER_CLASSES,\n styleName,\n this.styling.headerClass\n );\n });\n }\n}\n","<div [formGroup]=\"appearanceSettingsForm\">\n <c8y-appearance-settings\n [themeClass]=\"styling.themeClass\"\n [headerClass]=\"styling.headerClass\"\n (themeClassChange)=\"changeThemeClass($event)\"\n (headerClassChange)=\"changeHeaderClass($event)\"\n [dashboardSettings]=\"true\"\n [columns]=\"3\"\n >\n <div class=\"col-md-4\">\n <fieldset class=\"c8y-fieldset c8y-fieldset--lg\">\n <legend translate>Misc</legend>\n <c8y-form-group>\n <label for=\"margin\">{{ 'Widget margin' | translate }}</label>\n <div class=\"input-group\">\n <input\n class=\"form-control\"\n id=\"margin\"\n placeholder=\"{{ DEFAULT_DASHBOARD_MARGIN }}\"\n name=\"margin\"\n type=\"number\"\n formControlName=\"widgetMargin\"\n />\n <span class=\"input-group-addon\">px</span>\n </div>\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Widget titles</label>\n <label\n class=\"c8y-checkbox\"\n title=\"{{ 'Translate if possible' | translate }}\"\n >\n <input\n name=\"translateWidgetTitle\"\n type=\"checkbox\"\n formControlName=\"translateWidgetTitle\"\n />\n <span></span>\n <span>{{ 'Translate if possible' | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n </div>\n </c8y-appearance-settings>\n</div>\n"],"names":["i1.ContextDashboardService","i2.DashboardDetailService","i3"],"mappings":";;;;;;;;MAkBa,oCAAoC,CAAA;IAU/C,WACU,CAAA,uBAAgD,EAChD,sBAA8C,EAAA;QAD9C,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB;QACvB,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB;AAThC,QAAA,IAAA,CAAA,OAAO,GAAG;AACR,YAAA,UAAU,EAAE,uBAAuB;AACnC,YAAA,WAAW,EAAE;SACd;QAEQ,IAAwB,CAAA,wBAAA,GAAG,EAAE;;IAOtC,QAAQ,GAAA;QACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,SAAS;QAC9D,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,sBAAsB;AAChF,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,iBAAiB,EAAE;;;AAI5B,IAAA,gBAAgB,CAAC,UAAkB,EAAA;AACjC,QAAA,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,UAAU;QACpC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,EAAE,CAAC;QACxF,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,EAAE,EAAE,CAAC;AAC9F,QAAA,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE;;AAG3C,IAAA,iBAAiB,CAAC,WAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,WAAW;QACtC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,EAAE,CAAC;AAC/F,QAAA,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC;YAC3C,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI;AAClD,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE;;IAGnC,iBAAiB,GAAA;AACvB,QAAA,MAAM,UAAU,GAAG;YACjB,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK;YACnD,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;SACrD;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;AACnE,QAAA,MAAM,CAAC,OAAO,CAAC,SAAS,IAAG;YACzB,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAC/D,uBAAuB,EACvB,SAAS,EACT,IAAI,CAAC,OAAO,CAAC,UAAU,CACxB;YACD,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAChE,qBAAqB,EACrB,SAAS,EACT,IAAI,CAAC,OAAO,CAAC,WAAW,CACzB;AACH,SAAC,CAAC;;+GAzDO,oCAAoC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oCAAoC,6FClBjD,6hDA8CA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED9BY,mBAAmB,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,UAAU,mdAAE,2BAA2B,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,mBAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAE3D,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBANhD,SAAS;+BACE,mCAAmC,EAAA,UAAA,EAEjC,IAAI,EAAA,OAAA,EACP,CAAC,mBAAmB,EAAE,UAAU,EAAE,2BAA2B,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,6hDAAA,EAAA;;;;;"}