@c8y/ngx-components 1023.4.6 → 1023.6.3

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 (381) hide show
  1. package/fesm2022/c8y-ngx-components-actility-device-registration.mjs +16 -16
  2. package/fesm2022/c8y-ngx-components-actility-device-registration.mjs.map +1 -1
  3. package/fesm2022/c8y-ngx-components-advanced-software-management.mjs +7 -7
  4. package/fesm2022/c8y-ngx-components-advanced-software-management.mjs.map +1 -1
  5. package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs +9 -9
  6. package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs.map +1 -1
  7. package/fesm2022/c8y-ngx-components-ai-ai-chat.mjs +12 -12
  8. package/fesm2022/c8y-ngx-components-ai-ai-chat.mjs.map +1 -1
  9. package/fesm2022/c8y-ngx-components-ai.mjs +3 -3
  10. package/fesm2022/c8y-ngx-components-ai.mjs.map +1 -1
  11. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +34 -34
  12. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs.map +1 -1
  13. package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs +4 -4
  14. package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs.map +1 -1
  15. package/fesm2022/c8y-ngx-components-alarms.mjs +76 -76
  16. package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
  17. package/fesm2022/c8y-ngx-components-api.mjs +7 -7
  18. package/fesm2022/c8y-ngx-components-api.mjs.map +1 -1
  19. package/fesm2022/c8y-ngx-components-app-logs.mjs +10 -10
  20. package/fesm2022/c8y-ngx-components-app-logs.mjs.map +1 -1
  21. package/fesm2022/c8y-ngx-components-asset-properties.mjs +39 -39
  22. package/fesm2022/c8y-ngx-components-asset-properties.mjs.map +1 -1
  23. package/fesm2022/{c8y-ngx-components-asset-property-grid.component-B0Yspstg.mjs → c8y-ngx-components-asset-property-grid.component-B1q7kXRu.mjs} +13 -13
  24. package/fesm2022/{c8y-ngx-components-asset-property-grid.component-B0Yspstg.mjs.map → c8y-ngx-components-asset-property-grid.component-B1q7kXRu.mjs.map} +1 -1
  25. package/fesm2022/c8y-ngx-components-assets-navigator.mjs +32 -32
  26. package/fesm2022/c8y-ngx-components-assets-navigator.mjs.map +1 -1
  27. package/fesm2022/c8y-ngx-components-auth-configuration.mjs +114 -114
  28. package/fesm2022/c8y-ngx-components-auth-configuration.mjs.map +1 -1
  29. package/fesm2022/c8y-ngx-components-binary-file-download.mjs +7 -7
  30. package/fesm2022/c8y-ngx-components-binary-file-download.mjs.map +1 -1
  31. package/fesm2022/c8y-ngx-components-bookmarks.mjs +13 -13
  32. package/fesm2022/c8y-ngx-components-bookmarks.mjs.map +1 -1
  33. package/fesm2022/c8y-ngx-components-branding-base-branding.mjs +4 -4
  34. package/fesm2022/c8y-ngx-components-branding-base-branding.mjs.map +1 -1
  35. package/fesm2022/c8y-ngx-components-branding-dark-theme.mjs +7 -7
  36. package/fesm2022/c8y-ngx-components-branding-dark-theme.mjs.map +1 -1
  37. package/fesm2022/c8y-ngx-components-branding-extra-css-branding-editor.mjs +7 -7
  38. package/fesm2022/c8y-ngx-components-branding-extra-css-branding-editor.mjs.map +1 -1
  39. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor-lazy.mjs +3 -3
  40. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor-lazy.mjs.map +1 -1
  41. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs +7 -7
  42. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs.map +1 -1
  43. package/fesm2022/c8y-ngx-components-branding-shared-data.mjs +15 -15
  44. package/fesm2022/c8y-ngx-components-branding-shared-data.mjs.map +1 -1
  45. package/fesm2022/c8y-ngx-components-branding-shared-lazy-add-branding-modal.mjs +6 -6
  46. package/fesm2022/c8y-ngx-components-branding-shared-lazy-add-branding-modal.mjs.map +1 -1
  47. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +36 -36
  48. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
  49. package/fesm2022/c8y-ngx-components-branding-shared.mjs +13 -13
  50. package/fesm2022/c8y-ngx-components-branding-shared.mjs.map +1 -1
  51. package/fesm2022/c8y-ngx-components-child-devices.mjs +13 -13
  52. package/fesm2022/c8y-ngx-components-child-devices.mjs.map +1 -1
  53. package/fesm2022/c8y-ngx-components-cockpit-config.mjs +40 -40
  54. package/fesm2022/c8y-ngx-components-cockpit-config.mjs.map +1 -1
  55. package/fesm2022/c8y-ngx-components-computed-asset-properties-alarm-count-config.component-Bl18pHcM.mjs +68 -0
  56. package/fesm2022/{c8y-ngx-components-computed-asset-properties-alarm-count-config.component-BeFT75x1.mjs.map → c8y-ngx-components-computed-asset-properties-alarm-count-config.component-Bl18pHcM.mjs.map} +1 -1
  57. package/fesm2022/{c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-B8_RmTvv.mjs → c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-C5QMFdX1.mjs} +4 -4
  58. package/fesm2022/{c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-B8_RmTvv.mjs.map → c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-C5QMFdX1.mjs.map} +1 -1
  59. package/fesm2022/c8y-ngx-components-computed-asset-properties-event-count-config.component-C-Lc5Ble.mjs +44 -0
  60. package/fesm2022/{c8y-ngx-components-computed-asset-properties-event-count-config.component-BUxC3Tmh.mjs.map → c8y-ngx-components-computed-asset-properties-event-count-config.component-C-Lc5Ble.mjs.map} +1 -1
  61. package/fesm2022/{c8y-ngx-components-computed-asset-properties-last-measurement-config.component-Dcmrw2Wg.mjs → c8y-ngx-components-computed-asset-properties-last-measurement-config.component-BXfM7hTQ.mjs} +4 -4
  62. package/fesm2022/{c8y-ngx-components-computed-asset-properties-last-measurement-config.component-Dcmrw2Wg.mjs.map → c8y-ngx-components-computed-asset-properties-last-measurement-config.component-BXfM7hTQ.mjs.map} +1 -1
  63. package/fesm2022/c8y-ngx-components-computed-asset-properties.mjs +6 -6
  64. package/fesm2022/c8y-ngx-components-connectivity.mjs +53 -53
  65. package/fesm2022/c8y-ngx-components-connectivity.mjs.map +1 -1
  66. package/fesm2022/c8y-ngx-components-context-dashboard-asset-add.mjs +10 -10
  67. package/fesm2022/c8y-ngx-components-context-dashboard-asset-add.mjs.map +1 -1
  68. package/fesm2022/c8y-ngx-components-context-dashboard-asset-view.mjs +7 -7
  69. package/fesm2022/c8y-ngx-components-context-dashboard-asset-view.mjs.map +1 -1
  70. package/fesm2022/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.mjs +11 -11
  71. package/fesm2022/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.mjs.map +1 -1
  72. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-C30if8-Q.mjs → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BuGMpNrA.mjs} +4 -4
  73. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-C30if8-Q.mjs.map → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BuGMpNrA.mjs.map} +1 -1
  74. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-FBfdlVT1.mjs → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-DN-f35bA.mjs} +10 -10
  75. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-FBfdlVT1.mjs.map → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-DN-f35bA.mjs.map} +1 -1
  76. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-DrVQS63v.mjs → c8y-ngx-components-context-dashboard-dashboard-version-history.component-BlIVEV__.mjs} +4 -4
  77. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-DrVQS63v.mjs.map → c8y-ngx-components-context-dashboard-dashboard-version-history.component-BlIVEV__.mjs.map} +1 -1
  78. package/fesm2022/c8y-ngx-components-context-dashboard-device-add.mjs +10 -10
  79. package/fesm2022/c8y-ngx-components-context-dashboard-device-add.mjs.map +1 -1
  80. package/fesm2022/c8y-ngx-components-context-dashboard-device-view.mjs +7 -7
  81. package/fesm2022/c8y-ngx-components-context-dashboard-device-view.mjs.map +1 -1
  82. package/fesm2022/c8y-ngx-components-context-dashboard-devicemanagement.mjs +3 -3
  83. package/fesm2022/c8y-ngx-components-context-dashboard-devicemanagement.mjs.map +1 -1
  84. package/fesm2022/c8y-ngx-components-context-dashboard-state.mjs +3 -3
  85. package/fesm2022/c8y-ngx-components-context-dashboard-state.mjs.map +1 -1
  86. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +102 -102
  87. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  88. package/fesm2022/{c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-BHmaZVgy.mjs → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-m7YeEj9R.mjs} +16 -16
  89. package/fesm2022/{c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-BHmaZVgy.mjs.map → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-m7YeEj9R.mjs.map} +1 -1
  90. package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab.mjs +12 -12
  91. package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab.mjs.map +1 -1
  92. package/fesm2022/c8y-ngx-components-dashboard-manager-devicemanagement.mjs +6 -6
  93. package/fesm2022/c8y-ngx-components-dashboard-manager-devicemanagement.mjs.map +1 -1
  94. package/fesm2022/c8y-ngx-components-dashboard-manager.mjs +22 -22
  95. package/fesm2022/c8y-ngx-components-dashboard-manager.mjs.map +1 -1
  96. package/fesm2022/c8y-ngx-components-data-broker.mjs +7 -7
  97. package/fesm2022/c8y-ngx-components-data-broker.mjs.map +1 -1
  98. package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs +3 -3
  99. package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs.map +1 -1
  100. package/fesm2022/c8y-ngx-components-data-grid-columns.mjs +3 -3
  101. package/fesm2022/c8y-ngx-components-data-grid-columns.mjs.map +1 -1
  102. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +24 -24
  103. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs.map +1 -1
  104. package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs +7 -7
  105. package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs.map +1 -1
  106. package/fesm2022/c8y-ngx-components-datapoint-library-details.mjs +3 -3
  107. package/fesm2022/c8y-ngx-components-datapoint-library-details.mjs.map +1 -1
  108. package/fesm2022/c8y-ngx-components-datapoint-library-list.mjs +3 -3
  109. package/fesm2022/c8y-ngx-components-datapoint-library-list.mjs.map +1 -1
  110. package/fesm2022/c8y-ngx-components-datapoint-library-services.mjs +3 -3
  111. package/fesm2022/c8y-ngx-components-datapoint-library-services.mjs.map +1 -1
  112. package/fesm2022/c8y-ngx-components-datapoint-library.mjs +4 -4
  113. package/fesm2022/c8y-ngx-components-datapoint-library.mjs.map +1 -1
  114. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +40 -40
  115. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
  116. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs +33 -33
  117. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -1
  118. package/fesm2022/c8y-ngx-components-default-subscriptions.mjs +16 -16
  119. package/fesm2022/c8y-ngx-components-default-subscriptions.mjs.map +1 -1
  120. package/fesm2022/c8y-ngx-components-device-grid.mjs +43 -43
  121. package/fesm2022/c8y-ngx-components-device-grid.mjs.map +1 -1
  122. package/fesm2022/c8y-ngx-components-device-list.mjs +22 -22
  123. package/fesm2022/c8y-ngx-components-device-list.mjs.map +1 -1
  124. package/fesm2022/c8y-ngx-components-device-map.mjs +12 -12
  125. package/fesm2022/c8y-ngx-components-device-map.mjs.map +1 -1
  126. package/fesm2022/c8y-ngx-components-device-profile.mjs +34 -34
  127. package/fesm2022/c8y-ngx-components-device-profile.mjs.map +1 -1
  128. package/fesm2022/c8y-ngx-components-device-protocol-object-mappings.mjs +3 -3
  129. package/fesm2022/c8y-ngx-components-device-protocol-object-mappings.mjs.map +1 -1
  130. package/fesm2022/c8y-ngx-components-device-protocols.mjs +16 -16
  131. package/fesm2022/c8y-ngx-components-device-protocols.mjs.map +1 -1
  132. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +13 -13
  133. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs.map +1 -1
  134. package/fesm2022/c8y-ngx-components-device-shell.mjs +31 -31
  135. package/fesm2022/c8y-ngx-components-device-shell.mjs.map +1 -1
  136. package/fesm2022/c8y-ngx-components-diagnostics.mjs +13 -13
  137. package/fesm2022/c8y-ngx-components-diagnostics.mjs.map +1 -1
  138. package/fesm2022/c8y-ngx-components-echart.mjs +30 -30
  139. package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
  140. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +43 -43
  141. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
  142. package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs +7 -7
  143. package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs.map +1 -1
  144. package/fesm2022/c8y-ngx-components-ecosystem-license-confirm.mjs +10 -10
  145. package/fesm2022/c8y-ngx-components-ecosystem-license-confirm.mjs.map +1 -1
  146. package/fesm2022/c8y-ngx-components-ecosystem-plugin-setup-stepper.mjs +7 -7
  147. package/fesm2022/c8y-ngx-components-ecosystem-plugin-setup-stepper.mjs.map +1 -1
  148. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +46 -46
  149. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
  150. package/fesm2022/c8y-ngx-components-ecosystem.mjs +82 -82
  151. package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
  152. package/fesm2022/c8y-ngx-components-editor.mjs +6 -6
  153. package/fesm2022/c8y-ngx-components-editor.mjs.map +1 -1
  154. package/fesm2022/c8y-ngx-components-events-events-timeline.mjs +3 -3
  155. package/fesm2022/c8y-ngx-components-events-events-timeline.mjs.map +1 -1
  156. package/fesm2022/c8y-ngx-components-events.mjs +3 -3
  157. package/fesm2022/c8y-ngx-components-events.mjs.map +1 -1
  158. package/fesm2022/c8y-ngx-components-exports-list.mjs +6 -6
  159. package/fesm2022/c8y-ngx-components-exports-list.mjs.map +1 -1
  160. package/fesm2022/c8y-ngx-components-file-preview.mjs +7 -7
  161. package/fesm2022/c8y-ngx-components-file-preview.mjs.map +1 -1
  162. package/fesm2022/c8y-ngx-components-files-repository.mjs +19 -19
  163. package/fesm2022/c8y-ngx-components-files-repository.mjs.map +1 -1
  164. package/fesm2022/c8y-ngx-components-global-context.mjs +118 -118
  165. package/fesm2022/c8y-ngx-components-global-context.mjs.map +1 -1
  166. package/fesm2022/c8y-ngx-components-icon-selector.mjs +19 -19
  167. package/fesm2022/c8y-ngx-components-icon-selector.mjs.map +1 -1
  168. package/fesm2022/c8y-ngx-components-interval-picker.mjs +3 -3
  169. package/fesm2022/c8y-ngx-components-interval-picker.mjs.map +1 -1
  170. package/fesm2022/c8y-ngx-components-location.mjs +28 -28
  171. package/fesm2022/c8y-ngx-components-location.mjs.map +1 -1
  172. package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs +16 -16
  173. package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs.map +1 -1
  174. package/fesm2022/c8y-ngx-components-map.mjs +19 -19
  175. package/fesm2022/c8y-ngx-components-map.mjs.map +1 -1
  176. package/fesm2022/c8y-ngx-components-messaging-management.mjs +55 -55
  177. package/fesm2022/c8y-ngx-components-messaging-management.mjs.map +1 -1
  178. package/fesm2022/c8y-ngx-components-operations-bulk-operation-from-single.mjs +7 -7
  179. package/fesm2022/c8y-ngx-components-operations-bulk-operation-from-single.mjs.map +1 -1
  180. package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs +19 -19
  181. package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs.map +1 -1
  182. package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs +7 -7
  183. package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs.map +1 -1
  184. package/fesm2022/c8y-ngx-components-operations-bulk-operation-stepper.mjs +13 -13
  185. package/fesm2022/c8y-ngx-components-operations-bulk-operation-stepper.mjs.map +1 -1
  186. package/fesm2022/c8y-ngx-components-operations-bulk-operations-list.mjs +13 -13
  187. package/fesm2022/c8y-ngx-components-operations-bulk-operations-list.mjs.map +1 -1
  188. package/fesm2022/c8y-ngx-components-operations-bulk-operations-service.mjs +7 -7
  189. package/fesm2022/c8y-ngx-components-operations-bulk-operations-service.mjs.map +1 -1
  190. package/fesm2022/c8y-ngx-components-operations-bulk-operations-stepper-container.mjs +7 -7
  191. package/fesm2022/c8y-ngx-components-operations-bulk-operations-stepper-container.mjs.map +1 -1
  192. package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs +3 -3
  193. package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs.map +1 -1
  194. package/fesm2022/c8y-ngx-components-operations-create-bulk-operation-details.mjs +7 -7
  195. package/fesm2022/c8y-ngx-components-operations-create-bulk-operation-details.mjs.map +1 -1
  196. package/fesm2022/c8y-ngx-components-operations-device-selector.mjs +7 -7
  197. package/fesm2022/c8y-ngx-components-operations-device-selector.mjs.map +1 -1
  198. package/fesm2022/c8y-ngx-components-operations-grid-columns.mjs +12 -12
  199. package/fesm2022/c8y-ngx-components-operations-grid-columns.mjs.map +1 -1
  200. package/fesm2022/c8y-ngx-components-operations-operation-details.mjs +13 -13
  201. package/fesm2022/c8y-ngx-components-operations-operation-details.mjs.map +1 -1
  202. package/fesm2022/c8y-ngx-components-operations-operation-summary.mjs +7 -7
  203. package/fesm2022/c8y-ngx-components-operations-operation-summary.mjs.map +1 -1
  204. package/fesm2022/c8y-ngx-components-operations-operations-list-item-details.mjs +10 -10
  205. package/fesm2022/c8y-ngx-components-operations-operations-list-item-details.mjs.map +1 -1
  206. package/fesm2022/c8y-ngx-components-operations-operations-list.mjs +12 -12
  207. package/fesm2022/c8y-ngx-components-operations-operations-list.mjs.map +1 -1
  208. package/fesm2022/c8y-ngx-components-operations-operations-timeline.mjs +7 -7
  209. package/fesm2022/c8y-ngx-components-operations-operations-timeline.mjs.map +1 -1
  210. package/fesm2022/c8y-ngx-components-operations-shared.mjs +10 -10
  211. package/fesm2022/c8y-ngx-components-operations-shared.mjs.map +1 -1
  212. package/fesm2022/c8y-ngx-components-operations-status-filter.mjs +7 -7
  213. package/fesm2022/c8y-ngx-components-operations-status-filter.mjs.map +1 -1
  214. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-configuration.mjs +7 -7
  215. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-configuration.mjs.map +1 -1
  216. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-device-profile.mjs +13 -13
  217. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-device-profile.mjs.map +1 -1
  218. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-firmware.mjs +13 -13
  219. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-firmware.mjs.map +1 -1
  220. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-software.mjs +13 -13
  221. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-software.mjs.map +1 -1
  222. package/fesm2022/c8y-ngx-components-operations-stepper-frames.mjs +13 -13
  223. package/fesm2022/c8y-ngx-components-operations-stepper-frames.mjs.map +1 -1
  224. package/fesm2022/c8y-ngx-components-operations.mjs +7 -7
  225. package/fesm2022/c8y-ngx-components-operations.mjs.map +1 -1
  226. package/fesm2022/c8y-ngx-components-pending-mo-request.mjs +7 -7
  227. package/fesm2022/c8y-ngx-components-pending-mo-request.mjs.map +1 -1
  228. package/fesm2022/c8y-ngx-components-platform-configuration.mjs +10 -10
  229. package/fesm2022/c8y-ngx-components-platform-configuration.mjs.map +1 -1
  230. package/fesm2022/c8y-ngx-components-protocol-lpwan.mjs +38 -38
  231. package/fesm2022/c8y-ngx-components-protocol-lpwan.mjs.map +1 -1
  232. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +58 -58
  233. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs.map +1 -1
  234. package/fesm2022/c8y-ngx-components-register-device.mjs +58 -58
  235. package/fesm2022/c8y-ngx-components-register-device.mjs.map +1 -1
  236. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +9 -9
  237. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs.map +1 -1
  238. package/fesm2022/c8y-ngx-components-remote-access-data.mjs +3 -3
  239. package/fesm2022/c8y-ngx-components-remote-access-data.mjs.map +1 -1
  240. package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs +3 -3
  241. package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs.map +1 -1
  242. package/fesm2022/c8y-ngx-components-remote-access-shared.mjs +6 -6
  243. package/fesm2022/c8y-ngx-components-remote-access-shared.mjs.map +1 -1
  244. package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +3 -3
  245. package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs.map +1 -1
  246. package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs +3 -3
  247. package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs.map +1 -1
  248. package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs +3 -3
  249. package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs.map +1 -1
  250. package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs +3 -3
  251. package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs.map +1 -1
  252. package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +3 -3
  253. package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs.map +1 -1
  254. package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +6 -6
  255. package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs.map +1 -1
  256. package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs +3 -3
  257. package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs.map +1 -1
  258. package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs +6 -6
  259. package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs.map +1 -1
  260. package/fesm2022/c8y-ngx-components-replace-device.mjs +10 -10
  261. package/fesm2022/c8y-ngx-components-replace-device.mjs.map +1 -1
  262. package/fesm2022/c8y-ngx-components-report-dashboard.mjs +16 -16
  263. package/fesm2022/c8y-ngx-components-report-dashboard.mjs.map +1 -1
  264. package/fesm2022/c8y-ngx-components-reports.mjs +19 -19
  265. package/fesm2022/c8y-ngx-components-reports.mjs.map +1 -1
  266. package/fesm2022/c8y-ngx-components-repository-configuration.mjs +48 -48
  267. package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
  268. package/fesm2022/c8y-ngx-components-repository-firmware.mjs +33 -33
  269. package/fesm2022/c8y-ngx-components-repository-firmware.mjs.map +1 -1
  270. package/fesm2022/c8y-ngx-components-repository-shared.mjs +34 -34
  271. package/fesm2022/c8y-ngx-components-repository-shared.mjs.map +1 -1
  272. package/fesm2022/c8y-ngx-components-repository-software.mjs +42 -42
  273. package/fesm2022/c8y-ngx-components-repository-software.mjs.map +1 -1
  274. package/fesm2022/c8y-ngx-components-repository.mjs +4 -4
  275. package/fesm2022/c8y-ngx-components-repository.mjs.map +1 -1
  276. package/fesm2022/c8y-ngx-components-search.mjs +19 -19
  277. package/fesm2022/c8y-ngx-components-search.mjs.map +1 -1
  278. package/fesm2022/c8y-ngx-components-sensor-phone-sensor-phone-modal.mjs +6 -6
  279. package/fesm2022/c8y-ngx-components-sensor-phone-sensor-phone-modal.mjs.map +1 -1
  280. package/fesm2022/c8y-ngx-components-sensor-phone.mjs +7 -7
  281. package/fesm2022/c8y-ngx-components-sensor-phone.mjs.map +1 -1
  282. package/fesm2022/c8y-ngx-components-services-service-command-tab.mjs +3 -3
  283. package/fesm2022/c8y-ngx-components-services-service-command-tab.mjs.map +1 -1
  284. package/fesm2022/c8y-ngx-components-services-shared.mjs +3 -3
  285. package/fesm2022/c8y-ngx-components-services-shared.mjs.map +1 -1
  286. package/fesm2022/c8y-ngx-components-services.mjs +29 -29
  287. package/fesm2022/c8y-ngx-components-services.mjs.map +1 -1
  288. package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs +16 -16
  289. package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs.map +1 -1
  290. package/fesm2022/c8y-ngx-components-sms-gateway.mjs +7 -7
  291. package/fesm2022/c8y-ngx-components-sms-gateway.mjs.map +1 -1
  292. package/fesm2022/c8y-ngx-components-static-assets-data.mjs +3 -3
  293. package/fesm2022/c8y-ngx-components-static-assets-data.mjs.map +1 -1
  294. package/fesm2022/c8y-ngx-components-static-assets-modal.mjs +9 -9
  295. package/fesm2022/c8y-ngx-components-static-assets-modal.mjs.map +1 -1
  296. package/fesm2022/c8y-ngx-components-static-assets.mjs +6 -6
  297. package/fesm2022/c8y-ngx-components-static-assets.mjs.map +1 -1
  298. package/fesm2022/c8y-ngx-components-sub-assets.mjs +60 -60
  299. package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
  300. package/fesm2022/c8y-ngx-components-tenants.mjs +41 -41
  301. package/fesm2022/c8y-ngx-components-tenants.mjs.map +1 -1
  302. package/fesm2022/c8y-ngx-components-time-context.mjs +6 -6
  303. package/fesm2022/c8y-ngx-components-time-context.mjs.map +1 -1
  304. package/fesm2022/c8y-ngx-components-tracking.mjs +12 -12
  305. package/fesm2022/c8y-ngx-components-tracking.mjs.map +1 -1
  306. package/fesm2022/c8y-ngx-components-translation-editor-data.mjs +3 -3
  307. package/fesm2022/c8y-ngx-components-translation-editor-data.mjs.map +1 -1
  308. package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs +12 -12
  309. package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs.map +1 -1
  310. package/fesm2022/c8y-ngx-components-translation-editor.mjs +6 -6
  311. package/fesm2022/c8y-ngx-components-translation-editor.mjs.map +1 -1
  312. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +33 -33
  313. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs.map +1 -1
  314. package/fesm2022/c8y-ngx-components-upgrade-upgraded-services.mjs +4 -4
  315. package/fesm2022/c8y-ngx-components-upgrade-upgraded-services.mjs.map +1 -1
  316. package/fesm2022/c8y-ngx-components-upgrade.mjs +62 -43
  317. package/fesm2022/c8y-ngx-components-upgrade.mjs.map +1 -1
  318. package/fesm2022/c8y-ngx-components-user-roles.mjs +10 -10
  319. package/fesm2022/c8y-ngx-components-user-roles.mjs.map +1 -1
  320. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs +3 -3
  321. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs.map +1 -1
  322. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget-ai-config.mjs +3 -3
  323. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget-ai-config.mjs.map +1 -1
  324. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs +6 -6
  325. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs.map +1 -1
  326. package/fesm2022/c8y-ngx-components-widgets-exports.mjs +8 -1
  327. package/fesm2022/c8y-ngx-components-widgets-exports.mjs.map +1 -1
  328. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +19 -19
  329. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
  330. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-notes.mjs +3 -3
  331. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-notes.mjs.map +1 -1
  332. package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-legacy-welcome.mjs +3 -3
  333. package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-legacy-welcome.mjs.map +1 -1
  334. package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs +3 -3
  335. package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs.map +1 -1
  336. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +6 -6
  337. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
  338. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +27 -27
  339. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs.map +1 -1
  340. package/fesm2022/c8y-ngx-components-widgets-implementations-device-control-message.mjs +3 -3
  341. package/fesm2022/c8y-ngx-components-widgets-implementations-device-control-message.mjs.map +1 -1
  342. package/fesm2022/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs +7 -7
  343. package/fesm2022/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs.map +1 -1
  344. package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs +3 -3
  345. package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs.map +1 -1
  346. package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs +24 -24
  347. package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs.map +1 -1
  348. package/fesm2022/c8y-ngx-components-widgets-implementations-image.mjs +9 -9
  349. package/fesm2022/c8y-ngx-components-widgets-implementations-image.mjs.map +1 -1
  350. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +18 -18
  351. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs.map +1 -1
  352. package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs +6 -6
  353. package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs.map +1 -1
  354. package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs +6 -6
  355. package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs.map +1 -1
  356. package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs +9 -9
  357. package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs.map +1 -1
  358. package/fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs +9 -9
  359. package/fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs.map +1 -1
  360. package/fesm2022/c8y-ngx-components-widgets-implementations-quick-links.mjs +18 -18
  361. package/fesm2022/c8y-ngx-components-widgets-implementations-quick-links.mjs.map +1 -1
  362. package/fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation.mjs +9 -9
  363. package/fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation.mjs.map +1 -1
  364. package/fesm2022/c8y-ngx-components-widgets-widget-providers.mjs +5 -2
  365. package/fesm2022/c8y-ngx-components-widgets-widget-providers.mjs.map +1 -1
  366. package/fesm2022/c8y-ngx-components.mjs +1329 -1325
  367. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  368. package/index.d.ts +7 -0
  369. package/index.d.ts.map +1 -1
  370. package/package.json +1 -1
  371. package/upgrade/index.d.ts +1 -0
  372. package/upgrade/index.d.ts.map +1 -1
  373. package/widgets/cockpit-exports/index.d.ts +6 -0
  374. package/widgets/cockpit-exports/index.d.ts.map +1 -1
  375. package/widgets/device-management-exports/index.d.ts +6 -0
  376. package/widgets/device-management-exports/index.d.ts.map +1 -1
  377. package/widgets/exports/index.d.ts +8 -1
  378. package/widgets/exports/index.d.ts.map +1 -1
  379. package/widgets/widget-providers/index.d.ts.map +1 -1
  380. package/fesm2022/c8y-ngx-components-computed-asset-properties-alarm-count-config.component-BeFT75x1.mjs +0 -68
  381. package/fesm2022/c8y-ngx-components-computed-asset-properties-event-count-config.component-BUxC3Tmh.mjs +0 -44
@@ -55,10 +55,10 @@ class AddSmartGroupComponent {
55
55
  close() {
56
56
  this.modal.hide();
57
57
  }
58
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AddSmartGroupComponent, deps: [{ token: i1.BsModalRef }, { token: i2.SmartGroupsService }, { token: i3.DeviceGridService }, { token: i4.AlertService }, { token: i5.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
59
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.3", type: AddSmartGroupComponent, isStandalone: true, selector: "c8y-add-smart-group", ngImport: i0, template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"'c8y-group-smart'\"></i>\n <h4\n id=\"modal-title\"\n translate\n >\n Add smart group\n </h4>\n </div>\n\n <form\n #createSmartGroup=\"ngForm\"\n (ngSubmit)=\"createSmartGroup.form.valid && create()\"\n >\n <div class=\"modal-inner-scroll\">\n <div\n class=\"modal-body\"\n id=\"modal-body\"\n >\n <c8y-form-group>\n <label\n class=\"d-inline-block\"\n for=\"name\"\n translate\n >\n Group name\n </label>\n <button\n class=\"btn-help btn-help--sm a-s-center\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"customPopoverTemplate\"\n placement=\"right\"\n type=\"button\"\n [outsideClick]=\"true\"\n data-cy=\"add-smart-group-component--Help-button\"\n ></button>\n <input\n class=\"form-control\"\n id=\"name\"\n placeholder=\"{{ 'e.g. My smart group' | translate }}\"\n name=\"name\"\n type=\"text\"\n autocomplete=\"off\"\n required\n [(ngModel)]=\"smartGroup.name\"\n />\n </c8y-form-group>\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)=\"close()\"\n translate\n >\n Cancel\n </button>\n\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Add' | translate }}\"\n type=\"submit\"\n [disabled]=\"createSmartGroup.form.invalid\"\n translate\n >\n Add\n </button>\n </div>\n </form>\n</div>\n\n<ng-template #customPopoverTemplate>\n <div\n class=\"m-b-16\"\n style=\"pointer-events: auto\"\n tabindex=\"0\"\n data-cy=\"add-smart-group-component--popover-Template\"\n translate\n >\n The smart group will be created based on the filters currently applied in the device list.\n </div>\n <br />\n <p\n c8y-guide-docs\n translate\n ngNonBindable\n >\n <small>\n Find out more in the\n <a c8y-guide-href=\"docs/device-management-application/grouping-devices/#using-smart-groups\">\n user documentation\n </a>\n .\n </small>\n </p>\n</ng-template>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: GuideDocsComponent, selector: "[c8y-guide-docs]" }, { kind: "directive", type: GuideHrefDirective, selector: "[c8y-guide-href]", inputs: ["c8y-guide-href"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
58
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AddSmartGroupComponent, deps: [{ token: i1.BsModalRef }, { token: i2.SmartGroupsService }, { token: i3.DeviceGridService }, { token: i4.AlertService }, { token: i5.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
59
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: AddSmartGroupComponent, isStandalone: true, selector: "c8y-add-smart-group", ngImport: i0, template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"'c8y-group-smart'\"></i>\n <h4\n id=\"modal-title\"\n translate\n >\n Add smart group\n </h4>\n </div>\n\n <form\n #createSmartGroup=\"ngForm\"\n (ngSubmit)=\"createSmartGroup.form.valid && create()\"\n >\n <div class=\"modal-inner-scroll\">\n <div\n class=\"modal-body\"\n id=\"modal-body\"\n >\n <c8y-form-group>\n <label\n class=\"d-inline-block\"\n for=\"name\"\n translate\n >\n Group name\n </label>\n <button\n class=\"btn-help btn-help--sm a-s-center\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"customPopoverTemplate\"\n placement=\"right\"\n type=\"button\"\n [outsideClick]=\"true\"\n data-cy=\"add-smart-group-component--Help-button\"\n ></button>\n <input\n class=\"form-control\"\n id=\"name\"\n placeholder=\"{{ 'e.g. My smart group' | translate }}\"\n name=\"name\"\n type=\"text\"\n autocomplete=\"off\"\n required\n [(ngModel)]=\"smartGroup.name\"\n />\n </c8y-form-group>\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)=\"close()\"\n translate\n >\n Cancel\n </button>\n\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Add' | translate }}\"\n type=\"submit\"\n [disabled]=\"createSmartGroup.form.invalid\"\n translate\n >\n Add\n </button>\n </div>\n </form>\n</div>\n\n<ng-template #customPopoverTemplate>\n <div\n class=\"m-b-16\"\n style=\"pointer-events: auto\"\n tabindex=\"0\"\n data-cy=\"add-smart-group-component--popover-Template\"\n translate\n >\n The smart group will be created based on the filters currently applied in the device list.\n </div>\n <br />\n <p\n c8y-guide-docs\n translate\n ngNonBindable\n >\n <small>\n Find out more in the\n <a c8y-guide-href=\"docs/device-management-application/grouping-devices/#using-smart-groups\">\n user documentation\n </a>\n .\n </small>\n </p>\n</ng-template>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: GuideDocsComponent, selector: "[c8y-guide-docs]" }, { kind: "directive", type: GuideHrefDirective, selector: "[c8y-guide-href]", inputs: ["c8y-guide-href"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
60
60
  }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AddSmartGroupComponent, decorators: [{
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AddSmartGroupComponent, decorators: [{
62
62
  type: Component,
63
63
  args: [{ selector: 'c8y-add-smart-group', imports: [
64
64
  IconDirective,
@@ -98,10 +98,10 @@ class DeviceListExtensionService extends ExtensionPointWithoutStateForPlugins {
98
98
  () => this.factories
99
99
  ]).pipe(map((columns) => isEmpty(columns) ? this.deviceGridService.getDefaultColumns() : columns), startWith(this.deviceGridService.getDefaultColumns()), shareReplay(1));
100
100
  }
101
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DeviceListExtensionService, deps: [{ token: i0.Injector }, { token: i1$1.Router }, { token: i4.PluginsResolveService }, { token: i3.DeviceGridService }], target: i0.ɵɵFactoryTarget.Injectable }); }
102
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DeviceListExtensionService, providedIn: 'root' }); }
101
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DeviceListExtensionService, deps: [{ token: i0.Injector }, { token: i1$1.Router }, { token: i4.PluginsResolveService }, { token: i3.DeviceGridService }], target: i0.ɵɵFactoryTarget.Injectable }); }
102
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DeviceListExtensionService, providedIn: 'root' }); }
103
103
  }
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DeviceListExtensionService, decorators: [{
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DeviceListExtensionService, decorators: [{
105
105
  type: Injectable,
106
106
  args: [{
107
107
  providedIn: 'root'
@@ -124,10 +124,10 @@ class DeviceListNavigationFactory {
124
124
  async get() {
125
125
  return this.nav;
126
126
  }
127
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DeviceListNavigationFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
128
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DeviceListNavigationFactory }); }
127
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DeviceListNavigationFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
128
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DeviceListNavigationFactory }); }
129
129
  }
130
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DeviceListNavigationFactory, decorators: [{
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DeviceListNavigationFactory, decorators: [{
131
131
  type: Injectable
132
132
  }] });
133
133
 
@@ -161,8 +161,8 @@ class DeviceListComponent {
161
161
  initialState
162
162
  });
163
163
  }
164
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DeviceListComponent, deps: [{ token: i3.DeviceGridService }, { token: i1.BsModalService }, { token: DeviceListExtensionService }], target: i0.ɵɵFactoryTarget.Component }); }
165
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.3", type: DeviceListComponent, isStandalone: true, selector: "c8y-device-list", providers: [
164
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DeviceListComponent, deps: [{ token: i3.DeviceGridService }, { token: i1.BsModalService }, { token: DeviceListExtensionService }], target: i0.ɵɵFactoryTarget.Component }); }
165
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: DeviceListComponent, isStandalone: true, selector: "c8y-device-list", providers: [
166
166
  {
167
167
  provide: DATA_GRID_CONFIGURATION_STRATEGY,
168
168
  useClass: UserPreferencesConfigurationStrategy
@@ -173,7 +173,7 @@ class DeviceListComponent {
173
173
  }
174
174
  ], ngImport: i0, template: "<c8y-title>\n {{ 'All devices' | translate }}\n</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'exchange'\"\n [label]=\"'Devices' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-device-management'\"\n [label]=\"'All devices' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add smart group' | translate }}\"\n (click)=\"createSmartGroup()\"\n >\n <i c8yIcon=\"c8y-group-smart\"></i>\n {{ 'Add smart group' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help\n src=\"/docs/device-management-application/viewing-all-devices/#viewing-all-devices\"\n></c8y-help>\n\n<div class=\"content-fullpage border-top border-bottom\">\n <c8y-device-grid\n [columns]=\"columns$ | async\"\n [infiniteScroll]=\"(count$ | async) === undefined ? 'auto' : undefined\"\n (onDeviceQueryStringChange)=\"deviceQueryStringOutput = $event\"\n c8yProductExperience\n [actionName]=\"'allDevices'\"\n ></c8y-device-grid>\n</div>\n", dependencies: [{ kind: "component", type: TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "component", type: DeviceGridComponent, selector: "c8y-device-grid", inputs: ["dataCallback", "refresh", "title", "loadMoreItemsLabel", "loadingItemsLabel", "legacyConfigKey", "legacyFilterKey", "columns", "pagination", "infiniteScroll", "actionControls", "selectable", "singleSelection", "baseQuery", "bulkActionControls", "headerActionControls", "childDeviceGrid", "parentDeviceId", "withChildren", "showSearch", "activeClassName"], outputs: ["onColumnsChange", "onFilterChange", "onDeviceQueryStringChange", "itemsSelect"] }, { kind: "directive", type: ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
175
175
  }
176
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DeviceListComponent, decorators: [{
176
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DeviceListComponent, decorators: [{
177
177
  type: Component,
178
178
  args: [{ selector: 'c8y-device-list', providers: [
179
179
  {
@@ -219,10 +219,10 @@ class ActionControlsFactory {
219
219
  }
220
220
  };
221
221
  }
222
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: ActionControlsFactory, deps: [{ token: i3.DeviceGridService }], target: i0.ɵɵFactoryTarget.Injectable }); }
223
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: ActionControlsFactory, providedIn: 'root' }); }
222
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ActionControlsFactory, deps: [{ token: i3.DeviceGridService }], target: i0.ɵɵFactoryTarget.Injectable }); }
223
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ActionControlsFactory, providedIn: 'root' }); }
224
224
  }
225
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: ActionControlsFactory, decorators: [{
225
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ActionControlsFactory, decorators: [{
226
226
  type: Injectable,
227
227
  args: [{ providedIn: 'root' }]
228
228
  }], ctorParameters: () => [{ type: i3.DeviceGridService }] });
@@ -262,10 +262,10 @@ class DevicesBreadcrumbFactory {
262
262
  return breadcrumb;
263
263
  }
264
264
  }
265
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DevicesBreadcrumbFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
266
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DevicesBreadcrumbFactory }); }
265
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DevicesBreadcrumbFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
266
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DevicesBreadcrumbFactory }); }
267
267
  }
268
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DevicesBreadcrumbFactory, decorators: [{
268
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DevicesBreadcrumbFactory, decorators: [{
269
269
  type: Injectable
270
270
  }] });
271
271
 
@@ -276,14 +276,14 @@ const deviceListRoutes = [
276
276
  }
277
277
  ];
278
278
  class DeviceListModule {
279
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DeviceListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
280
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.3", ngImport: i0, type: DeviceListModule, imports: [CoreModule,
279
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DeviceListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
280
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: DeviceListModule, imports: [CoreModule,
281
281
  CommonModule,
282
282
  DeviceGridModule,
283
283
  PopoverModule,
284
284
  TooltipModule, i1$1.RouterModule, DeviceListComponent,
285
285
  AddSmartGroupComponent] }); }
286
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DeviceListModule, providers: [
286
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DeviceListModule, providers: [
287
287
  hookNavigator(DeviceListNavigationFactory),
288
288
  hookBreadcrumb(DevicesBreadcrumbFactory),
289
289
  hookDataGridActionControls(ActionControlsFactory)
@@ -296,7 +296,7 @@ class DeviceListModule {
296
296
  DeviceListComponent,
297
297
  AddSmartGroupComponent] }); }
298
298
  }
299
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DeviceListModule, decorators: [{
299
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DeviceListModule, decorators: [{
300
300
  type: NgModule,
301
301
  args: [{
302
302
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-device-list.mjs","sources":["../../device-list/add-smart-group.component.ts","../../device-list/add-smart-group.component.html","../../device-list/device-list-extension.service.ts","../../device-list/device-list-navigation.factory.ts","../../device-list/device-list.component.ts","../../device-list/device-list.component.html","../../device-list/action-controls.factory.ts","../../device-list/devices.breadcrumb-factory.ts","../../device-list/device-list.module.ts","../../device-list/c8y-ngx-components-device-list.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { SmartGroupsService } from '@c8y/client';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n AlertService,\n IconDirective,\n C8yTranslateDirective,\n FormGroupComponent,\n RequiredInputPlaceholderDirective,\n GuideDocsComponent,\n GuideHrefDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { DeviceGridService } from '@c8y/ngx-components/device-grid';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { of } from 'rxjs';\nimport { catchError, switchMap, take, tap } from 'rxjs/operators';\nimport { FormsModule } from '@angular/forms';\nimport { PopoverDirective } from 'ngx-bootstrap/popover';\n\n@Component({\n selector: 'c8y-add-smart-group',\n templateUrl: './add-smart-group.component.html',\n imports: [\n IconDirective,\n C8yTranslateDirective,\n FormsModule,\n FormGroupComponent,\n PopoverDirective,\n RequiredInputPlaceholderDirective,\n GuideDocsComponent,\n GuideHrefDirective,\n C8yTranslatePipe\n ]\n})\nexport class AddSmartGroupComponent {\n smartGroup = {\n name: '',\n type: 'c8y_DynamicGroup',\n c8y_IsDynamicGroup: {}\n };\n\n configKey: string;\n deviceQuery: string;\n\n constructor(\n private modal: BsModalRef,\n private smartGroupsService: SmartGroupsService,\n private deviceGridService: DeviceGridService,\n private alert: AlertService,\n private translateService: TranslateService\n ) {}\n\n create() {\n return this.deviceGridService\n .getConfig$(this.configKey)\n .pipe(\n switchMap(config => {\n return this.smartGroupsService.create({\n smartGroup: this.smartGroup,\n deviceQueryString: this.deviceQuery,\n configurableColumns: config\n });\n }),\n tap(() => {\n this.alert.success(\n this.translateService.instant(gettext('Smart group \"{{ name }}\" added.'), {\n name: this.smartGroup.name\n })\n );\n this.modal.hide();\n }),\n catchError(ex => {\n this.alert.addServerFailure(ex);\n return of([]);\n }),\n take(1)\n )\n .subscribe();\n }\n\n close() {\n this.modal.hide();\n }\n}\n","<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"'c8y-group-smart'\"></i>\n <h4\n id=\"modal-title\"\n translate\n >\n Add smart group\n </h4>\n </div>\n\n <form\n #createSmartGroup=\"ngForm\"\n (ngSubmit)=\"createSmartGroup.form.valid && create()\"\n >\n <div class=\"modal-inner-scroll\">\n <div\n class=\"modal-body\"\n id=\"modal-body\"\n >\n <c8y-form-group>\n <label\n class=\"d-inline-block\"\n for=\"name\"\n translate\n >\n Group name\n </label>\n <button\n class=\"btn-help btn-help--sm a-s-center\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"customPopoverTemplate\"\n placement=\"right\"\n type=\"button\"\n [outsideClick]=\"true\"\n data-cy=\"add-smart-group-component--Help-button\"\n ></button>\n <input\n class=\"form-control\"\n id=\"name\"\n placeholder=\"{{ 'e.g. My smart group' | translate }}\"\n name=\"name\"\n type=\"text\"\n autocomplete=\"off\"\n required\n [(ngModel)]=\"smartGroup.name\"\n />\n </c8y-form-group>\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)=\"close()\"\n translate\n >\n Cancel\n </button>\n\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Add' | translate }}\"\n type=\"submit\"\n [disabled]=\"createSmartGroup.form.invalid\"\n translate\n >\n Add\n </button>\n </div>\n </form>\n</div>\n\n<ng-template #customPopoverTemplate>\n <div\n class=\"m-b-16\"\n style=\"pointer-events: auto\"\n tabindex=\"0\"\n data-cy=\"add-smart-group-component--popover-Template\"\n translate\n >\n The smart group will be created based on the filters currently applied in the device list.\n </div>\n <br />\n <p\n c8y-guide-docs\n translate\n ngNonBindable\n >\n <small>\n Find out more in the\n <a c8y-guide-href=\"docs/device-management-application/grouping-devices/#using-smart-groups\">\n user documentation\n </a>\n .\n </small>\n </p>\n</ng-template>\n","import { Injectable, InjectionToken, Injector } from '@angular/core';\nimport { Router } from '@angular/router';\nimport {\n Column,\n ExtensionFactory,\n ExtensionPointWithoutStateForPlugins,\n fromTriggerOnce,\n GenericHookOptions,\n GenericHookType,\n hookGeneric,\n PluginsResolveService\n} from '@c8y/ngx-components';\nimport { DeviceGridService } from '@c8y/ngx-components/device-grid';\nimport { flatten, isEmpty } from 'lodash-es';\nimport { Observable } from 'rxjs';\nimport { map, shareReplay, startWith } from 'rxjs/operators';\n\nconst HOOK_DEVICE_LIST_COLUMNS = new InjectionToken<GenericHookType<Column>>(\n 'HOOK_ALL_DEVICES_LIST_COLUMNS'\n);\n\nexport type DeviceListColumnsFactory = ExtensionFactory<Column>;\n\n/**\n * A hook to override the default device grid columns configuration in `c8y-device-list` component.\n */\nexport function hookDeviceListColumns(\n columns: GenericHookType<Column>,\n options?: Partial<GenericHookOptions>\n) {\n return hookGeneric<Column>(columns, HOOK_DEVICE_LIST_COLUMNS, options);\n}\n\n/**\n * A service defining device list column extension options.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DeviceListExtensionService extends ExtensionPointWithoutStateForPlugins<Column> {\n constructor(\n rootInjector: Injector,\n private router: Router,\n plugins: PluginsResolveService,\n private deviceGridService: DeviceGridService\n ) {\n super(rootInjector, plugins);\n this.items$ = this.setupItemsObservable();\n }\n\n protected setupItemsObservable(): Observable<Column[]> {\n return fromTriggerOnce<Column>(this.router, this.refresh$, [\n () =>\n flatten(\n this.injectors.map(injector =>\n injector.get(HOOK_DEVICE_LIST_COLUMNS, [], {\n self: true\n })\n )\n ),\n () => this.factories\n ]).pipe(\n map((columns: Column[]) =>\n isEmpty(columns) ? this.deviceGridService.getDefaultColumns() : columns\n ),\n startWith(this.deviceGridService.getDefaultColumns()),\n shareReplay(1)\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { NavigatorNode, NavigatorNodeFactory } from '@c8y/ngx-components';\n\n@Injectable()\nexport class DeviceListNavigationFactory implements NavigatorNodeFactory {\n nav = new NavigatorNode({\n label: gettext('All devices'),\n path: 'device',\n icon: 'c8y-device-management',\n parent: {\n label: gettext('Devices'),\n icon: 'exchange'\n },\n priority: 2000\n });\n\n async get() {\n return this.nav;\n }\n}\n","import { Component } from '@angular/core';\nimport {\n Column,\n DATA_GRID_CONFIGURATION_CONTEXT_PROVIDER,\n DATA_GRID_CONFIGURATION_STRATEGY,\n GridConfigContextProvider,\n UserPreferencesConfigurationStrategy,\n UserPreferencesGridConfigContext,\n TitleComponent,\n BreadcrumbComponent,\n BreadcrumbItemComponent,\n ActionBarItemComponent,\n IconDirective,\n HelpComponent,\n ProductExperienceDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { DeviceGridService, DeviceGridComponent } from '@c8y/ngx-components/device-grid';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { Observable } from 'rxjs';\nimport { AddSmartGroupComponent } from './add-smart-group.component';\nimport { DeviceListExtensionService } from './device-list-extension.service';\nimport { AsyncPipe } from '@angular/common';\n\n@Component({\n selector: 'c8y-device-list',\n templateUrl: './device-list.component.html',\n providers: [\n {\n provide: DATA_GRID_CONFIGURATION_STRATEGY,\n useClass: UserPreferencesConfigurationStrategy\n },\n {\n provide: DATA_GRID_CONFIGURATION_CONTEXT_PROVIDER,\n useExisting: DeviceListComponent\n }\n ],\n imports: [\n TitleComponent,\n BreadcrumbComponent,\n BreadcrumbItemComponent,\n ActionBarItemComponent,\n IconDirective,\n HelpComponent,\n DeviceGridComponent,\n ProductExperienceDirective,\n C8yTranslatePipe,\n AsyncPipe\n ]\n})\nexport class DeviceListComponent implements GridConfigContextProvider {\n readonly GRID_CONFIG_KEY = 'device-grid-all';\n\n count$ = this.deviceGridService.getTotal({});\n\n columns$: Observable<Column[]>;\n deviceQueryStringOutput: string;\n\n constructor(\n protected deviceGridService: DeviceGridService,\n private bsModalService: BsModalService,\n deviceListExtensionService: DeviceListExtensionService\n ) {\n this.columns$ = deviceListExtensionService.items$;\n }\n\n getGridConfigContext(): UserPreferencesGridConfigContext {\n return {\n key: this.GRID_CONFIG_KEY,\n defaultColumns: this.deviceGridService.getDefaultColumns(),\n legacyConfigKey: 'all-devices-columns-meta_',\n legacyFilterKey: 'all-devices-columns-config'\n };\n }\n\n async createSmartGroup() {\n const initialState = {\n configKey: this.GRID_CONFIG_KEY,\n deviceQuery: this.deviceQueryStringOutput\n };\n\n this.bsModalService.show(AddSmartGroupComponent, {\n class: 'modal-sm',\n ariaDescribedby: 'modal-body',\n ariaLabelledBy: 'modal-title',\n ignoreBackdropClick: true,\n keyboard: false,\n initialState\n });\n }\n}\n","<c8y-title>\n {{ 'All devices' | translate }}\n</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'exchange'\"\n [label]=\"'Devices' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-device-management'\"\n [label]=\"'All devices' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add smart group' | translate }}\"\n (click)=\"createSmartGroup()\"\n >\n <i c8yIcon=\"c8y-group-smart\"></i>\n {{ 'Add smart group' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help\n src=\"/docs/device-management-application/viewing-all-devices/#viewing-all-devices\"\n></c8y-help>\n\n<div class=\"content-fullpage border-top border-bottom\">\n <c8y-device-grid\n [columns]=\"columns$ | async\"\n [infiniteScroll]=\"(count$ | async) === undefined ? 'auto' : undefined\"\n (onDeviceQueryStringChange)=\"deviceQueryStringOutput = $event\"\n c8yProductExperience\n [actionName]=\"'allDevices'\"\n ></c8y-device-grid>\n</div>\n","import { Injectable } from '@angular/core';\nimport { IManagedObject } from '@c8y/client';\nimport {\n ActionControlFactory,\n ActionControlHook,\n BuiltInActionType,\n Row\n} from '@c8y/ngx-components';\nimport { DeviceGridService } from '@c8y/ngx-components/device-grid';\n\n@Injectable({ providedIn: 'root' })\nexport class ActionControlsFactory implements ActionControlFactory {\n constructor(private deviceGridService: DeviceGridService) {}\n\n get(): ActionControlHook {\n return {\n actionControls: [\n {\n type: BuiltInActionType.Delete,\n priority: -Infinity,\n callback: async (item: Row, reload: (boolean?) => void) => {\n await this.deviceGridService.delete(item as IManagedObject);\n reload(false);\n }\n }\n ],\n matchesGrid(_, context) {\n return context?.key === 'device-grid-all';\n }\n };\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n Breadcrumb,\n BreadcrumbFactory,\n BreadcrumbItem,\n ContextRouteService,\n ViewContext\n} from '@c8y/ngx-components';\n\n@Injectable()\nexport class DevicesBreadcrumbFactory implements BreadcrumbFactory {\n private contextRouteService = inject(ContextRouteService);\n\n async get(route: ActivatedRoute) {\n const routeContext = this.contextRouteService.getContextData(route);\n\n if (!routeContext) {\n return;\n }\n\n const { context, contextData } = routeContext;\n const { routeConfig } = route.snapshot;\n\n if (\n context === ViewContext.Device ||\n (routeConfig as { context: ViewContext })?.context === ViewContext.Device\n ) {\n const breadcrumb: Breadcrumb = { items: [] };\n const breadcrumbItems: BreadcrumbItem[] = [];\n\n breadcrumbItems.push({\n label: gettext('Devices'),\n icon: 'exchange'\n } as BreadcrumbItem);\n\n breadcrumbItems.push({\n label: gettext('All devices'),\n path: '/device'\n });\n\n const name = contextData?.name;\n\n if (!!name) {\n breadcrumbItems.push({ label: name } as BreadcrumbItem);\n }\n\n const label = (routeConfig as { label: string })?.label;\n\n if (!!label) {\n breadcrumbItems.push({ label } as BreadcrumbItem);\n }\n\n breadcrumb.items = breadcrumbItems;\n return breadcrumb;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Route, RouterModule } from '@angular/router';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport {\n CommonModule,\n CoreModule,\n hookBreadcrumb,\n hookDataGridActionControls,\n hookNavigator\n} from '@c8y/ngx-components';\nimport { DeviceGridModule } from '@c8y/ngx-components/device-grid';\nimport { ActionControlsFactory } from './action-controls.factory';\n\nimport { AddSmartGroupComponent } from './add-smart-group.component';\nimport { DeviceListNavigationFactory } from './device-list-navigation.factory';\nimport { DeviceListComponent } from './device-list.component';\nimport { DevicesBreadcrumbFactory } from './devices.breadcrumb-factory';\n\nconst deviceListRoutes: Route[] = [\n {\n path: 'device',\n component: DeviceListComponent\n }\n];\n\n@NgModule({\n imports: [\n CoreModule,\n CommonModule,\n DeviceGridModule,\n PopoverModule,\n TooltipModule,\n RouterModule.forChild(deviceListRoutes),\n DeviceListComponent,\n AddSmartGroupComponent\n ],\n exports: [],\n providers: [\n hookNavigator(DeviceListNavigationFactory),\n hookBreadcrumb(DevicesBreadcrumbFactory),\n hookDataGridActionControls(ActionControlsFactory)\n ]\n})\nexport class DeviceListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3.DeviceListExtensionService"],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-device-list.mjs","sources":["../../device-list/add-smart-group.component.ts","../../device-list/add-smart-group.component.html","../../device-list/device-list-extension.service.ts","../../device-list/device-list-navigation.factory.ts","../../device-list/device-list.component.ts","../../device-list/device-list.component.html","../../device-list/action-controls.factory.ts","../../device-list/devices.breadcrumb-factory.ts","../../device-list/device-list.module.ts","../../device-list/c8y-ngx-components-device-list.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { SmartGroupsService } from '@c8y/client';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n AlertService,\n IconDirective,\n C8yTranslateDirective,\n FormGroupComponent,\n RequiredInputPlaceholderDirective,\n GuideDocsComponent,\n GuideHrefDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { DeviceGridService } from '@c8y/ngx-components/device-grid';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { of } from 'rxjs';\nimport { catchError, switchMap, take, tap } from 'rxjs/operators';\nimport { FormsModule } from '@angular/forms';\nimport { PopoverDirective } from 'ngx-bootstrap/popover';\n\n@Component({\n selector: 'c8y-add-smart-group',\n templateUrl: './add-smart-group.component.html',\n imports: [\n IconDirective,\n C8yTranslateDirective,\n FormsModule,\n FormGroupComponent,\n PopoverDirective,\n RequiredInputPlaceholderDirective,\n GuideDocsComponent,\n GuideHrefDirective,\n C8yTranslatePipe\n ]\n})\nexport class AddSmartGroupComponent {\n smartGroup = {\n name: '',\n type: 'c8y_DynamicGroup',\n c8y_IsDynamicGroup: {}\n };\n\n configKey: string;\n deviceQuery: string;\n\n constructor(\n private modal: BsModalRef,\n private smartGroupsService: SmartGroupsService,\n private deviceGridService: DeviceGridService,\n private alert: AlertService,\n private translateService: TranslateService\n ) {}\n\n create() {\n return this.deviceGridService\n .getConfig$(this.configKey)\n .pipe(\n switchMap(config => {\n return this.smartGroupsService.create({\n smartGroup: this.smartGroup,\n deviceQueryString: this.deviceQuery,\n configurableColumns: config\n });\n }),\n tap(() => {\n this.alert.success(\n this.translateService.instant(gettext('Smart group \"{{ name }}\" added.'), {\n name: this.smartGroup.name\n })\n );\n this.modal.hide();\n }),\n catchError(ex => {\n this.alert.addServerFailure(ex);\n return of([]);\n }),\n take(1)\n )\n .subscribe();\n }\n\n close() {\n this.modal.hide();\n }\n}\n","<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"'c8y-group-smart'\"></i>\n <h4\n id=\"modal-title\"\n translate\n >\n Add smart group\n </h4>\n </div>\n\n <form\n #createSmartGroup=\"ngForm\"\n (ngSubmit)=\"createSmartGroup.form.valid && create()\"\n >\n <div class=\"modal-inner-scroll\">\n <div\n class=\"modal-body\"\n id=\"modal-body\"\n >\n <c8y-form-group>\n <label\n class=\"d-inline-block\"\n for=\"name\"\n translate\n >\n Group name\n </label>\n <button\n class=\"btn-help btn-help--sm a-s-center\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"customPopoverTemplate\"\n placement=\"right\"\n type=\"button\"\n [outsideClick]=\"true\"\n data-cy=\"add-smart-group-component--Help-button\"\n ></button>\n <input\n class=\"form-control\"\n id=\"name\"\n placeholder=\"{{ 'e.g. My smart group' | translate }}\"\n name=\"name\"\n type=\"text\"\n autocomplete=\"off\"\n required\n [(ngModel)]=\"smartGroup.name\"\n />\n </c8y-form-group>\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)=\"close()\"\n translate\n >\n Cancel\n </button>\n\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Add' | translate }}\"\n type=\"submit\"\n [disabled]=\"createSmartGroup.form.invalid\"\n translate\n >\n Add\n </button>\n </div>\n </form>\n</div>\n\n<ng-template #customPopoverTemplate>\n <div\n class=\"m-b-16\"\n style=\"pointer-events: auto\"\n tabindex=\"0\"\n data-cy=\"add-smart-group-component--popover-Template\"\n translate\n >\n The smart group will be created based on the filters currently applied in the device list.\n </div>\n <br />\n <p\n c8y-guide-docs\n translate\n ngNonBindable\n >\n <small>\n Find out more in the\n <a c8y-guide-href=\"docs/device-management-application/grouping-devices/#using-smart-groups\">\n user documentation\n </a>\n .\n </small>\n </p>\n</ng-template>\n","import { Injectable, InjectionToken, Injector } from '@angular/core';\nimport { Router } from '@angular/router';\nimport {\n Column,\n ExtensionFactory,\n ExtensionPointWithoutStateForPlugins,\n fromTriggerOnce,\n GenericHookOptions,\n GenericHookType,\n hookGeneric,\n PluginsResolveService\n} from '@c8y/ngx-components';\nimport { DeviceGridService } from '@c8y/ngx-components/device-grid';\nimport { flatten, isEmpty } from 'lodash-es';\nimport { Observable } from 'rxjs';\nimport { map, shareReplay, startWith } from 'rxjs/operators';\n\nconst HOOK_DEVICE_LIST_COLUMNS = new InjectionToken<GenericHookType<Column>>(\n 'HOOK_ALL_DEVICES_LIST_COLUMNS'\n);\n\nexport type DeviceListColumnsFactory = ExtensionFactory<Column>;\n\n/**\n * A hook to override the default device grid columns configuration in `c8y-device-list` component.\n */\nexport function hookDeviceListColumns(\n columns: GenericHookType<Column>,\n options?: Partial<GenericHookOptions>\n) {\n return hookGeneric<Column>(columns, HOOK_DEVICE_LIST_COLUMNS, options);\n}\n\n/**\n * A service defining device list column extension options.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DeviceListExtensionService extends ExtensionPointWithoutStateForPlugins<Column> {\n constructor(\n rootInjector: Injector,\n private router: Router,\n plugins: PluginsResolveService,\n private deviceGridService: DeviceGridService\n ) {\n super(rootInjector, plugins);\n this.items$ = this.setupItemsObservable();\n }\n\n protected setupItemsObservable(): Observable<Column[]> {\n return fromTriggerOnce<Column>(this.router, this.refresh$, [\n () =>\n flatten(\n this.injectors.map(injector =>\n injector.get(HOOK_DEVICE_LIST_COLUMNS, [], {\n self: true\n })\n )\n ),\n () => this.factories\n ]).pipe(\n map((columns: Column[]) =>\n isEmpty(columns) ? this.deviceGridService.getDefaultColumns() : columns\n ),\n startWith(this.deviceGridService.getDefaultColumns()),\n shareReplay(1)\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { NavigatorNode, NavigatorNodeFactory } from '@c8y/ngx-components';\n\n@Injectable()\nexport class DeviceListNavigationFactory implements NavigatorNodeFactory {\n nav = new NavigatorNode({\n label: gettext('All devices'),\n path: 'device',\n icon: 'c8y-device-management',\n parent: {\n label: gettext('Devices'),\n icon: 'exchange'\n },\n priority: 2000\n });\n\n async get() {\n return this.nav;\n }\n}\n","import { Component } from '@angular/core';\nimport {\n Column,\n DATA_GRID_CONFIGURATION_CONTEXT_PROVIDER,\n DATA_GRID_CONFIGURATION_STRATEGY,\n GridConfigContextProvider,\n UserPreferencesConfigurationStrategy,\n UserPreferencesGridConfigContext,\n TitleComponent,\n BreadcrumbComponent,\n BreadcrumbItemComponent,\n ActionBarItemComponent,\n IconDirective,\n HelpComponent,\n ProductExperienceDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { DeviceGridService, DeviceGridComponent } from '@c8y/ngx-components/device-grid';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { Observable } from 'rxjs';\nimport { AddSmartGroupComponent } from './add-smart-group.component';\nimport { DeviceListExtensionService } from './device-list-extension.service';\nimport { AsyncPipe } from '@angular/common';\n\n@Component({\n selector: 'c8y-device-list',\n templateUrl: './device-list.component.html',\n providers: [\n {\n provide: DATA_GRID_CONFIGURATION_STRATEGY,\n useClass: UserPreferencesConfigurationStrategy\n },\n {\n provide: DATA_GRID_CONFIGURATION_CONTEXT_PROVIDER,\n useExisting: DeviceListComponent\n }\n ],\n imports: [\n TitleComponent,\n BreadcrumbComponent,\n BreadcrumbItemComponent,\n ActionBarItemComponent,\n IconDirective,\n HelpComponent,\n DeviceGridComponent,\n ProductExperienceDirective,\n C8yTranslatePipe,\n AsyncPipe\n ]\n})\nexport class DeviceListComponent implements GridConfigContextProvider {\n readonly GRID_CONFIG_KEY = 'device-grid-all';\n\n count$ = this.deviceGridService.getTotal({});\n\n columns$: Observable<Column[]>;\n deviceQueryStringOutput: string;\n\n constructor(\n protected deviceGridService: DeviceGridService,\n private bsModalService: BsModalService,\n deviceListExtensionService: DeviceListExtensionService\n ) {\n this.columns$ = deviceListExtensionService.items$;\n }\n\n getGridConfigContext(): UserPreferencesGridConfigContext {\n return {\n key: this.GRID_CONFIG_KEY,\n defaultColumns: this.deviceGridService.getDefaultColumns(),\n legacyConfigKey: 'all-devices-columns-meta_',\n legacyFilterKey: 'all-devices-columns-config'\n };\n }\n\n async createSmartGroup() {\n const initialState = {\n configKey: this.GRID_CONFIG_KEY,\n deviceQuery: this.deviceQueryStringOutput\n };\n\n this.bsModalService.show(AddSmartGroupComponent, {\n class: 'modal-sm',\n ariaDescribedby: 'modal-body',\n ariaLabelledBy: 'modal-title',\n ignoreBackdropClick: true,\n keyboard: false,\n initialState\n });\n }\n}\n","<c8y-title>\n {{ 'All devices' | translate }}\n</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'exchange'\"\n [label]=\"'Devices' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-device-management'\"\n [label]=\"'All devices' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add smart group' | translate }}\"\n (click)=\"createSmartGroup()\"\n >\n <i c8yIcon=\"c8y-group-smart\"></i>\n {{ 'Add smart group' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help\n src=\"/docs/device-management-application/viewing-all-devices/#viewing-all-devices\"\n></c8y-help>\n\n<div class=\"content-fullpage border-top border-bottom\">\n <c8y-device-grid\n [columns]=\"columns$ | async\"\n [infiniteScroll]=\"(count$ | async) === undefined ? 'auto' : undefined\"\n (onDeviceQueryStringChange)=\"deviceQueryStringOutput = $event\"\n c8yProductExperience\n [actionName]=\"'allDevices'\"\n ></c8y-device-grid>\n</div>\n","import { Injectable } from '@angular/core';\nimport { IManagedObject } from '@c8y/client';\nimport {\n ActionControlFactory,\n ActionControlHook,\n BuiltInActionType,\n Row\n} from '@c8y/ngx-components';\nimport { DeviceGridService } from '@c8y/ngx-components/device-grid';\n\n@Injectable({ providedIn: 'root' })\nexport class ActionControlsFactory implements ActionControlFactory {\n constructor(private deviceGridService: DeviceGridService) {}\n\n get(): ActionControlHook {\n return {\n actionControls: [\n {\n type: BuiltInActionType.Delete,\n priority: -Infinity,\n callback: async (item: Row, reload: (boolean?) => void) => {\n await this.deviceGridService.delete(item as IManagedObject);\n reload(false);\n }\n }\n ],\n matchesGrid(_, context) {\n return context?.key === 'device-grid-all';\n }\n };\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n Breadcrumb,\n BreadcrumbFactory,\n BreadcrumbItem,\n ContextRouteService,\n ViewContext\n} from '@c8y/ngx-components';\n\n@Injectable()\nexport class DevicesBreadcrumbFactory implements BreadcrumbFactory {\n private contextRouteService = inject(ContextRouteService);\n\n async get(route: ActivatedRoute) {\n const routeContext = this.contextRouteService.getContextData(route);\n\n if (!routeContext) {\n return;\n }\n\n const { context, contextData } = routeContext;\n const { routeConfig } = route.snapshot;\n\n if (\n context === ViewContext.Device ||\n (routeConfig as { context: ViewContext })?.context === ViewContext.Device\n ) {\n const breadcrumb: Breadcrumb = { items: [] };\n const breadcrumbItems: BreadcrumbItem[] = [];\n\n breadcrumbItems.push({\n label: gettext('Devices'),\n icon: 'exchange'\n } as BreadcrumbItem);\n\n breadcrumbItems.push({\n label: gettext('All devices'),\n path: '/device'\n });\n\n const name = contextData?.name;\n\n if (!!name) {\n breadcrumbItems.push({ label: name } as BreadcrumbItem);\n }\n\n const label = (routeConfig as { label: string })?.label;\n\n if (!!label) {\n breadcrumbItems.push({ label } as BreadcrumbItem);\n }\n\n breadcrumb.items = breadcrumbItems;\n return breadcrumb;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Route, RouterModule } from '@angular/router';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport {\n CommonModule,\n CoreModule,\n hookBreadcrumb,\n hookDataGridActionControls,\n hookNavigator\n} from '@c8y/ngx-components';\nimport { DeviceGridModule } from '@c8y/ngx-components/device-grid';\nimport { ActionControlsFactory } from './action-controls.factory';\n\nimport { AddSmartGroupComponent } from './add-smart-group.component';\nimport { DeviceListNavigationFactory } from './device-list-navigation.factory';\nimport { DeviceListComponent } from './device-list.component';\nimport { DevicesBreadcrumbFactory } from './devices.breadcrumb-factory';\n\nconst deviceListRoutes: Route[] = [\n {\n path: 'device',\n component: DeviceListComponent\n }\n];\n\n@NgModule({\n imports: [\n CoreModule,\n CommonModule,\n DeviceGridModule,\n PopoverModule,\n TooltipModule,\n RouterModule.forChild(deviceListRoutes),\n DeviceListComponent,\n AddSmartGroupComponent\n ],\n exports: [],\n providers: [\n hookNavigator(DeviceListNavigationFactory),\n hookBreadcrumb(DevicesBreadcrumbFactory),\n hookDataGridActionControls(ActionControlsFactory)\n ]\n})\nexport class DeviceListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3.DeviceListExtensionService"],"mappings":"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"}
@@ -15,10 +15,10 @@ class BoundsResolverService {
15
15
  resolve() {
16
16
  return this.mapService.getAllDevicesBounds();
17
17
  }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: BoundsResolverService, deps: [{ token: i3.MapService }], target: i0.ɵɵFactoryTarget.Injectable }); }
19
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: BoundsResolverService, providedIn: 'root' }); }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BoundsResolverService, deps: [{ token: i3.MapService }], target: i0.ɵɵFactoryTarget.Injectable }); }
19
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BoundsResolverService, providedIn: 'root' }); }
20
20
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: BoundsResolverService, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BoundsResolverService, decorators: [{
22
22
  type: Injectable,
23
23
  args: [{
24
24
  providedIn: 'root'
@@ -40,10 +40,10 @@ class DeviceMapNavigationFactory {
40
40
  async get() {
41
41
  return this.nav;
42
42
  }
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DeviceMapNavigationFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
44
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DeviceMapNavigationFactory }); }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DeviceMapNavigationFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
44
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DeviceMapNavigationFactory }); }
45
45
  }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DeviceMapNavigationFactory, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DeviceMapNavigationFactory, decorators: [{
47
47
  type: Injectable
48
48
  }] });
49
49
 
@@ -60,10 +60,10 @@ class DeviceMapComponent {
60
60
  }
61
61
  };
62
62
  }
63
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DeviceMapComponent, deps: [{ token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
64
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.3", type: DeviceMapComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<c8y-title>{{ 'Device map' | translate }}</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"exchange\"\n [label]=\"'Devices' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n icon=\"c8y-location\"\n [label]=\"'Map' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<div class=\"card card--grid content-fullpage\">\n <div\n class=\"bg-white p-relative\"\n style=\"min-height: 30vh\"\n >\n <c8y-map-status\n [clusterMap]=\"map\"\n [(config)]=\"config\"\n ></c8y-map-status>\n <c8y-cluster-map\n #map\n [config]=\"config\"\n >\n <div *c8yMapPopup=\"let context\">\n <c8y-tracking-marker-popup\n [showTrackingLink]=\"true\"\n [context]=\"context\"\n ></c8y-tracking-marker-popup>\n </div>\n </c8y-cluster-map>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: CoreModule }, { kind: "component", type: i2.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i2.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: i2.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "ngmodule", type: MapModule }, { kind: "component", type: i3.MapStatusComponent, selector: "c8y-map-status", inputs: ["config", "assets", "clusterMap", "buttonsConfig"], outputs: ["configChange", "onUnfollow", "fitAssetsToBounds"] }, { kind: "component", type: i3.ClusterMapComponent, selector: "c8y-cluster-map", inputs: ["config", "rootNode", "asset", "showClusterColor"], outputs: ["mapChange"] }, { kind: "directive", type: i3.MapPopupDirective, selector: "[c8yMapPopup]" }, { kind: "component", type: TrackingMarkerPopupComponent, selector: "c8y-tracking-marker-popup", inputs: ["context", "showTrackingLink"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
63
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DeviceMapComponent, deps: [{ token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
64
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: DeviceMapComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<c8y-title>{{ 'Device map' | translate }}</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"exchange\"\n [label]=\"'Devices' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n icon=\"c8y-location\"\n [label]=\"'Map' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<div class=\"card card--grid content-fullpage\">\n <div\n class=\"bg-white p-relative\"\n style=\"min-height: 30vh\"\n >\n <c8y-map-status\n [clusterMap]=\"map\"\n [(config)]=\"config\"\n ></c8y-map-status>\n <c8y-cluster-map\n #map\n [config]=\"config\"\n >\n <div *c8yMapPopup=\"let context\">\n <c8y-tracking-marker-popup\n [showTrackingLink]=\"true\"\n [context]=\"context\"\n ></c8y-tracking-marker-popup>\n </div>\n </c8y-cluster-map>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: CoreModule }, { kind: "component", type: i2.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i2.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: i2.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "ngmodule", type: MapModule }, { kind: "component", type: i3.MapStatusComponent, selector: "c8y-map-status", inputs: ["config", "assets", "clusterMap", "buttonsConfig"], outputs: ["configChange", "onUnfollow", "fitAssetsToBounds"] }, { kind: "component", type: i3.ClusterMapComponent, selector: "c8y-cluster-map", inputs: ["config", "rootNode", "asset", "showClusterColor"], outputs: ["mapChange"] }, { kind: "directive", type: i3.MapPopupDirective, selector: "[c8yMapPopup]" }, { kind: "component", type: TrackingMarkerPopupComponent, selector: "c8y-tracking-marker-popup", inputs: ["context", "showTrackingLink"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
65
65
  }
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DeviceMapComponent, decorators: [{
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DeviceMapComponent, decorators: [{
67
67
  type: Component,
68
68
  args: [{ standalone: true, imports: [CommonModule, CoreModule, MapModule, TrackingMarkerPopupComponent], template: "<c8y-title>{{ 'Device map' | translate }}</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"exchange\"\n [label]=\"'Devices' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n icon=\"c8y-location\"\n [label]=\"'Map' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<div class=\"card card--grid content-fullpage\">\n <div\n class=\"bg-white p-relative\"\n style=\"min-height: 30vh\"\n >\n <c8y-map-status\n [clusterMap]=\"map\"\n [(config)]=\"config\"\n ></c8y-map-status>\n <c8y-cluster-map\n #map\n [config]=\"config\"\n >\n <div *c8yMapPopup=\"let context\">\n <c8y-tracking-marker-popup\n [showTrackingLink]=\"true\"\n [context]=\"context\"\n ></c8y-tracking-marker-popup>\n </div>\n </c8y-cluster-map>\n </div>\n</div>\n" }]
69
69
  }], ctorParameters: () => [{ type: i1.ActivatedRoute }] });
@@ -80,10 +80,10 @@ class LocationResolverService {
80
80
  }
81
81
  });
82
82
  }
83
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: LocationResolverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
84
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: LocationResolverService, providedIn: 'root' }); }
83
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: LocationResolverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
84
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: LocationResolverService, providedIn: 'root' }); }
85
85
  }
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: LocationResolverService, decorators: [{
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: LocationResolverService, decorators: [{
87
87
  type: Injectable,
88
88
  args: [{
89
89
  providedIn: 'root'
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-device-map.mjs","sources":["../../device-map/bounds-resolver.service.ts","../../device-map/device-map-navigation.factory.ts","../../device-map/device-map.component.ts","../../device-map/device-map.component.html","../../device-map/location-resolver.service.ts","../../device-map/device-map.feature.ts","../../device-map/c8y-ngx-components-device-map.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { MaybeAsync, Resolve } from '@angular/router';\nimport { MapService } from '@c8y/ngx-components/map';\nimport type * as L from 'leaflet';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BoundsResolverService implements Resolve<L.LatLngBounds> {\n constructor(private mapService: MapService) {}\n\n resolve(): MaybeAsync<L.LatLngBounds> {\n return this.mapService.getAllDevicesBounds();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { NavigatorNode, NavigatorNodeFactory } from '@c8y/ngx-components';\n\n@Injectable()\nexport class DeviceMapNavigationFactory implements NavigatorNodeFactory {\n nav = new NavigatorNode({\n label: gettext('Map'),\n path: 'devicemap',\n icon: 'c8y-location',\n parent: {\n label: gettext('Devices')\n },\n priority: 1900\n });\n\n async get() {\n return this.nav;\n }\n}\n","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { CommonModule, CoreModule } from '@c8y/ngx-components';\nimport { ClusterMapConfig, MapModule } from '@c8y/ngx-components/map';\nimport { TrackingMarkerPopupComponent } from '@c8y/ngx-components/tracking';\n\n@Component({\n standalone: true,\n templateUrl: './device-map.component.html',\n imports: [CommonModule, CoreModule, MapModule, TrackingMarkerPopupComponent]\n})\nexport class DeviceMapComponent {\n config: ClusterMapConfig;\n\n constructor(route: ActivatedRoute) {\n const { location, bounds } = route.snapshot.data;\n this.config = {\n center: bounds?.isValid() ? bounds.getCenter() : location,\n zoomLevel: 3,\n refreshInterval: 30000,\n bounds,\n fitBoundsOptions: {\n padding: [50, 50]\n }\n };\n }\n}\n","<c8y-title>{{ 'Device map' | translate }}</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"exchange\"\n [label]=\"'Devices' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n icon=\"c8y-location\"\n [label]=\"'Map' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<div class=\"card card--grid content-fullpage\">\n <div\n class=\"bg-white p-relative\"\n style=\"min-height: 30vh\"\n >\n <c8y-map-status\n [clusterMap]=\"map\"\n [(config)]=\"config\"\n ></c8y-map-status>\n <c8y-cluster-map\n #map\n [config]=\"config\"\n >\n <div *c8yMapPopup=\"let context\">\n <c8y-tracking-marker-popup\n [showTrackingLink]=\"true\"\n [context]=\"context\"\n ></c8y-tracking-marker-popup>\n </div>\n </c8y-cluster-map>\n </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport { MaybeAsync, Resolve } from '@angular/router';\nimport { defaultMapConfig } from '@c8y/ngx-components/map';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocationResolverService implements Resolve<[number, number]> {\n resolve(): MaybeAsync<[number, number]> {\n return new Promise((resolve, _) => {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(\n gp => {\n resolve([gp?.coords?.latitude, gp?.coords?.longitude]);\n },\n () => {\n resolve(defaultMapConfig.center);\n }\n );\n }\n });\n }\n}\n","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { hookNavigator, hookRoute } from '@c8y/ngx-components';\nimport { BoundsResolverService } from './bounds-resolver.service';\nimport { DeviceMapNavigationFactory } from './device-map-navigation.factory';\nimport { DeviceMapComponent } from './device-map.component';\nimport { LocationResolverService } from './location-resolver.service';\n\nexport const deviceMapFeatureProvider: EnvironmentProviders = makeEnvironmentProviders([\n hookRoute({\n path: 'devicemap',\n component: DeviceMapComponent,\n resolve: { location: LocationResolverService, bounds: BoundsResolverService }\n }),\n hookNavigator(DeviceMapNavigationFactory)\n]);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":";;;;;;;;;;MAQa,qBAAqB,CAAA;AAChC,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAA,CAAA,UAAU,GAAV,UAAU;IAAe;IAE7C,OAAO,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE;IAC9C;8GALW,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA;;2FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCFY,0BAA0B,CAAA;AADvC,IAAA,WAAA,GAAA;QAEE,IAAA,CAAA,GAAG,GAAG,IAAI,aAAa,CAAC;AACtB,YAAA,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;AACrB,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,MAAM,EAAE;AACN,gBAAA,KAAK,EAAE,OAAO,CAAC,SAAS;AACzB,aAAA;AACD,YAAA,QAAQ,EAAE;AACX,SAAA,CAAC;AAKH,IAAA;AAHC,IAAA,MAAM,GAAG,GAAA;QACP,OAAO,IAAI,CAAC,GAAG;IACjB;8GAbW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA1B,0BAA0B,EAAA,CAAA,CAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC;;;MCOY,kBAAkB,CAAA;AAG7B,IAAA,WAAA,CAAY,KAAqB,EAAA;QAC/B,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI;QAChD,IAAI,CAAC,MAAM,GAAG;AACZ,YAAA,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,GAAG,QAAQ;AACzD,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,eAAe,EAAE,KAAK;YACtB,MAAM;AACN,YAAA,gBAAgB,EAAE;AAChB,gBAAA,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE;AACjB;SACF;IACH;8GAdW,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECX/B,q2BAmCA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED1BY,YAAY,8BAAE,UAAU,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,SAAS,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,YAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,4BAA4B,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAEhE,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;iCACI,IAAI,EAAA,OAAA,EAEP,CAAC,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,4BAA4B,CAAC,EAAA,QAAA,EAAA,q2BAAA,EAAA;;;MEFjE,uBAAuB,CAAA;IAClC,OAAO,GAAA;QACL,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,KAAI;AAChC,YAAA,IAAI,SAAS,CAAC,WAAW,EAAE;AACzB,gBAAA,SAAS,CAAC,WAAW,CAAC,kBAAkB,CACtC,EAAE,IAAG;AACH,oBAAA,OAAO,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;gBACxD,CAAC,EACD,MAAK;AACH,oBAAA,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC;AAClC,gBAAA,CAAC,CACF;YACH;AACF,QAAA,CAAC,CAAC;IACJ;8GAdW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFtB,MAAM,EAAA,CAAA,CAAA;;2FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACCM,MAAM,wBAAwB,GAAyB,wBAAwB,CAAC;AACrF,IAAA,SAAS,CAAC;AACR,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,kBAAkB;QAC7B,OAAO,EAAE,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,qBAAqB;KAC5E,CAAC;IACF,aAAa,CAAC,0BAA0B;AACzC,CAAA;;ACdD;;AAEG;;;;"}
1
+ {"version":3,"file":"c8y-ngx-components-device-map.mjs","sources":["../../device-map/bounds-resolver.service.ts","../../device-map/device-map-navigation.factory.ts","../../device-map/device-map.component.ts","../../device-map/device-map.component.html","../../device-map/location-resolver.service.ts","../../device-map/device-map.feature.ts","../../device-map/c8y-ngx-components-device-map.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { MaybeAsync, Resolve } from '@angular/router';\nimport { MapService } from '@c8y/ngx-components/map';\nimport type * as L from 'leaflet';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BoundsResolverService implements Resolve<L.LatLngBounds> {\n constructor(private mapService: MapService) {}\n\n resolve(): MaybeAsync<L.LatLngBounds> {\n return this.mapService.getAllDevicesBounds();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { NavigatorNode, NavigatorNodeFactory } from '@c8y/ngx-components';\n\n@Injectable()\nexport class DeviceMapNavigationFactory implements NavigatorNodeFactory {\n nav = new NavigatorNode({\n label: gettext('Map'),\n path: 'devicemap',\n icon: 'c8y-location',\n parent: {\n label: gettext('Devices')\n },\n priority: 1900\n });\n\n async get() {\n return this.nav;\n }\n}\n","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { CommonModule, CoreModule } from '@c8y/ngx-components';\nimport { ClusterMapConfig, MapModule } from '@c8y/ngx-components/map';\nimport { TrackingMarkerPopupComponent } from '@c8y/ngx-components/tracking';\n\n@Component({\n standalone: true,\n templateUrl: './device-map.component.html',\n imports: [CommonModule, CoreModule, MapModule, TrackingMarkerPopupComponent]\n})\nexport class DeviceMapComponent {\n config: ClusterMapConfig;\n\n constructor(route: ActivatedRoute) {\n const { location, bounds } = route.snapshot.data;\n this.config = {\n center: bounds?.isValid() ? bounds.getCenter() : location,\n zoomLevel: 3,\n refreshInterval: 30000,\n bounds,\n fitBoundsOptions: {\n padding: [50, 50]\n }\n };\n }\n}\n","<c8y-title>{{ 'Device map' | translate }}</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"exchange\"\n [label]=\"'Devices' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n icon=\"c8y-location\"\n [label]=\"'Map' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<div class=\"card card--grid content-fullpage\">\n <div\n class=\"bg-white p-relative\"\n style=\"min-height: 30vh\"\n >\n <c8y-map-status\n [clusterMap]=\"map\"\n [(config)]=\"config\"\n ></c8y-map-status>\n <c8y-cluster-map\n #map\n [config]=\"config\"\n >\n <div *c8yMapPopup=\"let context\">\n <c8y-tracking-marker-popup\n [showTrackingLink]=\"true\"\n [context]=\"context\"\n ></c8y-tracking-marker-popup>\n </div>\n </c8y-cluster-map>\n </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport { MaybeAsync, Resolve } from '@angular/router';\nimport { defaultMapConfig } from '@c8y/ngx-components/map';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocationResolverService implements Resolve<[number, number]> {\n resolve(): MaybeAsync<[number, number]> {\n return new Promise((resolve, _) => {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(\n gp => {\n resolve([gp?.coords?.latitude, gp?.coords?.longitude]);\n },\n () => {\n resolve(defaultMapConfig.center);\n }\n );\n }\n });\n }\n}\n","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { hookNavigator, hookRoute } from '@c8y/ngx-components';\nimport { BoundsResolverService } from './bounds-resolver.service';\nimport { DeviceMapNavigationFactory } from './device-map-navigation.factory';\nimport { DeviceMapComponent } from './device-map.component';\nimport { LocationResolverService } from './location-resolver.service';\n\nexport const deviceMapFeatureProvider: EnvironmentProviders = makeEnvironmentProviders([\n hookRoute({\n path: 'devicemap',\n component: DeviceMapComponent,\n resolve: { location: LocationResolverService, bounds: BoundsResolverService }\n }),\n hookNavigator(DeviceMapNavigationFactory)\n]);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}