@c8y/ngx-components 1023.58.3 → 1023.61.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (285) hide show
  1. package/alarm-event-selector/index.d.ts +54 -4
  2. package/alarm-event-selector/index.d.ts.map +1 -1
  3. package/asset-properties/index.d.ts +20 -5
  4. package/asset-properties/index.d.ts.map +1 -1
  5. package/assets-navigator/index.d.ts.map +1 -1
  6. package/computed-asset-properties/index.d.ts.map +1 -1
  7. package/context-dashboard/index.d.ts +31 -3
  8. package/context-dashboard/index.d.ts.map +1 -1
  9. package/datapoint-explorer/devicemanagement/index.d.ts.map +1 -1
  10. package/datapoint-selector/index.d.ts +90 -6
  11. package/datapoint-selector/index.d.ts.map +1 -1
  12. package/fesm2022/c8y-ngx-components-actility-device-registration.mjs +16 -16
  13. package/fesm2022/c8y-ngx-components-advanced-software-management.mjs +7 -7
  14. package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs +9 -9
  15. package/fesm2022/c8y-ngx-components-ai-ai-chat.mjs +12 -12
  16. package/fesm2022/c8y-ngx-components-ai.mjs +3 -3
  17. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +202 -44
  18. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs.map +1 -1
  19. package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs +4 -4
  20. package/fesm2022/c8y-ngx-components-alarms-devicemanagement.mjs +3 -3
  21. package/fesm2022/c8y-ngx-components-alarms.mjs +82 -82
  22. package/fesm2022/c8y-ngx-components-api.mjs +7 -7
  23. package/fesm2022/c8y-ngx-components-app-logs.mjs +10 -10
  24. package/fesm2022/c8y-ngx-components-application-access-list.mjs +12 -12
  25. package/fesm2022/c8y-ngx-components-application-access-user-application-access-user-details-wrapper.mjs +3 -3
  26. package/fesm2022/c8y-ngx-components-asset-properties.mjs +121 -57
  27. package/fesm2022/c8y-ngx-components-asset-properties.mjs.map +1 -1
  28. package/fesm2022/{c8y-ngx-components-asset-property-grid.component-BoVrIpap.mjs → c8y-ngx-components-asset-property-grid.component-D3cPNQyD.mjs} +13 -13
  29. package/fesm2022/{c8y-ngx-components-asset-property-grid.component-BoVrIpap.mjs.map → c8y-ngx-components-asset-property-grid.component-D3cPNQyD.mjs.map} +1 -1
  30. package/fesm2022/c8y-ngx-components-assets-navigator.mjs +36 -34
  31. package/fesm2022/c8y-ngx-components-assets-navigator.mjs.map +1 -1
  32. package/fesm2022/c8y-ngx-components-auth-configuration.mjs +120 -120
  33. package/fesm2022/c8y-ngx-components-binary-file-download.mjs +7 -7
  34. package/fesm2022/c8y-ngx-components-bookmarks.mjs +13 -13
  35. package/fesm2022/c8y-ngx-components-branding-base-branding.mjs +4 -4
  36. package/fesm2022/c8y-ngx-components-branding-dark-theme.mjs +7 -7
  37. package/fesm2022/c8y-ngx-components-branding-extra-css-branding-editor.mjs +7 -7
  38. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor-lazy.mjs +3 -3
  39. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs +7 -7
  40. package/fesm2022/c8y-ngx-components-branding-shared-data.mjs +15 -15
  41. package/fesm2022/c8y-ngx-components-branding-shared-lazy-add-branding-modal.mjs +6 -6
  42. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +36 -36
  43. package/fesm2022/c8y-ngx-components-branding-shared.mjs +13 -13
  44. package/fesm2022/c8y-ngx-components-child-devices.mjs +13 -13
  45. package/fesm2022/c8y-ngx-components-cockpit-config.mjs +40 -40
  46. package/fesm2022/{c8y-ngx-components-computed-asset-properties-alarm-count-config.component-SA0syLy7.mjs → c8y-ngx-components-computed-asset-properties-alarm-count-config.component-cxDrUoXY.mjs} +4 -4
  47. package/fesm2022/{c8y-ngx-components-computed-asset-properties-alarm-count-config.component-SA0syLy7.mjs.map → c8y-ngx-components-computed-asset-properties-alarm-count-config.component-cxDrUoXY.mjs.map} +1 -1
  48. package/fesm2022/c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-BxmSKHiM.mjs +790 -0
  49. package/fesm2022/c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-BxmSKHiM.mjs.map +1 -0
  50. package/fesm2022/{c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-BOmgJI14.mjs → c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-CbLcHjZB.mjs} +4 -4
  51. package/fesm2022/{c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-BOmgJI14.mjs.map → c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-CbLcHjZB.mjs.map} +1 -1
  52. package/fesm2022/{c8y-ngx-components-computed-asset-properties-event-count-config.component-CaTb9cph.mjs → c8y-ngx-components-computed-asset-properties-event-count-config.component-DSWgAtkH.mjs} +4 -4
  53. package/fesm2022/{c8y-ngx-components-computed-asset-properties-event-count-config.component-CaTb9cph.mjs.map → c8y-ngx-components-computed-asset-properties-event-count-config.component-DSWgAtkH.mjs.map} +1 -1
  54. package/fesm2022/c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-CYskL4Lc.mjs +120 -0
  55. package/fesm2022/c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-CYskL4Lc.mjs.map +1 -0
  56. package/fesm2022/{c8y-ngx-components-computed-asset-properties-last-measurement-config.component-DkrSvf9F.mjs → c8y-ngx-components-computed-asset-properties-last-measurement-config.component-CDFNPo4q.mjs} +5 -4
  57. package/fesm2022/c8y-ngx-components-computed-asset-properties-last-measurement-config.component-CDFNPo4q.mjs.map +1 -0
  58. package/fesm2022/c8y-ngx-components-computed-asset-properties.mjs +1 -642
  59. package/fesm2022/c8y-ngx-components-computed-asset-properties.mjs.map +1 -1
  60. package/fesm2022/c8y-ngx-components-connectivity.mjs +53 -53
  61. package/fesm2022/c8y-ngx-components-context-dashboard-asset-add.mjs +10 -10
  62. package/fesm2022/c8y-ngx-components-context-dashboard-asset-view.mjs +7 -7
  63. package/fesm2022/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.mjs +11 -11
  64. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BovfVT29.mjs → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-CfvHiXsE.mjs} +4 -4
  65. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BovfVT29.mjs.map → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-CfvHiXsE.mjs.map} +1 -1
  66. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-CC5346kW.mjs → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-DUbxiMZh.mjs} +10 -10
  67. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-CC5346kW.mjs.map → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-DUbxiMZh.mjs.map} +1 -1
  68. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-CHuc--XM.mjs → c8y-ngx-components-context-dashboard-dashboard-version-history.component-Byk0CoOG.mjs} +4 -4
  69. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-CHuc--XM.mjs.map → c8y-ngx-components-context-dashboard-dashboard-version-history.component-Byk0CoOG.mjs.map} +1 -1
  70. package/fesm2022/c8y-ngx-components-context-dashboard-device-add.mjs +10 -10
  71. package/fesm2022/c8y-ngx-components-context-dashboard-device-view.mjs +7 -7
  72. package/fesm2022/c8y-ngx-components-context-dashboard-devicemanagement.mjs +3 -3
  73. package/fesm2022/c8y-ngx-components-context-dashboard-state.mjs +3 -3
  74. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +143 -107
  75. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  76. package/fesm2022/{c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-DvKsV_Fs.mjs → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-CGnlj1KZ.mjs} +16 -16
  77. package/fesm2022/{c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-DvKsV_Fs.mjs.map → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-CGnlj1KZ.mjs.map} +1 -1
  78. package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab.mjs +12 -12
  79. package/fesm2022/c8y-ngx-components-dashboard-manager-devicemanagement.mjs +6 -6
  80. package/fesm2022/c8y-ngx-components-dashboard-manager.mjs +22 -22
  81. package/fesm2022/c8y-ngx-components-data-broker.mjs +7 -7
  82. package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs +3 -3
  83. package/fesm2022/c8y-ngx-components-data-grid-columns.mjs +3 -3
  84. package/fesm2022/c8y-ngx-components-datapoint-explorer-devicemanagement.mjs +1 -1
  85. package/fesm2022/c8y-ngx-components-datapoint-explorer-devicemanagement.mjs.map +1 -1
  86. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +25 -25
  87. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs.map +1 -1
  88. package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs +13 -13
  89. package/fesm2022/c8y-ngx-components-datapoint-library-details.mjs +3 -3
  90. package/fesm2022/c8y-ngx-components-datapoint-library-list.mjs +3 -3
  91. package/fesm2022/c8y-ngx-components-datapoint-library-services.mjs +3 -3
  92. package/fesm2022/c8y-ngx-components-datapoint-library.mjs +4 -4
  93. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +234 -67
  94. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
  95. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs +33 -33
  96. package/fesm2022/c8y-ngx-components-default-subscriptions.mjs +16 -16
  97. package/fesm2022/c8y-ngx-components-device-enrolment-modal.mjs +9 -9
  98. package/fesm2022/c8y-ngx-components-device-enrolment.mjs +6 -6
  99. package/fesm2022/c8y-ngx-components-device-grid.mjs +43 -43
  100. package/fesm2022/c8y-ngx-components-device-list.mjs +22 -22
  101. package/fesm2022/c8y-ngx-components-device-map.mjs +12 -12
  102. package/fesm2022/c8y-ngx-components-device-profile.mjs +34 -34
  103. package/fesm2022/c8y-ngx-components-device-protocol-object-mappings.mjs +3 -3
  104. package/fesm2022/c8y-ngx-components-device-protocols.mjs +16 -16
  105. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +13 -13
  106. package/fesm2022/c8y-ngx-components-device-shell.mjs +31 -31
  107. package/fesm2022/c8y-ngx-components-diagnostics.mjs +13 -13
  108. package/fesm2022/c8y-ngx-components-echart.mjs +30 -30
  109. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +43 -43
  110. package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs +7 -7
  111. package/fesm2022/c8y-ngx-components-ecosystem-license-confirm.mjs +10 -10
  112. package/fesm2022/c8y-ngx-components-ecosystem-plugin-setup-stepper.mjs +7 -7
  113. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +46 -46
  114. package/fesm2022/c8y-ngx-components-ecosystem.mjs +82 -82
  115. package/fesm2022/c8y-ngx-components-editor.mjs +6 -6
  116. package/fesm2022/c8y-ngx-components-events-events-timeline.mjs +3 -3
  117. package/fesm2022/c8y-ngx-components-events.mjs +3 -3
  118. package/fesm2022/c8y-ngx-components-exports-list.mjs +6 -6
  119. package/fesm2022/c8y-ngx-components-feature-toggles-list.mjs +6 -6
  120. package/fesm2022/c8y-ngx-components-file-preview.mjs +7 -7
  121. package/fesm2022/c8y-ngx-components-files-repository.mjs +19 -19
  122. package/fesm2022/c8y-ngx-components-global-context.mjs +130 -130
  123. package/fesm2022/c8y-ngx-components-group-breadcrumbs.mjs +6 -6
  124. package/fesm2022/c8y-ngx-components-icon-selector.mjs +19 -19
  125. package/fesm2022/c8y-ngx-components-interval-picker.mjs +3 -3
  126. package/fesm2022/c8y-ngx-components-location.mjs +28 -28
  127. package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs +16 -16
  128. package/fesm2022/c8y-ngx-components-map.mjs +19 -19
  129. package/fesm2022/c8y-ngx-components-messaging-management.mjs +55 -55
  130. package/fesm2022/c8y-ngx-components-operations-bulk-operation-from-single.mjs +7 -7
  131. package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs +19 -19
  132. package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs +7 -7
  133. package/fesm2022/c8y-ngx-components-operations-bulk-operation-stepper.mjs +13 -13
  134. package/fesm2022/c8y-ngx-components-operations-bulk-operations-list.mjs +13 -13
  135. package/fesm2022/c8y-ngx-components-operations-bulk-operations-service.mjs +7 -7
  136. package/fesm2022/c8y-ngx-components-operations-bulk-operations-stepper-container.mjs +7 -7
  137. package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs +3 -3
  138. package/fesm2022/c8y-ngx-components-operations-create-bulk-operation-details.mjs +7 -7
  139. package/fesm2022/c8y-ngx-components-operations-device-selector.mjs +7 -7
  140. package/fesm2022/c8y-ngx-components-operations-grid-columns.mjs +12 -12
  141. package/fesm2022/c8y-ngx-components-operations-operation-details.mjs +13 -13
  142. package/fesm2022/c8y-ngx-components-operations-operation-summary.mjs +7 -7
  143. package/fesm2022/c8y-ngx-components-operations-operations-list-item-details.mjs +10 -10
  144. package/fesm2022/c8y-ngx-components-operations-operations-list.mjs +12 -12
  145. package/fesm2022/c8y-ngx-components-operations-operations-timeline.mjs +7 -7
  146. package/fesm2022/c8y-ngx-components-operations-shared.mjs +10 -10
  147. package/fesm2022/c8y-ngx-components-operations-status-filter.mjs +7 -7
  148. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-configuration.mjs +7 -7
  149. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-device-profile.mjs +13 -13
  150. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-firmware.mjs +13 -13
  151. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-software.mjs +13 -13
  152. package/fesm2022/c8y-ngx-components-operations-stepper-frames.mjs +13 -13
  153. package/fesm2022/c8y-ngx-components-operations.mjs +7 -7
  154. package/fesm2022/c8y-ngx-components-pending-mo-request.mjs +7 -7
  155. package/fesm2022/c8y-ngx-components-platform-configuration.mjs +10 -10
  156. package/fesm2022/c8y-ngx-components-protocol-lpwan.mjs +38 -38
  157. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +58 -58
  158. package/fesm2022/c8y-ngx-components-register-device.mjs +58 -58
  159. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +9 -9
  160. package/fesm2022/c8y-ngx-components-remote-access-data.mjs +3 -3
  161. package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs +3 -3
  162. package/fesm2022/c8y-ngx-components-remote-access-shared.mjs +6 -6
  163. package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +3 -3
  164. package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs +3 -3
  165. package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs +3 -3
  166. package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs +3 -3
  167. package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +3 -3
  168. package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +6 -6
  169. package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs +3 -3
  170. package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs +6 -6
  171. package/fesm2022/c8y-ngx-components-replace-device.mjs +10 -10
  172. package/fesm2022/c8y-ngx-components-report-dashboard.mjs +16 -16
  173. package/fesm2022/c8y-ngx-components-reports.mjs +19 -19
  174. package/fesm2022/c8y-ngx-components-repository-configuration.mjs +48 -48
  175. package/fesm2022/c8y-ngx-components-repository-firmware.mjs +33 -33
  176. package/fesm2022/c8y-ngx-components-repository-shared.mjs +34 -34
  177. package/fesm2022/c8y-ngx-components-repository-software.mjs +42 -42
  178. package/fesm2022/c8y-ngx-components-repository.mjs +4 -4
  179. package/fesm2022/c8y-ngx-components-search.mjs +19 -19
  180. package/fesm2022/c8y-ngx-components-sensor-phone-sensor-phone-modal.mjs +6 -6
  181. package/fesm2022/c8y-ngx-components-sensor-phone.mjs +7 -7
  182. package/fesm2022/c8y-ngx-components-services-service-command-tab.mjs +3 -3
  183. package/fesm2022/c8y-ngx-components-services-shared.mjs +3 -3
  184. package/fesm2022/c8y-ngx-components-services.mjs +29 -29
  185. package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs +16 -16
  186. package/fesm2022/c8y-ngx-components-sms-gateway.mjs +7 -7
  187. package/fesm2022/c8y-ngx-components-static-assets-data.mjs +3 -3
  188. package/fesm2022/c8y-ngx-components-static-assets-modal.mjs +9 -9
  189. package/fesm2022/c8y-ngx-components-static-assets.mjs +6 -6
  190. package/fesm2022/c8y-ngx-components-sub-assets.mjs +60 -60
  191. package/fesm2022/c8y-ngx-components-tenants.mjs +40 -40
  192. package/fesm2022/c8y-ngx-components-time-context.mjs +6 -6
  193. package/fesm2022/c8y-ngx-components-tracking.mjs +12 -12
  194. package/fesm2022/c8y-ngx-components-translation-editor-data.mjs +3 -3
  195. package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs +12 -12
  196. package/fesm2022/c8y-ngx-components-translation-editor.mjs +6 -6
  197. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +33 -33
  198. package/fesm2022/c8y-ngx-components-upgrade-upgraded-services.mjs +4 -4
  199. package/fesm2022/c8y-ngx-components-upgrade.mjs +41 -41
  200. package/fesm2022/c8y-ngx-components-user-roles.mjs +10 -10
  201. package/fesm2022/c8y-ngx-components-widgets-definitions-asset-table.mjs +6 -6
  202. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs +39 -3
  203. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs.map +1 -1
  204. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs +19 -0
  205. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs.map +1 -1
  206. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget-ai-config.mjs +3 -3
  207. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs +6 -6
  208. package/fesm2022/c8y-ngx-components-widgets-definitions-info-gauge.mjs +95 -1
  209. package/fesm2022/c8y-ngx-components-widgets-definitions-info-gauge.mjs.map +1 -1
  210. package/fesm2022/c8y-ngx-components-widgets-definitions-kpi.mjs +21 -1
  211. package/fesm2022/c8y-ngx-components-widgets-definitions-kpi.mjs.map +1 -1
  212. package/fesm2022/c8y-ngx-components-widgets-definitions-linear-gauge.mjs +23 -1
  213. package/fesm2022/c8y-ngx-components-widgets-definitions-linear-gauge.mjs.map +1 -1
  214. package/fesm2022/c8y-ngx-components-widgets-definitions-pie-chart.mjs +15 -1
  215. package/fesm2022/c8y-ngx-components-widgets-definitions-pie-chart.mjs.map +1 -1
  216. package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs +24 -1
  217. package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs.map +1 -1
  218. package/fesm2022/c8y-ngx-components-widgets-definitions-silo.mjs +23 -1
  219. package/fesm2022/c8y-ngx-components-widgets-definitions-silo.mjs.map +1 -1
  220. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +19 -19
  221. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-notes.mjs +3 -3
  222. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-table.mjs +39 -39
  223. package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-legacy-welcome.mjs +3 -3
  224. package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs +3 -3
  225. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +31 -75
  226. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
  227. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +74 -113
  228. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs.map +1 -1
  229. package/fesm2022/c8y-ngx-components-widgets-implementations-device-control-message.mjs +3 -3
  230. package/fesm2022/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs +10 -10
  231. package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs +3 -3
  232. package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs +24 -24
  233. package/fesm2022/c8y-ngx-components-widgets-implementations-image.mjs +13 -14
  234. package/fesm2022/c8y-ngx-components-widgets-implementations-image.mjs.map +1 -1
  235. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +36 -59
  236. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs.map +1 -1
  237. package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs +14 -10
  238. package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs.map +1 -1
  239. package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs +15 -11
  240. package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs.map +1 -1
  241. package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs +10 -10
  242. package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs.map +1 -1
  243. package/fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs +9 -9
  244. package/fesm2022/c8y-ngx-components-widgets-implementations-pie-chart.mjs +12 -46
  245. package/fesm2022/c8y-ngx-components-widgets-implementations-pie-chart.mjs.map +1 -1
  246. package/fesm2022/c8y-ngx-components-widgets-implementations-quick-links.mjs +28 -25
  247. package/fesm2022/c8y-ngx-components-widgets-implementations-quick-links.mjs.map +1 -1
  248. package/fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation.mjs +9 -9
  249. package/fesm2022/c8y-ngx-components.mjs +1386 -1386
  250. package/locales/de.po +20 -0
  251. package/locales/es.po +20 -0
  252. package/locales/fr.po +20 -0
  253. package/locales/ja_JP.po +19 -0
  254. package/locales/ko.po +20 -0
  255. package/locales/locales.pot +45 -7
  256. package/locales/nl.po +20 -0
  257. package/locales/pl.po +20 -0
  258. package/locales/pt_BR.po +20 -0
  259. package/locales/zh_CN.po +20 -0
  260. package/locales/zh_TW.po +20 -0
  261. package/package.json +1 -1
  262. package/widgets/definitions/datapoints-graph/index.d.ts.map +1 -1
  263. package/widgets/definitions/datapoints-table/index.d.ts.map +1 -1
  264. package/widgets/definitions/info-gauge/index.d.ts.map +1 -1
  265. package/widgets/definitions/kpi/index.d.ts.map +1 -1
  266. package/widgets/definitions/linear-gauge/index.d.ts.map +1 -1
  267. package/widgets/definitions/pie-chart/index.d.ts.map +1 -1
  268. package/widgets/definitions/radial-gauge/index.d.ts.map +1 -1
  269. package/widgets/definitions/silo/index.d.ts.map +1 -1
  270. package/widgets/implementations/datapoints-graph/index.d.ts +4 -8
  271. package/widgets/implementations/datapoints-graph/index.d.ts.map +1 -1
  272. package/widgets/implementations/datapoints-table/index.d.ts +19 -23
  273. package/widgets/implementations/datapoints-table/index.d.ts.map +1 -1
  274. package/widgets/implementations/image/index.d.ts.map +1 -1
  275. package/widgets/implementations/info-gauge/index.d.ts +3 -2
  276. package/widgets/implementations/info-gauge/index.d.ts.map +1 -1
  277. package/widgets/implementations/kpi/index.d.ts +3 -2
  278. package/widgets/implementations/kpi/index.d.ts.map +1 -1
  279. package/widgets/implementations/linear-gauge/index.d.ts +3 -2
  280. package/widgets/implementations/linear-gauge/index.d.ts.map +1 -1
  281. package/widgets/implementations/pie-chart/index.d.ts +0 -9
  282. package/widgets/implementations/pie-chart/index.d.ts.map +1 -1
  283. package/widgets/implementations/quick-links/index.d.ts +1 -1
  284. package/widgets/implementations/quick-links/index.d.ts.map +1 -1
  285. package/fesm2022/c8y-ngx-components-computed-asset-properties-last-measurement-config.component-DkrSvf9F.mjs.map +0 -1
@@ -1,13 +1,14 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, forwardRef, Input, Component, EventEmitter, Output, Pipe, ContentChild, Optional, NgModule } from '@angular/core';
2
+ import { Injectable, forwardRef, Input, Component, EventEmitter, Output, Pipe, ContentChild, Optional, NgModule, inject } from '@angular/core';
3
3
  import * as i1 from '@angular/forms';
4
- import { FormControl, Validators, FormsModule, ReactiveFormsModule, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
4
+ import { FormControl, Validators, FormsModule, ReactiveFormsModule, NG_VALUE_ACCESSOR, NG_VALIDATORS, NgForm, ControlContainer } from '@angular/forms';
5
5
  import { take, takeUntil, map, startWith, tap, switchMap, shareReplay, distinctUntilChanged, debounceTime } from 'rxjs/operators';
6
6
  import { NgIf, NgFor, NgClass, AsyncPipe, NgStyle } from '@angular/common';
7
7
  import * as i2 from '@c8y/ngx-components';
8
8
  import { FormGroupComponent, RequiredInputPlaceholderDirective, MessagesComponent, MessageDirective, C8yTranslatePipe, IconDirective, ListItemComponent, ListItemDragHandleComponent, ListItemCheckboxComponent, HighlightComponent, ListItemActionComponent, ListItemCollapseComponent, ListItemIconComponent, EmptyStateComponent, LoadingComponent, ListGroupComponent, C8yTranslateDirective, ViewContext, CommonModule, CoreModule } from '@c8y/ngx-components';
9
9
  import { moveItemInArray, CdkDropList, CdkDrag, CdkDragHandle, DragDropModule } from '@angular/cdk/drag-drop';
10
10
  import * as i6 from '@c8y/ngx-components/context-dashboard';
11
+ import { WidgetConfigService } from '@c8y/ngx-components/context-dashboard';
11
12
  import * as i1$2 from 'ngx-bootstrap/modal';
12
13
  import { MillerViewComponent, AssetSelectorModule } from '@c8y/ngx-components/assets-navigator';
13
14
  import { Subject, BehaviorSubject, combineLatest } from 'rxjs';
@@ -30,10 +31,10 @@ class AlarmEventAttributesFormService {
30
31
  return isDuplicate ? { duplicateType: true } : null;
31
32
  };
32
33
  }
33
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlarmEventAttributesFormService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
34
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlarmEventAttributesFormService, providedIn: 'root' }); }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AlarmEventAttributesFormService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
35
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AlarmEventAttributesFormService, providedIn: 'root' }); }
35
36
  }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlarmEventAttributesFormService, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AlarmEventAttributesFormService, decorators: [{
37
38
  type: Injectable,
38
39
  args: [{ providedIn: 'root' }]
39
40
  }] });
@@ -98,8 +99,8 @@ class AlarmEventAttributesFormComponent {
98
99
  this.datapoints = this.datapoints.filter(dp => dp.__target?.id === this.target.id);
99
100
  }
100
101
  }
101
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlarmEventAttributesFormComponent, deps: [{ token: i1.FormBuilder }, { token: AlarmEventAttributesFormService }], target: i0.ɵɵFactoryTarget.Component }); }
102
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: AlarmEventAttributesFormComponent, isStandalone: true, selector: "c8y-alarm-event-attributes-form", inputs: { timelineType: "timelineType", omitProperties: "omitProperties", selectedItems: "selectedItems", target: "target", datapoints: "datapoints" }, providers: [
102
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AlarmEventAttributesFormComponent, deps: [{ token: i1.FormBuilder }, { token: AlarmEventAttributesFormService }], target: i0.ɵɵFactoryTarget.Component }); }
103
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: AlarmEventAttributesFormComponent, isStandalone: true, selector: "c8y-alarm-event-attributes-form", inputs: { timelineType: "timelineType", omitProperties: "omitProperties", selectedItems: "selectedItems", target: "target", datapoints: "datapoints" }, providers: [
103
104
  {
104
105
  provide: NG_VALUE_ACCESSOR,
105
106
  useExisting: forwardRef(() => AlarmEventAttributesFormComponent),
@@ -112,7 +113,7 @@ class AlarmEventAttributesFormComponent {
112
113
  }
113
114
  ], ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage"] }, { kind: "directive", type: MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
114
115
  }
115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlarmEventAttributesFormComponent, decorators: [{
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AlarmEventAttributesFormComponent, decorators: [{
116
117
  type: Component,
117
118
  args: [{ selector: 'c8y-alarm-event-attributes-form', providers: [
118
119
  {
@@ -262,10 +263,10 @@ class AlarmEventSelectorService {
262
263
  const events = this.getUniqueEventsOnly(res.data);
263
264
  return events;
264
265
  }
265
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlarmEventSelectorService, deps: [{ token: i1$1.AlarmService }, { token: i1$1.EventService }, { token: i2.ColorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
266
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlarmEventSelectorService, providedIn: 'root' }); }
266
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AlarmEventSelectorService, deps: [{ token: i1$1.AlarmService }, { token: i1$1.EventService }, { token: i2.ColorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
267
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AlarmEventSelectorService, providedIn: 'root' }); }
267
268
  }
268
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlarmEventSelectorService, decorators: [{
269
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AlarmEventSelectorService, decorators: [{
269
270
  type: Injectable,
270
271
  args: [{ providedIn: 'root' }]
271
272
  }], ctorParameters: () => [{ type: i1$1.AlarmService }, { type: i1$1.EventService }, { type: i2.ColorService }] });
@@ -308,10 +309,10 @@ class CustomAlarmEventFormComponent {
308
309
  delete obj.details;
309
310
  return obj;
310
311
  }
311
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CustomAlarmEventFormComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
312
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: CustomAlarmEventFormComponent, isStandalone: true, selector: "c8y-custom-alarm-event-form", inputs: { timelineType: "timelineType", target: "target", omitProperties: "omitProperties", selectedItems: "selectedItems", defaultColor: "defaultColor" }, outputs: { added: "added", cancel: "cancel" }, ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: AlarmEventAttributesFormComponent, selector: "c8y-alarm-event-attributes-form", inputs: ["timelineType", "omitProperties", "selectedItems", "target", "datapoints"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
312
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: CustomAlarmEventFormComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
313
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: CustomAlarmEventFormComponent, isStandalone: true, selector: "c8y-custom-alarm-event-form", inputs: { timelineType: "timelineType", target: "target", omitProperties: "omitProperties", selectedItems: "selectedItems", defaultColor: "defaultColor" }, outputs: { added: "added", cancel: "cancel" }, ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: AlarmEventAttributesFormComponent, selector: "c8y-alarm-event-attributes-form", inputs: ["timelineType", "omitProperties", "selectedItems", "target", "datapoints"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
313
314
  }
314
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CustomAlarmEventFormComponent, decorators: [{
315
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: CustomAlarmEventFormComponent, decorators: [{
315
316
  type: Component,
316
317
  args: [{ selector: 'c8y-custom-alarm-event-form', imports: [
317
318
  FormsModule,
@@ -406,8 +407,8 @@ class AlarmEventSelectorListItemComponent {
406
407
  delete obj.details;
407
408
  return obj;
408
409
  }
409
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlarmEventSelectorListItemComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
410
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: AlarmEventSelectorListItemComponent, isStandalone: true, selector: "c8y-alarm-event-selector-list-item", inputs: { timelineType: "timelineType", datapoints: "datapoints", highlightText: "highlightText", showAddRemoveButton: "showAddRemoveButton", isSelected: "isSelected", optionToRemove: "optionToRemove", showActiveToggle: "showActiveToggle", allowItemEdit: "allowItemEdit", hideSource: "hideSource", displayAsSwitch: "displayAsSwitch", omitProperties: "omitProperties" }, outputs: { added: "added", removed: "removed" }, providers: [
410
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AlarmEventSelectorListItemComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
411
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: AlarmEventSelectorListItemComponent, isStandalone: true, selector: "c8y-alarm-event-selector-list-item", inputs: { timelineType: "timelineType", datapoints: "datapoints", highlightText: "highlightText", showAddRemoveButton: "showAddRemoveButton", isSelected: "isSelected", optionToRemove: "optionToRemove", showActiveToggle: "showActiveToggle", allowItemEdit: "allowItemEdit", hideSource: "hideSource", displayAsSwitch: "displayAsSwitch", omitProperties: "omitProperties" }, outputs: { added: "added", removed: "removed" }, providers: [
411
412
  {
412
413
  provide: NG_VALUE_ACCESSOR,
413
414
  useExisting: forwardRef(() => AlarmEventSelectorListItemComponent),
@@ -420,7 +421,7 @@ class AlarmEventSelectorListItemComponent {
420
421
  }
421
422
  ], ngImport: i0, template: "<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", dependencies: [{ kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: ListItemDragHandleComponent, selector: "c8y-list-item-drag-handle, c8y-li-drag-handle" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: ListItemCheckboxComponent, selector: "c8y-list-item-checkbox, c8y-li-checkbox", inputs: ["selected", "indeterminate", "disabled", "displayAsSwitch"], outputs: ["onSelect"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "directive", type: PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "component", type: ListItemActionComponent, selector: "c8y-list-item-action, c8y-li-action", inputs: ["label", "icon", "disabled"], outputs: ["click"] }, { kind: "component", type: ListItemCollapseComponent, selector: "c8y-list-item-collapse, c8y-li-collapse", inputs: ["collapseWay"] }, { kind: "component", type: AlarmEventAttributesFormComponent, selector: "c8y-alarm-event-attributes-form", inputs: ["timelineType", "omitProperties", "selectedItems", "target", "datapoints"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
422
423
  }
423
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlarmEventSelectorListItemComponent, decorators: [{
424
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AlarmEventSelectorListItemComponent, decorators: [{
424
425
  type: Component,
425
426
  args: [{ selector: 'c8y-alarm-event-selector-list-item', providers: [
426
427
  {
@@ -490,10 +491,10 @@ class IncludesAlarmOrEventPipe {
490
491
  tmp.filters.type === item.filters.type &&
491
492
  tmp.__target?.id === item.__target?.id);
492
493
  }
493
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IncludesAlarmOrEventPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
494
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: IncludesAlarmOrEventPipe, isStandalone: true, name: "includesAlarmOrEvent" }); }
494
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: IncludesAlarmOrEventPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
495
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.17", ngImport: i0, type: IncludesAlarmOrEventPipe, isStandalone: true, name: "includesAlarmOrEvent" }); }
495
496
  }
496
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IncludesAlarmOrEventPipe, decorators: [{
497
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: IncludesAlarmOrEventPipe, decorators: [{
497
498
  type: Pipe,
498
499
  args: [{ name: 'includesAlarmOrEvent' }]
499
500
  }] });
@@ -590,8 +591,8 @@ class AlarmEventSelectorComponent {
590
591
  }
591
592
  return false;
592
593
  }
593
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlarmEventSelectorComponent, deps: [{ token: AlarmEventSelectorService }], target: i0.ɵɵFactoryTarget.Component }); }
594
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: AlarmEventSelectorComponent, isStandalone: true, selector: "c8y-alarm-event-selector", inputs: { timelineType: "timelineType", contextAsset: "contextAsset", allowChangingContext: "allowChangingContext", selectedItems: "selectedItems", allowSearch: "allowSearch", groupsSelectable: "groupsSelectable", hideSource: "hideSource", omitProperties: "omitProperties" }, outputs: { selectionChange: "selectionChange" }, providers: [
594
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AlarmEventSelectorComponent, deps: [{ token: AlarmEventSelectorService }], target: i0.ɵɵFactoryTarget.Component }); }
595
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: AlarmEventSelectorComponent, isStandalone: true, selector: "c8y-alarm-event-selector", inputs: { timelineType: "timelineType", contextAsset: "contextAsset", allowChangingContext: "allowChangingContext", selectedItems: "selectedItems", allowSearch: "allowSearch", groupsSelectable: "groupsSelectable", hideSource: "hideSource", omitProperties: "omitProperties" }, outputs: { selectionChange: "selectionChange" }, providers: [
595
596
  {
596
597
  provide: NG_VALUE_ACCESSOR,
597
598
  multi: true,
@@ -599,7 +600,7 @@ class AlarmEventSelectorComponent {
599
600
  }
600
601
  ], ngImport: i0, template: "<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\u2026\"\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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MillerViewComponent, selector: "c8y-asset-selector-miller", inputs: ["config", "asset", "selectedDevice", "rootNode", "container"], outputs: ["onSelected", "onClearSelected"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "component", type: LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: CollapseDirective, selector: "[collapse]", inputs: ["display", "isAnimated", "collapse"], outputs: ["collapsed", "collapses", "expanded", "expands"], exportAs: ["bs-collapse"] }, { kind: "component", type: CustomAlarmEventFormComponent, selector: "c8y-custom-alarm-event-form", inputs: ["timelineType", "target", "omitProperties", "selectedItems", "defaultColor"], outputs: ["added", "cancel"] }, { kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: AlarmEventSelectorListItemComponent, selector: "c8y-alarm-event-selector-list-item", inputs: ["timelineType", "datapoints", "highlightText", "showAddRemoveButton", "isSelected", "optionToRemove", "showActiveToggle", "allowItemEdit", "hideSource", "displayAsSwitch", "omitProperties"], outputs: ["added", "removed"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: IncludesAlarmOrEventPipe, name: "includesAlarmOrEvent" }] }); }
601
602
  }
602
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlarmEventSelectorComponent, decorators: [{
603
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AlarmEventSelectorComponent, decorators: [{
603
604
  type: Component,
604
605
  args: [{ selector: 'c8y-alarm-event-selector', providers: [
605
606
  {
@@ -671,10 +672,10 @@ class AlarmEventSelectorModalComponent {
671
672
  selectionChange(selection) {
672
673
  this.selectedItems = selection;
673
674
  }
674
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlarmEventSelectorModalComponent, deps: [{ token: i1$2.BsModalRef }], target: i0.ɵɵFactoryTarget.Component }); }
675
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: AlarmEventSelectorModalComponent, isStandalone: true, selector: "c8y-alarm-event-selector-modal", ngImport: i0, template: "<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", dependencies: [{ kind: "component", type: AlarmEventSelectorComponent, selector: "c8y-alarm-event-selector", inputs: ["timelineType", "contextAsset", "allowChangingContext", "selectedItems", "allowSearch", "groupsSelectable", "hideSource", "omitProperties"], outputs: ["selectionChange"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
675
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AlarmEventSelectorModalComponent, deps: [{ token: i1$2.BsModalRef }], target: i0.ɵɵFactoryTarget.Component }); }
676
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: AlarmEventSelectorModalComponent, isStandalone: true, selector: "c8y-alarm-event-selector-modal", ngImport: i0, template: "<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", dependencies: [{ kind: "component", type: AlarmEventSelectorComponent, selector: "c8y-alarm-event-selector", inputs: ["timelineType", "contextAsset", "allowChangingContext", "selectedItems", "allowSearch", "groupsSelectable", "hideSource", "omitProperties"], outputs: ["selectionChange"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
676
677
  }
677
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlarmEventSelectorModalComponent, decorators: [{
678
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AlarmEventSelectorModalComponent, decorators: [{
678
679
  type: Component,
679
680
  args: [{ selector: 'c8y-alarm-event-selector-modal', imports: [AlarmEventSelectorComponent, C8yTranslateDirective, C8yTranslatePipe], template: "<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" }]
680
681
  }], ctorParameters: () => [{ type: i1$2.BsModalRef }] });
@@ -701,10 +702,10 @@ class AlarmEventSelectorModalService {
701
702
  const content = modal.content;
702
703
  return content.result;
703
704
  }
704
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlarmEventSelectorModalService, deps: [{ token: i1$2.BsModalService }], target: i0.ɵɵFactoryTarget.Injectable }); }
705
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlarmEventSelectorModalService, providedIn: 'root' }); }
705
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AlarmEventSelectorModalService, deps: [{ token: i1$2.BsModalService }], target: i0.ɵɵFactoryTarget.Injectable }); }
706
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AlarmEventSelectorModalService, providedIn: 'root' }); }
706
707
  }
707
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlarmEventSelectorModalService, decorators: [{
708
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AlarmEventSelectorModalService, decorators: [{
708
709
  type: Injectable,
709
710
  args: [{ providedIn: 'root' }]
710
711
  }], ctorParameters: () => [{ type: i1$2.BsModalService }] });
@@ -774,10 +775,13 @@ class AlarmEventSelectionListComponent {
774
775
  validate(_control) {
775
776
  return this.formArray.valid ? null : { formInvalid: {} };
776
777
  }
777
- writeValue(val) {
778
+ get formGroups() {
779
+ return this.formArray.controls;
780
+ }
781
+ writeValue(alarmsOrEvents) {
778
782
  this.formArray.clear();
779
- if (val?.length) {
780
- val.forEach(val => {
783
+ if (alarmsOrEvents?.length) {
784
+ alarmsOrEvents.forEach(val => {
781
785
  const formgroup = this.formBuilder.group({ details: [] });
782
786
  formgroup.patchValue({ details: val });
783
787
  this.formArray.push(formgroup);
@@ -838,8 +842,8 @@ class AlarmEventSelectionListComponent {
838
842
  return contextData?.id;
839
843
  }
840
844
  }
841
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlarmEventSelectionListComponent, deps: [{ token: AlarmEventSelectorModalService }, { token: AlarmEventSelectorService }, { token: i1.FormBuilder }, { token: i4.ActivatedRoute, optional: true }, { token: i2.ContextRouteService, optional: true }, { token: i6.WidgetConfigComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
842
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: AlarmEventSelectionListComponent, isStandalone: true, selector: "c8y-alarm-event-selection-list", inputs: { timelineType: "timelineType", canRemove: "canRemove", canEdit: "canEdit", canDragAndDrop: "canDragAndDrop", title: "title", addButtonLabel: "addButtonLabel", hideSource: "hideSource", inline: "inline", activeToggleAsSwitch: "activeToggleAsSwitch", omitProperties: "omitProperties", datapoints: "datapoints", config: "config" }, providers: [
845
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AlarmEventSelectionListComponent, deps: [{ token: AlarmEventSelectorModalService }, { token: AlarmEventSelectorService }, { token: i1.FormBuilder }, { token: i4.ActivatedRoute, optional: true }, { token: i2.ContextRouteService, optional: true }, { token: i6.WidgetConfigComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
846
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: AlarmEventSelectionListComponent, isStandalone: true, selector: "c8y-alarm-event-selection-list", inputs: { timelineType: "timelineType", canRemove: "canRemove", canEdit: "canEdit", canDragAndDrop: "canDragAndDrop", title: "title", addButtonLabel: "addButtonLabel", hideSource: "hideSource", inline: "inline", activeToggleAsSwitch: "activeToggleAsSwitch", omitProperties: "omitProperties", datapoints: "datapoints", config: "config" }, providers: [
843
847
  {
844
848
  provide: NG_VALUE_ACCESSOR,
845
849
  multi: true,
@@ -850,9 +854,9 @@ class AlarmEventSelectionListComponent {
850
854
  useExisting: forwardRef(() => AlarmEventSelectionListComponent),
851
855
  multi: true
852
856
  }
853
- ], queries: [{ propertyName: "emptyState", first: true, predicate: EmptyStateComponent, descendants: true }], ngImport: i0, template: "<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", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: AlarmEventSelectorListItemComponent, selector: "c8y-alarm-event-selector-list-item", inputs: ["timelineType", "datapoints", "highlightText", "showAddRemoveButton", "isSelected", "optionToRemove", "showActiveToggle", "allowItemEdit", "hideSource", "displayAsSwitch", "omitProperties"], outputs: ["added", "removed"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: ListItemDragHandleComponent, selector: "c8y-list-item-drag-handle, c8y-li-drag-handle" }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
857
+ ], queries: [{ propertyName: "emptyState", first: true, predicate: EmptyStateComponent, descendants: true }], ngImport: i0, template: "@if (!inline) {\n <div class=\"card-header separator-top-bottom sticky-top bg-inherit\">\n <span class=\"card-title h4\">{{ title | translate }}</span>\n </div>\n}\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 @if (!formArray.controls?.length) {\n <div class=\"p-t-8\">\n <ng-content select=\"c8y-ui-empty-state\"></ng-content>\n @if (!emptyState) {\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 [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n }\n </div>\n }\n\n @for (formGroup of formGroups; track formGroup; let index = $index) {\n <div [formGroup]=\"formGroup\">\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 @if (canDragAndDrop) {\n <c8y-li-drag-handle\n title=\"{{ 'Click and drag to reorder' | translate }}\"\n cdkDragHandle\n >\n <i c8yIcon=\"drag-reorder\"></i>\n </c8y-li-drag-handle>\n }\n </c8y-alarm-event-selector-list-item>\n </div>\n }\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 (click)=\"add()\"\n >\n @if (canDragAndDrop) {\n <i c8yIcon=\"plus-circle\"></i>\n }\n {{ addButtonLabel | translate }}\n </button>\n</div>\n", dependencies: [{ kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: AlarmEventSelectorListItemComponent, selector: "c8y-alarm-event-selector-list-item", inputs: ["timelineType", "datapoints", "highlightText", "showAddRemoveButton", "isSelected", "optionToRemove", "showActiveToggle", "allowItemEdit", "hideSource", "displayAsSwitch", "omitProperties"], outputs: ["added", "removed"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: ListItemDragHandleComponent, selector: "c8y-list-item-drag-handle, c8y-li-drag-handle" }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
854
858
  }
855
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlarmEventSelectionListComponent, decorators: [{
859
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AlarmEventSelectionListComponent, decorators: [{
856
860
  type: Component,
857
861
  args: [{ selector: 'c8y-alarm-event-selection-list', providers: [
858
862
  {
@@ -866,11 +870,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
866
870
  multi: true
867
871
  }
868
872
  ], imports: [
869
- NgIf,
870
873
  ListGroupComponent,
871
874
  CdkDropList,
872
875
  EmptyStateComponent,
873
- NgFor,
874
876
  FormsModule,
875
877
  ReactiveFormsModule,
876
878
  AlarmEventSelectorListItemComponent,
@@ -880,7 +882,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
880
882
  IconDirective,
881
883
  NgClass,
882
884
  C8yTranslatePipe
883
- ], template: "<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" }]
885
+ ], template: "@if (!inline) {\n <div class=\"card-header separator-top-bottom sticky-top bg-inherit\">\n <span class=\"card-title h4\">{{ title | translate }}</span>\n </div>\n}\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 @if (!formArray.controls?.length) {\n <div class=\"p-t-8\">\n <ng-content select=\"c8y-ui-empty-state\"></ng-content>\n @if (!emptyState) {\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 [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n }\n </div>\n }\n\n @for (formGroup of formGroups; track formGroup; let index = $index) {\n <div [formGroup]=\"formGroup\">\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 @if (canDragAndDrop) {\n <c8y-li-drag-handle\n title=\"{{ 'Click and drag to reorder' | translate }}\"\n cdkDragHandle\n >\n <i c8yIcon=\"drag-reorder\"></i>\n </c8y-li-drag-handle>\n }\n </c8y-alarm-event-selector-list-item>\n </div>\n }\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 (click)=\"add()\"\n >\n @if (canDragAndDrop) {\n <i c8yIcon=\"plus-circle\"></i>\n }\n {{ addButtonLabel | translate }}\n </button>\n</div>\n" }]
884
886
  }], ctorParameters: () => [{ type: AlarmEventSelectorModalService }, { type: AlarmEventSelectorService }, { type: i1.FormBuilder }, { type: i4.ActivatedRoute, decorators: [{
885
887
  type: Optional
886
888
  }] }, { type: i2.ContextRouteService, decorators: [{
@@ -917,8 +919,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
917
919
  }] } });
918
920
 
919
921
  class AlarmEventSelectorModule {
920
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlarmEventSelectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
921
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: AlarmEventSelectorModule, imports: [CommonModule,
922
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AlarmEventSelectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
923
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.17", ngImport: i0, type: AlarmEventSelectorModule, imports: [CommonModule,
922
924
  CoreModule,
923
925
  DragDropModule,
924
926
  PopoverModule,
@@ -931,7 +933,7 @@ class AlarmEventSelectorModule {
931
933
  AlarmEventSelectorComponent,
932
934
  IncludesAlarmOrEventPipe,
933
935
  CustomAlarmEventFormComponent], exports: [AlarmEventSelectionListComponent, AlarmEventSelectorComponent] }); }
934
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlarmEventSelectorModule, imports: [CommonModule,
936
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AlarmEventSelectorModule, imports: [CommonModule,
935
937
  CoreModule,
936
938
  DragDropModule,
937
939
  PopoverModule,
@@ -946,7 +948,7 @@ class AlarmEventSelectorModule {
946
948
  AlarmEventSelectorComponent,
947
949
  CustomAlarmEventFormComponent] }); }
948
950
  }
949
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AlarmEventSelectorModule, decorators: [{
951
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AlarmEventSelectorModule, decorators: [{
950
952
  type: NgModule,
951
953
  args: [{
952
954
  imports: [
@@ -970,9 +972,165 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
970
972
  }]
971
973
  }] });
972
974
 
975
+ class WidgetEventSelectorComponent {
976
+ constructor() {
977
+ /**
978
+ * The name of the control in the widget configuration where
979
+ * the selected events will be stored.
980
+ */
981
+ this.controlName = 'alarmsEventsConfigs';
982
+ /**
983
+ * Determines how the config is updated:
984
+ * - ISOLATED: Only stores items matching the events timelineType
985
+ * - MIXED: Stores both alarms and events together
986
+ */
987
+ this.configStoreMode = 'ISOLATED';
988
+ this.widgetConfigService = inject(WidgetConfigService);
989
+ this.timelineType = 'EVENT';
990
+ }
991
+ ngOnInit() {
992
+ this.events = this.getEvents();
993
+ }
994
+ onEventsChange(events) {
995
+ this.updateEventsConfig(events ?? []);
996
+ }
997
+ getEvents() {
998
+ return this.getAlarmsOrEventsFromWidgetConfig().filter(ae => ae.timelineType === this.timelineType);
999
+ }
1000
+ updateEventsConfig(events) {
1001
+ if (this.configStoreMode === 'ISOLATED') {
1002
+ this.widgetConfigService.updateConfig({ [this.controlName]: events });
1003
+ return;
1004
+ }
1005
+ const alarmDetails = this.getAlarmsOrEventsFromWidgetConfig().filter(config => config.timelineType !== this.timelineType);
1006
+ this.widgetConfigService.updateConfig({
1007
+ [this.controlName]: [...alarmDetails, ...events]
1008
+ });
1009
+ }
1010
+ getAlarmsOrEventsFromWidgetConfig() {
1011
+ const alarmOrEvents = this.widgetConfigService.currentConfig?.[this.controlName];
1012
+ return alarmOrEvents ?? [];
1013
+ }
1014
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: WidgetEventSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1015
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: WidgetEventSelectorComponent, isStandalone: true, selector: "c8y-widget-event-selector", inputs: { controlName: "controlName", configStoreMode: "configStoreMode" }, host: { classAttribute: "bg-level-1" }, ngImport: i0, template: `
1016
+ <c8y-alarm-event-selection-list
1017
+ class="bg-inherit"
1018
+ name="eventsConfigs"
1019
+ [(ngModel)]="events"
1020
+ (ngModelChange)="onEventsChange($event)"
1021
+ [timelineType]="timelineType"
1022
+ [inline]="true"
1023
+ [datapoints]="(widgetConfigService.currentConfig$ | async)?.datapoints"
1024
+ ></c8y-alarm-event-selection-list>
1025
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AlarmEventSelectionListComponent, selector: "c8y-alarm-event-selection-list", inputs: ["timelineType", "canRemove", "canEdit", "canDragAndDrop", "title", "addButtonLabel", "hideSource", "inline", "activeToggleAsSwitch", "omitProperties", "datapoints", "config"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] }); }
1026
+ }
1027
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: WidgetEventSelectorComponent, decorators: [{
1028
+ type: Component,
1029
+ args: [{
1030
+ selector: 'c8y-widget-event-selector',
1031
+ template: `
1032
+ <c8y-alarm-event-selection-list
1033
+ class="bg-inherit"
1034
+ name="eventsConfigs"
1035
+ [(ngModel)]="events"
1036
+ (ngModelChange)="onEventsChange($event)"
1037
+ [timelineType]="timelineType"
1038
+ [inline]="true"
1039
+ [datapoints]="(widgetConfigService.currentConfig$ | async)?.datapoints"
1040
+ ></c8y-alarm-event-selection-list>
1041
+ `,
1042
+ host: { class: 'bg-level-1' },
1043
+ standalone: true,
1044
+ imports: [FormsModule, AlarmEventSelectionListComponent, AsyncPipe],
1045
+ viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]
1046
+ }]
1047
+ }], propDecorators: { controlName: [{
1048
+ type: Input
1049
+ }], configStoreMode: [{
1050
+ type: Input
1051
+ }] } });
1052
+
1053
+ class WidgetAlarmSelectorComponent {
1054
+ constructor() {
1055
+ /**
1056
+ * The name of the control in the widget configuration where
1057
+ * the selected alarms will be stored.
1058
+ */
1059
+ this.controlName = 'alarmsEventsConfigs';
1060
+ /**
1061
+ * Determines how the config is updated:
1062
+ * - ISOLATED: Only stores items matching the alarms timelineType
1063
+ * - MIXED: Stores both alarms and events together
1064
+ */
1065
+ this.configStoreMode = 'ISOLATED';
1066
+ this.widgetConfigService = inject(WidgetConfigService);
1067
+ this.timelineType = 'ALARM';
1068
+ }
1069
+ ngOnInit() {
1070
+ this.alarms = this.getAlarms();
1071
+ }
1072
+ onAlarmsChange(alarms) {
1073
+ this.updateAlarmsConfig(alarms ?? []);
1074
+ }
1075
+ getAlarms() {
1076
+ return this.getAlarmsOrEventsFromWidgetConfig().filter(ae => ae.timelineType === this.timelineType);
1077
+ }
1078
+ updateAlarmsConfig(alarms) {
1079
+ if (this.configStoreMode === 'ISOLATED') {
1080
+ this.widgetConfigService.updateConfig({ [this.controlName]: alarms });
1081
+ return;
1082
+ }
1083
+ const eventDetails = this.getAlarmsOrEventsFromWidgetConfig().filter(config => config.timelineType !== this.timelineType);
1084
+ this.widgetConfigService.updateConfig({
1085
+ [this.controlName]: [...eventDetails, ...alarms]
1086
+ });
1087
+ }
1088
+ getAlarmsOrEventsFromWidgetConfig() {
1089
+ const alarmsOrEvents = this.widgetConfigService.currentConfig?.[this.controlName];
1090
+ return alarmsOrEvents ?? [];
1091
+ }
1092
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: WidgetAlarmSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1093
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: WidgetAlarmSelectorComponent, isStandalone: true, selector: "c8y-widget-alarm-selector", inputs: { controlName: "controlName", configStoreMode: "configStoreMode" }, host: { classAttribute: "bg-level-1" }, ngImport: i0, template: `
1094
+ <c8y-alarm-event-selection-list
1095
+ class="bg-inherit"
1096
+ name="alarmsConfigs"
1097
+ [(ngModel)]="alarms"
1098
+ (ngModelChange)="onAlarmsChange($event)"
1099
+ [timelineType]="timelineType"
1100
+ [inline]="true"
1101
+ [datapoints]="(widgetConfigService.currentConfig$ | async)?.datapoints"
1102
+ ></c8y-alarm-event-selection-list>
1103
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AlarmEventSelectionListComponent, selector: "c8y-alarm-event-selection-list", inputs: ["timelineType", "canRemove", "canEdit", "canDragAndDrop", "title", "addButtonLabel", "hideSource", "inline", "activeToggleAsSwitch", "omitProperties", "datapoints", "config"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] }); }
1104
+ }
1105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: WidgetAlarmSelectorComponent, decorators: [{
1106
+ type: Component,
1107
+ args: [{
1108
+ selector: 'c8y-widget-alarm-selector',
1109
+ template: `
1110
+ <c8y-alarm-event-selection-list
1111
+ class="bg-inherit"
1112
+ name="alarmsConfigs"
1113
+ [(ngModel)]="alarms"
1114
+ (ngModelChange)="onAlarmsChange($event)"
1115
+ [timelineType]="timelineType"
1116
+ [inline]="true"
1117
+ [datapoints]="(widgetConfigService.currentConfig$ | async)?.datapoints"
1118
+ ></c8y-alarm-event-selection-list>
1119
+ `,
1120
+ host: { class: 'bg-level-1' },
1121
+ standalone: true,
1122
+ imports: [FormsModule, AlarmEventSelectionListComponent, AsyncPipe],
1123
+ viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]
1124
+ }]
1125
+ }], propDecorators: { controlName: [{
1126
+ type: Input
1127
+ }], configStoreMode: [{
1128
+ type: Input
1129
+ }] } });
1130
+
973
1131
  /**
974
1132
  * Generated bundle index. Do not edit.
975
1133
  */
976
1134
 
977
- export { ALARM_TEXTS, AlarmEventAttributesFormComponent, AlarmEventSelectionListComponent, AlarmEventSelectorComponent, AlarmEventSelectorListItemComponent, AlarmEventSelectorModalComponent, AlarmEventSelectorModalService, AlarmEventSelectorModule, AlarmEventSelectorService, CustomAlarmEventFormComponent, EVENT_TEXTS, IncludesAlarmOrEventPipe };
1135
+ export { ALARM_TEXTS, AlarmEventAttributesFormComponent, AlarmEventSelectionListComponent, AlarmEventSelectorComponent, AlarmEventSelectorListItemComponent, AlarmEventSelectorModalComponent, AlarmEventSelectorModalService, AlarmEventSelectorModule, AlarmEventSelectorService, CustomAlarmEventFormComponent, EVENT_TEXTS, IncludesAlarmOrEventPipe, WidgetAlarmSelectorComponent, WidgetEventSelectorComponent };
978
1136
  //# sourceMappingURL=c8y-ngx-components-alarm-event-selector.mjs.map