@c8y/ngx-components 1023.61.2 → 1023.62.2

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 (231) hide show
  1. package/context-dashboard/index.d.ts +13 -0
  2. package/context-dashboard/index.d.ts.map +1 -1
  3. package/echart/index.d.ts +2 -0
  4. package/echart/index.d.ts.map +1 -1
  5. package/fesm2022/c8y-ngx-components-actility-device-registration.mjs +16 -16
  6. package/fesm2022/c8y-ngx-components-advanced-software-management.mjs +7 -7
  7. package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs +9 -9
  8. package/fesm2022/c8y-ngx-components-ai-ai-chat.mjs +12 -12
  9. package/fesm2022/c8y-ngx-components-ai.mjs +3 -3
  10. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +40 -40
  11. package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs +4 -4
  12. package/fesm2022/c8y-ngx-components-alarms-devicemanagement.mjs +3 -3
  13. package/fesm2022/c8y-ngx-components-alarms.mjs +82 -82
  14. package/fesm2022/c8y-ngx-components-api.mjs +7 -7
  15. package/fesm2022/c8y-ngx-components-app-logs.mjs +10 -10
  16. package/fesm2022/c8y-ngx-components-application-access-list.mjs +12 -12
  17. package/fesm2022/c8y-ngx-components-application-access-user-application-access-user-details-wrapper.mjs +3 -3
  18. package/fesm2022/c8y-ngx-components-asset-properties.mjs +48 -48
  19. package/fesm2022/{c8y-ngx-components-asset-property-grid.component-D3cPNQyD.mjs → c8y-ngx-components-asset-property-grid.component-CEphJoqx.mjs} +13 -13
  20. package/fesm2022/{c8y-ngx-components-asset-property-grid.component-D3cPNQyD.mjs.map → c8y-ngx-components-asset-property-grid.component-CEphJoqx.mjs.map} +1 -1
  21. package/fesm2022/c8y-ngx-components-assets-navigator.mjs +32 -32
  22. package/fesm2022/c8y-ngx-components-auth-configuration.mjs +120 -120
  23. package/fesm2022/c8y-ngx-components-binary-file-download.mjs +7 -7
  24. package/fesm2022/c8y-ngx-components-bookmarks.mjs +13 -13
  25. package/fesm2022/c8y-ngx-components-branding-base-branding.mjs +4 -4
  26. package/fesm2022/c8y-ngx-components-branding-dark-theme.mjs +7 -7
  27. package/fesm2022/c8y-ngx-components-branding-extra-css-branding-editor.mjs +7 -7
  28. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor-lazy.mjs +3 -3
  29. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs +7 -7
  30. package/fesm2022/c8y-ngx-components-branding-shared-data.mjs +15 -15
  31. package/fesm2022/c8y-ngx-components-branding-shared-lazy-add-branding-modal.mjs +6 -6
  32. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +36 -36
  33. package/fesm2022/c8y-ngx-components-branding-shared.mjs +13 -13
  34. package/fesm2022/c8y-ngx-components-child-devices.mjs +13 -13
  35. package/fesm2022/c8y-ngx-components-cockpit-config.mjs +40 -40
  36. package/fesm2022/{c8y-ngx-components-computed-asset-properties-alarm-count-config.component-cxDrUoXY.mjs → c8y-ngx-components-computed-asset-properties-alarm-count-config.component-B2cy8gI7.mjs} +4 -4
  37. package/fesm2022/{c8y-ngx-components-computed-asset-properties-alarm-count-config.component-cxDrUoXY.mjs.map → c8y-ngx-components-computed-asset-properties-alarm-count-config.component-B2cy8gI7.mjs.map} +1 -1
  38. package/fesm2022/{c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-BxmSKHiM.mjs → c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-BYHnA-5R.mjs} +11 -11
  39. package/fesm2022/{c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-BxmSKHiM.mjs.map → c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-BYHnA-5R.mjs.map} +1 -1
  40. package/fesm2022/{c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-CbLcHjZB.mjs → c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-C4oL39m8.mjs} +4 -4
  41. package/fesm2022/{c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-CbLcHjZB.mjs.map → c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-C4oL39m8.mjs.map} +1 -1
  42. package/fesm2022/{c8y-ngx-components-computed-asset-properties-event-count-config.component-DSWgAtkH.mjs → c8y-ngx-components-computed-asset-properties-event-count-config.component-DGwm6_C9.mjs} +4 -4
  43. package/fesm2022/{c8y-ngx-components-computed-asset-properties-event-count-config.component-DSWgAtkH.mjs.map → c8y-ngx-components-computed-asset-properties-event-count-config.component-DGwm6_C9.mjs.map} +1 -1
  44. package/fesm2022/{c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-CYskL4Lc.mjs → c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-BxfCjbYY.mjs} +5 -5
  45. package/fesm2022/{c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-CYskL4Lc.mjs.map → c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-BxfCjbYY.mjs.map} +1 -1
  46. package/fesm2022/{c8y-ngx-components-computed-asset-properties-last-measurement-config.component-CDFNPo4q.mjs → c8y-ngx-components-computed-asset-properties-last-measurement-config.component-C1cuxN3L.mjs} +4 -4
  47. package/fesm2022/{c8y-ngx-components-computed-asset-properties-last-measurement-config.component-CDFNPo4q.mjs.map → c8y-ngx-components-computed-asset-properties-last-measurement-config.component-C1cuxN3L.mjs.map} +1 -1
  48. package/fesm2022/c8y-ngx-components-computed-asset-properties.mjs +1 -1
  49. package/fesm2022/c8y-ngx-components-connectivity.mjs +53 -53
  50. package/fesm2022/c8y-ngx-components-context-dashboard-asset-add.mjs +10 -10
  51. package/fesm2022/c8y-ngx-components-context-dashboard-asset-view.mjs +7 -7
  52. package/fesm2022/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.mjs +11 -11
  53. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-CfvHiXsE.mjs → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-DsCDppJx.mjs} +4 -4
  54. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-CfvHiXsE.mjs.map → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-DsCDppJx.mjs.map} +1 -1
  55. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-DUbxiMZh.mjs → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-RdLW5nde.mjs} +10 -10
  56. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-DUbxiMZh.mjs.map → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-RdLW5nde.mjs.map} +1 -1
  57. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-Byk0CoOG.mjs → c8y-ngx-components-context-dashboard-dashboard-version-history.component--1OYYpR2.mjs} +4 -4
  58. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-Byk0CoOG.mjs.map → c8y-ngx-components-context-dashboard-dashboard-version-history.component--1OYYpR2.mjs.map} +1 -1
  59. package/fesm2022/c8y-ngx-components-context-dashboard-device-add.mjs +10 -10
  60. package/fesm2022/c8y-ngx-components-context-dashboard-device-view.mjs +7 -7
  61. package/fesm2022/c8y-ngx-components-context-dashboard-devicemanagement.mjs +3 -3
  62. package/fesm2022/c8y-ngx-components-context-dashboard-state.mjs +3 -3
  63. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +118 -102
  64. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  65. package/fesm2022/{c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-CGnlj1KZ.mjs → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-Cek3_qZQ.mjs} +16 -16
  66. package/fesm2022/{c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-CGnlj1KZ.mjs.map → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-Cek3_qZQ.mjs.map} +1 -1
  67. package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab.mjs +12 -12
  68. package/fesm2022/c8y-ngx-components-dashboard-manager-devicemanagement.mjs +6 -6
  69. package/fesm2022/c8y-ngx-components-dashboard-manager.mjs +22 -22
  70. package/fesm2022/c8y-ngx-components-data-broker.mjs +7 -7
  71. package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs +3 -3
  72. package/fesm2022/c8y-ngx-components-data-grid-columns.mjs +3 -3
  73. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +24 -24
  74. package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs +13 -13
  75. package/fesm2022/c8y-ngx-components-datapoint-library-details.mjs +3 -3
  76. package/fesm2022/c8y-ngx-components-datapoint-library-list.mjs +3 -3
  77. package/fesm2022/c8y-ngx-components-datapoint-library-services.mjs +3 -3
  78. package/fesm2022/c8y-ngx-components-datapoint-library.mjs +4 -4
  79. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +43 -43
  80. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs +33 -33
  81. package/fesm2022/c8y-ngx-components-default-subscriptions.mjs +16 -16
  82. package/fesm2022/c8y-ngx-components-device-enrolment-modal.mjs +9 -9
  83. package/fesm2022/c8y-ngx-components-device-enrolment.mjs +6 -6
  84. package/fesm2022/c8y-ngx-components-device-grid.mjs +43 -43
  85. package/fesm2022/c8y-ngx-components-device-list.mjs +22 -22
  86. package/fesm2022/c8y-ngx-components-device-map.mjs +12 -12
  87. package/fesm2022/c8y-ngx-components-device-profile.mjs +34 -34
  88. package/fesm2022/c8y-ngx-components-device-protocol-object-mappings.mjs +3 -3
  89. package/fesm2022/c8y-ngx-components-device-protocols.mjs +16 -16
  90. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +13 -13
  91. package/fesm2022/c8y-ngx-components-device-shell.mjs +31 -31
  92. package/fesm2022/c8y-ngx-components-diagnostics.mjs +13 -13
  93. package/fesm2022/c8y-ngx-components-echart.mjs +67 -39
  94. package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
  95. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +43 -43
  96. package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs +7 -7
  97. package/fesm2022/c8y-ngx-components-ecosystem-license-confirm.mjs +10 -10
  98. package/fesm2022/c8y-ngx-components-ecosystem-plugin-setup-stepper.mjs +7 -7
  99. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +46 -46
  100. package/fesm2022/c8y-ngx-components-ecosystem.mjs +82 -82
  101. package/fesm2022/c8y-ngx-components-editor.mjs +6 -6
  102. package/fesm2022/c8y-ngx-components-events-events-timeline.mjs +3 -3
  103. package/fesm2022/c8y-ngx-components-events.mjs +3 -3
  104. package/fesm2022/c8y-ngx-components-exports-list.mjs +6 -6
  105. package/fesm2022/c8y-ngx-components-feature-toggles-list.mjs +6 -6
  106. package/fesm2022/c8y-ngx-components-file-preview.mjs +7 -7
  107. package/fesm2022/c8y-ngx-components-files-repository.mjs +19 -19
  108. package/fesm2022/c8y-ngx-components-global-context.mjs +130 -130
  109. package/fesm2022/c8y-ngx-components-group-breadcrumbs.mjs +6 -6
  110. package/fesm2022/c8y-ngx-components-icon-selector.mjs +19 -19
  111. package/fesm2022/c8y-ngx-components-interval-picker.mjs +3 -3
  112. package/fesm2022/c8y-ngx-components-location.mjs +28 -28
  113. package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs +16 -16
  114. package/fesm2022/c8y-ngx-components-map.mjs +22 -20
  115. package/fesm2022/c8y-ngx-components-map.mjs.map +1 -1
  116. package/fesm2022/c8y-ngx-components-messaging-management.mjs +55 -55
  117. package/fesm2022/c8y-ngx-components-operations-bulk-operation-from-single.mjs +7 -7
  118. package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs +19 -19
  119. package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs +7 -7
  120. package/fesm2022/c8y-ngx-components-operations-bulk-operation-stepper.mjs +13 -13
  121. package/fesm2022/c8y-ngx-components-operations-bulk-operations-list.mjs +13 -13
  122. package/fesm2022/c8y-ngx-components-operations-bulk-operations-service.mjs +7 -7
  123. package/fesm2022/c8y-ngx-components-operations-bulk-operations-stepper-container.mjs +7 -7
  124. package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs +3 -3
  125. package/fesm2022/c8y-ngx-components-operations-create-bulk-operation-details.mjs +7 -7
  126. package/fesm2022/c8y-ngx-components-operations-device-selector.mjs +7 -7
  127. package/fesm2022/c8y-ngx-components-operations-grid-columns.mjs +12 -12
  128. package/fesm2022/c8y-ngx-components-operations-operation-details.mjs +13 -13
  129. package/fesm2022/c8y-ngx-components-operations-operation-summary.mjs +7 -7
  130. package/fesm2022/c8y-ngx-components-operations-operations-list-item-details.mjs +10 -10
  131. package/fesm2022/c8y-ngx-components-operations-operations-list.mjs +12 -12
  132. package/fesm2022/c8y-ngx-components-operations-operations-timeline.mjs +7 -7
  133. package/fesm2022/c8y-ngx-components-operations-shared.mjs +10 -10
  134. package/fesm2022/c8y-ngx-components-operations-status-filter.mjs +7 -7
  135. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-configuration.mjs +7 -7
  136. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-device-profile.mjs +13 -13
  137. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-firmware.mjs +13 -13
  138. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-software.mjs +13 -13
  139. package/fesm2022/c8y-ngx-components-operations-stepper-frames.mjs +13 -13
  140. package/fesm2022/c8y-ngx-components-operations.mjs +7 -7
  141. package/fesm2022/c8y-ngx-components-pending-mo-request.mjs +7 -7
  142. package/fesm2022/c8y-ngx-components-platform-configuration.mjs +10 -10
  143. package/fesm2022/c8y-ngx-components-protocol-lpwan.mjs +38 -38
  144. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +58 -58
  145. package/fesm2022/c8y-ngx-components-register-device.mjs +58 -58
  146. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +9 -9
  147. package/fesm2022/c8y-ngx-components-remote-access-data.mjs +3 -3
  148. package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs +3 -3
  149. package/fesm2022/c8y-ngx-components-remote-access-shared.mjs +6 -6
  150. package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +3 -3
  151. package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs +3 -3
  152. package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs +3 -3
  153. package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs +3 -3
  154. package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +3 -3
  155. package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +6 -6
  156. package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs +3 -3
  157. package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs +6 -6
  158. package/fesm2022/c8y-ngx-components-replace-device.mjs +10 -10
  159. package/fesm2022/c8y-ngx-components-report-dashboard.mjs +16 -16
  160. package/fesm2022/c8y-ngx-components-reports.mjs +19 -19
  161. package/fesm2022/c8y-ngx-components-repository-configuration.mjs +48 -48
  162. package/fesm2022/c8y-ngx-components-repository-firmware.mjs +33 -33
  163. package/fesm2022/c8y-ngx-components-repository-shared.mjs +34 -34
  164. package/fesm2022/c8y-ngx-components-repository-software.mjs +42 -42
  165. package/fesm2022/c8y-ngx-components-repository.mjs +4 -4
  166. package/fesm2022/c8y-ngx-components-search.mjs +19 -19
  167. package/fesm2022/c8y-ngx-components-sensor-phone-sensor-phone-modal.mjs +6 -6
  168. package/fesm2022/c8y-ngx-components-sensor-phone.mjs +7 -7
  169. package/fesm2022/c8y-ngx-components-services-service-command-tab.mjs +3 -3
  170. package/fesm2022/c8y-ngx-components-services-shared.mjs +3 -3
  171. package/fesm2022/c8y-ngx-components-services.mjs +29 -29
  172. package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs +16 -16
  173. package/fesm2022/c8y-ngx-components-sms-gateway.mjs +7 -7
  174. package/fesm2022/c8y-ngx-components-static-assets-data.mjs +3 -3
  175. package/fesm2022/c8y-ngx-components-static-assets-modal.mjs +9 -9
  176. package/fesm2022/c8y-ngx-components-static-assets.mjs +6 -6
  177. package/fesm2022/c8y-ngx-components-sub-assets.mjs +60 -60
  178. package/fesm2022/c8y-ngx-components-tenants.mjs +40 -40
  179. package/fesm2022/c8y-ngx-components-time-context.mjs +6 -6
  180. package/fesm2022/c8y-ngx-components-tracking.mjs +12 -12
  181. package/fesm2022/c8y-ngx-components-translation-editor-data.mjs +3 -3
  182. package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs +12 -12
  183. package/fesm2022/c8y-ngx-components-translation-editor.mjs +6 -6
  184. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +33 -33
  185. package/fesm2022/c8y-ngx-components-upgrade-upgraded-services.mjs +4 -4
  186. package/fesm2022/c8y-ngx-components-upgrade.mjs +41 -41
  187. package/fesm2022/c8y-ngx-components-user-roles.mjs +10 -10
  188. package/fesm2022/c8y-ngx-components-widgets-definitions-asset-table.mjs +6 -6
  189. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs +3 -3
  190. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget-ai-config.mjs +3 -3
  191. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs +6 -6
  192. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +19 -19
  193. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-notes.mjs +3 -3
  194. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-table.mjs +39 -39
  195. package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-legacy-welcome.mjs +3 -3
  196. package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs +3 -3
  197. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +7 -6
  198. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
  199. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +27 -27
  200. package/fesm2022/c8y-ngx-components-widgets-implementations-device-control-message.mjs +3 -3
  201. package/fesm2022/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs +10 -10
  202. package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs +3 -3
  203. package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs +24 -24
  204. package/fesm2022/c8y-ngx-components-widgets-implementations-image.mjs +9 -9
  205. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +18 -18
  206. package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs +6 -6
  207. package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs +6 -6
  208. package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs +9 -9
  209. package/fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs +9 -9
  210. package/fesm2022/c8y-ngx-components-widgets-implementations-pie-chart.mjs +9 -9
  211. package/fesm2022/c8y-ngx-components-widgets-implementations-quick-links.mjs +23 -19
  212. package/fesm2022/c8y-ngx-components-widgets-implementations-quick-links.mjs.map +1 -1
  213. package/fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation.mjs +9 -9
  214. package/fesm2022/c8y-ngx-components.mjs +1386 -1388
  215. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  216. package/index.d.ts.map +1 -1
  217. package/locales/de.po +9 -0
  218. package/locales/es.po +10 -1
  219. package/locales/fr.po +9 -0
  220. package/locales/ja_JP.po +9 -0
  221. package/locales/ko.po +9 -0
  222. package/locales/locales.pot +9 -0
  223. package/locales/nl.po +9 -0
  224. package/locales/pl.po +9 -0
  225. package/locales/pt_BR.po +9 -0
  226. package/locales/zh_CN.po +9 -0
  227. package/locales/zh_TW.po +9 -0
  228. package/map/index.d.ts.map +1 -1
  229. package/package.json +1 -1
  230. package/widgets/implementations/datapoints-graph/index.d.ts.map +1 -1
  231. package/widgets/implementations/quick-links/index.d.ts.map +1 -1
@@ -59,10 +59,10 @@ class AssetNotesWidgetComponent {
59
59
  this.alertService.addServerFailure(error);
60
60
  }
61
61
  }
62
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AssetNotesWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
63
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: AssetNotesWidgetComponent, isStandalone: true, selector: "c8y-asset-notes", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"fit-h d-flex flex-wrap a-i-stretch\">\n <i\n class=\"c8y-icon c8y-icon-duocolor asset-notes-icon\"\n [c8yIcon]=\"'c8y-notification'\"\n ></i>\n\n @if (!editable()) {\n <div class=\"asset-notes-content\">\n <c8y-loading *ngIf=\"isLoading()\"></c8y-loading>\n <div class=\"text-break-word asset-notes-body\">\n @if (notes()?.htmlContent && !isLoading()) {\n <span\n class=\"markdown-content d-inline-block\"\n [innerHTML]=\"notes()?.htmlContent | markdownToHtml | async\"\n ></span>\n } @else if (!notes()?.htmlContent) {\n <span>\n {{ 'No notes yet.' | translate }}\n </span>\n }\n\n <button\n class=\"btn btn-link btn-sm\"\n title=\"{{ 'Edit' | translate }}\"\n type=\"button\"\n (click)=\"toggleEdit()\"\n >\n <i c8yIcon=\"pencil\"></i>\n {{ 'Edit' | translate }}\n </button>\n </div>\n </div>\n <div class=\"asset-notes-footer m-t-8\">\n <small class=\"text-muted\">\n <em\n *ngIf=\"notes()?.lastUpdated\"\n ngNonBindable\n translate\n [translateParams]=\"ngNonBindableTranslate()\"\n >\n {{ lastUpdated }} by {{ user }}\n </em>\n </small>\n </div>\n } @else {\n <div class=\"fit-h flex-grow\">\n <div class=\"d-flex a-i-stretch fit-h\">\n <textarea\n class=\"form-control fit-h text-monospace\"\n [attr.aria-label]=\"'Notes' | translate\"\n rows=\"5\"\n [(ngModel)]=\"notes().htmlContent\"\n c8y-code-editor\n ></textarea>\n <div class=\"input-group-btn a-s-center\">\n <button\n class=\"btn btn-dot\"\n title=\"{{ 'Save' | translate }}\"\n type=\"button\"\n (click)=\"save()\"\n >\n <i c8yIcon=\"check\"></i>\n </button>\n </div>\n <div class=\"input-group-btn a-s-center\">\n <button\n class=\"btn btn-dot\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"toggleEdit()\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n </div>\n </div>\n </div>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }, { kind: "ngmodule", type: CommonModule$1 }, { kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: FormsModule$1 }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.MarkdownToHtmlPipe, name: "markdownToHtml" }] }); }
62
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: AssetNotesWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
63
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: AssetNotesWidgetComponent, isStandalone: true, selector: "c8y-asset-notes", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"fit-h d-flex flex-wrap a-i-stretch\">\n <i\n class=\"c8y-icon c8y-icon-duocolor asset-notes-icon\"\n [c8yIcon]=\"'c8y-notification'\"\n ></i>\n\n @if (!editable()) {\n <div class=\"asset-notes-content\">\n <c8y-loading *ngIf=\"isLoading()\"></c8y-loading>\n <div class=\"text-break-word asset-notes-body\">\n @if (notes()?.htmlContent && !isLoading()) {\n <span\n class=\"markdown-content d-inline-block\"\n [innerHTML]=\"notes()?.htmlContent | markdownToHtml | async\"\n ></span>\n } @else if (!notes()?.htmlContent) {\n <span>\n {{ 'No notes yet.' | translate }}\n </span>\n }\n\n <button\n class=\"btn btn-link btn-sm\"\n title=\"{{ 'Edit' | translate }}\"\n type=\"button\"\n (click)=\"toggleEdit()\"\n >\n <i c8yIcon=\"pencil\"></i>\n {{ 'Edit' | translate }}\n </button>\n </div>\n </div>\n <div class=\"asset-notes-footer m-t-8\">\n <small class=\"text-muted\">\n <em\n *ngIf=\"notes()?.lastUpdated\"\n ngNonBindable\n translate\n [translateParams]=\"ngNonBindableTranslate()\"\n >\n {{ lastUpdated }} by {{ user }}\n </em>\n </small>\n </div>\n } @else {\n <div class=\"fit-h flex-grow\">\n <div class=\"d-flex a-i-stretch fit-h\">\n <textarea\n class=\"form-control fit-h text-monospace\"\n [attr.aria-label]=\"'Notes' | translate\"\n rows=\"5\"\n [(ngModel)]=\"notes().htmlContent\"\n c8y-code-editor\n ></textarea>\n <div class=\"input-group-btn a-s-center\">\n <button\n class=\"btn btn-dot\"\n title=\"{{ 'Save' | translate }}\"\n type=\"button\"\n (click)=\"save()\"\n >\n <i c8yIcon=\"check\"></i>\n </button>\n </div>\n <div class=\"input-group-btn a-s-center\">\n <button\n class=\"btn btn-dot\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"toggleEdit()\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n </div>\n </div>\n </div>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }, { kind: "ngmodule", type: CommonModule$1 }, { kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: FormsModule$1 }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.MarkdownToHtmlPipe, name: "markdownToHtml" }] }); }
64
64
  }
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AssetNotesWidgetComponent, decorators: [{
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: AssetNotesWidgetComponent, decorators: [{
66
66
  type: Component,
67
67
  args: [{ selector: 'c8y-asset-notes', standalone: true, imports: [CommonModule, CommonModule$1, CoreModule, FormsModule, FormsModule$1, DatePipe], template: "<div class=\"fit-h d-flex flex-wrap a-i-stretch\">\n <i\n class=\"c8y-icon c8y-icon-duocolor asset-notes-icon\"\n [c8yIcon]=\"'c8y-notification'\"\n ></i>\n\n @if (!editable()) {\n <div class=\"asset-notes-content\">\n <c8y-loading *ngIf=\"isLoading()\"></c8y-loading>\n <div class=\"text-break-word asset-notes-body\">\n @if (notes()?.htmlContent && !isLoading()) {\n <span\n class=\"markdown-content d-inline-block\"\n [innerHTML]=\"notes()?.htmlContent | markdownToHtml | async\"\n ></span>\n } @else if (!notes()?.htmlContent) {\n <span>\n {{ 'No notes yet.' | translate }}\n </span>\n }\n\n <button\n class=\"btn btn-link btn-sm\"\n title=\"{{ 'Edit' | translate }}\"\n type=\"button\"\n (click)=\"toggleEdit()\"\n >\n <i c8yIcon=\"pencil\"></i>\n {{ 'Edit' | translate }}\n </button>\n </div>\n </div>\n <div class=\"asset-notes-footer m-t-8\">\n <small class=\"text-muted\">\n <em\n *ngIf=\"notes()?.lastUpdated\"\n ngNonBindable\n translate\n [translateParams]=\"ngNonBindableTranslate()\"\n >\n {{ lastUpdated }} by {{ user }}\n </em>\n </small>\n </div>\n } @else {\n <div class=\"fit-h flex-grow\">\n <div class=\"d-flex a-i-stretch fit-h\">\n <textarea\n class=\"form-control fit-h text-monospace\"\n [attr.aria-label]=\"'Notes' | translate\"\n rows=\"5\"\n [(ngModel)]=\"notes().htmlContent\"\n c8y-code-editor\n ></textarea>\n <div class=\"input-group-btn a-s-center\">\n <button\n class=\"btn btn-dot\"\n title=\"{{ 'Save' | translate }}\"\n type=\"button\"\n (click)=\"save()\"\n >\n <i c8yIcon=\"check\"></i>\n </button>\n </div>\n <div class=\"input-group-btn a-s-center\">\n <button\n class=\"btn btn-dot\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"toggleEdit()\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n </div>\n </div>\n </div>\n }\n</div>\n" }]
68
68
  }], propDecorators: { config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }] } });
@@ -43,8 +43,8 @@ class DateCellRendererComponent {
43
43
  this.isLink = !!this.context?.property?.isLink;
44
44
  this.href = this.isLink ? this.columnUtilService.getHref(this.context.item) : null;
45
45
  }
46
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: DateCellRendererComponent, deps: [{ token: i1.CellRendererContext }, { token: i2.ColumnUtilService }], target: i0.ɵɵFactoryTarget.Component }); }
47
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: DateCellRendererComponent, isStandalone: true, selector: "c8y-date-cell-renderer", ngImport: i0, template: `
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DateCellRendererComponent, deps: [{ token: i1.CellRendererContext }, { token: i2.ColumnUtilService }], target: i0.ɵɵFactoryTarget.Component }); }
47
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: DateCellRendererComponent, isStandalone: true, selector: "c8y-date-cell-renderer", ngImport: i0, template: `
48
48
  @if (isLink) {
49
49
  <a [href]="href">
50
50
  {{ context.value | c8yDate }}
@@ -54,7 +54,7 @@ class DateCellRendererComponent {
54
54
  }
55
55
  `, isInline: true, dependencies: [{ kind: "pipe", type: DatePipe, name: "c8yDate" }] }); }
56
56
  }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: DateCellRendererComponent, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DateCellRendererComponent, decorators: [{
58
58
  type: Component,
59
59
  args: [{
60
60
  template: `
@@ -271,8 +271,8 @@ class IconCellRendererComponent {
271
271
  return false;
272
272
  }
273
273
  }
274
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: IconCellRendererComponent, deps: [{ token: i1.CellRendererContext }, { token: i2$1.ComputedPropertiesService }, { token: i2.ColumnUtilService }], target: i0.ɵɵFactoryTarget.Component }); }
275
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: IconCellRendererComponent, isStandalone: true, selector: "c8y-icon-cell-renderer", ngImport: i0, template: ` <ng-template #iconAndValueTemplate let-value>
274
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: IconCellRendererComponent, deps: [{ token: i1.CellRendererContext }, { token: i2$1.ComputedPropertiesService }, { token: i2.ColumnUtilService }], target: i0.ɵɵFactoryTarget.Component }); }
275
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: IconCellRendererComponent, isStandalone: true, selector: "c8y-icon-cell-renderer", ngImport: i0, template: ` <ng-template #iconAndValueTemplate let-value>
276
276
  @if (matchedCondition(value); as match) {
277
277
  <i class="m-r-4" [c8yIcon]="match.icon" [style.color]="match.color"></i>
278
278
  @if (context.property.showIconAndValue) {
@@ -319,7 +319,7 @@ class IconCellRendererComponent {
319
319
  </div>
320
320
  }`, isInline: true, dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
321
321
  }
322
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: IconCellRendererComponent, decorators: [{
322
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: IconCellRendererComponent, decorators: [{
323
323
  type: Component,
324
324
  args: [{
325
325
  template: ` <ng-template #iconAndValueTemplate let-value>
@@ -447,8 +447,8 @@ class OperationCellRendererComponent {
447
447
  device.c8y_RequiredAvailability.responseInterval &&
448
448
  parseInt(device.c8y_RequiredAvailability.responseInterval, 10) !== 0);
449
449
  }
450
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: OperationCellRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
451
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: OperationCellRendererComponent, isStandalone: true, selector: "c8y-operation-cell-renderer", ngImport: i0, template: `
450
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: OperationCellRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
451
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: OperationCellRendererComponent, isStandalone: true, selector: "c8y-operation-cell-renderer", ngImport: i0, template: `
452
452
  @if (shouldShowButton()) {
453
453
  <button class="btn btn-primary btn-sm" type="button" (click)="onOperationClick()">
454
454
  {{ context.property?.name ?? '' | translate }}
@@ -458,7 +458,7 @@ class OperationCellRendererComponent {
458
458
  }
459
459
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
460
460
  }
461
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: OperationCellRendererComponent, decorators: [{
461
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: OperationCellRendererComponent, decorators: [{
462
462
  type: Component,
463
463
  args: [{
464
464
  selector: 'c8y-operation-cell-renderer',
@@ -521,10 +521,10 @@ class ComputedCellRendererComponent {
521
521
  }
522
522
  }));
523
523
  }
524
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: ComputedCellRendererComponent, deps: [{ token: i1.CellRendererContext }, { token: i2$1.ComputedPropertiesService }], target: i0.ɵɵFactoryTarget.Component }); }
525
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: ComputedCellRendererComponent, isStandalone: true, selector: "c8y-computed-cell-renderer", ngImport: i0, template: `{{ computedValue | async }}`, isInline: true, dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }] }); }
524
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ComputedCellRendererComponent, deps: [{ token: i1.CellRendererContext }, { token: i2$1.ComputedPropertiesService }], target: i0.ɵɵFactoryTarget.Component }); }
525
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: ComputedCellRendererComponent, isStandalone: true, selector: "c8y-computed-cell-renderer", ngImport: i0, template: `{{ computedValue | async }}`, isInline: true, dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }] }); }
526
526
  }
527
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: ComputedCellRendererComponent, decorators: [{
527
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ComputedCellRendererComponent, decorators: [{
528
528
  type: Component,
529
529
  args: [{
530
530
  template: `{{ computedValue | async }}`,
@@ -566,8 +566,8 @@ class DefaultCellRendererComponent {
566
566
  }
567
567
  return String(value);
568
568
  }
569
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: DefaultCellRendererComponent, deps: [{ token: i1.CellRendererContext }, { token: i2.ColumnUtilService }], target: i0.ɵɵFactoryTarget.Component }); }
570
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: DefaultCellRendererComponent, isStandalone: true, selector: "c8y-text-cell-renderer", ngImport: i0, template: `
569
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DefaultCellRendererComponent, deps: [{ token: i1.CellRendererContext }, { token: i2.ColumnUtilService }], target: i0.ɵɵFactoryTarget.Component }); }
570
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: DefaultCellRendererComponent, isStandalone: true, selector: "c8y-text-cell-renderer", ngImport: i0, template: `
571
571
  @if (isLink) {
572
572
  <a [href]="href">{{ displayValue }}</a>
573
573
  } @else {
@@ -575,7 +575,7 @@ class DefaultCellRendererComponent {
575
575
  }
576
576
  `, isInline: true }); }
577
577
  }
578
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: DefaultCellRendererComponent, decorators: [{
578
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DefaultCellRendererComponent, decorators: [{
579
579
  type: Component,
580
580
  args: [{
581
581
  template: `
@@ -1104,10 +1104,10 @@ class AssetTableService {
1104
1104
  }
1105
1105
  };
1106
1106
  }
1107
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AssetTableService, deps: [{ token: i1$1.InventoryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1108
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AssetTableService, providedIn: 'root' }); }
1107
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: AssetTableService, deps: [{ token: i1$1.InventoryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1108
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: AssetTableService, providedIn: 'root' }); }
1109
1109
  }
1110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AssetTableService, decorators: [{
1110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: AssetTableService, decorators: [{
1111
1111
  type: Injectable,
1112
1112
  args: [{
1113
1113
  providedIn: 'root'
@@ -1224,10 +1224,10 @@ class AssetTableAutoRefreshComponent extends IntervalBasedReload {
1224
1224
  ? this.translateService.instant(gettext('Disable auto refresh'))
1225
1225
  : this.translateService.instant(gettext('Enable auto refresh'));
1226
1226
  }
1227
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AssetTableAutoRefreshComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$2.TranslateService }, { token: i1.WidgetGlobalAutoRefreshService }], target: i0.ɵɵFactoryTarget.Component }); }
1228
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: AssetTableAutoRefreshComponent, isStandalone: true, selector: "c8y-asset-table-auto-refresh", inputs: { config: "config", isIntervalRefresh: "isIntervalRefresh", refreshInterval: "refreshInterval", isLoading: "isLoading", isScrolling: "isScrolling", isRefreshDisabled: "isRefreshDisabled" }, outputs: { onCountdownEnded: "onCountdownEnded" }, providers: [ManagedObjectRealtimeService], viewQueries: [{ propertyName: "countdownIntervalComponent", first: true, predicate: CountdownIntervalComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"m-l-auto d-flex p-t-4 p-b-4 p-r-4\">\n <div class=\"m-l-auto d-flex a-i-center\">\n @if (config.isAutoRefreshEnabled) {\n <label\n class=\"m-b-0 m-r-8 text-label-small text-truncate flex-no-shrink\"\n title=\" {{ 'Auto refresh' | translate }}\"\n >\n {{ 'Auto refresh' | translate }}\n </label>\n }\n <div class=\"input-group\">\n <label\n class=\"toggle-countdown\"\n [class.toggle-countdown-disabled]=\"isAutoRefreshDisabled\"\n [attr.aria-label]=\"toggleCountdownButtonTooltipText\"\n [tooltip]=\"toggleCountdownButtonTooltipText\"\n placement=\"bottom\"\n [adaptivePosition]=\"false\"\n [container]=\"'body'\"\n [delay]=\"500\"\n >\n <input\n type=\"checkbox\"\n data-cy=\"c8y-alarms-widget--interval-toggle-button\"\n (click)=\"onToggleCountdownButtonState($event, WIDGET_TYPE_VALUES.ASSET_TABLE)\"\n />\n\n @if (isIntervalRefreshToggleOn) {\n <c8y-countdown-interval\n [countdownInterval]=\"refreshInterval\"\n (countdownEnded)=\"countdownEnded()\"\n ></c8y-countdown-interval>\n } @else {\n <i c8yIcon=\"pause\"></i>\n }\n </label>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule$1 }, { kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: i1.CountdownIntervalComponent, selector: "c8y-countdown-interval", inputs: ["countdownInterval", "config"], outputs: ["countdownEnded"] }, { kind: "ngmodule", type: AssetSelectorModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] }); }
1227
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: AssetTableAutoRefreshComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$2.TranslateService }, { token: i1.WidgetGlobalAutoRefreshService }], target: i0.ɵɵFactoryTarget.Component }); }
1228
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: AssetTableAutoRefreshComponent, isStandalone: true, selector: "c8y-asset-table-auto-refresh", inputs: { config: "config", isIntervalRefresh: "isIntervalRefresh", refreshInterval: "refreshInterval", isLoading: "isLoading", isScrolling: "isScrolling", isRefreshDisabled: "isRefreshDisabled" }, outputs: { onCountdownEnded: "onCountdownEnded" }, providers: [ManagedObjectRealtimeService], viewQueries: [{ propertyName: "countdownIntervalComponent", first: true, predicate: CountdownIntervalComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"m-l-auto d-flex p-t-4 p-b-4 p-r-4\">\n <div class=\"m-l-auto d-flex a-i-center\">\n @if (config.isAutoRefreshEnabled) {\n <label\n class=\"m-b-0 m-r-8 text-label-small text-truncate flex-no-shrink\"\n title=\" {{ 'Auto refresh' | translate }}\"\n >\n {{ 'Auto refresh' | translate }}\n </label>\n }\n <div class=\"input-group\">\n <label\n class=\"toggle-countdown\"\n [class.toggle-countdown-disabled]=\"isAutoRefreshDisabled\"\n [attr.aria-label]=\"toggleCountdownButtonTooltipText\"\n [tooltip]=\"toggleCountdownButtonTooltipText\"\n placement=\"bottom\"\n [adaptivePosition]=\"false\"\n [container]=\"'body'\"\n [delay]=\"500\"\n >\n <input\n type=\"checkbox\"\n data-cy=\"c8y-alarms-widget--interval-toggle-button\"\n (click)=\"onToggleCountdownButtonState($event, WIDGET_TYPE_VALUES.ASSET_TABLE)\"\n />\n\n @if (isIntervalRefreshToggleOn) {\n <c8y-countdown-interval\n [countdownInterval]=\"refreshInterval\"\n (countdownEnded)=\"countdownEnded()\"\n ></c8y-countdown-interval>\n } @else {\n <i c8yIcon=\"pause\"></i>\n }\n </label>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule$1 }, { kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: i1.CountdownIntervalComponent, selector: "c8y-countdown-interval", inputs: ["countdownInterval", "config"], outputs: ["countdownEnded"] }, { kind: "ngmodule", type: AssetSelectorModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] }); }
1229
1229
  }
1230
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AssetTableAutoRefreshComponent, decorators: [{
1230
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: AssetTableAutoRefreshComponent, decorators: [{
1231
1231
  type: Component,
1232
1232
  args: [{ selector: 'c8y-asset-table-auto-refresh', standalone: true, imports: [
1233
1233
  CommonModule$1,
@@ -1430,10 +1430,10 @@ class AssetTableWidgetConfigComponent {
1430
1430
  showStatusIcon: [true]
1431
1431
  });
1432
1432
  }
1433
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AssetTableWidgetConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1434
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: AssetTableWidgetConfigComponent, isStandalone: true, selector: "c8y-asset-table-widget-config", providers: [ManagedObjectRealtimeService], viewQueries: [{ propertyName: "previewMapSet", first: true, predicate: ["assetTablePreview"], descendants: true }], ngImport: i0, template: "<form [formGroup]=\"formGroup\">\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Date' | translate }}</legend>\n <div class=\"row tight-grid\">\n <c8y-form-group class=\"m-b-16 form-group-sm\">\n <div class=\"d-flex gap-8 a-i-center\">\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n title=\"{{ 'Refresh options`options for refreshing a view`' | translate }}\"\n [(ngModel)]=\"refreshOption\"\n [ngModelOptions]=\"{ standalone: true }\"\n (change)=\"updateRefreshOption()\"\n >\n <option\n [title]=\"'Refreshing after the given interval' | translate\"\n value=\"interval\"\n >\n {{ 'Use refresh interval' | translate }}\n </option>\n <option\n [title]=\"'Refreshing after the given interval, synchronized globally' | translate\"\n value=\"global-interval\"\n >\n {{ 'Use global refresh interval' | translate }}\n </option>\n </select>\n </div>\n @if (formGroup?.controls?.refreshOption?.value !== GLOBAL_INTERVAL_OPTION) {\n <div\n class=\"c8y-select-wrapper grow flex-no-shrink\"\n title=\" {{ 'Interval' | translate }}\"\n >\n <select\n class=\"form-control text-12\"\n [title]=\"'Refresh interval in seconds' | translate\"\n id=\"refreshInterval\"\n formControlName=\"refreshInterval\"\n data-cy=\"c8y-alarm-list-widget-config--interval-selector\"\n >\n @for (refreshInterval of REFRESH_INTERVAL_IN_MILLISECONDS; track refreshInterval) {\n <option [value]=\"refreshInterval\">\n {{ '{{ seconds }}s' | translate: { seconds: refreshInterval / 1000 } }}\n </option>\n }\n </select>\n </div>\n }\n </div>\n </c8y-form-group>\n </div>\n </fieldset>\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Display options' | translate }}</legend>\n <div formGroupName=\"displayOptions\">\n <!-- Data options -->\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Data' | translate }}</legend>\n <c8y-form-group\n class=\"m-b-8 form-group-sm d-flex-md flex-wrap gap-16\"\n [formGroup]=\"formGroup\"\n >\n <!-- hierarchical data -->\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Show assets and all descendants' | translate\"\n >\n <input\n name=\"includeDescendants\"\n type=\"checkbox\"\n formControlName=\"includeDescendants\"\n />\n <span></span>\n <span translate>Include descendants</span>\n </label>\n <!-- Status icon -->\n <label\n class=\"c8y-checkbox m-t-0\"\n [title]=\"'Show status icon column' | translate\"\n >\n <input\n name=\"showStatusIcon\"\n type=\"checkbox\"\n formControlName=\"showStatusIcon\"\n />\n <span></span>\n <span translate>Show status icon column</span>\n </label>\n </c8y-form-group>\n </fieldset>\n <!-- Header options -->\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Header' | translate }}</legend>\n <c8y-form-group class=\"m-b-8 form-group-sm d-flex-md flex-wrap gap-16\">\n <!-- grid header -->\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Display the data grid header' | translate\"\n >\n <input\n name=\"gridHeader\"\n type=\"checkbox\"\n formControlName=\"gridHeader\"\n />\n <span></span>\n <span translate>Table header</span>\n </label>\n <!-- show filter label -->\n <label\n class=\"c8y-checkbox m-t-0\"\n [title]=\"'Display applied filters in the header' | translate\"\n >\n <input\n name=\"filter\"\n type=\"checkbox\"\n formControlName=\"filter\"\n />\n <span></span>\n <span translate>Active filters</span>\n </label>\n <!-- enable configurable columns -->\n <label\n class=\"c8y-checkbox m-t-0\"\n [title]=\"'Display columns configuration button' | translate\"\n >\n <input\n name=\"configurableColumnsEnabled\"\n type=\"checkbox\"\n formControlName=\"configurableColumnsEnabled\"\n />\n <span></span>\n <span translate>Configure columns</span>\n </label>\n </c8y-form-group>\n </fieldset>\n\n <!-- Row options -->\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Row' | translate }}</legend>\n <c8y-form-group class=\"m-b-8 d-flex-md gap-16 flex-wrap form-group-sm\">\n <!-- zebra stripes -->\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Alternate row background for readability' | translate\"\n >\n <input\n name=\"striped\"\n type=\"checkbox\"\n formControlName=\"striped\"\n />\n <span></span>\n <span translate>Striped rows</span>\n </label>\n <!-- hover effect -->\n <label\n class=\"c8y-checkbox m-t-0\"\n [title]=\"'Change row background color on hover' | translate\"\n >\n <input\n name=\"hover\"\n type=\"checkbox\"\n formControlName=\"hover\"\n />\n <span></span>\n <span translate>Hover highlight</span>\n </label>\n <!-- show loading indicator -->\n <label\n class=\"c8y-checkbox m-t-0\"\n [title]=\"'Show a spinner while data loads' | translate\"\n >\n <input\n name=\"showLoadingIndicator\"\n type=\"checkbox\"\n formControlName=\"showLoadingIndicator\"\n />\n <span></span>\n <span translate>Loading indicator</span>\n </label>\n </c8y-form-group>\n </fieldset>\n\n <!-- Cell options -->\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Cell' | translate }}</legend>\n <div class=\"d-flex-md gap-16 flex-wrap m-b-8\">\n <!-- cell borders (inside displayOptions) -->\n <c8y-form-group class=\"m-b-0 form-group-sm\">\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Draw borders around table cells' | translate\"\n >\n <input\n name=\"bordered\"\n type=\"checkbox\"\n formControlName=\"bordered\"\n />\n <span></span>\n <span translate>Cell borders</span>\n </label>\n </c8y-form-group>\n <!-- Cell content options (outside displayOptions formGroup, at root form level) -->\n <c8y-form-group\n class=\"m-b-0 form-group-sm d-flex-md flex-wrap gap-16\"\n [formGroup]=\"formGroup\"\n >\n <!-- show icon and value -->\n <label\n class=\"c8y-checkbox\"\n [title]=\"'When cell rendering is set to icon, show both icon and value' | translate\"\n >\n <input\n name=\"showIconAndValue\"\n type=\"checkbox\"\n formControlName=\"showIconAndValue\"\n />\n <span></span>\n <span translate>Icon with value</span>\n </label>\n <!-- show as link -->\n <label\n class=\"c8y-checkbox m-t-0\"\n [title]=\"\n 'Render the first column (excluding computed and alarm types) as a link to the asset details.'\n | translate\n \"\n >\n <input\n name=\"showAsLink\"\n type=\"checkbox\"\n formControlName=\"showAsLink\"\n />\n <span></span>\n <span translate>First column link</span>\n </label>\n </c8y-form-group>\n </div>\n </fieldset>\n </div>\n </fieldset>\n</form>\n\n<ng-template #assetTablePreview>\n @if (\n !formGroup ||\n columns?.length === 0 ||\n ((config.selectedProperties?.length === 0 || config.selectedProperties === null) &&\n (config.operationColumns?.length === 0 || config.operationColumns === null))\n ) {\n <c8y-ui-empty-state\n class=\"d-block m-t-24\"\n [icon]=\"'search'\"\n [title]=\"'No asset table' | translate\"\n [subtitle]=\"'Add property' | translate\"\n ></c8y-ui-empty-state>\n } @else {\n @if (!formGroup.controls.widgetInstanceGlobalTimeContext.value) {\n <c8y-asset-table-auto-refresh\n class=\"d-contents\"\n [isIntervalRefresh]=\"!!formGroup.controls.refreshInterval.value\"\n [refreshInterval]=\"formGroup.controls.refreshInterval.value\"\n [config]=\"formGroup.value\"\n [isRefreshDisabled]=\"false\"\n [isLoading]=\"isLoading$\"\n (onCountdownEnded)=\"updateSelectedAssets()\"\n ></c8y-asset-table-auto-refresh>\n }\n <c8y-data-grid\n class=\"content-fullpage d-flex d-col border-top border-bottom\"\n [title]=\"title\"\n [displayOptions]=\"formGroup.controls.displayOptions.value\"\n [columns]=\"columns\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [configureColumnsEnabled]=\"formGroup.get('displayOptions.configurableColumnsEnabled')?.value\"\n [refresh]=\"refresh\"\n >\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Refine your search terms or check your spelling.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </c8y-data-grid>\n }\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule$1 }, { kind: "ngmodule", type: CoreModule }, { kind: "component", type: i1.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: i1.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "loading", "columns", "rows", "pagination", "childNodePagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "treeGrid", "hideReload", "childNodesProperty", "parentNodeLabelProperty"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "directive", type: i2$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2$2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i1.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i2$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "ngmodule", type: AssetSelectorModule }, { kind: "component", type: AssetTableAutoRefreshComponent, selector: "c8y-asset-table-auto-refresh", inputs: ["config", "isIntervalRefresh", "refreshInterval", "isLoading", "isScrolling", "isRefreshDisabled"], outputs: ["onCountdownEnded"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] }); }
1433
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: AssetTableWidgetConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1434
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: AssetTableWidgetConfigComponent, isStandalone: true, selector: "c8y-asset-table-widget-config", providers: [ManagedObjectRealtimeService], viewQueries: [{ propertyName: "previewMapSet", first: true, predicate: ["assetTablePreview"], descendants: true }], ngImport: i0, template: "<form [formGroup]=\"formGroup\">\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Date' | translate }}</legend>\n <div class=\"row tight-grid\">\n <c8y-form-group class=\"m-b-16 form-group-sm\">\n <div class=\"d-flex gap-8 a-i-center\">\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n title=\"{{ 'Refresh options`options for refreshing a view`' | translate }}\"\n [(ngModel)]=\"refreshOption\"\n [ngModelOptions]=\"{ standalone: true }\"\n (change)=\"updateRefreshOption()\"\n >\n <option\n [title]=\"'Refreshing after the given interval' | translate\"\n value=\"interval\"\n >\n {{ 'Use refresh interval' | translate }}\n </option>\n <option\n [title]=\"'Refreshing after the given interval, synchronized globally' | translate\"\n value=\"global-interval\"\n >\n {{ 'Use global refresh interval' | translate }}\n </option>\n </select>\n </div>\n @if (formGroup?.controls?.refreshOption?.value !== GLOBAL_INTERVAL_OPTION) {\n <div\n class=\"c8y-select-wrapper grow flex-no-shrink\"\n title=\" {{ 'Interval' | translate }}\"\n >\n <select\n class=\"form-control text-12\"\n [title]=\"'Refresh interval in seconds' | translate\"\n id=\"refreshInterval\"\n formControlName=\"refreshInterval\"\n data-cy=\"c8y-alarm-list-widget-config--interval-selector\"\n >\n @for (refreshInterval of REFRESH_INTERVAL_IN_MILLISECONDS; track refreshInterval) {\n <option [value]=\"refreshInterval\">\n {{ '{{ seconds }}s' | translate: { seconds: refreshInterval / 1000 } }}\n </option>\n }\n </select>\n </div>\n }\n </div>\n </c8y-form-group>\n </div>\n </fieldset>\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Display options' | translate }}</legend>\n <div formGroupName=\"displayOptions\">\n <!-- Data options -->\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Data' | translate }}</legend>\n <c8y-form-group\n class=\"m-b-8 form-group-sm d-flex-md flex-wrap gap-16\"\n [formGroup]=\"formGroup\"\n >\n <!-- hierarchical data -->\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Show assets and all descendants' | translate\"\n >\n <input\n name=\"includeDescendants\"\n type=\"checkbox\"\n formControlName=\"includeDescendants\"\n />\n <span></span>\n <span translate>Include descendants</span>\n </label>\n <!-- Status icon -->\n <label\n class=\"c8y-checkbox m-t-0\"\n [title]=\"'Show status icon column' | translate\"\n >\n <input\n name=\"showStatusIcon\"\n type=\"checkbox\"\n formControlName=\"showStatusIcon\"\n />\n <span></span>\n <span translate>Show status icon column</span>\n </label>\n </c8y-form-group>\n </fieldset>\n <!-- Header options -->\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Header' | translate }}</legend>\n <c8y-form-group class=\"m-b-8 form-group-sm d-flex-md flex-wrap gap-16\">\n <!-- grid header -->\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Display the data grid header' | translate\"\n >\n <input\n name=\"gridHeader\"\n type=\"checkbox\"\n formControlName=\"gridHeader\"\n />\n <span></span>\n <span translate>Table header</span>\n </label>\n <!-- show filter label -->\n <label\n class=\"c8y-checkbox m-t-0\"\n [title]=\"'Display applied filters in the header' | translate\"\n >\n <input\n name=\"filter\"\n type=\"checkbox\"\n formControlName=\"filter\"\n />\n <span></span>\n <span translate>Active filters</span>\n </label>\n <!-- enable configurable columns -->\n <label\n class=\"c8y-checkbox m-t-0\"\n [title]=\"'Display columns configuration button' | translate\"\n >\n <input\n name=\"configurableColumnsEnabled\"\n type=\"checkbox\"\n formControlName=\"configurableColumnsEnabled\"\n />\n <span></span>\n <span translate>Configure columns</span>\n </label>\n </c8y-form-group>\n </fieldset>\n\n <!-- Row options -->\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Row' | translate }}</legend>\n <c8y-form-group class=\"m-b-8 d-flex-md gap-16 flex-wrap form-group-sm\">\n <!-- zebra stripes -->\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Alternate row background for readability' | translate\"\n >\n <input\n name=\"striped\"\n type=\"checkbox\"\n formControlName=\"striped\"\n />\n <span></span>\n <span translate>Striped rows</span>\n </label>\n <!-- hover effect -->\n <label\n class=\"c8y-checkbox m-t-0\"\n [title]=\"'Change row background color on hover' | translate\"\n >\n <input\n name=\"hover\"\n type=\"checkbox\"\n formControlName=\"hover\"\n />\n <span></span>\n <span translate>Hover highlight</span>\n </label>\n <!-- show loading indicator -->\n <label\n class=\"c8y-checkbox m-t-0\"\n [title]=\"'Show a spinner while data loads' | translate\"\n >\n <input\n name=\"showLoadingIndicator\"\n type=\"checkbox\"\n formControlName=\"showLoadingIndicator\"\n />\n <span></span>\n <span translate>Loading indicator</span>\n </label>\n </c8y-form-group>\n </fieldset>\n\n <!-- Cell options -->\n <fieldset class=\"c8y-fieldset\">\n <legend>{{ 'Cell' | translate }}</legend>\n <div class=\"d-flex-md gap-16 flex-wrap m-b-8\">\n <!-- cell borders (inside displayOptions) -->\n <c8y-form-group class=\"m-b-0 form-group-sm\">\n <label\n class=\"c8y-checkbox\"\n [title]=\"'Draw borders around table cells' | translate\"\n >\n <input\n name=\"bordered\"\n type=\"checkbox\"\n formControlName=\"bordered\"\n />\n <span></span>\n <span translate>Cell borders</span>\n </label>\n </c8y-form-group>\n <!-- Cell content options (outside displayOptions formGroup, at root form level) -->\n <c8y-form-group\n class=\"m-b-0 form-group-sm d-flex-md flex-wrap gap-16\"\n [formGroup]=\"formGroup\"\n >\n <!-- show icon and value -->\n <label\n class=\"c8y-checkbox\"\n [title]=\"'When cell rendering is set to icon, show both icon and value' | translate\"\n >\n <input\n name=\"showIconAndValue\"\n type=\"checkbox\"\n formControlName=\"showIconAndValue\"\n />\n <span></span>\n <span translate>Icon with value</span>\n </label>\n <!-- show as link -->\n <label\n class=\"c8y-checkbox m-t-0\"\n [title]=\"\n 'Render the first column (excluding computed and alarm types) as a link to the asset details.'\n | translate\n \"\n >\n <input\n name=\"showAsLink\"\n type=\"checkbox\"\n formControlName=\"showAsLink\"\n />\n <span></span>\n <span translate>First column link</span>\n </label>\n </c8y-form-group>\n </div>\n </fieldset>\n </div>\n </fieldset>\n</form>\n\n<ng-template #assetTablePreview>\n @if (\n !formGroup ||\n columns?.length === 0 ||\n ((config.selectedProperties?.length === 0 || config.selectedProperties === null) &&\n (config.operationColumns?.length === 0 || config.operationColumns === null))\n ) {\n <c8y-ui-empty-state\n class=\"d-block m-t-24\"\n [icon]=\"'search'\"\n [title]=\"'No asset table' | translate\"\n [subtitle]=\"'Add property' | translate\"\n ></c8y-ui-empty-state>\n } @else {\n @if (!formGroup.controls.widgetInstanceGlobalTimeContext.value) {\n <c8y-asset-table-auto-refresh\n class=\"d-contents\"\n [isIntervalRefresh]=\"!!formGroup.controls.refreshInterval.value\"\n [refreshInterval]=\"formGroup.controls.refreshInterval.value\"\n [config]=\"formGroup.value\"\n [isRefreshDisabled]=\"false\"\n [isLoading]=\"isLoading$\"\n (onCountdownEnded)=\"updateSelectedAssets()\"\n ></c8y-asset-table-auto-refresh>\n }\n <c8y-data-grid\n class=\"content-fullpage d-flex d-col border-top border-bottom\"\n [title]=\"title\"\n [displayOptions]=\"formGroup.controls.displayOptions.value\"\n [columns]=\"columns\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [configureColumnsEnabled]=\"formGroup.get('displayOptions.configurableColumnsEnabled')?.value\"\n [refresh]=\"refresh\"\n >\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Refine your search terms or check your spelling.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </c8y-data-grid>\n }\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule$1 }, { kind: "ngmodule", type: CoreModule }, { kind: "component", type: i1.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: i1.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "loading", "columns", "rows", "pagination", "childNodePagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "treeGrid", "hideReload", "childNodesProperty", "parentNodeLabelProperty"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "directive", type: i2$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2$2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i1.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i2$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "ngmodule", type: AssetSelectorModule }, { kind: "component", type: AssetTableAutoRefreshComponent, selector: "c8y-asset-table-auto-refresh", inputs: ["config", "isIntervalRefresh", "refreshInterval", "isLoading", "isScrolling", "isRefreshDisabled"], outputs: ["onCountdownEnded"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] }); }
1435
1435
  }
1436
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AssetTableWidgetConfigComponent, decorators: [{
1436
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: AssetTableWidgetConfigComponent, decorators: [{
1437
1437
  type: Component,
1438
1438
  args: [{ selector: 'c8y-asset-table-widget-config', standalone: true, imports: [
1439
1439
  CommonModule$1,
@@ -1515,10 +1515,10 @@ class AssetTableWidgetViewComponent {
1515
1515
  .pipe(skip(1), globalAutoRefreshLoading(this.widgetGlobalAutoRefresh), takeUntil(this.destroy$))
1516
1516
  .subscribe();
1517
1517
  }
1518
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AssetTableWidgetViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1519
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: AssetTableWidgetViewComponent, isStandalone: true, selector: "c8y-asset-table-widget-view", inputs: { config: "config" }, ngImport: i0, template: "@if (!config.widgetInstanceGlobalTimeContext) {\n <c8y-asset-table-auto-refresh\n class=\"d-contents\"\n [isIntervalRefresh]=\"!!config.refreshInterval\"\n [refreshInterval]=\"config.refreshInterval\"\n [config]=\"config\"\n [isRefreshDisabled]=\"false\"\n [isLoading]=\"isLoading$\"\n (onCountdownEnded)=\"updateSelectedAssets()\"\n ></c8y-asset-table-auto-refresh>\n}\n<c8y-data-grid\n class=\"content-fullpage d-flex d-col border-top border-bottom\"\n [title]=\"config.title\"\n [displayOptions]=\"config.displayOptions\"\n [columns]=\"columns\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [pagination]=\"pagination\"\n (onPageSizeChange)=\"pagination = $event.pagination\"\n [refresh]=\"refresh\"\n>\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Refine your search terms or check your spelling.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n</c8y-data-grid>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "component", type: i1.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "component", type: i1.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "loading", "columns", "rows", "pagination", "childNodePagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "treeGrid", "hideReload", "childNodesProperty", "parentNodeLabelProperty"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "ngmodule", type: RouterModule }, { kind: "component", type: AssetTableAutoRefreshComponent, selector: "c8y-asset-table-auto-refresh", inputs: ["config", "isIntervalRefresh", "refreshInterval", "isLoading", "isScrolling", "isRefreshDisabled"], outputs: ["onCountdownEnded"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] }); }
1518
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: AssetTableWidgetViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1519
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: AssetTableWidgetViewComponent, isStandalone: true, selector: "c8y-asset-table-widget-view", inputs: { config: "config" }, ngImport: i0, template: "@if (!config.widgetInstanceGlobalTimeContext) {\n <c8y-asset-table-auto-refresh\n class=\"d-contents\"\n [isIntervalRefresh]=\"!!config.refreshInterval\"\n [refreshInterval]=\"config.refreshInterval\"\n [config]=\"config\"\n [isRefreshDisabled]=\"false\"\n [isLoading]=\"isLoading$\"\n (onCountdownEnded)=\"updateSelectedAssets()\"\n ></c8y-asset-table-auto-refresh>\n}\n<c8y-data-grid\n class=\"content-fullpage d-flex d-col border-top border-bottom\"\n [title]=\"config.title\"\n [displayOptions]=\"config.displayOptions\"\n [columns]=\"columns\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [pagination]=\"pagination\"\n (onPageSizeChange)=\"pagination = $event.pagination\"\n [refresh]=\"refresh\"\n>\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Refine your search terms or check your spelling.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n</c8y-data-grid>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "component", type: i1.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "component", type: i1.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "loading", "columns", "rows", "pagination", "childNodePagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "treeGrid", "hideReload", "childNodesProperty", "parentNodeLabelProperty"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "ngmodule", type: RouterModule }, { kind: "component", type: AssetTableAutoRefreshComponent, selector: "c8y-asset-table-auto-refresh", inputs: ["config", "isIntervalRefresh", "refreshInterval", "isLoading", "isScrolling", "isRefreshDisabled"], outputs: ["onCountdownEnded"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] }); }
1520
1520
  }
1521
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AssetTableWidgetViewComponent, decorators: [{
1521
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: AssetTableWidgetViewComponent, decorators: [{
1522
1522
  type: Component,
1523
1523
  args: [{ selector: 'c8y-asset-table-widget-view', standalone: true, imports: [CoreModule, RouterModule, AssetTableAutoRefreshComponent], template: "@if (!config.widgetInstanceGlobalTimeContext) {\n <c8y-asset-table-auto-refresh\n class=\"d-contents\"\n [isIntervalRefresh]=\"!!config.refreshInterval\"\n [refreshInterval]=\"config.refreshInterval\"\n [config]=\"config\"\n [isRefreshDisabled]=\"false\"\n [isLoading]=\"isLoading$\"\n (onCountdownEnded)=\"updateSelectedAssets()\"\n ></c8y-asset-table-auto-refresh>\n}\n<c8y-data-grid\n class=\"content-fullpage d-flex d-col border-top border-bottom\"\n [title]=\"config.title\"\n [displayOptions]=\"config.displayOptions\"\n [columns]=\"columns\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [pagination]=\"pagination\"\n (onPageSizeChange)=\"pagination = $event.pagination\"\n [refresh]=\"refresh\"\n>\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Refine your search terms or check your spelling.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n</c8y-data-grid>\n" }]
1524
1524
  }], ctorParameters: () => [], propDecorators: { config: [{
@@ -1589,10 +1589,10 @@ class IconRenderTypeModalComponent {
1589
1589
  color: [config?.color || '#212121', [Validators.required]]
1590
1590
  });
1591
1591
  }
1592
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: IconRenderTypeModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1593
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: IconRenderTypeModalComponent, isStandalone: true, selector: "c8y-icon-render-type-modal", ngImport: i0, template: "<c8y-modal\n title=\"{{ 'Configure icon conditions' | translate }}\"\n (onClose)=\"onClose($event)\"\n (onDismiss)=\"onDismiss($event)\"\n [labels]=\"labels\"\n [disabled]=\"isAnyFormInvalid()\"\n [headerClasses]=\"'dialog-header'\"\n>\n <ng-container c8y-modal-title>\n <span c8yIcon=\"c8y-circle-star\"></span>\n </ng-container>\n <form class=\"p-24 p-t-0\">\n @for (form of forms; track form; let i = $index) {\n <fieldset\n class=\"c8y-fieldset\"\n [formGroup]=\"form\"\n >\n <legend>\n {{ 'If condition' | translate }}\n @if (forms.length > 1) {\n <button\n class=\"btn-dot btn-dot--danger\"\n title=\"{{ 'Remove condition' | translate }}\"\n type=\"button\"\n (click)=\"removeCondition(i)\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n }\n </legend>\n <!-- Data type selection -->\n <div class=\"row tight-grid\">\n <div class=\"col-md-4 col-12\">\n <label\n for=\"dataType-{{ i }}\"\n translate\n >\n Data type\n </label>\n <c8y-select\n aria-label=\"{{ 'Data type select' | translate }}\"\n id=\"dataType-{{ i }}\"\n [items]=\"dataTypes\"\n [placeholder]=\"'Select data type\u2026' | translate\"\n formControlName=\"dataType\"\n ></c8y-select>\n </div>\n\n <!-- Comparison dropdown -->\n <div class=\"col-md-4 col-12\">\n <label\n for=\"comparison-{{ i }}\"\n translate\n >\n Comparison\n </label>\n <c8y-select\n aria-label=\"{{ 'Comparison select' | translate }}\"\n id=\"comparison-{{ i }}\"\n [items]=\"comparisonOptions[form.get('dataType')?.value?.value] || []\"\n formControlName=\"comparison\"\n [placeholder]=\"'Select comparison type\u2026' | translate\"\n labelProp=\"label\"\n valueProp=\"value\"\n ></c8y-select>\n </div>\n <!-- Value input based on type -->\n <div class=\"col-md-4 col-12\">\n <label\n for=\"value-{{ i }}\"\n translate\n >\n Value\n </label>\n @switch (form.get('dataType')?.value?.value) {\n @case ('number') {\n <input\n class=\"form-control\"\n id=\"value-{{ i }}\"\n type=\"number\"\n formControlName=\"value\"\n />\n }\n @case ('date') {\n <c8y-date-time-picker\n aria-label=\"{{ 'Date and time picker' | translate }}\"\n placeholder=\"{{ 'Select date\u2026' | translate }}\"\n formControlName=\"value\"\n size=\"sm\"\n (onDateSelected)=\"onDateSelected($event, i)\"\n ></c8y-date-time-picker>\n }\n @case ('string') {\n <input\n class=\"form-control\"\n id=\"value-{{ i }}\"\n type=\"text\"\n formControlName=\"value\"\n />\n }\n @case ('boolean') {\n <c8y-select\n aria-label=\"{{ 'Boolean select' | translate }}\"\n [items]=\"booleanOptions\"\n [placeholder]=\"'Select value\u2026' | translate\"\n formControlName=\"value\"\n labelProp=\"label\"\n valueProp=\"value\"\n ></c8y-select>\n }\n }\n </div>\n </div>\n <div class=\"d-flex gap-16 m-t-8 m-b-8\">\n <!-- Icon field -->\n <div class=\"d-flex a-i-center\">\n <label\n class=\"m-b-0 m-r-4\"\n for=\"icon-{{ i }}\"\n translate\n >\n Icon\n </label>\n <c8y-icon-selector-wrapper\n [selectedIcon]=\"form.get('icon')?.value || 'c8y-cockpit'\"\n [iconSize]=\"24\"\n (onSelect)=\"iconSelectionChange($event, i)\"\n ></c8y-icon-selector-wrapper>\n </div>\n\n <!-- Color field -->\n <div class=\"d-flex a-i-center m-l-8\">\n <label\n class=\"m-b-0 m-r-4 text-nowrap\"\n for=\"color-{{ i }}\"\n translate\n >\n Icon color\n </label>\n <input\n class=\"form-control\"\n style=\"width: 100%; min-width: 40px\"\n id=\"color-{{ i }}\"\n type=\"color\"\n formControlName=\"color\"\n />\n </div>\n </div>\n </fieldset>\n }\n <button\n class=\"btn btn-default m-t-16\"\n title=\"{{ 'Add condition' | translate }}\"\n type=\"button\"\n (click)=\"addCondition()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add condition' | translate }}\n </button>\n </form>\n</c8y-modal>\n", dependencies: [{ kind: "ngmodule", type: ModalModule }, { kind: "component", type: i1.ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i1.SelectComponent, selector: "c8y-select", inputs: ["placeholder", "items", "selected", "container", "multi", "canSelectWithSpace", "disabled", "autoClose", "insideClick", "required", "canDeselect", "name", "icon", "filterItems"], outputs: ["onSelect", "onDeselect", "onIconClick"] }, { kind: "ngmodule", type: IconSelectorModule }, { kind: "component", type: i3$1.IconSelectorWrapperComponent, selector: "c8y-icon-selector-wrapper", inputs: ["canRemoveIcon", "selectedIcon", "iconSize"], outputs: ["onSelect"] }, { kind: "ngmodule", type: DateTimePickerModule }, { kind: "component", type: i1.DateTimePickerComponent, selector: "c8y-date-time-picker", inputs: ["minDate", "maxDate", "placeholder", "dateInputFormat", "adaptivePosition", "size", "dateType", "config"], outputs: ["onDateSelected"] }, { kind: "ngmodule", type: C8yTranslateModule }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] }); }
1592
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: IconRenderTypeModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1593
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: IconRenderTypeModalComponent, isStandalone: true, selector: "c8y-icon-render-type-modal", ngImport: i0, template: "<c8y-modal\n title=\"{{ 'Configure icon conditions' | translate }}\"\n (onClose)=\"onClose($event)\"\n (onDismiss)=\"onDismiss($event)\"\n [labels]=\"labels\"\n [disabled]=\"isAnyFormInvalid()\"\n [headerClasses]=\"'dialog-header'\"\n>\n <ng-container c8y-modal-title>\n <span c8yIcon=\"c8y-circle-star\"></span>\n </ng-container>\n <form class=\"p-24 p-t-0\">\n @for (form of forms; track form; let i = $index) {\n <fieldset\n class=\"c8y-fieldset\"\n [formGroup]=\"form\"\n >\n <legend>\n {{ 'If condition' | translate }}\n @if (forms.length > 1) {\n <button\n class=\"btn-dot btn-dot--danger\"\n title=\"{{ 'Remove condition' | translate }}\"\n type=\"button\"\n (click)=\"removeCondition(i)\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n }\n </legend>\n <!-- Data type selection -->\n <div class=\"row tight-grid\">\n <div class=\"col-md-4 col-12\">\n <label\n for=\"dataType-{{ i }}\"\n translate\n >\n Data type\n </label>\n <c8y-select\n aria-label=\"{{ 'Data type select' | translate }}\"\n id=\"dataType-{{ i }}\"\n [items]=\"dataTypes\"\n [placeholder]=\"'Select data type\u2026' | translate\"\n formControlName=\"dataType\"\n ></c8y-select>\n </div>\n\n <!-- Comparison dropdown -->\n <div class=\"col-md-4 col-12\">\n <label\n for=\"comparison-{{ i }}\"\n translate\n >\n Comparison\n </label>\n <c8y-select\n aria-label=\"{{ 'Comparison select' | translate }}\"\n id=\"comparison-{{ i }}\"\n [items]=\"comparisonOptions[form.get('dataType')?.value?.value] || []\"\n formControlName=\"comparison\"\n [placeholder]=\"'Select comparison type\u2026' | translate\"\n labelProp=\"label\"\n valueProp=\"value\"\n ></c8y-select>\n </div>\n <!-- Value input based on type -->\n <div class=\"col-md-4 col-12\">\n <label\n for=\"value-{{ i }}\"\n translate\n >\n Value\n </label>\n @switch (form.get('dataType')?.value?.value) {\n @case ('number') {\n <input\n class=\"form-control\"\n id=\"value-{{ i }}\"\n type=\"number\"\n formControlName=\"value\"\n />\n }\n @case ('date') {\n <c8y-date-time-picker\n aria-label=\"{{ 'Date and time picker' | translate }}\"\n placeholder=\"{{ 'Select date\u2026' | translate }}\"\n formControlName=\"value\"\n size=\"sm\"\n (onDateSelected)=\"onDateSelected($event, i)\"\n ></c8y-date-time-picker>\n }\n @case ('string') {\n <input\n class=\"form-control\"\n id=\"value-{{ i }}\"\n type=\"text\"\n formControlName=\"value\"\n />\n }\n @case ('boolean') {\n <c8y-select\n aria-label=\"{{ 'Boolean select' | translate }}\"\n [items]=\"booleanOptions\"\n [placeholder]=\"'Select value\u2026' | translate\"\n formControlName=\"value\"\n labelProp=\"label\"\n valueProp=\"value\"\n ></c8y-select>\n }\n }\n </div>\n </div>\n <div class=\"d-flex gap-16 m-t-8 m-b-8\">\n <!-- Icon field -->\n <div class=\"d-flex a-i-center\">\n <label\n class=\"m-b-0 m-r-4\"\n for=\"icon-{{ i }}\"\n translate\n >\n Icon\n </label>\n <c8y-icon-selector-wrapper\n [selectedIcon]=\"form.get('icon')?.value || 'c8y-cockpit'\"\n [iconSize]=\"24\"\n (onSelect)=\"iconSelectionChange($event, i)\"\n ></c8y-icon-selector-wrapper>\n </div>\n\n <!-- Color field -->\n <div class=\"d-flex a-i-center m-l-8\">\n <label\n class=\"m-b-0 m-r-4 text-nowrap\"\n for=\"color-{{ i }}\"\n translate\n >\n Icon color\n </label>\n <input\n class=\"form-control\"\n style=\"width: 100%; min-width: 40px\"\n id=\"color-{{ i }}\"\n type=\"color\"\n formControlName=\"color\"\n />\n </div>\n </div>\n </fieldset>\n }\n <button\n class=\"btn btn-default m-t-16\"\n title=\"{{ 'Add condition' | translate }}\"\n type=\"button\"\n (click)=\"addCondition()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add condition' | translate }}\n </button>\n </form>\n</c8y-modal>\n", dependencies: [{ kind: "ngmodule", type: ModalModule }, { kind: "component", type: i1.ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i1.SelectComponent, selector: "c8y-select", inputs: ["placeholder", "items", "selected", "container", "multi", "canSelectWithSpace", "disabled", "autoClose", "insideClick", "required", "canDeselect", "name", "icon", "filterItems"], outputs: ["onSelect", "onDeselect", "onIconClick"] }, { kind: "ngmodule", type: IconSelectorModule }, { kind: "component", type: i3$1.IconSelectorWrapperComponent, selector: "c8y-icon-selector-wrapper", inputs: ["canRemoveIcon", "selectedIcon", "iconSize"], outputs: ["onSelect"] }, { kind: "ngmodule", type: DateTimePickerModule }, { kind: "component", type: i1.DateTimePickerComponent, selector: "c8y-date-time-picker", inputs: ["minDate", "maxDate", "placeholder", "dateInputFormat", "adaptivePosition", "size", "dateType", "config"], outputs: ["onDateSelected"] }, { kind: "ngmodule", type: C8yTranslateModule }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] }); }
1594
1594
  }
1595
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: IconRenderTypeModalComponent, decorators: [{
1595
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: IconRenderTypeModalComponent, decorators: [{
1596
1596
  type: Component,
1597
1597
  args: [{ selector: 'c8y-icon-render-type-modal', standalone: true, imports: [
1598
1598
  ModalModule,
@@ -1657,10 +1657,10 @@ class OperationRenderTypeModalComponent {
1657
1657
  onDismiss(_) {
1658
1658
  this._cancel();
1659
1659
  }
1660
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: OperationRenderTypeModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1661
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: OperationRenderTypeModalComponent, isStandalone: true, selector: "c8y-operation-render-type-modal", ngImport: i0, template: "<c8y-modal\n [title]=\"modalTitle\"\n (onClose)=\"onClose($event)\"\n (onDismiss)=\"onDismiss($event)\"\n [labels]=\"labels\"\n [disabled]=\"form?.invalid\"\n [headerClasses]=\"'dialog-header'\"\n>\n <ng-container c8y-modal-title>\n <span [c8yIcon]=\"'cog'\"></span>\n </ng-container>\n <form\n class=\"p-24\"\n [formGroup]=\"form\"\n >\n <c8y-form-group>\n <label\n for=\"buttonLabel\"\n translate\n >\n Button label\n </label>\n <input\n class=\"form-control\"\n id=\"buttonLabel\"\n placeholder=\"{{ 'e.g. Execute operation' | translate }}\"\n type=\"text\"\n formControlName=\"buttonLabel\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n\n @if (!showButtonLabelOnly) {\n <div class=\"form-group\">\n <label\n for=\"operation\"\n translate\n >\n Operation\n </label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n id=\"operation\"\n formControlName=\"operation\"\n >\n @for (op of operationList; track op) {\n <option [ngValue]=\"op.value\">\n {{ op.label | translate }}\n </option>\n }\n </select>\n </div>\n </div>\n <div class=\"form-group\">\n <label\n for=\"command\"\n translate\n >\n Command\n </label>\n <textarea\n class=\"form-control no-resize inner-scroll\"\n style=\"max-height: 300px\"\n id=\"command\"\n c8y-textarea-autoresize\n formControlName=\"command\"\n maxlength=\"900\"\n ></textarea>\n </div>\n }\n </form>\n</c8y-modal>\n", dependencies: [{ kind: "ngmodule", type: ModalModule }, { kind: "component", type: i1.ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: C8yTranslateModule }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.TextareaAutoresizeDirective, selector: "[c8y-textarea-autoresize]" }, { kind: "ngmodule", type: CoreModule }, { kind: "component", type: i1.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: i1.MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage"] }, { kind: "directive", type: i1.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] }); }
1660
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: OperationRenderTypeModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1661
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: OperationRenderTypeModalComponent, isStandalone: true, selector: "c8y-operation-render-type-modal", ngImport: i0, template: "<c8y-modal\n [title]=\"modalTitle\"\n (onClose)=\"onClose($event)\"\n (onDismiss)=\"onDismiss($event)\"\n [labels]=\"labels\"\n [disabled]=\"form?.invalid\"\n [headerClasses]=\"'dialog-header'\"\n>\n <ng-container c8y-modal-title>\n <span [c8yIcon]=\"'cog'\"></span>\n </ng-container>\n <form\n class=\"p-24\"\n [formGroup]=\"form\"\n >\n <c8y-form-group>\n <label\n for=\"buttonLabel\"\n translate\n >\n Button label\n </label>\n <input\n class=\"form-control\"\n id=\"buttonLabel\"\n placeholder=\"{{ 'e.g. Execute operation' | translate }}\"\n type=\"text\"\n formControlName=\"buttonLabel\"\n />\n <c8y-messages></c8y-messages>\n </c8y-form-group>\n\n @if (!showButtonLabelOnly) {\n <div class=\"form-group\">\n <label\n for=\"operation\"\n translate\n >\n Operation\n </label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n id=\"operation\"\n formControlName=\"operation\"\n >\n @for (op of operationList; track op) {\n <option [ngValue]=\"op.value\">\n {{ op.label | translate }}\n </option>\n }\n </select>\n </div>\n </div>\n <div class=\"form-group\">\n <label\n for=\"command\"\n translate\n >\n Command\n </label>\n <textarea\n class=\"form-control no-resize inner-scroll\"\n style=\"max-height: 300px\"\n id=\"command\"\n c8y-textarea-autoresize\n formControlName=\"command\"\n maxlength=\"900\"\n ></textarea>\n </div>\n }\n </form>\n</c8y-modal>\n", dependencies: [{ kind: "ngmodule", type: ModalModule }, { kind: "component", type: i1.ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: C8yTranslateModule }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.TextareaAutoresizeDirective, selector: "[c8y-textarea-autoresize]" }, { kind: "ngmodule", type: CoreModule }, { kind: "component", type: i1.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: i1.MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage"] }, { kind: "directive", type: i1.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] }); }
1662
1662
  }
1663
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: OperationRenderTypeModalComponent, decorators: [{
1663
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: OperationRenderTypeModalComponent, decorators: [{
1664
1664
  type: Component,
1665
1665
  args: [{ selector: 'c8y-operation-render-type-modal', standalone: true, imports: [
1666
1666
  ModalModule,
@@ -1884,10 +1884,10 @@ class AssetTableGridSettingsComponent {
1884
1884
  getColumns(config) {
1885
1885
  return this.assetTableService.getColumns(this.selectedProperties, this.operationColumns, config);
1886
1886
  }
1887
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AssetTableGridSettingsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1888
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: AssetTableGridSettingsComponent, isStandalone: true, selector: "c8y-asset-table-column-settings", host: { classAttribute: "bg-level-1" }, providers: [BsDropdownDirective], ngImport: i0, template: "<c8y-list-group\n class=\"inner-scroll bg-inherit d-block no-border-last separator-top\"\n style=\"max-height: 300px\"\n role=\"list\"\n cdkDropList\n (cdkDropListDropped)=\"onColumnDrop($event)\"\n>\n @for (column of columns; track trackByColumnName($index, column)) {\n @if (!column.positionFixed) {\n <c8y-li\n role=\"listitem\"\n cdkDrag\n cdkDragLockAxis=\"y\"\n >\n <c8y-li-drag-handle\n title=\"{{ 'Drag to reorder' | translate }}\"\n [attr.aria-label]=\"'Drag to reorder' | translate\"\n cdkDragHandle\n >\n <i\n c8yIcon=\"drag-reorder\"\n style=\"font-size: 0.7em\"\n ></i>\n </c8y-li-drag-handle>\n @if (column.__origin !== 'status') {\n <c8y-li-checkbox\n class=\"a-s-stretch\"\n title=\"{{ (column.header | translate) || column.name }} {{\n column.custom ? (customLabel | translate) : ''\n }}\"\n [attr.aria-label]=\"'Show/hide column' | translate\"\n [(ngModel)]=\"column.visible\"\n (ngModelChange)=\"toggleColumnVisibility(column)\"\n c8yProductExperience\n [attr.data-cy]=\"'data-grid--custom-column-header-' + column.header\"\n ></c8y-li-checkbox>\n } @else {\n <c8y-li-checkbox class=\"a-s-stretch no-pointer invisible\"></c8y-li-checkbox>\n }\n <div class=\"content-flex-32 p-t-4 p-b-4\">\n <div class=\"col-6\">\n @if (column.__origin !== 'status') {\n <label class=\"editable\">\n <input\n class=\"form-control input-sm\"\n [attr.aria-label]=\"'Column header' | translate\"\n placeholder=\"{{ 'Column header' | translate }}\"\n type=\"text\"\n autocomplete=\"off\"\n required\n [(ngModel)]=\"column.header\"\n (keydown.enter)=\"updateColumnNames(column); $event.target.blur()\"\n (blur)=\"updateColumnNames(column)\"\n />\n </label>\n } @else {\n <p class=\"text-12 p-t-4 p-b-4\">{{ column.header | translate }}</p>\n }\n </div>\n <div class=\"col-6\">\n <div class=\"d-flex a-i-center gap-8 p-t-4 p-b-4\">\n <!-- Filters button -->\n @if (column.filteringConfig) {\n <div class=\"d-flex a-i-center gap-4 flex-no-shrink\">\n <div\n class=\"dropdown d-flex\"\n container=\"body\"\n dropdown\n [insideClick]=\"true\"\n c8yDropdownFocusTrap\n #gridHeaderDropdown=\"bs-dropdown\"\n >\n <button\n class=\"dropdown-toggle btn btn-icon btn-default btn-xs c8y-dropdown\"\n [attr.aria-label]=\"'Filter' | translate\"\n tooltip=\"{{ 'Filter' | translate }}\"\n placement=\"top\"\n container=\"body\"\n [attr.aria-haspopup]=\"true\"\n [attr.aria-expanded]=\"gridHeaderDropdown.isOpen\"\n type=\"button\"\n [delay]=\"500\"\n [ngClass]=\"{ active: isColumnFiltered(column) }\"\n dropdownToggle\n >\n <i c8yIcon=\"filter\"></i>\n </button>\n <div\n class=\"dropdown-menu\"\n (click)=\"$event.stopPropagation()\"\n *dropdownMenu\n >\n <formly-form\n class=\"p-16 d-block\"\n style=\"min-width: 250px\"\n [form]=\"column.filteringConfig.formGroup\"\n [fields]=\"column.filteringConfig.fields\"\n [model]=\"column.filteringConfig.model\"\n ></formly-form>\n <div class=\"p-16 fit-w d-flex separator-top\">\n <button\n class=\"btn btn-default btn-sm m-r-8 grow\"\n title=\"{{ 'Reset' | translate }}\"\n (click)=\"resetFilter(column, gridHeaderDropdown)\"\n translate\n >\n Reset\n </button>\n <button\n class=\"btn btn-primary btn-sm grow\"\n title=\"{{ 'Apply' | translate }}\"\n (click)=\"applyFilter(column, gridHeaderDropdown)\"\n translate\n >\n Apply\n </button>\n </div>\n </div>\n </div>\n </div>\n }\n <!-- Sort button -->\n <div class=\"d-flex a-i-center gap-4 flex-no-shrink\">\n <button\n class=\"btn btn-icon btn-default btn-xs\"\n [attr.aria-label]=\"'Sort order' | translate\"\n tooltip=\"{{ 'Sort order' | translate }}\"\n placement=\"top\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"changeSortOrder(column)\"\n >\n @if (column.sortOrder === 'asc') {\n <i c8yIcon=\"long-arrow-up\"></i>\n } @else if (column.sortOrder === 'desc') {\n <i c8yIcon=\"long-arrow-down\"></i>\n } @else {\n <i\n c8yIcon=\"exchange\"\n style=\"transform: rotate(90deg)\"\n ></i>\n }\n </button>\n </div>\n <!-- Column type dropdown -->\n @if (!column.isOperation && column.__origin !== 'status') {\n <div\n class=\"d-flex a-i-center gap-4 flex-no-shrink\"\n [ngClass]=\"{ 'no-pointer invisible': column.__origin === 'status' }\"\n >\n <div\n class=\"dropdown d-flex\"\n container=\"body\"\n dropdown\n c8yDropdownFocusTrap\n #columnTypeDropdown=\"bs-dropdown\"\n >\n <button\n class=\"btn btn-default btn-xs dropdown-toggle c8y-dropdown\"\n [attr.aria-label]=\"'Select render type' | translate\"\n tooltip=\"{{ 'Render type' | translate }}\"\n placement=\"top\"\n container=\"body\"\n [attr.aria-haspopup]=\"true\"\n [attr.aria-expanded]=\"columnTypeDropdown.isOpen\"\n type=\"button\"\n [delay]=\"500\"\n dropdownToggle\n >\n {{ column.type | translate | humanize }}\n <i c8yIcon=\"caret-down\"></i>\n </button>\n <div\n class=\"dropdown-menu\"\n *dropdownMenu\n >\n <c8y-list-group role=\"list\">\n @if (column.type === 'computed' || column.computedConfig) {\n <c8y-li\n tabindex=\"0\"\n role=\"listitem\"\n (keydown.enter)=\"\n applyColumnType('computed', column); $event.preventDefault()\n \"\n (keydown.space)=\"\n applyColumnType('computed', column); $event.preventDefault()\n \"\n (click)=\"applyColumnType('computed', column)\"\n [active]=\"column.type === 'computed'\"\n >\n {{ 'Computed' | translate }}\n </c8y-li>\n <c8y-li\n tabindex=\"0\"\n role=\"listitem\"\n (click)=\"applyColumnType('icon', column)\"\n (keydown.enter)=\"\n applyColumnType('icon', column); $event.preventDefault()\n \"\n (keydown.space)=\"\n applyColumnType('icon', column); $event.preventDefault()\n \"\n [active]=\"column.type === 'icon'\"\n >\n {{ 'Icon' | translate }}\n </c8y-li>\n } @else {\n <c8y-li\n tabindex=\"0\"\n role=\"listitem\"\n (click)=\"applyColumnType('default', column)\"\n (keydown.enter)=\"\n applyColumnType('default', column); $event.preventDefault()\n \"\n (keydown.space)=\"\n applyColumnType('default', column); $event.preventDefault()\n \"\n [active]=\"column.type === 'default'\"\n >\n {{ 'Default' | translate }}\n </c8y-li>\n <c8y-li\n tabindex=\"0\"\n role=\"listitem\"\n (click)=\"applyColumnType('date', column)\"\n (keydown.enter)=\"\n applyColumnType('date', column); $event.preventDefault()\n \"\n (keydown.space)=\"\n applyColumnType('date', column); $event.preventDefault()\n \"\n [active]=\"column.type === 'date'\"\n >\n {{ 'Date' | translate }}\n </c8y-li>\n <c8y-li\n tabindex=\"0\"\n role=\"listitem\"\n (click)=\"applyColumnType('icon', column)\"\n [active]=\"column.type === 'icon'\"\n (keydown.enter)=\"\n applyColumnType('icon', column); $event.preventDefault()\n \"\n (keydown.space)=\"\n applyColumnType('icon', column); $event.preventDefault()\n \"\n >\n {{ 'Icon' | translate }}\n </c8y-li>\n }\n </c8y-list-group>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n @if (column.isOperation) {\n <ng-container>\n @if (true) {\n <c8y-li-action\n icon=\"edit1\"\n [attr.aria-label]=\"'Edit' | translate\"\n label=\"Edit\"\n (click)=\"editOperationColumn(column)\"\n ></c8y-li-action>\n }\n @if (true) {\n <c8y-li-action\n icon=\"delete\"\n [attr.aria-label]=\"'Delete' | translate\"\n label=\"Delete\"\n (click)=\"deleteColumn(column)\"\n ></c8y-li-action>\n }\n </ng-container>\n }\n </c8y-li>\n }\n }\n @if (columns.length === 0) {\n <c8y-ui-empty-state\n [icon]=\"'list'\"\n [title]=\"'No properties selected.' | translate\"\n [subtitle]=\"'Select from the list which columns to display.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n }\n</c8y-list-group>\n<div class=\"m-b-16 p-t-16 p-l-24 p-r-16 fit-w separator-top\">\n <div\n class=\"dropdown\"\n container=\"body\"\n dropdown\n [insideClick]=\"true\"\n c8yDropdownFocusTrap\n #customActionsDropdown=\"bs-dropdown\"\n >\n <button\n class=\"btn btn-default btn-sm dropdown-toggle c8y-dropdown\"\n [title]=\"'Add action' | translate\"\n [attr.aria-haspopup]=\"true\"\n [attr.aria-expanded]=\"customActionsDropdown.isOpen\"\n type=\"button\"\n dropdownToggle\n >\n <i c8yIcon=\"cog\"></i>\n <span>{{ 'Add action' | translate }}</span>\n <span class=\"caret\"></span>\n </button>\n <ul\n class=\"dropdown-menu\"\n *dropdownMenu\n >\n <li>\n <button\n class=\"dropdown-item\"\n type=\"button\"\n (click)=\"onCreateOperation()\"\n >\n {{ 'Create operation' | translate }}\n </button>\n </li>\n <li>\n <button\n class=\"dropdown-item\"\n type=\"button\"\n (click)=\"onToggleMaintenanceMode()\"\n [disabled]=\"hasMaintenanceColumn\"\n >\n {{ 'Toggle maintenance mode' | translate }}\n </button>\n </li>\n </ul>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "ngmodule", type: BsDropdownModule }, { kind: "directive", type: i3$2.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i3$2.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i3$2.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: DropdownFocusTrapDirective, selector: "[c8yDropdownFocusTrap]" }, { 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: "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: "ngmodule", type: FormlyModule }, { kind: "component", type: i4.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "ngmodule", type: ListGroupModule }, { kind: "component", type: i1.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i1.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i1.ListItemActionComponent, selector: "c8y-list-item-action, c8y-li-action", inputs: ["label", "icon", "disabled"], outputs: ["click"] }, { kind: "component", type: i1.ListItemCheckboxComponent, selector: "c8y-list-item-checkbox, c8y-li-checkbox", inputs: ["selected", "indeterminate", "disabled", "displayAsSwitch"], outputs: ["onSelect"] }, { kind: "component", type: i1.ListItemDragHandleComponent, selector: "c8y-list-item-drag-handle, c8y-li-drag-handle" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: HumanizePipe, name: "humanize" }] }); }
1887
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: AssetTableGridSettingsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1888
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: AssetTableGridSettingsComponent, isStandalone: true, selector: "c8y-asset-table-column-settings", host: { classAttribute: "bg-level-1" }, providers: [BsDropdownDirective], ngImport: i0, template: "<c8y-list-group\n class=\"inner-scroll bg-inherit d-block no-border-last separator-top\"\n style=\"max-height: 300px\"\n role=\"list\"\n cdkDropList\n (cdkDropListDropped)=\"onColumnDrop($event)\"\n>\n @for (column of columns; track trackByColumnName($index, column)) {\n @if (!column.positionFixed) {\n <c8y-li\n role=\"listitem\"\n cdkDrag\n cdkDragLockAxis=\"y\"\n >\n <c8y-li-drag-handle\n title=\"{{ 'Drag to reorder' | translate }}\"\n [attr.aria-label]=\"'Drag to reorder' | translate\"\n cdkDragHandle\n >\n <i\n c8yIcon=\"drag-reorder\"\n style=\"font-size: 0.7em\"\n ></i>\n </c8y-li-drag-handle>\n @if (column.__origin !== 'status') {\n <c8y-li-checkbox\n class=\"a-s-stretch\"\n title=\"{{ (column.header | translate) || column.name }} {{\n column.custom ? (customLabel | translate) : ''\n }}\"\n [attr.aria-label]=\"'Show/hide column' | translate\"\n [(ngModel)]=\"column.visible\"\n (ngModelChange)=\"toggleColumnVisibility(column)\"\n c8yProductExperience\n [attr.data-cy]=\"'data-grid--custom-column-header-' + column.header\"\n ></c8y-li-checkbox>\n } @else {\n <c8y-li-checkbox class=\"a-s-stretch no-pointer invisible\"></c8y-li-checkbox>\n }\n <div class=\"content-flex-32 p-t-4 p-b-4\">\n <div class=\"col-6\">\n @if (column.__origin !== 'status') {\n <label class=\"editable\">\n <input\n class=\"form-control input-sm\"\n [attr.aria-label]=\"'Column header' | translate\"\n placeholder=\"{{ 'Column header' | translate }}\"\n type=\"text\"\n autocomplete=\"off\"\n required\n [(ngModel)]=\"column.header\"\n (keydown.enter)=\"updateColumnNames(column); $event.target.blur()\"\n (blur)=\"updateColumnNames(column)\"\n />\n </label>\n } @else {\n <p class=\"text-12 p-t-4 p-b-4\">{{ column.header | translate }}</p>\n }\n </div>\n <div class=\"col-6\">\n <div class=\"d-flex a-i-center gap-8 p-t-4 p-b-4\">\n <!-- Filters button -->\n @if (column.filteringConfig) {\n <div class=\"d-flex a-i-center gap-4 flex-no-shrink\">\n <div\n class=\"dropdown d-flex\"\n container=\"body\"\n dropdown\n [insideClick]=\"true\"\n c8yDropdownFocusTrap\n #gridHeaderDropdown=\"bs-dropdown\"\n >\n <button\n class=\"dropdown-toggle btn btn-icon btn-default btn-xs c8y-dropdown\"\n [attr.aria-label]=\"'Filter' | translate\"\n tooltip=\"{{ 'Filter' | translate }}\"\n placement=\"top\"\n container=\"body\"\n [attr.aria-haspopup]=\"true\"\n [attr.aria-expanded]=\"gridHeaderDropdown.isOpen\"\n type=\"button\"\n [delay]=\"500\"\n [ngClass]=\"{ active: isColumnFiltered(column) }\"\n dropdownToggle\n >\n <i c8yIcon=\"filter\"></i>\n </button>\n <div\n class=\"dropdown-menu\"\n (click)=\"$event.stopPropagation()\"\n *dropdownMenu\n >\n <formly-form\n class=\"p-16 d-block\"\n style=\"min-width: 250px\"\n [form]=\"column.filteringConfig.formGroup\"\n [fields]=\"column.filteringConfig.fields\"\n [model]=\"column.filteringConfig.model\"\n ></formly-form>\n <div class=\"p-16 fit-w d-flex separator-top\">\n <button\n class=\"btn btn-default btn-sm m-r-8 grow\"\n title=\"{{ 'Reset' | translate }}\"\n (click)=\"resetFilter(column, gridHeaderDropdown)\"\n translate\n >\n Reset\n </button>\n <button\n class=\"btn btn-primary btn-sm grow\"\n title=\"{{ 'Apply' | translate }}\"\n (click)=\"applyFilter(column, gridHeaderDropdown)\"\n translate\n >\n Apply\n </button>\n </div>\n </div>\n </div>\n </div>\n }\n <!-- Sort button -->\n <div class=\"d-flex a-i-center gap-4 flex-no-shrink\">\n <button\n class=\"btn btn-icon btn-default btn-xs\"\n [attr.aria-label]=\"'Sort order' | translate\"\n tooltip=\"{{ 'Sort order' | translate }}\"\n placement=\"top\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"changeSortOrder(column)\"\n >\n @if (column.sortOrder === 'asc') {\n <i c8yIcon=\"long-arrow-up\"></i>\n } @else if (column.sortOrder === 'desc') {\n <i c8yIcon=\"long-arrow-down\"></i>\n } @else {\n <i\n c8yIcon=\"exchange\"\n style=\"transform: rotate(90deg)\"\n ></i>\n }\n </button>\n </div>\n <!-- Column type dropdown -->\n @if (!column.isOperation && column.__origin !== 'status') {\n <div\n class=\"d-flex a-i-center gap-4 flex-no-shrink\"\n [ngClass]=\"{ 'no-pointer invisible': column.__origin === 'status' }\"\n >\n <div\n class=\"dropdown d-flex\"\n container=\"body\"\n dropdown\n c8yDropdownFocusTrap\n #columnTypeDropdown=\"bs-dropdown\"\n >\n <button\n class=\"btn btn-default btn-xs dropdown-toggle c8y-dropdown\"\n [attr.aria-label]=\"'Select render type' | translate\"\n tooltip=\"{{ 'Render type' | translate }}\"\n placement=\"top\"\n container=\"body\"\n [attr.aria-haspopup]=\"true\"\n [attr.aria-expanded]=\"columnTypeDropdown.isOpen\"\n type=\"button\"\n [delay]=\"500\"\n dropdownToggle\n >\n {{ column.type | translate | humanize }}\n <i c8yIcon=\"caret-down\"></i>\n </button>\n <div\n class=\"dropdown-menu\"\n *dropdownMenu\n >\n <c8y-list-group role=\"list\">\n @if (column.type === 'computed' || column.computedConfig) {\n <c8y-li\n tabindex=\"0\"\n role=\"listitem\"\n (keydown.enter)=\"\n applyColumnType('computed', column); $event.preventDefault()\n \"\n (keydown.space)=\"\n applyColumnType('computed', column); $event.preventDefault()\n \"\n (click)=\"applyColumnType('computed', column)\"\n [active]=\"column.type === 'computed'\"\n >\n {{ 'Computed' | translate }}\n </c8y-li>\n <c8y-li\n tabindex=\"0\"\n role=\"listitem\"\n (click)=\"applyColumnType('icon', column)\"\n (keydown.enter)=\"\n applyColumnType('icon', column); $event.preventDefault()\n \"\n (keydown.space)=\"\n applyColumnType('icon', column); $event.preventDefault()\n \"\n [active]=\"column.type === 'icon'\"\n >\n {{ 'Icon' | translate }}\n </c8y-li>\n } @else {\n <c8y-li\n tabindex=\"0\"\n role=\"listitem\"\n (click)=\"applyColumnType('default', column)\"\n (keydown.enter)=\"\n applyColumnType('default', column); $event.preventDefault()\n \"\n (keydown.space)=\"\n applyColumnType('default', column); $event.preventDefault()\n \"\n [active]=\"column.type === 'default'\"\n >\n {{ 'Default' | translate }}\n </c8y-li>\n <c8y-li\n tabindex=\"0\"\n role=\"listitem\"\n (click)=\"applyColumnType('date', column)\"\n (keydown.enter)=\"\n applyColumnType('date', column); $event.preventDefault()\n \"\n (keydown.space)=\"\n applyColumnType('date', column); $event.preventDefault()\n \"\n [active]=\"column.type === 'date'\"\n >\n {{ 'Date' | translate }}\n </c8y-li>\n <c8y-li\n tabindex=\"0\"\n role=\"listitem\"\n (click)=\"applyColumnType('icon', column)\"\n [active]=\"column.type === 'icon'\"\n (keydown.enter)=\"\n applyColumnType('icon', column); $event.preventDefault()\n \"\n (keydown.space)=\"\n applyColumnType('icon', column); $event.preventDefault()\n \"\n >\n {{ 'Icon' | translate }}\n </c8y-li>\n }\n </c8y-list-group>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n @if (column.isOperation) {\n <ng-container>\n @if (true) {\n <c8y-li-action\n icon=\"edit1\"\n [attr.aria-label]=\"'Edit' | translate\"\n label=\"Edit\"\n (click)=\"editOperationColumn(column)\"\n ></c8y-li-action>\n }\n @if (true) {\n <c8y-li-action\n icon=\"delete\"\n [attr.aria-label]=\"'Delete' | translate\"\n label=\"Delete\"\n (click)=\"deleteColumn(column)\"\n ></c8y-li-action>\n }\n </ng-container>\n }\n </c8y-li>\n }\n }\n @if (columns.length === 0) {\n <c8y-ui-empty-state\n [icon]=\"'list'\"\n [title]=\"'No properties selected.' | translate\"\n [subtitle]=\"'Select from the list which columns to display.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n }\n</c8y-list-group>\n<div class=\"m-b-16 p-t-16 p-l-24 p-r-16 fit-w separator-top\">\n <div\n class=\"dropdown\"\n container=\"body\"\n dropdown\n [insideClick]=\"true\"\n c8yDropdownFocusTrap\n #customActionsDropdown=\"bs-dropdown\"\n >\n <button\n class=\"btn btn-default btn-sm dropdown-toggle c8y-dropdown\"\n [title]=\"'Add action' | translate\"\n [attr.aria-haspopup]=\"true\"\n [attr.aria-expanded]=\"customActionsDropdown.isOpen\"\n type=\"button\"\n dropdownToggle\n >\n <i c8yIcon=\"cog\"></i>\n <span>{{ 'Add action' | translate }}</span>\n <span class=\"caret\"></span>\n </button>\n <ul\n class=\"dropdown-menu\"\n *dropdownMenu\n >\n <li>\n <button\n class=\"dropdown-item\"\n type=\"button\"\n (click)=\"onCreateOperation()\"\n >\n {{ 'Create operation' | translate }}\n </button>\n </li>\n <li>\n <button\n class=\"dropdown-item\"\n type=\"button\"\n (click)=\"onToggleMaintenanceMode()\"\n [disabled]=\"hasMaintenanceColumn\"\n >\n {{ 'Toggle maintenance mode' | translate }}\n </button>\n </li>\n </ul>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "ngmodule", type: BsDropdownModule }, { kind: "directive", type: i3$2.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i3$2.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i3$2.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: DropdownFocusTrapDirective, selector: "[c8yDropdownFocusTrap]" }, { 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: "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: "ngmodule", type: FormlyModule }, { kind: "component", type: i4.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "ngmodule", type: ListGroupModule }, { kind: "component", type: i1.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i1.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i1.ListItemActionComponent, selector: "c8y-list-item-action, c8y-li-action", inputs: ["label", "icon", "disabled"], outputs: ["click"] }, { kind: "component", type: i1.ListItemCheckboxComponent, selector: "c8y-list-item-checkbox, c8y-li-checkbox", inputs: ["selected", "indeterminate", "disabled", "displayAsSwitch"], outputs: ["onSelect"] }, { kind: "component", type: i1.ListItemDragHandleComponent, selector: "c8y-list-item-drag-handle, c8y-li-drag-handle" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: HumanizePipe, name: "humanize" }] }); }
1889
1889
  }
1890
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AssetTableGridSettingsComponent, decorators: [{
1890
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: AssetTableGridSettingsComponent, decorators: [{
1891
1891
  type: Component,
1892
1892
  args: [{ selector: 'c8y-asset-table-column-settings', host: {
1893
1893
  class: 'bg-level-1'
@@ -1935,10 +1935,10 @@ class AssetTablePropertiesSelectorComponent {
1935
1935
  });
1936
1936
  this.widgetConfigService.updateConfig({ selectedProperties: updatedProperties });
1937
1937
  }
1938
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AssetTablePropertiesSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1939
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: AssetTablePropertiesSelectorComponent, isStandalone: true, selector: "c8y-asset-table-properties-selector", host: { classAttribute: "bg-level-1" }, ngImport: i0, template: "<fieldset class=\"c8y-fieldset bg-level-1 p-0 overflow-hidden m-t-0\">\n <legend class=\"m-l-16\">{{ 'Select properties' | translate }}</legend>\n <c8y-asset-property-list\n class=\"inner-scroll bg-inherit d-block\"\n style=\"max-height: 300px\"\n [asset]=\"asset\"\n [config]=\"{\n selectMode: 'multi',\n expansionMode: 'expandedByDefault',\n allowAddingCustomProperties: true,\n showValue: false,\n showKey: false,\n selectedProperties: selectedProperties\n }\"\n [extraProperties]=\"extraProperties\"\n (selectedProperties)=\"selectProperties($event)\"\n ></c8y-asset-property-list>\n</fieldset>\n<fieldset class=\"c8y-fieldset bg-level-1 overflow-hidden p-0\">\n <legend class=\"m-l-16\">{{ 'Properties column settings (drag to reorder)' | translate }}</legend>\n <c8y-asset-table-column-settings></c8y-asset-table-column-settings>\n</fieldset>\n", dependencies: [{ kind: "component", type: AssetPropertyListComponent, selector: "c8y-asset-property-list", inputs: ["config", "asset", "extraProperties"], outputs: ["selectedProperties"] }, { kind: "ngmodule", type: PopoverModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "component", type: AssetTableGridSettingsComponent, selector: "c8y-asset-table-column-settings" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
1938
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: AssetTablePropertiesSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1939
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: AssetTablePropertiesSelectorComponent, isStandalone: true, selector: "c8y-asset-table-properties-selector", host: { classAttribute: "bg-level-1" }, ngImport: i0, template: "<fieldset class=\"c8y-fieldset bg-level-1 p-0 overflow-hidden m-t-0\">\n <legend class=\"m-l-16\">{{ 'Select properties' | translate }}</legend>\n <c8y-asset-property-list\n class=\"inner-scroll bg-inherit d-block\"\n style=\"max-height: 300px\"\n [asset]=\"asset\"\n [config]=\"{\n selectMode: 'multi',\n expansionMode: 'expandedByDefault',\n allowAddingCustomProperties: true,\n showValue: false,\n showKey: false,\n selectedProperties: selectedProperties\n }\"\n [extraProperties]=\"extraProperties\"\n (selectedProperties)=\"selectProperties($event)\"\n ></c8y-asset-property-list>\n</fieldset>\n<fieldset class=\"c8y-fieldset bg-level-1 overflow-hidden p-0\">\n <legend class=\"m-l-16\">{{ 'Properties column settings (drag to reorder)' | translate }}</legend>\n <c8y-asset-table-column-settings></c8y-asset-table-column-settings>\n</fieldset>\n", dependencies: [{ kind: "component", type: AssetPropertyListComponent, selector: "c8y-asset-property-list", inputs: ["config", "asset", "extraProperties"], outputs: ["selectedProperties"] }, { kind: "ngmodule", type: PopoverModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "component", type: AssetTableGridSettingsComponent, selector: "c8y-asset-table-column-settings" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
1940
1940
  }
1941
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AssetTablePropertiesSelectorComponent, decorators: [{
1941
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: AssetTablePropertiesSelectorComponent, decorators: [{
1942
1942
  type: Component,
1943
1943
  args: [{ selector: 'c8y-asset-table-properties-selector', host: {
1944
1944
  class: 'bg-level-1'
@@ -11,10 +11,10 @@ class CockpitLegacyWelcomeWidgetComponent {
11
11
  restore() {
12
12
  this.dashboard.restore();
13
13
  }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: CockpitLegacyWelcomeWidgetComponent, deps: [{ token: i1.ContextDashboardComponent }], target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: CockpitLegacyWelcomeWidgetComponent, isStandalone: true, selector: "c8y-cockpit-legacy-welcome-widget", ngImport: i0, template: "<div class=\"card-block\">\n <p\n class=\"lead\"\n c8y-guide-docs\n >\n <span>{{ 'Welcome to Cockpit' | translate }}.</span>\n <span\n class=\"cockpit-welcome-manual\"\n title=\"{{ 'Browse the documentation' | translate }}\"\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"/docs/cockpit/cockpit-introduction\">user documentation</a>.\n </span>\n </p>\n <p class=\"m-t-16\">\n <em>{{ 'New default dashboard available.' | translate }}</em>\n </p>\n <button\n class=\"btn btn-primary btn-sm m-t-16\"\n (click)=\"restore(); (false)\"\n translate\n >\n Get new dashboard\n </button>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.GuideHrefDirective, selector: "[c8y-guide-href]", inputs: ["c8y-guide-href"] }, { kind: "component", type: i2.GuideDocsComponent, selector: "[c8y-guide-docs]" }, { kind: "ngmodule", type: DocsModule }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CockpitLegacyWelcomeWidgetComponent, deps: [{ token: i1.ContextDashboardComponent }], target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: CockpitLegacyWelcomeWidgetComponent, isStandalone: true, selector: "c8y-cockpit-legacy-welcome-widget", ngImport: i0, template: "<div class=\"card-block\">\n <p\n class=\"lead\"\n c8y-guide-docs\n >\n <span>{{ 'Welcome to Cockpit' | translate }}.</span>\n <span\n class=\"cockpit-welcome-manual\"\n title=\"{{ 'Browse the documentation' | translate }}\"\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"/docs/cockpit/cockpit-introduction\">user documentation</a>.\n </span>\n </p>\n <p class=\"m-t-16\">\n <em>{{ 'New default dashboard available.' | translate }}</em>\n </p>\n <button\n class=\"btn btn-primary btn-sm m-t-16\"\n (click)=\"restore(); (false)\"\n translate\n >\n Get new dashboard\n </button>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.GuideHrefDirective, selector: "[c8y-guide-href]", inputs: ["c8y-guide-href"] }, { kind: "component", type: i2.GuideDocsComponent, selector: "[c8y-guide-docs]" }, { kind: "ngmodule", type: DocsModule }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
16
16
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: CockpitLegacyWelcomeWidgetComponent, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CockpitLegacyWelcomeWidgetComponent, decorators: [{
18
18
  type: Component,
19
19
  args: [{ selector: 'c8y-cockpit-legacy-welcome-widget', standalone: true, imports: [CoreModule, DocsModule], template: "<div class=\"card-block\">\n <p\n class=\"lead\"\n c8y-guide-docs\n >\n <span>{{ 'Welcome to Cockpit' | translate }}.</span>\n <span\n class=\"cockpit-welcome-manual\"\n title=\"{{ 'Browse the documentation' | translate }}\"\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"/docs/cockpit/cockpit-introduction\">user documentation</a>.\n </span>\n </p>\n <p class=\"m-t-16\">\n <em>{{ 'New default dashboard available.' | translate }}</em>\n </p>\n <button\n class=\"btn btn-primary btn-sm m-t-16\"\n (click)=\"restore(); (false)\"\n translate\n >\n Get new dashboard\n </button>\n</div>\n" }]
20
20
  }], ctorParameters: () => [{ type: i1.ContextDashboardComponent }] });