@c8y/ngx-components 1023.76.0 → 1023.77.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/asset-properties/index.d.ts +63 -0
  2. package/asset-properties/index.d.ts.map +1 -1
  3. package/assets-navigator/index.d.ts +4 -0
  4. package/assets-navigator/index.d.ts.map +1 -1
  5. package/fesm2022/c8y-ngx-components-actility-device-registration.mjs +16 -16
  6. package/fesm2022/c8y-ngx-components-advanced-software-management.mjs +7 -7
  7. package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs +12 -12
  8. package/fesm2022/c8y-ngx-components-ai-ai-chat.mjs +21 -21
  9. package/fesm2022/c8y-ngx-components-ai.mjs +3 -3
  10. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +40 -40
  11. package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs +4 -4
  12. package/fesm2022/c8y-ngx-components-alarms-devicemanagement.mjs +3 -3
  13. package/fesm2022/c8y-ngx-components-alarms.mjs +82 -82
  14. package/fesm2022/c8y-ngx-components-api.mjs +7 -7
  15. package/fesm2022/c8y-ngx-components-app-logs.mjs +10 -10
  16. package/fesm2022/c8y-ngx-components-application-access-list.mjs +12 -12
  17. package/fesm2022/c8y-ngx-components-application-access-user-application-access-user-details-wrapper.mjs +3 -3
  18. package/fesm2022/c8y-ngx-components-asset-properties.mjs +221 -69
  19. package/fesm2022/c8y-ngx-components-asset-properties.mjs.map +1 -1
  20. package/fesm2022/{c8y-ngx-components-asset-property-grid.component-CEphJoqx.mjs → c8y-ngx-components-asset-property-grid.component-BJOPTjF1.mjs} +13 -13
  21. package/fesm2022/{c8y-ngx-components-asset-property-grid.component-CEphJoqx.mjs.map → c8y-ngx-components-asset-property-grid.component-BJOPTjF1.mjs.map} +1 -1
  22. package/fesm2022/c8y-ngx-components-assets-navigator.mjs +36 -32
  23. package/fesm2022/c8y-ngx-components-assets-navigator.mjs.map +1 -1
  24. package/fesm2022/c8y-ngx-components-auth-configuration.mjs +120 -120
  25. package/fesm2022/c8y-ngx-components-binary-file-download.mjs +7 -7
  26. package/fesm2022/c8y-ngx-components-bookmarks.mjs +13 -13
  27. package/fesm2022/c8y-ngx-components-branding-base-branding.mjs +4 -4
  28. package/fesm2022/c8y-ngx-components-branding-dark-theme.mjs +7 -7
  29. package/fesm2022/c8y-ngx-components-branding-extra-css-branding-editor.mjs +7 -7
  30. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor-lazy.mjs +3 -3
  31. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs +7 -7
  32. package/fesm2022/c8y-ngx-components-branding-shared-data.mjs +15 -15
  33. package/fesm2022/c8y-ngx-components-branding-shared-lazy-add-branding-modal.mjs +6 -6
  34. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +36 -36
  35. package/fesm2022/c8y-ngx-components-branding-shared.mjs +13 -13
  36. package/fesm2022/c8y-ngx-components-child-devices.mjs +13 -13
  37. package/fesm2022/c8y-ngx-components-cockpit-config.mjs +40 -40
  38. package/fesm2022/{c8y-ngx-components-computed-asset-properties-alarm-count-config.component-DX9Rgjgl.mjs → c8y-ngx-components-computed-asset-properties-alarm-count-config.component-tP8yUdy3.mjs} +4 -4
  39. package/fesm2022/{c8y-ngx-components-computed-asset-properties-alarm-count-config.component-DX9Rgjgl.mjs.map → c8y-ngx-components-computed-asset-properties-alarm-count-config.component-tP8yUdy3.mjs.map} +1 -1
  40. package/fesm2022/{c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-CRpLJ5H7.mjs → c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-wNQ45CJ1.mjs} +11 -11
  41. package/fesm2022/{c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-CRpLJ5H7.mjs.map → c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-wNQ45CJ1.mjs.map} +1 -1
  42. package/fesm2022/{c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-2rDsrxcs.mjs → c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-BrYcCHYL.mjs} +4 -4
  43. package/fesm2022/{c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-2rDsrxcs.mjs.map → c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-BrYcCHYL.mjs.map} +1 -1
  44. package/fesm2022/{c8y-ngx-components-computed-asset-properties-event-count-config.component-BJNoqWZf.mjs → c8y-ngx-components-computed-asset-properties-event-count-config.component-BBKuA2rZ.mjs} +4 -4
  45. package/fesm2022/{c8y-ngx-components-computed-asset-properties-event-count-config.component-BJNoqWZf.mjs.map → c8y-ngx-components-computed-asset-properties-event-count-config.component-BBKuA2rZ.mjs.map} +1 -1
  46. package/fesm2022/{c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-DYac6foX.mjs → c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-uEdtPWC0.mjs} +5 -5
  47. package/fesm2022/{c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-DYac6foX.mjs.map → c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-uEdtPWC0.mjs.map} +1 -1
  48. package/fesm2022/{c8y-ngx-components-computed-asset-properties-last-measurement-config.component-3yTe6lIr.mjs → c8y-ngx-components-computed-asset-properties-last-measurement-config.component-BGhex-OP.mjs} +5 -5
  49. package/fesm2022/{c8y-ngx-components-computed-asset-properties-last-measurement-config.component-3yTe6lIr.mjs.map → c8y-ngx-components-computed-asset-properties-last-measurement-config.component-BGhex-OP.mjs.map} +1 -1
  50. package/fesm2022/c8y-ngx-components-computed-asset-properties.mjs +1 -1
  51. package/fesm2022/c8y-ngx-components-connectivity.mjs +53 -53
  52. package/fesm2022/c8y-ngx-components-context-dashboard-asset-add.mjs +10 -10
  53. package/fesm2022/c8y-ngx-components-context-dashboard-asset-view.mjs +7 -7
  54. package/fesm2022/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.mjs +11 -11
  55. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-C7yXSDYC.mjs → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BkwPfkeK.mjs} +4 -4
  56. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-C7yXSDYC.mjs.map → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BkwPfkeK.mjs.map} +1 -1
  57. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-w8N16Z3t.mjs → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-4aO0U4qs.mjs} +10 -10
  58. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-w8N16Z3t.mjs.map → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-4aO0U4qs.mjs.map} +1 -1
  59. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component--1OYYpR2.mjs → c8y-ngx-components-context-dashboard-dashboard-version-history.component-1xx4pGiq.mjs} +4 -4
  60. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component--1OYYpR2.mjs.map → c8y-ngx-components-context-dashboard-dashboard-version-history.component-1xx4pGiq.mjs.map} +1 -1
  61. package/fesm2022/c8y-ngx-components-context-dashboard-device-add.mjs +10 -10
  62. package/fesm2022/c8y-ngx-components-context-dashboard-device-view.mjs +7 -7
  63. package/fesm2022/c8y-ngx-components-context-dashboard-devicemanagement.mjs +3 -3
  64. package/fesm2022/c8y-ngx-components-context-dashboard-state.mjs +3 -3
  65. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +108 -108
  66. package/fesm2022/{c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-DVEnCRzW.mjs → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-DFytXNdc.mjs} +16 -16
  67. package/fesm2022/{c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-DVEnCRzW.mjs.map → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-DFytXNdc.mjs.map} +1 -1
  68. package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab.mjs +12 -12
  69. package/fesm2022/c8y-ngx-components-dashboard-manager-devicemanagement.mjs +6 -6
  70. package/fesm2022/c8y-ngx-components-dashboard-manager.mjs +22 -22
  71. package/fesm2022/c8y-ngx-components-data-broker.mjs +7 -7
  72. package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs +3 -3
  73. package/fesm2022/c8y-ngx-components-data-grid-columns.mjs +3 -3
  74. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +24 -24
  75. package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs +13 -13
  76. package/fesm2022/c8y-ngx-components-datapoint-library-details.mjs +3 -3
  77. package/fesm2022/c8y-ngx-components-datapoint-library-list.mjs +3 -3
  78. package/fesm2022/c8y-ngx-components-datapoint-library-services.mjs +3 -3
  79. package/fesm2022/c8y-ngx-components-datapoint-library.mjs +4 -4
  80. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +43 -43
  81. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs +36 -36
  82. package/fesm2022/c8y-ngx-components-default-subscriptions.mjs +16 -16
  83. package/fesm2022/c8y-ngx-components-device-enrolment-modal.mjs +9 -9
  84. package/fesm2022/c8y-ngx-components-device-enrolment.mjs +6 -6
  85. package/fesm2022/c8y-ngx-components-device-grid.mjs +43 -43
  86. package/fesm2022/c8y-ngx-components-device-list.mjs +22 -22
  87. package/fesm2022/c8y-ngx-components-device-map.mjs +12 -12
  88. package/fesm2022/c8y-ngx-components-device-profile.mjs +34 -34
  89. package/fesm2022/c8y-ngx-components-device-protocol-object-mappings.mjs +3 -3
  90. package/fesm2022/c8y-ngx-components-device-protocols.mjs +16 -16
  91. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +13 -13
  92. package/fesm2022/c8y-ngx-components-device-shell.mjs +31 -31
  93. package/fesm2022/c8y-ngx-components-diagnostics.mjs +13 -13
  94. package/fesm2022/c8y-ngx-components-echart.mjs +30 -30
  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 +33 -33
  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 +39 -51
  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-operation-picker.mjs +9 -9
  118. package/fesm2022/c8y-ngx-components-operations-bulk-operation-from-single.mjs +7 -7
  119. package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs +19 -19
  120. package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs +7 -7
  121. package/fesm2022/c8y-ngx-components-operations-bulk-operation-stepper.mjs +13 -13
  122. package/fesm2022/c8y-ngx-components-operations-bulk-operations-list.mjs +13 -13
  123. package/fesm2022/c8y-ngx-components-operations-bulk-operations-service.mjs +7 -7
  124. package/fesm2022/c8y-ngx-components-operations-bulk-operations-stepper-container.mjs +7 -7
  125. package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs +3 -3
  126. package/fesm2022/c8y-ngx-components-operations-create-bulk-operation-details.mjs +7 -7
  127. package/fesm2022/c8y-ngx-components-operations-device-selector.mjs +7 -7
  128. package/fesm2022/c8y-ngx-components-operations-grid-columns.mjs +12 -12
  129. package/fesm2022/c8y-ngx-components-operations-operation-details.mjs +13 -13
  130. package/fesm2022/c8y-ngx-components-operations-operation-summary.mjs +7 -7
  131. package/fesm2022/c8y-ngx-components-operations-operations-list-item-details.mjs +10 -10
  132. package/fesm2022/c8y-ngx-components-operations-operations-list.mjs +12 -12
  133. package/fesm2022/c8y-ngx-components-operations-operations-timeline.mjs +7 -7
  134. package/fesm2022/c8y-ngx-components-operations-shared.mjs +10 -10
  135. package/fesm2022/c8y-ngx-components-operations-status-filter.mjs +7 -7
  136. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-configuration.mjs +7 -7
  137. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-device-profile.mjs +13 -13
  138. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-firmware.mjs +13 -13
  139. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-software.mjs +13 -13
  140. package/fesm2022/c8y-ngx-components-operations-stepper-frames.mjs +13 -13
  141. package/fesm2022/c8y-ngx-components-operations.mjs +7 -7
  142. package/fesm2022/c8y-ngx-components-pending-mo-request.mjs +7 -7
  143. package/fesm2022/c8y-ngx-components-platform-configuration.mjs +10 -10
  144. package/fesm2022/c8y-ngx-components-protocol-lpwan.mjs +38 -38
  145. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +58 -58
  146. package/fesm2022/c8y-ngx-components-register-device.mjs +58 -58
  147. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +9 -9
  148. package/fesm2022/c8y-ngx-components-remote-access-data.mjs +3 -3
  149. package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs +3 -3
  150. package/fesm2022/c8y-ngx-components-remote-access-shared.mjs +6 -6
  151. package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +3 -3
  152. package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs +3 -3
  153. package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs +3 -3
  154. package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs +3 -3
  155. package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +3 -3
  156. package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +6 -6
  157. package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs +3 -3
  158. package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs +6 -6
  159. package/fesm2022/c8y-ngx-components-replace-device.mjs +10 -10
  160. package/fesm2022/c8y-ngx-components-report-dashboard.mjs +16 -16
  161. package/fesm2022/c8y-ngx-components-reports.mjs +19 -19
  162. package/fesm2022/c8y-ngx-components-repository-configuration.mjs +48 -48
  163. package/fesm2022/c8y-ngx-components-repository-firmware.mjs +33 -33
  164. package/fesm2022/c8y-ngx-components-repository-shared.mjs +34 -34
  165. package/fesm2022/c8y-ngx-components-repository-software.mjs +42 -42
  166. package/fesm2022/c8y-ngx-components-repository.mjs +4 -4
  167. package/fesm2022/c8y-ngx-components-search.mjs +19 -19
  168. package/fesm2022/c8y-ngx-components-sensor-phone-sensor-phone-modal.mjs +6 -6
  169. package/fesm2022/c8y-ngx-components-sensor-phone.mjs +7 -7
  170. package/fesm2022/c8y-ngx-components-services-service-command-tab.mjs +3 -3
  171. package/fesm2022/c8y-ngx-components-services-shared.mjs +3 -3
  172. package/fesm2022/c8y-ngx-components-services.mjs +29 -29
  173. package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs +16 -16
  174. package/fesm2022/c8y-ngx-components-sms-gateway.mjs +7 -7
  175. package/fesm2022/c8y-ngx-components-static-assets-data.mjs +3 -3
  176. package/fesm2022/c8y-ngx-components-static-assets-modal.mjs +9 -9
  177. package/fesm2022/c8y-ngx-components-static-assets.mjs +6 -6
  178. package/fesm2022/c8y-ngx-components-sub-assets.mjs +64 -60
  179. package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
  180. package/fesm2022/c8y-ngx-components-tenants.mjs +40 -40
  181. package/fesm2022/c8y-ngx-components-time-context.mjs +6 -6
  182. package/fesm2022/c8y-ngx-components-tracking.mjs +12 -12
  183. package/fesm2022/c8y-ngx-components-translation-editor-data.mjs +3 -3
  184. package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs +12 -12
  185. package/fesm2022/c8y-ngx-components-translation-editor.mjs +6 -6
  186. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +33 -33
  187. package/fesm2022/c8y-ngx-components-upgrade-upgraded-services.mjs +4 -4
  188. package/fesm2022/c8y-ngx-components-upgrade.mjs +41 -41
  189. package/fesm2022/c8y-ngx-components-user-roles.mjs +10 -10
  190. package/fesm2022/c8y-ngx-components-widgets-definitions-asset-table.mjs +6 -6
  191. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs +3 -3
  192. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget-ai-config.mjs +3 -3
  193. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs +6 -6
  194. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +19 -19
  195. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-notes.mjs +3 -3
  196. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-table.mjs +111 -40
  197. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-table.mjs.map +1 -1
  198. package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-legacy-welcome.mjs +3 -3
  199. package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs +3 -3
  200. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +6 -6
  201. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-list.mjs +12 -12
  202. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +21 -21
  203. package/fesm2022/c8y-ngx-components-widgets-implementations-device-control-message.mjs +3 -3
  204. package/fesm2022/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs +10 -10
  205. package/fesm2022/c8y-ngx-components-widgets-implementations-events.mjs +6 -6
  206. package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs +3 -3
  207. package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs +24 -24
  208. package/fesm2022/c8y-ngx-components-widgets-implementations-image.mjs +9 -9
  209. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +18 -18
  210. package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs +6 -6
  211. package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs +6 -6
  212. package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs +9 -9
  213. package/fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs +9 -9
  214. package/fesm2022/c8y-ngx-components-widgets-implementations-pie-chart.mjs +9 -9
  215. package/fesm2022/c8y-ngx-components-widgets-implementations-quick-links.mjs +18 -18
  216. package/fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation.mjs +9 -9
  217. package/fesm2022/c8y-ngx-components.mjs +1398 -1398
  218. package/locales/locales.pot +0 -6
  219. package/map/index.d.ts +12 -1
  220. package/map/index.d.ts.map +1 -1
  221. package/package.json +1 -1
  222. package/sub-assets/index.d.ts +4 -0
  223. package/sub-assets/index.d.ts.map +1 -1
@@ -56,8 +56,8 @@ class SelectFirmwareComponent {
56
56
  getFirmwares(partialName) {
57
57
  return this.repositoryService.listRepositoryEntries(RepositoryType.FIRMWARE, { partialName });
58
58
  }
59
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SelectFirmwareComponent, deps: [{ token: i1.RepositoryService }, { token: i2.BulkOperationsService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
60
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: SelectFirmwareComponent, isStandalone: true, selector: "c8y-select-firmware-step", inputs: { selected: "selected" }, outputs: { firmware: "firmware" }, ngImport: i0, template: "<c8y-select-step-frame\n [header]=\"'Select firmware' | translate\"\n [noResults]=\"(textFilter$ | async).length > 0 && elementCount === 0\"\n>\n <label\n class=\"sr-only\"\n for=\"fFilter\"\n >\n {{ 'Filter\u2026' | translate }}\n </label>\n <div\n class=\"input-group input-group-search\"\n filters\n >\n <input\n class=\"form-control\"\n title=\"{{ 'Filter\u2026' | translate }}\"\n id=\"fFilter\"\n placeholder=\"{{ 'Filter\u2026' | translate }}\"\n type=\"search\"\n [ngModel]=\"textFilter$ | async\"\n (ngModelChange)=\"textFilter$.next($event)\"\n />\n <span class=\"input-group-addon\">\n <i\n c8yIcon=\"search\"\n *ngIf=\"(textFilter$ | async).length === 0\"\n ></i>\n <i\n class=\"text-muted\"\n c8yIcon=\"times\"\n *ngIf=\"(textFilter$ | async).length > 0\"\n (click)=\"textFilter$.next('')\"\n ></i>\n </span>\n </div>\n <c8y-li\n class=\"hidden-sm hidden-xs m-r-8 m-l-8\"\n header\n >\n <c8y-li-icon><i class=\"p-l-32 p-r-40\"></i></c8y-li-icon>\n <c8y-li-body class=\"content-flex-40\">\n <div class=\"col-3\">\n <span\n class=\"text-truncate\"\n title=\" {{ 'Name' | translate }} \"\n >\n {{ 'Name' | translate }}\n </span>\n </div>\n <div class=\"col-4\">\n <span\n class=\"text-truncate\"\n title=\"{{ 'Description' | translate }}\"\n >\n {{ 'Description' | translate }}\n </span>\n </div>\n <div class=\"col-3\">\n <span\n class=\"text-truncate\"\n title=\"{{ 'Device type' | translate }}\"\n >\n {{ 'Device type' | translate }}\n </span>\n </div>\n <div class=\"col-2\">\n <span\n class=\"text-truncate\"\n title=\"{{ 'Versions' | translate }}\"\n >\n {{ 'Versions' | translate }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n <c8y-list-group list>\n <c8y-li *c8yFor=\"let firmware of firmwares$ | async; let i = index; loadMore: 'auto'\">\n <c8y-li-radio\n (onSelect)=\"selectFirmware($event, firmware)\"\n [selected]=\"firmware === selected\"\n ></c8y-li-radio>\n <c8y-li-icon>\n <i c8yIcon=\"c8y-firmware\"></i>\n </c8y-li-icon>\n\n <c8y-li-body class=\"content-flex-40\">\n <div class=\"col-3 m-b-xs-8\">\n <div\n class=\"text-truncate\"\n title=\"{{ firmware.name }}\"\n >\n <c8y-highlight\n [text]=\"firmware.name\"\n [pattern]=\"textFilter$ | async\"\n ></c8y-highlight>\n </div>\n </div>\n <div class=\"col-4 m-b-xs-8\">\n <div\n class=\"text-truncate\"\n title=\"{{ getDescriptionTitle(firmware) }}\"\n >\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n Description\n </span>\n <small *ngIf=\"firmware.description; else noDesc\">\n {{ firmware.description }}\n </small>\n <ng-template #noDesc>\n <small>\n <em\n class=\"text-muted\"\n translate\n >\n No description available.\n </em>\n </small>\n </ng-template>\n </div>\n </div>\n <div class=\"col-3 m-b-xs-8\">\n <div\n class=\"text-truncate\"\n title=\"{{ 'Device type' | translate }}: {{ getDeviceTypeTitle(firmware) }}\"\n >\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n Device type\n </span>\n <span *ngIf=\"firmware.c8y_Filter?.type; else noType\">\n {{ firmware.c8y_Filter?.type }}\n </span>\n <ng-template #noType>\n <em\n class=\"text-muted\"\n translate\n >\n Undefined`device type`\n </em>\n </ng-template>\n </div>\n </div>\n <div class=\"col-2\">\n <span\n class=\"label label-warning m-l-auto-sm\"\n *ngIf=\"isLegacy(firmware)\"\n >\n <span translate>Legacy</span>\n </span>\n\n <span *ngIf=\"!isLegacy(firmware)\">\n <span *ngIf=\"(getBaseVersionsCount$(firmware) | async) === null\">\n <span class=\"label label-info\">\n <i\n class=\"icon-spin\"\n c8yIcon=\"circle-o-notch\"\n ></i>\n </span>\n </span>\n <span *ngIf=\"(getBaseVersionsCount$(firmware) | async) !== null\">\n <span [ngPlural]=\"getBaseVersionsCount$(firmware) | async\">\n <ng-template ngPluralCase=\"=0\">\n <span class=\"label label-default\">\n <span translate>No versions</span>\n </span>\n </ng-template>\n <ng-template ngPluralCase=\"=1\">\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n version\n </span>\n <span class=\"badge badge-info m-l-auto-sm\">1</span>\n </ng-template>\n <ng-template ngPluralCase=\"other\">\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n versions\n </span>\n <span class=\"badge badge-info m-l-auto-sm\">\n {{ getBaseVersionsCount$(firmware) | async }}\n </span>\n </ng-template>\n </span>\n </span>\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n</c8y-select-step-frame>\n", dependencies: [{ kind: "component", type: SelectStepFrameComponent, selector: "c8y-select-step-frame", inputs: ["header", "noResults"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "directive", type: ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "component", type: ListItemRadioComponent, selector: "c8y-list-item-radio, c8y-li-radio", inputs: ["selected", "name", "disabled", "value"], outputs: ["onSelect"] }, { kind: "component", type: HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: NgPlural, selector: "[ngPlural]", inputs: ["ngPlural"] }, { kind: "directive", type: NgPluralCase, selector: "[ngPluralCase]" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: SelectFirmwareComponent, deps: [{ token: i1.RepositoryService }, { token: i2.BulkOperationsService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
60
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: SelectFirmwareComponent, isStandalone: true, selector: "c8y-select-firmware-step", inputs: { selected: "selected" }, outputs: { firmware: "firmware" }, ngImport: i0, template: "<c8y-select-step-frame\n [header]=\"'Select firmware' | translate\"\n [noResults]=\"(textFilter$ | async).length > 0 && elementCount === 0\"\n>\n <label\n class=\"sr-only\"\n for=\"fFilter\"\n >\n {{ 'Filter\u2026' | translate }}\n </label>\n <div\n class=\"input-group input-group-search\"\n filters\n >\n <input\n class=\"form-control\"\n title=\"{{ 'Filter\u2026' | translate }}\"\n id=\"fFilter\"\n placeholder=\"{{ 'Filter\u2026' | translate }}\"\n type=\"search\"\n [ngModel]=\"textFilter$ | async\"\n (ngModelChange)=\"textFilter$.next($event)\"\n />\n <span class=\"input-group-addon\">\n <i\n c8yIcon=\"search\"\n *ngIf=\"(textFilter$ | async).length === 0\"\n ></i>\n <i\n class=\"text-muted\"\n c8yIcon=\"times\"\n *ngIf=\"(textFilter$ | async).length > 0\"\n (click)=\"textFilter$.next('')\"\n ></i>\n </span>\n </div>\n <c8y-li\n class=\"hidden-sm hidden-xs m-r-8 m-l-8\"\n header\n >\n <c8y-li-icon><i class=\"p-l-32 p-r-40\"></i></c8y-li-icon>\n <c8y-li-body class=\"content-flex-40\">\n <div class=\"col-3\">\n <span\n class=\"text-truncate\"\n title=\" {{ 'Name' | translate }} \"\n >\n {{ 'Name' | translate }}\n </span>\n </div>\n <div class=\"col-4\">\n <span\n class=\"text-truncate\"\n title=\"{{ 'Description' | translate }}\"\n >\n {{ 'Description' | translate }}\n </span>\n </div>\n <div class=\"col-3\">\n <span\n class=\"text-truncate\"\n title=\"{{ 'Device type' | translate }}\"\n >\n {{ 'Device type' | translate }}\n </span>\n </div>\n <div class=\"col-2\">\n <span\n class=\"text-truncate\"\n title=\"{{ 'Versions' | translate }}\"\n >\n {{ 'Versions' | translate }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n <c8y-list-group list>\n <c8y-li *c8yFor=\"let firmware of firmwares$ | async; let i = index; loadMore: 'auto'\">\n <c8y-li-radio\n (onSelect)=\"selectFirmware($event, firmware)\"\n [selected]=\"firmware === selected\"\n ></c8y-li-radio>\n <c8y-li-icon>\n <i c8yIcon=\"c8y-firmware\"></i>\n </c8y-li-icon>\n\n <c8y-li-body class=\"content-flex-40\">\n <div class=\"col-3 m-b-xs-8\">\n <div\n class=\"text-truncate\"\n title=\"{{ firmware.name }}\"\n >\n <c8y-highlight\n [text]=\"firmware.name\"\n [pattern]=\"textFilter$ | async\"\n ></c8y-highlight>\n </div>\n </div>\n <div class=\"col-4 m-b-xs-8\">\n <div\n class=\"text-truncate\"\n title=\"{{ getDescriptionTitle(firmware) }}\"\n >\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n Description\n </span>\n <small *ngIf=\"firmware.description; else noDesc\">\n {{ firmware.description }}\n </small>\n <ng-template #noDesc>\n <small>\n <em\n class=\"text-muted\"\n translate\n >\n No description available.\n </em>\n </small>\n </ng-template>\n </div>\n </div>\n <div class=\"col-3 m-b-xs-8\">\n <div\n class=\"text-truncate\"\n title=\"{{ 'Device type' | translate }}: {{ getDeviceTypeTitle(firmware) }}\"\n >\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n Device type\n </span>\n <span *ngIf=\"firmware.c8y_Filter?.type; else noType\">\n {{ firmware.c8y_Filter?.type }}\n </span>\n <ng-template #noType>\n <em\n class=\"text-muted\"\n translate\n >\n Undefined`device type`\n </em>\n </ng-template>\n </div>\n </div>\n <div class=\"col-2\">\n <span\n class=\"label label-warning m-l-auto-sm\"\n *ngIf=\"isLegacy(firmware)\"\n >\n <span translate>Legacy</span>\n </span>\n\n <span *ngIf=\"!isLegacy(firmware)\">\n <span *ngIf=\"(getBaseVersionsCount$(firmware) | async) === null\">\n <span class=\"label label-info\">\n <i\n class=\"icon-spin\"\n c8yIcon=\"circle-o-notch\"\n ></i>\n </span>\n </span>\n <span *ngIf=\"(getBaseVersionsCount$(firmware) | async) !== null\">\n <span [ngPlural]=\"getBaseVersionsCount$(firmware) | async\">\n <ng-template ngPluralCase=\"=0\">\n <span class=\"label label-default\">\n <span translate>No versions</span>\n </span>\n </ng-template>\n <ng-template ngPluralCase=\"=1\">\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n version\n </span>\n <span class=\"badge badge-info m-l-auto-sm\">1</span>\n </ng-template>\n <ng-template ngPluralCase=\"other\">\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n versions\n </span>\n <span class=\"badge badge-info m-l-auto-sm\">\n {{ getBaseVersionsCount$(firmware) | async }}\n </span>\n </ng-template>\n </span>\n </span>\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n</c8y-select-step-frame>\n", dependencies: [{ kind: "component", type: SelectStepFrameComponent, selector: "c8y-select-step-frame", inputs: ["header", "noResults"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "directive", type: ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "component", type: ListItemRadioComponent, selector: "c8y-list-item-radio, c8y-li-radio", inputs: ["selected", "name", "disabled", "value"], outputs: ["onSelect"] }, { kind: "component", type: HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: NgPlural, selector: "[ngPlural]", inputs: ["ngPlural"] }, { kind: "directive", type: NgPluralCase, selector: "[ngPluralCase]" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
61
61
  }
62
62
  __decorate([
63
63
  memoize(property('id')),
@@ -65,7 +65,7 @@ __decorate([
65
65
  __metadata("design:paramtypes", [Object]),
66
66
  __metadata("design:returntype", Observable)
67
67
  ], SelectFirmwareComponent.prototype, "getBaseVersionsCount$", null);
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SelectFirmwareComponent, decorators: [{
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: SelectFirmwareComponent, decorators: [{
69
69
  type: Component,
70
70
  args: [{ selector: 'c8y-select-firmware-step', imports: [
71
71
  SelectStepFrameComponent,
@@ -121,8 +121,8 @@ class VersionOrPatchComponent {
121
121
  this.versionOrPatch.emit(versionOrPatch);
122
122
  }
123
123
  }
124
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: VersionOrPatchComponent, deps: [{ token: i1.RepositoryService }, { token: i2$1.InventoryService }, { token: i2.BulkOperationsService }], target: i0.ɵɵFactoryTarget.Component }); }
125
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: VersionOrPatchComponent, isStandalone: true, selector: "c8y-version-or-patch-step", inputs: { selected: "selected" }, outputs: { versionOrPatch: "versionOrPatch" }, ngImport: i0, template: "@if ((baseVersions$ | async)?.data.length > 0) {\n <c8y-list-group class=\"m-b-16\">\n <c8y-li *c8yFor=\"let baseVersion of baseVersions$ | async; let i = index; loadMore: 'auto'\">\n <c8y-li-icon>\n <i c8yIcon=\"c8y-firmware\"></i>\n </c8y-li-icon>\n\n <c8y-li-body class=\"content-flex-50\">\n <div class=\"col-10\">\n <p>{{ baseVersion.c8y_Firmware.version }}</p>\n </div>\n <div class=\"col-2\">\n @if (isLegacy$ | async) {\n <span class=\"label label-warning\">\n {{ 'Legacy' | translate }}\n </span>\n }\n\n @if (!(isLegacy$ | async)) {\n <span>\n @if ((getPatchVersionsCount$(baseVersion) | async) === null) {\n <span>\n <span class=\"label label-info\">\n <i\n class=\"icon-spin\"\n c8yIcon=\"circle-o-notch\"\n ></i>\n </span>\n </span>\n }\n\n @if ((getPatchVersionsCount$(baseVersion) | async) !== null) {\n <span>\n <span [ngPlural]=\"getPatchVersionsCount$(baseVersion) | async\">\n <ng-template ngPluralCase=\"=0\">\n <span class=\"label label-default\"><span translate>No patches</span></span>\n </ng-template>\n <ng-template ngPluralCase=\"=1\">\n <span class=\"label label-info\">\n <span translate>1 patch</span>\n </span>\n </ng-template>\n <ng-template ngPluralCase=\"other\">\n <span class=\"label label-info\">\n <span\n ngNonBindable\n translate\n [translateParams]=\"{ count: getPatchVersionsCount$(baseVersion) | async }\"\n >\n {{ count }} patches\n </span>\n </span>\n </ng-template>\n </span>\n </span>\n }\n </span>\n }\n </div>\n </c8y-li-body>\n\n <c8y-li-collapse>\n <c8y-list-group>\n <c8y-li\n *c8yFor=\"\n let patchVersion of getBaseVersionAndPatches$(baseVersion) | async;\n let i = index;\n loadMore: 'auto'\n \"\n >\n <c8y-li-radio\n (onSelect)=\"selectVersionOrPatch($event, patchVersion)\"\n [selected]=\"patchVersion === selected\"\n ></c8y-li-radio>\n <c8y-li-icon>\n <i c8yIcon=\"c8y-firmware\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-50\">\n <div class=\"col-3\">\n {{ patchVersion.c8y_Firmware.version }}\n </div>\n <div class=\"col-3\">\n @if (patchVersion.c8y_Patch) {\n <span\n class=\"label label-info\"\n translate\n >\n patch\n </span>\n } @else {\n <span\n class=\"label label-primary\"\n translate\n >\n version\n </span>\n }\n </div>\n <div class=\"col-6 text-truncate\">\n <span\n class=\"text-label-small m-r-4\"\n translate\n >\n File\n </span>\n @if (patchVersion.c8y_Firmware.url === '') {\n <span title=\"{{ 'Provided by device' | translate }}\">\n {{ 'Provided by device' | translate }}\n </span>\n } @else {\n <span title=\"{{ getBinaryName$(patchVersion.c8y_Firmware.url) | async }}\">\n {{ getBinaryName$(patchVersion.c8y_Firmware.url) | async }}\n </span>\n }\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n </c8y-li-collapse>\n </c8y-li>\n </c8y-list-group>\n}\n", dependencies: [{ kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "directive", type: ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "directive", type: NgPlural, selector: "[ngPlural]", inputs: ["ngPlural"] }, { kind: "directive", type: NgPluralCase, selector: "[ngPluralCase]" }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: ListItemCollapseComponent, selector: "c8y-list-item-collapse, c8y-li-collapse", inputs: ["collapseWay"] }, { kind: "component", type: ListItemRadioComponent, selector: "c8y-list-item-radio, c8y-li-radio", inputs: ["selected", "name", "disabled", "value"], outputs: ["onSelect"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
124
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: VersionOrPatchComponent, deps: [{ token: i1.RepositoryService }, { token: i2$1.InventoryService }, { token: i2.BulkOperationsService }], target: i0.ɵɵFactoryTarget.Component }); }
125
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: VersionOrPatchComponent, isStandalone: true, selector: "c8y-version-or-patch-step", inputs: { selected: "selected" }, outputs: { versionOrPatch: "versionOrPatch" }, ngImport: i0, template: "@if ((baseVersions$ | async)?.data.length > 0) {\n <c8y-list-group class=\"m-b-16\">\n <c8y-li *c8yFor=\"let baseVersion of baseVersions$ | async; let i = index; loadMore: 'auto'\">\n <c8y-li-icon>\n <i c8yIcon=\"c8y-firmware\"></i>\n </c8y-li-icon>\n\n <c8y-li-body class=\"content-flex-50\">\n <div class=\"col-10\">\n <p>{{ baseVersion.c8y_Firmware.version }}</p>\n </div>\n <div class=\"col-2\">\n @if (isLegacy$ | async) {\n <span class=\"label label-warning\">\n {{ 'Legacy' | translate }}\n </span>\n }\n\n @if (!(isLegacy$ | async)) {\n <span>\n @if ((getPatchVersionsCount$(baseVersion) | async) === null) {\n <span>\n <span class=\"label label-info\">\n <i\n class=\"icon-spin\"\n c8yIcon=\"circle-o-notch\"\n ></i>\n </span>\n </span>\n }\n\n @if ((getPatchVersionsCount$(baseVersion) | async) !== null) {\n <span>\n <span [ngPlural]=\"getPatchVersionsCount$(baseVersion) | async\">\n <ng-template ngPluralCase=\"=0\">\n <span class=\"label label-default\"><span translate>No patches</span></span>\n </ng-template>\n <ng-template ngPluralCase=\"=1\">\n <span class=\"label label-info\">\n <span translate>1 patch</span>\n </span>\n </ng-template>\n <ng-template ngPluralCase=\"other\">\n <span class=\"label label-info\">\n <span\n ngNonBindable\n translate\n [translateParams]=\"{ count: getPatchVersionsCount$(baseVersion) | async }\"\n >\n {{ count }} patches\n </span>\n </span>\n </ng-template>\n </span>\n </span>\n }\n </span>\n }\n </div>\n </c8y-li-body>\n\n <c8y-li-collapse>\n <c8y-list-group>\n <c8y-li\n *c8yFor=\"\n let patchVersion of getBaseVersionAndPatches$(baseVersion) | async;\n let i = index;\n loadMore: 'auto'\n \"\n >\n <c8y-li-radio\n (onSelect)=\"selectVersionOrPatch($event, patchVersion)\"\n [selected]=\"patchVersion === selected\"\n ></c8y-li-radio>\n <c8y-li-icon>\n <i c8yIcon=\"c8y-firmware\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-50\">\n <div class=\"col-3\">\n {{ patchVersion.c8y_Firmware.version }}\n </div>\n <div class=\"col-3\">\n @if (patchVersion.c8y_Patch) {\n <span\n class=\"label label-info\"\n translate\n >\n patch\n </span>\n } @else {\n <span\n class=\"label label-primary\"\n translate\n >\n version\n </span>\n }\n </div>\n <div class=\"col-6 text-truncate\">\n <span\n class=\"text-label-small m-r-4\"\n translate\n >\n File\n </span>\n @if (patchVersion.c8y_Firmware.url === '') {\n <span title=\"{{ 'Provided by device' | translate }}\">\n {{ 'Provided by device' | translate }}\n </span>\n } @else {\n <span title=\"{{ getBinaryName$(patchVersion.c8y_Firmware.url) | async }}\">\n {{ getBinaryName$(patchVersion.c8y_Firmware.url) | async }}\n </span>\n }\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n </c8y-li-collapse>\n </c8y-li>\n </c8y-list-group>\n}\n", dependencies: [{ kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "directive", type: ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "directive", type: NgPlural, selector: "[ngPlural]", inputs: ["ngPlural"] }, { kind: "directive", type: NgPluralCase, selector: "[ngPluralCase]" }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: ListItemCollapseComponent, selector: "c8y-list-item-collapse, c8y-li-collapse", inputs: ["collapseWay"] }, { kind: "component", type: ListItemRadioComponent, selector: "c8y-list-item-radio, c8y-li-radio", inputs: ["selected", "name", "disabled", "value"], outputs: ["onSelect"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
126
126
  }
127
127
  __decorate([
128
128
  memoize(),
@@ -142,7 +142,7 @@ __decorate([
142
142
  __metadata("design:paramtypes", [Object]),
143
143
  __metadata("design:returntype", void 0)
144
144
  ], VersionOrPatchComponent.prototype, "getPatchVersionsCount$", null);
145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: VersionOrPatchComponent, decorators: [{
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: VersionOrPatchComponent, decorators: [{
146
146
  type: Component,
147
147
  args: [{ selector: 'c8y-version-or-patch-step', imports: [
148
148
  ListGroupComponent,
@@ -229,10 +229,10 @@ class StepperBulkTypeFirmwareComponent extends BaseStepperComponent {
229
229
  this.textFilter$.next('');
230
230
  super.onSelectionChange(event);
231
231
  }
232
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: StepperBulkTypeFirmwareComponent, deps: [{ token: i2.BulkOperationsService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
233
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: StepperBulkTypeFirmwareComponent, isStandalone: true, selector: "c8y-stepper-firmware", usesInheritance: true, ngImport: i0, template: "<c8y-bulk-operation-stepper [type]=\"type\">\n <ng-container\n *customStep=\"\n 'Select firmware' | translate;\n completed: !!stepData?.firmware;\n buttonsDisabled: !stepData?.firmware;\n onNext: goToVersionOrPatchStep.bind(this)\n \"\n >\n <c8y-select-firmware-step\n [selected]=\"stepData?.firmware\"\n (firmware)=\"onFirmwareSelected($event)\"\n class=\"d-contents\"\n ></c8y-select-firmware-step\n ></ng-container>\n <ng-container\n *customStep=\"\n 'Select version or patch' | translate;\n completed: !!stepData?.versionOrPatch;\n buttonsDisabled: !stepData?.versionOrPatch\n \"\n >\n <c8y-preview-selection-frame\n [header]=\"'Select version or patch' | translate\"\n [name]=\"stepData?.firmware?.name\"\n [description]=\"stepData?.firmware?.description\"\n >\n <c8y-version-or-patch-step\n list\n [selected]=\"stepData?.versionOrPatch\"\n (versionOrPatch)=\"onVersionOrPatchSelected($event)\"\n >\n </c8y-version-or-patch-step>\n </c8y-preview-selection-frame>\n </ng-container>\n</c8y-bulk-operation-stepper>\n", dependencies: [{ kind: "component", type: BulkOperationStepper, selector: "c8y-bulk-operation-stepper", inputs: ["type"], outputs: ["selectionChange"] }, { kind: "directive", type: CustomStep, selector: "[customStep]", inputs: ["customStep", "customStepCompleted", "customStepButtonsDisabled", "customStepOnNext"] }, { kind: "component", type: SelectFirmwareComponent, selector: "c8y-select-firmware-step", inputs: ["selected"], outputs: ["firmware"] }, { kind: "component", type: PreviewSelectionFrameComponent, selector: "c8y-preview-selection-frame", inputs: ["header", "name", "description", "type"] }, { kind: "component", type: VersionOrPatchComponent, selector: "c8y-version-or-patch-step", inputs: ["selected"], outputs: ["versionOrPatch"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
232
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: StepperBulkTypeFirmwareComponent, deps: [{ token: i2.BulkOperationsService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
233
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: StepperBulkTypeFirmwareComponent, isStandalone: true, selector: "c8y-stepper-firmware", usesInheritance: true, ngImport: i0, template: "<c8y-bulk-operation-stepper [type]=\"type\">\n <ng-container\n *customStep=\"\n 'Select firmware' | translate;\n completed: !!stepData?.firmware;\n buttonsDisabled: !stepData?.firmware;\n onNext: goToVersionOrPatchStep.bind(this)\n \"\n >\n <c8y-select-firmware-step\n [selected]=\"stepData?.firmware\"\n (firmware)=\"onFirmwareSelected($event)\"\n class=\"d-contents\"\n ></c8y-select-firmware-step\n ></ng-container>\n <ng-container\n *customStep=\"\n 'Select version or patch' | translate;\n completed: !!stepData?.versionOrPatch;\n buttonsDisabled: !stepData?.versionOrPatch\n \"\n >\n <c8y-preview-selection-frame\n [header]=\"'Select version or patch' | translate\"\n [name]=\"stepData?.firmware?.name\"\n [description]=\"stepData?.firmware?.description\"\n >\n <c8y-version-or-patch-step\n list\n [selected]=\"stepData?.versionOrPatch\"\n (versionOrPatch)=\"onVersionOrPatchSelected($event)\"\n >\n </c8y-version-or-patch-step>\n </c8y-preview-selection-frame>\n </ng-container>\n</c8y-bulk-operation-stepper>\n", dependencies: [{ kind: "component", type: BulkOperationStepper, selector: "c8y-bulk-operation-stepper", inputs: ["type"], outputs: ["selectionChange"] }, { kind: "directive", type: CustomStep, selector: "[customStep]", inputs: ["customStep", "customStepCompleted", "customStepButtonsDisabled", "customStepOnNext"] }, { kind: "component", type: SelectFirmwareComponent, selector: "c8y-select-firmware-step", inputs: ["selected"], outputs: ["firmware"] }, { kind: "component", type: PreviewSelectionFrameComponent, selector: "c8y-preview-selection-frame", inputs: ["header", "name", "description", "type"] }, { kind: "component", type: VersionOrPatchComponent, selector: "c8y-version-or-patch-step", inputs: ["selected"], outputs: ["versionOrPatch"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
234
234
  }
235
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: StepperBulkTypeFirmwareComponent, decorators: [{
235
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: StepperBulkTypeFirmwareComponent, decorators: [{
236
236
  type: Component,
237
237
  args: [{ selector: 'c8y-stepper-firmware', imports: [
238
238
  BulkOperationStepper,
@@ -246,9 +246,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
246
246
 
247
247
  /** Module for the 'Firmware update' operation type stepper */
248
248
  class StepperBulkTypeFirmwareModule {
249
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: StepperBulkTypeFirmwareModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
250
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: StepperBulkTypeFirmwareModule, imports: [StepperBulkTypeFirmwareComponent, VersionOrPatchComponent, SelectFirmwareComponent], exports: [StepperBulkTypeFirmwareComponent] }); }
251
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: StepperBulkTypeFirmwareModule, providers: [
249
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: StepperBulkTypeFirmwareModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
250
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: StepperBulkTypeFirmwareModule, imports: [StepperBulkTypeFirmwareComponent, VersionOrPatchComponent, SelectFirmwareComponent], exports: [StepperBulkTypeFirmwareComponent] }); }
251
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: StepperBulkTypeFirmwareModule, providers: [
252
252
  hookListBulkType({
253
253
  type: BulkOperationType.FIRMWARE,
254
254
  c8yIcon: 'c8y-firmware',
@@ -260,7 +260,7 @@ class StepperBulkTypeFirmwareModule {
260
260
  })
261
261
  ], imports: [StepperBulkTypeFirmwareComponent, VersionOrPatchComponent, SelectFirmwareComponent] }); }
262
262
  }
263
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: StepperBulkTypeFirmwareModule, decorators: [{
263
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: StepperBulkTypeFirmwareModule, decorators: [{
264
264
  type: NgModule,
265
265
  args: [{
266
266
  imports: [StepperBulkTypeFirmwareComponent, VersionOrPatchComponent, SelectFirmwareComponent],
@@ -77,8 +77,8 @@ class SelectSoftwareStepComponent {
77
77
  }
78
78
  return this.repositoryService.listRepositoryEntries(RepositoryType.SOFTWARE, { query });
79
79
  }
80
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SelectSoftwareStepComponent, deps: [{ token: i1.RepositoryService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
81
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: SelectSoftwareStepComponent, isStandalone: true, selector: "c8y-select-software-step", outputs: { software: "software" }, viewQueries: [{ propertyName: "radioButtons", predicate: ListItemRadioComponent, descendants: true }], ngImport: i0, template: "<c8y-select-step-frame\n [header]=\"'Select software' | translate\"\n [noResults]=\"\n ((textFilter$ | async)?.length ||\n (deviceType$ | async)?.length ||\n (softwareTypeFilter$ | async)?.length) &&\n (software$ | async)?.data.length === 0\n \"\n>\n <div\n class=\"row\"\n filters\n >\n <div class=\"col-md-4 m-b-xs-8 m-b-sm-8\">\n <div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n title=\"{{ 'Filter\u2026' | translate }}\"\n placeholder=\"{{ 'Filter\u2026' | translate }}\"\n type=\"search\"\n [ngModel]=\"textFilter$ | async\"\n (ngModelChange)=\"textFilter$.next($event)\"\n />\n <span class=\"input-group-addon\">\n @if ((textFilter$ | async).length === 0) {\n <i c8yIcon=\"search\"></i>\n }\n @if ((textFilter$ | async).length > 0) {\n <i\n class=\"text-muted\"\n c8yIcon=\"times\"\n (click)=\"textFilter$.next('')\"\n ></i>\n }\n </span>\n </div>\n </div>\n <div class=\"col-md-4 m-b-xs-8 m-b-sm-8\">\n <c8y-form-group class=\"m-0\">\n <c8y-typeahead\n placeholder=\"{{ 'Type to filter device types\u2026' | translate }}\"\n name=\"deviceType\"\n [(ngModel)]=\"selectedDeviceType\"\n (onSearch)=\"deviceType$.next($event)\"\n [allowFreeEntries]=\"false\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"selectedDeviceType = { name: '' }; deviceType$.next('')\"\n [active]=\"!selectedDeviceType?.name\"\n >\n <span>{{ 'All device types' | translate }}</span>\n </c8y-li>\n @for (deviceType of deviceTypes; track deviceType) {\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"selectedDeviceType = deviceType; deviceType$.next(deviceType.name)\"\n [active]=\"selectedDeviceType === deviceType\"\n >\n <c8y-highlight\n [text]=\"deviceType.name\"\n [pattern]=\"deviceType$ | async\"\n ></c8y-highlight>\n </c8y-li>\n }\n </c8y-typeahead>\n <c8y-messages>\n <c8y-message\n name=\"notExisting\"\n [text]=\"'Select one of the existing device types.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n <div class=\"col-md-4\">\n <c8y-form-group class=\"m-0\">\n <c8y-software-type\n [required]=\"false\"\n [emitResultsOnly]=\"true\"\n [showBtnInNotFoundMessage]=\"false\"\n [allowFreeEntries]=\"false\"\n [placeholder]=\"'Type to filter software types\u2026' | translate\"\n [showClearSelectionOption]=\"true\"\n (onSelectSoftware)=\"softwareTypeFilter$.next($event?.softwareType)\"\n ></c8y-software-type>\n <c8y-messages>\n <c8y-message\n name=\"notExisting\"\n [text]=\"'Select one of the existing device types.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n <c8y-li\n class=\"hidden-sm hidden-xs m-r-8 m-l-8\"\n header\n >\n <c8y-li-icon><i class=\"p-l-24\"></i></c8y-li-icon>\n <c8y-li-body class=\"content-flex-40 p-r-32\">\n <div class=\"col-5\">\n <span\n class=\"text-truncate\"\n title=\" {{ 'Name' | translate }} \"\n >\n {{ 'Name' | translate }}\n </span>\n </div>\n <div class=\"col-2\">\n <span\n class=\"text-truncate\"\n title=\"{{ 'Device type' | translate }}\"\n >\n {{ 'Device type' | translate }}\n </span>\n </div>\n <div class=\"col-3\">\n <span\n class=\"text-truncate\"\n title=\"{{ 'Software type' | translate }}\"\n >\n {{ 'Software type' | translate }}\n </span>\n </div>\n <div class=\"col-2\">\n <span\n class=\"text-truncate\"\n title=\"{{ 'Versions' | translate }}\"\n >\n {{ 'Versions' | translate }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n <c8y-list-group list>\n <c8y-li\n *c8yFor=\"let software of software$ | async; loadMore: 'auto'\"\n #li\n >\n <c8y-li-icon>\n <i c8yIcon=\"c8y-tools\"></i>\n </c8y-li-icon>\n <div class=\"content-flex-40\">\n <div class=\"col-5 m-b-xs-8\">\n <button\n class=\"btn-clean\"\n title=\"{{ software.name }}\"\n type=\"button\"\n (click)=\"li.collapsed = !li.collapsed\"\n >\n <c8y-highlight\n [text]=\"software.name\"\n [pattern]=\"textFilter$ | async\"\n ></c8y-highlight>\n </button>\n </div>\n <div class=\"col-2 m-b-xs-8\">\n <div\n class=\"text-truncate\"\n title=\"{{ 'Device type' | translate }}: {{ getDeviceTypeTitle(software) }}\"\n >\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n Device type\n </span>\n @if (software.c8y_Filter?.type) {\n <span>\n {{ software.c8y_Filter?.type }}\n </span>\n } @else {\n <small>\n <em\n class=\"text-muted\"\n translate\n >\n Undefined`device type`\n </em>\n </small>\n }\n </div>\n </div>\n <div class=\"col-3 m-b-xs-8\">\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n Software type\n </span>\n @if (software.softwareType) {\n <span class=\"label label-info\">\n {{ software.softwareType }}\n </span>\n } @else {\n <small class=\"text-muted\">\n <em translate>Undefined`software type`</em>\n </small>\n }\n </div>\n <div class=\"col-2\">\n @if (isLegacy(software)) {\n <span class=\"label label-warning m-l-auto-sm\">\n <span translate>Legacy</span>\n </span>\n }\n @if (!isLegacy(software)) {\n <span>\n @if ((getBaseVersionsCount$(software) | async) === null) {\n <span>\n <span class=\"label label-info\">\n <i\n class=\"icon-spin\"\n c8yIcon=\"circle-o-notch\"\n ></i>\n </span>\n </span>\n }\n @if ((getBaseVersionsCount$(software) | async) !== null) {\n <span>\n <span [ngPlural]=\"getBaseVersionsCount$(software) | async\">\n <ng-template ngPluralCase=\"=1\">\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n version\n </span>\n <span class=\"badge badge-info m-l-auto-sm\">1</span>\n </ng-template>\n <ng-template ngPluralCase=\"other\">\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n versions\n </span>\n <span class=\"badge badge-info m-l-auto-sm\">\n {{ getBaseVersionsCount$(software) | async }}\n </span>\n </ng-template>\n </span>\n </span>\n }\n </span>\n }\n </div>\n </div>\n <c8y-li-collapse>\n <c8y-list-group>\n <c8y-li *c8yFor=\"let option of getVersions(software) | async\">\n <c8y-li-radio\n [name]=\"software.id\"\n (onSelect)=\"selectSoftware({ option: option, software: software })\"\n ></c8y-li-radio>\n <c8y-li-body class=\"content-flex-40 p-r-16\">\n <div class=\"col-4\">\n {{ option.c8y_Software.version }}\n </div>\n <div class=\"col-5\">\n <p class=\"text-truncate\">\n <span\n class=\"text-label-small m-r-8\"\n translate\n >\n File\n </span>\n @if (option.c8y_Software.url === '') {\n <span title=\"{{ 'Provided by device' | translate }}\">\n {{ 'Provided by device' | translate }}\n </span>\n } @else {\n <span title=\"{{ option.c8y_Software.url }}\">\n {{ option.c8y_Software.url }}\n </span>\n }\n </p>\n </div>\n @if (option.id === software.selectedId) {\n <div class=\"col-3 d-flex\">\n <div\n class=\"c8y-select-wrapper d-inline-block m-l-auto\"\n style=\"margin: -4px 0\"\n >\n <select\n class=\"form-control input-sm\"\n id=\"action\"\n [(ngModel)]=\"option.action\"\n (change)=\"emitSoftware({ option: option, software: software })\"\n >\n <option [ngValue]=\"'install'\">\n {{ 'Install/update`software`' | translate }}\n </option>\n <option [ngValue]=\"'delete'\">{{ 'Remove`software`' | translate }}</option>\n </select>\n <span></span>\n </div>\n </div>\n }\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n </c8y-li-collapse>\n </c8y-li>\n </c8y-list-group>\n</c8y-select-step-frame>\n", dependencies: [{ kind: "component", type: SelectStepFrameComponent, selector: "c8y-select-step-frame", inputs: ["header", "noResults"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { 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.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { 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: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: TypeaheadComponent, selector: "c8y-typeahead", inputs: ["required", "maxlength", "disabled", "allowFreeEntries", "placeholder", "displayProperty", "icon", "name", "autoClose", "hideNew", "container", "selected", "title", "highlightFirstItem"], outputs: ["onSearch", "onIconClick"] }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage", "additionalMessages"] }, { kind: "directive", type: MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "ngmodule", type: SharedRepositoryModule }, { kind: "component", type: i1.SoftwareTypeComponent, selector: "c8y-software-type", inputs: ["softwareTypeMO", "disabled", "style", "required", "placeholder", "emitResultsOnly", "showBtnInNotFoundMessage", "allowFreeEntries", "showClearSelectionOption", "clearSelectionOptionLabel", "presetSoftwareTypes"], outputs: ["onSelectSoftware"] }, { kind: "component", type: ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "directive", type: ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: NgPlural, selector: "[ngPlural]", inputs: ["ngPlural"] }, { kind: "directive", type: NgPluralCase, selector: "[ngPluralCase]" }, { kind: "component", type: ListItemCollapseComponent, selector: "c8y-list-item-collapse, c8y-li-collapse", inputs: ["collapseWay"] }, { kind: "component", type: ListItemRadioComponent, selector: "c8y-list-item-radio, c8y-li-radio", inputs: ["selected", "name", "disabled", "value"], outputs: ["onSelect"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
80
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: SelectSoftwareStepComponent, deps: [{ token: i1.RepositoryService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
81
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: SelectSoftwareStepComponent, isStandalone: true, selector: "c8y-select-software-step", outputs: { software: "software" }, viewQueries: [{ propertyName: "radioButtons", predicate: ListItemRadioComponent, descendants: true }], ngImport: i0, template: "<c8y-select-step-frame\n [header]=\"'Select software' | translate\"\n [noResults]=\"\n ((textFilter$ | async)?.length ||\n (deviceType$ | async)?.length ||\n (softwareTypeFilter$ | async)?.length) &&\n (software$ | async)?.data.length === 0\n \"\n>\n <div\n class=\"row\"\n filters\n >\n <div class=\"col-md-4 m-b-xs-8 m-b-sm-8\">\n <div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n title=\"{{ 'Filter\u2026' | translate }}\"\n placeholder=\"{{ 'Filter\u2026' | translate }}\"\n type=\"search\"\n [ngModel]=\"textFilter$ | async\"\n (ngModelChange)=\"textFilter$.next($event)\"\n />\n <span class=\"input-group-addon\">\n @if ((textFilter$ | async).length === 0) {\n <i c8yIcon=\"search\"></i>\n }\n @if ((textFilter$ | async).length > 0) {\n <i\n class=\"text-muted\"\n c8yIcon=\"times\"\n (click)=\"textFilter$.next('')\"\n ></i>\n }\n </span>\n </div>\n </div>\n <div class=\"col-md-4 m-b-xs-8 m-b-sm-8\">\n <c8y-form-group class=\"m-0\">\n <c8y-typeahead\n placeholder=\"{{ 'Type to filter device types\u2026' | translate }}\"\n name=\"deviceType\"\n [(ngModel)]=\"selectedDeviceType\"\n (onSearch)=\"deviceType$.next($event)\"\n [allowFreeEntries]=\"false\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"selectedDeviceType = { name: '' }; deviceType$.next('')\"\n [active]=\"!selectedDeviceType?.name\"\n >\n <span>{{ 'All device types' | translate }}</span>\n </c8y-li>\n @for (deviceType of deviceTypes; track deviceType) {\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"selectedDeviceType = deviceType; deviceType$.next(deviceType.name)\"\n [active]=\"selectedDeviceType === deviceType\"\n >\n <c8y-highlight\n [text]=\"deviceType.name\"\n [pattern]=\"deviceType$ | async\"\n ></c8y-highlight>\n </c8y-li>\n }\n </c8y-typeahead>\n <c8y-messages>\n <c8y-message\n name=\"notExisting\"\n [text]=\"'Select one of the existing device types.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n <div class=\"col-md-4\">\n <c8y-form-group class=\"m-0\">\n <c8y-software-type\n [required]=\"false\"\n [emitResultsOnly]=\"true\"\n [showBtnInNotFoundMessage]=\"false\"\n [allowFreeEntries]=\"false\"\n [placeholder]=\"'Type to filter software types\u2026' | translate\"\n [showClearSelectionOption]=\"true\"\n (onSelectSoftware)=\"softwareTypeFilter$.next($event?.softwareType)\"\n ></c8y-software-type>\n <c8y-messages>\n <c8y-message\n name=\"notExisting\"\n [text]=\"'Select one of the existing device types.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n <c8y-li\n class=\"hidden-sm hidden-xs m-r-8 m-l-8\"\n header\n >\n <c8y-li-icon><i class=\"p-l-24\"></i></c8y-li-icon>\n <c8y-li-body class=\"content-flex-40 p-r-32\">\n <div class=\"col-5\">\n <span\n class=\"text-truncate\"\n title=\" {{ 'Name' | translate }} \"\n >\n {{ 'Name' | translate }}\n </span>\n </div>\n <div class=\"col-2\">\n <span\n class=\"text-truncate\"\n title=\"{{ 'Device type' | translate }}\"\n >\n {{ 'Device type' | translate }}\n </span>\n </div>\n <div class=\"col-3\">\n <span\n class=\"text-truncate\"\n title=\"{{ 'Software type' | translate }}\"\n >\n {{ 'Software type' | translate }}\n </span>\n </div>\n <div class=\"col-2\">\n <span\n class=\"text-truncate\"\n title=\"{{ 'Versions' | translate }}\"\n >\n {{ 'Versions' | translate }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n <c8y-list-group list>\n <c8y-li\n *c8yFor=\"let software of software$ | async; loadMore: 'auto'\"\n #li\n >\n <c8y-li-icon>\n <i c8yIcon=\"c8y-tools\"></i>\n </c8y-li-icon>\n <div class=\"content-flex-40\">\n <div class=\"col-5 m-b-xs-8\">\n <button\n class=\"btn-clean\"\n title=\"{{ software.name }}\"\n type=\"button\"\n (click)=\"li.collapsed = !li.collapsed\"\n >\n <c8y-highlight\n [text]=\"software.name\"\n [pattern]=\"textFilter$ | async\"\n ></c8y-highlight>\n </button>\n </div>\n <div class=\"col-2 m-b-xs-8\">\n <div\n class=\"text-truncate\"\n title=\"{{ 'Device type' | translate }}: {{ getDeviceTypeTitle(software) }}\"\n >\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n Device type\n </span>\n @if (software.c8y_Filter?.type) {\n <span>\n {{ software.c8y_Filter?.type }}\n </span>\n } @else {\n <small>\n <em\n class=\"text-muted\"\n translate\n >\n Undefined`device type`\n </em>\n </small>\n }\n </div>\n </div>\n <div class=\"col-3 m-b-xs-8\">\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n Software type\n </span>\n @if (software.softwareType) {\n <span class=\"label label-info\">\n {{ software.softwareType }}\n </span>\n } @else {\n <small class=\"text-muted\">\n <em translate>Undefined`software type`</em>\n </small>\n }\n </div>\n <div class=\"col-2\">\n @if (isLegacy(software)) {\n <span class=\"label label-warning m-l-auto-sm\">\n <span translate>Legacy</span>\n </span>\n }\n @if (!isLegacy(software)) {\n <span>\n @if ((getBaseVersionsCount$(software) | async) === null) {\n <span>\n <span class=\"label label-info\">\n <i\n class=\"icon-spin\"\n c8yIcon=\"circle-o-notch\"\n ></i>\n </span>\n </span>\n }\n @if ((getBaseVersionsCount$(software) | async) !== null) {\n <span>\n <span [ngPlural]=\"getBaseVersionsCount$(software) | async\">\n <ng-template ngPluralCase=\"=1\">\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n version\n </span>\n <span class=\"badge badge-info m-l-auto-sm\">1</span>\n </ng-template>\n <ng-template ngPluralCase=\"other\">\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n versions\n </span>\n <span class=\"badge badge-info m-l-auto-sm\">\n {{ getBaseVersionsCount$(software) | async }}\n </span>\n </ng-template>\n </span>\n </span>\n }\n </span>\n }\n </div>\n </div>\n <c8y-li-collapse>\n <c8y-list-group>\n <c8y-li *c8yFor=\"let option of getVersions(software) | async\">\n <c8y-li-radio\n [name]=\"software.id\"\n (onSelect)=\"selectSoftware({ option: option, software: software })\"\n ></c8y-li-radio>\n <c8y-li-body class=\"content-flex-40 p-r-16\">\n <div class=\"col-4\">\n {{ option.c8y_Software.version }}\n </div>\n <div class=\"col-5\">\n <p class=\"text-truncate\">\n <span\n class=\"text-label-small m-r-8\"\n translate\n >\n File\n </span>\n @if (option.c8y_Software.url === '') {\n <span title=\"{{ 'Provided by device' | translate }}\">\n {{ 'Provided by device' | translate }}\n </span>\n } @else {\n <span title=\"{{ option.c8y_Software.url }}\">\n {{ option.c8y_Software.url }}\n </span>\n }\n </p>\n </div>\n @if (option.id === software.selectedId) {\n <div class=\"col-3 d-flex\">\n <div\n class=\"c8y-select-wrapper d-inline-block m-l-auto\"\n style=\"margin: -4px 0\"\n >\n <select\n class=\"form-control input-sm\"\n id=\"action\"\n [(ngModel)]=\"option.action\"\n (change)=\"emitSoftware({ option: option, software: software })\"\n >\n <option [ngValue]=\"'install'\">\n {{ 'Install/update`software`' | translate }}\n </option>\n <option [ngValue]=\"'delete'\">{{ 'Remove`software`' | translate }}</option>\n </select>\n <span></span>\n </div>\n </div>\n }\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n </c8y-li-collapse>\n </c8y-li>\n </c8y-list-group>\n</c8y-select-step-frame>\n", dependencies: [{ kind: "component", type: SelectStepFrameComponent, selector: "c8y-select-step-frame", inputs: ["header", "noResults"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { 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.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { 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: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: TypeaheadComponent, selector: "c8y-typeahead", inputs: ["required", "maxlength", "disabled", "allowFreeEntries", "placeholder", "displayProperty", "icon", "name", "autoClose", "hideNew", "container", "selected", "title", "highlightFirstItem"], outputs: ["onSearch", "onIconClick"] }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage", "additionalMessages"] }, { kind: "directive", type: MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "ngmodule", type: SharedRepositoryModule }, { kind: "component", type: i1.SoftwareTypeComponent, selector: "c8y-software-type", inputs: ["softwareTypeMO", "disabled", "style", "required", "placeholder", "emitResultsOnly", "showBtnInNotFoundMessage", "allowFreeEntries", "showClearSelectionOption", "clearSelectionOptionLabel", "presetSoftwareTypes"], outputs: ["onSelectSoftware"] }, { kind: "component", type: ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "directive", type: ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: NgPlural, selector: "[ngPlural]", inputs: ["ngPlural"] }, { kind: "directive", type: NgPluralCase, selector: "[ngPluralCase]" }, { kind: "component", type: ListItemCollapseComponent, selector: "c8y-list-item-collapse, c8y-li-collapse", inputs: ["collapseWay"] }, { kind: "component", type: ListItemRadioComponent, selector: "c8y-list-item-radio, c8y-li-radio", inputs: ["selected", "name", "disabled", "value"], outputs: ["onSelect"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
82
82
  }
83
83
  __decorate([
84
84
  memoize(property('id')),
@@ -92,7 +92,7 @@ __decorate([
92
92
  __metadata("design:paramtypes", [Object]),
93
93
  __metadata("design:returntype", void 0)
94
94
  ], SelectSoftwareStepComponent.prototype, "getVersions", null);
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SelectSoftwareStepComponent, decorators: [{
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: SelectSoftwareStepComponent, decorators: [{
96
96
  type: Component,
97
97
  args: [{ selector: 'c8y-select-software-step', imports: [
98
98
  SelectStepFrameComponent,
@@ -146,10 +146,10 @@ class ConfirmSoftwareSelectionStepComponent {
146
146
  .map(val => val.software.c8y_Filter.type)
147
147
  .filter(val => !!val));
148
148
  }
149
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ConfirmSoftwareSelectionStepComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
150
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: ConfirmSoftwareSelectionStepComponent, isStandalone: true, selector: "c8y-confirm-software-selection-step", inputs: { selectedItems: "selectedItems" }, usesOnChanges: true, ngImport: i0, template: "<c8y-preview-selection-frame [header]=\"'Confirm selection' | translate\">\n <ng-container *previewBlock=\"'Device type' | translate\">\n <ng-container *ngIf=\"deviceTypes.length > 0; else noType\">\n <span *ngFor=\"let deviceType of deviceTypes; let last = last\"\n >{{ deviceType }}{{ last ? '' : ', ' }}</span\n >\n </ng-container>\n <ng-template #noType>\n <em class=\"text-muted\" translate>Undefined`device type`</em>\n </ng-template>\n </ng-container>\n <c8y-list-group\n *previewBlock=\"'Installations/updates`software`' | translate; if: !!selectedToInstall.length\"\n >\n <c8y-li *ngFor=\"let selectedItem of selectedToInstall\">\n <c8y-li-icon>\n <i c8yIcon=\"c8y-tools\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-10\">\n <div class=\"col-6 text-truncate\" title=\"{{ selectedItem.software.name }}\">\n {{ selectedItem.software.name }}\n </div>\n <div class=\"col-6 text-right\" *ngIf=\"!!selectedItem?.version?.c8y_Software?.version\">\n <span class=\"text-label-small m-r-4\" translate> Version </span>\n <span>\n {{ selectedItem.version.c8y_Software.version }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n <c8y-list-group *previewBlock=\"'Removals`software`' | translate; if: !!selectedToDelete.length\">\n <c8y-li *ngFor=\"let selectedItem of selectedToDelete\">\n <c8y-li-icon>\n <i c8yIcon=\"c8y-tools\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-10\">\n <div class=\"col-6\">\n {{ selectedItem.software.name }}\n </div>\n <div class=\"col-6 text-right\">\n <span class=\"text-label-small m-r-8\" translate> Version </span>\n <span>\n {{ selectedItem.version.c8y_Software.version }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n</c8y-preview-selection-frame>\n", dependencies: [{ kind: "component", type: PreviewSelectionFrameComponent, selector: "c8y-preview-selection-frame", inputs: ["header", "name", "description", "type"] }, { kind: "directive", type: PreviewBlockDirective, selector: "[previewBlock]", inputs: ["previewBlock", "previewBlockIf"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
149
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: ConfirmSoftwareSelectionStepComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
150
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: ConfirmSoftwareSelectionStepComponent, isStandalone: true, selector: "c8y-confirm-software-selection-step", inputs: { selectedItems: "selectedItems" }, usesOnChanges: true, ngImport: i0, template: "<c8y-preview-selection-frame [header]=\"'Confirm selection' | translate\">\n <ng-container *previewBlock=\"'Device type' | translate\">\n <ng-container *ngIf=\"deviceTypes.length > 0; else noType\">\n <span *ngFor=\"let deviceType of deviceTypes; let last = last\"\n >{{ deviceType }}{{ last ? '' : ', ' }}</span\n >\n </ng-container>\n <ng-template #noType>\n <em class=\"text-muted\" translate>Undefined`device type`</em>\n </ng-template>\n </ng-container>\n <c8y-list-group\n *previewBlock=\"'Installations/updates`software`' | translate; if: !!selectedToInstall.length\"\n >\n <c8y-li *ngFor=\"let selectedItem of selectedToInstall\">\n <c8y-li-icon>\n <i c8yIcon=\"c8y-tools\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-10\">\n <div class=\"col-6 text-truncate\" title=\"{{ selectedItem.software.name }}\">\n {{ selectedItem.software.name }}\n </div>\n <div class=\"col-6 text-right\" *ngIf=\"!!selectedItem?.version?.c8y_Software?.version\">\n <span class=\"text-label-small m-r-4\" translate> Version </span>\n <span>\n {{ selectedItem.version.c8y_Software.version }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n <c8y-list-group *previewBlock=\"'Removals`software`' | translate; if: !!selectedToDelete.length\">\n <c8y-li *ngFor=\"let selectedItem of selectedToDelete\">\n <c8y-li-icon>\n <i c8yIcon=\"c8y-tools\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-10\">\n <div class=\"col-6\">\n {{ selectedItem.software.name }}\n </div>\n <div class=\"col-6 text-right\">\n <span class=\"text-label-small m-r-8\" translate> Version </span>\n <span>\n {{ selectedItem.version.c8y_Software.version }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n</c8y-preview-selection-frame>\n", dependencies: [{ kind: "component", type: PreviewSelectionFrameComponent, selector: "c8y-preview-selection-frame", inputs: ["header", "name", "description", "type"] }, { kind: "directive", type: PreviewBlockDirective, selector: "[previewBlock]", inputs: ["previewBlock", "previewBlockIf"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
151
151
  }
152
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ConfirmSoftwareSelectionStepComponent, decorators: [{
152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: ConfirmSoftwareSelectionStepComponent, decorators: [{
153
153
  type: Component,
154
154
  args: [{ selector: 'c8y-confirm-software-selection-step', imports: [
155
155
  PreviewSelectionFrameComponent,
@@ -236,10 +236,10 @@ class StepperBulkTypeSoftwareComponent extends BaseStepperComponent {
236
236
  .map(item => item.software.c8y_Filter && item.software.c8y_Filter.type)
237
237
  .filter(type => !!type));
238
238
  }
239
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: StepperBulkTypeSoftwareComponent, deps: [{ token: i1$1.ModalService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
240
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: StepperBulkTypeSoftwareComponent, isStandalone: true, selector: "c8y-stepper-bulk-type-software", viewQueries: [{ propertyName: "selectSoftware", first: true, predicate: SelectSoftwareStepComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<c8y-bulk-operation-stepper [type]=\"type\">\n <ng-container\n *customStep=\"\n 'Select software' | translate;\n completed: !!selectedSoftware.length;\n buttonsDisabled: !selectedSoftware.length;\n onNext: confirmSoftwareSelection.bind(this)\n \"\n >\n <c8y-select-software-step\n (software)=\"onSoftwareSelected($event)\"\n class=\"d-contents\"\n ></c8y-select-software-step>\n </ng-container>\n <ng-container *customStep=\"'Confirm selected software' | translate\">\n <c8y-confirm-software-selection-step\n class=\"d-contents\"\n [selectedItems]=\"selectedSoftware\"\n ></c8y-confirm-software-selection-step>\n </ng-container>\n</c8y-bulk-operation-stepper>\n", dependencies: [{ kind: "component", type: BulkOperationStepper, selector: "c8y-bulk-operation-stepper", inputs: ["type"], outputs: ["selectionChange"] }, { kind: "directive", type: CustomStep, selector: "[customStep]", inputs: ["customStep", "customStepCompleted", "customStepButtonsDisabled", "customStepOnNext"] }, { kind: "component", type: SelectSoftwareStepComponent, selector: "c8y-select-software-step", outputs: ["software"] }, { kind: "component", type: ConfirmSoftwareSelectionStepComponent, selector: "c8y-confirm-software-selection-step", inputs: ["selectedItems"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
239
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: StepperBulkTypeSoftwareComponent, deps: [{ token: i1$1.ModalService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
240
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: StepperBulkTypeSoftwareComponent, isStandalone: true, selector: "c8y-stepper-bulk-type-software", viewQueries: [{ propertyName: "selectSoftware", first: true, predicate: SelectSoftwareStepComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<c8y-bulk-operation-stepper [type]=\"type\">\n <ng-container\n *customStep=\"\n 'Select software' | translate;\n completed: !!selectedSoftware.length;\n buttonsDisabled: !selectedSoftware.length;\n onNext: confirmSoftwareSelection.bind(this)\n \"\n >\n <c8y-select-software-step\n (software)=\"onSoftwareSelected($event)\"\n class=\"d-contents\"\n ></c8y-select-software-step>\n </ng-container>\n <ng-container *customStep=\"'Confirm selected software' | translate\">\n <c8y-confirm-software-selection-step\n class=\"d-contents\"\n [selectedItems]=\"selectedSoftware\"\n ></c8y-confirm-software-selection-step>\n </ng-container>\n</c8y-bulk-operation-stepper>\n", dependencies: [{ kind: "component", type: BulkOperationStepper, selector: "c8y-bulk-operation-stepper", inputs: ["type"], outputs: ["selectionChange"] }, { kind: "directive", type: CustomStep, selector: "[customStep]", inputs: ["customStep", "customStepCompleted", "customStepButtonsDisabled", "customStepOnNext"] }, { kind: "component", type: SelectSoftwareStepComponent, selector: "c8y-select-software-step", outputs: ["software"] }, { kind: "component", type: ConfirmSoftwareSelectionStepComponent, selector: "c8y-confirm-software-selection-step", inputs: ["selectedItems"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
241
241
  }
242
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: StepperBulkTypeSoftwareComponent, decorators: [{
242
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: StepperBulkTypeSoftwareComponent, decorators: [{
243
243
  type: Component,
244
244
  args: [{ selector: 'c8y-stepper-bulk-type-software', imports: [
245
245
  BulkOperationStepper,
@@ -255,11 +255,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
255
255
 
256
256
  /** Module for the 'Software update' operation type stepper */
257
257
  class StepperBulkTypeSoftwareModule {
258
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: StepperBulkTypeSoftwareModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
259
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: StepperBulkTypeSoftwareModule, imports: [StepperBulkTypeSoftwareComponent,
258
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: StepperBulkTypeSoftwareModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
259
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: StepperBulkTypeSoftwareModule, imports: [StepperBulkTypeSoftwareComponent,
260
260
  ConfirmSoftwareSelectionStepComponent,
261
261
  SelectSoftwareStepComponent], exports: [StepperBulkTypeSoftwareComponent] }); }
262
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: StepperBulkTypeSoftwareModule, providers: [
262
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: StepperBulkTypeSoftwareModule, providers: [
263
263
  hookListBulkType({
264
264
  type: BulkOperationType.SOFTWARE,
265
265
  c8yIcon: 'c8y-tools',
@@ -273,7 +273,7 @@ class StepperBulkTypeSoftwareModule {
273
273
  ConfirmSoftwareSelectionStepComponent,
274
274
  SelectSoftwareStepComponent] }); }
275
275
  }
276
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: StepperBulkTypeSoftwareModule, decorators: [{
276
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: StepperBulkTypeSoftwareModule, decorators: [{
277
277
  type: NgModule,
278
278
  args: [{
279
279
  imports: [
@@ -8,10 +8,10 @@ class PreviewBlockDirective {
8
8
  this.templateRef = templateRef;
9
9
  this.show = true;
10
10
  }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: PreviewBlockDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
12
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: PreviewBlockDirective, isStandalone: true, selector: "[previewBlock]", inputs: { label: ["previewBlock", "label"], show: ["previewBlockIf", "show"] }, ngImport: i0 }); }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: PreviewBlockDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
12
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.19", type: PreviewBlockDirective, isStandalone: true, selector: "[previewBlock]", inputs: { label: ["previewBlock", "label"], show: ["previewBlockIf", "show"] }, ngImport: i0 }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: PreviewBlockDirective, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: PreviewBlockDirective, decorators: [{
15
15
  type: Directive,
16
16
  args: [{ selector: '[previewBlock]' }]
17
17
  }], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { label: [{
@@ -30,10 +30,10 @@ class PreviewSelectionFrameComponent {
30
30
  this.type = type;
31
31
  this.showType = true;
32
32
  }
33
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: PreviewSelectionFrameComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: PreviewSelectionFrameComponent, isStandalone: true, selector: "c8y-preview-selection-frame", inputs: { header: "header", name: "name", description: "description", _type: ["type", "_type"] }, queries: [{ propertyName: "previewBlocks", predicate: PreviewBlockDirective }], viewQueries: [{ propertyName: "listRef", first: true, predicate: ["list"], descendants: true }], ngImport: i0, template: "<div class=\"card-block p-t-0 flex-no-shrink separator-bottom col-xs-12\">\n <div class=\"d-flex p-b-8 p-t-4 j-c-center\">\n <div>\n <h4 class=\"text-center text-normal\">{{ header | translate }}</h4>\n <p *ngIf=\"name || description\" class=\"text-center p-t-16 p-b-8 text-truncate\">\n <strong *ngIf=\"name\" [title]=\"name\">{{ name }}</strong\n ><br />\n <small *ngIf=\"description\" [title]=\"description\">{{ description }}</small>\n </p>\n <p class=\"text-center\" *ngIf=\"showType\">\n <span class=\"label label-primary\" *ngIf=\"type; else noType\">\n {{ type }}\n </span>\n <ng-template #noType>\n <span class=\"label label-default\">\n {{ 'Undefined' | translate }}\n </span>\n </ng-template>\n </p>\n </div>\n </div>\n</div>\n<div *ngIf=\"previewBlocks?.length\" class=\"col-xs-12 flex-grow no-gutter\">\n <div class=\"card-inner-scroll fit-h\">\n <div class=\"card-block\">\n <ng-container *ngFor=\"let block of previewBlocks\">\n <div *ngIf=\"block.show\" class=\"d-flex p-b-8 j-c-center\">\n <div class=\"col-xs-12 col-sm-6\">\n <div class=\"text-truncate\" [title]=\"block.label | translate\">\n <span class=\"legend form-block\">{{ block.label | translate }}</span>\n <ng-container *ngTemplateOutlet=\"block.templateRef\"></ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n<div [style.display]=\"listRef?.nativeElement?.children?.length ? 'contents' : 'none'\">\n <div class=\"col-xs-12 flex-grow no-gutter\">\n <div class=\"card-inner-scroll fit-h\">\n <div #list class=\"card-block p-t-0 p-b-0\">\n <ng-content select=\"[list]\"> </ng-content>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: PreviewSelectionFrameComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: PreviewSelectionFrameComponent, isStandalone: true, selector: "c8y-preview-selection-frame", inputs: { header: "header", name: "name", description: "description", _type: ["type", "_type"] }, queries: [{ propertyName: "previewBlocks", predicate: PreviewBlockDirective }], viewQueries: [{ propertyName: "listRef", first: true, predicate: ["list"], descendants: true }], ngImport: i0, template: "<div class=\"card-block p-t-0 flex-no-shrink separator-bottom col-xs-12\">\n <div class=\"d-flex p-b-8 p-t-4 j-c-center\">\n <div>\n <h4 class=\"text-center text-normal\">{{ header | translate }}</h4>\n <p *ngIf=\"name || description\" class=\"text-center p-t-16 p-b-8 text-truncate\">\n <strong *ngIf=\"name\" [title]=\"name\">{{ name }}</strong\n ><br />\n <small *ngIf=\"description\" [title]=\"description\">{{ description }}</small>\n </p>\n <p class=\"text-center\" *ngIf=\"showType\">\n <span class=\"label label-primary\" *ngIf=\"type; else noType\">\n {{ type }}\n </span>\n <ng-template #noType>\n <span class=\"label label-default\">\n {{ 'Undefined' | translate }}\n </span>\n </ng-template>\n </p>\n </div>\n </div>\n</div>\n<div *ngIf=\"previewBlocks?.length\" class=\"col-xs-12 flex-grow no-gutter\">\n <div class=\"card-inner-scroll fit-h\">\n <div class=\"card-block\">\n <ng-container *ngFor=\"let block of previewBlocks\">\n <div *ngIf=\"block.show\" class=\"d-flex p-b-8 j-c-center\">\n <div class=\"col-xs-12 col-sm-6\">\n <div class=\"text-truncate\" [title]=\"block.label | translate\">\n <span class=\"legend form-block\">{{ block.label | translate }}</span>\n <ng-container *ngTemplateOutlet=\"block.templateRef\"></ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n<div [style.display]=\"listRef?.nativeElement?.children?.length ? 'contents' : 'none'\">\n <div class=\"col-xs-12 flex-grow no-gutter\">\n <div class=\"card-inner-scroll fit-h\">\n <div #list class=\"card-block p-t-0 p-b-0\">\n <ng-content select=\"[list]\"> </ng-content>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
35
35
  }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: PreviewSelectionFrameComponent, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: PreviewSelectionFrameComponent, decorators: [{
37
37
  type: Component,
38
38
  args: [{ selector: 'c8y-preview-selection-frame', imports: [NgIf, NgFor, NgTemplateOutlet, C8yTranslatePipe], template: "<div class=\"card-block p-t-0 flex-no-shrink separator-bottom col-xs-12\">\n <div class=\"d-flex p-b-8 p-t-4 j-c-center\">\n <div>\n <h4 class=\"text-center text-normal\">{{ header | translate }}</h4>\n <p *ngIf=\"name || description\" class=\"text-center p-t-16 p-b-8 text-truncate\">\n <strong *ngIf=\"name\" [title]=\"name\">{{ name }}</strong\n ><br />\n <small *ngIf=\"description\" [title]=\"description\">{{ description }}</small>\n </p>\n <p class=\"text-center\" *ngIf=\"showType\">\n <span class=\"label label-primary\" *ngIf=\"type; else noType\">\n {{ type }}\n </span>\n <ng-template #noType>\n <span class=\"label label-default\">\n {{ 'Undefined' | translate }}\n </span>\n </ng-template>\n </p>\n </div>\n </div>\n</div>\n<div *ngIf=\"previewBlocks?.length\" class=\"col-xs-12 flex-grow no-gutter\">\n <div class=\"card-inner-scroll fit-h\">\n <div class=\"card-block\">\n <ng-container *ngFor=\"let block of previewBlocks\">\n <div *ngIf=\"block.show\" class=\"d-flex p-b-8 j-c-center\">\n <div class=\"col-xs-12 col-sm-6\">\n <div class=\"text-truncate\" [title]=\"block.label | translate\">\n <span class=\"legend form-block\">{{ block.label | translate }}</span>\n <ng-container *ngTemplateOutlet=\"block.templateRef\"></ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n<div [style.display]=\"listRef?.nativeElement?.children?.length ? 'contents' : 'none'\">\n <div class=\"col-xs-12 flex-grow no-gutter\">\n <div class=\"card-inner-scroll fit-h\">\n <div #list class=\"card-block p-t-0 p-b-0\">\n <ng-content select=\"[list]\"> </ng-content>\n </div>\n </div>\n </div>\n</div>\n" }]
39
39
  }], propDecorators: { header: [{
@@ -54,10 +54,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
54
54
  }] } });
55
55
 
56
56
  class SelectStepFrameComponent {
57
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SelectStepFrameComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
58
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: SelectStepFrameComponent, isStandalone: true, selector: "c8y-select-step-frame", inputs: { header: "header", noResults: "noResults" }, ngImport: i0, template: "<div class=\"card-block overflow-visible flex-no-shrink col-xs-12 p-b-0 p-t-4 separator-bottom\">\n <div class=\"d-flex j-c-center m-b-24\">\n <div class=\"col-xs-12 col-sm-8\">\n <h4 class=\"text-normal text-center m-b-16\">\n {{ header | translate }}\n </h4>\n <ng-content select=\"[filters]\"></ng-content>\n </div>\n </div>\n <ng-content select=\"[header]\"></ng-content>\n</div>\n<c8y-search-result-empty *ngIf=\"noResults\"> </c8y-search-result-empty>\n<div class=\"col-xs-12 flex-grow no-gutter\">\n <div class=\"card-inner-scroll fit-h\">\n <div class=\"card-block p-t-0 p-b-0\">\n <ng-content select=\"[list]\"></ng-content>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SearchResultEmptyComponent, selector: "c8y-search-result-empty", inputs: ["message"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
57
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: SelectStepFrameComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
58
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: SelectStepFrameComponent, isStandalone: true, selector: "c8y-select-step-frame", inputs: { header: "header", noResults: "noResults" }, ngImport: i0, template: "<div class=\"card-block overflow-visible flex-no-shrink col-xs-12 p-b-0 p-t-4 separator-bottom\">\n <div class=\"d-flex j-c-center m-b-24\">\n <div class=\"col-xs-12 col-sm-8\">\n <h4 class=\"text-normal text-center m-b-16\">\n {{ header | translate }}\n </h4>\n <ng-content select=\"[filters]\"></ng-content>\n </div>\n </div>\n <ng-content select=\"[header]\"></ng-content>\n</div>\n<c8y-search-result-empty *ngIf=\"noResults\"> </c8y-search-result-empty>\n<div class=\"col-xs-12 flex-grow no-gutter\">\n <div class=\"card-inner-scroll fit-h\">\n <div class=\"card-block p-t-0 p-b-0\">\n <ng-content select=\"[list]\"></ng-content>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SearchResultEmptyComponent, selector: "c8y-search-result-empty", inputs: ["message"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
59
59
  }
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SelectStepFrameComponent, decorators: [{
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: SelectStepFrameComponent, decorators: [{
61
61
  type: Component,
62
62
  args: [{ selector: 'c8y-select-step-frame', imports: [NgIf, SearchResultEmptyComponent, C8yTranslatePipe], template: "<div class=\"card-block overflow-visible flex-no-shrink col-xs-12 p-b-0 p-t-4 separator-bottom\">\n <div class=\"d-flex j-c-center m-b-24\">\n <div class=\"col-xs-12 col-sm-8\">\n <h4 class=\"text-normal text-center m-b-16\">\n {{ header | translate }}\n </h4>\n <ng-content select=\"[filters]\"></ng-content>\n </div>\n </div>\n <ng-content select=\"[header]\"></ng-content>\n</div>\n<c8y-search-result-empty *ngIf=\"noResults\"> </c8y-search-result-empty>\n<div class=\"col-xs-12 flex-grow no-gutter\">\n <div class=\"card-inner-scroll fit-h\">\n <div class=\"card-block p-t-0 p-b-0\">\n <ng-content select=\"[list]\"></ng-content>\n </div>\n </div>\n</div>\n" }]
63
63
  }], propDecorators: { header: [{
@@ -67,11 +67,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
67
67
  }] } });
68
68
 
69
69
  class StepperFramesModule {
70
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: StepperFramesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
71
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: StepperFramesModule, imports: [PreviewSelectionFrameComponent, SelectStepFrameComponent, PreviewBlockDirective], exports: [PreviewSelectionFrameComponent, SelectStepFrameComponent, PreviewBlockDirective] }); }
72
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: StepperFramesModule, imports: [SelectStepFrameComponent] }); }
70
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: StepperFramesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
71
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: StepperFramesModule, imports: [PreviewSelectionFrameComponent, SelectStepFrameComponent, PreviewBlockDirective], exports: [PreviewSelectionFrameComponent, SelectStepFrameComponent, PreviewBlockDirective] }); }
72
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: StepperFramesModule, imports: [SelectStepFrameComponent] }); }
73
73
  }
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: StepperFramesModule, decorators: [{
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: StepperFramesModule, decorators: [{
75
75
  type: NgModule,
76
76
  args: [{
77
77
  imports: [PreviewSelectionFrameComponent, SelectStepFrameComponent, PreviewBlockDirective],
@@ -30,10 +30,10 @@ class BulkOperationsTabsFactory {
30
30
  }
31
31
  return tabs;
32
32
  }
33
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: BulkOperationsTabsFactory, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
34
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: BulkOperationsTabsFactory }); }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: BulkOperationsTabsFactory, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
34
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: BulkOperationsTabsFactory }); }
35
35
  }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: BulkOperationsTabsFactory, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: BulkOperationsTabsFactory, decorators: [{
37
37
  type: Injectable
38
38
  }], ctorParameters: () => [{ type: i1.Router }] });
39
39
 
@@ -110,8 +110,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
110
110
  * ]```
111
111
  */
112
112
  class OperationsModule {
113
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: OperationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
114
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: OperationsModule, imports: [CoreModule,
113
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: OperationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
114
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: OperationsModule, imports: [CoreModule,
115
115
  BulkOperationFromSingleModule,
116
116
  BulkOperationsListModule,
117
117
  BulkOperationsServiceModule,
@@ -120,7 +120,7 @@ class OperationsModule {
120
120
  StepperBulkTypeFirmwareModule,
121
121
  StepperBulkTypeSoftwareModule,
122
122
  StepperBulkTypeDeviceProfileModule] }); }
123
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: OperationsModule, providers: [
123
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: OperationsModule, providers: [
124
124
  hookTab(BulkOperationsTabsFactory),
125
125
  deviceControlOverviewFeatureProviderFactory(),
126
126
  deviceControlTabFeatureProviderFactory()
@@ -134,7 +134,7 @@ class OperationsModule {
134
134
  StepperBulkTypeSoftwareModule,
135
135
  StepperBulkTypeDeviceProfileModule] }); }
136
136
  }
137
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: OperationsModule, decorators: [{
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: OperationsModule, decorators: [{
138
138
  type: NgModule,
139
139
  args: [{
140
140
  imports: [
@@ -61,10 +61,10 @@ class PendingMoRequestService {
61
61
  });
62
62
  });
63
63
  }
64
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: PendingMoRequestService, deps: [{ token: i0.Injector }, { token: i1.ApiService }, { token: i2.AlertService }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
65
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: PendingMoRequestService, providedIn: 'root' }); }
64
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: PendingMoRequestService, deps: [{ token: i0.Injector }, { token: i1.ApiService }, { token: i2.AlertService }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
65
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: PendingMoRequestService, providedIn: 'root' }); }
66
66
  }
67
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: PendingMoRequestService, decorators: [{
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: PendingMoRequestService, decorators: [{
68
68
  type: Injectable,
69
69
  args: [{
70
70
  providedIn: 'root'
@@ -76,11 +76,11 @@ class PendingMoRequestModule {
76
76
  this.pendingMoRequestService = pendingMoRequestService;
77
77
  this.pendingMoRequestService.setupHooks();
78
78
  }
79
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: PendingMoRequestModule, deps: [{ token: PendingMoRequestService }], target: i0.ɵɵFactoryTarget.NgModule }); }
80
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: PendingMoRequestModule, imports: [CommonModule] }); }
81
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: PendingMoRequestModule, providers: [PendingMoRequestService], imports: [CommonModule] }); }
79
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: PendingMoRequestModule, deps: [{ token: PendingMoRequestService }], target: i0.ɵɵFactoryTarget.NgModule }); }
80
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: PendingMoRequestModule, imports: [CommonModule] }); }
81
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: PendingMoRequestModule, providers: [PendingMoRequestService], imports: [CommonModule] }); }
82
82
  }
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: PendingMoRequestModule, decorators: [{
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: PendingMoRequestModule, decorators: [{
84
84
  type: NgModule,
85
85
  args: [{
86
86
  imports: [CommonModule],