@c8y/ngx-components 1023.75.1 → 1023.77.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/asset-properties/index.d.ts +63 -0
  2. package/asset-properties/index.d.ts.map +1 -1
  3. package/assets-navigator/index.d.ts +4 -0
  4. package/assets-navigator/index.d.ts.map +1 -1
  5. package/fesm2022/c8y-ngx-components-actility-device-registration.mjs +16 -16
  6. package/fesm2022/c8y-ngx-components-advanced-software-management.mjs +7 -7
  7. package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs +12 -12
  8. package/fesm2022/c8y-ngx-components-ai-ai-chat.mjs +21 -21
  9. package/fesm2022/c8y-ngx-components-ai.mjs +3 -3
  10. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +40 -40
  11. package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs +4 -4
  12. package/fesm2022/c8y-ngx-components-alarms-devicemanagement.mjs +3 -3
  13. package/fesm2022/c8y-ngx-components-alarms.mjs +82 -82
  14. package/fesm2022/c8y-ngx-components-api.mjs +7 -7
  15. package/fesm2022/c8y-ngx-components-app-logs.mjs +10 -10
  16. package/fesm2022/c8y-ngx-components-application-access-list.mjs +12 -12
  17. package/fesm2022/c8y-ngx-components-application-access-user-application-access-user-details-wrapper.mjs +3 -3
  18. package/fesm2022/c8y-ngx-components-asset-properties.mjs +221 -69
  19. package/fesm2022/c8y-ngx-components-asset-properties.mjs.map +1 -1
  20. package/fesm2022/{c8y-ngx-components-asset-property-grid.component-CEphJoqx.mjs → c8y-ngx-components-asset-property-grid.component-BJOPTjF1.mjs} +13 -13
  21. package/fesm2022/{c8y-ngx-components-asset-property-grid.component-CEphJoqx.mjs.map → c8y-ngx-components-asset-property-grid.component-BJOPTjF1.mjs.map} +1 -1
  22. package/fesm2022/c8y-ngx-components-assets-navigator.mjs +36 -32
  23. package/fesm2022/c8y-ngx-components-assets-navigator.mjs.map +1 -1
  24. package/fesm2022/c8y-ngx-components-auth-configuration.mjs +120 -120
  25. package/fesm2022/c8y-ngx-components-binary-file-download.mjs +7 -7
  26. package/fesm2022/c8y-ngx-components-bookmarks.mjs +13 -13
  27. package/fesm2022/c8y-ngx-components-branding-base-branding.mjs +4 -4
  28. package/fesm2022/c8y-ngx-components-branding-dark-theme.mjs +7 -7
  29. package/fesm2022/c8y-ngx-components-branding-extra-css-branding-editor.mjs +7 -7
  30. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor-lazy.mjs +3 -3
  31. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs +8 -8
  32. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs.map +1 -1
  33. package/fesm2022/c8y-ngx-components-branding-shared-data.mjs +15 -15
  34. package/fesm2022/c8y-ngx-components-branding-shared-lazy-add-branding-modal.mjs +6 -6
  35. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +36 -36
  36. package/fesm2022/c8y-ngx-components-branding-shared.mjs +13 -13
  37. package/fesm2022/c8y-ngx-components-child-devices.mjs +13 -13
  38. package/fesm2022/c8y-ngx-components-cockpit-config.mjs +40 -40
  39. package/fesm2022/{c8y-ngx-components-computed-asset-properties-alarm-count-config.component-DX9Rgjgl.mjs → c8y-ngx-components-computed-asset-properties-alarm-count-config.component-tP8yUdy3.mjs} +4 -4
  40. package/fesm2022/{c8y-ngx-components-computed-asset-properties-alarm-count-config.component-DX9Rgjgl.mjs.map → c8y-ngx-components-computed-asset-properties-alarm-count-config.component-tP8yUdy3.mjs.map} +1 -1
  41. package/fesm2022/{c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-CRpLJ5H7.mjs → c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-wNQ45CJ1.mjs} +11 -11
  42. package/fesm2022/{c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-CRpLJ5H7.mjs.map → c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-wNQ45CJ1.mjs.map} +1 -1
  43. package/fesm2022/{c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-2rDsrxcs.mjs → c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-BrYcCHYL.mjs} +4 -4
  44. package/fesm2022/{c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-2rDsrxcs.mjs.map → c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-BrYcCHYL.mjs.map} +1 -1
  45. package/fesm2022/{c8y-ngx-components-computed-asset-properties-event-count-config.component-BJNoqWZf.mjs → c8y-ngx-components-computed-asset-properties-event-count-config.component-BBKuA2rZ.mjs} +4 -4
  46. package/fesm2022/{c8y-ngx-components-computed-asset-properties-event-count-config.component-BJNoqWZf.mjs.map → c8y-ngx-components-computed-asset-properties-event-count-config.component-BBKuA2rZ.mjs.map} +1 -1
  47. package/fesm2022/{c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-DYac6foX.mjs → c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-uEdtPWC0.mjs} +5 -5
  48. package/fesm2022/{c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-DYac6foX.mjs.map → c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-uEdtPWC0.mjs.map} +1 -1
  49. package/fesm2022/{c8y-ngx-components-computed-asset-properties-last-measurement-config.component-3yTe6lIr.mjs → c8y-ngx-components-computed-asset-properties-last-measurement-config.component-BGhex-OP.mjs} +5 -5
  50. package/fesm2022/{c8y-ngx-components-computed-asset-properties-last-measurement-config.component-3yTe6lIr.mjs.map → c8y-ngx-components-computed-asset-properties-last-measurement-config.component-BGhex-OP.mjs.map} +1 -1
  51. package/fesm2022/c8y-ngx-components-computed-asset-properties.mjs +1 -1
  52. package/fesm2022/c8y-ngx-components-connectivity.mjs +53 -53
  53. package/fesm2022/c8y-ngx-components-context-dashboard-asset-add.mjs +10 -10
  54. package/fesm2022/c8y-ngx-components-context-dashboard-asset-view.mjs +7 -7
  55. package/fesm2022/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.mjs +11 -11
  56. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-C7yXSDYC.mjs → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BkwPfkeK.mjs} +4 -4
  57. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-C7yXSDYC.mjs.map → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BkwPfkeK.mjs.map} +1 -1
  58. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-w8N16Z3t.mjs → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-4aO0U4qs.mjs} +10 -10
  59. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-w8N16Z3t.mjs.map → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-4aO0U4qs.mjs.map} +1 -1
  60. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component--1OYYpR2.mjs → c8y-ngx-components-context-dashboard-dashboard-version-history.component-1xx4pGiq.mjs} +4 -4
  61. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component--1OYYpR2.mjs.map → c8y-ngx-components-context-dashboard-dashboard-version-history.component-1xx4pGiq.mjs.map} +1 -1
  62. package/fesm2022/c8y-ngx-components-context-dashboard-device-add.mjs +10 -10
  63. package/fesm2022/c8y-ngx-components-context-dashboard-device-view.mjs +7 -7
  64. package/fesm2022/c8y-ngx-components-context-dashboard-devicemanagement.mjs +3 -3
  65. package/fesm2022/c8y-ngx-components-context-dashboard-state.mjs +3 -3
  66. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +108 -108
  67. package/fesm2022/{c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-Cek3_qZQ.mjs → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-DFytXNdc.mjs} +17 -17
  68. package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-DFytXNdc.mjs.map +1 -0
  69. package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab.mjs +12 -12
  70. package/fesm2022/c8y-ngx-components-dashboard-manager-devicemanagement.mjs +6 -6
  71. package/fesm2022/c8y-ngx-components-dashboard-manager.mjs +22 -22
  72. package/fesm2022/c8y-ngx-components-data-broker.mjs +7 -7
  73. package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs +3 -3
  74. package/fesm2022/c8y-ngx-components-data-grid-columns.mjs +3 -3
  75. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +24 -24
  76. package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs +13 -13
  77. package/fesm2022/c8y-ngx-components-datapoint-library-details.mjs +3 -3
  78. package/fesm2022/c8y-ngx-components-datapoint-library-list.mjs +3 -3
  79. package/fesm2022/c8y-ngx-components-datapoint-library-services.mjs +3 -3
  80. package/fesm2022/c8y-ngx-components-datapoint-library.mjs +4 -4
  81. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +43 -43
  82. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs +36 -36
  83. package/fesm2022/c8y-ngx-components-default-subscriptions.mjs +16 -16
  84. package/fesm2022/c8y-ngx-components-device-enrolment-modal.mjs +9 -9
  85. package/fesm2022/c8y-ngx-components-device-enrolment.mjs +6 -6
  86. package/fesm2022/c8y-ngx-components-device-grid.mjs +43 -43
  87. package/fesm2022/c8y-ngx-components-device-list.mjs +22 -22
  88. package/fesm2022/c8y-ngx-components-device-map.mjs +12 -12
  89. package/fesm2022/c8y-ngx-components-device-profile.mjs +34 -34
  90. package/fesm2022/c8y-ngx-components-device-protocol-object-mappings.mjs +3 -3
  91. package/fesm2022/c8y-ngx-components-device-protocols.mjs +16 -16
  92. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +13 -13
  93. package/fesm2022/c8y-ngx-components-device-shell.mjs +31 -31
  94. package/fesm2022/c8y-ngx-components-diagnostics.mjs +13 -13
  95. package/fesm2022/c8y-ngx-components-echart.mjs +30 -30
  96. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +43 -43
  97. package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs +7 -7
  98. package/fesm2022/c8y-ngx-components-ecosystem-license-confirm.mjs +10 -10
  99. package/fesm2022/c8y-ngx-components-ecosystem-plugin-setup-stepper.mjs +7 -7
  100. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +46 -46
  101. package/fesm2022/c8y-ngx-components-ecosystem.mjs +82 -82
  102. package/fesm2022/c8y-ngx-components-editor.mjs +6 -6
  103. package/fesm2022/c8y-ngx-components-events-events-timeline.mjs +3 -3
  104. package/fesm2022/c8y-ngx-components-events.mjs +33 -33
  105. package/fesm2022/c8y-ngx-components-exports-list.mjs +6 -6
  106. package/fesm2022/c8y-ngx-components-feature-toggles-list.mjs +6 -6
  107. package/fesm2022/c8y-ngx-components-file-preview.mjs +7 -7
  108. package/fesm2022/c8y-ngx-components-files-repository.mjs +19 -19
  109. package/fesm2022/c8y-ngx-components-global-context.mjs +170 -148
  110. package/fesm2022/c8y-ngx-components-global-context.mjs.map +1 -1
  111. package/fesm2022/c8y-ngx-components-group-breadcrumbs.mjs +6 -6
  112. package/fesm2022/c8y-ngx-components-icon-selector.mjs +19 -19
  113. package/fesm2022/c8y-ngx-components-interval-picker.mjs +3 -3
  114. package/fesm2022/c8y-ngx-components-location.mjs +28 -28
  115. package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs +16 -16
  116. package/fesm2022/c8y-ngx-components-map.mjs +39 -51
  117. package/fesm2022/c8y-ngx-components-map.mjs.map +1 -1
  118. package/fesm2022/c8y-ngx-components-messaging-management.mjs +55 -55
  119. package/fesm2022/c8y-ngx-components-operation-picker.mjs +9 -9
  120. package/fesm2022/c8y-ngx-components-operations-bulk-operation-from-single.mjs +7 -7
  121. package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs +19 -19
  122. package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs +7 -7
  123. package/fesm2022/c8y-ngx-components-operations-bulk-operation-stepper.mjs +13 -13
  124. package/fesm2022/c8y-ngx-components-operations-bulk-operations-list.mjs +13 -13
  125. package/fesm2022/c8y-ngx-components-operations-bulk-operations-service.mjs +7 -7
  126. package/fesm2022/c8y-ngx-components-operations-bulk-operations-stepper-container.mjs +7 -7
  127. package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs +3 -3
  128. package/fesm2022/c8y-ngx-components-operations-create-bulk-operation-details.mjs +7 -7
  129. package/fesm2022/c8y-ngx-components-operations-device-selector.mjs +7 -7
  130. package/fesm2022/c8y-ngx-components-operations-grid-columns.mjs +12 -12
  131. package/fesm2022/c8y-ngx-components-operations-operation-details.mjs +13 -13
  132. package/fesm2022/c8y-ngx-components-operations-operation-summary.mjs +7 -7
  133. package/fesm2022/c8y-ngx-components-operations-operations-list-item-details.mjs +10 -10
  134. package/fesm2022/c8y-ngx-components-operations-operations-list.mjs +12 -12
  135. package/fesm2022/c8y-ngx-components-operations-operations-timeline.mjs +7 -7
  136. package/fesm2022/c8y-ngx-components-operations-shared.mjs +10 -10
  137. package/fesm2022/c8y-ngx-components-operations-status-filter.mjs +7 -7
  138. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-configuration.mjs +7 -7
  139. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-device-profile.mjs +13 -13
  140. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-firmware.mjs +13 -13
  141. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-software.mjs +13 -13
  142. package/fesm2022/c8y-ngx-components-operations-stepper-frames.mjs +13 -13
  143. package/fesm2022/c8y-ngx-components-operations.mjs +7 -7
  144. package/fesm2022/c8y-ngx-components-pending-mo-request.mjs +7 -7
  145. package/fesm2022/c8y-ngx-components-platform-configuration.mjs +10 -10
  146. package/fesm2022/c8y-ngx-components-protocol-lpwan.mjs +38 -38
  147. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +58 -58
  148. package/fesm2022/c8y-ngx-components-register-device.mjs +58 -58
  149. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +9 -9
  150. package/fesm2022/c8y-ngx-components-remote-access-data.mjs +3 -3
  151. package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs +3 -3
  152. package/fesm2022/c8y-ngx-components-remote-access-shared.mjs +6 -6
  153. package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +3 -3
  154. package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs +3 -3
  155. package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs +3 -3
  156. package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs +3 -3
  157. package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +3 -3
  158. package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +6 -6
  159. package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs +3 -3
  160. package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs +6 -6
  161. package/fesm2022/c8y-ngx-components-replace-device.mjs +10 -10
  162. package/fesm2022/c8y-ngx-components-report-dashboard.mjs +16 -16
  163. package/fesm2022/c8y-ngx-components-reports.mjs +19 -19
  164. package/fesm2022/c8y-ngx-components-repository-configuration.mjs +48 -48
  165. package/fesm2022/c8y-ngx-components-repository-firmware.mjs +33 -33
  166. package/fesm2022/c8y-ngx-components-repository-shared.mjs +34 -34
  167. package/fesm2022/c8y-ngx-components-repository-software.mjs +42 -42
  168. package/fesm2022/c8y-ngx-components-repository.mjs +4 -4
  169. package/fesm2022/c8y-ngx-components-search.mjs +19 -19
  170. package/fesm2022/c8y-ngx-components-sensor-phone-sensor-phone-modal.mjs +6 -6
  171. package/fesm2022/c8y-ngx-components-sensor-phone.mjs +7 -7
  172. package/fesm2022/c8y-ngx-components-services-service-command-tab.mjs +3 -3
  173. package/fesm2022/c8y-ngx-components-services-shared.mjs +3 -3
  174. package/fesm2022/c8y-ngx-components-services.mjs +29 -29
  175. package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs +16 -16
  176. package/fesm2022/c8y-ngx-components-sms-gateway.mjs +7 -7
  177. package/fesm2022/c8y-ngx-components-static-assets-data.mjs +3 -3
  178. package/fesm2022/c8y-ngx-components-static-assets-modal.mjs +9 -9
  179. package/fesm2022/c8y-ngx-components-static-assets.mjs +6 -6
  180. package/fesm2022/c8y-ngx-components-sub-assets.mjs +64 -60
  181. package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
  182. package/fesm2022/c8y-ngx-components-tenants.mjs +40 -40
  183. package/fesm2022/c8y-ngx-components-time-context.mjs +6 -6
  184. package/fesm2022/c8y-ngx-components-tracking.mjs +12 -12
  185. package/fesm2022/c8y-ngx-components-translation-editor-data.mjs +3 -3
  186. package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs +12 -12
  187. package/fesm2022/c8y-ngx-components-translation-editor.mjs +6 -6
  188. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +33 -33
  189. package/fesm2022/c8y-ngx-components-upgrade-upgraded-services.mjs +4 -4
  190. package/fesm2022/c8y-ngx-components-upgrade.mjs +41 -41
  191. package/fesm2022/c8y-ngx-components-user-roles.mjs +10 -10
  192. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs +1 -1
  193. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs.map +1 -1
  194. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-all-critical-alarms.mjs +4 -5
  195. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-all-critical-alarms.mjs.map +1 -1
  196. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-recent-alarms.mjs +4 -5
  197. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-recent-alarms.mjs.map +1 -1
  198. package/fesm2022/c8y-ngx-components-widgets-definitions-asset-notes.mjs +1 -1
  199. package/fesm2022/c8y-ngx-components-widgets-definitions-asset-notes.mjs.map +1 -1
  200. package/fesm2022/c8y-ngx-components-widgets-definitions-asset-table.mjs +7 -7
  201. package/fesm2022/c8y-ngx-components-widgets-definitions-asset-table.mjs.map +1 -1
  202. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs +4 -4
  203. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs.map +1 -1
  204. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs +1 -1
  205. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs.map +1 -1
  206. package/fesm2022/c8y-ngx-components-widgets-definitions-device-control-message.mjs +1 -1
  207. package/fesm2022/c8y-ngx-components-widgets-definitions-device-control-message.mjs.map +1 -1
  208. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget-ai-config.mjs +3 -3
  209. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs +7 -7
  210. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs.map +1 -1
  211. package/fesm2022/c8y-ngx-components-widgets-definitions-image.mjs +1 -1
  212. package/fesm2022/c8y-ngx-components-widgets-definitions-image.mjs.map +1 -1
  213. package/fesm2022/c8y-ngx-components-widgets-definitions-info-gauge.mjs +1 -1
  214. package/fesm2022/c8y-ngx-components-widgets-definitions-info-gauge.mjs.map +1 -1
  215. package/fesm2022/c8y-ngx-components-widgets-definitions-kpi.mjs +1 -1
  216. package/fesm2022/c8y-ngx-components-widgets-definitions-kpi.mjs.map +1 -1
  217. package/fesm2022/c8y-ngx-components-widgets-definitions-linear-gauge.mjs +1 -1
  218. package/fesm2022/c8y-ngx-components-widgets-definitions-linear-gauge.mjs.map +1 -1
  219. package/fesm2022/c8y-ngx-components-widgets-definitions-map.mjs +1 -1
  220. package/fesm2022/c8y-ngx-components-widgets-definitions-map.mjs.map +1 -1
  221. package/fesm2022/c8y-ngx-components-widgets-definitions-markdown.mjs +1 -1
  222. package/fesm2022/c8y-ngx-components-widgets-definitions-markdown.mjs.map +1 -1
  223. package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs +1 -1
  224. package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs.map +1 -1
  225. package/fesm2022/c8y-ngx-components-widgets-definitions-silo.mjs +1 -1
  226. package/fesm2022/c8y-ngx-components-widgets-definitions-silo.mjs.map +1 -1
  227. package/fesm2022/c8y-ngx-components-widgets-definitions-three-d-rotation.mjs +1 -1
  228. package/fesm2022/c8y-ngx-components-widgets-definitions-three-d-rotation.mjs.map +1 -1
  229. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +85 -78
  230. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
  231. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-notes.mjs +3 -3
  232. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-table.mjs +111 -40
  233. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-table.mjs.map +1 -1
  234. package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-legacy-welcome.mjs +3 -3
  235. package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs +3 -3
  236. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +6 -6
  237. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-list.mjs +12 -12
  238. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +21 -21
  239. package/fesm2022/c8y-ngx-components-widgets-implementations-device-control-message.mjs +3 -3
  240. package/fesm2022/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs +10 -10
  241. package/fesm2022/c8y-ngx-components-widgets-implementations-events.mjs +6 -6
  242. package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs +3 -3
  243. package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs +24 -24
  244. package/fesm2022/c8y-ngx-components-widgets-implementations-image.mjs +9 -9
  245. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +19 -19
  246. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs.map +1 -1
  247. package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs +6 -6
  248. package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs +6 -6
  249. package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs +9 -9
  250. package/fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs +9 -9
  251. package/fesm2022/c8y-ngx-components-widgets-implementations-pie-chart.mjs +9 -9
  252. package/fesm2022/c8y-ngx-components-widgets-implementations-quick-links.mjs +18 -18
  253. package/fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation.mjs +9 -9
  254. package/fesm2022/c8y-ngx-components.mjs +1524 -1536
  255. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  256. package/global-context/index.d.ts +87 -1
  257. package/global-context/index.d.ts.map +1 -1
  258. package/index.d.ts +10 -4
  259. package/index.d.ts.map +1 -1
  260. package/locales/de.po +3 -0
  261. package/locales/es.po +3 -0
  262. package/locales/fr.po +3 -0
  263. package/locales/ja_JP.po +3 -0
  264. package/locales/ko.po +3 -0
  265. package/locales/locales.pot +3 -6
  266. package/locales/nl.po +3 -0
  267. package/locales/pl.po +3 -0
  268. package/locales/pt_BR.po +3 -0
  269. package/locales/zh_CN.po +3 -0
  270. package/locales/zh_TW.po +3 -0
  271. package/map/index.d.ts +12 -1
  272. package/map/index.d.ts.map +1 -1
  273. package/package.json +1 -1
  274. package/sub-assets/index.d.ts +4 -0
  275. package/sub-assets/index.d.ts.map +1 -1
  276. package/widgets/definitions/alarms/all-critical-alarms/index.d.ts +1 -2
  277. package/widgets/definitions/alarms/all-critical-alarms/index.d.ts.map +1 -1
  278. package/widgets/definitions/alarms/recent-alarms/index.d.ts +1 -2
  279. package/widgets/definitions/alarms/recent-alarms/index.d.ts.map +1 -1
  280. package/widgets/implementations/alarms/index.d.ts +6 -1
  281. package/widgets/implementations/alarms/index.d.ts.map +1 -1
  282. package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-Cek3_qZQ.mjs.map +0 -1
@@ -85,10 +85,10 @@ class CockpitConfigGuard {
85
85
  return (this.permissions.hasRole(Permissions.ROLE_APPLICATION_MANAGEMENT_ADMIN) &&
86
86
  this.ecosystemService.isOwner(this.appState.currentApplication.value));
87
87
  }
88
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CockpitConfigGuard, deps: [{ token: i1.Permissions }, { token: i1.AppStateService }, { token: i2.EcosystemService }], target: i0.ɵɵFactoryTarget.Injectable }); }
89
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CockpitConfigGuard, providedIn: 'root' }); }
88
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CockpitConfigGuard, deps: [{ token: i1.Permissions }, { token: i1.AppStateService }, { token: i2.EcosystemService }], target: i0.ɵɵFactoryTarget.Injectable }); }
89
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CockpitConfigGuard, providedIn: 'root' }); }
90
90
  }
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CockpitConfigGuard, decorators: [{
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CockpitConfigGuard, decorators: [{
92
92
  type: Injectable,
93
93
  args: [{
94
94
  providedIn: 'root'
@@ -260,10 +260,10 @@ class CockpitConfigService {
260
260
  });
261
261
  });
262
262
  }
263
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CockpitConfigService, deps: [{ token: i1.NavigatorService }, { token: i1.TabsService }, { token: i1.SearchService }, { token: i2$1.AssetNodeService }, { token: i3.InventoryService }, { token: i1.AppStateService }, { token: i3.ApplicationService }, { token: i1.OptionsService }, { token: i1.Permissions }, { token: ASSET_NAVIGATOR_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
264
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CockpitConfigService, providedIn: 'root' }); }
263
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CockpitConfigService, deps: [{ token: i1.NavigatorService }, { token: i1.TabsService }, { token: i1.SearchService }, { token: i2$1.AssetNodeService }, { token: i3.InventoryService }, { token: i1.AppStateService }, { token: i3.ApplicationService }, { token: i1.OptionsService }, { token: i1.Permissions }, { token: ASSET_NAVIGATOR_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
264
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CockpitConfigService, providedIn: 'root' }); }
265
265
  }
266
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CockpitConfigService, decorators: [{
266
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CockpitConfigService, decorators: [{
267
267
  type: Injectable,
268
268
  args: [{
269
269
  providedIn: 'root'
@@ -276,10 +276,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
276
276
  }] }] });
277
277
 
278
278
  class MiscConfigComponent {
279
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: MiscConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
280
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: MiscConfigComponent, isStandalone: true, selector: "c8y-misc-config", inputs: { config: "config" }, ngImport: i0, template: "<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", dependencies: [{ kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "ngmodule", type: FormsModule }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
279
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: MiscConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
280
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: MiscConfigComponent, isStandalone: true, selector: "c8y-misc-config", inputs: { config: "config" }, ngImport: i0, template: "<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", dependencies: [{ kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "ngmodule", type: FormsModule }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
281
281
  }
282
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: MiscConfigComponent, decorators: [{
282
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: MiscConfigComponent, decorators: [{
283
283
  type: Component,
284
284
  args: [{ selector: 'c8y-misc-config', imports: [ListGroupComponent, ListItemComponent, FormsModule, C8yTranslatePipe], template: "<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" }]
285
285
  }], propDecorators: { config: [{
@@ -294,10 +294,10 @@ class FeatureConfigComponent {
294
294
  updateFeatures() {
295
295
  this.onUpdate.emit();
296
296
  }
297
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: FeatureConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
298
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: FeatureConfigComponent, isStandalone: true, selector: "c8y-feature-config", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onUpdate: "onUpdate" }, ngImport: i0, template: "<c8y-list-group>\n @if ('SearchModule' | c8yPluginLoaded | async) {\n <c8y-li data-cy=\"feature-config--feature-list\">\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 }\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 @if ('CockpitAlarmsModule' | c8yPluginLoaded | async) {\n <c8y-li data-cy=\"feature-config--feature-list\">\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 }\n @if ('eventsCockpitProviders' | c8yPluginLoaded | async) {\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"online1\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Events' | translate }}</p>\n <p>\n <small translate>Display a link to the global events 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 Events view' | translate }}\"\n >\n <input\n name=\"events\"\n type=\"checkbox\"\n [(ngModel)]=\"config().features.events\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n }\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 @if ('ReportDashboardModule' | c8yPluginLoaded | async) {\n <c8y-li data-cy=\"feature-config--feature-list\">\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 }\n @if ('exportsProviders' | c8yPluginLoaded | async) {\n <c8y-li data-cy=\"feature-config--feature-list\">\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 }\n @if ('DatapointLibraryModule' | c8yPluginLoaded | async) {\n <c8y-li data-cy=\"feature-config--feature-list\">\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 }\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 @if ('DashboardManagerModule' | c8yPluginLoaded | async) {\n <c8y-li data-cy=\"feature-config--feature-list\">\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 }\n</c8y-list-group>\n", dependencies: [{ kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "ngmodule", type: FormsModule }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: PluginLoadedPipe, name: "c8yPluginLoaded" }] }); }
297
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: FeatureConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
298
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: FeatureConfigComponent, isStandalone: true, selector: "c8y-feature-config", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onUpdate: "onUpdate" }, ngImport: i0, template: "<c8y-list-group>\n @if ('SearchModule' | c8yPluginLoaded | async) {\n <c8y-li data-cy=\"feature-config--feature-list\">\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 }\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 @if ('CockpitAlarmsModule' | c8yPluginLoaded | async) {\n <c8y-li data-cy=\"feature-config--feature-list\">\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 }\n @if ('eventsCockpitProviders' | c8yPluginLoaded | async) {\n <c8y-li data-cy=\"feature-config--feature-list\">\n <c8y-li-icon icon=\"online1\"></c8y-li-icon>\n <div class=\"d-flex a-i-center\">\n <div>\n <p>{{ 'Events' | translate }}</p>\n <p>\n <small translate>Display a link to the global events 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 Events view' | translate }}\"\n >\n <input\n name=\"events\"\n type=\"checkbox\"\n [(ngModel)]=\"config().features.events\"\n (change)=\"updateFeatures()\"\n />\n <span></span>\n </label>\n </div>\n </c8y-li>\n }\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 @if ('ReportDashboardModule' | c8yPluginLoaded | async) {\n <c8y-li data-cy=\"feature-config--feature-list\">\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 }\n @if ('exportsProviders' | c8yPluginLoaded | async) {\n <c8y-li data-cy=\"feature-config--feature-list\">\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 }\n @if ('DatapointLibraryModule' | c8yPluginLoaded | async) {\n <c8y-li data-cy=\"feature-config--feature-list\">\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 }\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 @if ('DashboardManagerModule' | c8yPluginLoaded | async) {\n <c8y-li data-cy=\"feature-config--feature-list\">\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 }\n</c8y-list-group>\n", dependencies: [{ kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "ngmodule", type: FormsModule }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: PluginLoadedPipe, name: "c8yPluginLoaded" }] }); }
299
299
  }
300
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: FeatureConfigComponent, decorators: [{
300
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: FeatureConfigComponent, decorators: [{
301
301
  type: Component,
302
302
  args: [{ selector: 'c8y-feature-config', imports: [
303
303
  ListGroupComponent,
@@ -328,10 +328,10 @@ class RootNodeConfigComponent {
328
328
  this.onUpdate.emit();
329
329
  }
330
330
  }
331
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: RootNodeConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
332
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: RootNodeConfigComponent, isStandalone: true, selector: "c8y-root-node-config", inputs: { config: "config", disabled: "disabled" }, outputs: { onUpdate: "onUpdate" }, ngImport: i0, template: "<div class=\"col-sm-6\">\n <label\n title=\"{{ 'Current top level nodes' | translate }}\"\n translate\n >\n Current top level nodes\n </label>\n <c8y-list-group class=\"separator-top\">\n @if (config.rootNodes.length === 0) {\n <c8y-li>\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 }\n @for (node of config.rootNodes; track node.id; let index = $index) {\n <c8y-li>\n @if (node.id | getGroupIcon | async; as icon) {\n <c8y-li-icon [icon]=\"icon\"></c8y-li-icon>\n } @else {\n <c8y-li-icon\n class=\"icon-spin loadingIndicator\"\n [icon]=\"'circle-o-notch'\"\n ></c8y-li-icon>\n }\n <div class=\"content-flex-30\">\n <div class=\"col-6\">\n <div\n class=\"text-truncate\"\n title=\"{{ node.name }}\"\n >\n {{ node.name }}\n </div>\n </div>\n <div class=\"col-4\">\n <label\n class=\"c8y-switch c8y-switch--inline d-flex\"\n title=\"{{ 'Hide devices' | translate }}\"\n >\n <input\n name=\"node.{{ index }}.hideDevices\"\n type=\"checkbox\"\n [(ngModel)]=\"node.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 [attr.aria-label]=\"'Remove' | translate\"\n tooltip=\"{{ 'Remove' | translate }}\"\n type=\"button\"\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 }\n </c8y-list-group>\n</div>\n\n<div\n class=\"col-sm-6 col-md-5\"\n style=\"height: calc(100vh - 430px)\"\n>\n <label\n title=\"{{ 'Select top level nodes' | translate }}\"\n translate\n >\n Select top level nodes\n </label>\n <c8y-asset-selector\n class=\"border-top d-block\"\n name=\"rootNodes\"\n [config]=\"{ groupsOnly: true, multi: true, groupsSelectable: true }\"\n [(ngModel)]=\"config.rootNodes\"\n [disabled]=\"disabled\"\n (onSelected)=\"onUpdate.emit()\"\n ></c8y-asset-selector>\n</div>\n", dependencies: [{ kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "component", type: ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "ngmodule", type: FormsModule }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: AssetSelectorComponent, selector: "c8y-asset-selector", inputs: ["config", "active", "index", "asset", "selectedDevice", "selected", "rootNode", "selectedItems", "container", "isNodeSelectable", "disabled"], outputs: ["onSelected", "onClearSelected", "onRowSelected", "onLoad"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: GetGroupIconPipe, name: "getGroupIcon" }] }); }
331
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: RootNodeConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
332
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: RootNodeConfigComponent, isStandalone: true, selector: "c8y-root-node-config", inputs: { config: "config", disabled: "disabled" }, outputs: { onUpdate: "onUpdate" }, ngImport: i0, template: "<div class=\"col-sm-6\">\n <label\n title=\"{{ 'Current top level nodes' | translate }}\"\n translate\n >\n Current top level nodes\n </label>\n <c8y-list-group class=\"separator-top\">\n @if (config.rootNodes.length === 0) {\n <c8y-li>\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 }\n @for (node of config.rootNodes; track node.id; let index = $index) {\n <c8y-li>\n @if (node.id | getGroupIcon | async; as icon) {\n <c8y-li-icon [icon]=\"icon\"></c8y-li-icon>\n } @else {\n <c8y-li-icon\n class=\"icon-spin loadingIndicator\"\n [icon]=\"'circle-o-notch'\"\n ></c8y-li-icon>\n }\n <div class=\"content-flex-30\">\n <div class=\"col-6\">\n <div\n class=\"text-truncate\"\n title=\"{{ node.name }}\"\n >\n {{ node.name }}\n </div>\n </div>\n <div class=\"col-4\">\n <label\n class=\"c8y-switch c8y-switch--inline d-flex\"\n title=\"{{ 'Hide devices' | translate }}\"\n >\n <input\n name=\"node.{{ index }}.hideDevices\"\n type=\"checkbox\"\n [(ngModel)]=\"node.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 [attr.aria-label]=\"'Remove' | translate\"\n tooltip=\"{{ 'Remove' | translate }}\"\n type=\"button\"\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 }\n </c8y-list-group>\n</div>\n\n<div\n class=\"col-sm-6 col-md-5\"\n style=\"height: calc(100vh - 430px)\"\n>\n <label\n title=\"{{ 'Select top level nodes' | translate }}\"\n translate\n >\n Select top level nodes\n </label>\n <c8y-asset-selector\n class=\"border-top d-block\"\n name=\"rootNodes\"\n [config]=\"{ groupsOnly: true, multi: true, groupsSelectable: true }\"\n [(ngModel)]=\"config.rootNodes\"\n [disabled]=\"disabled\"\n (onSelected)=\"onUpdate.emit()\"\n ></c8y-asset-selector>\n</div>\n", dependencies: [{ kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "component", type: ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "ngmodule", type: FormsModule }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: AssetSelectorComponent, selector: "c8y-asset-selector", inputs: ["config", "active", "index", "asset", "selectedDevice", "selected", "rootNode", "selectedItems", "container", "isNodeSelectable", "disabled"], outputs: ["onSelected", "onClearSelected", "onRowSelected", "onLoad"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: GetGroupIconPipe, name: "getGroupIcon" }] }); }
333
333
  }
334
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: RootNodeConfigComponent, decorators: [{
334
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: RootNodeConfigComponent, decorators: [{
335
335
  type: Component,
336
336
  args: [{ selector: 'c8y-root-node-config', imports: [
337
337
  C8yTranslateDirective,
@@ -403,10 +403,10 @@ class HomeDashboardConfigComponent {
403
403
  }
404
404
  return this.config.homeDashboardName === this.cockpitConfigService.getAppDashboardName();
405
405
  }
406
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: HomeDashboardConfigComponent, deps: [{ token: CockpitConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
407
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: HomeDashboardConfigComponent, isStandalone: true, selector: "c8y-home-dashboard-config", inputs: { config: "config" }, ngImport: i0, template: "<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", dependencies: [{ kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: ListItemRadioComponent, selector: "c8y-list-item-radio, c8y-li-radio", inputs: ["selected", "name", "disabled", "value"], outputs: ["onSelect"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }] }); }
406
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: HomeDashboardConfigComponent, deps: [{ token: CockpitConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
407
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: HomeDashboardConfigComponent, isStandalone: true, selector: "c8y-home-dashboard-config", inputs: { config: "config" }, ngImport: i0, template: "<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", dependencies: [{ kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: ListItemRadioComponent, selector: "c8y-list-item-radio, c8y-li-radio", inputs: ["selected", "name", "disabled", "value"], outputs: ["onSelect"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }] }); }
408
408
  }
409
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: HomeDashboardConfigComponent, decorators: [{
409
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: HomeDashboardConfigComponent, decorators: [{
410
410
  type: Component,
411
411
  args: [{ selector: 'c8y-home-dashboard-config', imports: [ListGroupComponent, ListItemComponent, ListItemRadioComponent, C8yTranslateDirective], template: "<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" }]
412
412
  }], ctorParameters: () => [{ type: CockpitConfigService }], propDecorators: { config: [{
@@ -468,10 +468,10 @@ class CockpitConfigurationComponent {
468
468
  await this.cockpitConfigService.setRootNodes();
469
469
  this.rootNodeDisabled = false;
470
470
  }
471
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CockpitConfigurationComponent, deps: [{ token: CockpitConfigService }, { token: i1.AlertService }, { token: i1.AppStateService }], target: i0.ɵɵFactoryTarget.Component }); }
472
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: CockpitConfigurationComponent, isStandalone: true, selector: "c8y-cockpit-configuration", ngImport: i0, template: "<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", dependencies: [{ kind: "component", type: TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.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.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: IconSelectorWrapperComponent, selector: "c8y-icon-selector-wrapper", inputs: ["canRemoveIcon", "selectedIcon", "iconSize"], outputs: ["onSelect"] }, { kind: "component", type: MiscConfigComponent, selector: "c8y-misc-config", inputs: ["config"] }, { kind: "directive", type: PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "component", type: FeatureConfigComponent, selector: "c8y-feature-config", inputs: ["config"], outputs: ["onUpdate"] }, { kind: "component", type: RootNodeConfigComponent, selector: "c8y-root-node-config", inputs: ["config", "disabled"], outputs: ["onUpdate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: HomeDashboardConfigComponent, selector: "c8y-home-dashboard-config", inputs: ["config"] }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "directive", type: ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: PluginLoadedPipe, name: "c8yPluginLoaded" }] }); }
471
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CockpitConfigurationComponent, deps: [{ token: CockpitConfigService }, { token: i1.AlertService }, { token: i1.AppStateService }], target: i0.ɵɵFactoryTarget.Component }); }
472
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: CockpitConfigurationComponent, isStandalone: true, selector: "c8y-cockpit-configuration", ngImport: i0, template: "<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", dependencies: [{ kind: "component", type: TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.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.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: IconSelectorWrapperComponent, selector: "c8y-icon-selector-wrapper", inputs: ["canRemoveIcon", "selectedIcon", "iconSize"], outputs: ["onSelect"] }, { kind: "component", type: MiscConfigComponent, selector: "c8y-misc-config", inputs: ["config"] }, { kind: "directive", type: PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "component", type: FeatureConfigComponent, selector: "c8y-feature-config", inputs: ["config"], outputs: ["onUpdate"] }, { kind: "component", type: RootNodeConfigComponent, selector: "c8y-root-node-config", inputs: ["config", "disabled"], outputs: ["onUpdate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: HomeDashboardConfigComponent, selector: "c8y-home-dashboard-config", inputs: ["config"] }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "directive", type: ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: PluginLoadedPipe, name: "c8yPluginLoaded" }] }); }
473
473
  }
474
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CockpitConfigurationComponent, decorators: [{
474
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CockpitConfigurationComponent, decorators: [{
475
475
  type: Component,
476
476
  args: [{ selector: 'c8y-cockpit-configuration', imports: [
477
477
  TitleComponent,
@@ -534,10 +534,10 @@ class CockpitSetupStepperButtonsComponent {
534
534
  this.onNext = new EventEmitter();
535
535
  this.onBack = new EventEmitter();
536
536
  }
537
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CockpitSetupStepperButtonsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
538
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: CockpitSetupStepperButtonsComponent, isStandalone: true, selector: "c8y-cockpit-setup-stepper-buttons", inputs: { index: "index" }, outputs: { onNext: "onNext", onBack: "onBack" }, ngImport: i0, template: "<div class=\"card-footer separator d-flex gap-8 j-c-center\">\n @if (index !== 0) {\n <button\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"onBack.emit()\"\n translate\n >\n Previous\n </button>\n }\n <button\n class=\"btn btn-primary\"\n type=\"submit\"\n data-cy=\"c8y-cockpit-setup-stepper-buttons--save-continue-button\"\n (click)=\"onNext.emit()\"\n translate\n >\n Continue\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }] }); }
537
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CockpitSetupStepperButtonsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
538
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: CockpitSetupStepperButtonsComponent, isStandalone: true, selector: "c8y-cockpit-setup-stepper-buttons", inputs: { index: "index" }, outputs: { onNext: "onNext", onBack: "onBack" }, ngImport: i0, template: "<div class=\"card-footer separator d-flex gap-8 j-c-center\">\n @if (index !== 0) {\n <button\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"onBack.emit()\"\n translate\n >\n Previous\n </button>\n }\n <button\n class=\"btn btn-primary\"\n type=\"submit\"\n data-cy=\"c8y-cockpit-setup-stepper-buttons--save-continue-button\"\n (click)=\"onNext.emit()\"\n translate\n >\n Continue\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }] }); }
539
539
  }
540
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CockpitSetupStepperButtonsComponent, decorators: [{
540
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CockpitSetupStepperButtonsComponent, decorators: [{
541
541
  type: Component,
542
542
  args: [{ selector: 'c8y-cockpit-setup-stepper-buttons', imports: [NgIf, C8yTranslateDirective], template: "<div class=\"card-footer separator d-flex gap-8 j-c-center\">\n @if (index !== 0) {\n <button\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"onBack.emit()\"\n translate\n >\n Previous\n </button>\n }\n <button\n class=\"btn btn-primary\"\n type=\"submit\"\n data-cy=\"c8y-cockpit-setup-stepper-buttons--save-continue-button\"\n (click)=\"onNext.emit()\"\n translate\n >\n Continue\n </button>\n</div>\n" }]
543
543
  }], propDecorators: { index: [{
@@ -563,10 +563,10 @@ class CockpitSetupStep1Component extends CockpitSetupStep {
563
563
  iconSelectionChange(icon) {
564
564
  this.config.icon = { class: icon };
565
565
  }
566
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CockpitSetupStep1Component, deps: [{ token: i1.C8yStepper }, { token: i2$2.CdkStep }, { token: i1.SetupComponent }, { token: i1.AppStateService }, { token: i1.AlertService }, { token: i3.ApplicationService }, { token: CockpitConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
567
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: CockpitSetupStep1Component, isStandalone: true, selector: "c8y-cockpit-setup-step1", host: { classAttribute: "d-contents" }, usesInheritance: true, ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: IconSelectorWrapperComponent, selector: "c8y-icon-selector-wrapper", inputs: ["canRemoveIcon", "selectedIcon", "iconSize"], outputs: ["onSelect"] }, { kind: "component", type: MiscConfigComponent, selector: "c8y-misc-config", inputs: ["config"] }, { kind: "component", type: CockpitSetupStepperButtonsComponent, selector: "c8y-cockpit-setup-stepper-buttons", inputs: ["index"], outputs: ["onNext", "onBack"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
566
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CockpitSetupStep1Component, deps: [{ token: i1.C8yStepper }, { token: i2$2.CdkStep }, { token: i1.SetupComponent }, { token: i1.AppStateService }, { token: i1.AlertService }, { token: i3.ApplicationService }, { token: CockpitConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
567
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: CockpitSetupStep1Component, isStandalone: true, selector: "c8y-cockpit-setup-step1", host: { classAttribute: "d-contents" }, usesInheritance: true, ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: IconSelectorWrapperComponent, selector: "c8y-icon-selector-wrapper", inputs: ["canRemoveIcon", "selectedIcon", "iconSize"], outputs: ["onSelect"] }, { kind: "component", type: MiscConfigComponent, selector: "c8y-misc-config", inputs: ["config"] }, { kind: "component", type: CockpitSetupStepperButtonsComponent, selector: "c8y-cockpit-setup-stepper-buttons", inputs: ["index"], outputs: ["onNext", "onBack"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
568
568
  }
569
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CockpitSetupStep1Component, decorators: [{
569
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CockpitSetupStep1Component, decorators: [{
570
570
  type: Component,
571
571
  args: [{ selector: 'c8y-cockpit-setup-step1', host: { class: 'd-contents' }, imports: [
572
572
  FormsModule,
@@ -590,10 +590,10 @@ class CockpitSetupStep2Component extends CockpitSetupStep {
590
590
  this.appService = appService;
591
591
  this.cockpitConfigService = cockpitConfigService;
592
592
  }
593
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CockpitSetupStep2Component, deps: [{ token: i1.C8yStepper }, { token: i2$2.CdkStep }, { token: i1.SetupComponent }, { token: i1.AppStateService }, { token: i1.AlertService }, { token: i3.ApplicationService }, { token: CockpitConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
594
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: CockpitSetupStep2Component, isStandalone: true, selector: "c8y-cockpit-setup-step2", host: { classAttribute: "d-contents" }, usesInheritance: true, ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: FeatureConfigComponent, selector: "c8y-feature-config", inputs: ["config"], outputs: ["onUpdate"] }, { kind: "component", type: CockpitSetupStepperButtonsComponent, selector: "c8y-cockpit-setup-stepper-buttons", inputs: ["index"], outputs: ["onNext", "onBack"] }] }); }
593
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CockpitSetupStep2Component, deps: [{ token: i1.C8yStepper }, { token: i2$2.CdkStep }, { token: i1.SetupComponent }, { token: i1.AppStateService }, { token: i1.AlertService }, { token: i3.ApplicationService }, { token: CockpitConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
594
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: CockpitSetupStep2Component, isStandalone: true, selector: "c8y-cockpit-setup-step2", host: { classAttribute: "d-contents" }, usesInheritance: true, ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: FeatureConfigComponent, selector: "c8y-feature-config", inputs: ["config"], outputs: ["onUpdate"] }, { kind: "component", type: CockpitSetupStepperButtonsComponent, selector: "c8y-cockpit-setup-stepper-buttons", inputs: ["index"], outputs: ["onNext", "onBack"] }] }); }
595
595
  }
596
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CockpitSetupStep2Component, decorators: [{
596
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CockpitSetupStep2Component, decorators: [{
597
597
  type: Component,
598
598
  args: [{ selector: 'c8y-cockpit-setup-step2', host: { class: 'd-contents' }, imports: [
599
599
  FormsModule,
@@ -614,10 +614,10 @@ class CockpitSetupStep3Component extends CockpitSetupStep {
614
614
  this.appService = appService;
615
615
  this.cockpitConfigService = cockpitConfigService;
616
616
  }
617
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CockpitSetupStep3Component, deps: [{ token: i1.C8yStepper }, { token: i2$2.CdkStep }, { token: i1.SetupComponent }, { token: i1.AppStateService }, { token: i1.AlertService }, { token: i3.ApplicationService }, { token: CockpitConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
618
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: CockpitSetupStep3Component, isStandalone: true, selector: "c8y-cockpit-setup-step3", host: { classAttribute: "d-contents" }, usesInheritance: true, ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: RootNodeConfigComponent, selector: "c8y-root-node-config", inputs: ["config", "disabled"], outputs: ["onUpdate"] }, { kind: "component", type: CockpitSetupStepperButtonsComponent, selector: "c8y-cockpit-setup-stepper-buttons", inputs: ["index"], outputs: ["onNext", "onBack"] }] }); }
617
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CockpitSetupStep3Component, deps: [{ token: i1.C8yStepper }, { token: i2$2.CdkStep }, { token: i1.SetupComponent }, { token: i1.AppStateService }, { token: i1.AlertService }, { token: i3.ApplicationService }, { token: CockpitConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
618
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: CockpitSetupStep3Component, isStandalone: true, selector: "c8y-cockpit-setup-step3", host: { classAttribute: "d-contents" }, usesInheritance: true, ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: RootNodeConfigComponent, selector: "c8y-root-node-config", inputs: ["config", "disabled"], outputs: ["onUpdate"] }, { kind: "component", type: CockpitSetupStepperButtonsComponent, selector: "c8y-cockpit-setup-stepper-buttons", inputs: ["index"], outputs: ["onNext", "onBack"] }] }); }
619
619
  }
620
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CockpitSetupStep3Component, decorators: [{
620
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CockpitSetupStep3Component, decorators: [{
621
621
  type: Component,
622
622
  args: [{ selector: 'c8y-cockpit-setup-step3', host: { class: 'd-contents' }, imports: [
623
623
  FormsModule,
@@ -638,10 +638,10 @@ class CockpitSetupStep4Component extends CockpitSetupStep {
638
638
  this.appService = appService;
639
639
  this.cockpitConfigService = cockpitConfigService;
640
640
  }
641
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CockpitSetupStep4Component, deps: [{ token: i1.C8yStepper }, { token: i2$2.CdkStep }, { token: i1.SetupComponent }, { token: i1.AppStateService }, { token: i1.AlertService }, { token: i3.ApplicationService }, { token: CockpitConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
642
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: CockpitSetupStep4Component, isStandalone: true, selector: "c8y-cockpit-setup-step4", host: { classAttribute: "d-contents" }, usesInheritance: true, ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: HomeDashboardConfigComponent, selector: "c8y-home-dashboard-config", inputs: ["config"] }, { kind: "component", type: CockpitSetupStepperButtonsComponent, selector: "c8y-cockpit-setup-stepper-buttons", inputs: ["index"], outputs: ["onNext", "onBack"] }] }); }
641
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CockpitSetupStep4Component, deps: [{ token: i1.C8yStepper }, { token: i2$2.CdkStep }, { token: i1.SetupComponent }, { token: i1.AppStateService }, { token: i1.AlertService }, { token: i3.ApplicationService }, { token: CockpitConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
642
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: CockpitSetupStep4Component, isStandalone: true, selector: "c8y-cockpit-setup-step4", host: { classAttribute: "d-contents" }, usesInheritance: true, ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: HomeDashboardConfigComponent, selector: "c8y-home-dashboard-config", inputs: ["config"] }, { kind: "component", type: CockpitSetupStepperButtonsComponent, selector: "c8y-cockpit-setup-stepper-buttons", inputs: ["index"], outputs: ["onNext", "onBack"] }] }); }
643
643
  }
644
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CockpitSetupStep4Component, decorators: [{
644
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CockpitSetupStep4Component, decorators: [{
645
645
  type: Component,
646
646
  args: [{ selector: 'c8y-cockpit-setup-step4', host: { class: 'd-contents' }, imports: [
647
647
  FormsModule,
@@ -656,8 +656,8 @@ class CockpitConfigModule {
656
656
  this.service = service;
657
657
  // only for DI, not used but needed.
658
658
  }
659
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CockpitConfigModule, deps: [{ token: CockpitConfigService }], target: i0.ɵɵFactoryTarget.NgModule }); }
660
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: CockpitConfigModule, imports: [CoreModule,
659
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CockpitConfigModule, deps: [{ token: CockpitConfigService }], target: i0.ɵɵFactoryTarget.NgModule }); }
660
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: CockpitConfigModule, imports: [CoreModule,
661
661
  AssetSelectorModule,
662
662
  PopoverModule,
663
663
  TooltipModule,
@@ -674,7 +674,7 @@ class CockpitConfigModule {
674
674
  HomeDashboardConfigComponent,
675
675
  MiscConfigComponent,
676
676
  CockpitSetupStepperButtonsComponent] }); }
677
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CockpitConfigModule, providers: [
677
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CockpitConfigModule, providers: [
678
678
  CockpitConfigGuard,
679
679
  hookRoute({
680
680
  path: COCKPIT_CONFIG_PATH,
@@ -728,7 +728,7 @@ class CockpitConfigModule {
728
728
  HomeDashboardConfigComponent,
729
729
  MiscConfigComponent] }); }
730
730
  }
731
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CockpitConfigModule, decorators: [{
731
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CockpitConfigModule, decorators: [{
732
732
  type: NgModule,
733
733
  args: [{
734
734
  imports: [
@@ -46,10 +46,10 @@ class ComputedPropertyAlarmCountConfigComponent {
46
46
  };
47
47
  return validator;
48
48
  }
49
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ComputedPropertyAlarmCountConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: ComputedPropertyAlarmCountConfigComponent, isStandalone: true, selector: "c8y-alarm-count-config", inputs: { config: "config" }, ngImport: i0, template: "<form\n class=\"row d-flex-md\"\n [formGroup]=\"formGroup\"\n>\n <div class=\"col-md-6\">\n <c8y-form-group class=\"m-b-16\">\n <label\n [title]=\"'Alarm type' | translate\"\n translate\n >\n Alarm type\n </label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. {{ example }}' | translate: { example: 'c8y_UnavailabilityAlarm' } }}\"\n name=\"type\"\n type=\"string\"\n formControlName=\"type\"\n />\n <c8y-messages\n [show]=\"formGroup.controls?.type?.touched && formGroup?.controls?.type?.errors\"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n <div class=\"col-md-6\">\n <div\n class=\"form-group\"\n formArrayName=\"severities\"\n >\n <label>{{ 'Severities' | translate }}</label>\n <c8y-form-group\n [hasError]=\"formGroup.controls.severities.hasError('required')\"\n [ngClass]=\"{\n 'm-b-8': !formGroup.controls.severities.hasError('required')\n }\"\n data-cy=\"c8y-alarm-list-widget-config--severities-elements\"\n >\n <div class=\"d-flex gap-8\">\n <ng-container *ngFor=\"let severityOption of severityList\">\n <label\n class=\"c8y-checkbox m-t-0 gap-4\"\n [title]=\"SEVERITY_LABELS[severityOption] | translate\"\n >\n <input\n type=\"checkbox\"\n [formControlName]=\"severityOption\"\n [name]=\"severityOption\"\n />\n <span class=\"a-s-center\"></span>\n <ng-container>\n <i\n class=\"a-s-center m-r-4 icon-20 {{ severityOption | AlarmSeverityToIconClass }}\"\n [c8yIcon]=\"severityOption | AlarmSeverityToIcon\"\n ></i>\n </ng-container>\n <span>{{ SEVERITY_LABELS[severityOption] | translate }}</span>\n </label>\n </ng-container>\n </div>\n <c8y-messages>\n <c8y-message *ngIf=\"formGroup.controls.severities.hasError('required')\">\n {{ 'Select at least one severity.' | translate }}\n </c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n</form>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.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: i2$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i1.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i1.MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "component", type: i1.MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage", "additionalMessages"] }, { kind: "directive", type: i1.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: DatapointSelectorModule }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AlarmSeverityToIconPipe, name: "AlarmSeverityToIcon" }, { kind: "pipe", type: AlarmSeverityToIconClassPipe, name: "AlarmSeverityToIconClass" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] }); }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: ComputedPropertyAlarmCountConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: ComputedPropertyAlarmCountConfigComponent, isStandalone: true, selector: "c8y-alarm-count-config", inputs: { config: "config" }, ngImport: i0, template: "<form\n class=\"row d-flex-md\"\n [formGroup]=\"formGroup\"\n>\n <div class=\"col-md-6\">\n <c8y-form-group class=\"m-b-16\">\n <label\n [title]=\"'Alarm type' | translate\"\n translate\n >\n Alarm type\n </label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. {{ example }}' | translate: { example: 'c8y_UnavailabilityAlarm' } }}\"\n name=\"type\"\n type=\"string\"\n formControlName=\"type\"\n />\n <c8y-messages\n [show]=\"formGroup.controls?.type?.touched && formGroup?.controls?.type?.errors\"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n <div class=\"col-md-6\">\n <div\n class=\"form-group\"\n formArrayName=\"severities\"\n >\n <label>{{ 'Severities' | translate }}</label>\n <c8y-form-group\n [hasError]=\"formGroup.controls.severities.hasError('required')\"\n [ngClass]=\"{\n 'm-b-8': !formGroup.controls.severities.hasError('required')\n }\"\n data-cy=\"c8y-alarm-list-widget-config--severities-elements\"\n >\n <div class=\"d-flex gap-8\">\n <ng-container *ngFor=\"let severityOption of severityList\">\n <label\n class=\"c8y-checkbox m-t-0 gap-4\"\n [title]=\"SEVERITY_LABELS[severityOption] | translate\"\n >\n <input\n type=\"checkbox\"\n [formControlName]=\"severityOption\"\n [name]=\"severityOption\"\n />\n <span class=\"a-s-center\"></span>\n <ng-container>\n <i\n class=\"a-s-center m-r-4 icon-20 {{ severityOption | AlarmSeverityToIconClass }}\"\n [c8yIcon]=\"severityOption | AlarmSeverityToIcon\"\n ></i>\n </ng-container>\n <span>{{ SEVERITY_LABELS[severityOption] | translate }}</span>\n </label>\n </ng-container>\n </div>\n <c8y-messages>\n <c8y-message *ngIf=\"formGroup.controls.severities.hasError('required')\">\n {{ 'Select at least one severity.' | translate }}\n </c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n</form>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.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: i2$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i1.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i1.MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "component", type: i1.MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage", "additionalMessages"] }, { kind: "directive", type: i1.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: DatapointSelectorModule }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AlarmSeverityToIconPipe, name: "AlarmSeverityToIcon" }, { kind: "pipe", type: AlarmSeverityToIconClassPipe, name: "AlarmSeverityToIconClass" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] }); }
51
51
  }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ComputedPropertyAlarmCountConfigComponent, decorators: [{
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: ComputedPropertyAlarmCountConfigComponent, decorators: [{
53
53
  type: Component,
54
54
  args: [{ selector: 'c8y-alarm-count-config', imports: [
55
55
  CoreModule,
@@ -65,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
65
65
  }] } });
66
66
 
67
67
  export { ComputedPropertyAlarmCountConfigComponent };
68
- //# sourceMappingURL=c8y-ngx-components-computed-asset-properties-alarm-count-config.component-DX9Rgjgl.mjs.map
68
+ //# sourceMappingURL=c8y-ngx-components-computed-asset-properties-alarm-count-config.component-tP8yUdy3.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-computed-asset-properties-alarm-count-config.component-DX9Rgjgl.mjs","sources":["../../computed-asset-properties/alarm-count/alarm-count-config.component.ts","../../computed-asset-properties/alarm-count/alarm-count-config.component.html"],"sourcesContent":["import { Component, inject, Input, OnInit } from '@angular/core';\nimport {\n ControlContainer,\n FormBuilder,\n FormGroup,\n NgForm,\n ReactiveFormsModule,\n ValidatorFn,\n Validators\n} from '@angular/forms';\nimport { C8yTranslatePipe, CommonModule, CoreModule } from '@c8y/ngx-components';\nimport { DatapointSelectorModule } from '@c8y/ngx-components/datapoint-selector';\nimport { Observable } from 'rxjs';\nimport { AlarmCountConfig } from './alarm-count.model';\nimport {\n AlarmSeverityToIconClassPipe,\n AlarmSeverityToIconPipe,\n DEFAULT_SEVERITY_VALUES\n} from '@c8y/ngx-components/alarms';\nimport { SEVERITY_LABELS, SeverityType } from '@c8y/client';\n\n@Component({\n selector: 'c8y-alarm-count-config',\n templateUrl: './alarm-count-config.component.html',\n imports: [\n CoreModule,\n DatapointSelectorModule,\n CommonModule,\n C8yTranslatePipe,\n ReactiveFormsModule,\n AlarmSeverityToIconPipe,\n AlarmSeverityToIconClassPipe\n ],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]\n})\nexport class ComputedPropertyAlarmCountConfigComponent implements OnInit {\n @Input() config?: AlarmCountConfig;\n formGroup: ReturnType<ComputedPropertyAlarmCountConfigComponent['createForm']>;\n severityList = Object.keys(SEVERITY_LABELS) as SeverityType[];\n readonly SEVERITY_LABELS = SEVERITY_LABELS;\n\n private formBuilder = inject(FormBuilder);\n private form = inject(NgForm);\n\n ngOnInit() {\n this.initForm();\n }\n\n onBeforeSave(config?: AlarmCountConfig): boolean | Promise<boolean> | Observable<boolean> {\n if (this.formGroup.valid) {\n Object.assign(config, this.formGroup.value);\n return true;\n }\n return false;\n }\n\n private initForm(): void {\n this.formGroup = this.createForm();\n this.form.form.addControl('config', this.formGroup);\n this.formGroup.patchValue(this.config);\n }\n\n private createForm() {\n return this.formBuilder.group({\n type: ['', [Validators.required]],\n severities: this.formBuilder.group(DEFAULT_SEVERITY_VALUES, {\n validators: this.minSelectedCheckboxes(1)\n })\n });\n }\n\n private minSelectedCheckboxes(min = 1): ValidatorFn {\n const validator: ValidatorFn = (formGroup: FormGroup) => {\n const totalSelected = Object.values(formGroup.controls).reduce(\n (prev, next) => (next.value ? prev + next.value : prev),\n 0\n );\n\n return totalSelected >= min ? null : { required: true };\n };\n\n return validator;\n }\n}\n","<form\n class=\"row d-flex-md\"\n [formGroup]=\"formGroup\"\n>\n <div class=\"col-md-6\">\n <c8y-form-group class=\"m-b-16\">\n <label\n [title]=\"'Alarm type' | translate\"\n translate\n >\n Alarm type\n </label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. {{ example }}' | translate: { example: 'c8y_UnavailabilityAlarm' } }}\"\n name=\"type\"\n type=\"string\"\n formControlName=\"type\"\n />\n <c8y-messages\n [show]=\"formGroup.controls?.type?.touched && formGroup?.controls?.type?.errors\"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n <div class=\"col-md-6\">\n <div\n class=\"form-group\"\n formArrayName=\"severities\"\n >\n <label>{{ 'Severities' | translate }}</label>\n <c8y-form-group\n [hasError]=\"formGroup.controls.severities.hasError('required')\"\n [ngClass]=\"{\n 'm-b-8': !formGroup.controls.severities.hasError('required')\n }\"\n data-cy=\"c8y-alarm-list-widget-config--severities-elements\"\n >\n <div class=\"d-flex gap-8\">\n <ng-container *ngFor=\"let severityOption of severityList\">\n <label\n class=\"c8y-checkbox m-t-0 gap-4\"\n [title]=\"SEVERITY_LABELS[severityOption] | translate\"\n >\n <input\n type=\"checkbox\"\n [formControlName]=\"severityOption\"\n [name]=\"severityOption\"\n />\n <span class=\"a-s-center\"></span>\n <ng-container>\n <i\n class=\"a-s-center m-r-4 icon-20 {{ severityOption | AlarmSeverityToIconClass }}\"\n [c8yIcon]=\"severityOption | AlarmSeverityToIcon\"\n ></i>\n </ng-container>\n <span>{{ SEVERITY_LABELS[severityOption] | translate }}</span>\n </label>\n </ng-container>\n </div>\n <c8y-messages>\n <c8y-message *ngIf=\"formGroup.controls.severities.hasError('required')\">\n {{ 'Select at least one severity.' | translate }}\n </c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n</form>\n"],"names":["i3"],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-computed-asset-properties-alarm-count-config.component-tP8yUdy3.mjs","sources":["../../computed-asset-properties/alarm-count/alarm-count-config.component.ts","../../computed-asset-properties/alarm-count/alarm-count-config.component.html"],"sourcesContent":["import { Component, inject, Input, OnInit } from '@angular/core';\nimport {\n ControlContainer,\n FormBuilder,\n FormGroup,\n NgForm,\n ReactiveFormsModule,\n ValidatorFn,\n Validators\n} from '@angular/forms';\nimport { C8yTranslatePipe, CommonModule, CoreModule } from '@c8y/ngx-components';\nimport { DatapointSelectorModule } from '@c8y/ngx-components/datapoint-selector';\nimport { Observable } from 'rxjs';\nimport { AlarmCountConfig } from './alarm-count.model';\nimport {\n AlarmSeverityToIconClassPipe,\n AlarmSeverityToIconPipe,\n DEFAULT_SEVERITY_VALUES\n} from '@c8y/ngx-components/alarms';\nimport { SEVERITY_LABELS, SeverityType } from '@c8y/client';\n\n@Component({\n selector: 'c8y-alarm-count-config',\n templateUrl: './alarm-count-config.component.html',\n imports: [\n CoreModule,\n DatapointSelectorModule,\n CommonModule,\n C8yTranslatePipe,\n ReactiveFormsModule,\n AlarmSeverityToIconPipe,\n AlarmSeverityToIconClassPipe\n ],\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]\n})\nexport class ComputedPropertyAlarmCountConfigComponent implements OnInit {\n @Input() config?: AlarmCountConfig;\n formGroup: ReturnType<ComputedPropertyAlarmCountConfigComponent['createForm']>;\n severityList = Object.keys(SEVERITY_LABELS) as SeverityType[];\n readonly SEVERITY_LABELS = SEVERITY_LABELS;\n\n private formBuilder = inject(FormBuilder);\n private form = inject(NgForm);\n\n ngOnInit() {\n this.initForm();\n }\n\n onBeforeSave(config?: AlarmCountConfig): boolean | Promise<boolean> | Observable<boolean> {\n if (this.formGroup.valid) {\n Object.assign(config, this.formGroup.value);\n return true;\n }\n return false;\n }\n\n private initForm(): void {\n this.formGroup = this.createForm();\n this.form.form.addControl('config', this.formGroup);\n this.formGroup.patchValue(this.config);\n }\n\n private createForm() {\n return this.formBuilder.group({\n type: ['', [Validators.required]],\n severities: this.formBuilder.group(DEFAULT_SEVERITY_VALUES, {\n validators: this.minSelectedCheckboxes(1)\n })\n });\n }\n\n private minSelectedCheckboxes(min = 1): ValidatorFn {\n const validator: ValidatorFn = (formGroup: FormGroup) => {\n const totalSelected = Object.values(formGroup.controls).reduce(\n (prev, next) => (next.value ? prev + next.value : prev),\n 0\n );\n\n return totalSelected >= min ? null : { required: true };\n };\n\n return validator;\n }\n}\n","<form\n class=\"row d-flex-md\"\n [formGroup]=\"formGroup\"\n>\n <div class=\"col-md-6\">\n <c8y-form-group class=\"m-b-16\">\n <label\n [title]=\"'Alarm type' | translate\"\n translate\n >\n Alarm type\n </label>\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g. {{ example }}' | translate: { example: 'c8y_UnavailabilityAlarm' } }}\"\n name=\"type\"\n type=\"string\"\n formControlName=\"type\"\n />\n <c8y-messages\n [show]=\"formGroup.controls?.type?.touched && formGroup?.controls?.type?.errors\"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n <div class=\"col-md-6\">\n <div\n class=\"form-group\"\n formArrayName=\"severities\"\n >\n <label>{{ 'Severities' | translate }}</label>\n <c8y-form-group\n [hasError]=\"formGroup.controls.severities.hasError('required')\"\n [ngClass]=\"{\n 'm-b-8': !formGroup.controls.severities.hasError('required')\n }\"\n data-cy=\"c8y-alarm-list-widget-config--severities-elements\"\n >\n <div class=\"d-flex gap-8\">\n <ng-container *ngFor=\"let severityOption of severityList\">\n <label\n class=\"c8y-checkbox m-t-0 gap-4\"\n [title]=\"SEVERITY_LABELS[severityOption] | translate\"\n >\n <input\n type=\"checkbox\"\n [formControlName]=\"severityOption\"\n [name]=\"severityOption\"\n />\n <span class=\"a-s-center\"></span>\n <ng-container>\n <i\n class=\"a-s-center m-r-4 icon-20 {{ severityOption | AlarmSeverityToIconClass }}\"\n [c8yIcon]=\"severityOption | AlarmSeverityToIcon\"\n ></i>\n </ng-container>\n <span>{{ SEVERITY_LABELS[severityOption] | translate }}</span>\n </label>\n </ng-container>\n </div>\n <c8y-messages>\n <c8y-message *ngIf=\"formGroup.controls.severities.hasError('required')\">\n {{ 'Select at least one severity.' | translate }}\n </c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n</form>\n"],"names":["i3"],"mappings":"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"}