@c8y/ngx-components 1022.35.1 → 1022.44.7

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 (925) hide show
  1. package/actility-device-registration/actility-device-registration.component.d.ts.map +1 -1
  2. package/actility-device-registration/actility-device-registration.service.d.ts.map +1 -1
  3. package/alarms/alarm-details.component.d.ts.map +1 -1
  4. package/alarms/alarm-info.component.d.ts.map +1 -1
  5. package/alarms/alarm-severity-to-icon-class.pipe.d.ts +9 -0
  6. package/alarms/alarm-severity-to-icon-class.pipe.d.ts.map +1 -0
  7. package/alarms/alarms-icon.component.d.ts.map +1 -1
  8. package/alarms/alarms-interval-refresh.component.d.ts.map +1 -1
  9. package/alarms/alarms-list.component.d.ts.map +1 -1
  10. package/alarms/alarms-view.service.d.ts.map +1 -1
  11. package/alarms/alarms.component.d.ts.map +1 -1
  12. package/alarms/alarms.helper.d.ts.map +1 -1
  13. package/alarms/alarms.model.d.ts.map +1 -1
  14. package/alarms/cockpit/index.d.ts.map +1 -1
  15. package/alarms/devicemanagement/index.d.ts.map +1 -1
  16. package/alarms/index.d.ts +1 -0
  17. package/alarms/index.d.ts.map +1 -1
  18. package/asset-properties/asset-properties.model.d.ts +77 -1
  19. package/asset-properties/asset-properties.model.d.ts.map +1 -1
  20. package/asset-properties/asset-properties.service.d.ts +17 -0
  21. package/asset-properties/asset-properties.service.d.ts.map +1 -1
  22. package/asset-properties/asset-property-list/asset-property-collapse-button-title.pipe.d.ts +14 -0
  23. package/asset-properties/asset-property-list/asset-property-collapse-button-title.pipe.d.ts.map +1 -0
  24. package/asset-properties/asset-property-list/asset-property-icon.pipe.d.ts +2 -1
  25. package/asset-properties/asset-property-list/asset-property-icon.pipe.d.ts.map +1 -1
  26. package/asset-properties/asset-property-list/asset-property-list.component.d.ts +52 -13
  27. package/asset-properties/asset-property-list/asset-property-list.component.d.ts.map +1 -1
  28. package/asset-properties/asset-property-list/asset-property-value.pipe.d.ts +7 -3
  29. package/asset-properties/asset-property-list/asset-property-value.pipe.d.ts.map +1 -1
  30. package/asset-properties/asset-property-list/tree-data-source.d.ts +1 -0
  31. package/asset-properties/asset-property-list/tree-data-source.d.ts.map +1 -1
  32. package/asset-properties/asset-property-selector-drawer/asset-property-selector-drawer.component.d.ts.map +1 -1
  33. package/asset-properties/computed-properties-config/computed-properties-config.component.d.ts +39 -0
  34. package/asset-properties/computed-properties-config/computed-properties-config.component.d.ts.map +1 -0
  35. package/asset-properties/computed-properties.service.d.ts +27 -0
  36. package/asset-properties/computed-properties.service.d.ts.map +1 -0
  37. package/asset-properties/custom-properties-drawer/custom-properties-drawer.component.d.ts +11 -6
  38. package/asset-properties/custom-properties-drawer/custom-properties-drawer.component.d.ts.map +1 -1
  39. package/asset-properties/custom-properties-drawer.service.d.ts +2 -1
  40. package/asset-properties/custom-properties-drawer.service.d.ts.map +1 -1
  41. package/asset-properties/index.d.ts +1 -0
  42. package/asset-properties/index.d.ts.map +1 -1
  43. package/assets-navigator/asset-node.d.ts.map +1 -1
  44. package/assets-navigator/asset-node.service.d.ts.map +1 -1
  45. package/assets-navigator/asset-selector/asset-selector-node.component.d.ts.map +1 -1
  46. package/assets-navigator/asset-selector/asset-selector.model.d.ts +1 -2
  47. package/assets-navigator/asset-selector/asset-selector.model.d.ts.map +1 -1
  48. package/assets-navigator/asset-selector/miller-view.component.d.ts +17 -5
  49. package/assets-navigator/asset-selector/miller-view.component.d.ts.map +1 -1
  50. package/assets-navigator/asset-selector/unassigned-devices-node.d.ts.map +1 -1
  51. package/assets-navigator/load-more-node.d.ts.map +1 -1
  52. package/auth-configuration/basic-settings/login-settings.component.d.ts.map +1 -1
  53. package/auth-configuration/basic-settings/session-configuration.component.d.ts.map +1 -1
  54. package/auth-configuration/factories/navigation.factory.d.ts.map +1 -1
  55. package/auth-configuration/factories/tabs.factory.d.ts.map +1 -1
  56. package/auth-configuration/sso-configuration/sso-configuration.component.d.ts.map +1 -1
  57. package/auth-configuration/sso-configuration/template-parts/access-mapping/inventory-roles-modal.component.d.ts.map +1 -1
  58. package/auth-configuration/sso-configuration/template-parts/signature-configuration.component.d.ts.map +1 -1
  59. package/auth-configuration/sso-configuration/template-parts/user-data-mapping.component.d.ts.map +1 -1
  60. package/binary-file-download/binary-file-download.service.d.ts.map +1 -1
  61. package/bookmarks/bookmarks.component.d.ts.map +1 -1
  62. package/bookmarks/bookmarks.service.d.ts.map +1 -1
  63. package/bookmarks/edit-bookmarks/edit-bookmarks.component.d.ts.map +1 -1
  64. package/branding/dark-theme/dark-theme-tab.factory.d.ts.map +1 -1
  65. package/branding/extra-css-branding-editor/extra-css-branding-editor-tab.factory.d.ts.map +1 -1
  66. package/branding/plain-branding-editor/plain-branding-editor-tab.factory.d.ts.map +1 -1
  67. package/branding/shared/lazy/branding-form/branding-form.component.d.ts.map +1 -1
  68. package/branding/shared/lazy/branding-import-modal/branding-import-modal.component.d.ts.map +1 -1
  69. package/branding/shared/lazy/edit-branding-router-outlet/edit-branding-router-outlet.component.d.ts.map +1 -1
  70. package/cockpit-config/cockpit-config.guard.d.ts.map +1 -1
  71. package/cockpit-config/cockpit-configuration.component.d.ts.map +1 -1
  72. package/computed-asset-properties/alarm-count/alarm-count-3-months-computed-property.d.ts +8 -0
  73. package/computed-asset-properties/alarm-count/alarm-count-3-months-computed-property.d.ts.map +1 -0
  74. package/computed-asset-properties/alarm-count/alarm-count-config.component.d.ts +26 -0
  75. package/computed-asset-properties/alarm-count/alarm-count-config.component.d.ts.map +1 -0
  76. package/computed-asset-properties/alarm-count/alarm-count-today-computed-property.d.ts +8 -0
  77. package/computed-asset-properties/alarm-count/alarm-count-today-computed-property.d.ts.map +1 -0
  78. package/computed-asset-properties/alarm-count/alarm-count-value.d.ts +17 -0
  79. package/computed-asset-properties/alarm-count/alarm-count-value.d.ts.map +1 -0
  80. package/computed-asset-properties/alarm-count/alarm-count.model.d.ts +6 -0
  81. package/computed-asset-properties/alarm-count/alarm-count.model.d.ts.map +1 -0
  82. package/computed-asset-properties/c8y-ngx-components-computed-asset-properties.d.ts.map +1 -0
  83. package/computed-asset-properties/child-count/child-assets-count-computed-property.d.ts +14 -0
  84. package/computed-asset-properties/child-count/child-assets-count-computed-property.d.ts.map +1 -0
  85. package/computed-asset-properties/child-count/child-count-value.d.ts +14 -0
  86. package/computed-asset-properties/child-count/child-count-value.d.ts.map +1 -0
  87. package/computed-asset-properties/child-count/child-devices-count-computed-property.d.ts +14 -0
  88. package/computed-asset-properties/child-count/child-devices-count-computed-property.d.ts.map +1 -0
  89. package/computed-asset-properties/common/realtime-value-base.d.ts +32 -0
  90. package/computed-asset-properties/common/realtime-value-base.d.ts.map +1 -0
  91. package/computed-asset-properties/common/realtime-value-handler.d.ts +19 -0
  92. package/computed-asset-properties/common/realtime-value-handler.d.ts.map +1 -0
  93. package/computed-asset-properties/configuration-snapshot/configuration-snapshot-computed-property.d.ts +7 -0
  94. package/computed-asset-properties/configuration-snapshot/configuration-snapshot-computed-property.d.ts.map +1 -0
  95. package/computed-asset-properties/configuration-snapshot/configuration-snapshot-config.component.d.ts +21 -0
  96. package/computed-asset-properties/configuration-snapshot/configuration-snapshot-config.component.d.ts.map +1 -0
  97. package/computed-asset-properties/configuration-snapshot/configuration-snapshot.model.d.ts +8 -0
  98. package/computed-asset-properties/configuration-snapshot/configuration-snapshot.model.d.ts.map +1 -0
  99. package/computed-asset-properties/event-count/event-count-3-months.d.ts +8 -0
  100. package/computed-asset-properties/event-count/event-count-3-months.d.ts.map +1 -0
  101. package/computed-asset-properties/event-count/event-count-config.component.d.ts +18 -0
  102. package/computed-asset-properties/event-count/event-count-config.component.d.ts.map +1 -0
  103. package/computed-asset-properties/event-count/event-count-today.d.ts +8 -0
  104. package/computed-asset-properties/event-count/event-count-today.d.ts.map +1 -0
  105. package/computed-asset-properties/event-count/event-count-value.d.ts +17 -0
  106. package/computed-asset-properties/event-count/event-count-value.d.ts.map +1 -0
  107. package/computed-asset-properties/event-count/event-count.model.d.ts +4 -0
  108. package/computed-asset-properties/event-count/event-count.model.d.ts.map +1 -0
  109. package/computed-asset-properties/index.d.ts +3 -0
  110. package/computed-asset-properties/index.d.ts.map +1 -0
  111. package/computed-asset-properties/last-device-message/last-device-message-computed-property.d.ts +3 -0
  112. package/computed-asset-properties/last-device-message/last-device-message-computed-property.d.ts.map +1 -0
  113. package/computed-asset-properties/last-device-message/last-device-message-value.d.ts +13 -0
  114. package/computed-asset-properties/last-device-message/last-device-message-value.d.ts.map +1 -0
  115. package/computed-asset-properties/last-measurement/last-measurement-computed-property.d.ts +8 -0
  116. package/computed-asset-properties/last-measurement/last-measurement-computed-property.d.ts.map +1 -0
  117. package/computed-asset-properties/last-measurement/last-measurement-config.component.d.ts +48 -0
  118. package/computed-asset-properties/last-measurement/last-measurement-config.component.d.ts.map +1 -0
  119. package/computed-asset-properties/last-measurement/last-measurement-value.d.ts +13 -0
  120. package/computed-asset-properties/last-measurement/last-measurement-value.d.ts.map +1 -0
  121. package/computed-asset-properties/last-measurement/last-measurement.model.d.ts +28 -0
  122. package/computed-asset-properties/last-measurement/last-measurement.model.d.ts.map +1 -0
  123. package/computed-asset-properties/strategies/alarm-count-strategy.d.ts +17 -0
  124. package/computed-asset-properties/strategies/alarm-count-strategy.d.ts.map +1 -0
  125. package/computed-asset-properties/strategies/child-count-strategy.d.ts +14 -0
  126. package/computed-asset-properties/strategies/child-count-strategy.d.ts.map +1 -0
  127. package/computed-asset-properties/strategies/count-strategy-base.d.ts +12 -0
  128. package/computed-asset-properties/strategies/count-strategy-base.d.ts.map +1 -0
  129. package/computed-asset-properties/strategies/event-count-strategy.d.ts +16 -0
  130. package/computed-asset-properties/strategies/event-count-strategy.d.ts.map +1 -0
  131. package/computed-asset-properties/strategies/last-device-message-strategy.d.ts +20 -0
  132. package/computed-asset-properties/strategies/last-device-message-strategy.d.ts.map +1 -0
  133. package/computed-asset-properties/strategies/last-measurement-strategy.d.ts +16 -0
  134. package/computed-asset-properties/strategies/last-measurement-strategy.d.ts.map +1 -0
  135. package/connectivity/abstract-connectivity-node.factory.d.ts.map +1 -1
  136. package/connectivity/actility/actility-tab.factory.d.ts.map +1 -1
  137. package/connectivity/sigfox/sigfox-tab.factory.d.ts.map +1 -1
  138. package/connectivity/sim/sim.module.d.ts.map +1 -1
  139. package/context-dashboard/cockpit-home-dashboard/cockpit-dashboard.component.d.ts.map +1 -1
  140. package/context-dashboard/cockpit-home-dashboard/cockpit-dashboard.model.d.ts.map +1 -1
  141. package/context-dashboard/cockpit-home-dashboard/cockpit-dashboard.module.d.ts.map +1 -1
  142. package/context-dashboard/context-dashboard.component.d.ts.map +1 -1
  143. package/context-dashboard/context-dashboard.model.d.ts +16 -0
  144. package/context-dashboard/context-dashboard.model.d.ts.map +1 -1
  145. package/context-dashboard/context-dashboard.service.d.ts.map +1 -1
  146. package/context-dashboard/dashboard-detail.component.d.ts.map +1 -1
  147. package/context-dashboard/dashboard-detail.service.d.ts.map +1 -1
  148. package/context-dashboard/dashboard-details-tabs.factory.d.ts.map +1 -1
  149. package/context-dashboard/dashboard-settings/dashboard-general-settings.component.d.ts.map +1 -1
  150. package/context-dashboard/dashboard-settings/dashboard-version-history.component.d.ts.map +1 -1
  151. package/context-dashboard/dashboard-settings/typed-dashboard-settings.component.d.ts.map +1 -1
  152. package/context-dashboard/device-info-dashboard/device-info-dashboard.component.d.ts.map +1 -1
  153. package/context-dashboard/device-info-dashboard/device-info-dashboard.module.d.ts.map +1 -1
  154. package/context-dashboard/device-management-home-dashboard/device-management-home-dashboard.component.d.ts.map +1 -1
  155. package/context-dashboard/device-management-home-dashboard/device-management-home-dashboard.module.d.ts.map +1 -1
  156. package/context-dashboard/new-dashboard.guard.d.ts.map +1 -1
  157. package/context-dashboard/widget-config/appearance-settings.component.d.ts.map +1 -1
  158. package/context-dashboard/widget-config.service.d.ts +11 -1
  159. package/context-dashboard/widget-config.service.d.ts.map +1 -1
  160. package/core/action/action.service.d.ts +1 -1
  161. package/core/action-bar/action-bar.service.d.ts +1 -1
  162. package/core/authentication/simplified-auth.service.d.ts +1 -1
  163. package/core/authentication/simplified-auth.service.d.ts.map +1 -1
  164. package/core/bottom-drawer/bottom-drawer.component.d.ts +16 -2
  165. package/core/bottom-drawer/bottom-drawer.component.d.ts.map +1 -1
  166. package/core/bottom-drawer/bottom-drawer.service.d.ts +13 -5
  167. package/core/bottom-drawer/bottom-drawer.service.d.ts.map +1 -1
  168. package/core/breadcrumb/breadcrumb.service.d.ts +1 -1
  169. package/core/common/extension-hooks.d.ts.map +1 -1
  170. package/core/common/options.service.d.ts +1 -1
  171. package/core/common/service-registry.service.d.ts +1 -1
  172. package/core/common/ui-state.service.d.ts +7 -7
  173. package/core/common/ui-state.service.d.ts.map +1 -1
  174. package/core/common/user-preferences/user-preferences.service.d.ts +4 -4
  175. package/core/common/user-preferences/user-preferences.service.d.ts.map +1 -1
  176. package/core/dashboard/widgets-dashboard.component.d.ts +9 -1
  177. package/core/dashboard/widgets-dashboard.component.d.ts.map +1 -1
  178. package/core/data-grid/action-controls-extension.service.d.ts +1 -1
  179. package/core/data-grid/filter-chip/filter-mapper.factory.d.ts +1 -1
  180. package/core/date-picker/date-picker.component.d.ts.map +1 -1
  181. package/core/docs/docs.models.d.ts +1 -1
  182. package/core/docs/docs.module.d.ts +1 -1
  183. package/core/docs/help-and-support-outlet/help-and-support-outlet.module.d.ts +1 -1
  184. package/core/docs/legal-notices-outlet/legal-notices-outlet.module.d.ts +1 -1
  185. package/core/docs/support-outlet/support-outlet.component.d.ts +4 -3
  186. package/core/docs/support-outlet/support-outlet.component.d.ts.map +1 -1
  187. package/core/docs/support-outlet/support-outlet.module.d.ts +1 -1
  188. package/core/drawer/drawer.service.d.ts +1 -1
  189. package/core/dynamic-component/dynamic-component.model.d.ts +18 -4
  190. package/core/dynamic-component/dynamic-component.model.d.ts.map +1 -1
  191. package/core/dynamic-forms/i18n/translate.extension.d.ts.map +1 -1
  192. package/core/feedback-form/feedback-form.component.d.ts +27 -0
  193. package/core/feedback-form/feedback-form.component.d.ts.map +1 -0
  194. package/core/feedback-form/feedback-form.model.d.ts +6 -0
  195. package/core/feedback-form/feedback-form.model.d.ts.map +1 -0
  196. package/core/feedback-form/index.d.ts +2 -0
  197. package/core/feedback-form/index.d.ts.map +1 -0
  198. package/core/i18n/gettext.d.ts +4 -1
  199. package/core/i18n/gettext.d.ts.map +1 -1
  200. package/core/i18n/pattern-messages.data.d.ts +61 -0
  201. package/core/i18n/pattern-messages.data.d.ts.map +1 -1
  202. package/core/i18n/patterns-message.hook.d.ts +1 -1
  203. package/core/index.d.ts +1 -0
  204. package/core/index.d.ts.map +1 -1
  205. package/core/modal/modal.service.d.ts +0 -1
  206. package/core/modal/modal.service.d.ts.map +1 -1
  207. package/core/navigator/navigator-bottom/navigator-bottom.module.d.ts +1 -1
  208. package/core/navigator/navigator-top/navigator-top.module.d.ts +1 -1
  209. package/core/navigator/navigator.module.d.ts +1 -1
  210. package/core/navigator/navigator.service.d.ts +1 -1
  211. package/core/plugins/index.d.ts +1 -0
  212. package/core/plugins/index.d.ts.map +1 -1
  213. package/core/plugins/plugins-injection-token.d.ts +14 -0
  214. package/core/plugins/plugins-injection-token.d.ts.map +1 -0
  215. package/core/plugins/plugins-loader.service.d.ts +7 -21
  216. package/core/plugins/plugins-loader.service.d.ts.map +1 -1
  217. package/core/plugins/plugins-resolve.service.d.ts +1 -0
  218. package/core/plugins/plugins-resolve.service.d.ts.map +1 -1
  219. package/core/preview-feature/preview-feature.component.d.ts.map +1 -1
  220. package/core/preview-feature/preview-feature.service.d.ts +1 -1
  221. package/core/provider-configuration/provider-configuration-hook.d.ts +1 -1
  222. package/core/query-param-handler/index.d.ts +1 -1
  223. package/core/query-param-handler/query-param-bottom-drawer.service.d.ts +1 -1
  224. package/core/query-param-handler/query-param-handler.service.d.ts +1 -1
  225. package/core/query-param-handler/query-param-modal-handler.service.d.ts +1 -1
  226. package/core/router/router.service.d.ts +1 -1
  227. package/core/search/search.service.d.ts +1 -1
  228. package/core/stepper/stepper.service.d.ts +1 -1
  229. package/core/tabs/tab.component.d.ts +2 -2
  230. package/core/tabs/tab.component.d.ts.map +1 -1
  231. package/core/tabs/tab.model.d.ts +2 -2
  232. package/core/tabs/tab.model.d.ts.map +1 -1
  233. package/core/tabs/tabs.service.d.ts +1 -1
  234. package/core/tabs/tabs.service.d.ts.map +1 -1
  235. package/core/ui-settings/ui-settings.module.d.ts +1 -1
  236. package/core/user/change-current-user-password.service.d.ts +10 -0
  237. package/core/user/change-current-user-password.service.d.ts.map +1 -0
  238. package/core/user/index.d.ts +1 -0
  239. package/core/user/index.d.ts.map +1 -1
  240. package/core/user/user-details-drawer/user-details-drawer.module.d.ts +1 -1
  241. package/core/user/user-menu.service.d.ts +1 -1
  242. package/core/user/user.module.d.ts +1 -1
  243. package/core/version/version.model.d.ts +1 -1
  244. package/core/version/version.module.d.ts +1 -1
  245. package/core/wizard/wizard.model.d.ts +1 -1
  246. package/dashboard-details-advanced-tab/advanced-tab.factory.d.ts.map +1 -1
  247. package/dashboard-details-advanced-tab/assign-widget-assets/assign-widget-asset-modal.component.d.ts.map +1 -1
  248. package/dashboard-details-advanced-tab/dashboard-json-editor/dashboard-json-editor.component.d.ts.map +1 -1
  249. package/dashboard-details-advanced-tab/dashboard-json-editor/import-export-widgets.service.d.ts.map +1 -1
  250. package/dashboard-manager/dashboard-manager-tabs.factory.d.ts.map +1 -1
  251. package/dashboard-manager/dashboard-manager.service.d.ts.map +1 -1
  252. package/dashboard-manager/devicemanagement/index.d.ts +1 -1
  253. package/dashboard-manager/type-dashboard-target-assets-grid/type-dashboard-target-assets-grid.component.d.ts.map +1 -1
  254. package/dashboard-manager/type-dashboard-target-assets-modal/type-dashboard-target-assets-modal.component.d.ts.map +1 -1
  255. package/dashboard-manager/type-dashboards-list/device-type-value.grid-column.d.ts.map +1 -1
  256. package/dashboard-manager/type-dashboards-list/type-dashboards-list.component.d.ts.map +1 -1
  257. package/data-grid-columns/asset-type/asset-type-grid-column.d.ts.map +1 -1
  258. package/data-grid-columns/asset-type/asset-type.cell-renderer.component.d.ts.map +1 -1
  259. package/datapoint-explorer/datapoint-explorer-navigation-factory.d.ts.map +1 -1
  260. package/datapoint-explorer/devicemanagement/index.d.ts +3 -0
  261. package/datapoint-explorer/devicemanagement/index.d.ts.map +1 -1
  262. package/datapoint-explorer/view/configuration/workspace-configuration.component.d.ts +4 -2
  263. package/datapoint-explorer/view/configuration/workspace-configuration.component.d.ts.map +1 -1
  264. package/datapoint-explorer/view/create-new-report-modal/create-new-report-modal.component.d.ts.map +1 -1
  265. package/datapoint-explorer/view/datapoint-explorer.model.d.ts +1 -0
  266. package/datapoint-explorer/view/datapoint-explorer.model.d.ts.map +1 -1
  267. package/datapoint-explorer/view/index.d.ts +3 -0
  268. package/datapoint-explorer/view/index.d.ts.map +1 -1
  269. package/datapoint-explorer/view/send-as-widget-to-dashboard-modal/send-as-widget-to-dashboard-modal.component.d.ts.map +1 -1
  270. package/datapoint-explorer/view/send-as-widget-to-report-modal/send-as-widget-to-report-modal.component.d.ts.map +1 -1
  271. package/datapoint-library/datapoint-library.module.d.ts.map +1 -1
  272. package/datapoint-library/details/datapoint-library-details.component.d.ts +1 -2
  273. package/datapoint-library/details/datapoint-library-details.component.d.ts.map +1 -1
  274. package/datapoint-library/list/datapoint-library-list.component.d.ts.map +1 -1
  275. package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form-validation.service.d.ts.map +1 -1
  276. package/datapoint-selector/datapoint-selector-modal/datapoint-selector-modal.component.d.ts.map +1 -1
  277. package/datapoint-selector/datapoint-template-popover/datapoint-template-popover.component.d.ts.map +1 -1
  278. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/data-fetching.service.d.ts.map +1 -1
  279. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-export-selector-file-exporter.service.d.ts.map +1 -1
  280. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-exports-selector-time-range/datapoints-exports-selector-time-range.component.d.ts.map +1 -1
  281. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-modal.component.d.ts.map +1 -1
  282. package/datapoints-export-selector/datapoints-export-selector.model.d.ts.map +1 -1
  283. package/default-subscriptions/default-subscriptions-navigation.factory.d.ts.map +1 -1
  284. package/default-subscriptions/default-subscriptions.component.d.ts.map +1 -1
  285. package/device-grid/columns/alarms.cell-renderer.component.d.ts.map +1 -1
  286. package/device-grid/columns/alarms.device-grid-column.d.ts.map +1 -1
  287. package/device-grid/columns/group.device-grid-column.d.ts.map +1 -1
  288. package/device-grid/columns/imei.device-grid-column.d.ts.map +1 -1
  289. package/device-grid/columns/model.device-grid-column.d.ts.map +1 -1
  290. package/device-grid/columns/name.device-grid-column.d.ts.map +1 -1
  291. package/device-grid/columns/registration-date.device-grid-column.d.ts.map +1 -1
  292. package/device-grid/columns/serial-number.device-grid-column.d.ts.map +1 -1
  293. package/device-grid/columns/status.device-grid-column.d.ts.map +1 -1
  294. package/device-grid/columns/system-id.device-grid-column.d.ts.map +1 -1
  295. package/device-grid/columns/type.device-grid-column.d.ts.map +1 -1
  296. package/device-grid/device-grid.component.d.ts.map +1 -1
  297. package/device-grid/device-grid.service.d.ts.map +1 -1
  298. package/device-list/add-smart-group.component.d.ts.map +1 -1
  299. package/device-list/device-list-navigation.factory.d.ts.map +1 -1
  300. package/device-list/devices.breadcrumb-factory.d.ts.map +1 -1
  301. package/device-map/device-map-navigation.factory.d.ts.map +1 -1
  302. package/device-profile/add-device-profile.component.d.ts.map +1 -1
  303. package/device-profile/device-profile-list.component.d.ts.map +1 -1
  304. package/device-profile/device-profile-navigation.factory.d.ts.map +1 -1
  305. package/device-profile/device-profile.component.d.ts.map +1 -1
  306. package/device-profile/device-profile.service.d.ts.map +1 -1
  307. package/device-profile/device-tab-profile/device-tab-profile.component.d.ts.map +1 -1
  308. package/device-profile/select-configuration-modal.component.d.ts.map +1 -1
  309. package/device-protocols/device-protocols.guard.d.ts.map +1 -1
  310. package/device-provisioned-certificates/device-provisioned-certificates.module.d.ts.map +1 -1
  311. package/device-provisioned-certificates/device-tab-provisioned-certificates.component.d.ts.map +1 -1
  312. package/device-shell/device-shell.module.d.ts.map +1 -1
  313. package/device-shell/shared/device-shell.service.d.ts.map +1 -1
  314. package/device-shell/shell/shell.component.d.ts.map +1 -1
  315. package/diagnostics/diagnostics.module.d.ts.map +1 -1
  316. package/diagnostics/diagnostics.service.d.ts.map +1 -1
  317. package/echart/services/echarts-options.service.d.ts +2 -3
  318. package/echart/services/echarts-options.service.d.ts.map +1 -1
  319. package/ecosystem/application-plugins/application-plugins.component.d.ts.map +1 -1
  320. package/ecosystem/application-plugins/application-plugins.module.d.ts.map +1 -1
  321. package/ecosystem/application-plugins/apps-to-update-remotes-select.component.d.ts.map +1 -1
  322. package/ecosystem/application-plugins/only-latest-filter/only-latest-filter.component.d.ts.map +1 -1
  323. package/ecosystem/application-plugins/orphaned-status-cell-renderer.component.d.ts.map +1 -1
  324. package/ecosystem/application-plugins/plugin-list.service.d.ts.map +1 -1
  325. package/ecosystem/application-plugins/update-plugin-of-app/update-plugin-of-app.component.d.ts.map +1 -1
  326. package/ecosystem/application-properties/application-properties.component.d.ts.map +1 -1
  327. package/ecosystem/application-properties/subscription-modal/subscription-modal.component.d.ts.map +1 -1
  328. package/ecosystem/ecosystem-tabs.factory.d.ts.map +1 -1
  329. package/ecosystem/license-confirm/license-confirm-modal.component.d.ts.map +1 -1
  330. package/ecosystem/license-confirm/license-view.component.d.ts.map +1 -1
  331. package/ecosystem/microservices/add-microservice.component.d.ts.map +1 -1
  332. package/ecosystem/packages/add-package.component.d.ts.map +1 -1
  333. package/ecosystem/packages/deploy-application/deploy-application.component.d.ts.map +1 -1
  334. package/ecosystem/packages/package-list/packages-list.component.d.ts.map +1 -1
  335. package/ecosystem/packages/package-versions/package-versions-list/package-versions-list.component.d.ts.map +1 -1
  336. package/ecosystem/packages/package-versions/packages-versions.component.d.ts.map +1 -1
  337. package/ecosystem/plugin-setup-stepper/plugin-setup-stepper.module.d.ts.map +1 -1
  338. package/ecosystem/shared/add-application.component.d.ts.map +1 -1
  339. package/ecosystem/shared/application-card.component.d.ts.map +1 -1
  340. package/ecosystem/shared/archived-filter/archived-filter.component.d.ts.map +1 -1
  341. package/ecosystem/shared/ecosystem.constants.d.ts.map +1 -1
  342. package/ecosystem/shared/ecosystem.service.d.ts.map +1 -1
  343. package/ecosystem/shared/package-availability.service.d.ts.map +1 -1
  344. package/ecosystem/shared/package-version-select/package-version-select.component.d.ts.map +1 -1
  345. package/ecosystem/shared/upload-archive.component.d.ts.map +1 -1
  346. package/editor/editor.component.d.ts +16 -0
  347. package/editor/editor.component.d.ts.map +1 -1
  348. package/exports/index.d.ts +1 -1
  349. package/exports/index.d.ts.map +1 -1
  350. package/exports/list/exports-grid.service.d.ts.map +1 -1
  351. package/exports/list/exports-list/exports-list.component.d.ts.map +1 -1
  352. package/fesm2022/c8y-ngx-components-actility-device-registration.mjs +2 -1
  353. package/fesm2022/c8y-ngx-components-actility-device-registration.mjs.map +1 -1
  354. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +8 -7
  355. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs.map +1 -1
  356. package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs +2 -1
  357. package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs.map +1 -1
  358. package/fesm2022/c8y-ngx-components-alarms-devicemanagement.mjs +2 -1
  359. package/fesm2022/c8y-ngx-components-alarms-devicemanagement.mjs.map +1 -1
  360. package/fesm2022/c8y-ngx-components-alarms.mjs +40 -2
  361. package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
  362. package/fesm2022/c8y-ngx-components-asset-properties.mjs +608 -97
  363. package/fesm2022/c8y-ngx-components-asset-properties.mjs.map +1 -1
  364. package/fesm2022/c8y-ngx-components-asset-property-grid.component-CRnyUbyz.mjs.map +1 -1
  365. package/fesm2022/c8y-ngx-components-assets-navigator.mjs +70 -23
  366. package/fesm2022/c8y-ngx-components-assets-navigator.mjs.map +1 -1
  367. package/fesm2022/c8y-ngx-components-auth-configuration.mjs +2 -1
  368. package/fesm2022/c8y-ngx-components-auth-configuration.mjs.map +1 -1
  369. package/fesm2022/c8y-ngx-components-binary-file-download.mjs +2 -1
  370. package/fesm2022/c8y-ngx-components-binary-file-download.mjs.map +1 -1
  371. package/fesm2022/c8y-ngx-components-bookmarks.mjs +2 -1
  372. package/fesm2022/c8y-ngx-components-bookmarks.mjs.map +1 -1
  373. package/fesm2022/c8y-ngx-components-branding-dark-theme.mjs +2 -1
  374. package/fesm2022/c8y-ngx-components-branding-dark-theme.mjs.map +1 -1
  375. package/fesm2022/c8y-ngx-components-branding-extra-css-branding-editor.mjs +3 -3
  376. package/fesm2022/c8y-ngx-components-branding-extra-css-branding-editor.mjs.map +1 -1
  377. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs +2 -1
  378. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs.map +1 -1
  379. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +22 -12
  380. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
  381. package/fesm2022/c8y-ngx-components-child-devices.mjs +2 -1
  382. package/fesm2022/c8y-ngx-components-child-devices.mjs.map +1 -1
  383. package/fesm2022/c8y-ngx-components-cockpit-config.mjs +2 -1
  384. package/fesm2022/c8y-ngx-components-cockpit-config.mjs.map +1 -1
  385. package/fesm2022/c8y-ngx-components-computed-asset-properties-alarm-count-config.component-BOpIFCYh.mjs +68 -0
  386. package/fesm2022/c8y-ngx-components-computed-asset-properties-alarm-count-config.component-BOpIFCYh.mjs.map +1 -0
  387. package/fesm2022/c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-D8otkLI8.mjs +73 -0
  388. package/fesm2022/c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-D8otkLI8.mjs.map +1 -0
  389. package/fesm2022/c8y-ngx-components-computed-asset-properties-event-count-config.component-AVm6qa9k.mjs +44 -0
  390. package/fesm2022/c8y-ngx-components-computed-asset-properties-event-count-config.component-AVm6qa9k.mjs.map +1 -0
  391. package/fesm2022/c8y-ngx-components-computed-asset-properties-last-measurement-config.component-CtUoKGuU.mjs +91 -0
  392. package/fesm2022/c8y-ngx-components-computed-asset-properties-last-measurement-config.component-CtUoKGuU.mjs.map +1 -0
  393. package/fesm2022/c8y-ngx-components-computed-asset-properties.mjs +643 -0
  394. package/fesm2022/c8y-ngx-components-computed-asset-properties.mjs.map +1 -0
  395. package/fesm2022/c8y-ngx-components-connectivity.mjs +2 -1
  396. package/fesm2022/c8y-ngx-components-connectivity.mjs.map +1 -1
  397. package/fesm2022/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.mjs +2 -1
  398. package/fesm2022/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.mjs.map +1 -1
  399. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-DjlpSztw.mjs → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-BkcNSexF.mjs} +3 -2
  400. package/fesm2022/c8y-ngx-components-context-dashboard-dashboard-general-settings.component-BkcNSexF.mjs.map +1 -0
  401. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-B2zLhv0X.mjs → c8y-ngx-components-context-dashboard-dashboard-version-history.component-D9W68e7h.mjs} +3 -2
  402. package/fesm2022/c8y-ngx-components-context-dashboard-dashboard-version-history.component-D9W68e7h.mjs.map +1 -0
  403. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +45 -12
  404. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  405. package/fesm2022/{c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-CwfVxTSx.mjs → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-D0lATUjO.mjs} +12 -8
  406. package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-D0lATUjO.mjs.map +1 -0
  407. package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab.mjs +4 -3
  408. package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab.mjs.map +1 -1
  409. package/fesm2022/c8y-ngx-components-dashboard-manager.mjs +2 -1
  410. package/fesm2022/c8y-ngx-components-dashboard-manager.mjs.map +1 -1
  411. package/fesm2022/c8y-ngx-components-data-broker.mjs +2 -1
  412. package/fesm2022/c8y-ngx-components-data-broker.mjs.map +1 -1
  413. package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs +2 -1
  414. package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs.map +1 -1
  415. package/fesm2022/c8y-ngx-components-data-grid-columns.mjs +2 -1
  416. package/fesm2022/c8y-ngx-components-data-grid-columns.mjs.map +1 -1
  417. package/fesm2022/c8y-ngx-components-datapoint-explorer-devicemanagement.mjs +38 -9
  418. package/fesm2022/c8y-ngx-components-datapoint-explorer-devicemanagement.mjs.map +1 -1
  419. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +58 -53
  420. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs.map +1 -1
  421. package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs +2 -1
  422. package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs.map +1 -1
  423. package/fesm2022/c8y-ngx-components-datapoint-library-details.mjs +2 -1
  424. package/fesm2022/c8y-ngx-components-datapoint-library-details.mjs.map +1 -1
  425. package/fesm2022/c8y-ngx-components-datapoint-library-list.mjs +2 -1
  426. package/fesm2022/c8y-ngx-components-datapoint-library-list.mjs.map +1 -1
  427. package/fesm2022/c8y-ngx-components-datapoint-library.mjs +2 -1
  428. package/fesm2022/c8y-ngx-components-datapoint-library.mjs.map +1 -1
  429. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +2 -1
  430. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
  431. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs +2 -1
  432. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -1
  433. package/fesm2022/c8y-ngx-components-default-subscriptions.mjs +2 -1
  434. package/fesm2022/c8y-ngx-components-default-subscriptions.mjs.map +1 -1
  435. package/fesm2022/c8y-ngx-components-device-grid.mjs +3 -3
  436. package/fesm2022/c8y-ngx-components-device-grid.mjs.map +1 -1
  437. package/fesm2022/c8y-ngx-components-device-list.mjs +2 -1
  438. package/fesm2022/c8y-ngx-components-device-list.mjs.map +1 -1
  439. package/fesm2022/c8y-ngx-components-device-map.mjs +2 -1
  440. package/fesm2022/c8y-ngx-components-device-map.mjs.map +1 -1
  441. package/fesm2022/c8y-ngx-components-device-profile.mjs +2 -1
  442. package/fesm2022/c8y-ngx-components-device-profile.mjs.map +1 -1
  443. package/fesm2022/c8y-ngx-components-device-protocol-object-mappings.mjs +3 -2
  444. package/fesm2022/c8y-ngx-components-device-protocol-object-mappings.mjs.map +1 -1
  445. package/fesm2022/c8y-ngx-components-device-protocols.mjs +2 -1
  446. package/fesm2022/c8y-ngx-components-device-protocols.mjs.map +1 -1
  447. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +2 -1
  448. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs.map +1 -1
  449. package/fesm2022/c8y-ngx-components-device-shell.mjs +2 -1
  450. package/fesm2022/c8y-ngx-components-device-shell.mjs.map +1 -1
  451. package/fesm2022/c8y-ngx-components-diagnostics.mjs +2 -1
  452. package/fesm2022/c8y-ngx-components-diagnostics.mjs.map +1 -1
  453. package/fesm2022/c8y-ngx-components-echart.mjs +6 -8
  454. package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
  455. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +2 -1
  456. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
  457. package/fesm2022/c8y-ngx-components-ecosystem-license-confirm.mjs +2 -1
  458. package/fesm2022/c8y-ngx-components-ecosystem-license-confirm.mjs.map +1 -1
  459. package/fesm2022/c8y-ngx-components-ecosystem-plugin-setup-stepper.mjs +2 -1
  460. package/fesm2022/c8y-ngx-components-ecosystem-plugin-setup-stepper.mjs.map +1 -1
  461. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +2 -1
  462. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
  463. package/fesm2022/c8y-ngx-components-ecosystem.mjs +2 -1
  464. package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
  465. package/fesm2022/c8y-ngx-components-editor.mjs +39 -1
  466. package/fesm2022/c8y-ngx-components-editor.mjs.map +1 -1
  467. package/fesm2022/c8y-ngx-components-events.mjs +1 -1
  468. package/fesm2022/c8y-ngx-components-events.mjs.map +1 -1
  469. package/fesm2022/c8y-ngx-components-exports-list.mjs +2 -1
  470. package/fesm2022/c8y-ngx-components-exports-list.mjs.map +1 -1
  471. package/fesm2022/c8y-ngx-components-exports.mjs +2 -1
  472. package/fesm2022/c8y-ngx-components-exports.mjs.map +1 -1
  473. package/fesm2022/c8y-ngx-components-file-preview.mjs +2 -1
  474. package/fesm2022/c8y-ngx-components-file-preview.mjs.map +1 -1
  475. package/fesm2022/c8y-ngx-components-files-repository.mjs +2 -1
  476. package/fesm2022/c8y-ngx-components-files-repository.mjs.map +1 -1
  477. package/fesm2022/c8y-ngx-components-icon-selector.mjs +2 -1
  478. package/fesm2022/c8y-ngx-components-icon-selector.mjs.map +1 -1
  479. package/fesm2022/c8y-ngx-components-location.mjs +2 -1
  480. package/fesm2022/c8y-ngx-components-location.mjs.map +1 -1
  481. package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs +2 -1
  482. package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs.map +1 -1
  483. package/fesm2022/c8y-ngx-components-map.mjs +2 -1
  484. package/fesm2022/c8y-ngx-components-map.mjs.map +1 -1
  485. package/fesm2022/c8y-ngx-components-messaging-management.mjs +2 -1
  486. package/fesm2022/c8y-ngx-components-messaging-management.mjs.map +1 -1
  487. package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs +2 -1
  488. package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs.map +1 -1
  489. package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs +2 -1
  490. package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs.map +1 -1
  491. package/fesm2022/c8y-ngx-components-operations-bulk-operation-stepper.mjs +2 -1
  492. package/fesm2022/c8y-ngx-components-operations-bulk-operation-stepper.mjs.map +1 -1
  493. package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs +2 -1
  494. package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs.map +1 -1
  495. package/fesm2022/c8y-ngx-components-operations-create-bulk-operation-details.mjs +2 -1
  496. package/fesm2022/c8y-ngx-components-operations-create-bulk-operation-details.mjs.map +1 -1
  497. package/fesm2022/c8y-ngx-components-operations-grid-columns.mjs +2 -1
  498. package/fesm2022/c8y-ngx-components-operations-grid-columns.mjs.map +1 -1
  499. package/fesm2022/c8y-ngx-components-operations-operations-list-item-details.mjs +2 -1
  500. package/fesm2022/c8y-ngx-components-operations-operations-list-item-details.mjs.map +1 -1
  501. package/fesm2022/c8y-ngx-components-operations-operations-list.mjs +2 -1
  502. package/fesm2022/c8y-ngx-components-operations-operations-list.mjs.map +1 -1
  503. package/fesm2022/c8y-ngx-components-operations-shared.mjs +2 -1
  504. package/fesm2022/c8y-ngx-components-operations-shared.mjs.map +1 -1
  505. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-configuration.mjs +4 -4
  506. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-configuration.mjs.map +1 -1
  507. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-device-profile.mjs +4 -4
  508. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-device-profile.mjs.map +1 -1
  509. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-firmware.mjs +4 -4
  510. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-firmware.mjs.map +1 -1
  511. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-software.mjs +4 -4
  512. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-software.mjs.map +1 -1
  513. package/fesm2022/c8y-ngx-components-operations.mjs +2 -1
  514. package/fesm2022/c8y-ngx-components-operations.mjs.map +1 -1
  515. package/fesm2022/c8y-ngx-components-pending-mo-request.mjs +2 -1
  516. package/fesm2022/c8y-ngx-components-pending-mo-request.mjs.map +1 -1
  517. package/fesm2022/c8y-ngx-components-platform-configuration.mjs +2 -1
  518. package/fesm2022/c8y-ngx-components-platform-configuration.mjs.map +1 -1
  519. package/fesm2022/c8y-ngx-components-protocol-lpwan.mjs +2 -1
  520. package/fesm2022/c8y-ngx-components-protocol-lpwan.mjs.map +1 -1
  521. package/fesm2022/c8y-ngx-components-protocol-opcua-mappings.mjs +1 -1
  522. package/fesm2022/c8y-ngx-components-protocol-opcua-mappings.mjs.map +1 -1
  523. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +2 -1
  524. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs.map +1 -1
  525. package/fesm2022/c8y-ngx-components-register-device.mjs +2 -1
  526. package/fesm2022/c8y-ngx-components-register-device.mjs.map +1 -1
  527. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +3 -3
  528. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs.map +1 -1
  529. package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs +2 -1
  530. package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs.map +1 -1
  531. package/fesm2022/c8y-ngx-components-remote-access-shared.mjs +2 -1
  532. package/fesm2022/c8y-ngx-components-remote-access-shared.mjs.map +1 -1
  533. package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs +2 -1
  534. package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs.map +1 -1
  535. package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs +2 -1
  536. package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs.map +1 -1
  537. package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +3 -3
  538. package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs.map +1 -1
  539. package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs +2 -1
  540. package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs.map +1 -1
  541. package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs +2 -1
  542. package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs.map +1 -1
  543. package/fesm2022/c8y-ngx-components-replace-device.mjs +2 -1
  544. package/fesm2022/c8y-ngx-components-replace-device.mjs.map +1 -1
  545. package/fesm2022/c8y-ngx-components-report-dashboard.mjs +2 -1
  546. package/fesm2022/c8y-ngx-components-report-dashboard.mjs.map +1 -1
  547. package/fesm2022/c8y-ngx-components-reports.mjs +2 -1
  548. package/fesm2022/c8y-ngx-components-reports.mjs.map +1 -1
  549. package/fesm2022/c8y-ngx-components-repository-configuration.mjs +2 -1
  550. package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
  551. package/fesm2022/c8y-ngx-components-repository-firmware.mjs +2 -1
  552. package/fesm2022/c8y-ngx-components-repository-firmware.mjs.map +1 -1
  553. package/fesm2022/c8y-ngx-components-repository-shared.mjs +3 -2
  554. package/fesm2022/c8y-ngx-components-repository-shared.mjs.map +1 -1
  555. package/fesm2022/c8y-ngx-components-repository-software.mjs +2 -1
  556. package/fesm2022/c8y-ngx-components-repository-software.mjs.map +1 -1
  557. package/fesm2022/c8y-ngx-components-search.mjs +2 -1
  558. package/fesm2022/c8y-ngx-components-search.mjs.map +1 -1
  559. package/fesm2022/c8y-ngx-components-sensor-phone-sensor-phone-modal.mjs +2 -1
  560. package/fesm2022/c8y-ngx-components-sensor-phone-sensor-phone-modal.mjs.map +1 -1
  561. package/fesm2022/c8y-ngx-components-sensor-phone.mjs +3 -2
  562. package/fesm2022/c8y-ngx-components-sensor-phone.mjs.map +1 -1
  563. package/fesm2022/c8y-ngx-components-services-service-command-tab.mjs +2 -1
  564. package/fesm2022/c8y-ngx-components-services-service-command-tab.mjs.map +1 -1
  565. package/fesm2022/c8y-ngx-components-services-shared.mjs +1 -1
  566. package/fesm2022/c8y-ngx-components-services-shared.mjs.map +1 -1
  567. package/fesm2022/c8y-ngx-components-services.mjs +2 -1
  568. package/fesm2022/c8y-ngx-components-services.mjs.map +1 -1
  569. package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs +2 -1
  570. package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs.map +1 -1
  571. package/fesm2022/c8y-ngx-components-sms-gateway.mjs +3 -2
  572. package/fesm2022/c8y-ngx-components-sms-gateway.mjs.map +1 -1
  573. package/fesm2022/c8y-ngx-components-sub-assets.mjs +13 -9
  574. package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
  575. package/fesm2022/c8y-ngx-components-tenants.mjs +37 -37
  576. package/fesm2022/c8y-ngx-components-tenants.mjs.map +1 -1
  577. package/fesm2022/c8y-ngx-components-tracking.mjs +2 -1
  578. package/fesm2022/c8y-ngx-components-tracking.mjs.map +1 -1
  579. package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs +5 -5
  580. package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs.map +1 -1
  581. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +2 -1
  582. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs.map +1 -1
  583. package/fesm2022/c8y-ngx-components-upgrade.mjs +10 -3
  584. package/fesm2022/c8y-ngx-components-upgrade.mjs.map +1 -1
  585. package/fesm2022/c8y-ngx-components-user-roles.mjs +2 -1
  586. package/fesm2022/c8y-ngx-components-user-roles.mjs.map +1 -1
  587. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs +2 -1
  588. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs.map +1 -1
  589. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-all-critical-alarms.mjs +2 -1
  590. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-all-critical-alarms.mjs.map +1 -1
  591. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-recent-alarms.mjs +2 -1
  592. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-recent-alarms.mjs.map +1 -1
  593. package/fesm2022/c8y-ngx-components-widgets-definitions-applications.mjs +2 -1
  594. package/fesm2022/c8y-ngx-components-widgets-definitions-applications.mjs.map +1 -1
  595. package/fesm2022/c8y-ngx-components-widgets-definitions-asset-notes.mjs +2 -1
  596. package/fesm2022/c8y-ngx-components-widgets-definitions-asset-notes.mjs.map +1 -1
  597. package/fesm2022/c8y-ngx-components-widgets-definitions-cockpit-legacy-welcome.mjs +2 -1
  598. package/fesm2022/c8y-ngx-components-widgets-definitions-cockpit-legacy-welcome.mjs.map +1 -1
  599. package/fesm2022/c8y-ngx-components-widgets-definitions-cockpit-welcome.mjs +2 -1
  600. package/fesm2022/c8y-ngx-components-widgets-definitions-cockpit-welcome.mjs.map +1 -1
  601. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs +2 -1
  602. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs.map +1 -1
  603. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs +2 -1
  604. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs.map +1 -1
  605. package/fesm2022/c8y-ngx-components-widgets-definitions-device-control-message.mjs +2 -1
  606. package/fesm2022/c8y-ngx-components-widgets-definitions-device-control-message.mjs.map +1 -1
  607. package/fesm2022/c8y-ngx-components-widgets-definitions-device-management-welcome.mjs +1 -1
  608. package/fesm2022/c8y-ngx-components-widgets-definitions-device-management-welcome.mjs.map +1 -1
  609. package/fesm2022/c8y-ngx-components-widgets-definitions-help-and-service.mjs +2 -1
  610. package/fesm2022/c8y-ngx-components-widgets-definitions-help-and-service.mjs.map +1 -1
  611. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs +3 -3
  612. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs.map +1 -1
  613. package/fesm2022/c8y-ngx-components-widgets-definitions-image.mjs +3 -6
  614. package/fesm2022/c8y-ngx-components-widgets-definitions-image.mjs.map +1 -1
  615. package/fesm2022/c8y-ngx-components-widgets-definitions-info-gauge.mjs +2 -1
  616. package/fesm2022/c8y-ngx-components-widgets-definitions-info-gauge.mjs.map +1 -1
  617. package/fesm2022/c8y-ngx-components-widgets-definitions-kpi.mjs +2 -1
  618. package/fesm2022/c8y-ngx-components-widgets-definitions-kpi.mjs.map +1 -1
  619. package/fesm2022/c8y-ngx-components-widgets-definitions-linear-gauge.mjs +2 -1
  620. package/fesm2022/c8y-ngx-components-widgets-definitions-linear-gauge.mjs.map +1 -1
  621. package/fesm2022/c8y-ngx-components-widgets-definitions-map.mjs +2 -1
  622. package/fesm2022/c8y-ngx-components-widgets-definitions-map.mjs.map +1 -1
  623. package/fesm2022/c8y-ngx-components-widgets-definitions-markdown.mjs +2 -2
  624. package/fesm2022/c8y-ngx-components-widgets-definitions-markdown.mjs.map +1 -1
  625. package/fesm2022/c8y-ngx-components-widgets-definitions-quick-links.mjs +2 -1
  626. package/fesm2022/c8y-ngx-components-widgets-definitions-quick-links.mjs.map +1 -1
  627. package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs +2 -1
  628. package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs.map +1 -1
  629. package/fesm2022/c8y-ngx-components-widgets-definitions-silo.mjs +2 -1
  630. package/fesm2022/c8y-ngx-components-widgets-definitions-silo.mjs.map +1 -1
  631. package/fesm2022/c8y-ngx-components-widgets-definitions-three-d-rotation.mjs +2 -1
  632. package/fesm2022/c8y-ngx-components-widgets-definitions-three-d-rotation.mjs.map +1 -1
  633. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +2 -1
  634. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
  635. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-notes.mjs +2 -1
  636. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-notes.mjs.map +1 -1
  637. package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs +9 -6
  638. package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs.map +1 -1
  639. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +2 -1
  640. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs.map +1 -1
  641. package/fesm2022/c8y-ngx-components-widgets-implementations-device-control-message.mjs +2 -1
  642. package/fesm2022/c8y-ngx-components-widgets-implementations-device-control-message.mjs.map +1 -1
  643. package/fesm2022/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs +2 -1
  644. package/fesm2022/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs.map +1 -1
  645. package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs +2 -1
  646. package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs.map +1 -1
  647. package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs +13 -8
  648. package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs.map +1 -1
  649. package/fesm2022/c8y-ngx-components-widgets-implementations-image.mjs +2 -1
  650. package/fesm2022/c8y-ngx-components-widgets-implementations-image.mjs.map +1 -1
  651. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +2 -1
  652. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs.map +1 -1
  653. package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs +2 -1
  654. package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs.map +1 -1
  655. package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs +2 -1
  656. package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs.map +1 -1
  657. package/fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs +2 -1
  658. package/fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs.map +1 -1
  659. package/fesm2022/c8y-ngx-components-widgets-implementations-quick-links.mjs +2 -1
  660. package/fesm2022/c8y-ngx-components-widgets-implementations-quick-links.mjs.map +1 -1
  661. package/fesm2022/c8y-ngx-components-widgets-import-export-config.mjs +3 -10
  662. package/fesm2022/c8y-ngx-components-widgets-import-export-config.mjs.map +1 -1
  663. package/fesm2022/c8y-ngx-components.mjs +789 -531
  664. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  665. package/file-preview/file-preview.component.d.ts.map +1 -1
  666. package/files-repository/files-repository-navigation.factory.d.ts.map +1 -1
  667. package/files-repository/files-repository-upload.component.d.ts.map +1 -1
  668. package/files-repository/files-repository.component.d.ts.map +1 -1
  669. package/files-repository/files-repository.service.d.ts +1 -2
  670. package/files-repository/files-repository.service.d.ts.map +1 -1
  671. package/icon-selector/icon-selector-modal/icon-selector-modal.component.d.ts.map +1 -1
  672. package/icon-selector/icon-selector.component.d.ts.map +1 -1
  673. package/locales/de.po +105 -12
  674. package/locales/es.po +105 -12
  675. package/locales/fr.po +105 -12
  676. package/locales/ja_JP.po +99 -12
  677. package/locales/ko.po +104 -12
  678. package/locales/locales.pot +97 -12
  679. package/locales/nl.po +105 -12
  680. package/locales/pl.po +105 -12
  681. package/locales/pt_BR.po +105 -12
  682. package/locales/zh_CN.po +104 -12
  683. package/locales/zh_TW.po +104 -12
  684. package/location/location-tab.factory.d.ts.map +1 -1
  685. package/location/location.component.d.ts.map +1 -1
  686. package/loriot-device-registration/loriot-device-registration.component.d.ts.map +1 -1
  687. package/loriot-device-registration/loriot-provider.service.d.ts.map +1 -1
  688. package/map/map.component.d.ts.map +1 -1
  689. package/messaging-management/messaging/namespace-list/namespace-item/namespace-item-card/namespace-item-card.component.d.ts.map +1 -1
  690. package/messaging-management/messaging/shared/usage/usage.component.d.ts.map +1 -1
  691. package/messaging-management/messaging/topic/topic-list-view.component.d.ts.map +1 -1
  692. package/messaging-management/messaging/topic/topic-subscribers-view/topic-subscribers-data-grid.service.d.ts.map +1 -1
  693. package/messaging-management/messaging/topic/topic-subscribers-view/topic-subscribers-view.component.d.ts.map +1 -1
  694. package/messaging-management/messaging/topic/topics-data-grid.service.d.ts.map +1 -1
  695. package/messaging-management/navigator/messaging-navigator-factory.d.ts.map +1 -1
  696. package/messaging-management/navigator/topic-details-tab.factory.d.ts.map +1 -1
  697. package/operations/bulk-operation-list-item/bulk-operation-list-item.component.d.ts.map +1 -1
  698. package/operations/bulk-operation-list-item/modals/bulk-operations-reschedule-modal.component.d.ts.map +1 -1
  699. package/operations/bulk-operation-scheduler/operation-scheduler.component.d.ts.map +1 -1
  700. package/operations/bulk-operation-stepper/bulk-operation-stepper.component.d.ts.map +1 -1
  701. package/operations/bulk-single-operations-list/single-operation-item.component.d.ts.map +1 -1
  702. package/operations/bulk-single-operations-list/single-operations-list.component.d.ts.map +1 -1
  703. package/operations/factories/bulk-operations-tab.factory.d.ts.map +1 -1
  704. package/operations/grid-columns/creation-time.grid-column.d.ts.map +1 -1
  705. package/operations/grid-columns/device.grid-column.d.ts.map +1 -1
  706. package/operations/grid-columns/failure-reason.grid-column.d.ts.map +1 -1
  707. package/operations/grid-columns/status.grid-column.d.ts.map +1 -1
  708. package/operations/operations-list/device-control.feature.d.ts.map +1 -1
  709. package/operations/operations-list/operations-list-item.component.d.ts.map +1 -1
  710. package/operations/operations-list/operations-list.component.d.ts.map +1 -1
  711. package/operations/operations-list/single-operations-tab.factory.d.ts.map +1 -1
  712. package/operations/operations-list-item-details/operation-details-tabs.component.d.ts.map +1 -1
  713. package/operations/shared/nav.factory.d.ts.map +1 -1
  714. package/operations/shared/operations.service.d.ts.map +1 -1
  715. package/operations/stepper-bulk-type-configuration/stepper-bulk-type-configuration.component.d.ts.map +1 -1
  716. package/operations/stepper-bulk-type-device-profile/stepper-bulk-type-device-profile.component.d.ts.map +1 -1
  717. package/operations/stepper-bulk-type-firmware/stepper-bulk-type-firmware.component.d.ts.map +1 -1
  718. package/operations/stepper-bulk-type-software/select-software-step.component.d.ts.map +1 -1
  719. package/operations/stepper-bulk-type-software/stepper-bulk-type-software.component.d.ts.map +1 -1
  720. package/package.json +1 -1
  721. package/pending-mo-request/pending-mo-request-interceptor.d.ts.map +1 -1
  722. package/pending-mo-request/pending-mo-request.service.d.ts.map +1 -1
  723. package/platform-configuration/platform-configuration-form-provider.service.d.ts.map +1 -1
  724. package/protocol-lpwan/lpwan-protocol.module.d.ts.map +1 -1
  725. package/protocol-lpwan/lpwan-set-connections.component.d.ts.map +1 -1
  726. package/protocol-lpwan/lpwan-set-device-protocol.component.d.ts.map +1 -1
  727. package/protocol-lpwan/multiple-lns-connectors/actility-multiple-lns-connector.component.d.ts.map +1 -1
  728. package/protocol-lpwan/multiple-lns-connectors/connection-info-with-download-csv.component.d.ts.map +1 -1
  729. package/protocol-lpwan/multiple-lns-connectors/loriot/loriot-multiple-lns-connector.component.d.ts.map +1 -1
  730. package/protocol-lpwan/multiple-lns-connectors/no-connections-found.component.d.ts.map +1 -1
  731. package/protocol-lpwan/multiple-lns-connectors/sigfox-multiple-lns-connector.component.d.ts.map +1 -1
  732. package/protocol-opcua/opcua-address-space.component.d.ts.map +1 -1
  733. package/protocol-opcua/opcua-device-protocol-detail.component.d.ts.map +1 -1
  734. package/protocol-opcua/opcua-server-config.component.d.ts.map +1 -1
  735. package/protocol-opcua/opcua-servers.component.d.ts.map +1 -1
  736. package/register-device/bulk/bulk-device-registration-modal.component.d.ts.map +1 -1
  737. package/register-device/device-registration-view.component.d.ts.map +1 -1
  738. package/register-device/extensible/base-extensible-device-registration.service.d.ts.map +1 -1
  739. package/register-device/extensible/bulk/extensible-bulk-device-registration-modal.component.d.ts.map +1 -1
  740. package/register-device/extensible/bulk/extensible-bulk-device-registration.service.d.ts.map +1 -1
  741. package/register-device/extensible/single/extensible-device-registration-modal.component.d.ts.map +1 -1
  742. package/register-device/extensible/single/extensible-device-registration-stepper.component.d.ts.map +1 -1
  743. package/register-device/extensible/single/extensible-device-registration.service.d.ts.map +1 -1
  744. package/register-device/general/general-device-registration.component.d.ts.map +1 -1
  745. package/register-device/register-device-navigation.factory.d.ts.map +1 -1
  746. package/register-device/register-device.service.d.ts.map +1 -1
  747. package/remote-access/configurations/remote-access-configuration-list/remote-access-configuration-list.component.d.ts.map +1 -1
  748. package/remote-access/configurations/remote-access-pick-protocol-modal/remote-access-pick-protocol-modal.component.d.ts.map +1 -1
  749. package/remote-access/passthrough/index.d.ts +1 -1
  750. package/remote-access/passthrough/index.d.ts.map +1 -1
  751. package/remote-access/shared/remote-access-basic-endpoint-modal/remote-access-basic-endpoint-modal.component.d.ts.map +1 -1
  752. package/remote-access/ssh/index.d.ts.map +1 -1
  753. package/remote-access/telnet/index.d.ts.map +1 -1
  754. package/remote-access/vnc/index.d.ts.map +1 -1
  755. package/replace-device/replace-device-grid-action.factory.d.ts.map +1 -1
  756. package/replace-device/replace-device-wizard/replace-device-wizard.component.d.ts.map +1 -1
  757. package/replace-device/replace-device-wizard/replace-device-wizard.service.d.ts.map +1 -1
  758. package/replace-device/replace-device.service.d.ts.map +1 -1
  759. package/report-dashboard/report-dashboard-list.component.d.ts.map +1 -1
  760. package/report-dashboard/report-dashboard-navigation.factory.d.ts.map +1 -1
  761. package/reports/export-schedules.component.d.ts.map +1 -1
  762. package/repository/configuration/device-tab/configuration-repository-device-tab.module.d.ts.map +1 -1
  763. package/repository/configuration/device-tab/save-to-repository.component.d.ts.map +1 -1
  764. package/repository/configuration/device-tab/text-based-configuration.component.d.ts.map +1 -1
  765. package/repository/configuration/list/configuration-detail.component.d.ts.map +1 -1
  766. package/repository/configuration/list/configuration-list.component.d.ts.map +1 -1
  767. package/repository/configuration/list/configuration-repository-navigation-factory.d.ts.map +1 -1
  768. package/repository/firmware/device-tab/firmware-device-tab.component.d.ts.map +1 -1
  769. package/repository/firmware/device-tab/firmware-repository-device-tab.module.d.ts.map +1 -1
  770. package/repository/firmware/list/add-firmware-modal.component.d.ts.map +1 -1
  771. package/repository/firmware/list/add-firmware-patch-modal.component.d.ts.map +1 -1
  772. package/repository/firmware/list/firmware-details.component.d.ts.map +1 -1
  773. package/repository/firmware/list/firmware-list.component.d.ts.map +1 -1
  774. package/repository/firmware/list/firmware-repository-navigation-factory.d.ts.map +1 -1
  775. package/repository/shared/columns/description.grid-column.d.ts.map +1 -1
  776. package/repository/shared/columns/device-type.grid-column.d.ts.map +1 -1
  777. package/repository/shared/columns/file.grid-column.d.ts.map +1 -1
  778. package/repository/shared/columns/name.grid-column.d.ts.map +1 -1
  779. package/repository/shared/columns/type.filtering-form-renderer.component.d.ts.map +1 -1
  780. package/repository/shared/columns/type.grid-column.d.ts.map +1 -1
  781. package/repository/shared/columns/versions.grid-column.d.ts.map +1 -1
  782. package/repository/shared/repository.service.d.ts.map +1 -1
  783. package/repository/shared/select-modal/repository-select-modal.component.d.ts +1 -1
  784. package/repository/shared/select-modal/repository-select-modal.component.d.ts.map +1 -1
  785. package/repository/shared/software-type/software-type.component.d.ts.map +1 -1
  786. package/repository/software/device-tab/installed-software.component.d.ts.map +1 -1
  787. package/repository/software/device-tab/software-repository-device-tab.module.d.ts.map +1 -1
  788. package/repository/software/list/add-software-modal.component.d.ts.map +1 -1
  789. package/repository/software/list/software-details.component.d.ts.map +1 -1
  790. package/repository/software/list/software-list.component.d.ts.map +1 -1
  791. package/repository/software/list/software-repository-navigation-factory.d.ts.map +1 -1
  792. package/search/columns/asset-type-search-grid-column.d.ts.map +1 -1
  793. package/search/search-grid.component.d.ts.map +1 -1
  794. package/search/search-results.component.d.ts.map +1 -1
  795. package/sensor-phone/connect-smartphone.factory.d.ts.map +1 -1
  796. package/sensor-phone/sensor-phone-modal/sensor-phone-modal.component.d.ts.map +1 -1
  797. package/sensor-phone/sensor-phone-modal/sensor-phone.service.d.ts.map +1 -1
  798. package/services/service-command-tab/service-command.feature.d.ts.map +1 -1
  799. package/services/services-device-tab/columns/last-updated-date.device-grid-column.d.ts.map +1 -1
  800. package/services/services-device-tab/columns/name.grid-column.d.ts.map +1 -1
  801. package/services/services-device-tab/columns/service-type.grid-column.d.ts.map +1 -1
  802. package/services/services-device-tab/columns/status.grid-column.d.ts.map +1 -1
  803. package/services/services-device-tab/services-device-tab.component.d.ts.map +1 -1
  804. package/services/services-device-tab/services-device-tab.module.d.ts.map +1 -1
  805. package/services/services-device-tab/services.breadcrumb-factory.d.ts.map +1 -1
  806. package/services/shared/service-command.service.d.ts.map +1 -1
  807. package/services/status-options/status-options.model.d.ts.map +1 -1
  808. package/sigfox-device-registration/sigfox-device-registration.component.d.ts.map +1 -1
  809. package/sigfox-device-registration/sigfox-provider.service.d.ts.map +1 -1
  810. package/sms-gateway/sms-gateway.module.d.ts.map +1 -1
  811. package/sub-assets/add-group/add-group.component.d.ts.map +1 -1
  812. package/sub-assets/asset-properties-item.component.d.ts.map +1 -1
  813. package/sub-assets/asset-properties.component.d.ts.map +1 -1
  814. package/sub-assets/assign-devices/assign-child-devices.component.d.ts.map +1 -1
  815. package/sub-assets/assign-devices/assign-devices.component.d.ts.map +1 -1
  816. package/sub-assets/delete-assets-modal/delete-assets-modal.component.d.ts.map +1 -1
  817. package/sub-assets/group-info.component.d.ts.map +1 -1
  818. package/sub-assets/sub-assets-grid.component.d.ts.map +1 -1
  819. package/sub-assets/sub-assets.component.d.ts.map +1 -1
  820. package/sub-assets/sub-assets.module.d.ts.map +1 -1
  821. package/sub-assets/sub-assets.service.d.ts.map +1 -1
  822. package/sub-assets/unassign-assets-modal/unassign-modal.component.d.ts.map +1 -1
  823. package/tenants/custom-properties/custom-properties.component.d.ts.map +1 -1
  824. package/tenants/tenant-form/tenant-form.component.d.ts.map +1 -1
  825. package/tenants/tenant-limits/tenant-limits.component.d.ts.map +1 -1
  826. package/tenants/tenant-list/creation-time.filtering-form-renderer.component.d.ts.map +1 -1
  827. package/tenants/tenant-list/tenant-list.component.d.ts.map +1 -1
  828. package/tenants/tenants-navigation.factory.d.ts.map +1 -1
  829. package/tenants/tenants.module.d.ts.map +1 -1
  830. package/tracking/tracking.feature.d.ts.map +1 -1
  831. package/translation-editor/lazy/translation-editor/translation-editor.component.d.ts.map +1 -1
  832. package/trusted-certificates/crl/crl-check-settings.component.d.ts.map +1 -1
  833. package/trusted-certificates/crl/crl-settings.component.d.ts.map +1 -1
  834. package/trusted-certificates/factories/tabs.factory.d.ts.map +1 -1
  835. package/trusted-certificates/factories/trusted-certificates-navigation.factory.d.ts.map +1 -1
  836. package/trusted-certificates/list/add-trusted-certificate.component.d.ts.map +1 -1
  837. package/trusted-certificates/list/trusted-certificate-list.component.d.ts.map +1 -1
  838. package/upgrade/auth-bridge.service.d.ts.map +1 -1
  839. package/upgrade/bridge.service.d.ts.map +1 -1
  840. package/upgrade/ng1/downgraded.services.d.ts +1 -0
  841. package/upgrade/ng1/downgraded.services.d.ts.map +1 -1
  842. package/upgrade/ng1/index.d.ts.map +1 -1
  843. package/user-roles/roles-asset-tree/roles-asset-tree.component.d.ts.map +1 -1
  844. package/widgets/cockpit/index.d.ts +4 -4
  845. package/widgets/definitions/alarms/alarm-list/index.d.ts +1 -1
  846. package/widgets/definitions/alarms/alarm-list/index.d.ts.map +1 -1
  847. package/widgets/definitions/alarms/all-critical-alarms/index.d.ts +1 -1
  848. package/widgets/definitions/alarms/all-critical-alarms/index.d.ts.map +1 -1
  849. package/widgets/definitions/alarms/recent-alarms/index.d.ts +1 -1
  850. package/widgets/definitions/alarms/recent-alarms/index.d.ts.map +1 -1
  851. package/widgets/definitions/applications/index.d.ts +1 -1
  852. package/widgets/definitions/applications/index.d.ts.map +1 -1
  853. package/widgets/definitions/asset-notes/index.d.ts +1 -1
  854. package/widgets/definitions/asset-notes/index.d.ts.map +1 -1
  855. package/widgets/definitions/cockpit-legacy-welcome/index.d.ts +1 -1
  856. package/widgets/definitions/cockpit-legacy-welcome/index.d.ts.map +1 -1
  857. package/widgets/definitions/cockpit-welcome/index.d.ts +1 -1
  858. package/widgets/definitions/cockpit-welcome/index.d.ts.map +1 -1
  859. package/widgets/definitions/datapoints-graph/datapoint-graph-widget-factory.d.ts.map +1 -1
  860. package/widgets/definitions/datapoints-graph/index.d.ts +1 -1
  861. package/widgets/definitions/datapoints-table/index.d.ts +1 -1
  862. package/widgets/definitions/datapoints-table/index.d.ts.map +1 -1
  863. package/widgets/definitions/device-control-message/index.d.ts +1 -1
  864. package/widgets/definitions/device-control-message/index.d.ts.map +1 -1
  865. package/widgets/definitions/help-and-service/index.d.ts +1 -1
  866. package/widgets/definitions/help-and-service/index.d.ts.map +1 -1
  867. package/widgets/definitions/html-widget/html-widget.factory.d.ts.map +1 -1
  868. package/widgets/definitions/html-widget/index.d.ts +1 -1
  869. package/widgets/definitions/image/index.d.ts +5 -3
  870. package/widgets/definitions/image/index.d.ts.map +1 -1
  871. package/widgets/definitions/info-gauge/index.d.ts +2 -3
  872. package/widgets/definitions/info-gauge/index.d.ts.map +1 -1
  873. package/widgets/definitions/kpi/index.d.ts +1 -1
  874. package/widgets/definitions/kpi/index.d.ts.map +1 -1
  875. package/widgets/definitions/linear-gauge/index.d.ts +1 -1
  876. package/widgets/definitions/linear-gauge/index.d.ts.map +1 -1
  877. package/widgets/definitions/map/index.d.ts +1 -1
  878. package/widgets/definitions/map/index.d.ts.map +1 -1
  879. package/widgets/definitions/markdown/index.d.ts +5 -3
  880. package/widgets/definitions/markdown/index.d.ts.map +1 -1
  881. package/widgets/definitions/quick-links/index.d.ts +1 -1
  882. package/widgets/definitions/quick-links/index.d.ts.map +1 -1
  883. package/widgets/definitions/radial-gauge/index.d.ts +1 -1
  884. package/widgets/definitions/radial-gauge/index.d.ts.map +1 -1
  885. package/widgets/definitions/silo/index.d.ts +1 -1
  886. package/widgets/definitions/silo/index.d.ts.map +1 -1
  887. package/widgets/definitions/three-d-rotation/index.d.ts +1 -1
  888. package/widgets/definitions/three-d-rotation/index.d.ts.map +1 -1
  889. package/widgets/implementations/alarms/alarm-list-widget-config/alarm-list-widget-config.component.d.ts.map +1 -1
  890. package/widgets/implementations/alarms/alarm-list-widget-view/alarm-list-widget.component.d.ts.map +1 -1
  891. package/widgets/implementations/alarms/alarm-list-widget.model.d.ts.map +1 -1
  892. package/widgets/implementations/alarms/alarm-widget-alarms-reload.component.d.ts.map +1 -1
  893. package/widgets/implementations/cockpit-welcome/welcome.component.d.ts +3 -2
  894. package/widgets/implementations/cockpit-welcome/welcome.component.d.ts.map +1 -1
  895. package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-reload/datapoints-reload.component.d.ts.map +1 -1
  896. package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table/datapoints-table.component.d.ts.map +1 -1
  897. package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table-view.component.d.ts.map +1 -1
  898. package/widgets/implementations/datapoints-table/datapoints-table-widget.model.d.ts.map +1 -1
  899. package/widgets/implementations/datapoints-table/date-range-picker.component.d.ts.map +1 -1
  900. package/widgets/implementations/device-control-message/device-control-message-widget-view/device-control-message-widget-view.component.d.ts.map +1 -1
  901. package/widgets/implementations/device-management-welcome/welcome.component.d.ts.map +1 -1
  902. package/widgets/implementations/help-and-service-widget/help-and-service-view/help-and-service-view.component.d.ts.map +1 -1
  903. package/widgets/implementations/html-widget/advanced-settings/advanced-settings.component.d.ts.map +1 -1
  904. package/widgets/implementations/html-widget/html-widget-config.service.d.ts.map +1 -1
  905. package/widgets/implementations/html-widget/widget-code-editor-section/widget-code-editor.component.d.ts +5 -3
  906. package/widgets/implementations/html-widget/widget-code-editor-section/widget-code-editor.component.d.ts.map +1 -1
  907. package/widgets/implementations/image/image-widget-config/image-widget-config.component.d.ts.map +1 -1
  908. package/widgets/implementations/image/image-widget.service.d.ts +1 -2
  909. package/widgets/implementations/image/image-widget.service.d.ts.map +1 -1
  910. package/widgets/implementations/info-gauge/info-gauge-widget-config/info-gauge-widget-config.component.d.ts.map +1 -1
  911. package/widgets/implementations/linear-gauge/linear-gauge-widget-view/linear-gauge-widget-view.component.d.ts.map +1 -1
  912. package/widgets/implementations/map/map-widget-config.component.d.ts.map +1 -1
  913. package/widgets/implementations/map/map-widget.component.d.ts.map +1 -1
  914. package/widgets/implementations/markdown/markdown-widget-config/markdown-widget-config.component.d.ts.map +1 -1
  915. package/widgets/implementations/markdown/markdown-widget.service.d.ts.map +1 -1
  916. package/widgets/implementations/quick-links/quick-links-widget-config/quick-links-widget-config.component.d.ts.map +1 -1
  917. package/widgets/import-export-config/config-target-export.d.ts +3 -1
  918. package/widgets/import-export-config/config-target-export.d.ts.map +1 -1
  919. package/widgets/import-export-config/config-target-import.d.ts +3 -1
  920. package/widgets/import-export-config/config-target-import.d.ts.map +1 -1
  921. package/widgets/import-export-config/device-import-export.d.ts +3 -1
  922. package/widgets/import-export-config/device-import-export.d.ts.map +1 -1
  923. package/fesm2022/c8y-ngx-components-context-dashboard-dashboard-general-settings.component-DjlpSztw.mjs.map +0 -1
  924. package/fesm2022/c8y-ngx-components-context-dashboard-dashboard-version-history.component-B2zLhv0X.mjs.map +0 -1
  925. package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-CwfVxTSx.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-alarm-event-selector.mjs","sources":["../../alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.service.ts","../../alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.component.ts","../../alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.component.html","../../alarm-event-selector/alarm-event-selector.model.ts","../../alarm-event-selector/alarm-event-selector.service.ts","../../alarm-event-selector/custom-alarm-event-form/custom-alarm-event-form.component.ts","../../alarm-event-selector/custom-alarm-event-form/custom-alarm-event-form.component.html","../../alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.ts","../../alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.html","../../alarm-event-selector/pipes/includes-alarm.pipe.ts","../../alarm-event-selector/alarm-event-selector.component.ts","../../alarm-event-selector/alarm-event-selector.component.html","../../alarm-event-selector/alarm-event-selector-modal/alarm-event-selector-modal.component.ts","../../alarm-event-selector/alarm-event-selector-modal/alarm-event-selector-modal.component.html","../../alarm-event-selector/alarm-event-selector-modal/alarm-event-selector-modal.service.ts","../../alarm-event-selector/alarm-event-selection-list/alarm-event-selection-list.component.ts","../../alarm-event-selector/alarm-event-selection-list/alarm-event-selection-list.component.html","../../alarm-event-selector/alarm-event-selector.module.ts","../../alarm-event-selector/c8y-ngx-components-alarm-event-selector.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\nimport { AlarmOrEvent } from '../alarm-event-selector.model';\n\n@Injectable({ providedIn: 'root' })\nexport class AlarmEventAttributesFormService {\n duplicateTypeValidator(selectedItems: AlarmOrEvent[]) {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value || !selectedItems?.length) {\n return null;\n }\n const isDuplicate = selectedItems.some(\n item => item.filters?.type?.toLowerCase() === control.value.toLowerCase()\n );\n return isDuplicate ? { duplicateType: true } : null;\n };\n }\n}\n","import { Component, forwardRef, Input, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormBuilder,\n FormControl,\n FormGroup,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n Validators,\n FormsModule,\n ReactiveFormsModule\n} from '@angular/forms';\nimport { take } from 'rxjs/operators';\nimport { AlarmEventAttributesFormService } from './alarm-event-attributes-form.service';\nimport {\n AlarmOrEvent,\n OmitSelectorProperties,\n SelectedDatapoint,\n TimelineType\n} from '../alarm-event-selector.model';\nimport { IIdentified } from '@c8y/client';\nimport { KPIDetails } from '@c8y/ngx-components/datapoint-selector';\nimport { AlarmEventAttributeForm } from './alarm-event-attributes-form.model';\nimport { NgIf, NgFor } from '@angular/common';\nimport {\n FormGroupComponent,\n RequiredInputPlaceholderDirective,\n MessagesComponent,\n MessageDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\n\n@Component({\n selector: 'c8y-alarm-event-attributes-form',\n templateUrl: './alarm-event-attributes-form.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AlarmEventAttributesFormComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => AlarmEventAttributesFormComponent),\n multi: true\n }\n ],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n NgIf,\n FormGroupComponent,\n RequiredInputPlaceholderDirective,\n MessagesComponent,\n MessageDirective,\n NgFor,\n C8yTranslatePipe\n ]\n})\nexport class AlarmEventAttributesFormComponent implements ControlValueAccessor, Validator, OnInit {\n @Input() timelineType: TimelineType;\n @Input() omitProperties: OmitSelectorProperties = {};\n @Input() selectedItems: AlarmOrEvent[] = [];\n @Input() target: IIdentified;\n @Input() datapoints: KPIDetails[] = [];\n formGroup: FormGroup<AlarmEventAttributeForm>;\n\n constructor(\n private formBuilder: FormBuilder,\n private alarmEventAttributesFormService: AlarmEventAttributesFormService\n ) {}\n\n ngOnInit() {\n this.formGroup = this.formBuilder.group({\n filters: this.formBuilder.group({\n type: new FormControl<string>('', [\n Validators.required,\n this.alarmEventAttributesFormService.duplicateTypeValidator(this.selectedItems)\n ])\n }),\n timelineType: new FormControl<TimelineType>('' as TimelineType),\n selectedDatapoint: new FormControl<null | SelectedDatapoint>(null)\n });\n\n if (!this.omitProperties.label) {\n this.formGroup.addControl('label', new FormControl('', Validators.required));\n }\n if (this.datapoints?.length > 0) {\n this.filterKpis();\n }\n }\n\n validate(_control: AbstractControl): ValidationErrors {\n return this.formGroup?.valid ? null : { formInvalid: {} };\n }\n\n writeValue(obj: any): void {\n this.formGroup.patchValue(obj);\n }\n\n registerOnChange(fn: any): void {\n this.formGroup.valueChanges.subscribe(fn);\n }\n\n registerOnTouched(fn: any): void {\n this.formGroup.valueChanges.pipe(take(1)).subscribe(fn);\n }\n\n setDisabledState(isDisabled: boolean): void {\n isDisabled ? this.formGroup.disable() : this.formGroup.enable();\n }\n\n changeDatapointSelection(event: Event) {\n const selectElement = event.target as HTMLSelectElement;\n const selectedIndex = selectElement.selectedIndex;\n const selectedDatapoint = this.datapoints[selectedIndex];\n const trimmedDatapoint = {\n target: selectedDatapoint.__target.id as string,\n fragment: selectedDatapoint.fragment,\n series: selectedDatapoint.series\n };\n\n this.formGroup.patchValue({ selectedDatapoint: trimmedDatapoint });\n }\n\n trackByFn(_index: number, item: KPIDetails) {\n return `${item.fragment}-${item.series}-${item.__target?.id}`;\n }\n\n private filterKpis() {\n if (this.target && this.target.id) {\n this.datapoints = this.datapoints.filter(dp => dp.__target?.id === this.target.id);\n }\n }\n}\n","<div [formGroup]=\"formGroup\">\n <c8y-form-group\n class=\"form-group-sm\"\n *ngIf=\"formGroup.controls.label\"\n >\n <label class=\"m-0\">{{ 'Label' | translate }}</label>\n <input\n class=\"form-control flex-grow\"\n name=\"label\"\n formControlName=\"label\"\n [placeholder]=\"\n 'e.g. {{ example }}'\n | translate\n : {\n example: timelineType === 'ALARM' ? 'Alarm unavailable' : 'Location update'\n }\n \"\n />\n </c8y-form-group>\n\n <div formGroupName=\"filters\">\n <c8y-form-group class=\"form-group-sm\">\n <label class=\"m-0\">{{ 'Type' | translate }}</label>\n <input\n class=\"form-control flex-grow\"\n name=\"type\"\n formControlName=\"type\"\n [placeholder]=\"\n 'e.g. {{ example }}'\n | translate\n : {\n example:\n timelineType === 'ALARM' ? 'c8y_UnavailabilityAlarm' : 'c8y_LocationUpdate'\n }\n \"\n />\n <c8y-messages>\n <c8y-message\n name=\"duplicateType\"\n [text]=\"'Type already used.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n\n <c8y-form-group\n class=\"form-group-sm\"\n *ngIf=\"datapoints?.length > 0\"\n >\n <label>{{ 'Select data point' | translate }}</label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control input-sm\"\n (change)=\"changeDatapointSelection($event)\"\n >\n <option\n *ngFor=\"let datapoint of datapoints; trackBy: trackByFn\"\n [ngValue]=\"{\n target: datapoint.__target.id,\n fragment: datapoint.fragment,\n series: datapoint.series\n }\"\n [selected]=\"\n datapoint.__target.id === formGroup.value.selectedDatapoint?.target &&\n datapoint.fragment === formGroup.value.selectedDatapoint?.fragment &&\n datapoint.series === formGroup.value.selectedDatapoint?.series\n \"\n >\n {{ datapoint?.label }}\n </option>\n </select>\n </div>\n </c8y-form-group>\n</div>\n","import { IIdentified } from '@c8y/client';\nimport { gettext } from '@c8y/ngx-components';\n\nexport type TimelineType = 'ALARM' | 'EVENT';\n\ntype AlarmOrEventBase = {\n timelineType: TimelineType;\n color: string;\n __active?: boolean;\n label: string;\n filters: {\n type: string;\n };\n __target: IIdentified;\n};\n\nexport type AlarmDetails = AlarmOrEventBase & {\n timelineType: 'ALARM';\n filters: {\n type: string;\n };\n selectedDatapoint?: SelectedDatapoint;\n};\n\nexport type EventDetails = AlarmOrEventBase & {\n timelineType: 'EVENT';\n filters: {\n type: string;\n };\n selectedDatapoint?: SelectedDatapoint;\n};\n\nexport type SelectedDatapoint = {\n target?: string;\n series?: string;\n fragment?: string;\n};\n\nexport type AlarmOrEvent = AlarmDetails | EventDetails;\n\nexport type TimelineTypeTexts = {\n listTitle: string;\n emptyStateIcon: string;\n emptyStateTitle: string;\n emptyStateSubtitle: string;\n addButtonLabel: string;\n addCustomItemButtonLabel: string;\n selectorTitle: string;\n availableItemsTitle: string;\n assetWithNoItemsEmptyStateSubtitle: string;\n largeNumberOfItemsInfo: string;\n selectedItemsTitle: string;\n noSelectedItemsTitle: string;\n recentItemsWarningTitle: string;\n recentItemsWarningText: string;\n addCustomText: string;\n};\n\nexport const EVENT_TEXTS: TimelineTypeTexts = {\n listTitle: gettext('Events'),\n emptyStateIcon: 'online1',\n emptyStateTitle: gettext('No events to display.'),\n emptyStateSubtitle: gettext('Add your first event.'),\n addButtonLabel: gettext('Add event'),\n addCustomItemButtonLabel: gettext('Add custom event'),\n selectorTitle: gettext('Events selector'),\n availableItemsTitle: gettext('Available events'),\n assetWithNoItemsEmptyStateSubtitle: gettext('Select an asset with events from the list.'),\n largeNumberOfItemsInfo: gettext(\n 'Due to the large number, only a subset of events are displayed. Use search to narrow down the number of results.'\n ),\n selectedItemsTitle: gettext('Selected events'),\n noSelectedItemsTitle: gettext('No events selected.'),\n recentItemsWarningTitle: gettext('The list below may not be complete.'),\n recentItemsWarningText: gettext(\n 'Recent events are displayed below. Past events might not be shown.'\n ),\n addCustomText: gettext('Optionally you can add a custom event.')\n};\n\nexport const ALARM_TEXTS: TimelineTypeTexts = {\n listTitle: gettext('Alarms'),\n emptyStateIcon: 'c8y-alarm',\n emptyStateTitle: gettext('No alarms to display.'),\n emptyStateSubtitle: gettext('Add your first alarm.'),\n addButtonLabel: gettext('Add alarm'),\n addCustomItemButtonLabel: gettext('Add custom alarm'),\n selectorTitle: gettext('Alarms selector'),\n availableItemsTitle: gettext('Available alarms'),\n assetWithNoItemsEmptyStateSubtitle: gettext('Select an asset with alarms from the list.'),\n largeNumberOfItemsInfo: gettext(\n 'Due to the large number, only a subset of alarms are displayed. Use search to narrow down the number of results.'\n ),\n selectedItemsTitle: gettext('Selected alarms'),\n noSelectedItemsTitle: gettext('No alarms selected.'),\n recentItemsWarningTitle: gettext('The list below may not be complete.'),\n recentItemsWarningText: gettext(\n 'Recent alarms are displayed below. Past alarms might not be shown.'\n ),\n addCustomText: gettext('Optionally you can add a custom alarm.')\n};\n\n/**\n * The configuration for the alarms-events selector modal if some properties should be omitted.\n */\nexport type OmitSelectorProperties = {\n color?: boolean;\n label?: boolean;\n};\n","import { Injectable } from '@angular/core';\nimport { AlarmService, EventService, IAlarm, IEvent, IIdentified } from '@c8y/client';\nimport { ColorService } from '@c8y/ngx-components';\nimport { uniqBy } from 'lodash-es';\nimport {\n ALARM_TEXTS,\n AlarmDetails,\n AlarmOrEvent,\n EVENT_TEXTS,\n EventDetails,\n TimelineType,\n TimelineTypeTexts\n} from './alarm-event-selector.model';\n\n@Injectable({ providedIn: 'root' })\nexport class AlarmEventSelectorService {\n private timelineTypeTextsMap: Map<TimelineType, TimelineTypeTexts> = new Map([\n ['ALARM', ALARM_TEXTS],\n ['EVENT', EVENT_TEXTS]\n ]);\n\n constructor(\n private alarmService: AlarmService,\n private eventsService: EventService,\n private color: ColorService\n ) {}\n\n /**\n * This method returns the texts for the timeline type.\n * @param timelineType The timeline type.\n * @returns The texts for the timeline type.\n */\n timelineTypeTexts(timelineType: TimelineType): TimelineTypeTexts {\n return this.timelineTypeTextsMap.get(timelineType)!;\n }\n\n /**\n * This method returns all alarms or events of the platform based on the timeline type\n * @param timelineType The timeline type.\n * @returns The alarms or events of the asset.\n */\n async getItems(timelineType: TimelineType): Promise<AlarmOrEvent[]> {\n const filters = {\n pageSize: 1000\n };\n\n return timelineType === 'ALARM'\n ? await this.getAlarmsOfAsset(filters)\n : await this.getEventsOfAsset(filters);\n }\n\n /**\n * This method returns the items of the asset based on the timeline type.\n * @param parentReference The parent reference.\n * @param timelineType The timeline type.\n * @returns The alarms or events of the asset.\n */\n async getAlarmsOrEvents(\n parentReference: IIdentified,\n timelineType: TimelineType\n ): Promise<AlarmOrEvent[]> {\n const filters = { source: parentReference.id, pageSize: 1000 };\n\n return timelineType === 'ALARM'\n ? await this.getAlarmsOfAsset(filters)\n : await this.getEventsOfAsset(filters);\n }\n\n async getUniqueAlarmsOnly(data: IAlarm[]): Promise<AlarmDetails[]> {\n return Promise.all(\n uniqBy(data, 'type').map(async (alarm: IAlarm) => this.createItem('ALARM', alarm))\n );\n }\n\n async getUniqueEventsOnly(data: IEvent[]): Promise<EventDetails[]> {\n return Promise.all(\n uniqBy(data, 'type').map(async (event: IEvent) => this.createItem('EVENT', event))\n );\n }\n\n async createItem(timelineType: 'ALARM' & TimelineType, item: IAlarm): Promise<AlarmDetails>;\n async createItem(timelineType: 'EVENT' & TimelineType, item: IEvent): Promise<EventDetails>;\n async createItem(timelineType: TimelineType, item: IAlarm | IEvent): Promise<any> {\n const color = await this.color.generateColor(item.type);\n if (item.source && !item.source.name) {\n item.source.name = `Device ${item.source.id}`;\n }\n return {\n timelineType,\n color,\n label: item.type,\n filters: {\n type: item.type\n },\n __target: item.source\n };\n }\n\n private async getAlarmsOfAsset(filters: {\n pageSize: number;\n dateTo?: string;\n dateFrom?: string;\n source?: string | number;\n }): Promise<AlarmDetails[]> {\n const res = await this.alarmService.list({\n ...filters,\n withSourceAssets: !!filters.source,\n withSourceDevices: !!filters.source,\n pageSize: 1000\n });\n const alarms = await this.getUniqueAlarmsOnly(res.data);\n return alarms;\n }\n\n private async getEventsOfAsset(filters: {\n pageSize: number;\n dateTo?: string;\n dateFrom?: string;\n source?: string | number;\n }): Promise<EventDetails[]> {\n const res = await this.eventsService.list(filters);\n const events = this.getUniqueEventsOnly(res.data);\n return events;\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AlarmOrEvent, OmitSelectorProperties, TimelineType } from '../alarm-event-selector.model';\nimport { map, startWith, takeUntil } from 'rxjs/operators';\nimport { Observable, Subject } from 'rxjs';\nimport { IIdentified } from '@c8y/client';\nimport { NgIf, NgClass, AsyncPipe } from '@angular/common';\nimport {\n RequiredInputPlaceholderDirective,\n IconDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { AlarmEventAttributesFormComponent } from '../alarm-event-attributes-form/alarm-event-attributes-form.component';\n\n@Component({\n selector: 'c8y-custom-alarm-event-form',\n templateUrl: './custom-alarm-event-form.component.html',\n imports: [\n FormsModule,\n ReactiveFormsModule,\n NgIf,\n NgClass,\n RequiredInputPlaceholderDirective,\n IconDirective,\n AlarmEventAttributesFormComponent,\n C8yTranslatePipe,\n AsyncPipe\n ]\n})\nexport class CustomAlarmEventFormComponent implements OnInit, OnDestroy {\n @Input() timelineType: TimelineType;\n @Input() target: IIdentified;\n @Input() omitProperties: OmitSelectorProperties = {};\n @Input() selectedItems: AlarmOrEvent[] = [];\n @Input() defaultColor: string;\n @Output() added = new EventEmitter<AlarmOrEvent>();\n @Output() cancel = new EventEmitter<void>();\n\n formGroup: FormGroup;\n valid$: Observable<boolean>;\n private destroy$ = new Subject<void>();\n\n constructor(private formBuilder: FormBuilder) {\n this.formGroup = this.formBuilder.group({\n details: [],\n color: [],\n __active: [],\n __target: []\n });\n\n this.valid$ = this.formGroup.statusChanges.pipe(\n takeUntil(this.destroy$),\n map(val => val === 'VALID'),\n startWith(false)\n );\n }\n\n ngOnInit() {\n this.formGroup.patchValue({\n color: this.defaultColor,\n __target: this.target,\n details: { timelineType: this.timelineType }\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n add() {\n if (this.formGroup.valid) {\n const formValue = this.transformFormValue(this.formGroup.value);\n this.added.emit(formValue);\n }\n }\n\n private transformFormValue(formValue: any) {\n const obj = Object.assign({}, formValue.details || {}, formValue);\n delete obj.details;\n return obj;\n }\n}\n","<form [formGroup]=\"formGroup\" class=\"p-16\">\n <div\n *ngIf=\"!omitProperties.color\"\n class=\"form-group d-flex a-i-center gap-8\"\n [title]=\"'Change color' | translate\"\n >\n <label class=\"m-0\">{{ 'Color' | translate }}</label>\n <div class=\"c8y-colorpicker\"\n [ngClass]=\"{\n 'c8y-colorpicker--event': timelineType === 'EVENT',\n 'c8y-colorpicker--alarm': timelineType !== 'EVENT'\n }\"\n >\n <input\n type=\"color\"\n formControlName=\"color\"\n (click)=\"$event.stopPropagation()\"\n />\n <span [style.background-color]=\"formGroup.value.color\">\n <i [c8yIcon]=\"timelineType === 'EVENT' ? 'online1' : 'bell'\"></i>\n </span>\n </div>\n </div>\n\n <c8y-alarm-event-attributes-form\n formControlName=\"details\"\n [timelineType]=\"timelineType\"\n [omitProperties]=\"omitProperties\"\n [selectedItems]=\"selectedItems\"\n ></c8y-alarm-event-attributes-form>\n\n <div class=\"d-flex p-t-16\">\n <button class=\"btn btn-default btn-sm\" (click)=\"cancel.emit()\">\n {{ 'Cancel' | translate }}\n </button>\n <button\n class=\"btn btn-primary btn-sm\"\n [disabled]=\"(valid$ | async) === false\"\n (click)=\"add()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Select' | translate }}\n </button>\n </div>\n</form>\n","import {\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n Output\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormBuilder,\n FormGroup,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n FormsModule,\n ReactiveFormsModule\n} from '@angular/forms';\nimport { AlarmOrEvent, OmitSelectorProperties, TimelineType } from '../alarm-event-selector.model';\nimport { map, take, takeUntil } from 'rxjs/operators';\nimport { Observable, Subject } from 'rxjs';\nimport {\n gettext,\n ListItemComponent,\n ListItemDragHandleComponent,\n ListItemIconComponent,\n IconDirective,\n ListItemCheckboxComponent,\n RequiredInputPlaceholderDirective,\n HighlightComponent,\n ListItemActionComponent,\n ListItemCollapseComponent,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { KPIDetails } from '@c8y/ngx-components/datapoint-selector';\nimport { NgIf, NgClass, NgStyle, AsyncPipe } from '@angular/common';\nimport { PopoverDirective } from 'ngx-bootstrap/popover';\nimport { AlarmEventAttributesFormComponent } from '../alarm-event-attributes-form/alarm-event-attributes-form.component';\n\n@Component({\n selector: 'c8y-alarm-event-selector-list-item',\n templateUrl: './alarm-event-selector-list-item.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AlarmEventSelectorListItemComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => AlarmEventSelectorListItemComponent),\n multi: true\n }\n ],\n imports: [\n ListItemComponent,\n FormsModule,\n ReactiveFormsModule,\n ListItemDragHandleComponent,\n NgIf,\n ListItemIconComponent,\n IconDirective,\n ListItemCheckboxComponent,\n NgClass,\n RequiredInputPlaceholderDirective,\n NgStyle,\n HighlightComponent,\n PopoverDirective,\n ListItemActionComponent,\n ListItemCollapseComponent,\n AlarmEventAttributesFormComponent,\n C8yTranslatePipe,\n AsyncPipe\n ]\n})\nexport class AlarmEventSelectorListItemComponent\n implements OnInit, ControlValueAccessor, Validator, OnDestroy\n{\n @Input() timelineType: TimelineType;\n @Input() datapoints: KPIDetails[] | undefined;\n @Input() highlightText: string;\n @Input() showAddRemoveButton = true;\n @Input() isSelected = false;\n @Input() optionToRemove = false;\n @Input() showActiveToggle = false;\n @Input() allowItemEdit = false;\n @Input() hideSource = false;\n @Input() displayAsSwitch = false;\n @Input() omitProperties: OmitSelectorProperties = {};\n\n colorPickerTitle: string;\n @Output() added = new EventEmitter<AlarmOrEvent>();\n @Output() removed = new EventEmitter<AlarmOrEvent>();\n\n formGroup: FormGroup;\n valid$: Observable<boolean>;\n private destroy$ = new Subject<void>();\n\n constructor(private formBuilder: FormBuilder) {\n this.formGroup = this.formBuilder.group({\n details: [],\n color: [],\n __active: [],\n __target: []\n });\n this.valid$ = this.formGroup.statusChanges.pipe(\n takeUntil(this.destroy$),\n map(val => val === 'VALID')\n );\n }\n\n ngOnInit() {\n this.colorPickerTitle = this.allowItemEdit ? gettext('Change color') : '';\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n toggleActive() {\n this.formGroup.controls.__active.setValue(!this.formGroup.value.__active);\n }\n\n validate(_control: AbstractControl): ValidationErrors {\n return this.formGroup?.valid ? null : { formInvalid: {} };\n }\n\n writeValue(obj: any): void {\n this.formGroup.patchValue({ ...obj, details: obj });\n }\n\n registerOnChange(fn: any): void {\n this.formGroup.valueChanges\n .pipe(\n map(tmp => this.transformFormValue(tmp)),\n takeUntil(this.destroy$)\n )\n .subscribe(fn);\n }\n\n registerOnTouched(fn: any): void {\n this.formGroup.valueChanges.pipe(take(1)).subscribe(fn);\n }\n\n setDisabledState(isDisabled: boolean): void {\n isDisabled ? this.formGroup.disable() : this.formGroup.enable();\n }\n\n addOrRemoveItem() {\n const value = this.transformFormValue(this.formGroup.value);\n if (this.isSelected) {\n this.removed.emit(value);\n } else {\n this.added.emit(value);\n }\n }\n\n remove() {\n this.removed.emit(this.transformFormValue(this.formGroup.value));\n }\n\n private transformFormValue(formValue: any) {\n const obj = Object.assign({}, formValue.details || {}, formValue);\n delete obj.details;\n return obj;\n }\n}\n","<c8y-li\n class=\"c8y-list__item__collapse--container-small\"\n [formGroup]=\"formGroup\"\n #li\n>\n <c8y-li-drag-handle><ng-content select=\"c8y-li-drag-handle\"></ng-content></c8y-li-drag-handle>\n <c8y-li-checkbox\n class=\"a-s-center m-t-4 p-r-0\"\n *ngIf=\"showActiveToggle\"\n [displayAsSwitch]=\"displayAsSwitch\"\n formControlName=\"__active\"\n (click)=\"$event.stopPropagation()\"\n ></c8y-li-checkbox>\n\n <div class=\"d-flex a-i-center p-l-0\">\n <div\n class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-16\"\n [title]=\"colorPickerTitle | translate\"\n >\n <div\n class=\"c8y-colorpicker\"\n [ngClass]=\"{\n 'c8y-colorpicker--alarm': timelineType === 'ALARM',\n 'c8y-colorpicker--event': timelineType === 'EVENT'\n }\"\n >\n <input\n [ngStyle]=\"{ 'pointer-events': allowItemEdit && !omitProperties.color ? 'auto' : 'none' }\"\n type=\"color\"\n formControlName=\"color\"\n (click)=\"$event.stopPropagation()\"\n />\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--medium\"\n [ngStyle]=\"{ 'background-color': formGroup.value.color }\"\n >\n <i\n class=\"stroked-icon\"\n [c8yIcon]=\"timelineType === 'EVENT' ? 'online1' : 'bell'\"\n ></i>\n </span>\n </div>\n </div>\n <button\n class=\"btn-clean text-truncate\"\n [title]=\"formGroup.value.details?.label\"\n (click)=\"\n allowItemEdit\n ? (li.collapsed = !li.collapsed)\n : showActiveToggle\n ? toggleActive()\n : addOrRemoveItem()\n \"\n >\n <span class=\"text-truncate\">\n <c8y-highlight\n [text]=\"\n omitProperties.label\n ? formGroup.value.details?.filters?.type\n : formGroup.value.details?.label\n \"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n <small\n class=\"text-truncate text-muted icon-flex\"\n *ngIf=\"formGroup.value.__target && !hideSource\"\n >\n <i c8yIcon=\"exchange\"></i>\n <span class=\"text-truncate\">{{ formGroup.value.__target.name }}</span>\n </small>\n </button>\n\n <button\n class=\"btn-dot btn-dot--danger m-l-auto\"\n title=\"{{ 'Invalid entries' | translate }}\"\n [popover]=\"'Some entries are invalid. Check the required input fields.' | translate\"\n container=\"body\"\n *ngIf=\"(valid$ | async) === false && li.collapsed\"\n [outsideClick]=\"true\"\n >\n <i c8yIcon=\"exclamation-circle\" class=\"icon-20\" ></i>\n </button>\n <span class=\"m-l-auto\" *ngIf=\"showAddRemoveButton\">\n <button\n class=\"btn btn-dot text-danger\"\n [title]=\"'Remove' | translate\"\n *ngIf=\"isSelected\"\n (click)=\"addOrRemoveItem()\"\n >\n <i\n class=\"icon-20\"\n c8yIcon=\"minus-circle\"\n ></i>\n </button>\n <button\n class=\"btn btn-dot text-primary\"\n [title]=\"'Select' | translate\"\n *ngIf=\"!isSelected\"\n (click)=\"addOrRemoveItem()\"\n [disabled]=\"(valid$ | async) === false\"\n >\n <i\n class=\"icon-20\"\n c8yIcon=\"plus-circle\"\n ></i>\n </button>\n </span>\n </div>\n\n <c8y-li-action\n [icon]=\"'minus-circle'\"\n *ngIf=\"optionToRemove\"\n [label]=\"'Remove from list' | translate\"\n (click)=\"remove()\"\n ></c8y-li-action>\n <c8y-li-collapse *ngIf=\"allowItemEdit\">\n <div class=\"data-point-details\">\n <c8y-alarm-event-attributes-form\n formControlName=\"details\"\n [timelineType]=\"timelineType\"\n [omitProperties]=\"omitProperties\"\n [datapoints]=\"datapoints\"\n [target]=\"formGroup.value.__target\"\n ></c8y-alarm-event-attributes-form>\n </div>\n </c8y-li-collapse>\n</c8y-li>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AlarmDetails, EventDetails } from '../alarm-event-selector.model';\n\n@Pipe({ name: 'includesAlarmOrEvent' })\nexport class IncludesAlarmOrEventPipe implements PipeTransform {\n transform<T extends AlarmDetails | EventDetails>(itemList: T[], item?: T): boolean {\n if (!Array.isArray(itemList) || !item) {\n return false;\n }\n return itemList.some(\n tmp =>\n tmp.label === item.label &&\n tmp.filters.type === item.filters.type &&\n tmp.__target?.id === item.__target?.id\n );\n }\n}\n","import { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { IIdentified } from '@c8y/client';\nimport {\n AssetSelectionChangeEvent,\n MillerViewComponent\n} from '@c8y/ngx-components/assets-navigator';\nimport { BehaviorSubject, combineLatest, Observable } from 'rxjs';\nimport {\n debounceTime,\n distinctUntilChanged,\n map,\n shareReplay,\n switchMap,\n tap\n} from 'rxjs/operators';\nimport {\n AlarmOrEvent,\n OmitSelectorProperties,\n TimelineType,\n TimelineTypeTexts\n} from './alarm-event-selector.model';\nimport { AlarmEventSelectorService } from './alarm-event-selector.service';\nimport { NgClass, NgIf, NgFor, AsyncPipe } from '@angular/common';\nimport {\n EmptyStateComponent,\n LoadingComponent,\n IconDirective,\n ListGroupComponent,\n ListItemComponent,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { CollapseDirective } from 'ngx-bootstrap/collapse';\nimport { CustomAlarmEventFormComponent } from './custom-alarm-event-form/custom-alarm-event-form.component';\nimport { AlarmEventSelectorListItemComponent } from './alarm-event-selector-list-item/alarm-event-selector-list-item.component';\nimport { IncludesAlarmOrEventPipe } from './pipes/includes-alarm.pipe';\n\n@Component({\n selector: 'c8y-alarm-event-selector',\n templateUrl: './alarm-event-selector.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => AlarmEventSelectorComponent)\n }\n ],\n imports: [\n NgClass,\n NgIf,\n MillerViewComponent,\n FormsModule,\n EmptyStateComponent,\n LoadingComponent,\n IconDirective,\n CollapseDirective,\n CustomAlarmEventFormComponent,\n ListGroupComponent,\n ListItemComponent,\n NgFor,\n AlarmEventSelectorListItemComponent,\n C8yTranslatePipe,\n AsyncPipe,\n IncludesAlarmOrEventPipe\n ]\n})\nexport class AlarmEventSelectorComponent implements OnInit {\n @Input() timelineType: TimelineType = 'ALARM';\n @Input() contextAsset: IIdentified;\n @Input() allowChangingContext = true;\n @Input() selectedItems = new Array<AlarmOrEvent>();\n @Input() allowSearch = true;\n @Input() groupsSelectable = true;\n @Input() hideSource = false;\n @Input() omitProperties: OmitSelectorProperties = {};\n\n @Output() selectionChange = new EventEmitter<AlarmOrEvent[]>();\n filterString = '';\n maxNumberOfItems = 50;\n\n loadingItems$ = new BehaviorSubject(false);\n assetSelection = new BehaviorSubject<IIdentified>({});\n items$: Observable<AlarmOrEvent[]>;\n filteredItems$: Observable<AlarmOrEvent[]>;\n filterStringChanges$: Observable<string>;\n timelineTypeTexts: TimelineTypeTexts;\n isExpanded = false;\n defaultColor =\n getComputedStyle(document.documentElement).getPropertyValue('--brand-primary') ||\n getComputedStyle(document.documentElement).getPropertyValue('--c8y-brand-primary') ||\n '#1776BF';\n private filterString$ = new BehaviorSubject('');\n\n constructor(private alarmEventSelectorService: AlarmEventSelectorService) {}\n\n ngOnInit(): void {\n this.timelineTypeTexts = this.alarmEventSelectorService.timelineTypeTexts(this.timelineType);\n this.setupObservables();\n if (this.contextAsset) {\n this.selectAsset(this.contextAsset);\n }\n }\n\n itemAdded(item: AlarmOrEvent): void {\n item.__active = true;\n this.selectedItems = [...this.selectedItems, item];\n this.emitCurrentSelection();\n }\n\n itemRemoved(alarm: AlarmOrEvent): void {\n this.selectedItems = this.selectedItems.filter(\n tmp =>\n tmp.label !== alarm.label ||\n tmp.filters.type !== alarm.filters.type ||\n tmp.__target?.id !== alarm.__target?.id\n );\n this.emitCurrentSelection();\n }\n\n assetSelectionChanged(evt: AssetSelectionChangeEvent): void {\n if (evt.items) {\n return this.selectAsset(evt.items.length ? evt.items[0] : evt.items);\n }\n // reset selection\n this.assetSelection.next(null);\n }\n\n trackByFn(_index: number, item: AlarmOrEvent): string {\n return `${item.filters.type}-${item.__target?.id}`;\n }\n\n filterStringChanged(newValue = ''): void {\n this.filterString$.next(newValue);\n this.filterString = newValue;\n }\n\n private setLoadingState(state: boolean) {\n queueMicrotask(() => this.loadingItems$.next(state));\n }\n\n private setupObservables(): void {\n this.items$ = this.assetSelection.pipe(\n tap(() => this.setLoadingState(true)),\n switchMap((asset: IIdentified) =>\n asset?.id\n ? this.alarmEventSelectorService.getAlarmsOrEvents(asset, this.timelineType)\n : this.alarmEventSelectorService.getItems(this.timelineType)\n ),\n tap(() => this.setLoadingState(false)),\n map(items => {\n if (this.omitProperties.color) {\n items.forEach(i => (i.color = this.defaultColor));\n }\n return items;\n }),\n shareReplay(1)\n );\n\n this.filterStringChanges$ = this.filterString$.pipe(\n distinctUntilChanged(),\n debounceTime(500),\n shareReplay(1)\n );\n\n this.filteredItems$ = combineLatest([this.filterStringChanges$, this.items$]).pipe(\n map(([filterString, items]) => {\n if (!filterString) {\n return items;\n }\n const lowerCaseFilterString = filterString.toLowerCase();\n return items.filter(item => this.includesFilterString(item, lowerCaseFilterString));\n }),\n map(filtered => filtered.slice(0, this.maxNumberOfItems))\n );\n }\n\n private selectAsset(asset: IIdentified) {\n this.assetSelection.next(asset);\n this.filterStringChanged();\n }\n\n private emitCurrentSelection() {\n this.selectionChange.emit(this.selectedItems);\n }\n\n private includesFilterString(alarm: AlarmOrEvent, lowerCaseFilterString: string): boolean {\n const label = alarm.label?.toLowerCase();\n if (label && label.includes(lowerCaseFilterString)) {\n return true;\n }\n\n const type = alarm.filters.type?.toLowerCase();\n if (type && type.includes(lowerCaseFilterString)) {\n return true;\n }\n\n return false;\n }\n}\n","<div\n class=\"d-grid grid__row--1 fit-h\"\n [ngClass]=\"{\n 'grid__col--3-6-3--md': allowChangingContext,\n 'grid__col--8-4--md': !allowChangingContext\n }\"\n>\n <div\n class=\"d-flex d-col p-relative bg-level-1\"\n *ngIf=\"allowChangingContext\"\n >\n <c8y-asset-selector-miller\n class=\"d-contents\"\n [(ngModel)]=\"contextAsset\"\n [asset]=\"contextAsset\"\n (onSelected)=\"assetSelectionChanged($event)\"\n [container]=\"''\"\n [config]=\"{\n view: 'miller',\n groupsSelectable: groupsSelectable,\n columnHeaders: true,\n showChildDevices: true,\n showUnassignedDevices: true,\n singleColumn: true,\n search: allowSearch,\n showFilter: true\n }\"\n ></c8y-asset-selector-miller>\n </div>\n <!-- center column -->\n <div class=\"inner-scroll bg-component\" data-cy=\"c8y-alarm-event-selector--inner-column\">\n <ng-template #noDeviceEmptyState>\n <div class=\"p-16\">\n <c8y-ui-empty-state\n [icon]=\"timelineTypeTexts.emptyStateIcon\"\n [title]=\"timelineTypeTexts.emptyStateTitle | translate\"\n [subtitle]=\"timelineTypeTexts.assetWithNoItemsEmptyStateSubtitle | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </div>\n </ng-template>\n\n <ng-template #loadingData>\n <div class=\"p-16 text-center\">\n <c8y-loading></c8y-loading>\n </div>\n </ng-template>\n\n <div\n class=\"bg-inherit\"\n *ngIf=\"assetSelection | async as asset; else noDeviceEmptyState\"\n >\n <div class=\"p-l-16 p-r-16 p-t-8 p-b-8 sticky-top bg-inherit separator-bottom\">\n <p\n class=\"text-medium text-truncate\"\n [title]=\"timelineTypeTexts.availableItemsTitle | translate\"\n >\n {{ timelineTypeTexts.availableItemsTitle | translate }}\n </p>\n <div class=\"d-flex\">\n <div\n class=\"input-group input-group-search m-t-4\"\n id=\"search\"\n *ngIf=\"!(loadingItems$ | async)\"\n >\n <input\n class=\"form-control\"\n placeholder=\"Filter…\"\n type=\"search\"\n [ngModel]=\"filterString\"\n (ngModelChange)=\"filterStringChanged($event)\"\n />\n <span class=\"input-group-addon\">\n <i\n c8yIcon=\"search\"\n *ngIf=\"!filterString; else clearFilterString\"\n ></i>\n <ng-template #clearFilterString>\n <i\n class=\"text-muted\"\n c8yIcon=\"times\"\n *ngIf=\"filterString\"\n (click)=\"filterStringChanged()\"\n ></i>\n </ng-template>\n </span>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"filteredItems$ | async as filteredItems; else loadingData\">\n <ng-container *ngIf=\"!(loadingItems$ | async); else loadingData\">\n <ng-container *ngIf=\"items$ | async as items\">\n <div class=\"p-16 bg-level-2 separator-bottom\">\n <div>\n <p>\n <i\n class=\"text-info m-r-4\"\n c8yIcon=\"info-circle\"\n ></i>\n <strong>{{ timelineTypeTexts.recentItemsWarningTitle | translate }}</strong>\n </p>\n <p>\n {{ timelineTypeTexts.recentItemsWarningText | translate }}\n {{ timelineTypeTexts.addCustomText | translate }}\n </p>\n </div>\n <div class=\"p-t-16\">\n <button\n class=\"btn btn-default btn-sm\"\n aria-controls=\"collapseCustomItemForm\"\n [attr.aria-expanded]=\"isExpanded\"\n (click)=\"isExpanded = !isExpanded\"\n >\n {{ timelineTypeTexts.addCustomItemButtonLabel | translate }}\n </button>\n <div\n class=\"collapse\"\n id=\"collapseCustomItemForm\"\n [collapse]=\"!isExpanded\"\n [isAnimated]=\"true\"\n >\n <div [style.min-height]=\"'230px'\">\n <c8y-custom-alarm-event-form\n class=\"d-block\"\n *ngIf=\"isExpanded\"\n [timelineType]=\"timelineType\"\n [target]=\"assetSelection | async\"\n [omitProperties]=\"omitProperties\"\n [defaultColor]=\"defaultColor\"\n (added)=\"itemAdded($event); isExpanded = false\"\n (cancel)=\"isExpanded = false\"\n [selectedItems]=\"selectedItems\"\n ></c8y-custom-alarm-event-form>\n </div>\n </div>\n </div>\n </div>\n\n <div\n class=\"p-16\"\n *ngIf=\"!filteredItems.length\"\n >\n <c8y-ui-empty-state\n [icon]=\"timelineTypeTexts.emptyStateIcon\"\n [title]=\"timelineTypeTexts.emptyStateTitle | translate\"\n [subtitle]=\"\n items.length\n ? ('Try another filter term.' | translate)\n : (timelineTypeTexts.assetWithNoItemsEmptyStateSubtitle | translate)\n \"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </div>\n\n <c8y-list-group>\n <c8y-list-item\n class=\"sticky-top\"\n style=\"top: 72px\"\n *ngIf=\"items.length > maxNumberOfItems && filteredItems.length >= maxNumberOfItems\"\n >\n <div class=\"alert alert-warning m-b-0\">\n {{ timelineTypeTexts.largeNumberOfItemsInfo | translate }}\n </div>\n </c8y-list-item>\n <c8y-alarm-event-selector-list-item\n class=\"d-contents\"\n [ngModel]=\"item\"\n [isSelected]=\"selectedItems | includesAlarmOrEvent: item\"\n (added)=\"itemAdded($event)\"\n (removed)=\"itemRemoved($event)\"\n [highlightText]=\"filterStringChanges$ | async\"\n [timelineType]=\"timelineType\"\n [hideSource]=\"hideSource\"\n *ngFor=\"let item of filteredItems; trackBy: trackByFn\"\n ></c8y-alarm-event-selector-list-item>\n </c8y-list-group>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n\n <!-- last column -->\n <div class=\"inner-scroll bg-level-1\">\n <p\n class=\"text-medium m-b-4 p-l-16 p-r-16 p-t-8 p-b-8 separator-bottom sticky-top text-truncate\"\n [title]=\"timelineTypeTexts.selectedItemsTitle | translate\"\n >\n {{ timelineTypeTexts.selectedItemsTitle | translate }}\n </p>\n <div class=\"d-flex flex-wrap gap-8 p-l-16 p-r-16 p-b-16\">\n <c8y-ui-empty-state\n [icon]=\"timelineTypeTexts.emptyStateIcon\"\n [title]=\"timelineTypeTexts.noSelectedItemsTitle | translate\"\n *ngIf=\"!selectedItems || !selectedItems.length\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n\n <div\n [ngClass]=\"{\n 'c8y-alarm-pill': timelineType === 'ALARM',\n 'c8y-event-pill': timelineType === 'EVENT'\n }\"\n *ngFor=\"let selectedItem of selectedItems\"\n >\n <button\n [title]=\"'Remove' | translate\"\n type=\"button\"\n [ngClass]=\"{\n 'c8y-alarm-pill__btn': timelineType === 'ALARM',\n 'c8y-event-pill__btn': timelineType === 'EVENT'\n }\"\n (click)=\"itemRemoved(selectedItem)\"\n >\n <i\n class=\"icon-14\"\n c8yIcon=\"remove\"\n ></i>\n </button>\n <div\n class=\"c8y-datapoint-pill__label\"\n [title]=\"selectedItem.label || selectedItem.filters.type\"\n >\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small m-r-4\"\n [style.background-color]=\"selectedItem.color || defaultColor\"\n >\n <i\n class=\"stroked-icon\"\n [c8yIcon]=\"timelineType === 'ALARM' ? 'bell' : 'online1'\"\n ></i>\n </span>\n <span class=\"text-truncate\">\n <span class=\"text-truncate\">{{ selectedItem.label || selectedItem.filters.type }}</span>\n <small\n class=\"text-muted text-10\"\n *ngIf=\"!hideSource && selectedItem?.__target?.name\"\n >\n {{ selectedItem?.__target?.name }}\n </small>\n </span>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { IIdentified } from '@c8y/client';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { AlarmOrEvent, OmitSelectorProperties, TimelineType } from '../alarm-event-selector.model';\nimport { AlarmEventSelectorComponent } from '../alarm-event-selector.component';\nimport { C8yTranslateDirective, C8yTranslatePipe } from '@c8y/ngx-components';\n\n@Component({\n selector: 'c8y-alarm-event-selector-modal',\n templateUrl: './alarm-event-selector-modal.component.html',\n imports: [AlarmEventSelectorComponent, C8yTranslateDirective, C8yTranslatePipe]\n})\nexport class AlarmEventSelectorModalComponent {\n selectType: TimelineType = 'ALARM';\n contextAsset: IIdentified;\n allowChangingContext = true;\n allowSearch = true;\n selectedItems = new Array<AlarmOrEvent>();\n title: string;\n groupsSelectable = true;\n hideSource = false;\n saveButtonLabel: string;\n omitProperties: OmitSelectorProperties = {};\n readonly result: Promise<AlarmOrEvent[]> = new Promise((resolve, reject) => {\n this.save = resolve;\n this.cancel = reject;\n });\n\n private save: (value: AlarmOrEvent[]) => void;\n private cancel: (reason?: any) => void;\n\n constructor(private bsModal: BsModalRef) {}\n\n saveChanges(): void {\n this.bsModal.hide();\n this.save(this.selectedItems);\n }\n\n close() {\n this.bsModal.hide();\n this.cancel();\n }\n\n selectionChange(selection: Array<AlarmOrEvent>) {\n this.selectedItems = selection;\n }\n}\n","<div class=\"modal-header separator\">\n <h4 class=\"text-medium\">{{ title | translate }}</h4>\n</div>\n<div class=\"modal-inner-scroll modal-inner-scroll--fixed\">\n <c8y-alarm-event-selector\n [selectedItems]=\"selectedItems\"\n [contextAsset]=\"contextAsset\"\n [timelineType]=\"selectType\"\n [groupsSelectable]=\"groupsSelectable\"\n [hideSource]=\"hideSource\"\n [allowChangingContext]=\"allowChangingContext\"\n [omitProperties]=\"omitProperties\"\n (selectionChange)=\"selectionChange($event)\"\n ></c8y-alarm-event-selector>\n</div>\n<div class=\"modal-footer\">\n <button\n type=\"button\"\n [title]=\"'Cancel' | translate\"\n class=\"btn btn-default\"\n (click)=\"close()\"\n translate\n >\n Cancel\n </button>\n <button\n [title]=\"saveButtonLabel | translate\"\n class=\"btn btn-primary\"\n [disabled]=\"!this.selectedItems?.length\"\n (click)=\"saveChanges()\"\n >\n {{ saveButtonLabel | translate }}\n </button>\n</div>\n","import { Injectable } from '@angular/core';\nimport { AlarmOrEvent } from '../alarm-event-selector.model';\nimport { AlarmEventSelectorModalComponent } from './alarm-event-selector-modal.component';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { AlarmEventSelectorModalOptions } from './alarm-event-selector-modal.model';\n\n/**\n * Service to open the alarm event selector modal.\n */\n@Injectable({ providedIn: 'root' })\nexport class AlarmEventSelectorModalService {\n constructor(private modal: BsModalService) {}\n /**\n * Opents the alarm or event selector modal.\n * @param initialState Initial state of the modal.\n * @returns Promise that resolves with the selected alarms or events.\n */\n selectItems(initialState: Partial<AlarmEventSelectorModalOptions> = {}): Promise<AlarmOrEvent[]> {\n const modal = this.modal.show(AlarmEventSelectorModalComponent, {\n ignoreBackdropClick: true,\n keyboard: false,\n initialState,\n class: 'modal-lg'\n });\n const content = modal.content as AlarmEventSelectorModalComponent;\n return content.result;\n }\n}\n","import {\n CdkDragDrop,\n moveItemInArray,\n CdkDropList,\n CdkDrag,\n CdkDragHandle\n} from '@angular/cdk/drag-drop';\nimport {\n Component,\n ContentChild,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n Optional\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormArray,\n FormBuilder,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n FormsModule,\n ReactiveFormsModule\n} from '@angular/forms';\nimport {\n ContextRouteService,\n EmptyStateComponent,\n ViewContext,\n ListGroupComponent,\n ListItemDragHandleComponent,\n IconDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { WidgetConfigComponent } from '@c8y/ngx-components/context-dashboard';\nimport { debounceTime, map, take, takeUntil } from 'rxjs/operators';\nimport { AlarmEventSelectorModalOptions } from '../alarm-event-selector-modal/alarm-event-selector-modal.model';\nimport { AlarmEventSelectorModalService } from '../alarm-event-selector-modal/alarm-event-selector-modal.service';\nimport {\n AlarmOrEvent,\n OmitSelectorProperties,\n TimelineType,\n TimelineTypeTexts\n} from '../alarm-event-selector.model';\nimport { AlarmEventSelectorService } from '../alarm-event-selector.service';\nimport { Subject } from 'rxjs';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgIf, NgFor, NgClass } from '@angular/common';\n\nimport { AlarmEventSelectorListItemComponent } from '../alarm-event-selector-list-item/alarm-event-selector-list-item.component';\n\n@Component({\n selector: 'c8y-alarm-event-selection-list',\n templateUrl: './alarm-event-selection-list.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => AlarmEventSelectionListComponent)\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => AlarmEventSelectionListComponent),\n multi: true\n }\n ],\n imports: [\n NgIf,\n ListGroupComponent,\n CdkDropList,\n EmptyStateComponent,\n NgFor,\n FormsModule,\n ReactiveFormsModule,\n AlarmEventSelectorListItemComponent,\n CdkDrag,\n ListItemDragHandleComponent,\n CdkDragHandle,\n IconDirective,\n NgClass,\n C8yTranslatePipe\n ]\n})\nexport class AlarmEventSelectionListComponent\n implements ControlValueAccessor, Validator, OnInit, OnDestroy\n{\n /**\n * The type of timeline to be displayed.\n * Can be either 'ALARM' or 'EVENT'.\n */\n @Input() timelineType: TimelineType = 'ALARM';\n\n /**\n * Whether the user can remove items from the list.\n */\n @Input() canRemove = true;\n\n /**\n * Whether the user can edit items in the alarm/event list.\n */\n @Input() canEdit = true;\n\n @Input() canDragAndDrop = true;\n @Input() title: string;\n\n /**\n * The label for the button to add items to the list.\n * If not provided, a default label will be used based on the timeline type.\n */\n @Input() addButtonLabel: string;\n\n /**\n * Hide or show the source of the alarm or event.\n */\n @Input() hideSource = false;\n\n /**\n * Display the list inline or as a dropdown.\n * If set to true, the list will be displayed inline.\n */\n @Input() inline = false; // TODO: @janhommes we should rename this to `isDropdownContained` or similar to make it more clear\n\n /**\n * Display the alarm/events as switch. If disabled it is displayed as checkbox instead.\n */\n @Input() activeToggleAsSwitch = true;\n\n @Input() omitProperties: OmitSelectorProperties = { color: false, label: false };\n @Input() datapoints = [];\n @ContentChild(EmptyStateComponent) emptyState: EmptyStateComponent;\n\n /**\n * The configuration for the alarms-events selector modal.\n */\n @Input() config: Partial<AlarmEventSelectorModalOptions> = {};\n\n formArray: FormArray;\n timelineTypeTexts: TimelineTypeTexts;\n contextSourceId: number | string | null;\n\n private destroy$ = new Subject<void>();\n\n constructor(\n private alarmEventModalService: AlarmEventSelectorModalService,\n private alarmEventSelectService: AlarmEventSelectorService,\n private formBuilder: FormBuilder,\n @Optional() private activatedRoute: ActivatedRoute,\n @Optional() private contextRouteService: ContextRouteService,\n @Optional() private widgetComponent: WidgetConfigComponent\n ) {\n this.formArray = this.formBuilder.array([]);\n }\n\n ngOnInit(): void {\n this.timelineTypeTexts = this.alarmEventSelectService.timelineTypeTexts(this.timelineType);\n this.title ??= this.timelineTypeTexts.listTitle;\n this.addButtonLabel ??= this.timelineTypeTexts.addButtonLabel;\n this.contextSourceId = this.initializeContextSourceId();\n const context = this.widgetComponent?.context;\n if (context?.id) {\n const { name, id, c8y_IsDevice } = context;\n this.config.contextAsset = { name, id, c8y_IsDevice };\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n registerOnTouched(fn: any): void {\n this.formArray.valueChanges.pipe(take(1)).subscribe(fn);\n }\n\n validate(_control: AbstractControl): ValidationErrors {\n return this.formArray.valid ? null : { formInvalid: {} };\n }\n\n writeValue(val: AlarmOrEvent[]): void {\n this.formArray.clear();\n if (val?.length) {\n val.forEach(val => {\n const formgroup = this.formBuilder.group({ details: [] });\n formgroup.patchValue({ details: val });\n this.formArray.push(formgroup);\n });\n }\n }\n\n registerOnChange(fn: any): void {\n this.formArray.valueChanges\n .pipe(\n debounceTime(100), // debounce to avoid emitting of this.formArray.clear()\n map(res => this.transformValue(res)),\n takeUntil(this.destroy$)\n )\n .subscribe(fn);\n }\n\n add() {\n const allowChangingContext =\n !this.widgetComponent?.isDeviceTypeDashboard && this.config?.allowChangingContext !== false;\n this.alarmEventModalService\n .selectItems({\n allowChangingContext,\n selectType: this.timelineType,\n selectedItems: this.transformValue(this.formArray.value),\n allowSearch: !this.config?.contextAsset,\n title: this.timelineTypeTexts.selectorTitle,\n saveButtonLabel: this.timelineTypeTexts.addButtonLabel,\n omitProperties: this.omitProperties,\n contextAsset: this.config?.contextAsset\n ? this.config.contextAsset\n : this.contextSourceId\n ? { id: this.contextSourceId }\n : null,\n ...(this.config || {})\n })\n .then(\n result => {\n this.writeValue(result);\n },\n () => {\n // nothing to do, modal was closed\n }\n );\n }\n\n onItemRemoved(index: number) {\n this.formArray.removeAt(index);\n }\n\n drop(event: CdkDragDrop<AlarmOrEvent[]>) {\n const currentSorting = this.formArray.value;\n moveItemInArray(currentSorting, event.previousIndex, event.currentIndex);\n this.formArray.setValue(currentSorting);\n }\n\n private transformValue(formArrayValue: any[]) {\n if (!formArrayValue) {\n return [];\n }\n return formArrayValue.map(tmp => Object.assign({}, ...Object.values(tmp)));\n }\n\n private initializeContextSourceId(): number | string | null {\n const routeContext = this.contextRouteService.getContextData(this.activatedRoute);\n if (!routeContext) {\n return;\n }\n const { context, contextData } = routeContext;\n if ([ViewContext.Device, ViewContext.Group].includes(context)) {\n return contextData?.id;\n }\n }\n}\n","<div\n class=\"card-header separator-top-bottom sticky-top bg-inherit\"\n *ngIf=\"!inline\"\n>\n <span class=\"card-title h4\">{{ title | translate }}</span>\n</div>\n\n<c8y-list-group\n class=\"flex-grow ff-scroll-fix cdk-droplist\"\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"formArray.controls?.length < 2\"\n>\n <div\n class=\"p-t-8\"\n *ngIf=\"!formArray.controls?.length\"\n >\n <ng-content select=\"c8y-ui-empty-state\"></ng-content>\n <c8y-ui-empty-state\n class=\"p-t-8\"\n [icon]=\"timelineTypeTexts.emptyStateIcon\"\n [title]=\"timelineTypeTexts.emptyStateTitle | translate\"\n [subtitle]=\"timelineTypeTexts.emptyStateSubtitle | translate\"\n *ngIf=\"!emptyState\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </div>\n <div\n *ngFor=\"let itemForm of formArray.controls; let index = index\"\n [formGroup]=\"itemForm\"\n >\n <c8y-alarm-event-selector-list-item\n class=\"d-block\"\n cdkDrag\n [cdkDragDisabled]=\"!canDragAndDrop\"\n formControlName=\"details\"\n [showAddRemoveButton]=\"false\"\n [datapoints]=\"datapoints\"\n [optionToRemove]=\"canRemove\"\n [showActiveToggle]=\"true\"\n [timelineType]=\"timelineType\"\n [allowItemEdit]=\"canEdit\"\n [hideSource]=\"hideSource\"\n [displayAsSwitch]=\"activeToggleAsSwitch\"\n [omitProperties]=\"omitProperties\"\n (removed)=\"onItemRemoved(index)\"\n >\n <c8y-li-drag-handle\n title=\"{{ 'Click and drag to reorder' | translate }}\"\n cdkDragHandle\n *ngIf=\"canDragAndDrop\"\n >\n <i c8yIcon=\"drag-reorder\"></i>\n </c8y-li-drag-handle>\n </c8y-alarm-event-selector-list-item>\n </div>\n</c8y-list-group>\n\n<div class=\"card-footer bg-inherit\">\n <button\n class=\"btn btn-default btn-sm\"\n [title]=\"addButtonLabel | translate\"\n type=\"button\"\n [ngClass]=\"{ 'btn-block': inline }\"\n (click)=\"add()\"\n >\n <i\n c8yIcon=\"plus-circle\"\n *ngIf=\"canDragAndDrop\"\n ></i>\n {{ addButtonLabel | translate }}\n </button>\n</div>\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { AlarmEventSelectionListComponent } from './alarm-event-selection-list/alarm-event-selection-list.component';\nimport { AlarmEventSelectorListItemComponent } from './alarm-event-selector-list-item/alarm-event-selector-list-item.component';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\nimport { AlarmEventAttributesFormComponent } from './alarm-event-attributes-form/alarm-event-attributes-form.component';\nimport { AlarmEventSelectorModalComponent } from './alarm-event-selector-modal/alarm-event-selector-modal.component';\nimport { AlarmEventSelectorComponent } from './alarm-event-selector.component';\nimport { IncludesAlarmOrEventPipe } from './pipes/includes-alarm.pipe';\nimport { CustomAlarmEventFormComponent } from './custom-alarm-event-form/custom-alarm-event-form.component';\nimport { AssetSelectorModule } from '@c8y/ngx-components/assets-navigator';\nimport { CommonModule, CoreModule } from '@c8y/ngx-components';\n\n@NgModule({\n imports: [\n CommonModule,\n CoreModule,\n DragDropModule,\n PopoverModule,\n TooltipModule,\n AssetSelectorModule,\n CollapseModule,\n RouterModule.forChild([]),\n AlarmEventSelectionListComponent,\n AlarmEventSelectorListItemComponent,\n AlarmEventAttributesFormComponent,\n AlarmEventSelectorModalComponent,\n AlarmEventSelectorComponent,\n IncludesAlarmOrEventPipe,\n CustomAlarmEventFormComponent\n ],\n exports: [AlarmEventSelectionListComponent, AlarmEventSelectorComponent]\n})\nexport class AlarmEventSelectorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.AlarmEventAttributesFormService","i1","i1.AlarmEventSelectorService","i2","i1.AlarmEventSelectorModalService","i2.AlarmEventSelectorService","i3","i5"],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-alarm-event-selector.mjs","sources":["../../alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.service.ts","../../alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.component.ts","../../alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.component.html","../../alarm-event-selector/alarm-event-selector.model.ts","../../alarm-event-selector/alarm-event-selector.service.ts","../../alarm-event-selector/custom-alarm-event-form/custom-alarm-event-form.component.ts","../../alarm-event-selector/custom-alarm-event-form/custom-alarm-event-form.component.html","../../alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.ts","../../alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.html","../../alarm-event-selector/pipes/includes-alarm.pipe.ts","../../alarm-event-selector/alarm-event-selector.component.ts","../../alarm-event-selector/alarm-event-selector.component.html","../../alarm-event-selector/alarm-event-selector-modal/alarm-event-selector-modal.component.ts","../../alarm-event-selector/alarm-event-selector-modal/alarm-event-selector-modal.component.html","../../alarm-event-selector/alarm-event-selector-modal/alarm-event-selector-modal.service.ts","../../alarm-event-selector/alarm-event-selection-list/alarm-event-selection-list.component.ts","../../alarm-event-selector/alarm-event-selection-list/alarm-event-selection-list.component.html","../../alarm-event-selector/alarm-event-selector.module.ts","../../alarm-event-selector/c8y-ngx-components-alarm-event-selector.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\nimport { AlarmOrEvent } from '../alarm-event-selector.model';\n\n@Injectable({ providedIn: 'root' })\nexport class AlarmEventAttributesFormService {\n duplicateTypeValidator(selectedItems: AlarmOrEvent[]) {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value || !selectedItems?.length) {\n return null;\n }\n const isDuplicate = selectedItems.some(\n item => item.filters?.type?.toLowerCase() === control.value.toLowerCase()\n );\n return isDuplicate ? { duplicateType: true } : null;\n };\n }\n}\n","import { Component, forwardRef, Input, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormBuilder,\n FormControl,\n FormGroup,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n Validators,\n FormsModule,\n ReactiveFormsModule\n} from '@angular/forms';\nimport { take } from 'rxjs/operators';\nimport { AlarmEventAttributesFormService } from './alarm-event-attributes-form.service';\nimport {\n AlarmOrEvent,\n OmitSelectorProperties,\n SelectedDatapoint,\n TimelineType\n} from '../alarm-event-selector.model';\nimport { IIdentified } from '@c8y/client';\nimport { KPIDetails } from '@c8y/ngx-components/datapoint-selector';\nimport { AlarmEventAttributeForm } from './alarm-event-attributes-form.model';\nimport { NgIf, NgFor } from '@angular/common';\nimport {\n FormGroupComponent,\n RequiredInputPlaceholderDirective,\n MessagesComponent,\n MessageDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\n\n@Component({\n selector: 'c8y-alarm-event-attributes-form',\n templateUrl: './alarm-event-attributes-form.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AlarmEventAttributesFormComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => AlarmEventAttributesFormComponent),\n multi: true\n }\n ],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n NgIf,\n FormGroupComponent,\n RequiredInputPlaceholderDirective,\n MessagesComponent,\n MessageDirective,\n NgFor,\n C8yTranslatePipe\n ]\n})\nexport class AlarmEventAttributesFormComponent implements ControlValueAccessor, Validator, OnInit {\n @Input() timelineType: TimelineType;\n @Input() omitProperties: OmitSelectorProperties = {};\n @Input() selectedItems: AlarmOrEvent[] = [];\n @Input() target: IIdentified;\n @Input() datapoints: KPIDetails[] = [];\n formGroup: FormGroup<AlarmEventAttributeForm>;\n\n constructor(\n private formBuilder: FormBuilder,\n private alarmEventAttributesFormService: AlarmEventAttributesFormService\n ) {}\n\n ngOnInit() {\n this.formGroup = this.formBuilder.group({\n filters: this.formBuilder.group({\n type: new FormControl<string>('', [\n Validators.required,\n this.alarmEventAttributesFormService.duplicateTypeValidator(this.selectedItems)\n ])\n }),\n timelineType: new FormControl<TimelineType>('' as TimelineType),\n selectedDatapoint: new FormControl<null | SelectedDatapoint>(null)\n });\n\n if (!this.omitProperties.label) {\n this.formGroup.addControl('label', new FormControl('', Validators.required));\n }\n if (this.datapoints?.length > 0) {\n this.filterKpis();\n }\n }\n\n validate(_control: AbstractControl): ValidationErrors {\n return this.formGroup?.valid ? null : { formInvalid: {} };\n }\n\n writeValue(obj: any): void {\n this.formGroup.patchValue(obj);\n }\n\n registerOnChange(fn: any): void {\n this.formGroup.valueChanges.subscribe(fn);\n }\n\n registerOnTouched(fn: any): void {\n this.formGroup.valueChanges.pipe(take(1)).subscribe(fn);\n }\n\n setDisabledState(isDisabled: boolean): void {\n isDisabled ? this.formGroup.disable() : this.formGroup.enable();\n }\n\n changeDatapointSelection(event: Event) {\n const selectElement = event.target as HTMLSelectElement;\n const selectedIndex = selectElement.selectedIndex;\n const selectedDatapoint = this.datapoints[selectedIndex];\n const trimmedDatapoint = {\n target: selectedDatapoint.__target.id as string,\n fragment: selectedDatapoint.fragment,\n series: selectedDatapoint.series\n };\n\n this.formGroup.patchValue({ selectedDatapoint: trimmedDatapoint });\n }\n\n trackByFn(_index: number, item: KPIDetails) {\n return `${item.fragment}-${item.series}-${item.__target?.id}`;\n }\n\n private filterKpis() {\n if (this.target && this.target.id) {\n this.datapoints = this.datapoints.filter(dp => dp.__target?.id === this.target.id);\n }\n }\n}\n","<div [formGroup]=\"formGroup\">\n <c8y-form-group\n class=\"form-group-sm\"\n *ngIf=\"formGroup.controls.label\"\n >\n <label class=\"m-0\">{{ 'Label' | translate }}</label>\n <input\n class=\"form-control flex-grow\"\n name=\"label\"\n formControlName=\"label\"\n [placeholder]=\"\n 'e.g. {{ example }}'\n | translate\n : {\n example: timelineType === 'ALARM' ? 'Unavailability alarm' : 'Location update'\n }\n \"\n />\n </c8y-form-group>\n\n <div formGroupName=\"filters\">\n <c8y-form-group class=\"form-group-sm\">\n <label class=\"m-0\">{{ 'Type' | translate }}</label>\n <input\n class=\"form-control flex-grow\"\n name=\"type\"\n formControlName=\"type\"\n [placeholder]=\"\n 'e.g. {{ example }}'\n | translate\n : {\n example:\n timelineType === 'ALARM' ? 'c8y_UnavailabilityAlarm' : 'c8y_LocationUpdate'\n }\n \"\n />\n <c8y-messages>\n <c8y-message\n name=\"duplicateType\"\n [text]=\"'Type already used.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n\n <c8y-form-group\n class=\"form-group-sm\"\n *ngIf=\"datapoints?.length > 0\"\n >\n <label>{{ 'Select data point' | translate }}</label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control input-sm\"\n (change)=\"changeDatapointSelection($event)\"\n >\n <option\n *ngFor=\"let datapoint of datapoints; trackBy: trackByFn\"\n [ngValue]=\"{\n target: datapoint.__target.id,\n fragment: datapoint.fragment,\n series: datapoint.series\n }\"\n [selected]=\"\n datapoint.__target.id === formGroup.value.selectedDatapoint?.target &&\n datapoint.fragment === formGroup.value.selectedDatapoint?.fragment &&\n datapoint.series === formGroup.value.selectedDatapoint?.series\n \"\n >\n {{ datapoint?.label }}\n </option>\n </select>\n </div>\n </c8y-form-group>\n</div>\n","import { IIdentified } from '@c8y/client';\nimport { gettext } from '@c8y/ngx-components/gettext';\n\nexport type TimelineType = 'ALARM' | 'EVENT';\n\ntype AlarmOrEventBase = {\n timelineType: TimelineType;\n color: string;\n __active?: boolean;\n label: string;\n filters: {\n type: string;\n };\n __target: IIdentified;\n};\n\nexport type AlarmDetails = AlarmOrEventBase & {\n timelineType: 'ALARM';\n filters: {\n type: string;\n };\n selectedDatapoint?: SelectedDatapoint;\n};\n\nexport type EventDetails = AlarmOrEventBase & {\n timelineType: 'EVENT';\n filters: {\n type: string;\n };\n selectedDatapoint?: SelectedDatapoint;\n};\n\nexport type SelectedDatapoint = {\n target?: string;\n series?: string;\n fragment?: string;\n};\n\nexport type AlarmOrEvent = AlarmDetails | EventDetails;\n\nexport type TimelineTypeTexts = {\n listTitle: string;\n emptyStateIcon: string;\n emptyStateTitle: string;\n emptyStateSubtitle: string;\n addButtonLabel: string;\n addCustomItemButtonLabel: string;\n selectorTitle: string;\n availableItemsTitle: string;\n assetWithNoItemsEmptyStateSubtitle: string;\n largeNumberOfItemsInfo: string;\n selectedItemsTitle: string;\n noSelectedItemsTitle: string;\n recentItemsWarningTitle: string;\n recentItemsWarningText: string;\n addCustomText: string;\n};\n\nexport const EVENT_TEXTS: TimelineTypeTexts = {\n listTitle: gettext('Events'),\n emptyStateIcon: 'online1',\n emptyStateTitle: gettext('No events to display.'),\n emptyStateSubtitle: gettext('Add your first event.'),\n addButtonLabel: gettext('Add event'),\n addCustomItemButtonLabel: gettext('Add custom event'),\n selectorTitle: gettext('Events selector'),\n availableItemsTitle: gettext('Available events'),\n assetWithNoItemsEmptyStateSubtitle: gettext('Select an asset with events from the list.'),\n largeNumberOfItemsInfo: gettext(\n 'Due to the large number, only a subset of events are displayed. Use search to narrow down the number of results.'\n ),\n selectedItemsTitle: gettext('Selected events'),\n noSelectedItemsTitle: gettext('No events selected.'),\n recentItemsWarningTitle: gettext('The list below may not be complete.'),\n recentItemsWarningText: gettext(\n 'Recent events are displayed below. Past events might not be shown.'\n ),\n addCustomText: gettext('Optionally you can add a custom event.')\n};\n\nexport const ALARM_TEXTS: TimelineTypeTexts = {\n listTitle: gettext('Alarms'),\n emptyStateIcon: 'c8y-alarm',\n emptyStateTitle: gettext('No alarms to display.'),\n emptyStateSubtitle: gettext('Add your first alarm.'),\n addButtonLabel: gettext('Add alarm'),\n addCustomItemButtonLabel: gettext('Add custom alarm'),\n selectorTitle: gettext('Alarms selector'),\n availableItemsTitle: gettext('Available alarms'),\n assetWithNoItemsEmptyStateSubtitle: gettext('Select an asset with alarms from the list.'),\n largeNumberOfItemsInfo: gettext(\n 'Due to the large number, only a subset of alarms are displayed. Use search to narrow down the number of results.'\n ),\n selectedItemsTitle: gettext('Selected alarms'),\n noSelectedItemsTitle: gettext('No alarms selected.'),\n recentItemsWarningTitle: gettext('The list below may not be complete.'),\n recentItemsWarningText: gettext(\n 'Recent alarms are displayed below. Past alarms might not be shown.'\n ),\n addCustomText: gettext('Optionally you can add a custom alarm.')\n};\n\n/**\n * The configuration for the alarms-events selector modal if some properties should be omitted.\n */\nexport type OmitSelectorProperties = {\n color?: boolean;\n label?: boolean;\n};\n","import { Injectable } from '@angular/core';\nimport { AlarmService, EventService, IAlarm, IEvent, IIdentified } from '@c8y/client';\nimport { ColorService } from '@c8y/ngx-components';\nimport { uniqBy } from 'lodash-es';\nimport {\n ALARM_TEXTS,\n AlarmDetails,\n AlarmOrEvent,\n EVENT_TEXTS,\n EventDetails,\n TimelineType,\n TimelineTypeTexts\n} from './alarm-event-selector.model';\n\n@Injectable({ providedIn: 'root' })\nexport class AlarmEventSelectorService {\n private timelineTypeTextsMap: Map<TimelineType, TimelineTypeTexts> = new Map([\n ['ALARM', ALARM_TEXTS],\n ['EVENT', EVENT_TEXTS]\n ]);\n\n constructor(\n private alarmService: AlarmService,\n private eventsService: EventService,\n private color: ColorService\n ) {}\n\n /**\n * This method returns the texts for the timeline type.\n * @param timelineType The timeline type.\n * @returns The texts for the timeline type.\n */\n timelineTypeTexts(timelineType: TimelineType): TimelineTypeTexts {\n return this.timelineTypeTextsMap.get(timelineType)!;\n }\n\n /**\n * This method returns all alarms or events of the platform based on the timeline type\n * @param timelineType The timeline type.\n * @returns The alarms or events of the asset.\n */\n async getItems(timelineType: TimelineType): Promise<AlarmOrEvent[]> {\n const filters = {\n pageSize: 1000\n };\n\n return timelineType === 'ALARM'\n ? await this.getAlarmsOfAsset(filters)\n : await this.getEventsOfAsset(filters);\n }\n\n /**\n * This method returns the items of the asset based on the timeline type.\n * @param parentReference The parent reference.\n * @param timelineType The timeline type.\n * @returns The alarms or events of the asset.\n */\n async getAlarmsOrEvents(\n parentReference: IIdentified,\n timelineType: TimelineType\n ): Promise<AlarmOrEvent[]> {\n const filters = { source: parentReference.id, pageSize: 1000 };\n\n return timelineType === 'ALARM'\n ? await this.getAlarmsOfAsset(filters)\n : await this.getEventsOfAsset(filters);\n }\n\n async getUniqueAlarmsOnly(data: IAlarm[]): Promise<AlarmDetails[]> {\n return Promise.all(\n uniqBy(data, 'type').map(async (alarm: IAlarm) => this.createItem('ALARM', alarm))\n );\n }\n\n async getUniqueEventsOnly(data: IEvent[]): Promise<EventDetails[]> {\n return Promise.all(\n uniqBy(data, 'type').map(async (event: IEvent) => this.createItem('EVENT', event))\n );\n }\n\n async createItem(timelineType: 'ALARM' & TimelineType, item: IAlarm): Promise<AlarmDetails>;\n async createItem(timelineType: 'EVENT' & TimelineType, item: IEvent): Promise<EventDetails>;\n async createItem(timelineType: TimelineType, item: IAlarm | IEvent): Promise<any> {\n const color = await this.color.generateColor(item.type);\n if (item.source && !item.source.name) {\n item.source.name = `Device ${item.source.id}`;\n }\n return {\n timelineType,\n color,\n label: item.type,\n filters: {\n type: item.type\n },\n __target: item.source\n };\n }\n\n private async getAlarmsOfAsset(filters: {\n pageSize: number;\n dateTo?: string;\n dateFrom?: string;\n source?: string | number;\n }): Promise<AlarmDetails[]> {\n const res = await this.alarmService.list({\n ...filters,\n withSourceAssets: !!filters.source,\n withSourceDevices: !!filters.source,\n pageSize: 1000\n });\n const alarms = await this.getUniqueAlarmsOnly(res.data);\n return alarms;\n }\n\n private async getEventsOfAsset(filters: {\n pageSize: number;\n dateTo?: string;\n dateFrom?: string;\n source?: string | number;\n }): Promise<EventDetails[]> {\n const res = await this.eventsService.list(filters);\n const events = this.getUniqueEventsOnly(res.data);\n return events;\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AlarmOrEvent, OmitSelectorProperties, TimelineType } from '../alarm-event-selector.model';\nimport { map, startWith, takeUntil } from 'rxjs/operators';\nimport { Observable, Subject } from 'rxjs';\nimport { IIdentified } from '@c8y/client';\nimport { NgIf, NgClass, AsyncPipe } from '@angular/common';\nimport {\n RequiredInputPlaceholderDirective,\n IconDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { AlarmEventAttributesFormComponent } from '../alarm-event-attributes-form/alarm-event-attributes-form.component';\n\n@Component({\n selector: 'c8y-custom-alarm-event-form',\n templateUrl: './custom-alarm-event-form.component.html',\n imports: [\n FormsModule,\n ReactiveFormsModule,\n NgIf,\n NgClass,\n RequiredInputPlaceholderDirective,\n IconDirective,\n AlarmEventAttributesFormComponent,\n C8yTranslatePipe,\n AsyncPipe\n ]\n})\nexport class CustomAlarmEventFormComponent implements OnInit, OnDestroy {\n @Input() timelineType: TimelineType;\n @Input() target: IIdentified;\n @Input() omitProperties: OmitSelectorProperties = {};\n @Input() selectedItems: AlarmOrEvent[] = [];\n @Input() defaultColor: string;\n @Output() added = new EventEmitter<AlarmOrEvent>();\n @Output() cancel = new EventEmitter<void>();\n\n formGroup: FormGroup;\n valid$: Observable<boolean>;\n private destroy$ = new Subject<void>();\n\n constructor(private formBuilder: FormBuilder) {\n this.formGroup = this.formBuilder.group({\n details: [],\n color: [],\n __active: [],\n __target: []\n });\n\n this.valid$ = this.formGroup.statusChanges.pipe(\n takeUntil(this.destroy$),\n map(val => val === 'VALID'),\n startWith(false)\n );\n }\n\n ngOnInit() {\n this.formGroup.patchValue({\n color: this.defaultColor,\n __target: this.target,\n details: { timelineType: this.timelineType }\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n add() {\n if (this.formGroup.valid) {\n const formValue = this.transformFormValue(this.formGroup.value);\n this.added.emit(formValue);\n }\n }\n\n private transformFormValue(formValue: any) {\n const obj = Object.assign({}, formValue.details || {}, formValue);\n delete obj.details;\n return obj;\n }\n}\n","<form [formGroup]=\"formGroup\" class=\"p-16\">\n <div\n *ngIf=\"!omitProperties.color\"\n class=\"form-group d-flex a-i-center gap-8\"\n [title]=\"'Change color' | translate\"\n >\n <label class=\"m-0\">{{ 'Color' | translate }}</label>\n <div class=\"c8y-colorpicker\"\n [ngClass]=\"{\n 'c8y-colorpicker--event': timelineType === 'EVENT',\n 'c8y-colorpicker--alarm': timelineType !== 'EVENT'\n }\"\n >\n <input\n type=\"color\"\n formControlName=\"color\"\n (click)=\"$event.stopPropagation()\"\n />\n <span [style.background-color]=\"formGroup.value.color\">\n <i [c8yIcon]=\"timelineType === 'EVENT' ? 'online1' : 'bell'\"></i>\n </span>\n </div>\n </div>\n\n <c8y-alarm-event-attributes-form\n formControlName=\"details\"\n [timelineType]=\"timelineType\"\n [omitProperties]=\"omitProperties\"\n [selectedItems]=\"selectedItems\"\n ></c8y-alarm-event-attributes-form>\n\n <div class=\"d-flex p-t-16 gap-8\">\n <button class=\"btn btn-default btn-sm\" (click)=\"cancel.emit()\">\n {{ 'Cancel' | translate }}\n </button>\n <button\n class=\"btn btn-primary btn-sm\"\n [disabled]=\"(valid$ | async) === false\"\n (click)=\"add()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Select' | translate }}\n </button>\n </div>\n</form>\n","import {\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n Output\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormBuilder,\n FormGroup,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n FormsModule,\n ReactiveFormsModule\n} from '@angular/forms';\nimport { AlarmOrEvent, OmitSelectorProperties, TimelineType } from '../alarm-event-selector.model';\nimport { map, take, takeUntil } from 'rxjs/operators';\nimport { Observable, Subject } from 'rxjs';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n ListItemComponent,\n ListItemDragHandleComponent,\n ListItemIconComponent,\n IconDirective,\n ListItemCheckboxComponent,\n RequiredInputPlaceholderDirective,\n HighlightComponent,\n ListItemActionComponent,\n ListItemCollapseComponent,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { KPIDetails } from '@c8y/ngx-components/datapoint-selector';\nimport { NgIf, NgClass, NgStyle, AsyncPipe } from '@angular/common';\nimport { PopoverDirective } from 'ngx-bootstrap/popover';\nimport { AlarmEventAttributesFormComponent } from '../alarm-event-attributes-form/alarm-event-attributes-form.component';\n\n@Component({\n selector: 'c8y-alarm-event-selector-list-item',\n templateUrl: './alarm-event-selector-list-item.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AlarmEventSelectorListItemComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => AlarmEventSelectorListItemComponent),\n multi: true\n }\n ],\n imports: [\n ListItemComponent,\n FormsModule,\n ReactiveFormsModule,\n ListItemDragHandleComponent,\n NgIf,\n ListItemIconComponent,\n IconDirective,\n ListItemCheckboxComponent,\n NgClass,\n RequiredInputPlaceholderDirective,\n NgStyle,\n HighlightComponent,\n PopoverDirective,\n ListItemActionComponent,\n ListItemCollapseComponent,\n AlarmEventAttributesFormComponent,\n C8yTranslatePipe,\n AsyncPipe\n ]\n})\nexport class AlarmEventSelectorListItemComponent\n implements OnInit, ControlValueAccessor, Validator, OnDestroy\n{\n @Input() timelineType: TimelineType;\n @Input() datapoints: KPIDetails[] | undefined;\n @Input() highlightText: string;\n @Input() showAddRemoveButton = true;\n @Input() isSelected = false;\n @Input() optionToRemove = false;\n @Input() showActiveToggle = false;\n @Input() allowItemEdit = false;\n @Input() hideSource = false;\n @Input() displayAsSwitch = false;\n @Input() omitProperties: OmitSelectorProperties = {};\n\n colorPickerTitle: string;\n @Output() added = new EventEmitter<AlarmOrEvent>();\n @Output() removed = new EventEmitter<AlarmOrEvent>();\n\n formGroup: FormGroup;\n valid$: Observable<boolean>;\n private destroy$ = new Subject<void>();\n\n constructor(private formBuilder: FormBuilder) {\n this.formGroup = this.formBuilder.group({\n details: [],\n color: [],\n __active: [],\n __target: []\n });\n this.valid$ = this.formGroup.statusChanges.pipe(\n takeUntil(this.destroy$),\n map(val => val === 'VALID')\n );\n }\n\n ngOnInit() {\n this.colorPickerTitle = this.allowItemEdit ? gettext('Change color') : '';\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n toggleActive() {\n this.formGroup.controls.__active.setValue(!this.formGroup.value.__active);\n }\n\n validate(_control: AbstractControl): ValidationErrors {\n return this.formGroup?.valid ? null : { formInvalid: {} };\n }\n\n writeValue(obj: any): void {\n this.formGroup.patchValue({ ...obj, details: obj });\n }\n\n registerOnChange(fn: any): void {\n this.formGroup.valueChanges\n .pipe(\n map(tmp => this.transformFormValue(tmp)),\n takeUntil(this.destroy$)\n )\n .subscribe(fn);\n }\n\n registerOnTouched(fn: any): void {\n this.formGroup.valueChanges.pipe(take(1)).subscribe(fn);\n }\n\n setDisabledState(isDisabled: boolean): void {\n isDisabled ? this.formGroup.disable() : this.formGroup.enable();\n }\n\n addOrRemoveItem() {\n const value = this.transformFormValue(this.formGroup.value);\n if (this.isSelected) {\n this.removed.emit(value);\n } else {\n this.added.emit(value);\n }\n }\n\n remove() {\n this.removed.emit(this.transformFormValue(this.formGroup.value));\n }\n\n private transformFormValue(formValue: any) {\n const obj = Object.assign({}, formValue.details || {}, formValue);\n delete obj.details;\n return obj;\n }\n}\n","<c8y-li\n class=\"c8y-list__item__collapse--container-small\"\n [formGroup]=\"formGroup\"\n #li\n>\n <c8y-li-drag-handle><ng-content select=\"c8y-li-drag-handle\"></ng-content></c8y-li-drag-handle>\n <c8y-li-checkbox\n class=\"a-s-center m-t-4 p-r-0\"\n *ngIf=\"showActiveToggle\"\n [displayAsSwitch]=\"displayAsSwitch\"\n formControlName=\"__active\"\n (click)=\"$event.stopPropagation()\"\n ></c8y-li-checkbox>\n\n <div class=\"d-flex a-i-center p-l-0\">\n <div\n class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-16\"\n [title]=\"colorPickerTitle | translate\"\n >\n <div\n class=\"c8y-colorpicker\"\n [ngClass]=\"{\n 'c8y-colorpicker--alarm': timelineType === 'ALARM',\n 'c8y-colorpicker--event': timelineType === 'EVENT'\n }\"\n >\n <input\n [ngStyle]=\"{ 'pointer-events': allowItemEdit && !omitProperties.color ? 'auto' : 'none' }\"\n type=\"color\"\n formControlName=\"color\"\n (click)=\"$event.stopPropagation()\"\n />\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--medium\"\n [ngStyle]=\"{ 'background-color': formGroup.value.color }\"\n >\n <i\n class=\"stroked-icon\"\n [c8yIcon]=\"timelineType === 'EVENT' ? 'online1' : 'bell'\"\n ></i>\n </span>\n </div>\n </div>\n <button\n class=\"btn-clean text-truncate\"\n [title]=\"formGroup.value.details?.label\"\n (click)=\"\n allowItemEdit\n ? (li.collapsed = !li.collapsed)\n : showActiveToggle\n ? toggleActive()\n : addOrRemoveItem()\n \"\n >\n <span class=\"text-truncate\">\n <c8y-highlight\n [text]=\"\n omitProperties.label\n ? formGroup.value.details?.filters?.type\n : formGroup.value.details?.label\n \"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n <small\n class=\"text-truncate text-muted icon-flex\"\n *ngIf=\"formGroup.value.__target && !hideSource\"\n >\n <i c8yIcon=\"exchange\"></i>\n <span class=\"text-truncate\">{{ formGroup.value.__target.name }}</span>\n </small>\n </button>\n\n <button\n class=\"btn-dot btn-dot--danger m-l-auto\"\n title=\"{{ 'Invalid entries' | translate }}\"\n [popover]=\"'Some entries are invalid. Check the required input fields.' | translate\"\n container=\"body\"\n *ngIf=\"(valid$ | async) === false && li.collapsed\"\n [outsideClick]=\"true\"\n >\n <i c8yIcon=\"exclamation-circle\" class=\"icon-20\" ></i>\n </button>\n <span class=\"m-l-auto\" *ngIf=\"showAddRemoveButton\">\n <button\n class=\"btn btn-dot text-danger\"\n [title]=\"'Remove' | translate\"\n *ngIf=\"isSelected\"\n (click)=\"addOrRemoveItem()\"\n >\n <i\n class=\"icon-20\"\n c8yIcon=\"minus-circle\"\n ></i>\n </button>\n <button\n class=\"btn btn-dot text-primary\"\n [title]=\"'Select' | translate\"\n *ngIf=\"!isSelected\"\n (click)=\"addOrRemoveItem()\"\n [disabled]=\"(valid$ | async) === false\"\n >\n <i\n class=\"icon-20\"\n c8yIcon=\"plus-circle\"\n ></i>\n </button>\n </span>\n </div>\n\n <c8y-li-action\n [icon]=\"'minus-circle'\"\n *ngIf=\"optionToRemove\"\n [label]=\"'Remove from list' | translate\"\n (click)=\"remove()\"\n ></c8y-li-action>\n <c8y-li-collapse *ngIf=\"allowItemEdit\">\n <div class=\"data-point-details\">\n <c8y-alarm-event-attributes-form\n formControlName=\"details\"\n [timelineType]=\"timelineType\"\n [omitProperties]=\"omitProperties\"\n [datapoints]=\"datapoints\"\n [target]=\"formGroup.value.__target\"\n ></c8y-alarm-event-attributes-form>\n </div>\n </c8y-li-collapse>\n</c8y-li>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AlarmDetails, EventDetails } from '../alarm-event-selector.model';\n\n@Pipe({ name: 'includesAlarmOrEvent' })\nexport class IncludesAlarmOrEventPipe implements PipeTransform {\n transform<T extends AlarmDetails | EventDetails>(itemList: T[], item?: T): boolean {\n if (!Array.isArray(itemList) || !item) {\n return false;\n }\n return itemList.some(\n tmp =>\n tmp.label === item.label &&\n tmp.filters.type === item.filters.type &&\n tmp.__target?.id === item.__target?.id\n );\n }\n}\n","import { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { IIdentified } from '@c8y/client';\nimport {\n AssetSelectionChangeEvent,\n MillerViewComponent\n} from '@c8y/ngx-components/assets-navigator';\nimport { BehaviorSubject, combineLatest, Observable } from 'rxjs';\nimport {\n debounceTime,\n distinctUntilChanged,\n map,\n shareReplay,\n switchMap,\n tap\n} from 'rxjs/operators';\nimport {\n AlarmOrEvent,\n OmitSelectorProperties,\n TimelineType,\n TimelineTypeTexts\n} from './alarm-event-selector.model';\nimport { AlarmEventSelectorService } from './alarm-event-selector.service';\nimport { NgClass, NgIf, NgFor, AsyncPipe } from '@angular/common';\nimport {\n EmptyStateComponent,\n LoadingComponent,\n IconDirective,\n ListGroupComponent,\n ListItemComponent,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { CollapseDirective } from 'ngx-bootstrap/collapse';\nimport { CustomAlarmEventFormComponent } from './custom-alarm-event-form/custom-alarm-event-form.component';\nimport { AlarmEventSelectorListItemComponent } from './alarm-event-selector-list-item/alarm-event-selector-list-item.component';\nimport { IncludesAlarmOrEventPipe } from './pipes/includes-alarm.pipe';\n\n@Component({\n selector: 'c8y-alarm-event-selector',\n templateUrl: './alarm-event-selector.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => AlarmEventSelectorComponent)\n }\n ],\n imports: [\n NgClass,\n NgIf,\n MillerViewComponent,\n FormsModule,\n EmptyStateComponent,\n LoadingComponent,\n IconDirective,\n CollapseDirective,\n CustomAlarmEventFormComponent,\n ListGroupComponent,\n ListItemComponent,\n NgFor,\n AlarmEventSelectorListItemComponent,\n C8yTranslatePipe,\n AsyncPipe,\n IncludesAlarmOrEventPipe\n ]\n})\nexport class AlarmEventSelectorComponent implements OnInit {\n @Input() timelineType: TimelineType = 'ALARM';\n @Input() contextAsset: IIdentified;\n @Input() allowChangingContext = true;\n @Input() selectedItems = new Array<AlarmOrEvent>();\n @Input() allowSearch = true;\n @Input() groupsSelectable = true;\n @Input() hideSource = false;\n @Input() omitProperties: OmitSelectorProperties = {};\n\n @Output() selectionChange = new EventEmitter<AlarmOrEvent[]>();\n filterString = '';\n maxNumberOfItems = 50;\n\n loadingItems$ = new BehaviorSubject(false);\n assetSelection = new BehaviorSubject<IIdentified>({});\n items$: Observable<AlarmOrEvent[]>;\n filteredItems$: Observable<AlarmOrEvent[]>;\n filterStringChanges$: Observable<string>;\n timelineTypeTexts: TimelineTypeTexts;\n isExpanded = false;\n defaultColor =\n getComputedStyle(document.documentElement).getPropertyValue('--brand-primary') ||\n getComputedStyle(document.documentElement).getPropertyValue('--c8y-brand-primary') ||\n '#1776BF';\n private filterString$ = new BehaviorSubject('');\n\n constructor(private alarmEventSelectorService: AlarmEventSelectorService) {}\n\n ngOnInit(): void {\n this.timelineTypeTexts = this.alarmEventSelectorService.timelineTypeTexts(this.timelineType);\n this.setupObservables();\n if (this.contextAsset) {\n this.selectAsset(this.contextAsset);\n }\n }\n\n itemAdded(item: AlarmOrEvent): void {\n item.__active = true;\n this.selectedItems = [...this.selectedItems, item];\n this.emitCurrentSelection();\n }\n\n itemRemoved(alarm: AlarmOrEvent): void {\n this.selectedItems = this.selectedItems.filter(\n tmp =>\n tmp.label !== alarm.label ||\n tmp.filters.type !== alarm.filters.type ||\n tmp.__target?.id !== alarm.__target?.id\n );\n this.emitCurrentSelection();\n }\n\n assetSelectionChanged(evt: AssetSelectionChangeEvent): void {\n if (evt.items) {\n return this.selectAsset(evt.items.length ? evt.items[0] : evt.items);\n }\n // reset selection\n this.assetSelection.next(null);\n }\n\n trackByFn(_index: number, item: AlarmOrEvent): string {\n return `${item.filters.type}-${item.__target?.id}`;\n }\n\n filterStringChanged(newValue = ''): void {\n this.filterString$.next(newValue);\n this.filterString = newValue;\n }\n\n private setLoadingState(state: boolean) {\n queueMicrotask(() => this.loadingItems$.next(state));\n }\n\n private setupObservables(): void {\n this.items$ = this.assetSelection.pipe(\n tap(() => this.setLoadingState(true)),\n switchMap((asset: IIdentified) =>\n asset?.id\n ? this.alarmEventSelectorService.getAlarmsOrEvents(asset, this.timelineType)\n : this.alarmEventSelectorService.getItems(this.timelineType)\n ),\n tap(() => this.setLoadingState(false)),\n map(items => {\n if (this.omitProperties.color) {\n items.forEach(i => (i.color = this.defaultColor));\n }\n return items;\n }),\n shareReplay(1)\n );\n\n this.filterStringChanges$ = this.filterString$.pipe(\n distinctUntilChanged(),\n debounceTime(500),\n shareReplay(1)\n );\n\n this.filteredItems$ = combineLatest([this.filterStringChanges$, this.items$]).pipe(\n map(([filterString, items]) => {\n if (!filterString) {\n return items;\n }\n const lowerCaseFilterString = filterString.toLowerCase();\n return items.filter(item => this.includesFilterString(item, lowerCaseFilterString));\n }),\n map(filtered => filtered.slice(0, this.maxNumberOfItems))\n );\n }\n\n private selectAsset(asset: IIdentified) {\n this.assetSelection.next(asset);\n this.filterStringChanged();\n }\n\n private emitCurrentSelection() {\n this.selectionChange.emit(this.selectedItems);\n }\n\n private includesFilterString(alarm: AlarmOrEvent, lowerCaseFilterString: string): boolean {\n const label = alarm.label?.toLowerCase();\n if (label && label.includes(lowerCaseFilterString)) {\n return true;\n }\n\n const type = alarm.filters.type?.toLowerCase();\n if (type && type.includes(lowerCaseFilterString)) {\n return true;\n }\n\n return false;\n }\n}\n","<div\n class=\"d-grid grid__row--1 fit-h\"\n [ngClass]=\"{\n 'grid__col--3-6-3--md': allowChangingContext,\n 'grid__col--8-4--md': !allowChangingContext\n }\"\n>\n <div\n class=\"d-flex d-col p-relative bg-level-1\"\n *ngIf=\"allowChangingContext\"\n >\n <c8y-asset-selector-miller\n class=\"d-contents\"\n [(ngModel)]=\"contextAsset\"\n [asset]=\"contextAsset\"\n (onSelected)=\"assetSelectionChanged($event)\"\n [container]=\"''\"\n [config]=\"{\n view: 'miller',\n groupsSelectable: groupsSelectable,\n columnHeaders: true,\n showChildDevices: true,\n showUnassignedDevices: true,\n singleColumn: true,\n search: allowSearch,\n showFilter: true\n }\"\n ></c8y-asset-selector-miller>\n </div>\n <!-- center column -->\n <div class=\"inner-scroll bg-component\" data-cy=\"c8y-alarm-event-selector--inner-column\">\n <ng-template #noDeviceEmptyState>\n <div class=\"p-16\">\n <c8y-ui-empty-state\n [icon]=\"timelineTypeTexts.emptyStateIcon\"\n [title]=\"timelineTypeTexts.emptyStateTitle | translate\"\n [subtitle]=\"timelineTypeTexts.assetWithNoItemsEmptyStateSubtitle | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </div>\n </ng-template>\n\n <ng-template #loadingData>\n <div class=\"p-16 text-center\">\n <c8y-loading></c8y-loading>\n </div>\n </ng-template>\n\n <div\n class=\"bg-inherit\"\n *ngIf=\"assetSelection | async as asset; else noDeviceEmptyState\"\n >\n <div class=\"p-l-16 p-r-16 p-t-8 p-b-8 sticky-top bg-inherit separator-bottom\">\n <p\n class=\"text-medium text-truncate\"\n [title]=\"timelineTypeTexts.availableItemsTitle | translate\"\n >\n {{ timelineTypeTexts.availableItemsTitle | translate }}\n </p>\n <div class=\"d-flex\">\n <div\n class=\"input-group input-group-search m-t-4\"\n id=\"search\"\n *ngIf=\"!(loadingItems$ | async)\"\n >\n <input\n class=\"form-control\"\n placeholder=\"Filter…\"\n type=\"search\"\n [ngModel]=\"filterString\"\n (ngModelChange)=\"filterStringChanged($event)\"\n />\n <span class=\"input-group-addon\">\n <i\n c8yIcon=\"search\"\n *ngIf=\"!filterString; else clearFilterString\"\n ></i>\n <ng-template #clearFilterString>\n <i\n class=\"text-muted\"\n c8yIcon=\"times\"\n *ngIf=\"filterString\"\n (click)=\"filterStringChanged()\"\n ></i>\n </ng-template>\n </span>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"filteredItems$ | async as filteredItems; else loadingData\">\n <ng-container *ngIf=\"!(loadingItems$ | async); else loadingData\">\n <ng-container *ngIf=\"items$ | async as items\">\n <div class=\"p-16 bg-level-2 separator-bottom\">\n <div>\n <p>\n <i\n class=\"text-info m-r-4\"\n c8yIcon=\"info-circle\"\n ></i>\n <strong>{{ timelineTypeTexts.recentItemsWarningTitle | translate }}</strong>\n </p>\n <p>\n {{ timelineTypeTexts.recentItemsWarningText | translate }}\n {{ timelineTypeTexts.addCustomText | translate }}\n </p>\n </div>\n <div class=\"p-t-16\">\n <button\n class=\"btn btn-default btn-sm\"\n aria-controls=\"collapseCustomItemForm\"\n [attr.aria-expanded]=\"isExpanded\"\n *ngIf=\"!isExpanded\"\n (click)=\"isExpanded = true\"\n >\n {{ timelineTypeTexts.addCustomItemButtonLabel | translate }}\n </button>\n <div\n class=\"collapse\"\n id=\"collapseCustomItemForm\"\n [collapse]=\"!isExpanded\"\n [isAnimated]=\"true\"\n >\n <div [style.min-height]=\"'230px'\">\n <c8y-custom-alarm-event-form\n class=\"d-block\"\n *ngIf=\"isExpanded\"\n [timelineType]=\"timelineType\"\n [target]=\"assetSelection | async\"\n [omitProperties]=\"omitProperties\"\n [defaultColor]=\"defaultColor\"\n (added)=\"itemAdded($event); isExpanded = false\"\n (cancel)=\"isExpanded = false\"\n [selectedItems]=\"selectedItems\"\n ></c8y-custom-alarm-event-form>\n </div>\n </div>\n </div>\n </div>\n\n <div\n class=\"p-16\"\n *ngIf=\"!filteredItems.length\"\n >\n <c8y-ui-empty-state\n [icon]=\"timelineTypeTexts.emptyStateIcon\"\n [title]=\"timelineTypeTexts.emptyStateTitle | translate\"\n [subtitle]=\"\n items.length\n ? ('Try another filter term.' | translate)\n : (timelineTypeTexts.assetWithNoItemsEmptyStateSubtitle | translate)\n \"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </div>\n\n <c8y-list-group>\n <c8y-list-item\n class=\"sticky-top\"\n style=\"top: 72px\"\n *ngIf=\"items.length > maxNumberOfItems && filteredItems.length >= maxNumberOfItems\"\n >\n <div class=\"alert alert-warning m-b-0\">\n {{ timelineTypeTexts.largeNumberOfItemsInfo | translate }}\n </div>\n </c8y-list-item>\n <c8y-alarm-event-selector-list-item\n class=\"d-contents\"\n [ngModel]=\"item\"\n [isSelected]=\"selectedItems | includesAlarmOrEvent: item\"\n (added)=\"itemAdded($event)\"\n (removed)=\"itemRemoved($event)\"\n [highlightText]=\"filterStringChanges$ | async\"\n [timelineType]=\"timelineType\"\n [hideSource]=\"hideSource\"\n *ngFor=\"let item of filteredItems; trackBy: trackByFn\"\n ></c8y-alarm-event-selector-list-item>\n </c8y-list-group>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n\n <!-- last column -->\n <div class=\"inner-scroll bg-level-1\">\n <p\n class=\"text-medium m-b-4 p-l-16 p-r-16 p-t-8 p-b-8 separator-bottom sticky-top text-truncate\"\n [title]=\"timelineTypeTexts.selectedItemsTitle | translate\"\n >\n {{ timelineTypeTexts.selectedItemsTitle | translate }}\n </p>\n <div class=\"d-flex flex-wrap gap-8 p-l-16 p-r-16 p-b-16\">\n <c8y-ui-empty-state\n [icon]=\"timelineTypeTexts.emptyStateIcon\"\n [title]=\"timelineTypeTexts.noSelectedItemsTitle | translate\"\n *ngIf=\"!selectedItems || !selectedItems.length\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n\n <div\n [ngClass]=\"{\n 'c8y-alarm-pill': timelineType === 'ALARM',\n 'c8y-event-pill': timelineType === 'EVENT'\n }\"\n *ngFor=\"let selectedItem of selectedItems\"\n >\n <button\n [title]=\"'Remove' | translate\"\n type=\"button\"\n [ngClass]=\"{\n 'c8y-alarm-pill__btn': timelineType === 'ALARM',\n 'c8y-event-pill__btn': timelineType === 'EVENT'\n }\"\n (click)=\"itemRemoved(selectedItem)\"\n >\n <i\n class=\"icon-14\"\n c8yIcon=\"remove\"\n ></i>\n </button>\n <div\n class=\"c8y-datapoint-pill__label\"\n [title]=\"selectedItem.label || selectedItem.filters.type\"\n >\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small m-r-4\"\n [style.background-color]=\"selectedItem.color || defaultColor\"\n >\n <i\n class=\"stroked-icon\"\n [c8yIcon]=\"timelineType === 'ALARM' ? 'bell' : 'online1'\"\n ></i>\n </span>\n <span class=\"text-truncate\">\n <span class=\"text-truncate\">{{ selectedItem.label || selectedItem.filters.type }}</span>\n <small\n class=\"text-muted text-10\"\n *ngIf=\"!hideSource && selectedItem?.__target?.name\"\n >\n {{ selectedItem?.__target?.name }}\n </small>\n </span>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { IIdentified } from '@c8y/client';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { AlarmOrEvent, OmitSelectorProperties, TimelineType } from '../alarm-event-selector.model';\nimport { AlarmEventSelectorComponent } from '../alarm-event-selector.component';\nimport { C8yTranslateDirective, C8yTranslatePipe } from '@c8y/ngx-components';\n\n@Component({\n selector: 'c8y-alarm-event-selector-modal',\n templateUrl: './alarm-event-selector-modal.component.html',\n imports: [AlarmEventSelectorComponent, C8yTranslateDirective, C8yTranslatePipe]\n})\nexport class AlarmEventSelectorModalComponent {\n selectType: TimelineType = 'ALARM';\n contextAsset: IIdentified;\n allowChangingContext = true;\n allowSearch = true;\n selectedItems = new Array<AlarmOrEvent>();\n title: string;\n groupsSelectable = true;\n hideSource = false;\n saveButtonLabel: string;\n omitProperties: OmitSelectorProperties = {};\n readonly result: Promise<AlarmOrEvent[]> = new Promise((resolve, reject) => {\n this.save = resolve;\n this.cancel = reject;\n });\n\n private save: (value: AlarmOrEvent[]) => void;\n private cancel: (reason?: any) => void;\n\n constructor(private bsModal: BsModalRef) {}\n\n saveChanges(): void {\n this.bsModal.hide();\n this.save(this.selectedItems);\n }\n\n close() {\n this.bsModal.hide();\n this.cancel();\n }\n\n selectionChange(selection: Array<AlarmOrEvent>) {\n this.selectedItems = selection;\n }\n}\n","<div class=\"modal-header separator\">\n <h4 class=\"text-medium\">{{ title | translate }}</h4>\n</div>\n<div class=\"modal-inner-scroll modal-inner-scroll--fixed\">\n <c8y-alarm-event-selector\n [selectedItems]=\"selectedItems\"\n [contextAsset]=\"contextAsset\"\n [timelineType]=\"selectType\"\n [groupsSelectable]=\"groupsSelectable\"\n [hideSource]=\"hideSource\"\n [allowChangingContext]=\"allowChangingContext\"\n [omitProperties]=\"omitProperties\"\n (selectionChange)=\"selectionChange($event)\"\n ></c8y-alarm-event-selector>\n</div>\n<div class=\"modal-footer\">\n <button\n type=\"button\"\n [title]=\"'Cancel' | translate\"\n class=\"btn btn-default\"\n (click)=\"close()\"\n translate\n >\n Cancel\n </button>\n <button\n [title]=\"saveButtonLabel | translate\"\n class=\"btn btn-primary\"\n [disabled]=\"!this.selectedItems?.length\"\n (click)=\"saveChanges()\"\n >\n {{ saveButtonLabel | translate }}\n </button>\n</div>\n","import { Injectable } from '@angular/core';\nimport { AlarmOrEvent } from '../alarm-event-selector.model';\nimport { AlarmEventSelectorModalComponent } from './alarm-event-selector-modal.component';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { AlarmEventSelectorModalOptions } from './alarm-event-selector-modal.model';\n\n/**\n * Service to open the alarm event selector modal.\n */\n@Injectable({ providedIn: 'root' })\nexport class AlarmEventSelectorModalService {\n constructor(private modal: BsModalService) {}\n /**\n * Opents the alarm or event selector modal.\n * @param initialState Initial state of the modal.\n * @returns Promise that resolves with the selected alarms or events.\n */\n selectItems(initialState: Partial<AlarmEventSelectorModalOptions> = {}): Promise<AlarmOrEvent[]> {\n const modal = this.modal.show(AlarmEventSelectorModalComponent, {\n ignoreBackdropClick: true,\n keyboard: false,\n initialState,\n class: 'modal-lg'\n });\n const content = modal.content as AlarmEventSelectorModalComponent;\n return content.result;\n }\n}\n","import {\n CdkDragDrop,\n moveItemInArray,\n CdkDropList,\n CdkDrag,\n CdkDragHandle\n} from '@angular/cdk/drag-drop';\nimport {\n Component,\n ContentChild,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n Optional\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormArray,\n FormBuilder,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n FormsModule,\n ReactiveFormsModule\n} from '@angular/forms';\nimport {\n ContextRouteService,\n EmptyStateComponent,\n ViewContext,\n ListGroupComponent,\n ListItemDragHandleComponent,\n IconDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { WidgetConfigComponent } from '@c8y/ngx-components/context-dashboard';\nimport { debounceTime, map, take, takeUntil } from 'rxjs/operators';\nimport { AlarmEventSelectorModalOptions } from '../alarm-event-selector-modal/alarm-event-selector-modal.model';\nimport { AlarmEventSelectorModalService } from '../alarm-event-selector-modal/alarm-event-selector-modal.service';\nimport {\n AlarmOrEvent,\n OmitSelectorProperties,\n TimelineType,\n TimelineTypeTexts\n} from '../alarm-event-selector.model';\nimport { AlarmEventSelectorService } from '../alarm-event-selector.service';\nimport { Subject } from 'rxjs';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgIf, NgFor, NgClass } from '@angular/common';\n\nimport { AlarmEventSelectorListItemComponent } from '../alarm-event-selector-list-item/alarm-event-selector-list-item.component';\n\n@Component({\n selector: 'c8y-alarm-event-selection-list',\n templateUrl: './alarm-event-selection-list.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => AlarmEventSelectionListComponent)\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => AlarmEventSelectionListComponent),\n multi: true\n }\n ],\n imports: [\n NgIf,\n ListGroupComponent,\n CdkDropList,\n EmptyStateComponent,\n NgFor,\n FormsModule,\n ReactiveFormsModule,\n AlarmEventSelectorListItemComponent,\n CdkDrag,\n ListItemDragHandleComponent,\n CdkDragHandle,\n IconDirective,\n NgClass,\n C8yTranslatePipe\n ]\n})\nexport class AlarmEventSelectionListComponent\n implements ControlValueAccessor, Validator, OnInit, OnDestroy\n{\n /**\n * The type of timeline to be displayed.\n * Can be either 'ALARM' or 'EVENT'.\n */\n @Input() timelineType: TimelineType = 'ALARM';\n\n /**\n * Whether the user can remove items from the list.\n */\n @Input() canRemove = true;\n\n /**\n * Whether the user can edit items in the alarm/event list.\n */\n @Input() canEdit = true;\n\n @Input() canDragAndDrop = true;\n @Input() title: string;\n\n /**\n * The label for the button to add items to the list.\n * If not provided, a default label will be used based on the timeline type.\n */\n @Input() addButtonLabel: string;\n\n /**\n * Hide or show the source of the alarm or event.\n */\n @Input() hideSource = false;\n\n /**\n * Display the list inline or as a dropdown.\n * If set to true, the list will be displayed inline.\n */\n @Input() inline = false; // TODO: @janhommes we should rename this to `isDropdownContained` or similar to make it more clear\n\n /**\n * Display the alarm/events as switch. If disabled it is displayed as checkbox instead.\n */\n @Input() activeToggleAsSwitch = true;\n\n @Input() omitProperties: OmitSelectorProperties = { color: false, label: false };\n @Input() datapoints = [];\n @ContentChild(EmptyStateComponent) emptyState: EmptyStateComponent;\n\n /**\n * The configuration for the alarms-events selector modal.\n */\n @Input() config: Partial<AlarmEventSelectorModalOptions> = {};\n\n formArray: FormArray;\n timelineTypeTexts: TimelineTypeTexts;\n contextSourceId: number | string | null;\n\n private destroy$ = new Subject<void>();\n\n constructor(\n private alarmEventModalService: AlarmEventSelectorModalService,\n private alarmEventSelectService: AlarmEventSelectorService,\n private formBuilder: FormBuilder,\n @Optional() private activatedRoute: ActivatedRoute,\n @Optional() private contextRouteService: ContextRouteService,\n @Optional() private widgetComponent: WidgetConfigComponent\n ) {\n this.formArray = this.formBuilder.array([]);\n }\n\n ngOnInit(): void {\n this.timelineTypeTexts = this.alarmEventSelectService.timelineTypeTexts(this.timelineType);\n this.title ??= this.timelineTypeTexts.listTitle;\n this.addButtonLabel ??= this.timelineTypeTexts.addButtonLabel;\n this.contextSourceId = this.initializeContextSourceId();\n const context = this.widgetComponent?.context;\n if (context?.id) {\n const { name, id, c8y_IsDevice } = context;\n this.config.contextAsset = { name, id, c8y_IsDevice };\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n registerOnTouched(fn: any): void {\n this.formArray.valueChanges.pipe(take(1)).subscribe(fn);\n }\n\n validate(_control: AbstractControl): ValidationErrors {\n return this.formArray.valid ? null : { formInvalid: {} };\n }\n\n writeValue(val: AlarmOrEvent[]): void {\n this.formArray.clear();\n if (val?.length) {\n val.forEach(val => {\n const formgroup = this.formBuilder.group({ details: [] });\n formgroup.patchValue({ details: val });\n this.formArray.push(formgroup);\n });\n }\n }\n\n registerOnChange(fn: any): void {\n this.formArray.valueChanges\n .pipe(\n debounceTime(100), // debounce to avoid emitting of this.formArray.clear()\n map(res => this.transformValue(res)),\n takeUntil(this.destroy$)\n )\n .subscribe(fn);\n }\n\n add() {\n const allowChangingContext =\n !this.widgetComponent?.isDeviceTypeDashboard && this.config?.allowChangingContext !== false;\n this.alarmEventModalService\n .selectItems({\n allowChangingContext,\n selectType: this.timelineType,\n selectedItems: this.transformValue(this.formArray.value),\n allowSearch: !this.config?.contextAsset,\n title: this.timelineTypeTexts.selectorTitle,\n saveButtonLabel: this.timelineTypeTexts.addButtonLabel,\n omitProperties: this.omitProperties,\n contextAsset: this.config?.contextAsset\n ? this.config.contextAsset\n : this.contextSourceId\n ? { id: this.contextSourceId }\n : null,\n ...(this.config || {})\n })\n .then(\n result => {\n this.writeValue(result);\n },\n () => {\n // nothing to do, modal was closed\n }\n );\n }\n\n onItemRemoved(index: number) {\n this.formArray.removeAt(index);\n }\n\n drop(event: CdkDragDrop<AlarmOrEvent[]>) {\n const currentSorting = this.formArray.value;\n moveItemInArray(currentSorting, event.previousIndex, event.currentIndex);\n this.formArray.setValue(currentSorting);\n }\n\n private transformValue(formArrayValue: any[]) {\n if (!formArrayValue) {\n return [];\n }\n return formArrayValue.map(tmp => Object.assign({}, ...Object.values(tmp)));\n }\n\n private initializeContextSourceId(): number | string | null {\n const routeContext = this.contextRouteService.getContextData(this.activatedRoute);\n if (!routeContext) {\n return;\n }\n const { context, contextData } = routeContext;\n if ([ViewContext.Device, ViewContext.Group].includes(context)) {\n return contextData?.id;\n }\n }\n}\n","<div\n class=\"card-header separator-top-bottom sticky-top bg-inherit\"\n *ngIf=\"!inline\"\n>\n <span class=\"card-title h4\">{{ title | translate }}</span>\n</div>\n\n<c8y-list-group\n class=\"flex-grow ff-scroll-fix cdk-droplist\"\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"formArray.controls?.length < 2\"\n>\n <div\n class=\"p-t-8\"\n *ngIf=\"!formArray.controls?.length\"\n >\n <ng-content select=\"c8y-ui-empty-state\"></ng-content>\n <c8y-ui-empty-state\n class=\"p-t-8\"\n [icon]=\"timelineTypeTexts.emptyStateIcon\"\n [title]=\"timelineTypeTexts.emptyStateTitle | translate\"\n [subtitle]=\"timelineTypeTexts.emptyStateSubtitle | translate\"\n *ngIf=\"!emptyState\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </div>\n <div\n *ngFor=\"let itemForm of formArray.controls; let index = index\"\n [formGroup]=\"itemForm\"\n >\n <c8y-alarm-event-selector-list-item\n class=\"d-block\"\n cdkDrag\n [cdkDragDisabled]=\"!canDragAndDrop\"\n formControlName=\"details\"\n [showAddRemoveButton]=\"false\"\n [datapoints]=\"datapoints\"\n [optionToRemove]=\"canRemove\"\n [showActiveToggle]=\"true\"\n [timelineType]=\"timelineType\"\n [allowItemEdit]=\"canEdit\"\n [hideSource]=\"hideSource\"\n [displayAsSwitch]=\"activeToggleAsSwitch\"\n [omitProperties]=\"omitProperties\"\n (removed)=\"onItemRemoved(index)\"\n >\n <c8y-li-drag-handle\n title=\"{{ 'Click and drag to reorder' | translate }}\"\n cdkDragHandle\n *ngIf=\"canDragAndDrop\"\n >\n <i c8yIcon=\"drag-reorder\"></i>\n </c8y-li-drag-handle>\n </c8y-alarm-event-selector-list-item>\n </div>\n</c8y-list-group>\n\n<div class=\"card-footer bg-inherit\">\n <button\n class=\"btn btn-default btn-sm\"\n [title]=\"addButtonLabel | translate\"\n type=\"button\"\n [ngClass]=\"{ 'btn-block': inline }\"\n (click)=\"add()\"\n >\n <i\n c8yIcon=\"plus-circle\"\n *ngIf=\"canDragAndDrop\"\n ></i>\n {{ addButtonLabel | translate }}\n </button>\n</div>\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { AlarmEventSelectionListComponent } from './alarm-event-selection-list/alarm-event-selection-list.component';\nimport { AlarmEventSelectorListItemComponent } from './alarm-event-selector-list-item/alarm-event-selector-list-item.component';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\nimport { AlarmEventAttributesFormComponent } from './alarm-event-attributes-form/alarm-event-attributes-form.component';\nimport { AlarmEventSelectorModalComponent } from './alarm-event-selector-modal/alarm-event-selector-modal.component';\nimport { AlarmEventSelectorComponent } from './alarm-event-selector.component';\nimport { IncludesAlarmOrEventPipe } from './pipes/includes-alarm.pipe';\nimport { CustomAlarmEventFormComponent } from './custom-alarm-event-form/custom-alarm-event-form.component';\nimport { AssetSelectorModule } from '@c8y/ngx-components/assets-navigator';\nimport { CommonModule, CoreModule } from '@c8y/ngx-components';\n\n@NgModule({\n imports: [\n CommonModule,\n CoreModule,\n DragDropModule,\n PopoverModule,\n TooltipModule,\n AssetSelectorModule,\n CollapseModule,\n RouterModule.forChild([]),\n AlarmEventSelectionListComponent,\n AlarmEventSelectorListItemComponent,\n AlarmEventAttributesFormComponent,\n AlarmEventSelectorModalComponent,\n AlarmEventSelectorComponent,\n IncludesAlarmOrEventPipe,\n CustomAlarmEventFormComponent\n ],\n exports: [AlarmEventSelectionListComponent, AlarmEventSelectorComponent]\n})\nexport class AlarmEventSelectorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.AlarmEventAttributesFormService","i1","i1.AlarmEventSelectorService","i2","i1.AlarmEventSelectorModalService","i2.AlarmEventSelectorService","i3","i5"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { NgModule } from '@angular/core';
3
- import { gettext, ViewContext, NavigatorNode } from '@c8y/ngx-components';
3
+ import { gettext } from '@c8y/ngx-components/gettext';
4
+ import { ViewContext, NavigatorNode } from '@c8y/ngx-components';
4
5
  import * as i1 from '@c8y/ngx-components/alarms';
5
6
  import { AlarmsModule, getChildrenForViewContext, AlarmsComponent, ALARMS_PATH, getViewContextRoutes } from '@c8y/ngx-components/alarms';
6
7
 
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-alarms-cockpit.mjs","sources":["../../alarms/cockpit/index.ts","../../alarms/cockpit/c8y-ngx-components-alarms-cockpit.ts"],"sourcesContent":["import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { NavigatorNode, ViewContext, gettext } from '@c8y/ngx-components';\nimport {\n ALARMS_PATH,\n AlarmsComponent,\n AlarmsModule,\n getChildrenForViewContext,\n getViewContextRoutes\n} from '@c8y/ngx-components/alarms';\n\nexport function alarmsCockpitRouteAndNodeConfig(): ModuleWithProviders<AlarmsModule> {\n return AlarmsModule.config({\n rootNavigatorNode: new NavigatorNode({\n label: gettext('Alarms'),\n icon: 'bell',\n priority: 1000,\n path: `/${ALARMS_PATH}`,\n featureId: 'alarms',\n parent: '',\n routerLinkExact: false\n }),\n route: [\n {\n path: ALARMS_PATH,\n component: AlarmsComponent,\n data: { title: true },\n children: getChildrenForViewContext(ViewContext.Alarms)\n },\n {\n context: ViewContext.Group,\n path: ALARMS_PATH,\n priority: 800,\n icon: 'bell',\n label: gettext('Alarms'),\n component: AlarmsComponent,\n featureId: 'alarms',\n children: getChildrenForViewContext(ViewContext.GroupAlarms)\n },\n {\n context: ViewContext.Device,\n path: ALARMS_PATH,\n priority: 800,\n icon: 'bell',\n label: gettext('Alarms'),\n component: AlarmsComponent,\n featureId: 'alarms',\n children: getChildrenForViewContext(ViewContext.DeviceAlarms)\n },\n ...getViewContextRoutes([\n ViewContext.Alarms,\n ViewContext.GroupAlarms,\n ViewContext.DeviceAlarms\n ])\n ]\n });\n}\n\n@NgModule({\n imports: [alarmsCockpitRouteAndNodeConfig()]\n})\nexport class CockpitAlarmsModule extends AlarmsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;SAUgB,+BAA+B,GAAA;IAC7C,OAAO,YAAY,CAAC,MAAM,CAAC;QACzB,iBAAiB,EAAE,IAAI,aAAa,CAAC;AACnC,YAAA,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;AACxB,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,CAAA,CAAA,EAAI,WAAW,CAAA,CAAE;AACvB,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,eAAe,EAAE;SAClB,CAAC;AACF,QAAA,KAAK,EAAE;AACL,YAAA;AACE,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AACrB,gBAAA,QAAQ,EAAE,yBAAyB,CAAC,WAAW,CAAC,MAAM;AACvD,aAAA;AACD,YAAA;gBACE,OAAO,EAAE,WAAW,CAAC,KAAK;AAC1B,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,QAAQ,EAAE,GAAG;AACb,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;AACxB,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,SAAS,EAAE,QAAQ;AACnB,gBAAA,QAAQ,EAAE,yBAAyB,CAAC,WAAW,CAAC,WAAW;AAC5D,aAAA;AACD,YAAA;gBACE,OAAO,EAAE,WAAW,CAAC,MAAM;AAC3B,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,QAAQ,EAAE,GAAG;AACb,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;AACxB,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,SAAS,EAAE,QAAQ;AACnB,gBAAA,QAAQ,EAAE,yBAAyB,CAAC,WAAW,CAAC,YAAY;AAC7D,aAAA;AACD,YAAA,GAAG,oBAAoB,CAAC;AACtB,gBAAA,WAAW,CAAC,MAAM;AAClB,gBAAA,WAAW,CAAC,WAAW;AACvB,gBAAA,WAAW,CAAC;aACb;AACF;AACF,KAAA,CAAC;AACJ;AAKM,MAAO,mBAAoB,SAAQ,YAAY,CAAA;+GAAxC,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAnB,mBAAmB,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,CAAA;gHAAnB,mBAAmB,EAAA,OAAA,EAAA,CAFpB,+BAA+B,EAAE,CAAA,EAAA,CAAA,CAAA;;4FAEhC,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,+BAA+B,EAAE;AAC5C,iBAAA;;;AC3DD;;AAEG;;;;"}
1
+ {"version":3,"file":"c8y-ngx-components-alarms-cockpit.mjs","sources":["../../alarms/cockpit/index.ts","../../alarms/cockpit/c8y-ngx-components-alarms-cockpit.ts"],"sourcesContent":["import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { NavigatorNode, ViewContext } from '@c8y/ngx-components';\nimport {\n ALARMS_PATH,\n AlarmsComponent,\n AlarmsModule,\n getChildrenForViewContext,\n getViewContextRoutes\n} from '@c8y/ngx-components/alarms';\n\nexport function alarmsCockpitRouteAndNodeConfig(): ModuleWithProviders<AlarmsModule> {\n return AlarmsModule.config({\n rootNavigatorNode: new NavigatorNode({\n label: gettext('Alarms'),\n icon: 'bell',\n priority: 1000,\n path: `/${ALARMS_PATH}`,\n featureId: 'alarms',\n parent: '',\n routerLinkExact: false\n }),\n route: [\n {\n path: ALARMS_PATH,\n component: AlarmsComponent,\n data: { title: true },\n children: getChildrenForViewContext(ViewContext.Alarms)\n },\n {\n context: ViewContext.Group,\n path: ALARMS_PATH,\n priority: 800,\n icon: 'bell',\n label: gettext('Alarms'),\n component: AlarmsComponent,\n featureId: 'alarms',\n children: getChildrenForViewContext(ViewContext.GroupAlarms)\n },\n {\n context: ViewContext.Device,\n path: ALARMS_PATH,\n priority: 800,\n icon: 'bell',\n label: gettext('Alarms'),\n component: AlarmsComponent,\n featureId: 'alarms',\n children: getChildrenForViewContext(ViewContext.DeviceAlarms)\n },\n ...getViewContextRoutes([\n ViewContext.Alarms,\n ViewContext.GroupAlarms,\n ViewContext.DeviceAlarms\n ])\n ]\n });\n}\n\n@NgModule({\n imports: [alarmsCockpitRouteAndNodeConfig()]\n})\nexport class CockpitAlarmsModule extends AlarmsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;SAWgB,+BAA+B,GAAA;IAC7C,OAAO,YAAY,CAAC,MAAM,CAAC;QACzB,iBAAiB,EAAE,IAAI,aAAa,CAAC;AACnC,YAAA,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;AACxB,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,CAAA,CAAA,EAAI,WAAW,CAAA,CAAE;AACvB,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,eAAe,EAAE;SAClB,CAAC;AACF,QAAA,KAAK,EAAE;AACL,YAAA;AACE,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AACrB,gBAAA,QAAQ,EAAE,yBAAyB,CAAC,WAAW,CAAC,MAAM;AACvD,aAAA;AACD,YAAA;gBACE,OAAO,EAAE,WAAW,CAAC,KAAK;AAC1B,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,QAAQ,EAAE,GAAG;AACb,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;AACxB,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,SAAS,EAAE,QAAQ;AACnB,gBAAA,QAAQ,EAAE,yBAAyB,CAAC,WAAW,CAAC,WAAW;AAC5D,aAAA;AACD,YAAA;gBACE,OAAO,EAAE,WAAW,CAAC,MAAM;AAC3B,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,QAAQ,EAAE,GAAG;AACb,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;AACxB,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,SAAS,EAAE,QAAQ;AACnB,gBAAA,QAAQ,EAAE,yBAAyB,CAAC,WAAW,CAAC,YAAY;AAC7D,aAAA;AACD,YAAA,GAAG,oBAAoB,CAAC;AACtB,gBAAA,WAAW,CAAC,MAAM;AAClB,gBAAA,WAAW,CAAC,WAAW;AACvB,gBAAA,WAAW,CAAC;aACb;AACF;AACF,KAAA,CAAC;AACJ;AAKM,MAAO,mBAAoB,SAAQ,YAAY,CAAA;+GAAxC,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAnB,mBAAmB,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,CAAA;gHAAnB,mBAAmB,EAAA,OAAA,EAAA,CAFpB,+BAA+B,EAAE,CAAA,EAAA,CAAA,CAAA;;4FAEhC,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,+BAA+B,EAAE;AAC5C,iBAAA;;;AC5DD;;AAEG;;;;"}
@@ -1,4 +1,5 @@
1
- import { gettext, ViewContext, NavigatorNode } from '@c8y/ngx-components';
1
+ import { gettext } from '@c8y/ngx-components/gettext';
2
+ import { ViewContext, NavigatorNode } from '@c8y/ngx-components';
2
3
  import { AlarmsModule, getChildrenForViewContext, AlarmsComponent, ALARMS_PATH, getViewContextRoutes } from '@c8y/ngx-components/alarms';
3
4
 
4
5
  function alarmsDeviceManagementRouteAndNodeConfig() {
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-alarms-devicemanagement.mjs","sources":["../../alarms/devicemanagement/index.ts","../../alarms/devicemanagement/c8y-ngx-components-alarms-devicemanagement.ts"],"sourcesContent":["import { ModuleWithProviders } from '@angular/core';\nimport { NavigatorNode, ViewContext, gettext } from '@c8y/ngx-components';\nimport {\n ALARMS_PATH,\n AlarmsComponent,\n AlarmsModule,\n getChildrenForViewContext,\n getViewContextRoutes\n} from '@c8y/ngx-components/alarms';\n\nexport function alarmsDeviceManagementRouteAndNodeConfig(): ModuleWithProviders<AlarmsModule> {\n return AlarmsModule.config({\n rootNavigatorNode: new NavigatorNode({\n label: gettext('Alarms'),\n icon: 'bell',\n priority: 3000,\n path: `/${ALARMS_PATH}`,\n featureId: 'alarms',\n parent: 'Overviews',\n routerLinkExact: false\n }),\n route: [\n {\n path: ALARMS_PATH,\n component: AlarmsComponent,\n data: { title: true },\n children: getChildrenForViewContext(ViewContext.Alarms)\n },\n {\n context: ViewContext.Group,\n path: ALARMS_PATH,\n priority: 800,\n icon: 'bell',\n label: gettext('Alarms'),\n component: AlarmsComponent,\n featureId: 'alarms',\n children: getChildrenForViewContext(ViewContext.GroupAlarms)\n },\n {\n context: ViewContext.Device,\n path: ALARMS_PATH,\n priority: 800,\n icon: 'bell',\n label: gettext('Alarms'),\n component: AlarmsComponent,\n featureId: 'alarms',\n children: getChildrenForViewContext(ViewContext.DeviceAlarms)\n },\n {\n context: ViewContext.Service,\n path: ALARMS_PATH,\n priority: 800,\n icon: 'bell',\n label: gettext('Alarms'),\n component: AlarmsComponent,\n featureId: 'alarms',\n children: getChildrenForViewContext(ViewContext.ServiceAlarms)\n },\n {\n context: ViewContext.Simulators,\n path: ALARMS_PATH,\n priority: -2,\n icon: 'bell',\n label: gettext('Alarms'),\n component: AlarmsComponent,\n featureId: 'alarms',\n children: getChildrenForViewContext(ViewContext.SimulatorsAlarms)\n },\n ...getViewContextRoutes([\n ViewContext.Alarms,\n ViewContext.GroupAlarms,\n ViewContext.DeviceAlarms,\n ViewContext.ServiceAlarms,\n ViewContext.SimulatorsAlarms\n ])\n ]\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;SAUgB,wCAAwC,GAAA;IACtD,OAAO,YAAY,CAAC,MAAM,CAAC;QACzB,iBAAiB,EAAE,IAAI,aAAa,CAAC;AACnC,YAAA,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;AACxB,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,CAAA,CAAA,EAAI,WAAW,CAAA,CAAE;AACvB,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,MAAM,EAAE,WAAW;AACnB,YAAA,eAAe,EAAE;SAClB,CAAC;AACF,QAAA,KAAK,EAAE;AACL,YAAA;AACE,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AACrB,gBAAA,QAAQ,EAAE,yBAAyB,CAAC,WAAW,CAAC,MAAM;AACvD,aAAA;AACD,YAAA;gBACE,OAAO,EAAE,WAAW,CAAC,KAAK;AAC1B,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,QAAQ,EAAE,GAAG;AACb,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;AACxB,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,SAAS,EAAE,QAAQ;AACnB,gBAAA,QAAQ,EAAE,yBAAyB,CAAC,WAAW,CAAC,WAAW;AAC5D,aAAA;AACD,YAAA;gBACE,OAAO,EAAE,WAAW,CAAC,MAAM;AAC3B,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,QAAQ,EAAE,GAAG;AACb,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;AACxB,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,SAAS,EAAE,QAAQ;AACnB,gBAAA,QAAQ,EAAE,yBAAyB,CAAC,WAAW,CAAC,YAAY;AAC7D,aAAA;AACD,YAAA;gBACE,OAAO,EAAE,WAAW,CAAC,OAAO;AAC5B,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,QAAQ,EAAE,GAAG;AACb,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;AACxB,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,SAAS,EAAE,QAAQ;AACnB,gBAAA,QAAQ,EAAE,yBAAyB,CAAC,WAAW,CAAC,aAAa;AAC9D,aAAA;AACD,YAAA;gBACE,OAAO,EAAE,WAAW,CAAC,UAAU;AAC/B,gBAAA,IAAI,EAAE,WAAW;gBACjB,QAAQ,EAAE,CAAC,CAAC;AACZ,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;AACxB,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,SAAS,EAAE,QAAQ;AACnB,gBAAA,QAAQ,EAAE,yBAAyB,CAAC,WAAW,CAAC,gBAAgB;AACjE,aAAA;AACD,YAAA,GAAG,oBAAoB,CAAC;AACtB,gBAAA,WAAW,CAAC,MAAM;AAClB,gBAAA,WAAW,CAAC,WAAW;AACvB,gBAAA,WAAW,CAAC,YAAY;AACxB,gBAAA,WAAW,CAAC,aAAa;AACzB,gBAAA,WAAW,CAAC;aACb;AACF;AACF,KAAA,CAAC;AACJ;;AC7EA;;AAEG;;;;"}
1
+ {"version":3,"file":"c8y-ngx-components-alarms-devicemanagement.mjs","sources":["../../alarms/devicemanagement/index.ts","../../alarms/devicemanagement/c8y-ngx-components-alarms-devicemanagement.ts"],"sourcesContent":["import { ModuleWithProviders } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { NavigatorNode, ViewContext } from '@c8y/ngx-components';\nimport {\n ALARMS_PATH,\n AlarmsComponent,\n AlarmsModule,\n getChildrenForViewContext,\n getViewContextRoutes\n} from '@c8y/ngx-components/alarms';\n\nexport function alarmsDeviceManagementRouteAndNodeConfig(): ModuleWithProviders<AlarmsModule> {\n return AlarmsModule.config({\n rootNavigatorNode: new NavigatorNode({\n label: gettext('Alarms'),\n icon: 'bell',\n priority: 3000,\n path: `/${ALARMS_PATH}`,\n featureId: 'alarms',\n parent: 'Overviews',\n routerLinkExact: false\n }),\n route: [\n {\n path: ALARMS_PATH,\n component: AlarmsComponent,\n data: { title: true },\n children: getChildrenForViewContext(ViewContext.Alarms)\n },\n {\n context: ViewContext.Group,\n path: ALARMS_PATH,\n priority: 800,\n icon: 'bell',\n label: gettext('Alarms'),\n component: AlarmsComponent,\n featureId: 'alarms',\n children: getChildrenForViewContext(ViewContext.GroupAlarms)\n },\n {\n context: ViewContext.Device,\n path: ALARMS_PATH,\n priority: 800,\n icon: 'bell',\n label: gettext('Alarms'),\n component: AlarmsComponent,\n featureId: 'alarms',\n children: getChildrenForViewContext(ViewContext.DeviceAlarms)\n },\n {\n context: ViewContext.Service,\n path: ALARMS_PATH,\n priority: 800,\n icon: 'bell',\n label: gettext('Alarms'),\n component: AlarmsComponent,\n featureId: 'alarms',\n children: getChildrenForViewContext(ViewContext.ServiceAlarms)\n },\n {\n context: ViewContext.Simulators,\n path: ALARMS_PATH,\n priority: -2,\n icon: 'bell',\n label: gettext('Alarms'),\n component: AlarmsComponent,\n featureId: 'alarms',\n children: getChildrenForViewContext(ViewContext.SimulatorsAlarms)\n },\n ...getViewContextRoutes([\n ViewContext.Alarms,\n ViewContext.GroupAlarms,\n ViewContext.DeviceAlarms,\n ViewContext.ServiceAlarms,\n ViewContext.SimulatorsAlarms\n ])\n ]\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;SAWgB,wCAAwC,GAAA;IACtD,OAAO,YAAY,CAAC,MAAM,CAAC;QACzB,iBAAiB,EAAE,IAAI,aAAa,CAAC;AACnC,YAAA,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;AACxB,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,CAAA,CAAA,EAAI,WAAW,CAAA,CAAE;AACvB,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,MAAM,EAAE,WAAW;AACnB,YAAA,eAAe,EAAE;SAClB,CAAC;AACF,QAAA,KAAK,EAAE;AACL,YAAA;AACE,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AACrB,gBAAA,QAAQ,EAAE,yBAAyB,CAAC,WAAW,CAAC,MAAM;AACvD,aAAA;AACD,YAAA;gBACE,OAAO,EAAE,WAAW,CAAC,KAAK;AAC1B,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,QAAQ,EAAE,GAAG;AACb,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;AACxB,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,SAAS,EAAE,QAAQ;AACnB,gBAAA,QAAQ,EAAE,yBAAyB,CAAC,WAAW,CAAC,WAAW;AAC5D,aAAA;AACD,YAAA;gBACE,OAAO,EAAE,WAAW,CAAC,MAAM;AAC3B,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,QAAQ,EAAE,GAAG;AACb,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;AACxB,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,SAAS,EAAE,QAAQ;AACnB,gBAAA,QAAQ,EAAE,yBAAyB,CAAC,WAAW,CAAC,YAAY;AAC7D,aAAA;AACD,YAAA;gBACE,OAAO,EAAE,WAAW,CAAC,OAAO;AAC5B,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,QAAQ,EAAE,GAAG;AACb,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;AACxB,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,SAAS,EAAE,QAAQ;AACnB,gBAAA,QAAQ,EAAE,yBAAyB,CAAC,WAAW,CAAC,aAAa;AAC9D,aAAA;AACD,YAAA;gBACE,OAAO,EAAE,WAAW,CAAC,UAAU;AAC/B,gBAAA,IAAI,EAAE,WAAW;gBACjB,QAAQ,EAAE,CAAC,CAAC;AACZ,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;AACxB,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,SAAS,EAAE,QAAQ;AACnB,gBAAA,QAAQ,EAAE,yBAAyB,CAAC,WAAW,CAAC,gBAAgB;AACjE,aAAA;AACD,YAAA,GAAG,oBAAoB,CAAC;AACtB,gBAAA,WAAW,CAAC,MAAM;AAClB,gBAAA,WAAW,CAAC,WAAW;AACvB,gBAAA,WAAW,CAAC,YAAY;AACxB,gBAAA,WAAW,CAAC,aAAa;AACzB,gBAAA,WAAW,CAAC;aACb;AACF;AACF,KAAA,CAAC;AACJ;;AC9EA;;AAEG;;;;"}