@c8y/ngx-components 1023.17.6 → 1023.17.8

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 (193) hide show
  1. package/fesm2022/c8y-ngx-components-actility-device-registration.mjs +16 -16
  2. package/fesm2022/c8y-ngx-components-advanced-software-management.mjs +7 -7
  3. package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs +9 -9
  4. package/fesm2022/c8y-ngx-components-ai-ai-chat.mjs +12 -12
  5. package/fesm2022/c8y-ngx-components-ai.mjs +3 -3
  6. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +34 -34
  7. package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs +4 -4
  8. package/fesm2022/c8y-ngx-components-alarms.mjs +76 -76
  9. package/fesm2022/c8y-ngx-components-api.mjs +7 -7
  10. package/fesm2022/c8y-ngx-components-app-logs.mjs +10 -10
  11. package/fesm2022/c8y-ngx-components-asset-properties.mjs +39 -39
  12. package/fesm2022/{c8y-ngx-components-asset-property-grid.component-CHjd7Q21.mjs → c8y-ngx-components-asset-property-grid.component-QedBlFUH.mjs} +13 -13
  13. package/fesm2022/{c8y-ngx-components-asset-property-grid.component-CHjd7Q21.mjs.map → c8y-ngx-components-asset-property-grid.component-QedBlFUH.mjs.map} +1 -1
  14. package/fesm2022/c8y-ngx-components-assets-navigator.mjs +32 -32
  15. package/fesm2022/c8y-ngx-components-auth-configuration.mjs +114 -114
  16. package/fesm2022/c8y-ngx-components-binary-file-download.mjs +7 -7
  17. package/fesm2022/c8y-ngx-components-bookmarks.mjs +13 -13
  18. package/fesm2022/c8y-ngx-components-branding-base-branding.mjs +4 -4
  19. package/fesm2022/c8y-ngx-components-branding-dark-theme.mjs +7 -7
  20. package/fesm2022/c8y-ngx-components-branding-extra-css-branding-editor.mjs +7 -7
  21. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor-lazy.mjs +3 -3
  22. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs +7 -7
  23. package/fesm2022/c8y-ngx-components-branding-shared-data.mjs +15 -15
  24. package/fesm2022/c8y-ngx-components-branding-shared-lazy-add-branding-modal.mjs +6 -6
  25. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +36 -36
  26. package/fesm2022/c8y-ngx-components-branding-shared.mjs +13 -13
  27. package/fesm2022/c8y-ngx-components-child-devices.mjs +13 -13
  28. package/fesm2022/c8y-ngx-components-cockpit-config.mjs +40 -40
  29. package/fesm2022/{c8y-ngx-components-computed-asset-properties-alarm-count-config.component-Bl18pHcM.mjs → c8y-ngx-components-computed-asset-properties-alarm-count-config.component-SA0syLy7.mjs} +4 -4
  30. package/fesm2022/{c8y-ngx-components-computed-asset-properties-alarm-count-config.component-Bl18pHcM.mjs.map → c8y-ngx-components-computed-asset-properties-alarm-count-config.component-SA0syLy7.mjs.map} +1 -1
  31. package/fesm2022/{c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-C5QMFdX1.mjs → c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-BOmgJI14.mjs} +4 -4
  32. package/fesm2022/{c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-C5QMFdX1.mjs.map → c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-BOmgJI14.mjs.map} +1 -1
  33. package/fesm2022/{c8y-ngx-components-computed-asset-properties-event-count-config.component-C-Lc5Ble.mjs → c8y-ngx-components-computed-asset-properties-event-count-config.component-CaTb9cph.mjs} +4 -4
  34. package/fesm2022/{c8y-ngx-components-computed-asset-properties-event-count-config.component-C-Lc5Ble.mjs.map → c8y-ngx-components-computed-asset-properties-event-count-config.component-CaTb9cph.mjs.map} +1 -1
  35. package/fesm2022/{c8y-ngx-components-computed-asset-properties-last-measurement-config.component-BXfM7hTQ.mjs → c8y-ngx-components-computed-asset-properties-last-measurement-config.component-DkrSvf9F.mjs} +4 -4
  36. package/fesm2022/{c8y-ngx-components-computed-asset-properties-last-measurement-config.component-BXfM7hTQ.mjs.map → c8y-ngx-components-computed-asset-properties-last-measurement-config.component-DkrSvf9F.mjs.map} +1 -1
  37. package/fesm2022/c8y-ngx-components-computed-asset-properties.mjs +6 -6
  38. package/fesm2022/c8y-ngx-components-connectivity.mjs +53 -53
  39. package/fesm2022/c8y-ngx-components-context-dashboard-asset-add.mjs +10 -10
  40. package/fesm2022/c8y-ngx-components-context-dashboard-asset-view.mjs +7 -7
  41. package/fesm2022/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.mjs +11 -11
  42. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BuGMpNrA.mjs → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-DM3hASUP.mjs} +4 -4
  43. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BuGMpNrA.mjs.map → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-DM3hASUP.mjs.map} +1 -1
  44. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-DN-f35bA.mjs → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-CC5346kW.mjs} +10 -10
  45. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-DN-f35bA.mjs.map → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-CC5346kW.mjs.map} +1 -1
  46. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-BlIVEV__.mjs → c8y-ngx-components-context-dashboard-dashboard-version-history.component-CHuc--XM.mjs} +4 -4
  47. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-BlIVEV__.mjs.map → c8y-ngx-components-context-dashboard-dashboard-version-history.component-CHuc--XM.mjs.map} +1 -1
  48. package/fesm2022/c8y-ngx-components-context-dashboard-device-add.mjs +10 -10
  49. package/fesm2022/c8y-ngx-components-context-dashboard-device-view.mjs +7 -7
  50. package/fesm2022/c8y-ngx-components-context-dashboard-devicemanagement.mjs +3 -3
  51. package/fesm2022/c8y-ngx-components-context-dashboard-state.mjs +3 -3
  52. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +102 -102
  53. package/fesm2022/{c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-m7YeEj9R.mjs → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-D0C7SH6L.mjs} +16 -16
  54. package/fesm2022/{c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-m7YeEj9R.mjs.map → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-D0C7SH6L.mjs.map} +1 -1
  55. package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab.mjs +12 -12
  56. package/fesm2022/c8y-ngx-components-dashboard-manager-devicemanagement.mjs +6 -6
  57. package/fesm2022/c8y-ngx-components-dashboard-manager.mjs +22 -22
  58. package/fesm2022/c8y-ngx-components-data-broker.mjs +7 -7
  59. package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs +3 -3
  60. package/fesm2022/c8y-ngx-components-data-grid-columns.mjs +3 -3
  61. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +24 -24
  62. package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs +13 -13
  63. package/fesm2022/c8y-ngx-components-datapoint-library-details.mjs +3 -3
  64. package/fesm2022/c8y-ngx-components-datapoint-library-list.mjs +3 -3
  65. package/fesm2022/c8y-ngx-components-datapoint-library-services.mjs +3 -3
  66. package/fesm2022/c8y-ngx-components-datapoint-library.mjs +4 -4
  67. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +40 -40
  68. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs +33 -33
  69. package/fesm2022/c8y-ngx-components-default-subscriptions.mjs +16 -16
  70. package/fesm2022/c8y-ngx-components-device-grid.mjs +43 -43
  71. package/fesm2022/c8y-ngx-components-device-list.mjs +22 -22
  72. package/fesm2022/c8y-ngx-components-device-map.mjs +12 -12
  73. package/fesm2022/c8y-ngx-components-device-profile.mjs +34 -34
  74. package/fesm2022/c8y-ngx-components-device-protocol-object-mappings.mjs +3 -3
  75. package/fesm2022/c8y-ngx-components-device-protocols.mjs +16 -16
  76. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +13 -13
  77. package/fesm2022/c8y-ngx-components-device-shell.mjs +31 -31
  78. package/fesm2022/c8y-ngx-components-diagnostics.mjs +13 -13
  79. package/fesm2022/c8y-ngx-components-echart.mjs +30 -30
  80. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +43 -43
  81. package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs +7 -7
  82. package/fesm2022/c8y-ngx-components-ecosystem-license-confirm.mjs +10 -10
  83. package/fesm2022/c8y-ngx-components-ecosystem-plugin-setup-stepper.mjs +7 -7
  84. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +46 -46
  85. package/fesm2022/c8y-ngx-components-ecosystem.mjs +82 -82
  86. package/fesm2022/c8y-ngx-components-editor.mjs +6 -6
  87. package/fesm2022/c8y-ngx-components-events-events-timeline.mjs +3 -3
  88. package/fesm2022/c8y-ngx-components-events.mjs +3 -3
  89. package/fesm2022/c8y-ngx-components-exports-list.mjs +6 -6
  90. package/fesm2022/c8y-ngx-components-file-preview.mjs +7 -7
  91. package/fesm2022/c8y-ngx-components-files-repository.mjs +19 -19
  92. package/fesm2022/c8y-ngx-components-global-context.mjs +130 -130
  93. package/fesm2022/c8y-ngx-components-group-breadcrumbs.mjs +6 -6
  94. package/fesm2022/c8y-ngx-components-icon-selector.mjs +19 -19
  95. package/fesm2022/c8y-ngx-components-interval-picker.mjs +3 -3
  96. package/fesm2022/c8y-ngx-components-location.mjs +28 -28
  97. package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs +16 -16
  98. package/fesm2022/c8y-ngx-components-map.mjs +19 -19
  99. package/fesm2022/c8y-ngx-components-messaging-management.mjs +55 -55
  100. package/fesm2022/c8y-ngx-components-operations-bulk-operation-from-single.mjs +7 -7
  101. package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs +19 -19
  102. package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs +7 -7
  103. package/fesm2022/c8y-ngx-components-operations-bulk-operation-stepper.mjs +13 -13
  104. package/fesm2022/c8y-ngx-components-operations-bulk-operations-list.mjs +13 -13
  105. package/fesm2022/c8y-ngx-components-operations-bulk-operations-service.mjs +7 -7
  106. package/fesm2022/c8y-ngx-components-operations-bulk-operations-stepper-container.mjs +7 -7
  107. package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs +3 -3
  108. package/fesm2022/c8y-ngx-components-operations-create-bulk-operation-details.mjs +7 -7
  109. package/fesm2022/c8y-ngx-components-operations-device-selector.mjs +7 -7
  110. package/fesm2022/c8y-ngx-components-operations-grid-columns.mjs +12 -12
  111. package/fesm2022/c8y-ngx-components-operations-operation-details.mjs +13 -13
  112. package/fesm2022/c8y-ngx-components-operations-operation-summary.mjs +7 -7
  113. package/fesm2022/c8y-ngx-components-operations-operations-list-item-details.mjs +10 -10
  114. package/fesm2022/c8y-ngx-components-operations-operations-list.mjs +12 -12
  115. package/fesm2022/c8y-ngx-components-operations-operations-timeline.mjs +7 -7
  116. package/fesm2022/c8y-ngx-components-operations-shared.mjs +10 -10
  117. package/fesm2022/c8y-ngx-components-operations-status-filter.mjs +7 -7
  118. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-configuration.mjs +7 -7
  119. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-device-profile.mjs +13 -13
  120. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-firmware.mjs +13 -13
  121. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-software.mjs +13 -13
  122. package/fesm2022/c8y-ngx-components-operations-stepper-frames.mjs +13 -13
  123. package/fesm2022/c8y-ngx-components-operations.mjs +7 -7
  124. package/fesm2022/c8y-ngx-components-pending-mo-request.mjs +7 -7
  125. package/fesm2022/c8y-ngx-components-platform-configuration.mjs +10 -10
  126. package/fesm2022/c8y-ngx-components-protocol-lpwan.mjs +38 -38
  127. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +58 -58
  128. package/fesm2022/c8y-ngx-components-register-device.mjs +58 -58
  129. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +9 -9
  130. package/fesm2022/c8y-ngx-components-remote-access-data.mjs +3 -3
  131. package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs +3 -3
  132. package/fesm2022/c8y-ngx-components-remote-access-shared.mjs +6 -6
  133. package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +3 -3
  134. package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs +3 -3
  135. package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs +3 -3
  136. package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs +3 -3
  137. package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +3 -3
  138. package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +6 -6
  139. package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs +3 -3
  140. package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs +6 -6
  141. package/fesm2022/c8y-ngx-components-replace-device.mjs +10 -10
  142. package/fesm2022/c8y-ngx-components-report-dashboard.mjs +16 -16
  143. package/fesm2022/c8y-ngx-components-reports.mjs +19 -19
  144. package/fesm2022/c8y-ngx-components-repository-configuration.mjs +48 -48
  145. package/fesm2022/c8y-ngx-components-repository-firmware.mjs +33 -33
  146. package/fesm2022/c8y-ngx-components-repository-shared.mjs +34 -34
  147. package/fesm2022/c8y-ngx-components-repository-software.mjs +42 -42
  148. package/fesm2022/c8y-ngx-components-repository.mjs +4 -4
  149. package/fesm2022/c8y-ngx-components-search.mjs +19 -19
  150. package/fesm2022/c8y-ngx-components-sensor-phone-sensor-phone-modal.mjs +6 -6
  151. package/fesm2022/c8y-ngx-components-sensor-phone.mjs +7 -7
  152. package/fesm2022/c8y-ngx-components-services-service-command-tab.mjs +3 -3
  153. package/fesm2022/c8y-ngx-components-services-shared.mjs +3 -3
  154. package/fesm2022/c8y-ngx-components-services.mjs +29 -29
  155. package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs +16 -16
  156. package/fesm2022/c8y-ngx-components-sms-gateway.mjs +7 -7
  157. package/fesm2022/c8y-ngx-components-static-assets-data.mjs +3 -3
  158. package/fesm2022/c8y-ngx-components-static-assets-modal.mjs +9 -9
  159. package/fesm2022/c8y-ngx-components-static-assets.mjs +6 -6
  160. package/fesm2022/c8y-ngx-components-sub-assets.mjs +60 -60
  161. package/fesm2022/c8y-ngx-components-tenants.mjs +40 -40
  162. package/fesm2022/c8y-ngx-components-time-context.mjs +6 -6
  163. package/fesm2022/c8y-ngx-components-tracking.mjs +12 -12
  164. package/fesm2022/c8y-ngx-components-translation-editor-data.mjs +3 -3
  165. package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs +12 -12
  166. package/fesm2022/c8y-ngx-components-translation-editor.mjs +6 -6
  167. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +33 -33
  168. package/fesm2022/c8y-ngx-components-upgrade-upgraded-services.mjs +4 -4
  169. package/fesm2022/c8y-ngx-components-upgrade.mjs +41 -41
  170. package/fesm2022/c8y-ngx-components-user-roles.mjs +10 -10
  171. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs +3 -3
  172. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget-ai-config.mjs +3 -3
  173. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs +6 -6
  174. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +19 -19
  175. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-notes.mjs +3 -3
  176. package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-legacy-welcome.mjs +3 -3
  177. package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs +3 -3
  178. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +6 -6
  179. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +27 -27
  180. package/fesm2022/c8y-ngx-components-widgets-implementations-device-control-message.mjs +3 -3
  181. package/fesm2022/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs +7 -7
  182. package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs +3 -3
  183. package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs +24 -24
  184. package/fesm2022/c8y-ngx-components-widgets-implementations-image.mjs +9 -9
  185. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +18 -18
  186. package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs +6 -6
  187. package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs +6 -6
  188. package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs +9 -9
  189. package/fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs +9 -9
  190. package/fesm2022/c8y-ngx-components-widgets-implementations-quick-links.mjs +18 -18
  191. package/fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation.mjs +9 -9
  192. package/fesm2022/c8y-ngx-components.mjs +1371 -1371
  193. package/package.json +1 -1
@@ -18,10 +18,10 @@ class OperationsTimelineComponent {
18
18
  this.propertiesToHide = [];
19
19
  this.OPERATION_STATUS_OPTIONS_MAP = OPERATION_STATUS_OPTIONS_MAP;
20
20
  }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OperationsTimelineComponent, deps: [{ token: i1.OperationRealtimeService }, { token: i2.OperationsService }], target: i0.ɵɵFactoryTarget.Component }); }
22
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: OperationsTimelineComponent, isStandalone: true, selector: "c8y-operations-timeline", inputs: { operations: "operations", sourceId: "sourceId", filterPipe: "filterPipe", bodyTemplate: "bodyTemplate", footerTemplates: "footerTemplates", propertiesToHide: "propertiesToHide" }, ngImport: i0, template: "<c8y-ui-empty-state\n [icon]=\"'c8y-energy'\"\n [title]=\"'No recent operations found.' | translate\"\n *ngIf=\"!operations?.data || !operations?.data?.length\"\n [horizontal]=\"true\"\n></c8y-ui-empty-state>\n<c8y-list-group>\n <c8y-li-timeline\n *c8yFor=\"\n let op of operations;\n pipe: filterPipe;\n realtime: realtime;\n realtimeOptions: { entityOrId: sourceId }\n \"\n >\n {{ op.creationTime | c8yDate: 'medium' }}\n <c8y-li\n #li\n (click)=\"li.toggleCollapsed()\"\n >\n <c8y-li-icon>\n <i\n [c8yIcon]=\"OPERATION_STATUS_OPTIONS_MAP[op.status].icon\"\n [tooltip]=\"op.status | translate\"\n container=\"body\"\n [ngClass]=\"OPERATION_STATUS_OPTIONS_MAP[op.status].styleClass\"\n [delay]=\"500\"\n ></i>\n </c8y-li-icon>\n <c8y-li-body>\n <div class=\"d-flex text-break-word\">\n <div>\n {{ op.status | translate }}\n <br class=\"visible-xs visible-sm\" />\n <ng-container\n *ngIf=\"bodyTemplate; else defaultBody\"\n [ngTemplateOutlet]=\"bodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: op }\"\n ></ng-container>\n <ng-template #defaultBody>\n <small>{{ op.description }}</small>\n </ng-template>\n </div>\n <div\n class=\"m-l-auto showOnHover\"\n *ngIf=\"op.status === 'PENDING'\"\n >\n <button\n class=\"btn btn-dot btn-dot--danger\"\n [attr.aria-label]=\"'Cancel operation' | translate\"\n tooltip=\"{{ 'Cancel operation' | translate }}\"\n placement=\"left\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"$event.stopPropagation(); operationsService.cancel(op)\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </div>\n </div>\n </c8y-li-body>\n\n <c8y-li-collapse>\n <div\n class=\"legend form-block\"\n translate\n >\n Details\n </div>\n <ul class=\"list-unstyled small\">\n <li\n class=\"p-t-4 p-b-4 d-flex separator-bottom\"\n *ngFor=\"let prop of operationsService.getStandardKeys(op) | keyvalue\"\n >\n <label class=\"small m-b-0 m-r-8 a-s-start\">\n {{ prop.value | translate }}\n </label>\n <span class=\"m-l-auto text-break-word\">\n {{ op[prop.key] | translate }}\n </span>\n </li>\n <li\n class=\"p-t-4 p-b-4 d-flex separator-bottom\"\n *ngFor=\"let key of operationsService.getNonStandardKeys(op, propertiesToHide)\"\n >\n <label class=\"small m-b-0 m-r-8 a-s-start\">\n {{ key | humanize | translate }}\n </label>\n <span class=\"m-l-auto text-code\">\n {{ op[key] | json }}\n </span>\n </li>\n </ul>\n <ng-container\n *ngFor=\"let footer of footerTemplates\"\n [ngTemplateOutlet]=\"footer\"\n [ngTemplateOutletContext]=\"{ $implicit: op }\"\n ></ng-container>\n </c8y-li-collapse>\n </c8y-li>\n </c8y-li-timeline>\n</c8y-list-group>\n", dependencies: [{ kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { 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: ListItemTimelineComponent, selector: "c8y-list-item-timeline, c8y-li-timeline" }, { 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: "directive", type: TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ListItemCollapseComponent, selector: "c8y-list-item-collapse, c8y-li-collapse", inputs: ["collapseWay"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: JsonPipe, name: "json" }, { kind: "pipe", type: DatePipe, name: "c8yDate" }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: HumanizePipe, name: "humanize" }] }); }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OperationsTimelineComponent, deps: [{ token: i1.OperationRealtimeService }, { token: i2.OperationsService }], target: i0.ɵɵFactoryTarget.Component }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: OperationsTimelineComponent, isStandalone: true, selector: "c8y-operations-timeline", inputs: { operations: "operations", sourceId: "sourceId", filterPipe: "filterPipe", bodyTemplate: "bodyTemplate", footerTemplates: "footerTemplates", propertiesToHide: "propertiesToHide" }, ngImport: i0, template: "<c8y-ui-empty-state\n [icon]=\"'c8y-energy'\"\n [title]=\"'No recent operations found.' | translate\"\n *ngIf=\"!operations?.data || !operations?.data?.length\"\n [horizontal]=\"true\"\n></c8y-ui-empty-state>\n<c8y-list-group>\n <c8y-li-timeline\n *c8yFor=\"\n let op of operations;\n pipe: filterPipe;\n realtime: realtime;\n realtimeOptions: { entityOrId: sourceId }\n \"\n >\n {{ op.creationTime | c8yDate: 'medium' }}\n <c8y-li\n #li\n (click)=\"li.toggleCollapsed()\"\n >\n <c8y-li-icon>\n <i\n [c8yIcon]=\"OPERATION_STATUS_OPTIONS_MAP[op.status].icon\"\n [tooltip]=\"op.status | translate\"\n container=\"body\"\n [ngClass]=\"OPERATION_STATUS_OPTIONS_MAP[op.status].styleClass\"\n [delay]=\"500\"\n ></i>\n </c8y-li-icon>\n <c8y-li-body>\n <div class=\"d-flex text-break-word\">\n <div>\n {{ op.status | translate }}\n <br class=\"visible-xs visible-sm\" />\n <ng-container\n *ngIf=\"bodyTemplate; else defaultBody\"\n [ngTemplateOutlet]=\"bodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: op }\"\n ></ng-container>\n <ng-template #defaultBody>\n <small>{{ op.description }}</small>\n </ng-template>\n </div>\n <div\n class=\"m-l-auto showOnHover\"\n *ngIf=\"op.status === 'PENDING'\"\n >\n <button\n class=\"btn btn-dot btn-dot--danger\"\n [attr.aria-label]=\"'Cancel operation' | translate\"\n tooltip=\"{{ 'Cancel operation' | translate }}\"\n placement=\"left\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"$event.stopPropagation(); operationsService.cancel(op)\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </div>\n </div>\n </c8y-li-body>\n\n <c8y-li-collapse>\n <div\n class=\"legend form-block\"\n translate\n >\n Details\n </div>\n <ul class=\"list-unstyled small\">\n <li\n class=\"p-t-4 p-b-4 d-flex separator-bottom\"\n *ngFor=\"let prop of operationsService.getStandardKeys(op) | keyvalue\"\n >\n <label class=\"small m-b-0 m-r-8 a-s-start\">\n {{ prop.value | translate }}\n </label>\n <span class=\"m-l-auto text-break-word\">\n {{ op[prop.key] | translate }}\n </span>\n </li>\n <li\n class=\"p-t-4 p-b-4 d-flex separator-bottom\"\n *ngFor=\"let key of operationsService.getNonStandardKeys(op, propertiesToHide)\"\n >\n <label class=\"small m-b-0 m-r-8 a-s-start\">\n {{ key | humanize | translate }}\n </label>\n <span class=\"m-l-auto text-code\">\n {{ op[key] | json }}\n </span>\n </li>\n </ul>\n <ng-container\n *ngFor=\"let footer of footerTemplates\"\n [ngTemplateOutlet]=\"footer\"\n [ngTemplateOutletContext]=\"{ $implicit: op }\"\n ></ng-container>\n </c8y-li-collapse>\n </c8y-li>\n </c8y-li-timeline>\n</c8y-list-group>\n", dependencies: [{ kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { 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: ListItemTimelineComponent, selector: "c8y-list-item-timeline, c8y-li-timeline" }, { 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: "directive", type: TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ListItemCollapseComponent, selector: "c8y-list-item-collapse, c8y-li-collapse", inputs: ["collapseWay"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: JsonPipe, name: "json" }, { kind: "pipe", type: DatePipe, name: "c8yDate" }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: HumanizePipe, name: "humanize" }] }); }
23
23
  }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OperationsTimelineComponent, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OperationsTimelineComponent, decorators: [{
25
25
  type: Component,
26
26
  args: [{ selector: 'c8y-operations-timeline', imports: [
27
27
  EmptyStateComponent,
@@ -63,11 +63,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
63
63
  * @deprecated Use `OperationsTimelineComponent` as a standalone component instead.
64
64
  */
65
65
  class OperationsTimelineModule {
66
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OperationsTimelineModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
67
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: OperationsTimelineModule, imports: [OperationsTimelineComponent], exports: [OperationsTimelineComponent] }); }
68
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OperationsTimelineModule, imports: [OperationsTimelineComponent] }); }
66
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OperationsTimelineModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
67
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: OperationsTimelineModule, imports: [OperationsTimelineComponent], exports: [OperationsTimelineComponent] }); }
68
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OperationsTimelineModule, imports: [OperationsTimelineComponent] }); }
69
69
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OperationsTimelineModule, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OperationsTimelineModule, decorators: [{
71
71
  type: NgModule,
72
72
  args: [{
73
73
  imports: [OperationsTimelineComponent],
@@ -28,10 +28,10 @@ class OperationsNavigationFactory {
28
28
  }
29
29
  return this.navs;
30
30
  }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OperationsNavigationFactory, deps: [{ token: DEVICE_CONTROL_NAVIGATOR_NODE_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
32
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OperationsNavigationFactory }); }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OperationsNavigationFactory, deps: [{ token: DEVICE_CONTROL_NAVIGATOR_NODE_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
32
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OperationsNavigationFactory }); }
33
33
  }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OperationsNavigationFactory, decorators: [{
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OperationsNavigationFactory, decorators: [{
35
35
  type: Injectable
36
36
  }], ctorParameters: () => [{ type: i2.NavigatorNode, decorators: [{
37
37
  type: Optional
@@ -113,20 +113,20 @@ class OperationsService {
113
113
  getKeys(managedObject) {
114
114
  return Object.keys({ ...managedObject }).filter(key => !includes(RESERVED_KEYS, key));
115
115
  }
116
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OperationsService, deps: [{ token: i1.OperationService }, { token: i2.ModalService }, { token: i2.AlertService }], target: i0.ɵɵFactoryTarget.Injectable }); }
117
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OperationsService, providedIn: 'root' }); }
116
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OperationsService, deps: [{ token: i1.OperationService }, { token: i2.ModalService }, { token: i2.AlertService }], target: i0.ɵɵFactoryTarget.Injectable }); }
117
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OperationsService, providedIn: 'root' }); }
118
118
  }
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OperationsService, decorators: [{
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OperationsService, decorators: [{
120
120
  type: Injectable,
121
121
  args: [{ providedIn: 'root' }]
122
122
  }], ctorParameters: () => [{ type: i1.OperationService }, { type: i2.ModalService }, { type: i2.AlertService }] });
123
123
 
124
124
  class OperationsSharedModule {
125
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OperationsSharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
126
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: OperationsSharedModule }); }
127
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OperationsSharedModule, providers: [OperationsService] }); }
125
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OperationsSharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
126
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: OperationsSharedModule }); }
127
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OperationsSharedModule, providers: [OperationsService] }); }
128
128
  }
129
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: OperationsSharedModule, decorators: [{
129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OperationsSharedModule, decorators: [{
130
130
  type: NgModule,
131
131
  args: [{
132
132
  providers: [OperationsService]
@@ -91,15 +91,15 @@ class StatusFilterComponent {
91
91
  emitSelectedOptions() {
92
92
  this.onFilterChanged.emit(this.statusOptions.filter(option => option.selected).map(option => option.option));
93
93
  }
94
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: StatusFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
95
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: StatusFilterComponent, isStandalone: true, selector: "c8y-status-filter", inputs: { options: "options", _multiple: ["multiple", "_multiple"], _small: ["small", "_small"] }, outputs: { onFilterChanged: "onFilterChanged" }, host: { properties: { "class.btn-group-sm": "this.displaySmall" } }, providers: [
94
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: StatusFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
95
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: StatusFilterComponent, isStandalone: true, selector: "c8y-status-filter", inputs: { options: "options", _multiple: ["multiple", "_multiple"], _small: ["small", "_small"] }, outputs: { onFilterChanged: "onFilterChanged" }, host: { properties: { "class.btn-group-sm": "this.displaySmall" } }, providers: [
96
96
  {
97
97
  provide: PRODUCT_EXPERIENCE_EVENT_SOURCE,
98
98
  useExisting: forwardRef(() => StatusFilterComponent)
99
99
  }
100
100
  ], ngImport: i0, template: "<div dropdown placement=\"bottom left\" class=\"dropdown c8y-child-assets-selector\">\n <button\n class=\"btn dropdown-toggle d-flex a-i-center c8y-dropdown\"\n type=\"button\"\n title=\"{{ 'Status filter' | translate }}\"\n dropdownToggle\n >\n <span *ngFor=\"let option of statusOptions\" class=\"d-contents\">\n <span class=\"text-truncate\" *ngIf=\"option.selected\">\n <i [c8yIcon]=\"option.option.icon\" [ngClass]=\"option.option.styleClass\"></i>\n <span class=\"m-l-4\">{{ option.option.label | translate }}</span>\n </span>\n </span>\n <span class=\"text-truncate\" *ngIf=\"isAllButtonSelected\">\n <i c8yIcon=\"c8y-energy\" class=\"m-r-4 text-info\"></i>\n {{ 'All statuses' | translate }}\n </span>\n </button>\n <ul\n id=\"dropdown-status-filter\"\n *dropdownMenu\n class=\"dropdown-menu\"\n role=\"menu\"\n aria-labelledby=\"status-filter\"\n >\n <li *ngFor=\"let option of statusOptions\" [ngClass]=\"{ active: option.selected }\">\n <button\n type=\"button\"\n [title]=\"option.option.label | translate\"\n (click)=\"changeFilter(option)\"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: ACTIONS.FILTER,\n filterBy: 'status',\n filterValue: option.option.label\n }\"\n >\n <i [c8yIcon]=\"option.option.icon\" [ngClass]=\"option.option.styleClass\"></i>\n <span class=\"m-l-4\">{{ option.option.label | translate }}</span>\n </button>\n </li>\n <li [ngClass]=\"{ active: isAllButtonSelected }\">\n <button\n type=\"button\"\n title=\"{{ 'All statuses' | translate }}\"\n (click)=\"removeFilter()\"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: ACTIONS.FILTER,\n filterBy: 'status'\n }\"\n >\n <i c8yIcon=\"c8y-energy\" class=\"m-r-4 text-info\"></i>\n {{ 'All statuses' | translate }}\n </button>\n </li>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
101
101
  }
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: StatusFilterComponent, decorators: [{
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: StatusFilterComponent, decorators: [{
103
103
  type: Component,
104
104
  args: [{ selector: 'c8y-status-filter', providers: [
105
105
  {
@@ -136,11 +136,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
136
136
  * This module provides a component for selecting status filter.
137
137
  */
138
138
  class StatusFilterModule {
139
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: StatusFilterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
140
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: StatusFilterModule, imports: [StatusFilterComponent], exports: [StatusFilterComponent] }); }
141
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: StatusFilterModule }); }
139
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: StatusFilterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
140
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: StatusFilterModule, imports: [StatusFilterComponent], exports: [StatusFilterComponent] }); }
141
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: StatusFilterModule }); }
142
142
  }
143
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: StatusFilterModule, decorators: [{
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: StatusFilterModule, decorators: [{
144
144
  type: NgModule,
145
145
  args: [{
146
146
  imports: [StatusFilterComponent],
@@ -84,10 +84,10 @@ class StepperBulkTypeConfigurationComponent extends BaseStepperComponent {
84
84
  }
85
85
  return this.repositoryService.listRepositoryEntries(RepositoryType.CONFIGURATION, { query });
86
86
  }
87
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: StepperBulkTypeConfigurationComponent, deps: [{ token: i1.BulkOperationsService }, { token: i2.RepositoryService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
88
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: StepperBulkTypeConfigurationComponent, isStandalone: true, selector: "c8y-stepper-bulk-type-configuration", usesInheritance: true, ngImport: i0, template: "<c8y-bulk-operation-stepper [type]=\"type\">\n <ng-container\n *customStep=\"\n 'Select configuration' | translate;\n completed: !!selectedConfiguration;\n buttonsDisabled: !selectedConfiguration;\n onNext: goToSecondStep.bind(this)\n \"\n >\n <c8y-select-step-frame\n [header]=\"'Select configuration' | translate\"\n [noResults]=\"\n ((textFilter$ | async)?.length || (configType$ | async)?.length) &&\n (configurations$ | async)?.data.length === 0\n \"\n >\n <div\n class=\"row\"\n filters\n >\n <div class=\"col-md-6\">\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 <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 </div>\n <div class=\"col-xs-12 p-b-8 visible-xs visible-sm\"></div>\n <div class=\"col-md-6\">\n <c8y-form-group class=\"m-0\">\n <c8y-typeahead\n placeholder=\"{{ 'Type to filter configuration types\u2026' | translate }}\"\n name=\"configType\"\n [(ngModel)]=\"selectedConfigType\"\n (onSearch)=\"configType$.next($event)\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"selectedConfigType = { name: '' }; configType$.next('')\"\n >\n <span>{{ 'All configuration types' | translate }}</span>\n </c8y-li>\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n *ngFor=\"let configType of configTypes\"\n (click)=\"selectedConfigType = configType; configType$.next(configType.name)\"\n [active]=\"selectedConfigType === configType\"\n >\n <c8y-highlight\n [text]=\"configType.name\"\n [pattern]=\"configType$ | async\"\n ></c8y-highlight>\n </c8y-li>\n </c8y-typeahead>\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-32 p-r-40\"></i></c8y-li-icon>\n <c8y-li-body class=\"content-flex-40\">\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-4\">\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=\"{{ 'Configuration type' | translate }}\"\n >\n {{ 'Configuration type' | translate }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n <c8y-list-group list>\n <c8y-li\n #listItem\n *c8yFor=\"let configuration of configurations$ | async\"\n >\n <c8y-li-radio (onSelect)=\"selectConfiguration(configuration)\"></c8y-li-radio>\n <c8y-li-icon icon=\"gears\"></c8y-li-icon>\n <c8y-li-body class=\"content-flex-40\">\n <div class=\"col-5 m-b-xs-8\">\n <div\n class=\"text-truncate\"\n title=\"{{ configuration.name || '-' }}\"\n >\n <c8y-highlight\n [text]=\"configuration.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=\"{{ 'Device type' | translate }}: {{ getDeviceTypeTitle(configuration) }}\"\n >\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n Device type\n </span>\n {{ configuration.deviceType }}\n <em\n class=\"text-muted\"\n *ngIf=\"!configuration.deviceType\"\n >\n {{ 'Undefined`device type`' | translate }}\n </em>\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 Configuration type\n </span>\n <span\n class=\"label label-info\"\n title=\"{{ 'Configuration type' | translate }}: {{\n configuration.configurationType\n }}\"\n *ngIf=\"configuration.configurationType\"\n >\n <c8y-highlight\n [text]=\"configuration.configurationType\"\n elementClass=\"text-gray-lighter\"\n [pattern]=\"configType$ | async\"\n ></c8y-highlight>\n </span>\n <span\n class=\"label label-default\"\n title=\"{{ 'Configuration type' | translate }}: {{ 'Undefined' | translate }}\"\n *ngIf=\"!configuration.configurationType\"\n >\n {{ 'Undefined' | translate }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n </c8y-select-step-frame>\n </ng-container>\n <ng-container *customStep=\"'Preview configuration' | translate\">\n <c8y-preview-selection-frame\n [header]=\"'Preview configuration' | translate\"\n [name]=\"selectedConfiguration?.name\"\n [type]=\"selectedConfiguration?.configurationType\"\n >\n <ng-container *previewBlock=\"'Device type' | translate\">\n <ng-container *ngIf=\"selectedConfiguration?.deviceType; else noType\">\n <span>{{ selectedConfiguration?.deviceType }}</span>\n </ng-container>\n <ng-template #noType>\n <em\n class=\"text-muted\"\n translate\n >\n Undefined`device type`\n </em>\n </ng-template>\n </ng-container>\n <ng-container *previewBlock=\"'Updated' | translate\">\n <span>{{ selectedConfiguration?.lastUpdated | c8yDate }}</span>\n </ng-container>\n <ng-container *previewBlock=\"'Preview' | translate\">\n <c8y-ui-empty-state\n [icon]=\"'file-code-o'\"\n [title]=\"'No preview available.' | translate\"\n [subtitle]=\"'Could not fetch the file.' | translate\"\n *ngIf=\"!this.selectedConfiguration?.binary; else binaryPreview\"\n ></c8y-ui-empty-state>\n <ng-template #binaryPreview>\n <pre style=\"min-height: 98px\"><code>{{ this.selectedConfiguration?.binary }}</code></pre>\n </ng-template>\n </ng-container>\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: 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: 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: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { 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: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: PreviewSelectionFrameComponent, selector: "c8y-preview-selection-frame", inputs: ["header", "name", "description", "type"] }, { kind: "directive", type: PreviewBlockDirective, selector: "[previewBlock]", inputs: ["previewBlock", "previewBlockIf"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: DatePipe, name: "c8yDate" }] }); }
87
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: StepperBulkTypeConfigurationComponent, deps: [{ token: i1.BulkOperationsService }, { token: i2.RepositoryService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
88
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: StepperBulkTypeConfigurationComponent, isStandalone: true, selector: "c8y-stepper-bulk-type-configuration", usesInheritance: true, ngImport: i0, template: "<c8y-bulk-operation-stepper [type]=\"type\">\n <ng-container\n *customStep=\"\n 'Select configuration' | translate;\n completed: !!selectedConfiguration;\n buttonsDisabled: !selectedConfiguration;\n onNext: goToSecondStep.bind(this)\n \"\n >\n <c8y-select-step-frame\n [header]=\"'Select configuration' | translate\"\n [noResults]=\"\n ((textFilter$ | async)?.length || (configType$ | async)?.length) &&\n (configurations$ | async)?.data.length === 0\n \"\n >\n <div\n class=\"row\"\n filters\n >\n <div class=\"col-md-6\">\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 <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 </div>\n <div class=\"col-xs-12 p-b-8 visible-xs visible-sm\"></div>\n <div class=\"col-md-6\">\n <c8y-form-group class=\"m-0\">\n <c8y-typeahead\n placeholder=\"{{ 'Type to filter configuration types\u2026' | translate }}\"\n name=\"configType\"\n [(ngModel)]=\"selectedConfigType\"\n (onSearch)=\"configType$.next($event)\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"selectedConfigType = { name: '' }; configType$.next('')\"\n >\n <span>{{ 'All configuration types' | translate }}</span>\n </c8y-li>\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n *ngFor=\"let configType of configTypes\"\n (click)=\"selectedConfigType = configType; configType$.next(configType.name)\"\n [active]=\"selectedConfigType === configType\"\n >\n <c8y-highlight\n [text]=\"configType.name\"\n [pattern]=\"configType$ | async\"\n ></c8y-highlight>\n </c8y-li>\n </c8y-typeahead>\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-32 p-r-40\"></i></c8y-li-icon>\n <c8y-li-body class=\"content-flex-40\">\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-4\">\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=\"{{ 'Configuration type' | translate }}\"\n >\n {{ 'Configuration type' | translate }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n <c8y-list-group list>\n <c8y-li\n #listItem\n *c8yFor=\"let configuration of configurations$ | async\"\n >\n <c8y-li-radio (onSelect)=\"selectConfiguration(configuration)\"></c8y-li-radio>\n <c8y-li-icon icon=\"gears\"></c8y-li-icon>\n <c8y-li-body class=\"content-flex-40\">\n <div class=\"col-5 m-b-xs-8\">\n <div\n class=\"text-truncate\"\n title=\"{{ configuration.name || '-' }}\"\n >\n <c8y-highlight\n [text]=\"configuration.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=\"{{ 'Device type' | translate }}: {{ getDeviceTypeTitle(configuration) }}\"\n >\n <span\n class=\"text-label-small m-r-8 visible-xs visible-sm\"\n translate\n >\n Device type\n </span>\n {{ configuration.deviceType }}\n <em\n class=\"text-muted\"\n *ngIf=\"!configuration.deviceType\"\n >\n {{ 'Undefined`device type`' | translate }}\n </em>\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 Configuration type\n </span>\n <span\n class=\"label label-info\"\n title=\"{{ 'Configuration type' | translate }}: {{\n configuration.configurationType\n }}\"\n *ngIf=\"configuration.configurationType\"\n >\n <c8y-highlight\n [text]=\"configuration.configurationType\"\n elementClass=\"text-gray-lighter\"\n [pattern]=\"configType$ | async\"\n ></c8y-highlight>\n </span>\n <span\n class=\"label label-default\"\n title=\"{{ 'Configuration type' | translate }}: {{ 'Undefined' | translate }}\"\n *ngIf=\"!configuration.configurationType\"\n >\n {{ 'Undefined' | translate }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n </c8y-select-step-frame>\n </ng-container>\n <ng-container *customStep=\"'Preview configuration' | translate\">\n <c8y-preview-selection-frame\n [header]=\"'Preview configuration' | translate\"\n [name]=\"selectedConfiguration?.name\"\n [type]=\"selectedConfiguration?.configurationType\"\n >\n <ng-container *previewBlock=\"'Device type' | translate\">\n <ng-container *ngIf=\"selectedConfiguration?.deviceType; else noType\">\n <span>{{ selectedConfiguration?.deviceType }}</span>\n </ng-container>\n <ng-template #noType>\n <em\n class=\"text-muted\"\n translate\n >\n Undefined`device type`\n </em>\n </ng-template>\n </ng-container>\n <ng-container *previewBlock=\"'Updated' | translate\">\n <span>{{ selectedConfiguration?.lastUpdated | c8yDate }}</span>\n </ng-container>\n <ng-container *previewBlock=\"'Preview' | translate\">\n <c8y-ui-empty-state\n [icon]=\"'file-code-o'\"\n [title]=\"'No preview available.' | translate\"\n [subtitle]=\"'Could not fetch the file.' | translate\"\n *ngIf=\"!this.selectedConfiguration?.binary; else binaryPreview\"\n ></c8y-ui-empty-state>\n <ng-template #binaryPreview>\n <pre style=\"min-height: 98px\"><code>{{ this.selectedConfiguration?.binary }}</code></pre>\n </ng-template>\n </ng-container>\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: 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: 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: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { 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: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: PreviewSelectionFrameComponent, selector: "c8y-preview-selection-frame", inputs: ["header", "name", "description", "type"] }, { kind: "directive", type: PreviewBlockDirective, selector: "[previewBlock]", inputs: ["previewBlock", "previewBlockIf"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: DatePipe, name: "c8yDate" }] }); }
89
89
  }
90
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: StepperBulkTypeConfigurationComponent, decorators: [{
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: StepperBulkTypeConfigurationComponent, decorators: [{
91
91
  type: Component,
92
92
  args: [{ selector: 'c8y-stepper-bulk-type-configuration', imports: [
93
93
  BulkOperationStepper,
@@ -118,9 +118,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
118
118
 
119
119
  /** Module for the 'Configuration update' operation type stepper */
120
120
  class StepperBulkTypeConfigurationModule {
121
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: StepperBulkTypeConfigurationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
122
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: StepperBulkTypeConfigurationModule, imports: [StepperBulkTypeConfigurationComponent], exports: [StepperBulkTypeConfigurationComponent] }); }
123
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: StepperBulkTypeConfigurationModule, providers: [
121
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: StepperBulkTypeConfigurationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
122
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: StepperBulkTypeConfigurationModule, imports: [StepperBulkTypeConfigurationComponent], exports: [StepperBulkTypeConfigurationComponent] }); }
123
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: StepperBulkTypeConfigurationModule, providers: [
124
124
  hookListBulkType({
125
125
  type: BulkOperationType.CONFIGURATION,
126
126
  c8yIcon: 'cogs',
@@ -132,7 +132,7 @@ class StepperBulkTypeConfigurationModule {
132
132
  })
133
133
  ], imports: [StepperBulkTypeConfigurationComponent] }); }
134
134
  }
135
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: StepperBulkTypeConfigurationModule, decorators: [{
135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: StepperBulkTypeConfigurationModule, decorators: [{
136
136
  type: NgModule,
137
137
  args: [{
138
138
  imports: [StepperBulkTypeConfigurationComponent],
@@ -28,10 +28,10 @@ class ConfirmDeviceProfileSelectionStepComponent {
28
28
  getDeviceTypeTitle(deviceProfile) {
29
29
  return get(deviceProfile, 'c8y_Filter.type', this.translate.instant(this.DEVICE_TYPE_NOT_DEFINED));
30
30
  }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfirmDeviceProfileSelectionStepComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
32
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: ConfirmDeviceProfileSelectionStepComponent, isStandalone: true, selector: "c8y-confirm-device-profile-selection-step", inputs: { selectedDeviceProfile: "selectedDeviceProfile" }, ngImport: i0, template: "<c8y-preview-selection-frame\n [header]=\"'Confirm selection' | translate\"\n [name]=\"selectedDeviceProfile?.name\"\n>\n <ng-container *previewBlock=\"'Device type' | translate\">\n <ng-container *ngIf=\"selectedDeviceProfile?.c8y_Filter?.type; else noType\">\n <span>{{ selectedDeviceProfile.c8y_Filter.type }}</span>\n </ng-container>\n <ng-template #noType> --- </ng-template>\n </ng-container>\n <c8y-list-group\n *previewBlock=\"'Firmware' | translate; if: selectedDeviceProfile?.c8y_DeviceProfile.firmware\"\n >\n <c8y-li>\n <c8y-li-icon>\n <i c8yIcon=\"c8y-firmware\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-500\">\n <div class=\"col-5\">\n {{ selectedDeviceProfile.c8y_DeviceProfile.firmware.name }}\n </div>\n <div class=\"col-5\">\n <span class=\"text-label-small m-r-8\" translate> Version </span>\n <span>\n {{ selectedDeviceProfile.c8y_DeviceProfile.firmware.version }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n <c8y-list-group *previewBlock=\"'Software' | translate; if: softwares?.length\">\n <c8y-li *ngFor=\"let software of softwares\">\n <c8y-li-icon>\n <i c8yIcon=\"c8y-tools\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-500\">\n <div class=\"col-5\">\n {{ software.name }}\n </div>\n <div class=\"col-5\">\n <span class=\"text-label-small m-r-8\" translate> Version </span>\n <span>\n {{ software.version }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n <c8y-list-group *previewBlock=\"'Configuration' | translate; if: configurations?.length\">\n <c8y-li *ngFor=\"let configuration of configurations\">\n <c8y-li-icon>\n <i c8yIcon=\"c8y-tools\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-500\">\n <div class=\"col-5\">\n {{ configuration.name }}\n </div>\n <div class=\"col-5\">\n <span class=\"label label-info\" *ngIf=\"configuration.type\">\n {{ configuration.type }}\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: "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: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ConfirmDeviceProfileSelectionStepComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
32
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: ConfirmDeviceProfileSelectionStepComponent, isStandalone: true, selector: "c8y-confirm-device-profile-selection-step", inputs: { selectedDeviceProfile: "selectedDeviceProfile" }, ngImport: i0, template: "<c8y-preview-selection-frame\n [header]=\"'Confirm selection' | translate\"\n [name]=\"selectedDeviceProfile?.name\"\n>\n <ng-container *previewBlock=\"'Device type' | translate\">\n <ng-container *ngIf=\"selectedDeviceProfile?.c8y_Filter?.type; else noType\">\n <span>{{ selectedDeviceProfile.c8y_Filter.type }}</span>\n </ng-container>\n <ng-template #noType> --- </ng-template>\n </ng-container>\n <c8y-list-group\n *previewBlock=\"'Firmware' | translate; if: selectedDeviceProfile?.c8y_DeviceProfile.firmware\"\n >\n <c8y-li>\n <c8y-li-icon>\n <i c8yIcon=\"c8y-firmware\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-500\">\n <div class=\"col-5\">\n {{ selectedDeviceProfile.c8y_DeviceProfile.firmware.name }}\n </div>\n <div class=\"col-5\">\n <span class=\"text-label-small m-r-8\" translate> Version </span>\n <span>\n {{ selectedDeviceProfile.c8y_DeviceProfile.firmware.version }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n <c8y-list-group *previewBlock=\"'Software' | translate; if: softwares?.length\">\n <c8y-li *ngFor=\"let software of softwares\">\n <c8y-li-icon>\n <i c8yIcon=\"c8y-tools\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-500\">\n <div class=\"col-5\">\n {{ software.name }}\n </div>\n <div class=\"col-5\">\n <span class=\"text-label-small m-r-8\" translate> Version </span>\n <span>\n {{ software.version }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n <c8y-list-group *previewBlock=\"'Configuration' | translate; if: configurations?.length\">\n <c8y-li *ngFor=\"let configuration of configurations\">\n <c8y-li-icon>\n <i c8yIcon=\"c8y-tools\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-500\">\n <div class=\"col-5\">\n {{ configuration.name }}\n </div>\n <div class=\"col-5\">\n <span class=\"label label-info\" *ngIf=\"configuration.type\">\n {{ configuration.type }}\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: "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: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
33
33
  }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConfirmDeviceProfileSelectionStepComponent, decorators: [{
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ConfirmDeviceProfileSelectionStepComponent, decorators: [{
35
35
  type: Component,
36
36
  args: [{ selector: 'c8y-confirm-device-profile-selection-step', imports: [
37
37
  PreviewSelectionFrameComponent,
@@ -89,10 +89,10 @@ class SelectDeviceProfileStepComponent {
89
89
  }
90
90
  return this.deviceProfileService.getDeviceProfiles(query);
91
91
  }
92
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SelectDeviceProfileStepComponent, deps: [{ token: i1$1.DeviceProfileService }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
93
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: SelectDeviceProfileStepComponent, isStandalone: true, selector: "c8y-select-device-profile-step", outputs: { deviceProfile: "deviceProfile" }, ngImport: i0, template: "<c8y-select-step-frame\n [header]=\"'Select device profile' | translate\"\n [noResults]=\"\n ((textFilter$ | async)?.length || (deviceType$ | async)?.length) &&\n (deviceProfile$ | async)?.data.length === 0\n \"\n>\n <div\n class=\"row\"\n filters\n >\n <div class=\"col-md-6 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 <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\"\n (click)=\"textFilter$.next('')\"\n ></i>\n </span>\n </div>\n </div>\n <div class=\"col-md-6 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 >\n <span>{{ 'All device types' | translate }}</span>\n </c8y-li>\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n *ngFor=\"let deviceType of deviceTypes\"\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 </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>\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-5\">\n <span\n class=\"text-truncate\"\n title=\" {{ 'Name' | translate }} \"\n >\n {{ 'Name' | 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 </c8y-li-body>\n </c8y-li>\n <c8y-list-group list>\n <c8y-li *c8yFor=\"let deviceProfile of deviceProfile$ | async; loadMore: 'auto'\">\n <c8y-li-radio (onSelect)=\"selectDeviceProfile(deviceProfile)\"></c8y-li-radio>\n <c8y-li-icon>\n <i c8yIcon=\"c8y-device-profile\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-40\">\n <div class=\"col-5 m-b-xs-8\">\n <div\n class=\"text-truncate\"\n title=\"{{ deviceProfile.name }}\"\n >\n {{ deviceProfile.name }}\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(deviceProfile) }}\"\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=\"deviceProfile.c8y_Filter?.type; else noType\">\n {{ deviceProfile.c8y_Filter?.type }}\n </span>\n <ng-template #noType>\n <small>\n <em\n class=\"text-muted\"\n translate\n >\n Undefined`device type`\n </em>\n </small>\n </ng-template>\n </div>\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: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage"] }, { kind: "directive", type: MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { 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: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
92
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectDeviceProfileStepComponent, deps: [{ token: i1$1.DeviceProfileService }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
93
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: SelectDeviceProfileStepComponent, isStandalone: true, selector: "c8y-select-device-profile-step", outputs: { deviceProfile: "deviceProfile" }, ngImport: i0, template: "<c8y-select-step-frame\n [header]=\"'Select device profile' | translate\"\n [noResults]=\"\n ((textFilter$ | async)?.length || (deviceType$ | async)?.length) &&\n (deviceProfile$ | async)?.data.length === 0\n \"\n>\n <div\n class=\"row\"\n filters\n >\n <div class=\"col-md-6 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 <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\"\n (click)=\"textFilter$.next('')\"\n ></i>\n </span>\n </div>\n </div>\n <div class=\"col-md-6 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 >\n <span>{{ 'All device types' | translate }}</span>\n </c8y-li>\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n *ngFor=\"let deviceType of deviceTypes\"\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 </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>\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-5\">\n <span\n class=\"text-truncate\"\n title=\" {{ 'Name' | translate }} \"\n >\n {{ 'Name' | 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 </c8y-li-body>\n </c8y-li>\n <c8y-list-group list>\n <c8y-li *c8yFor=\"let deviceProfile of deviceProfile$ | async; loadMore: 'auto'\">\n <c8y-li-radio (onSelect)=\"selectDeviceProfile(deviceProfile)\"></c8y-li-radio>\n <c8y-li-icon>\n <i c8yIcon=\"c8y-device-profile\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-40\">\n <div class=\"col-5 m-b-xs-8\">\n <div\n class=\"text-truncate\"\n title=\"{{ deviceProfile.name }}\"\n >\n {{ deviceProfile.name }}\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(deviceProfile) }}\"\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=\"deviceProfile.c8y_Filter?.type; else noType\">\n {{ deviceProfile.c8y_Filter?.type }}\n </span>\n <ng-template #noType>\n <small>\n <em\n class=\"text-muted\"\n translate\n >\n Undefined`device type`\n </em>\n </small>\n </ng-template>\n </div>\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: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage"] }, { kind: "directive", type: MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { 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: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
94
94
  }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SelectDeviceProfileStepComponent, decorators: [{
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectDeviceProfileStepComponent, decorators: [{
96
96
  type: Component,
97
97
  args: [{ selector: 'c8y-select-device-profile-step', imports: [
98
98
  SelectStepFrameComponent,
@@ -143,10 +143,10 @@ class StepperBulkTypeDeviceProfileComponent extends BaseStepperComponent {
143
143
  }
144
144
  };
145
145
  }
146
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: StepperBulkTypeDeviceProfileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
147
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: StepperBulkTypeDeviceProfileComponent, isStandalone: true, selector: "c8y-stepper-bulk-type-device-profile", usesInheritance: true, ngImport: i0, template: "<c8y-bulk-operation-stepper [type]=\"type\">\n <ng-container\n *customStep=\"\n 'Select device profile' | translate;\n completed: !!selectedDeviceProfile;\n buttonsDisabled: !selectedDeviceProfile;\n onNext: goToConfirmSelection.bind(this)\n \"\n >\n <c8y-select-device-profile-step\n (deviceProfile)=\"onDeviceProfileSelected($event)\"\n class=\"d-contents\"\n ></c8y-select-device-profile-step>\n </ng-container>\n <ng-container *customStep=\"'Confirm selected device profile' | translate\">\n <c8y-confirm-device-profile-selection-step\n class=\"d-contents\"\n [selectedDeviceProfile]=\"selectedDeviceProfile\"\n ></c8y-confirm-device-profile-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: SelectDeviceProfileStepComponent, selector: "c8y-select-device-profile-step", outputs: ["deviceProfile"] }, { kind: "component", type: ConfirmDeviceProfileSelectionStepComponent, selector: "c8y-confirm-device-profile-selection-step", inputs: ["selectedDeviceProfile"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
146
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: StepperBulkTypeDeviceProfileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
147
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: StepperBulkTypeDeviceProfileComponent, isStandalone: true, selector: "c8y-stepper-bulk-type-device-profile", usesInheritance: true, ngImport: i0, template: "<c8y-bulk-operation-stepper [type]=\"type\">\n <ng-container\n *customStep=\"\n 'Select device profile' | translate;\n completed: !!selectedDeviceProfile;\n buttonsDisabled: !selectedDeviceProfile;\n onNext: goToConfirmSelection.bind(this)\n \"\n >\n <c8y-select-device-profile-step\n (deviceProfile)=\"onDeviceProfileSelected($event)\"\n class=\"d-contents\"\n ></c8y-select-device-profile-step>\n </ng-container>\n <ng-container *customStep=\"'Confirm selected device profile' | translate\">\n <c8y-confirm-device-profile-selection-step\n class=\"d-contents\"\n [selectedDeviceProfile]=\"selectedDeviceProfile\"\n ></c8y-confirm-device-profile-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: SelectDeviceProfileStepComponent, selector: "c8y-select-device-profile-step", outputs: ["deviceProfile"] }, { kind: "component", type: ConfirmDeviceProfileSelectionStepComponent, selector: "c8y-confirm-device-profile-selection-step", inputs: ["selectedDeviceProfile"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
148
148
  }
149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: StepperBulkTypeDeviceProfileComponent, decorators: [{
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: StepperBulkTypeDeviceProfileComponent, decorators: [{
150
150
  type: Component,
151
151
  args: [{ selector: 'c8y-stepper-bulk-type-device-profile', imports: [
152
152
  BulkOperationStepper,
@@ -159,11 +159,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
159
159
 
160
160
  /** Module for the 'Apply device profile' operation type stepper */
161
161
  class StepperBulkTypeDeviceProfileModule {
162
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: StepperBulkTypeDeviceProfileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
163
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: StepperBulkTypeDeviceProfileModule, imports: [StepperBulkTypeDeviceProfileComponent,
162
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: StepperBulkTypeDeviceProfileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
163
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: StepperBulkTypeDeviceProfileModule, imports: [StepperBulkTypeDeviceProfileComponent,
164
164
  SelectDeviceProfileStepComponent,
165
165
  ConfirmDeviceProfileSelectionStepComponent], exports: [StepperBulkTypeDeviceProfileComponent] }); }
166
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: StepperBulkTypeDeviceProfileModule, providers: [
166
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: StepperBulkTypeDeviceProfileModule, providers: [
167
167
  hookListBulkType({
168
168
  type: BulkOperationType.DEVICE_PROFILE,
169
169
  c8yIcon: 'c8y-device-profile',
@@ -177,7 +177,7 @@ class StepperBulkTypeDeviceProfileModule {
177
177
  SelectDeviceProfileStepComponent,
178
178
  ConfirmDeviceProfileSelectionStepComponent] }); }
179
179
  }
180
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: StepperBulkTypeDeviceProfileModule, decorators: [{
180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: StepperBulkTypeDeviceProfileModule, decorators: [{
181
181
  type: NgModule,
182
182
  args: [{
183
183
  imports: [