@c8y/ngx-components 1023.88.2 → 1023.90.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/context-dashboard/index.d.ts +4 -4
  2. package/context-dashboard/index.d.ts.map +1 -1
  3. package/fesm2022/c8y-ngx-components-actility-device-registration.mjs +16 -16
  4. package/fesm2022/c8y-ngx-components-advanced-software-management.mjs +7 -7
  5. package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs +12 -12
  6. package/fesm2022/c8y-ngx-components-ai-ai-chat.mjs +24 -24
  7. package/fesm2022/c8y-ngx-components-ai.mjs +3 -3
  8. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +40 -40
  9. package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs +4 -4
  10. package/fesm2022/c8y-ngx-components-alarms.mjs +76 -76
  11. package/fesm2022/c8y-ngx-components-api.mjs +7 -7
  12. package/fesm2022/c8y-ngx-components-app-logs.mjs +10 -10
  13. package/fesm2022/c8y-ngx-components-application-access-list.mjs +12 -12
  14. package/fesm2022/c8y-ngx-components-application-access-user-application-access-user-details-wrapper.mjs +3 -3
  15. package/fesm2022/c8y-ngx-components-asset-properties.mjs +48 -48
  16. package/fesm2022/{c8y-ngx-components-asset-property-grid.component-BJOPTjF1.mjs → c8y-ngx-components-asset-property-grid.component-DsfLvryd.mjs} +13 -13
  17. package/fesm2022/{c8y-ngx-components-asset-property-grid.component-BJOPTjF1.mjs.map → c8y-ngx-components-asset-property-grid.component-DsfLvryd.mjs.map} +1 -1
  18. package/fesm2022/c8y-ngx-components-assets-navigator.mjs +32 -32
  19. package/fesm2022/c8y-ngx-components-auth-configuration.mjs +120 -120
  20. package/fesm2022/c8y-ngx-components-binary-file-download.mjs +7 -7
  21. package/fesm2022/c8y-ngx-components-bookmarks.mjs +13 -13
  22. package/fesm2022/c8y-ngx-components-branding-base-branding.mjs +4 -4
  23. package/fesm2022/c8y-ngx-components-branding-dark-theme.mjs +7 -7
  24. package/fesm2022/c8y-ngx-components-branding-extra-css-branding-editor.mjs +7 -7
  25. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor-lazy.mjs +3 -3
  26. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs +7 -7
  27. package/fesm2022/c8y-ngx-components-branding-shared-data.mjs +17 -17
  28. package/fesm2022/c8y-ngx-components-branding-shared-data.mjs.map +1 -1
  29. package/fesm2022/c8y-ngx-components-branding-shared-lazy-add-branding-modal.mjs +6 -6
  30. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +36 -36
  31. package/fesm2022/c8y-ngx-components-branding-shared.mjs +13 -13
  32. package/fesm2022/c8y-ngx-components-child-devices.mjs +13 -13
  33. package/fesm2022/c8y-ngx-components-cockpit-config.mjs +40 -40
  34. package/fesm2022/{c8y-ngx-components-computed-asset-properties-alarm-count-config.component-tP8yUdy3.mjs → c8y-ngx-components-computed-asset-properties-alarm-count-config.component-Zygcid6r.mjs} +4 -4
  35. package/fesm2022/{c8y-ngx-components-computed-asset-properties-alarm-count-config.component-tP8yUdy3.mjs.map → c8y-ngx-components-computed-asset-properties-alarm-count-config.component-Zygcid6r.mjs.map} +1 -1
  36. package/fesm2022/{c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-wNQ45CJ1.mjs → c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-Cy9R6Ixb.mjs} +11 -11
  37. package/fesm2022/{c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-wNQ45CJ1.mjs.map → c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-Cy9R6Ixb.mjs.map} +1 -1
  38. package/fesm2022/{c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-BrYcCHYL.mjs → c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-Dz3efcEU.mjs} +4 -4
  39. package/fesm2022/{c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-BrYcCHYL.mjs.map → c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-Dz3efcEU.mjs.map} +1 -1
  40. package/fesm2022/{c8y-ngx-components-computed-asset-properties-event-count-config.component-BBKuA2rZ.mjs → c8y-ngx-components-computed-asset-properties-event-count-config.component-DzAGrG1d.mjs} +4 -4
  41. package/fesm2022/{c8y-ngx-components-computed-asset-properties-event-count-config.component-BBKuA2rZ.mjs.map → c8y-ngx-components-computed-asset-properties-event-count-config.component-DzAGrG1d.mjs.map} +1 -1
  42. package/fesm2022/{c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-uEdtPWC0.mjs → c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-LrmlAh6V.mjs} +5 -5
  43. package/fesm2022/{c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-uEdtPWC0.mjs.map → c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-LrmlAh6V.mjs.map} +1 -1
  44. package/fesm2022/{c8y-ngx-components-computed-asset-properties-last-measurement-config.component-BGhex-OP.mjs → c8y-ngx-components-computed-asset-properties-last-measurement-config.component-f1u1TcCl.mjs} +5 -5
  45. package/fesm2022/{c8y-ngx-components-computed-asset-properties-last-measurement-config.component-BGhex-OP.mjs.map → c8y-ngx-components-computed-asset-properties-last-measurement-config.component-f1u1TcCl.mjs.map} +1 -1
  46. package/fesm2022/c8y-ngx-components-computed-asset-properties.mjs +1 -1
  47. package/fesm2022/c8y-ngx-components-connectivity.mjs +53 -53
  48. package/fesm2022/c8y-ngx-components-context-dashboard-asset-add.mjs +10 -10
  49. package/fesm2022/c8y-ngx-components-context-dashboard-asset-view.mjs +7 -7
  50. package/fesm2022/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.mjs +11 -11
  51. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BkwPfkeK.mjs → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-DxpivVU5.mjs} +4 -4
  52. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BkwPfkeK.mjs.map → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-DxpivVU5.mjs.map} +1 -1
  53. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-4aO0U4qs.mjs → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-2HrOH9-8.mjs} +10 -10
  54. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-4aO0U4qs.mjs.map → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-2HrOH9-8.mjs.map} +1 -1
  55. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-1xx4pGiq.mjs → c8y-ngx-components-context-dashboard-dashboard-version-history.component-Cqy2OUcS.mjs} +4 -4
  56. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-1xx4pGiq.mjs.map → c8y-ngx-components-context-dashboard-dashboard-version-history.component-Cqy2OUcS.mjs.map} +1 -1
  57. package/fesm2022/c8y-ngx-components-context-dashboard-device-add.mjs +10 -10
  58. package/fesm2022/c8y-ngx-components-context-dashboard-device-view.mjs +7 -7
  59. package/fesm2022/c8y-ngx-components-context-dashboard-devicemanagement.mjs +3 -3
  60. package/fesm2022/c8y-ngx-components-context-dashboard-state.mjs +3 -3
  61. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +127 -113
  62. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  63. package/fesm2022/{c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-C8QX6xlf.mjs → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-L0Ns8oOr.mjs} +16 -16
  64. package/fesm2022/{c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-C8QX6xlf.mjs.map → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-L0Ns8oOr.mjs.map} +1 -1
  65. package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab.mjs +12 -12
  66. package/fesm2022/c8y-ngx-components-dashboard-manager-devicemanagement.mjs +6 -6
  67. package/fesm2022/c8y-ngx-components-dashboard-manager.mjs +22 -22
  68. package/fesm2022/c8y-ngx-components-data-broker.mjs +7 -7
  69. package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs +3 -3
  70. package/fesm2022/c8y-ngx-components-data-grid-columns.mjs +3 -3
  71. package/fesm2022/c8y-ngx-components-data-preparation.mjs +7 -7
  72. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +24 -24
  73. package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs +13 -13
  74. package/fesm2022/c8y-ngx-components-datapoint-library-details.mjs +3 -3
  75. package/fesm2022/c8y-ngx-components-datapoint-library-list.mjs +3 -3
  76. package/fesm2022/c8y-ngx-components-datapoint-library-services.mjs +3 -3
  77. package/fesm2022/c8y-ngx-components-datapoint-library.mjs +4 -4
  78. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +43 -43
  79. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs +36 -36
  80. package/fesm2022/c8y-ngx-components-default-subscriptions.mjs +16 -16
  81. package/fesm2022/c8y-ngx-components-device-enrolment-modal.mjs +9 -9
  82. package/fesm2022/c8y-ngx-components-device-enrolment.mjs +6 -6
  83. package/fesm2022/c8y-ngx-components-device-grid.mjs +43 -43
  84. package/fesm2022/c8y-ngx-components-device-list.mjs +22 -22
  85. package/fesm2022/c8y-ngx-components-device-map.mjs +12 -12
  86. package/fesm2022/c8y-ngx-components-device-profile.mjs +34 -34
  87. package/fesm2022/c8y-ngx-components-device-protocol-object-mappings.mjs +3 -3
  88. package/fesm2022/c8y-ngx-components-device-protocols.mjs +16 -16
  89. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +13 -13
  90. package/fesm2022/c8y-ngx-components-device-shell.mjs +31 -31
  91. package/fesm2022/c8y-ngx-components-diagnostics.mjs +13 -13
  92. package/fesm2022/c8y-ngx-components-echart.mjs +30 -30
  93. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +43 -43
  94. package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs +7 -7
  95. package/fesm2022/c8y-ngx-components-ecosystem-license-confirm.mjs +10 -10
  96. package/fesm2022/c8y-ngx-components-ecosystem-plugin-setup-stepper.mjs +7 -7
  97. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +46 -46
  98. package/fesm2022/c8y-ngx-components-ecosystem.mjs +82 -82
  99. package/fesm2022/c8y-ngx-components-editor.mjs +6 -6
  100. package/fesm2022/c8y-ngx-components-events-events-timeline.mjs +3 -3
  101. package/fesm2022/c8y-ngx-components-events.mjs +33 -33
  102. package/fesm2022/c8y-ngx-components-exports-list.mjs +6 -6
  103. package/fesm2022/c8y-ngx-components-feature-toggles-list.mjs +6 -6
  104. package/fesm2022/c8y-ngx-components-file-preview.mjs +7 -7
  105. package/fesm2022/c8y-ngx-components-files-repository.mjs +19 -19
  106. package/fesm2022/c8y-ngx-components-global-context.mjs +614 -479
  107. package/fesm2022/c8y-ngx-components-global-context.mjs.map +1 -1
  108. package/fesm2022/c8y-ngx-components-group-breadcrumbs.mjs +6 -6
  109. package/fesm2022/c8y-ngx-components-icon-selector.mjs +19 -19
  110. package/fesm2022/c8y-ngx-components-interval-picker.mjs +3 -3
  111. package/fesm2022/c8y-ngx-components-location.mjs +28 -28
  112. package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs +16 -16
  113. package/fesm2022/c8y-ngx-components-map.mjs +19 -19
  114. package/fesm2022/c8y-ngx-components-messaging-management.mjs +55 -55
  115. package/fesm2022/c8y-ngx-components-operation-picker.mjs +9 -9
  116. package/fesm2022/c8y-ngx-components-operations-bulk-operation-from-single.mjs +7 -7
  117. package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs +19 -19
  118. package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs +7 -7
  119. package/fesm2022/c8y-ngx-components-operations-bulk-operation-stepper.mjs +13 -13
  120. package/fesm2022/c8y-ngx-components-operations-bulk-operations-list.mjs +13 -13
  121. package/fesm2022/c8y-ngx-components-operations-bulk-operations-service.mjs +7 -7
  122. package/fesm2022/c8y-ngx-components-operations-bulk-operations-stepper-container.mjs +7 -7
  123. package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs +3 -3
  124. package/fesm2022/c8y-ngx-components-operations-create-bulk-operation-details.mjs +7 -7
  125. package/fesm2022/c8y-ngx-components-operations-device-selector.mjs +7 -7
  126. package/fesm2022/c8y-ngx-components-operations-grid-columns.mjs +12 -12
  127. package/fesm2022/c8y-ngx-components-operations-operation-details.mjs +13 -13
  128. package/fesm2022/c8y-ngx-components-operations-operation-summary.mjs +7 -7
  129. package/fesm2022/c8y-ngx-components-operations-operations-list-item-details.mjs +10 -10
  130. package/fesm2022/c8y-ngx-components-operations-operations-list.mjs +12 -12
  131. package/fesm2022/c8y-ngx-components-operations-operations-timeline.mjs +7 -7
  132. package/fesm2022/c8y-ngx-components-operations-shared.mjs +10 -10
  133. package/fesm2022/c8y-ngx-components-operations-status-filter.mjs +7 -7
  134. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-configuration.mjs +7 -7
  135. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-device-profile.mjs +13 -13
  136. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-firmware.mjs +13 -13
  137. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-software.mjs +13 -13
  138. package/fesm2022/c8y-ngx-components-operations-stepper-frames.mjs +13 -13
  139. package/fesm2022/c8y-ngx-components-operations.mjs +7 -7
  140. package/fesm2022/c8y-ngx-components-pending-mo-request.mjs +7 -7
  141. package/fesm2022/c8y-ngx-components-platform-configuration.mjs +10 -10
  142. package/fesm2022/c8y-ngx-components-protocol-lpwan.mjs +38 -38
  143. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +58 -58
  144. package/fesm2022/c8y-ngx-components-register-device.mjs +58 -58
  145. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +9 -9
  146. package/fesm2022/c8y-ngx-components-remote-access-data.mjs +3 -3
  147. package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs +3 -3
  148. package/fesm2022/c8y-ngx-components-remote-access-shared.mjs +6 -6
  149. package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +3 -3
  150. package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs +3 -3
  151. package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs +3 -3
  152. package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs +3 -3
  153. package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +3 -3
  154. package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +6 -6
  155. package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs +3 -3
  156. package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs +6 -6
  157. package/fesm2022/c8y-ngx-components-replace-device.mjs +10 -10
  158. package/fesm2022/c8y-ngx-components-report-dashboard.mjs +16 -16
  159. package/fesm2022/c8y-ngx-components-reports.mjs +19 -19
  160. package/fesm2022/c8y-ngx-components-repository-configuration.mjs +48 -48
  161. package/fesm2022/c8y-ngx-components-repository-firmware.mjs +33 -33
  162. package/fesm2022/c8y-ngx-components-repository-shared.mjs +34 -34
  163. package/fesm2022/c8y-ngx-components-repository-software.mjs +42 -42
  164. package/fesm2022/c8y-ngx-components-repository.mjs +4 -4
  165. package/fesm2022/c8y-ngx-components-search.mjs +19 -19
  166. package/fesm2022/c8y-ngx-components-sensor-phone-sensor-phone-modal.mjs +6 -6
  167. package/fesm2022/c8y-ngx-components-sensor-phone.mjs +7 -7
  168. package/fesm2022/c8y-ngx-components-services-service-command-tab.mjs +3 -3
  169. package/fesm2022/c8y-ngx-components-services-shared.mjs +3 -3
  170. package/fesm2022/c8y-ngx-components-services.mjs +29 -29
  171. package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs +16 -16
  172. package/fesm2022/c8y-ngx-components-sms-gateway.mjs +7 -7
  173. package/fesm2022/c8y-ngx-components-static-assets-data.mjs +6 -8
  174. package/fesm2022/c8y-ngx-components-static-assets-data.mjs.map +1 -1
  175. package/fesm2022/c8y-ngx-components-static-assets-modal.mjs +9 -9
  176. package/fesm2022/c8y-ngx-components-static-assets.mjs +6 -6
  177. package/fesm2022/c8y-ngx-components-sub-assets.mjs +60 -60
  178. package/fesm2022/c8y-ngx-components-tenants.mjs +40 -40
  179. package/fesm2022/c8y-ngx-components-time-context.mjs +6 -6
  180. package/fesm2022/c8y-ngx-components-tracking.mjs +12 -12
  181. package/fesm2022/c8y-ngx-components-translation-editor-data.mjs +4 -5
  182. package/fesm2022/c8y-ngx-components-translation-editor-data.mjs.map +1 -1
  183. package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs +12 -12
  184. package/fesm2022/c8y-ngx-components-translation-editor.mjs +6 -6
  185. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +33 -33
  186. package/fesm2022/c8y-ngx-components-upgrade-upgraded-services.mjs +4 -4
  187. package/fesm2022/c8y-ngx-components-upgrade.mjs +41 -41
  188. package/fesm2022/c8y-ngx-components-user-roles.mjs +10 -10
  189. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs +1 -2
  190. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs.map +1 -1
  191. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-all-critical-alarms.mjs +1 -2
  192. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-all-critical-alarms.mjs.map +1 -1
  193. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-recent-alarms.mjs +1 -2
  194. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-recent-alarms.mjs.map +1 -1
  195. package/fesm2022/c8y-ngx-components-widgets-definitions-asset-table.mjs +6 -6
  196. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs +4 -5
  197. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs.map +1 -1
  198. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-list.mjs +0 -1
  199. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-list.mjs.map +1 -1
  200. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs +0 -1
  201. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs.map +1 -1
  202. package/fesm2022/c8y-ngx-components-widgets-definitions-event-list.mjs +2 -89
  203. package/fesm2022/c8y-ngx-components-widgets-definitions-event-list.mjs.map +1 -1
  204. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget-ai-config.mjs +3 -3
  205. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs +6 -6
  206. package/fesm2022/c8y-ngx-components-widgets-definitions-kpi.mjs +0 -1
  207. package/fesm2022/c8y-ngx-components-widgets-definitions-kpi.mjs.map +1 -1
  208. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +23 -26
  209. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
  210. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-notes.mjs +3 -3
  211. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-table.mjs +34 -34
  212. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-table.mjs.map +1 -1
  213. package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-legacy-welcome.mjs +3 -3
  214. package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs +3 -3
  215. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +7 -7
  216. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
  217. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-list.mjs +12 -12
  218. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-list.mjs.map +1 -1
  219. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +21 -21
  220. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs.map +1 -1
  221. package/fesm2022/c8y-ngx-components-widgets-implementations-device-control-message.mjs +3 -3
  222. package/fesm2022/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs +10 -10
  223. package/fesm2022/c8y-ngx-components-widgets-implementations-events.mjs +8 -8
  224. package/fesm2022/c8y-ngx-components-widgets-implementations-events.mjs.map +1 -1
  225. package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs +3 -3
  226. package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs +24 -24
  227. package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs.map +1 -1
  228. package/fesm2022/c8y-ngx-components-widgets-implementations-image.mjs +9 -9
  229. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +18 -18
  230. package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs +7 -7
  231. package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs.map +1 -1
  232. package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs +6 -6
  233. package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs +9 -9
  234. package/fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs +9 -9
  235. package/fesm2022/c8y-ngx-components-widgets-implementations-pie-chart.mjs +9 -9
  236. package/fesm2022/c8y-ngx-components-widgets-implementations-quick-links.mjs +18 -18
  237. package/fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation.mjs +9 -9
  238. package/fesm2022/c8y-ngx-components.mjs +1432 -1412
  239. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  240. package/global-context/index.d.ts +59 -31
  241. package/global-context/index.d.ts.map +1 -1
  242. package/index.d.ts +26 -6
  243. package/index.d.ts.map +1 -1
  244. package/locales/de.po +77 -17
  245. package/locales/es.po +76 -17
  246. package/locales/fr.po +76 -17
  247. package/locales/ja_JP.po +72 -15
  248. package/locales/ko.po +76 -17
  249. package/locales/locales.pot +12 -9
  250. package/locales/nl.po +76 -17
  251. package/locales/pl.po +77 -17
  252. package/locales/pt_BR.po +77 -17
  253. package/locales/zh_CN.po +76 -17
  254. package/locales/zh_TW.po +76 -17
  255. package/package.json +1 -1
  256. package/static-assets/data/index.d.ts.map +1 -1
  257. package/translation-editor/data/index.d.ts.map +1 -1
  258. package/widgets/definitions/alarms/alarm-list/index.d.ts +0 -1
  259. package/widgets/definitions/alarms/alarm-list/index.d.ts.map +1 -1
  260. package/widgets/definitions/alarms/all-critical-alarms/index.d.ts +0 -1
  261. package/widgets/definitions/alarms/all-critical-alarms/index.d.ts.map +1 -1
  262. package/widgets/definitions/alarms/recent-alarms/index.d.ts +0 -1
  263. package/widgets/definitions/alarms/recent-alarms/index.d.ts.map +1 -1
  264. package/widgets/definitions/datapoints-list/index.d.ts +0 -1
  265. package/widgets/definitions/datapoints-list/index.d.ts.map +1 -1
  266. package/widgets/definitions/datapoints-table/index.d.ts +0 -1
  267. package/widgets/definitions/datapoints-table/index.d.ts.map +1 -1
  268. package/widgets/definitions/kpi/index.d.ts +0 -1
  269. package/widgets/definitions/kpi/index.d.ts.map +1 -1
  270. package/widgets/implementations/alarms/index.d.ts +5 -8
  271. package/widgets/implementations/alarms/index.d.ts.map +1 -1
  272. package/widgets/implementations/asset-table/index.d.ts +67 -1
  273. package/widgets/implementations/asset-table/index.d.ts.map +1 -1
  274. package/widgets/implementations/html-widget/index.d.ts +4 -6
  275. package/widgets/implementations/html-widget/index.d.ts.map +1 -1
@@ -736,10 +736,10 @@ class ComputedPropertiesService extends ExtensionPointForPlugins {
736
736
  stateToFactory(this.state$)
737
737
  ]).pipe(distinctUntilChanged(), shareReplay(1));
738
738
  }
739
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: ComputedPropertiesService, deps: [{ token: i0.Injector }, { token: i1.Router }, { token: i2.PluginsResolveService }], target: i0.ɵɵFactoryTarget.Injectable }); }
740
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: ComputedPropertiesService, providedIn: 'root' }); }
739
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ComputedPropertiesService, deps: [{ token: i0.Injector }, { token: i1.Router }, { token: i2.PluginsResolveService }], target: i0.ɵɵFactoryTarget.Injectable }); }
740
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ComputedPropertiesService, providedIn: 'root' }); }
741
741
  }
742
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: ComputedPropertiesService, decorators: [{
742
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ComputedPropertiesService, decorators: [{
743
743
  type: Injectable,
744
744
  args: [{
745
745
  providedIn: 'root'
@@ -1255,10 +1255,10 @@ class AssetPropertiesService {
1255
1255
  }
1256
1256
  return this.categorizeCustomProperties(propertyObjects);
1257
1257
  }
1258
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertiesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1259
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertiesService, providedIn: 'root' }); }
1258
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertiesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1259
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertiesService, providedIn: 'root' }); }
1260
1260
  }
1261
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertiesService, decorators: [{
1261
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertiesService, decorators: [{
1262
1262
  type: Injectable,
1263
1263
  args: [{
1264
1264
  providedIn: 'root'
@@ -1290,10 +1290,10 @@ class AssetPropertyActionDirective {
1290
1290
  this.elementRef = elementRef;
1291
1291
  this.viewContainer = viewContainer;
1292
1292
  }
1293
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyActionDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1294
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.19", type: AssetPropertyActionDirective, isStandalone: true, selector: "[c8yAssetPropertyAction]", ngImport: i0 }); }
1293
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyActionDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1294
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: AssetPropertyActionDirective, isStandalone: true, selector: "[c8yAssetPropertyAction]", ngImport: i0 }); }
1295
1295
  }
1296
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyActionDirective, decorators: [{
1296
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyActionDirective, decorators: [{
1297
1297
  type: Directive,
1298
1298
  args: [{
1299
1299
  selector: '[c8yAssetPropertyAction]',
@@ -1353,10 +1353,10 @@ class AssetPropertyValuePipe {
1353
1353
  }
1354
1354
  }));
1355
1355
  }
1356
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyValuePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1357
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyValuePipe, isStandalone: true, name: "c8yAssetPropertyValue" }); }
1356
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyValuePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1357
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyValuePipe, isStandalone: true, name: "c8yAssetPropertyValue" }); }
1358
1358
  }
1359
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyValuePipe, decorators: [{
1359
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyValuePipe, decorators: [{
1360
1360
  type: Pipe,
1361
1361
  args: [{
1362
1362
  name: 'c8yAssetPropertyValue',
@@ -1396,10 +1396,10 @@ class AssetPropertyIconPipe {
1396
1396
  return 'mix-words';
1397
1397
  }
1398
1398
  }
1399
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyIconPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1400
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyIconPipe, isStandalone: true, name: "c8yAssetPropertyIcon" }); }
1399
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyIconPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1400
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyIconPipe, isStandalone: true, name: "c8yAssetPropertyIcon" }); }
1401
1401
  }
1402
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyIconPipe, decorators: [{
1402
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyIconPipe, decorators: [{
1403
1403
  type: Pipe,
1404
1404
  args: [{
1405
1405
  name: 'c8yAssetPropertyIcon',
@@ -1429,10 +1429,10 @@ class AssetPropertyIconTooltipPipe {
1429
1429
  return property.type;
1430
1430
  }
1431
1431
  }
1432
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyIconTooltipPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1433
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyIconTooltipPipe, isStandalone: true, name: "c8yAssetPropertyIconTooltip" }); }
1432
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyIconTooltipPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1433
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyIconTooltipPipe, isStandalone: true, name: "c8yAssetPropertyIconTooltip" }); }
1434
1434
  }
1435
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyIconTooltipPipe, decorators: [{
1435
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyIconTooltipPipe, decorators: [{
1436
1436
  type: Pipe,
1437
1437
  args: [{
1438
1438
  name: 'c8yAssetPropertyIconTooltip',
@@ -1560,10 +1560,10 @@ class ComputedPropertiesConfigComponent {
1560
1560
  }
1561
1561
  return of(true);
1562
1562
  }
1563
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: ComputedPropertiesConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1564
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.19", type: ComputedPropertiesConfigComponent, isStandalone: true, selector: "c8y-computed-properties-config", inputs: { properties: "properties", definitions: "definitions", asset: "asset" }, viewQueries: [{ propertyName: "hosts", predicate: ["host"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "configForms", predicate: ["configForm"], descendants: true, read: NgForm, isSignal: true }], ngImport: i0, template: "<div class=\"viewport-modal has-asset-selector\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"'bolt'\"></i>\n <div\n class=\"modal-title\"\n id=\"modal-title\"\n translate\n >\n Configure computed properties\n </div>\n </div>\n <div\n class=\"inner-scroll\"\n id=\"modal-body\"\n >\n <p\n class=\"p-t-16 p-l-24 p-r-24 p-b-16 bg-component separator-bottom sticky-top text-center text-balance\"\n translate\n >\n Configure the settings below for each computed property. These configurations determine how\n the properties will be calculated and displayed. All required fields must be completed before\n you can apply the changes.\n </p>\n <div class=\"p-24 p-t-0\">\n <fieldset\n class=\"property-config-section c8y-fieldset p-b-8\"\n *ngFor=\"let propertyConfig of propertyConfigs; let i = index\"\n >\n <legend>\n {{ (propertyConfig.property.label || propertyConfig.property.name) | translate }}\n <span class=\"a-s-center m-l-8 tag tag--default\">{{ propertyConfig.property.name }}</span>\n </legend>\n <form\n class=\"property-config-form\"\n name=\"configForm{{ i }}\"\n #configForm=\"ngForm\"\n >\n <ng-template #host></ng-template>\n </form>\n </fieldset>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button\n class=\"btn btn-default\"\n [title]=\"'Cancel' | translate\"\n type=\"button\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n [title]=\"'Apply' | translate\"\n type=\"button\"\n (click)=\"apply()\"\n [disabled]=\"!isFormValid\"\n >\n {{ 'Apply' | translate }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
1563
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ComputedPropertiesConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1564
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.25", type: ComputedPropertiesConfigComponent, isStandalone: true, selector: "c8y-computed-properties-config", inputs: { properties: "properties", definitions: "definitions", asset: "asset" }, viewQueries: [{ propertyName: "hosts", predicate: ["host"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "configForms", predicate: ["configForm"], descendants: true, read: NgForm, isSignal: true }], ngImport: i0, template: "<div class=\"viewport-modal has-asset-selector\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"'bolt'\"></i>\n <div\n class=\"modal-title\"\n id=\"modal-title\"\n translate\n >\n Configure computed properties\n </div>\n </div>\n <div\n class=\"inner-scroll\"\n id=\"modal-body\"\n >\n <p\n class=\"p-t-16 p-l-24 p-r-24 p-b-16 bg-component separator-bottom sticky-top text-center text-balance\"\n translate\n >\n Configure the settings below for each computed property. These configurations determine how\n the properties will be calculated and displayed. All required fields must be completed before\n you can apply the changes.\n </p>\n <div class=\"p-24 p-t-0\">\n <fieldset\n class=\"property-config-section c8y-fieldset p-b-8\"\n *ngFor=\"let propertyConfig of propertyConfigs; let i = index\"\n >\n <legend>\n {{ (propertyConfig.property.label || propertyConfig.property.name) | translate }}\n <span class=\"a-s-center m-l-8 tag tag--default\">{{ propertyConfig.property.name }}</span>\n </legend>\n <form\n class=\"property-config-form\"\n name=\"configForm{{ i }}\"\n #configForm=\"ngForm\"\n >\n <ng-template #host></ng-template>\n </form>\n </fieldset>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button\n class=\"btn btn-default\"\n [title]=\"'Cancel' | translate\"\n type=\"button\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n [title]=\"'Apply' | translate\"\n type=\"button\"\n (click)=\"apply()\"\n [disabled]=\"!isFormValid\"\n >\n {{ 'Apply' | translate }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
1565
1565
  }
1566
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: ComputedPropertiesConfigComponent, decorators: [{
1566
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ComputedPropertiesConfigComponent, decorators: [{
1567
1567
  type: Component,
1568
1568
  args: [{ selector: 'c8y-computed-properties-config', standalone: true, imports: [C8yTranslatePipe, IconDirective, FormsModule, NgFor], template: "<div class=\"viewport-modal has-asset-selector\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"'bolt'\"></i>\n <div\n class=\"modal-title\"\n id=\"modal-title\"\n translate\n >\n Configure computed properties\n </div>\n </div>\n <div\n class=\"inner-scroll\"\n id=\"modal-body\"\n >\n <p\n class=\"p-t-16 p-l-24 p-r-24 p-b-16 bg-component separator-bottom sticky-top text-center text-balance\"\n translate\n >\n Configure the settings below for each computed property. These configurations determine how\n the properties will be calculated and displayed. All required fields must be completed before\n you can apply the changes.\n </p>\n <div class=\"p-24 p-t-0\">\n <fieldset\n class=\"property-config-section c8y-fieldset p-b-8\"\n *ngFor=\"let propertyConfig of propertyConfigs; let i = index\"\n >\n <legend>\n {{ (propertyConfig.property.label || propertyConfig.property.name) | translate }}\n <span class=\"a-s-center m-l-8 tag tag--default\">{{ propertyConfig.property.name }}</span>\n </legend>\n <form\n class=\"property-config-form\"\n name=\"configForm{{ i }}\"\n #configForm=\"ngForm\"\n >\n <ng-template #host></ng-template>\n </form>\n </fieldset>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button\n class=\"btn btn-default\"\n [title]=\"'Cancel' | translate\"\n type=\"button\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n [title]=\"'Apply' | translate\"\n type=\"button\"\n (click)=\"apply()\"\n [disabled]=\"!isFormValid\"\n >\n {{ 'Apply' | translate }}\n </button>\n </div>\n</div>\n" }]
1569
1569
  }], ctorParameters: () => [], propDecorators: { properties: [{
@@ -1595,10 +1595,10 @@ class AssetPropertyCollapseButtonTitlePipe {
1595
1595
  });
1596
1596
  }
1597
1597
  }
1598
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyCollapseButtonTitlePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1599
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyCollapseButtonTitlePipe, isStandalone: true, name: "c8yAssetPropertyCollapseButtonTitle" }); }
1598
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyCollapseButtonTitlePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1599
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyCollapseButtonTitlePipe, isStandalone: true, name: "c8yAssetPropertyCollapseButtonTitle" }); }
1600
1600
  }
1601
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyCollapseButtonTitlePipe, decorators: [{
1601
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyCollapseButtonTitlePipe, decorators: [{
1602
1602
  type: Pipe,
1603
1603
  args: [{
1604
1604
  name: 'c8yAssetPropertyCollapseButtonTitle',
@@ -1885,10 +1885,10 @@ class AssetPropertyDragDropService {
1885
1885
  }
1886
1886
  return '';
1887
1887
  }
1888
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyDragDropService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1889
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyDragDropService, providedIn: 'root' }); }
1888
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyDragDropService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1889
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyDragDropService, providedIn: 'root' }); }
1890
1890
  }
1891
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyDragDropService, decorators: [{
1891
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyDragDropService, decorators: [{
1892
1892
  type: Injectable,
1893
1893
  args: [{
1894
1894
  providedIn: 'root'
@@ -2792,10 +2792,10 @@ class AssetPropertyListComponent {
2792
2792
  const { computed, simple, complex } = this.assetPropertiesService.categorizeAndFlattenHierarchicalProperties(properties);
2793
2793
  return [...computed, ...simple, ...complex];
2794
2794
  }
2795
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2796
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AssetPropertyListComponent, isStandalone: true, selector: "c8y-asset-property-list", inputs: { config: "config", asset: "asset", extraProperties: "extraProperties" }, outputs: { selectedProperties: "selectedProperties" }, queries: [{ propertyName: "assetPropertyAction", first: true, predicate: AssetPropertyActionDirective, descendants: true }], viewQueries: [{ propertyName: "tree", first: true, predicate: ["tree"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"tree-container bg-inherit\"\n [attr.aria-label]=\"'Asset property list' | translate\"\n role=\"tree\"\n>\n @if (config.showHeader || config.filterable) {\n <div\n class=\"select-all-container bg-inherit sticky-top\"\n [ngClass]=\"{\n 'separator-bottom': config.filterable || (config.showHeader && dataSource.data.length)\n }\"\n >\n @if (config.filterable) {\n <div\n class=\"form-group m-b-0 p-16 d-flex\"\n [ngClass]=\"{ 'separator-bottom': config.showHeader }\"\n >\n <div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n [attr.aria-label]=\"'Filter properties' | translate\"\n placeholder=\"{{ 'Filter properties' | translate }}\"\n role=\"searchbox\"\n type=\"search\"\n autocomplete=\"off\"\n [(ngModel)]=\"filterText\"\n (input)=\"onFilter()\"\n [disabled]=\"!dataSource.data.length\"\n #filter\n />\n @if (filter.value.length === 0) {\n <span\n class=\"input-group-addon\"\n [attr.aria-hidden]=\"true\"\n >\n <i\n class=\"dlt-c8y-icon-search\"\n [c8yIcon]=\"'search'\"\n ></i>\n </span>\n }\n @if (filter.value.length > 0) {\n <span\n class=\"input-group-addon\"\n [attr.aria-hidden]=\"true\"\n >\n <i\n class=\"text-muted dlt-c8y-icon-times\"\n [c8yIcon]=\"'times'\"\n [attr.aria-label]=\"'Clear filter' | translate\"\n tabindex=\"0\"\n role=\"button\"\n (click)=\"clearFilter()\"\n ></i>\n </span>\n }\n </div>\n </div>\n }\n @if (config.showHeader && dataSource.data.length) {\n <div class=\"d-flex a-i-center overflow-hidden\">\n <div\n class=\"flex-no-shrink d-flex a-i-center\"\n [ngClass]=\"{\n 'p-l-40': !hasExpandableNodes && config.expansionMode !== 'nonCollapsible',\n 'p-r-8': config.selectMode !== 'none' && config.expansionMode === 'nonCollapsible'\n }\"\n >\n @if (config.expansionMode !== 'nonCollapsible' && hasExpandableNodes) {\n @let collapseAllButtonTitle =\n (areAllNodesExpanded ? collapseAllLabel : expandAllLabel) | translate;\n <button\n class=\"collapse-btn btn-dot flex-no-shrink\"\n [title]=\"collapseAllButtonTitle\"\n [attr.aria-label]=\"collapseAllButtonTitle\"\n type=\"button\"\n [ngClass]=\"{ active: areAllNodesExpanded }\"\n (click)=\"toggleExpandCollapseAll()\"\n >\n <i [c8yIcon]=\"'chevron-right'\"></i>\n </button>\n }\n </div>\n @if (config.selectMode === 'multi') {\n <c8y-list-item-checkbox\n class=\"p-l-4 p-r-4\"\n [ngModel]=\"allSelected\"\n [indeterminate]=\"indeterminate\"\n (onSelect)=\"selectAll($event)\"\n ></c8y-list-item-checkbox>\n }\n <div\n class=\"p-t-40\"\n [ngClass]=\"{\n 'p-l-24': config.selectMode === 'single',\n 'p-l-8': config.selectMode === 'none' && config.expansionMode === 'nonCollapsible'\n }\"\n ></div>\n <div class=\"content-flex-30 fit-w m-t-4 m-b-4 m-0\">\n <div class=\"col-6 d-flex a-i-center m-l-0 m-r-0\">\n <span class=\"flex-no-shrink p-l-4 p-r-8\">\n <div class=\"c8y-icon\"></div>\n </span>\n <span class=\"text-medium m-l-8\">\n {{ 'Property' | translate }}\n </span>\n </div>\n @if (config.showKey) {\n <div [ngClass]=\"{ 'col-3': config.showValue, 'col-6': !config.showValue }\">\n <span class=\"text-medium\">{{ 'Key' | translate }}</span>\n </div>\n }\n @if (config.showValue) {\n <div [ngClass]=\"{ 'col-3': config.showKey, 'col-6': !config.showKey }\">\n <span class=\"text-medium\">{{ 'Value' | translate }}</span>\n </div>\n }\n </div>\n @if (assetPropertyAction) {\n <div\n class=\"m-l-8 p-l-24 asset-property-list__actions\"\n [ngClass]=\"{\n 'p-r-40': config.allowAddingCustomProperties,\n 'p-r-8': !config.allowAddingCustomProperties\n }\"\n ></div>\n }\n </div>\n }\n </div>\n }\n\n @if (dataSource.data.length) {\n <cdk-tree\n role=\"presentation\"\n #tree\n [dataSource]=\"dataSource\"\n [levelAccessor]=\"getLevel\"\n cdkDropList\n cdkDropListOrientation=\"vertical\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"!config.allowDragAndDrop || dataSource.data.length < 2\"\n >\n <!-- Tree Node Definition -->\n <cdk-tree-node\n class=\"c8y-list__item--dense\"\n [attr.tabindex]=\"0\"\n [attr.aria-level]=\"getLevel(node) + 1\"\n [attr.aria-expanded]=\"hasChild(node) ? isNodeExpanded(node) : null\"\n [attr.aria-selected]=\"config.selectMode !== 'none' ? node.property.active : null\"\n role=\"treeitem\"\n *cdkTreeNodeDef=\"let node\"\n cdkTreeNodePadding\n [cdkTreeNodePaddingIndent]=\"TREE_NODE_INDENT\"\n [ngClass]=\"{\n nonCollapsible: config.expansionMode === 'nonCollapsible',\n nonSelectable: config.selectMode === 'none'\n }\"\n cdkDrag\n cdkDragLockAxis=\"y\"\n [cdkDragDisabled]=\"cdkDragDisabled\"\n >\n <div class=\"d-flex p-relative overflow-visible bg-inherit fit-h\">\n @if (config.allowDragAndDrop && dataSource.data.length > 1) {\n <div\n class=\"drag-handle-wrapper\"\n [ngClass]=\"{ 'drag-handle-disabled': cdkDragDisabled }\"\n >\n <button\n class=\"drag-handle btn-clean\"\n [title]=\"\n (cdkDragDisabled ? dragHandleDisabledLabel : dragHandleEnabledLabel) | translate\n \"\n [attr.aria-label]=\"\n (cdkDragDisabled ? dragHandleDisabledLabel : dragHandleEnabledLabel) | translate\n \"\n tabindex=\"-1\"\n type=\"button\"\n [disabled]=\"cdkDragDisabled\"\n >\n <i [c8yIcon]=\"'drag-reorder'\"></i>\n </button>\n </div>\n }\n <!-- Toggle Button for expandable nodes -->\n @if (config.expansionMode !== 'nonCollapsible' && hasChild(node)) {\n @let collapseButtonTitle =\n isNodeExpanded(node) | c8yAssetPropertyCollapseButtonTitle: node;\n <button\n class=\"collapse-btn btn-dot flex-no-shrink\"\n [title]=\"collapseButtonTitle\"\n [attr.aria-label]=\"collapseButtonTitle\"\n [attr.aria-expanded]=\"isNodeExpanded(node)\"\n type=\"button\"\n (click)=\"toggleNode(node)\"\n [ngClass]=\"{ active: isNodeExpanded(node) }\"\n >\n <i [c8yIcon]=\"'chevron-right'\"></i>\n </button>\n }\n <!-- Placeholder for non-expandable nodes to maintain alignment -->\n @if (!hasChild(node) || config.expansionMode === 'nonCollapsible') {\n <div\n class=\"flex-no-shrink\"\n [ngClass]=\"{\n 'p-r-40': config.expansionMode !== 'nonCollapsible',\n 'p-r-8': config.expansionMode === 'nonCollapsible'\n }\"\n ></div>\n }\n <!-- Selection Controls -->\n @if (config.selectMode !== 'none') {\n <div class=\"d-contents\">\n @if (config.selectMode === 'single') {\n <c8y-list-item-radio\n class=\"p-l-4 p-r-4\"\n type=\"radio\"\n [selected]=\"node.property.active\"\n (onSelect)=\"onSelectSingle($event, node)\"\n ></c8y-list-item-radio>\n } @else if (config.selectMode === 'multi') {\n <c8y-list-item-checkbox\n class=\"p-l-4 p-r-4\"\n [ngModel]=\"node.property.active\"\n [indeterminate]=\"node.indeterminate\"\n (onSelect)=\"onSelectMulti($event, node)\"\n ></c8y-list-item-checkbox>\n } @else if (config.selectMode === 'plus') {\n @if (node.property.active) {\n <button\n class=\"btn btn-dot btn-dot--danger m-l-4 m-r-4 p-relative a-s-center\"\n style=\"z-index: 5\"\n [attr.aria-label]=\"'Remove' | translate\"\n [tooltip]=\"'Remove from selected properties' | translate\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"onSelectMulti(false, node)\"\n >\n <i\n class=\"icon-20\"\n c8yIcon=\"minus-circle\"\n ></i>\n </button>\n }\n @if (!node.property.active) {\n <button\n class=\"btn btn-dot text-primary m-l-4 m-r-4 p-relative a-s-center\"\n style=\"z-index: 5\"\n [attr.aria-label]=\"'Add to selected properties' | translate\"\n [tooltip]=\"\n (node.property.config\n ? 'Add to selected properties (requires configuration)'\n : 'Add to selected properties'\n ) | translate\n \"\n container=\"body\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"onSelectMulti(true, node)\"\n >\n <i\n class=\"text-primary icon-20\"\n [c8yIcon]=\"node.property.config ? 'plus-circle-o' : 'plus-circle'\"\n ></i>\n </button>\n }\n }\n </div>\n }\n <div class=\"content-flex-30 fit-w bg-inherit m-0 min-width-0\">\n <div\n class=\"d-flex a-i-center bg-inherit m-0 flex-grow\"\n [style.max-width]=\"getColumnMaxWidth(node)\"\n >\n <c8y-li-icon\n class=\"p-r-4 p-l-4\"\n [icon]=\"node.property | c8yAssetPropertyIcon\"\n tooltip=\"{{ node.property | c8yAssetPropertyIconTooltip }}\"\n container=\"body\"\n [delay]=\"500\"\n [ngClass]=\"{\n 'p-l-4': config.selectMode !== 'none',\n 'p-l-8': config.selectMode === 'none'\n }\"\n ></c8y-li-icon>\n\n <span class=\"p-r-8 min-width-0 d-flex a-i-center\">\n @if (isContextMismatch(node)) {\n @let tooltipText =\n 'Property configured for a different asset. Reconfigure to match current asset.'\n | translate;\n <button\n class=\"btn-clean m-r-4\"\n [attr.aria-label]=\"tooltipText\"\n [tooltip]=\"tooltipText\"\n placement=\"top\"\n type=\"button\"\n [container]=\"'body'\"\n >\n <i\n class=\"status critical stroked-icon\"\n c8yIcon=\"exclamation-circle\"\n ></i>\n </button>\n }\n\n <div\n class=\"text-truncate\"\n title=\"{{\n node.property.label || node.property.title || node.property.name | translate\n }}\"\n [ngClass]=\"{\n 'text-muted': node.property.temporary,\n 'text-danger': isContextMismatch(node)\n }\"\n >\n {{ node.property.label || node.property.title || node.property.name | translate }}\n </div>\n </span>\n </div>\n @if (config.showKey) {\n <div\n class=\"d-flex a-i-center\"\n [ngClass]=\"{ 'col-3': config.showValue, 'col-6': !config.showValue }\"\n >\n <span\n class=\"d-inline-block tag tag--default a-s-center text-truncate\"\n title=\"{{ node.property.keyPath?.join('.') || node.property?.name }}\"\n >\n {{ node.property.keyPath?.join('.') || node.property?.name }}\n </span>\n </div>\n }\n @if (asset && config.showValue) {\n <div\n class=\"d-flex a-i-center\"\n [ngClass]=\"{ 'col-3': config.showKey, 'col-6': !config.showKey }\"\n >\n @let value = node.property | c8yAssetPropertyValue: asset | async;\n <span\n class=\"tag tag--info d-inline-block a-s-center text-truncate\"\n title=\"{{ value }}\"\n >\n {{ value }}\n </span>\n </div>\n }\n </div>\n @if (assetPropertyAction || node.property.temporary) {\n <div\n class=\"m-l-8 showOnHover d-flex a-i-center j-c-end asset-property-list__actions\"\n [ngClass]=\"{\n 'p-l-32': !node.property.temporary && config.allowAddingCustomProperties,\n 'has-computed': node.property.computed && node.property.config\n }\"\n >\n @if (node.property.computed && node.property.config) {\n <button\n class=\"btn btn-dot m-l-auto\"\n title=\"{{ 'Configure' | translate }}\"\n (click)=\"editProperty(node.property)\"\n >\n <i [c8yIcon]=\"'cog'\"></i>\n </button>\n }\n @if (node.property.temporary) {\n <button\n class=\"btn btn-dot btn-dot--danger\"\n [attr.aria-label]=\"'Remove' | translate\"\n tooltip=\"{{ 'Remove' | translate }}\"\n container=\"body\"\n type=\"button\"\n [ngClass]=\"{ 'm-l-auto': !node.property.computed || !node.property.config }\"\n [delay]=\"500\"\n (click)=\"removeProperty(node.property)\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n }\n <ng-container\n *ngTemplateOutlet=\"\n assetPropertyAction?.template;\n context: {\n $implicit: node.property\n }\n \"\n ></ng-container>\n </div>\n }\n </div>\n </cdk-tree-node>\n </cdk-tree>\n } @else {\n <c8y-ui-empty-state\n icon=\"list\"\n title=\"{{ 'No properties to display' | translate }}\"\n subtitle=\"{{ 'Select an asset to see the available properties.' | translate }}\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n }\n @if (config.allowAddingCustomProperties) {\n <div class=\"sticky-bottom bg-inherit separator-top p-16\">\n <button\n class=\"btn btn-default btn-sm m-l-8\"\n (click)=\"addProperty()\"\n data-cy=\"asset-property-item-add-button\"\n >\n <i [c8yIcon]=\"'plus'\"></i>\n {{ 'Add property' | translate }}\n </button>\n </div>\n }\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ListGroupModule }, { kind: "component", type: i2.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: i2.ListItemCheckboxComponent, selector: "c8y-list-item-checkbox, c8y-li-checkbox", inputs: ["selected", "indeterminate", "disabled", "displayAsSwitch"], outputs: ["onSelect"] }, { kind: "component", type: i2.ListItemRadioComponent, selector: "c8y-list-item-radio, c8y-li-radio", inputs: ["selected", "name", "disabled", "value"], outputs: ["onSelect"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "ngmodule", type: CdkTreeModule }, { kind: "directive", type: i4.CdkTreeNodeDef, selector: "[cdkTreeNodeDef]", inputs: ["cdkTreeNodeDefWhen"] }, { kind: "directive", type: i4.CdkTreeNodePadding, selector: "[cdkTreeNodePadding]", inputs: ["cdkTreeNodePadding", "cdkTreeNodePaddingIndent"] }, { kind: "component", type: i4.CdkTree, selector: "cdk-tree", inputs: ["dataSource", "treeControl", "levelAccessor", "childrenAccessor", "trackBy", "expansionKey"], exportAs: ["cdkTree"] }, { kind: "directive", type: i4.CdkTreeNode, selector: "cdk-tree-node", inputs: ["role", "isExpandable", "isExpanded", "isDisabled", "cdkTreeNodeTypeaheadLabel"], outputs: ["activation", "expandedChange"], exportAs: ["cdkTreeNode"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AssetPropertyValuePipe, name: "c8yAssetPropertyValue" }, { kind: "pipe", type: AssetPropertyIconPipe, name: "c8yAssetPropertyIcon" }, { kind: "pipe", type: AssetPropertyIconTooltipPipe, name: "c8yAssetPropertyIconTooltip" }, { kind: "pipe", type: AssetPropertyCollapseButtonTitlePipe, name: "c8yAssetPropertyCollapseButtonTitle" }] }); }
2795
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2796
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: AssetPropertyListComponent, isStandalone: true, selector: "c8y-asset-property-list", inputs: { config: "config", asset: "asset", extraProperties: "extraProperties" }, outputs: { selectedProperties: "selectedProperties" }, queries: [{ propertyName: "assetPropertyAction", first: true, predicate: AssetPropertyActionDirective, descendants: true }], viewQueries: [{ propertyName: "tree", first: true, predicate: ["tree"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"tree-container bg-inherit\"\n [attr.aria-label]=\"'Asset property list' | translate\"\n role=\"tree\"\n>\n @if (config.showHeader || config.filterable) {\n <div\n class=\"select-all-container bg-inherit sticky-top\"\n [ngClass]=\"{\n 'separator-bottom': config.filterable || (config.showHeader && dataSource.data.length)\n }\"\n >\n @if (config.filterable) {\n <div\n class=\"form-group m-b-0 p-16 d-flex\"\n [ngClass]=\"{ 'separator-bottom': config.showHeader }\"\n >\n <div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n [attr.aria-label]=\"'Filter properties' | translate\"\n placeholder=\"{{ 'Filter properties' | translate }}\"\n role=\"searchbox\"\n type=\"search\"\n autocomplete=\"off\"\n [(ngModel)]=\"filterText\"\n (input)=\"onFilter()\"\n [disabled]=\"!dataSource.data.length\"\n #filter\n />\n @if (filter.value.length === 0) {\n <span\n class=\"input-group-addon\"\n [attr.aria-hidden]=\"true\"\n >\n <i\n class=\"dlt-c8y-icon-search\"\n [c8yIcon]=\"'search'\"\n ></i>\n </span>\n }\n @if (filter.value.length > 0) {\n <span\n class=\"input-group-addon\"\n [attr.aria-hidden]=\"true\"\n >\n <i\n class=\"text-muted dlt-c8y-icon-times\"\n [c8yIcon]=\"'times'\"\n [attr.aria-label]=\"'Clear filter' | translate\"\n tabindex=\"0\"\n role=\"button\"\n (click)=\"clearFilter()\"\n ></i>\n </span>\n }\n </div>\n </div>\n }\n @if (config.showHeader && dataSource.data.length) {\n <div class=\"d-flex a-i-center overflow-hidden\">\n <div\n class=\"flex-no-shrink d-flex a-i-center\"\n [ngClass]=\"{\n 'p-l-40': !hasExpandableNodes && config.expansionMode !== 'nonCollapsible',\n 'p-r-8': config.selectMode !== 'none' && config.expansionMode === 'nonCollapsible'\n }\"\n >\n @if (config.expansionMode !== 'nonCollapsible' && hasExpandableNodes) {\n @let collapseAllButtonTitle =\n (areAllNodesExpanded ? collapseAllLabel : expandAllLabel) | translate;\n <button\n class=\"collapse-btn btn-dot flex-no-shrink\"\n [title]=\"collapseAllButtonTitle\"\n [attr.aria-label]=\"collapseAllButtonTitle\"\n type=\"button\"\n [ngClass]=\"{ active: areAllNodesExpanded }\"\n (click)=\"toggleExpandCollapseAll()\"\n >\n <i [c8yIcon]=\"'chevron-right'\"></i>\n </button>\n }\n </div>\n @if (config.selectMode === 'multi') {\n <c8y-list-item-checkbox\n class=\"p-l-4 p-r-4\"\n [ngModel]=\"allSelected\"\n [indeterminate]=\"indeterminate\"\n (onSelect)=\"selectAll($event)\"\n ></c8y-list-item-checkbox>\n }\n <div\n class=\"p-t-40\"\n [ngClass]=\"{\n 'p-l-24': config.selectMode === 'single',\n 'p-l-8': config.selectMode === 'none' && config.expansionMode === 'nonCollapsible'\n }\"\n ></div>\n <div class=\"content-flex-30 fit-w m-t-4 m-b-4 m-0\">\n <div class=\"col-6 d-flex a-i-center m-l-0 m-r-0\">\n <span class=\"flex-no-shrink p-l-4 p-r-8\">\n <div class=\"c8y-icon\"></div>\n </span>\n <span class=\"text-medium m-l-8\">\n {{ 'Property' | translate }}\n </span>\n </div>\n @if (config.showKey) {\n <div [ngClass]=\"{ 'col-3': config.showValue, 'col-6': !config.showValue }\">\n <span class=\"text-medium\">{{ 'Key' | translate }}</span>\n </div>\n }\n @if (config.showValue) {\n <div [ngClass]=\"{ 'col-3': config.showKey, 'col-6': !config.showKey }\">\n <span class=\"text-medium\">{{ 'Value' | translate }}</span>\n </div>\n }\n </div>\n @if (assetPropertyAction) {\n <div\n class=\"m-l-8 p-l-24 asset-property-list__actions\"\n [ngClass]=\"{\n 'p-r-40': config.allowAddingCustomProperties,\n 'p-r-8': !config.allowAddingCustomProperties\n }\"\n ></div>\n }\n </div>\n }\n </div>\n }\n\n @if (dataSource.data.length) {\n <cdk-tree\n role=\"presentation\"\n #tree\n [dataSource]=\"dataSource\"\n [levelAccessor]=\"getLevel\"\n cdkDropList\n cdkDropListOrientation=\"vertical\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"!config.allowDragAndDrop || dataSource.data.length < 2\"\n >\n <!-- Tree Node Definition -->\n <cdk-tree-node\n class=\"c8y-list__item--dense\"\n [attr.tabindex]=\"0\"\n [attr.aria-level]=\"getLevel(node) + 1\"\n [attr.aria-expanded]=\"hasChild(node) ? isNodeExpanded(node) : null\"\n [attr.aria-selected]=\"config.selectMode !== 'none' ? node.property.active : null\"\n role=\"treeitem\"\n *cdkTreeNodeDef=\"let node\"\n cdkTreeNodePadding\n [cdkTreeNodePaddingIndent]=\"TREE_NODE_INDENT\"\n [ngClass]=\"{\n nonCollapsible: config.expansionMode === 'nonCollapsible',\n nonSelectable: config.selectMode === 'none'\n }\"\n cdkDrag\n cdkDragLockAxis=\"y\"\n [cdkDragDisabled]=\"cdkDragDisabled\"\n >\n <div class=\"d-flex p-relative overflow-visible bg-inherit fit-h\">\n @if (config.allowDragAndDrop && dataSource.data.length > 1) {\n <div\n class=\"drag-handle-wrapper\"\n [ngClass]=\"{ 'drag-handle-disabled': cdkDragDisabled }\"\n >\n <button\n class=\"drag-handle btn-clean\"\n [title]=\"\n (cdkDragDisabled ? dragHandleDisabledLabel : dragHandleEnabledLabel) | translate\n \"\n [attr.aria-label]=\"\n (cdkDragDisabled ? dragHandleDisabledLabel : dragHandleEnabledLabel) | translate\n \"\n tabindex=\"-1\"\n type=\"button\"\n [disabled]=\"cdkDragDisabled\"\n >\n <i [c8yIcon]=\"'drag-reorder'\"></i>\n </button>\n </div>\n }\n <!-- Toggle Button for expandable nodes -->\n @if (config.expansionMode !== 'nonCollapsible' && hasChild(node)) {\n @let collapseButtonTitle =\n isNodeExpanded(node) | c8yAssetPropertyCollapseButtonTitle: node;\n <button\n class=\"collapse-btn btn-dot flex-no-shrink\"\n [title]=\"collapseButtonTitle\"\n [attr.aria-label]=\"collapseButtonTitle\"\n [attr.aria-expanded]=\"isNodeExpanded(node)\"\n type=\"button\"\n (click)=\"toggleNode(node)\"\n [ngClass]=\"{ active: isNodeExpanded(node) }\"\n >\n <i [c8yIcon]=\"'chevron-right'\"></i>\n </button>\n }\n <!-- Placeholder for non-expandable nodes to maintain alignment -->\n @if (!hasChild(node) || config.expansionMode === 'nonCollapsible') {\n <div\n class=\"flex-no-shrink\"\n [ngClass]=\"{\n 'p-r-40': config.expansionMode !== 'nonCollapsible',\n 'p-r-8': config.expansionMode === 'nonCollapsible'\n }\"\n ></div>\n }\n <!-- Selection Controls -->\n @if (config.selectMode !== 'none') {\n <div class=\"d-contents\">\n @if (config.selectMode === 'single') {\n <c8y-list-item-radio\n class=\"p-l-4 p-r-4\"\n type=\"radio\"\n [selected]=\"node.property.active\"\n (onSelect)=\"onSelectSingle($event, node)\"\n ></c8y-list-item-radio>\n } @else if (config.selectMode === 'multi') {\n <c8y-list-item-checkbox\n class=\"p-l-4 p-r-4\"\n [ngModel]=\"node.property.active\"\n [indeterminate]=\"node.indeterminate\"\n (onSelect)=\"onSelectMulti($event, node)\"\n ></c8y-list-item-checkbox>\n } @else if (config.selectMode === 'plus') {\n @if (node.property.active) {\n <button\n class=\"btn btn-dot btn-dot--danger m-l-4 m-r-4 p-relative a-s-center\"\n style=\"z-index: 5\"\n [attr.aria-label]=\"'Remove' | translate\"\n [tooltip]=\"'Remove from selected properties' | translate\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"onSelectMulti(false, node)\"\n >\n <i\n class=\"icon-20\"\n c8yIcon=\"minus-circle\"\n ></i>\n </button>\n }\n @if (!node.property.active) {\n <button\n class=\"btn btn-dot text-primary m-l-4 m-r-4 p-relative a-s-center\"\n style=\"z-index: 5\"\n [attr.aria-label]=\"'Add to selected properties' | translate\"\n [tooltip]=\"\n (node.property.config\n ? 'Add to selected properties (requires configuration)'\n : 'Add to selected properties'\n ) | translate\n \"\n container=\"body\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"onSelectMulti(true, node)\"\n >\n <i\n class=\"text-primary icon-20\"\n [c8yIcon]=\"node.property.config ? 'plus-circle-o' : 'plus-circle'\"\n ></i>\n </button>\n }\n }\n </div>\n }\n <div class=\"content-flex-30 fit-w bg-inherit m-0 min-width-0\">\n <div\n class=\"d-flex a-i-center bg-inherit m-0 flex-grow\"\n [style.max-width]=\"getColumnMaxWidth(node)\"\n >\n <c8y-li-icon\n class=\"p-r-4 p-l-4\"\n [icon]=\"node.property | c8yAssetPropertyIcon\"\n tooltip=\"{{ node.property | c8yAssetPropertyIconTooltip }}\"\n container=\"body\"\n [delay]=\"500\"\n [ngClass]=\"{\n 'p-l-4': config.selectMode !== 'none',\n 'p-l-8': config.selectMode === 'none'\n }\"\n ></c8y-li-icon>\n\n <span class=\"p-r-8 min-width-0 d-flex a-i-center\">\n @if (isContextMismatch(node)) {\n @let tooltipText =\n 'Property configured for a different asset. Reconfigure to match current asset.'\n | translate;\n <button\n class=\"btn-clean m-r-4\"\n [attr.aria-label]=\"tooltipText\"\n [tooltip]=\"tooltipText\"\n placement=\"top\"\n type=\"button\"\n [container]=\"'body'\"\n >\n <i\n class=\"status critical stroked-icon\"\n c8yIcon=\"exclamation-circle\"\n ></i>\n </button>\n }\n\n <div\n class=\"text-truncate\"\n title=\"{{\n node.property.label || node.property.title || node.property.name | translate\n }}\"\n [ngClass]=\"{\n 'text-muted': node.property.temporary,\n 'text-danger': isContextMismatch(node)\n }\"\n >\n {{ node.property.label || node.property.title || node.property.name | translate }}\n </div>\n </span>\n </div>\n @if (config.showKey) {\n <div\n class=\"d-flex a-i-center\"\n [ngClass]=\"{ 'col-3': config.showValue, 'col-6': !config.showValue }\"\n >\n <span\n class=\"d-inline-block tag tag--default a-s-center text-truncate\"\n title=\"{{ node.property.keyPath?.join('.') || node.property?.name }}\"\n >\n {{ node.property.keyPath?.join('.') || node.property?.name }}\n </span>\n </div>\n }\n @if (asset && config.showValue) {\n <div\n class=\"d-flex a-i-center\"\n [ngClass]=\"{ 'col-3': config.showKey, 'col-6': !config.showKey }\"\n >\n @let value = node.property | c8yAssetPropertyValue: asset | async;\n <span\n class=\"tag tag--info d-inline-block a-s-center text-truncate\"\n title=\"{{ value }}\"\n >\n {{ value }}\n </span>\n </div>\n }\n </div>\n @if (assetPropertyAction || node.property.temporary) {\n <div\n class=\"m-l-8 showOnHover d-flex a-i-center j-c-end asset-property-list__actions\"\n [ngClass]=\"{\n 'p-l-32': !node.property.temporary && config.allowAddingCustomProperties,\n 'has-computed': node.property.computed && node.property.config\n }\"\n >\n @if (node.property.computed && node.property.config) {\n <button\n class=\"btn btn-dot m-l-auto\"\n title=\"{{ 'Configure' | translate }}\"\n (click)=\"editProperty(node.property)\"\n >\n <i [c8yIcon]=\"'cog'\"></i>\n </button>\n }\n @if (node.property.temporary) {\n <button\n class=\"btn btn-dot btn-dot--danger\"\n [attr.aria-label]=\"'Remove' | translate\"\n tooltip=\"{{ 'Remove' | translate }}\"\n container=\"body\"\n type=\"button\"\n [ngClass]=\"{ 'm-l-auto': !node.property.computed || !node.property.config }\"\n [delay]=\"500\"\n (click)=\"removeProperty(node.property)\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n }\n <ng-container\n *ngTemplateOutlet=\"\n assetPropertyAction?.template;\n context: {\n $implicit: node.property\n }\n \"\n ></ng-container>\n </div>\n }\n </div>\n </cdk-tree-node>\n </cdk-tree>\n } @else {\n <c8y-ui-empty-state\n icon=\"list\"\n title=\"{{ 'No properties to display' | translate }}\"\n subtitle=\"{{ 'Select an asset to see the available properties.' | translate }}\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n }\n @if (config.allowAddingCustomProperties) {\n <div class=\"sticky-bottom bg-inherit separator-top p-16\">\n <button\n class=\"btn btn-default btn-sm m-l-8\"\n (click)=\"addProperty()\"\n data-cy=\"asset-property-item-add-button\"\n >\n <i [c8yIcon]=\"'plus'\"></i>\n {{ 'Add property' | translate }}\n </button>\n </div>\n }\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ListGroupModule }, { kind: "component", type: i2.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: i2.ListItemCheckboxComponent, selector: "c8y-list-item-checkbox, c8y-li-checkbox", inputs: ["selected", "indeterminate", "disabled", "displayAsSwitch"], outputs: ["onSelect"] }, { kind: "component", type: i2.ListItemRadioComponent, selector: "c8y-list-item-radio, c8y-li-radio", inputs: ["selected", "name", "disabled", "value"], outputs: ["onSelect"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "ngmodule", type: CdkTreeModule }, { kind: "directive", type: i4.CdkTreeNodeDef, selector: "[cdkTreeNodeDef]", inputs: ["cdkTreeNodeDefWhen"] }, { kind: "directive", type: i4.CdkTreeNodePadding, selector: "[cdkTreeNodePadding]", inputs: ["cdkTreeNodePadding", "cdkTreeNodePaddingIndent"] }, { kind: "component", type: i4.CdkTree, selector: "cdk-tree", inputs: ["dataSource", "treeControl", "levelAccessor", "childrenAccessor", "trackBy", "expansionKey"], exportAs: ["cdkTree"] }, { kind: "directive", type: i4.CdkTreeNode, selector: "cdk-tree-node", inputs: ["role", "isExpandable", "isExpanded", "isDisabled", "cdkTreeNodeTypeaheadLabel"], outputs: ["activation", "expandedChange"], exportAs: ["cdkTreeNode"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AssetPropertyValuePipe, name: "c8yAssetPropertyValue" }, { kind: "pipe", type: AssetPropertyIconPipe, name: "c8yAssetPropertyIcon" }, { kind: "pipe", type: AssetPropertyIconTooltipPipe, name: "c8yAssetPropertyIconTooltip" }, { kind: "pipe", type: AssetPropertyCollapseButtonTitlePipe, name: "c8yAssetPropertyCollapseButtonTitle" }] }); }
2797
2797
  }
2798
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyListComponent, decorators: [{
2798
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyListComponent, decorators: [{
2799
2799
  type: Component,
2800
2800
  args: [{ selector: 'c8y-asset-property-list', standalone: true, imports: [
2801
2801
  NgClass,
@@ -3174,10 +3174,10 @@ class AssetPropertyTabsComponent {
3174
3174
  asset: { id: this.asset.id, name: this.asset.name }
3175
3175
  }));
3176
3176
  }
3177
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3178
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AssetPropertyTabsComponent, isStandalone: true, selector: "c8y-asset-property-tabs", inputs: { asset: "asset", config: "config", selectedProperties: "selectedProperties", hiddenTabs: "hiddenTabs", tabsOutletName: "tabsOutletName", showSearch: "showSearch" }, outputs: { selectedPropertiesChange: "selectedPropertiesChange" }, host: { classAttribute: "d-contents" }, usesOnChanges: true, ngImport: i0, template: "@if (showSearch) {\n <div class=\"form-group p-16 m-b-0 d-flex sticky-top bg-component\">\n <div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n [attr.aria-label]=\"'Search properties' | translate\"\n placeholder=\"{{ 'Search properties' | translate }}\"\n role=\"searchbox\"\n type=\"search\"\n autocomplete=\"off\"\n [(ngModel)]=\"inputText\"\n (input)=\"onSearch()\"\n #filter\n />\n @if (filter.value.length === 0) {\n <span\n class=\"input-group-addon\"\n [attr.aria-hidden]=\"true\"\n >\n <i\n class=\"dlt-c8y-icon-search\"\n [c8yIcon]=\"'search'\"\n ></i>\n </span>\n }\n @if (filter.value.length > 0) {\n <span\n class=\"input-group-addon\"\n [attr.aria-hidden]=\"true\"\n >\n <i\n class=\"text-muted dlt-c8y-icon-times\"\n [c8yIcon]=\"'times'\"\n [attr.aria-label]=\"'Clear search' | translate\"\n tabindex=\"0\"\n role=\"button\"\n (click)=\"clearSearch()\"\n ></i>\n </span>\n }\n </div>\n </div>\n}\n\n@if (showTabBar) {\n <c8y-tabs-outlet\n class=\"elevation-none m-b-16 p-sticky bg-component d-block\"\n [outletName]=\"tabsOutletName\"\n orientation=\"horizontal\"\n ></c8y-tabs-outlet>\n\n @if (showAsset) {\n <c8y-tab\n [isActive]=\"selectedTab === 'asset'\"\n [tabsOutlet]=\"tabsOutletName\"\n [priority]=\"1100\"\n (onSelect)=\"onTabChange('asset')\"\n >\n <i [c8yIcon]=\"'cube'\"></i>\n <span>\n {{ tabNames.asset | translate }}\n <span\n class=\"m-l-4 badge badge-default flex-no-shrink\"\n aria-live=\"assertive\"\n >\n {{ assetCount }}\n </span>\n </span>\n </c8y-tab>\n }\n\n @if (showRegular) {\n <c8y-tab\n [isActive]=\"selectedTab === 'regular'\"\n [tabsOutlet]=\"tabsOutletName\"\n [priority]=\"1000\"\n (onSelect)=\"onTabChange('regular')\"\n >\n <i [c8yIcon]=\"'new-property'\"></i>\n <span>\n {{ tabNames.regular | translate }}\n <span\n class=\"m-l-4 badge badge-default flex-no-shrink\"\n aria-live=\"assertive\"\n >\n {{ regularCount }}\n </span>\n </span>\n </c8y-tab>\n }\n\n @if (showComputed) {\n <c8y-tab\n [isActive]=\"selectedTab === 'computed'\"\n [tabsOutlet]=\"tabsOutletName\"\n [priority]=\"900\"\n (onSelect)=\"onTabChange('computed')\"\n >\n <i [c8yIcon]=\"'bolt'\"></i>\n <span>\n {{ tabNames.computed | translate }}\n <span\n class=\"m-l-4 badge badge-default flex-no-shrink\"\n aria-live=\"assertive\"\n >\n {{ computedCount }}\n </span>\n </span>\n </c8y-tab>\n }\n}\n\n<c8y-asset-property-list\n class=\"bg-component d-block\"\n [config]=\"config\"\n [extraProperties]=\"displayedProperties\"\n (selectedProperties)=\"onSelectedProperties($event)\"\n></c8y-asset-property-list>\n@if (selectedTab === 'regular') {\n <c8y-load-more\n [paging]=\"paging\"\n [useIntersection]=\"true\"\n (onLoad)=\"loadMore()\"\n ></c8y-load-more>\n}\n", dependencies: [{ kind: "ngmodule", type: FormsModule$1 }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AssetPropertyListComponent, selector: "c8y-asset-property-list", inputs: ["config", "asset", "extraProperties"], outputs: ["selectedProperties"] }, { kind: "component", type: LoadMoreComponent, selector: "c8y-load-more", inputs: ["paging", "useIntersection", "hidden", "container", "class", "maxIterations", "noMoreDataHint", "loadingTemplate", "hideNoMoreDataHint", "loadNextLabel", "loadingLabel"], outputs: ["onLoad"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: TabComponent, selector: "c8y-tab", inputs: ["path", "label", "icon", "priority", "orientation", "injector", "tabsOutlet", "isActive", "text", "showAlways"], outputs: ["onSelect"] }, { kind: "component", type: TabsOutletComponent, selector: "c8y-tabs-outlet,c8y-ui-tabs", inputs: ["tabs", "orientation", "navigatorOpen", "outletName", "context", "openFirstTab", "hasHeader"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
3177
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3178
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: AssetPropertyTabsComponent, isStandalone: true, selector: "c8y-asset-property-tabs", inputs: { asset: "asset", config: "config", selectedProperties: "selectedProperties", hiddenTabs: "hiddenTabs", tabsOutletName: "tabsOutletName", showSearch: "showSearch" }, outputs: { selectedPropertiesChange: "selectedPropertiesChange" }, host: { classAttribute: "d-contents" }, usesOnChanges: true, ngImport: i0, template: "@if (showSearch) {\n <div class=\"form-group p-16 m-b-0 d-flex sticky-top bg-component\">\n <div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n [attr.aria-label]=\"'Search properties' | translate\"\n placeholder=\"{{ 'Search properties' | translate }}\"\n role=\"searchbox\"\n type=\"search\"\n autocomplete=\"off\"\n [(ngModel)]=\"inputText\"\n (input)=\"onSearch()\"\n #filter\n />\n @if (filter.value.length === 0) {\n <span\n class=\"input-group-addon\"\n [attr.aria-hidden]=\"true\"\n >\n <i\n class=\"dlt-c8y-icon-search\"\n [c8yIcon]=\"'search'\"\n ></i>\n </span>\n }\n @if (filter.value.length > 0) {\n <span\n class=\"input-group-addon\"\n [attr.aria-hidden]=\"true\"\n >\n <i\n class=\"text-muted dlt-c8y-icon-times\"\n [c8yIcon]=\"'times'\"\n [attr.aria-label]=\"'Clear search' | translate\"\n tabindex=\"0\"\n role=\"button\"\n (click)=\"clearSearch()\"\n ></i>\n </span>\n }\n </div>\n </div>\n}\n\n@if (showTabBar) {\n <c8y-tabs-outlet\n class=\"elevation-none m-b-16 p-sticky bg-component d-block\"\n [outletName]=\"tabsOutletName\"\n orientation=\"horizontal\"\n ></c8y-tabs-outlet>\n\n @if (showAsset) {\n <c8y-tab\n [isActive]=\"selectedTab === 'asset'\"\n [tabsOutlet]=\"tabsOutletName\"\n [priority]=\"1100\"\n (onSelect)=\"onTabChange('asset')\"\n >\n <i [c8yIcon]=\"'cube'\"></i>\n <span>\n {{ tabNames.asset | translate }}\n <span\n class=\"m-l-4 badge badge-default flex-no-shrink\"\n aria-live=\"assertive\"\n >\n {{ assetCount }}\n </span>\n </span>\n </c8y-tab>\n }\n\n @if (showRegular) {\n <c8y-tab\n [isActive]=\"selectedTab === 'regular'\"\n [tabsOutlet]=\"tabsOutletName\"\n [priority]=\"1000\"\n (onSelect)=\"onTabChange('regular')\"\n >\n <i [c8yIcon]=\"'new-property'\"></i>\n <span>\n {{ tabNames.regular | translate }}\n <span\n class=\"m-l-4 badge badge-default flex-no-shrink\"\n aria-live=\"assertive\"\n >\n {{ regularCount }}\n </span>\n </span>\n </c8y-tab>\n }\n\n @if (showComputed) {\n <c8y-tab\n [isActive]=\"selectedTab === 'computed'\"\n [tabsOutlet]=\"tabsOutletName\"\n [priority]=\"900\"\n (onSelect)=\"onTabChange('computed')\"\n >\n <i [c8yIcon]=\"'bolt'\"></i>\n <span>\n {{ tabNames.computed | translate }}\n <span\n class=\"m-l-4 badge badge-default flex-no-shrink\"\n aria-live=\"assertive\"\n >\n {{ computedCount }}\n </span>\n </span>\n </c8y-tab>\n }\n}\n\n<c8y-asset-property-list\n class=\"bg-component d-block\"\n [config]=\"config\"\n [extraProperties]=\"displayedProperties\"\n (selectedProperties)=\"onSelectedProperties($event)\"\n></c8y-asset-property-list>\n@if (selectedTab === 'regular') {\n <c8y-load-more\n [paging]=\"paging\"\n [useIntersection]=\"true\"\n (onLoad)=\"loadMore()\"\n ></c8y-load-more>\n}\n", dependencies: [{ kind: "ngmodule", type: FormsModule$1 }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AssetPropertyListComponent, selector: "c8y-asset-property-list", inputs: ["config", "asset", "extraProperties"], outputs: ["selectedProperties"] }, { kind: "component", type: LoadMoreComponent, selector: "c8y-load-more", inputs: ["paging", "useIntersection", "hidden", "container", "class", "maxIterations", "noMoreDataHint", "loadingTemplate", "hideNoMoreDataHint", "loadNextLabel", "loadingLabel"], outputs: ["onLoad"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: TabComponent, selector: "c8y-tab", inputs: ["path", "label", "icon", "priority", "orientation", "injector", "tabsOutlet", "isActive", "text", "showAlways"], outputs: ["onSelect"] }, { kind: "component", type: TabsOutletComponent, selector: "c8y-tabs-outlet,c8y-ui-tabs", inputs: ["tabs", "orientation", "navigatorOpen", "outletName", "context", "openFirstTab", "hasHeader"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
3179
3179
  }
3180
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyTabsComponent, decorators: [{
3180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyTabsComponent, decorators: [{
3181
3181
  type: Component,
3182
3182
  args: [{ selector: 'c8y-asset-property-tabs', host: {
3183
3183
  class: 'd-contents'
@@ -3284,10 +3284,10 @@ class CustomPropertiesDrawerComponent {
3284
3284
  selectIsDisabled() {
3285
3285
  return this.selectedProperties?.every(({ active }) => !active);
3286
3286
  }
3287
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CustomPropertiesDrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3288
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: CustomPropertiesDrawerComponent, isStandalone: true, selector: "c8y-custom-properties-drawer-component", outputs: { savePropertySelection: "savePropertySelection", cancelPropertySelection: "cancelPropertySelection" }, host: { classAttribute: "d-contents" }, ngImport: i0, template: "<div class=\"card-header separator\">\n <span class=\"h4 card-title\">{{ title | translate }}</span>\n</div>\n\n<c8y-asset-property-tabs\n [asset]=\"asset\"\n [config]=\"config\"\n [selectedProperties]=\"selectedProperties\"\n [hiddenTabs]=\"hiddenTabs\"\n [tabsOutletName]=\"'assetPropertiesDrawerTabs'\"\n [showSearch]=\"true\"\n (selectedPropertiesChange)=\"onSelectedProperties($event)\"\n></c8y-asset-property-tabs>\n\n<div class=\"card-footer text-center p-24 separator flex-no-shrink\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"onCancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Select' | translate }}\"\n type=\"button\"\n [disabled]=\"selectIsDisabled()\"\n (click)=\"onSave()\"\n >\n {{ 'Select' | translate }}\n </button>\n</div>\n", dependencies: [{ kind: "component", type: AssetPropertyTabsComponent, selector: "c8y-asset-property-tabs", inputs: ["asset", "config", "selectedProperties", "hiddenTabs", "tabsOutletName", "showSearch"], outputs: ["selectedPropertiesChange"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
3287
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: CustomPropertiesDrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3288
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: CustomPropertiesDrawerComponent, isStandalone: true, selector: "c8y-custom-properties-drawer-component", outputs: { savePropertySelection: "savePropertySelection", cancelPropertySelection: "cancelPropertySelection" }, host: { classAttribute: "d-contents" }, ngImport: i0, template: "<div class=\"card-header separator\">\n <span class=\"h4 card-title\">{{ title | translate }}</span>\n</div>\n\n<c8y-asset-property-tabs\n [asset]=\"asset\"\n [config]=\"config\"\n [selectedProperties]=\"selectedProperties\"\n [hiddenTabs]=\"hiddenTabs\"\n [tabsOutletName]=\"'assetPropertiesDrawerTabs'\"\n [showSearch]=\"true\"\n (selectedPropertiesChange)=\"onSelectedProperties($event)\"\n></c8y-asset-property-tabs>\n\n<div class=\"card-footer text-center p-24 separator flex-no-shrink\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"onCancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Select' | translate }}\"\n type=\"button\"\n [disabled]=\"selectIsDisabled()\"\n (click)=\"onSave()\"\n >\n {{ 'Select' | translate }}\n </button>\n</div>\n", dependencies: [{ kind: "component", type: AssetPropertyTabsComponent, selector: "c8y-asset-property-tabs", inputs: ["asset", "config", "selectedProperties", "hiddenTabs", "tabsOutletName", "showSearch"], outputs: ["selectedPropertiesChange"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
3289
3289
  }
3290
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CustomPropertiesDrawerComponent, decorators: [{
3290
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: CustomPropertiesDrawerComponent, decorators: [{
3291
3291
  type: Component,
3292
3292
  args: [{ selector: 'c8y-custom-properties-drawer-component', host: {
3293
3293
  class: 'd-contents'
@@ -3321,10 +3321,10 @@ class CustomPropertiesDrawerService {
3321
3321
  return [];
3322
3322
  }
3323
3323
  }
3324
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CustomPropertiesDrawerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3325
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CustomPropertiesDrawerService, providedIn: 'root' }); }
3324
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: CustomPropertiesDrawerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3325
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: CustomPropertiesDrawerService, providedIn: 'root' }); }
3326
3326
  }
3327
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CustomPropertiesDrawerService, decorators: [{
3327
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: CustomPropertiesDrawerService, decorators: [{
3328
3328
  type: Injectable,
3329
3329
  args: [{
3330
3330
  providedIn: 'root'
@@ -3353,10 +3353,10 @@ class AssetPropertyLabelPipe {
3353
3353
  label
3354
3354
  });
3355
3355
  }
3356
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyLabelPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3357
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyLabelPipe, isStandalone: true, name: "c8yAssetPropertyLabel" }); }
3356
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyLabelPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3357
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyLabelPipe, isStandalone: true, name: "c8yAssetPropertyLabel" }); }
3358
3358
  }
3359
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyLabelPipe, decorators: [{
3359
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyLabelPipe, decorators: [{
3360
3360
  type: Pipe,
3361
3361
  args: [{
3362
3362
  name: 'c8yAssetPropertyLabel',
@@ -3618,8 +3618,8 @@ class AssetPropertySelectorComponent {
3618
3618
  return false;
3619
3619
  }
3620
3620
  }
3621
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertySelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3622
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AssetPropertySelectorComponent, isStandalone: true, selector: "c8y-asset-property-selector", inputs: { contextAsset: "contextAsset", config: "config", extraProperties: "extraProperties", allowChangingContext: "allowChangingContext", allowPropertiesFromMultipleAssets: "allowPropertiesFromMultipleAssets", hideSelection: "hideSelection", allowSearch: "allowSearch" }, providers: [
3621
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertySelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3622
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: AssetPropertySelectorComponent, isStandalone: true, selector: "c8y-asset-property-selector", inputs: { contextAsset: "contextAsset", config: "config", extraProperties: "extraProperties", allowChangingContext: "allowChangingContext", allowPropertiesFromMultipleAssets: "allowPropertiesFromMultipleAssets", hideSelection: "hideSelection", allowSearch: "allowSearch" }, providers: [
3623
3623
  {
3624
3624
  provide: NG_VALUE_ACCESSOR,
3625
3625
  multi: true,
@@ -3627,7 +3627,7 @@ class AssetPropertySelectorComponent {
3627
3627
  }
3628
3628
  ], ngImport: i0, template: "<div\n class=\"d-grid grid__row--1 fit-h\"\n [ngClass]=\"{\n 'grid__col--3-6-3--md': allowChangingContext && !hideSelection,\n 'grid__col--8-4--md': !allowChangingContext && !hideSelection,\n 'grid__col--4-8--md': allowChangingContext && hideSelection\n }\"\n>\n @if (allowChangingContext) {\n <div class=\"d-flex d-col p-relative bg-level-1\">\n <c8y-asset-selector-miller\n class=\"d-contents\"\n [(ngModel)]=\"contextAsset\"\n [asset]=\"contextAsset\"\n (onSelected)=\"selectionChanged($event)\"\n [container]=\"''\"\n [config]=\"{\n view: 'miller',\n groupsSelectable: true,\n columnHeaders: true,\n showChildDevices: true,\n showUnassignedDevices: true,\n singleColumn: true,\n search: allowSearch,\n showFilter: true\n }\"\n ></c8y-asset-selector-miller>\n </div>\n }\n\n <div class=\"bg-component inner-scroll\">\n <c8y-asset-property-tabs\n class=\"bg-component d-contents\"\n [asset]=\"assetSelection | async\"\n [config]=\"config\"\n [selectedProperties]=\"selectedProperties\"\n [hiddenTabs]=\"hiddenTabs\"\n [showSearch]=\"true\"\n (selectedPropertiesChange)=\"onSelectedProperties($event)\"\n ></c8y-asset-property-tabs>\n </div>\n\n @if (!hideSelection) {\n <div class=\"inner-scroll bg-level-1\">\n <p\n class=\"text-medium p-l-16 p-r-16 p-t-8 p-b-8 separator-bottom sticky-top text-truncate\"\n [title]=\"'Selected properties' | translate\"\n >\n {{ 'Selected properties' | translate }}\n </p>\n @if (selectedProperties?.length) {\n <div class=\"d-flex flex-wrap gap-8 p-l-16 p-r-16 p-t-8 p-b-16\">\n @for (selectedProp of selectedProperties; track selectedProp.label) {\n <div\n [ngClass]=\"{\n 'c8y-datapoint-pill': selectedProp.computed && selectedProp.config,\n 'c8y-alarm-pill': !(selectedProp.computed && selectedProp.config)\n }\"\n >\n <button\n class=\"c8y-alarm-pill__btn\"\n [title]=\"'Remove' | translate\"\n type=\"button\"\n (click)=\"propertyRemoved(selectedProp)\"\n >\n <i\n class=\"icon-14\"\n c8yIcon=\"remove\"\n ></i>\n </button>\n @if (selectedProp.computed && selectedProp.config) {\n <button\n class=\"c8y-datapoint-pill__btn\"\n title=\"{{ 'Configure' | translate }}\"\n (click)=\"editProperty(selectedProp)\"\n >\n <i [c8yIcon]=\"'cog'\"></i>\n </button>\n }\n @let label =\n selectedProp.label || selectedProp.title || selectedProp.name | translate;\n <div\n class=\"c8y-alarm-pill__label\"\n [title]=\"selectedProp | c8yAssetPropertyLabel\"\n >\n <button\n class=\"btn-clean m-r-4\"\n [attr.aria-label]=\"selectedProp | c8yAssetPropertyIconTooltip\"\n tooltip=\"{{ selectedProp | c8yAssetPropertyIconTooltip }}\"\n container=\"body\"\n type=\"button\"\n [delay]=\"500\"\n >\n <i [c8yIcon]=\"selectedProp | c8yAssetPropertyIcon\"></i>\n </button>\n <span class=\"text-truncate\">\n <span class=\"text-truncate\">{{ label }}</span>\n @if (selectedProp.config) {\n <small\n class=\"text-muted\"\n title=\"{{ selectedProp.config | json }}\"\n >{{ selectedProp.config | json }}</small\n >\n }\n </span>\n </div>\n </div>\n }\n </div>\n }\n\n @if (!selectedProperties || !selectedProperties.length) {\n <div class=\"p-r-8\">\n <c8y-ui-empty-state\n [icon]=\"'c8y-data-points'\"\n [title]=\"'No properties to display' | translate\"\n [subtitle]=\"\n 'Select the asset, then on the available properties list, select desired property.'\n | translate\n \"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </div>\n }\n </div>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AssetPropertyTabsComponent, selector: "c8y-asset-property-tabs", inputs: ["asset", "config", "selectedProperties", "hiddenTabs", "tabsOutletName", "showSearch"], outputs: ["selectedPropertiesChange"] }, { kind: "component", type: MillerViewComponent, selector: "c8y-asset-selector-miller", inputs: ["config", "asset", "selectedDevice", "rootNode", "container"], outputs: ["onSelected", "onClearSelected"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AssetPropertyIconPipe, name: "c8yAssetPropertyIcon" }, { kind: "pipe", type: AssetPropertyIconTooltipPipe, name: "c8yAssetPropertyIconTooltip" }, { kind: "pipe", type: AssetPropertyLabelPipe, name: "c8yAssetPropertyLabel" }, { kind: "pipe", type: JsonPipe, name: "json" }] }); }
3629
3629
  }
3630
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertySelectorComponent, decorators: [{
3630
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertySelectorComponent, decorators: [{
3631
3631
  type: Component,
3632
3632
  args: [{ selector: 'c8y-asset-property-selector', standalone: true, providers: [
3633
3633
  {
@@ -3743,10 +3743,10 @@ class AssetPropertySelectorDrawerComponent {
3743
3743
  selectIsDisabled() {
3744
3744
  return (!this.selectedProperties?.length || this.selectedProperties?.every(({ active }) => !active));
3745
3745
  }
3746
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertySelectorDrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3747
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: AssetPropertySelectorDrawerComponent, isStandalone: true, selector: "c8y-asset-property-selector-drawer-component", inputs: { title: "title" }, host: { classAttribute: "d-contents" }, ngImport: i0, template: "<div class=\"card-header separator\">\n <span class=\"h4 card-title\">{{ title | translate }}</span>\n</div>\n\n<div class=\"card-inner-scroll fit-h\">\n <c8y-asset-property-selector\n [contextAsset]=\"contextAsset\"\n [config]=\"config\"\n [extraProperties]=\"extraProperties\"\n [allowChangingContext]=\"allowChangingContext\"\n [allowPropertiesFromMultipleAssets]=\"allowPropertiesFromMultipleAssets\"\n [hideSelection]=\"hideSelection\"\n [allowSearch]=\"allowSearch\"\n [ngModel]=\"selectedProperties\"\n (ngModelChange)=\"selectionChange($event)\"\n ></c8y-asset-property-selector>\n</div>\n\n<div class=\"card-footer text-center p-24 separator flex-no-shrink\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"onCancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Select' | translate }}\"\n type=\"button\"\n [disabled]=\"selectIsDisabled()\"\n (click)=\"onSave()\"\n >\n {{ 'Select' | translate }}\n </button>\n</div>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AssetPropertySelectorComponent, selector: "c8y-asset-property-selector", inputs: ["contextAsset", "config", "extraProperties", "allowChangingContext", "allowPropertiesFromMultipleAssets", "hideSelection", "allowSearch"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
3746
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertySelectorDrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3747
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: AssetPropertySelectorDrawerComponent, isStandalone: true, selector: "c8y-asset-property-selector-drawer-component", inputs: { title: "title" }, host: { classAttribute: "d-contents" }, ngImport: i0, template: "<div class=\"card-header separator\">\n <span class=\"h4 card-title\">{{ title | translate }}</span>\n</div>\n\n<div class=\"card-inner-scroll fit-h\">\n <c8y-asset-property-selector\n [contextAsset]=\"contextAsset\"\n [config]=\"config\"\n [extraProperties]=\"extraProperties\"\n [allowChangingContext]=\"allowChangingContext\"\n [allowPropertiesFromMultipleAssets]=\"allowPropertiesFromMultipleAssets\"\n [hideSelection]=\"hideSelection\"\n [allowSearch]=\"allowSearch\"\n [ngModel]=\"selectedProperties\"\n (ngModelChange)=\"selectionChange($event)\"\n ></c8y-asset-property-selector>\n</div>\n\n<div class=\"card-footer text-center p-24 separator flex-no-shrink\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"onCancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Select' | translate }}\"\n type=\"button\"\n [disabled]=\"selectIsDisabled()\"\n (click)=\"onSave()\"\n >\n {{ 'Select' | translate }}\n </button>\n</div>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AssetPropertySelectorComponent, selector: "c8y-asset-property-selector", inputs: ["contextAsset", "config", "extraProperties", "allowChangingContext", "allowPropertiesFromMultipleAssets", "hideSelection", "allowSearch"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
3748
3748
  }
3749
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertySelectorDrawerComponent, decorators: [{
3749
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertySelectorDrawerComponent, decorators: [{
3750
3750
  type: Component,
3751
3751
  args: [{ selector: 'c8y-asset-property-selector-drawer-component', host: {
3752
3752
  class: 'd-contents'
@@ -8,10 +8,10 @@ class IdentifierCellRendererComponent {
8
8
  constructor(context) {
9
9
  this.context = context;
10
10
  }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: IdentifierCellRendererComponent, deps: [{ token: CellRendererContext }], target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: IdentifierCellRendererComponent, isStandalone: true, selector: "c8y-identifier-cell-renderer", ngImport: i0, template: ` {{ context.item.id }} `, isInline: true }); }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IdentifierCellRendererComponent, deps: [{ token: CellRendererContext }], target: i0.ɵɵFactoryTarget.Component }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: IdentifierCellRendererComponent, isStandalone: true, selector: "c8y-identifier-cell-renderer", ngImport: i0, template: ` {{ context.item.id }} `, isInline: true }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: IdentifierCellRendererComponent, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: IdentifierCellRendererComponent, decorators: [{
15
15
  type: Component,
16
16
  args: [{
17
17
  template: ` {{ context.item.id }} `,
@@ -46,10 +46,10 @@ class TagsCellRendererComponent {
46
46
  constructor(context) {
47
47
  this.context = context;
48
48
  }
49
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: TagsCellRendererComponent, deps: [{ token: CellRendererContext }], target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: TagsCellRendererComponent, isStandalone: true, selector: "c8y-tags-cell-renderer", ngImport: i0, template: ` {{ context.item.tags }} `, isInline: true }); }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TagsCellRendererComponent, deps: [{ token: CellRendererContext }], target: i0.ɵɵFactoryTarget.Component }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: TagsCellRendererComponent, isStandalone: true, selector: "c8y-tags-cell-renderer", ngImport: i0, template: ` {{ context.item.tags }} `, isInline: true }); }
51
51
  }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: TagsCellRendererComponent, decorators: [{
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TagsCellRendererComponent, decorators: [{
53
53
  type: Component,
54
54
  args: [{
55
55
  template: ` {{ context.item.tags }} `,
@@ -84,10 +84,10 @@ class TitleCellRendererComponent {
84
84
  constructor(context) {
85
85
  this.context = context;
86
86
  }
87
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: TitleCellRendererComponent, deps: [{ token: CellRendererContext }], target: i0.ɵɵFactoryTarget.Component }); }
88
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: TitleCellRendererComponent, isStandalone: true, selector: "c8y-title-cell-renderer", ngImport: i0, template: ` {{ context.item.title }} `, isInline: true }); }
87
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TitleCellRendererComponent, deps: [{ token: CellRendererContext }], target: i0.ɵɵFactoryTarget.Component }); }
88
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: TitleCellRendererComponent, isStandalone: true, selector: "c8y-title-cell-renderer", ngImport: i0, template: ` {{ context.item.title }} `, isInline: true }); }
89
89
  }
90
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: TitleCellRendererComponent, decorators: [{
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: TitleCellRendererComponent, decorators: [{
91
91
  type: Component,
92
92
  args: [{
93
93
  template: ` {{ context.item.title }} `,
@@ -265,10 +265,10 @@ class AssetPropertyGridComponent {
265
265
  };
266
266
  });
267
267
  }
268
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyGridComponent, deps: [{ token: AssetPropertyService }, { token: BottomDrawerRef }, { token: AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
269
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: AssetPropertyGridComponent, isStandalone: true, selector: "c8y-asset-property-grid", outputs: { onAddCustomColumn: "onAddCustomColumn" }, host: { classAttribute: "d-contents" }, ngImport: i0, template: "<div class=\"card-block flex-no-shrink separator-bottom col-xs-12 large-padding p-t-24 p-b-24\">\n <div\n class=\"h4 text-center text-medium\"\n id=\"drawerTitle\"\n translate\n >\n Add custom column\n </div>\n</div>\n<c8y-data-grid\n class=\"min-height-0 flex-grow d-col\"\n [title]=\"'Asset properties' | translate\"\n [loadMoreItemsLabel]=\"'Load more asset properties' | translate\"\n [loadingItemsLabel]=\"'Loading asset properties\u2026' | translate\"\n [displayOptions]=\"displayOptions\"\n [headerActionControls]=\"headerActionControls\"\n [columns]=\"columns\"\n [treeGrid]=\"true\"\n [childNodePagination]=\"childNodePagination\"\n parentNodeLabelProperty=\"title\"\n [pagination]=\"pagination\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [selectable]=\"true\"\n [singleSelection]=\"true\"\n (itemsSelect)=\"selectItem($event)\"\n></c8y-data-grid>\n<div class=\"card-footer p-24 separator text-center\">\n <button\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"close()\"\n >\n {{ ' Cancel' | translate }}\n </button>\n</div>\n", dependencies: [{ kind: "component", type: DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "loading", "columns", "rows", "pagination", "childNodePagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "treeGrid", "hideReload", "childNodesProperty", "parentNodeLabelProperty"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
268
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyGridComponent, deps: [{ token: AssetPropertyService }, { token: BottomDrawerRef }, { token: AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
269
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: AssetPropertyGridComponent, isStandalone: true, selector: "c8y-asset-property-grid", outputs: { onAddCustomColumn: "onAddCustomColumn" }, host: { classAttribute: "d-contents" }, ngImport: i0, template: "<div class=\"card-block flex-no-shrink separator-bottom col-xs-12 large-padding p-t-24 p-b-24\">\n <div\n class=\"h4 text-center text-medium\"\n id=\"drawerTitle\"\n translate\n >\n Add custom column\n </div>\n</div>\n<c8y-data-grid\n class=\"min-height-0 flex-grow d-col\"\n [title]=\"'Asset properties' | translate\"\n [loadMoreItemsLabel]=\"'Load more asset properties' | translate\"\n [loadingItemsLabel]=\"'Loading asset properties\u2026' | translate\"\n [displayOptions]=\"displayOptions\"\n [headerActionControls]=\"headerActionControls\"\n [columns]=\"columns\"\n [treeGrid]=\"true\"\n [childNodePagination]=\"childNodePagination\"\n parentNodeLabelProperty=\"title\"\n [pagination]=\"pagination\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [selectable]=\"true\"\n [singleSelection]=\"true\"\n (itemsSelect)=\"selectItem($event)\"\n></c8y-data-grid>\n<div class=\"card-footer p-24 separator text-center\">\n <button\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"close()\"\n >\n {{ ' Cancel' | translate }}\n </button>\n</div>\n", dependencies: [{ kind: "component", type: DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "loading", "columns", "rows", "pagination", "childNodePagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "treeGrid", "hideReload", "childNodesProperty", "parentNodeLabelProperty"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
270
270
  }
271
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AssetPropertyGridComponent, decorators: [{
271
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AssetPropertyGridComponent, decorators: [{
272
272
  type: Component,
273
273
  args: [{ selector: 'c8y-asset-property-grid', host: { class: 'd-contents' }, standalone: true, imports: [
274
274
  C8yTranslatePipe,
@@ -282,4 +282,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
282
282
  }] } });
283
283
 
284
284
  export { AssetPropertyGridComponent };
285
- //# sourceMappingURL=c8y-ngx-components-asset-property-grid.component-BJOPTjF1.mjs.map
285
+ //# sourceMappingURL=c8y-ngx-components-asset-property-grid.component-DsfLvryd.mjs.map