@c8y/ngx-components 1023.5.3 → 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 (379) 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 +40 -40
  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 +1323 -1323
  367. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  368. package/package.json +1 -1
  369. package/upgrade/index.d.ts +1 -0
  370. package/upgrade/index.d.ts.map +1 -1
  371. package/widgets/cockpit-exports/index.d.ts +6 -0
  372. package/widgets/cockpit-exports/index.d.ts.map +1 -1
  373. package/widgets/device-management-exports/index.d.ts +6 -0
  374. package/widgets/device-management-exports/index.d.ts.map +1 -1
  375. package/widgets/exports/index.d.ts +8 -1
  376. package/widgets/exports/index.d.ts.map +1 -1
  377. package/widgets/widget-providers/index.d.ts.map +1 -1
  378. package/fesm2022/c8y-ngx-components-computed-asset-properties-alarm-count-config.component-BeFT75x1.mjs +0 -68
  379. package/fesm2022/c8y-ngx-components-computed-asset-properties-event-count-config.component-BUxC3Tmh.mjs +0 -44
@@ -34,10 +34,10 @@ class AdvancedTabFactory {
34
34
  return [];
35
35
  }));
36
36
  }
37
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AdvancedTabFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
38
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AdvancedTabFactory }); }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AdvancedTabFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
38
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AdvancedTabFactory }); }
39
39
  }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AdvancedTabFactory, decorators: [{
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AdvancedTabFactory, decorators: [{
41
41
  type: Injectable
42
42
  }] });
43
43
 
@@ -48,23 +48,23 @@ class AdvancedTabRouteGuard {
48
48
  canActivate() {
49
49
  return this.betaPreviewService.getState$(ADVANCED_TAB_FEATURE_KEY);
50
50
  }
51
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AdvancedTabRouteGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
52
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AdvancedTabRouteGuard, providedIn: 'root' }); }
51
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AdvancedTabRouteGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
52
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AdvancedTabRouteGuard, providedIn: 'root' }); }
53
53
  }
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AdvancedTabRouteGuard, decorators: [{
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AdvancedTabRouteGuard, decorators: [{
55
55
  type: Injectable,
56
56
  args: [{ providedIn: 'root' }]
57
57
  }] });
58
58
 
59
59
  class DashboardDetailsAdvancedTabModule {
60
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DashboardDetailsAdvancedTabModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
61
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.3", ngImport: i0, type: DashboardDetailsAdvancedTabModule }); }
62
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DashboardDetailsAdvancedTabModule, providers: [
60
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DashboardDetailsAdvancedTabModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
61
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: DashboardDetailsAdvancedTabModule }); }
62
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DashboardDetailsAdvancedTabModule, providers: [
63
63
  hookTab(AdvancedTabFactory),
64
64
  hookRoute([
65
65
  {
66
66
  path: TAB_ID,
67
- loadComponent: () => import('./c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-BHmaZVgy.mjs').then(m => m.DashboardDetailsAdvancedTabComponent),
67
+ loadComponent: () => import('./c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-m7YeEj9R.mjs').then(m => m.DashboardDetailsAdvancedTabComponent),
68
68
  outlet: DASHBOARD_DETAILS_OUTLET,
69
69
  context: ViewContext.Dashboard,
70
70
  canActivate: [AdvancedTabRouteGuard]
@@ -78,7 +78,7 @@ class DashboardDetailsAdvancedTabModule {
78
78
  })
79
79
  ] }); }
80
80
  }
81
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DashboardDetailsAdvancedTabModule, decorators: [{
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DashboardDetailsAdvancedTabModule, decorators: [{
82
82
  type: NgModule,
83
83
  args: [{
84
84
  providers: [
@@ -86,7 +86,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
86
86
  hookRoute([
87
87
  {
88
88
  path: TAB_ID,
89
- loadComponent: () => import('./c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-BHmaZVgy.mjs').then(m => m.DashboardDetailsAdvancedTabComponent),
89
+ loadComponent: () => import('./c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-m7YeEj9R.mjs').then(m => m.DashboardDetailsAdvancedTabComponent),
90
90
  outlet: DASHBOARD_DETAILS_OUTLET,
91
91
  context: ViewContext.Dashboard,
92
92
  canActivate: [AdvancedTabRouteGuard]
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-dashboard-details-advanced-tab.mjs","sources":["../../dashboard-details-advanced-tab/advanced-tab.model.ts","../../dashboard-details-advanced-tab/advanced-tab.factory.ts","../../dashboard-details-advanced-tab/advanced-tab-route.guard.ts","../../dashboard-details-advanced-tab/dashboard-details-advanced-tab.module.ts","../../dashboard-details-advanced-tab/c8y-ngx-components-dashboard-details-advanced-tab.ts"],"sourcesContent":["import { IManagedObject } from '@c8y/client';\n\nexport const ADVANCED_TAB_FEATURE_KEY = 'ui.dashboard-details-advanced-tab';\n\nexport type WidgetAssetToAlign = {\n /**\n * Widget id in the dashboard children object.\n */\n widgetId: string;\n /**\n * Widget title.\n */\n title: string;\n /**\n * Device refrence object.\n */\n deviceRef: {\n /**\n * Dashboard may contain multiple widgets with assets declared in config.\n * Information about the asset can be nested multiple levels deep and number of levels vary between widgets.\n * Path is to help identify and locate the asset in the widget config in \"children\" object of the dashboard.\n * First element of path is dashboard child id.\n * e.g. for widget of id \"12345678\"\n * ```ts\n * \"12345678\": {\n * ...\n * \"config\": {\n * \"datapoints\": [\n * {\n * \"id\": \"0\",\n * \"__target\": {\n * \"id\": \"12345678\",\n * \"name\": \"Device name\"\n * }\n * }\n * ]\n * }\n * }\n *\n * ```\n * path to asset will be:\n * ```ts\n * ['12345678', 'config', 'datapoints', '0', '__target']\n * ```\n */\n path: string[];\n /**\n * Device reference object. Contains information about origin asset and asset suggested for import.\n */\n value: IManagedObject & { suggestedDevice?: IManagedObject };\n };\n};\n","import { inject, Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { ContextRouteService, PreviewService, TabFactory, ViewContext } from '@c8y/ngx-components';\nimport {\n DASHBOARD_DETAILS_OUTLET,\n DASHBOARD_DETAILS_TABS_OUTLET_NAME\n} from '@c8y/ngx-components/context-dashboard';\nimport { ActivatedRoute } from '@angular/router';\nimport { ADVANCED_TAB_FEATURE_KEY } from './advanced-tab.model';\nimport { map } from 'rxjs';\n\nexport const TAB_ID = 'advanced';\n\n@Injectable()\nexport class AdvancedTabFactory implements TabFactory {\n private activatedRoute = inject(ActivatedRoute);\n private contextRouteService = inject(ContextRouteService);\n private readonly betaPreviewService = inject(PreviewService);\n\n get() {\n return this.betaPreviewService.getState$(ADVANCED_TAB_FEATURE_KEY).pipe(\n map(state => {\n if (state) {\n const rootContext = this.contextRouteService.getRootContextOfChild(this.activatedRoute);\n if (rootContext === ViewContext.Dashboard) {\n return [\n {\n label: gettext('Import / Export`dashboard configuration`'),\n icon: 'input-output',\n priority: 5,\n path: [{ outlets: { [DASHBOARD_DETAILS_OUTLET]: TAB_ID } }],\n tabsOutlet: DASHBOARD_DETAILS_TABS_OUTLET_NAME\n }\n ];\n }\n }\n return [];\n })\n );\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { PreviewService } from '@c8y/ngx-components';\nimport { ADVANCED_TAB_FEATURE_KEY } from './advanced-tab.model';\n\n@Injectable({ providedIn: 'root' })\nexport class AdvancedTabRouteGuard {\n private readonly betaPreviewService = inject(PreviewService);\n\n canActivate(): Observable<boolean> {\n return this.betaPreviewService.getState$(ADVANCED_TAB_FEATURE_KEY);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { hookPreview, hookRoute, hookTab, ViewContext } from '@c8y/ngx-components';\nimport { AdvancedTabFactory, TAB_ID } from './advanced-tab.factory';\nimport { ADVANCED_TAB_FEATURE_KEY } from './advanced-tab.model';\nimport { DASHBOARD_DETAILS_OUTLET } from '@c8y/ngx-components/context-dashboard';\nimport { AdvancedTabRouteGuard } from './advanced-tab-route.guard';\n\n@NgModule({\n providers: [\n hookTab(AdvancedTabFactory),\n hookRoute([\n {\n path: TAB_ID,\n loadComponent: () =>\n import('./dashboard-details-advanced-tab.component').then(\n m => m.DashboardDetailsAdvancedTabComponent\n ),\n outlet: DASHBOARD_DETAILS_OUTLET,\n context: ViewContext.Dashboard,\n canActivate: [AdvancedTabRouteGuard]\n }\n ]),\n hookPreview({\n key: ADVANCED_TAB_FEATURE_KEY,\n label: 'Dashboard details - Import / Export tab',\n description: () =>\n import('@c8y/style/markdown-files/dashboard-details-import-export-tab.md').then(\n m => m.default\n ),\n settings: { reload: true }\n })\n ]\n})\nexport class DashboardDetailsAdvancedTabModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-dashboard-details-advanced-tab.mjs","sources":["../../dashboard-details-advanced-tab/advanced-tab.model.ts","../../dashboard-details-advanced-tab/advanced-tab.factory.ts","../../dashboard-details-advanced-tab/advanced-tab-route.guard.ts","../../dashboard-details-advanced-tab/dashboard-details-advanced-tab.module.ts","../../dashboard-details-advanced-tab/c8y-ngx-components-dashboard-details-advanced-tab.ts"],"sourcesContent":["import { IManagedObject } from '@c8y/client';\n\nexport const ADVANCED_TAB_FEATURE_KEY = 'ui.dashboard-details-advanced-tab';\n\nexport type WidgetAssetToAlign = {\n /**\n * Widget id in the dashboard children object.\n */\n widgetId: string;\n /**\n * Widget title.\n */\n title: string;\n /**\n * Device refrence object.\n */\n deviceRef: {\n /**\n * Dashboard may contain multiple widgets with assets declared in config.\n * Information about the asset can be nested multiple levels deep and number of levels vary between widgets.\n * Path is to help identify and locate the asset in the widget config in \"children\" object of the dashboard.\n * First element of path is dashboard child id.\n * e.g. for widget of id \"12345678\"\n * ```ts\n * \"12345678\": {\n * ...\n * \"config\": {\n * \"datapoints\": [\n * {\n * \"id\": \"0\",\n * \"__target\": {\n * \"id\": \"12345678\",\n * \"name\": \"Device name\"\n * }\n * }\n * ]\n * }\n * }\n *\n * ```\n * path to asset will be:\n * ```ts\n * ['12345678', 'config', 'datapoints', '0', '__target']\n * ```\n */\n path: string[];\n /**\n * Device reference object. Contains information about origin asset and asset suggested for import.\n */\n value: IManagedObject & { suggestedDevice?: IManagedObject };\n };\n};\n","import { inject, Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { ContextRouteService, PreviewService, TabFactory, ViewContext } from '@c8y/ngx-components';\nimport {\n DASHBOARD_DETAILS_OUTLET,\n DASHBOARD_DETAILS_TABS_OUTLET_NAME\n} from '@c8y/ngx-components/context-dashboard';\nimport { ActivatedRoute } from '@angular/router';\nimport { ADVANCED_TAB_FEATURE_KEY } from './advanced-tab.model';\nimport { map } from 'rxjs';\n\nexport const TAB_ID = 'advanced';\n\n@Injectable()\nexport class AdvancedTabFactory implements TabFactory {\n private activatedRoute = inject(ActivatedRoute);\n private contextRouteService = inject(ContextRouteService);\n private readonly betaPreviewService = inject(PreviewService);\n\n get() {\n return this.betaPreviewService.getState$(ADVANCED_TAB_FEATURE_KEY).pipe(\n map(state => {\n if (state) {\n const rootContext = this.contextRouteService.getRootContextOfChild(this.activatedRoute);\n if (rootContext === ViewContext.Dashboard) {\n return [\n {\n label: gettext('Import / Export`dashboard configuration`'),\n icon: 'input-output',\n priority: 5,\n path: [{ outlets: { [DASHBOARD_DETAILS_OUTLET]: TAB_ID } }],\n tabsOutlet: DASHBOARD_DETAILS_TABS_OUTLET_NAME\n }\n ];\n }\n }\n return [];\n })\n );\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { PreviewService } from '@c8y/ngx-components';\nimport { ADVANCED_TAB_FEATURE_KEY } from './advanced-tab.model';\n\n@Injectable({ providedIn: 'root' })\nexport class AdvancedTabRouteGuard {\n private readonly betaPreviewService = inject(PreviewService);\n\n canActivate(): Observable<boolean> {\n return this.betaPreviewService.getState$(ADVANCED_TAB_FEATURE_KEY);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { hookPreview, hookRoute, hookTab, ViewContext } from '@c8y/ngx-components';\nimport { AdvancedTabFactory, TAB_ID } from './advanced-tab.factory';\nimport { ADVANCED_TAB_FEATURE_KEY } from './advanced-tab.model';\nimport { DASHBOARD_DETAILS_OUTLET } from '@c8y/ngx-components/context-dashboard';\nimport { AdvancedTabRouteGuard } from './advanced-tab-route.guard';\n\n@NgModule({\n providers: [\n hookTab(AdvancedTabFactory),\n hookRoute([\n {\n path: TAB_ID,\n loadComponent: () =>\n import('./dashboard-details-advanced-tab.component').then(\n m => m.DashboardDetailsAdvancedTabComponent\n ),\n outlet: DASHBOARD_DETAILS_OUTLET,\n context: ViewContext.Dashboard,\n canActivate: [AdvancedTabRouteGuard]\n }\n ]),\n hookPreview({\n key: ADVANCED_TAB_FEATURE_KEY,\n label: 'Dashboard details - Import / Export tab',\n description: () =>\n import('@c8y/style/markdown-files/dashboard-details-import-export-tab.md').then(\n m => m.default\n ),\n settings: { reload: true }\n })\n ]\n})\nexport class DashboardDetailsAdvancedTabModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAEO,MAAM,wBAAwB,GAAG,mCAAmC;;ACSpE,MAAM,MAAM,GAAG,UAAU;MAGnB,kBAAkB,CAAA;AAD/B,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AACvC,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AACxC,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,cAAc,CAAC;AAuB7D,IAAA;IArBC,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC,IAAI,CACrE,GAAG,CAAC,KAAK,IAAG;YACV,IAAI,KAAK,EAAE;AACT,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC;AACvF,gBAAA,IAAI,WAAW,KAAK,WAAW,CAAC,SAAS,EAAE;oBACzC,OAAO;AACL,wBAAA;AACE,4BAAA,KAAK,EAAE,OAAO,CAAC,0CAA0C,CAAC;AAC1D,4BAAA,IAAI,EAAE,cAAc;AACpB,4BAAA,QAAQ,EAAE,CAAC;AACX,4BAAA,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,wBAAwB,GAAG,MAAM,EAAE,EAAE,CAAC;AAC3D,4BAAA,UAAU,EAAE;AACb;qBACF;gBACH;YACF;AACA,YAAA,OAAO,EAAE;QACX,CAAC,CAAC,CACH;IACH;+GAzBW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAlB,kBAAkB,EAAA,CAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B;;;MCPY,qBAAqB,CAAA;AADlC,IAAA,WAAA,GAAA;AAEmB,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,cAAc,CAAC;AAK7D,IAAA;IAHC,WAAW,GAAA;QACT,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,wBAAwB,CAAC;IACpE;+GALW,qBAAqB,EAAA,IAAA,EAAA,EAAA,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,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cADR,MAAM,EAAA,CAAA,CAAA;;4FACnB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MC4BrB,iCAAiC,CAAA;+GAAjC,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAjC,iCAAiC,EAAA,CAAA,CAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iCAAiC,EAAA,SAAA,EAzBjC;YACT,OAAO,CAAC,kBAAkB,CAAC;AAC3B,YAAA,SAAS,CAAC;AACR,gBAAA;AACE,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,aAAa,EAAE,MACb,OAAO,2GAA4C,CAAC,CAAC,IAAI,CACvD,CAAC,IAAI,CAAC,CAAC,oCAAoC,CAC5C;AACH,oBAAA,MAAM,EAAE,wBAAwB;oBAChC,OAAO,EAAE,WAAW,CAAC,SAAS;oBAC9B,WAAW,EAAE,CAAC,qBAAqB;AACpC;aACF,CAAC;AACF,YAAA,WAAW,CAAC;AACV,gBAAA,GAAG,EAAE,wBAAwB;AAC7B,gBAAA,KAAK,EAAE,yCAAyC;AAChD,gBAAA,WAAW,EAAE,MACX,OAAO,kEAAkE,CAAC,CAAC,IAAI,CAC7E,CAAC,IAAI,CAAC,CAAC,OAAO,CACf;AACH,gBAAA,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI;aACzB;AACF,SAAA,EAAA,CAAA,CAAA;;4FAEU,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBA1B7C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,SAAS,EAAE;wBACT,OAAO,CAAC,kBAAkB,CAAC;AAC3B,wBAAA,SAAS,CAAC;AACR,4BAAA;AACE,gCAAA,IAAI,EAAE,MAAM;AACZ,gCAAA,aAAa,EAAE,MACb,OAAO,2GAA4C,CAAC,CAAC,IAAI,CACvD,CAAC,IAAI,CAAC,CAAC,oCAAoC,CAC5C;AACH,gCAAA,MAAM,EAAE,wBAAwB;gCAChC,OAAO,EAAE,WAAW,CAAC,SAAS;gCAC9B,WAAW,EAAE,CAAC,qBAAqB;AACpC;yBACF,CAAC;AACF,wBAAA,WAAW,CAAC;AACV,4BAAA,GAAG,EAAE,wBAAwB;AAC7B,4BAAA,KAAK,EAAE,yCAAyC;AAChD,4BAAA,WAAW,EAAE,MACX,OAAO,kEAAkE,CAAC,CAAC,IAAI,CAC7E,CAAC,IAAI,CAAC,CAAC,OAAO,CACf;AACH,4BAAA,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI;yBACzB;AACF;AACF,iBAAA;;;AChCD;;AAEG;;;;"}
@@ -28,10 +28,10 @@ class DashboardManagerNavigationFactory {
28
28
  return [];
29
29
  }));
30
30
  }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DashboardManagerNavigationFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
32
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DashboardManagerNavigationFactory }); }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DashboardManagerNavigationFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
32
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DashboardManagerNavigationFactory }); }
33
33
  }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DashboardManagerNavigationFactory, decorators: [{
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DashboardManagerNavigationFactory, decorators: [{
35
35
  type: Injectable
36
36
  }] });
37
37
 
@@ -50,10 +50,10 @@ class DashboardManagerTabsFactory {
50
50
  }
51
51
  return tabs;
52
52
  }
53
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DashboardManagerTabsFactory, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
54
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DashboardManagerTabsFactory }); }
53
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DashboardManagerTabsFactory, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
54
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DashboardManagerTabsFactory }); }
55
55
  }
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DashboardManagerTabsFactory, decorators: [{
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DashboardManagerTabsFactory, decorators: [{
57
57
  type: Injectable
58
58
  }], ctorParameters: () => [{ type: i1.Router }] });
59
59
 
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-dashboard-manager-devicemanagement.mjs","sources":["../../dashboard-manager/devicemanagement/dashboard-manager-navigation.factory.ts","../../dashboard-manager/devicemanagement/dashboard-manager-tabs.factory.ts","../../dashboard-manager/devicemanagement/index.ts","../../dashboard-manager/devicemanagement/c8y-ngx-components-dashboard-manager-devicemanagement.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { NavigatorNode, NavigatorNodeFactory, PreviewService } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { map, Observable } from 'rxjs';\nimport { DM_DASHBOARD_MANAGER_PATH, DM_DASHBOARD_MANAGER_PREVIEW_KEY } from './index';\n\n@Injectable()\nexport class DashboardManagerNavigationFactory implements NavigatorNodeFactory {\n private readonly previewFeatureService = inject(PreviewService);\n\n get(): Observable<NavigatorNode[]> {\n return this.previewFeatureService.getState$(DM_DASHBOARD_MANAGER_PREVIEW_KEY).pipe(\n map(state => {\n if (state) {\n return [\n new NavigatorNode({\n parent: gettext('Management'),\n path: DM_DASHBOARD_MANAGER_PATH,\n label: gettext('Dashboard manager'),\n icon: 'management1',\n routerLinkExact: false,\n preventDuplicates: true,\n featureId: 'dashboardManager'\n })\n ];\n }\n return [];\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Tab, TabFactory } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\n\n@Injectable()\nexport class DashboardManagerTabsFactory implements TabFactory {\n constructor(public router: Router) {}\n\n get() {\n const tabs: Tab[] = [];\n\n if (this.router.url.match(/\\/dashboard-manager/g)) {\n tabs.push({\n path: 'dashboard-manager/type-dashboards',\n priority: 1000,\n label: gettext('Type dashboards')\n } as Tab);\n }\n\n return tabs;\n }\n}\n","import { inject } from '@angular/core';\nimport {\n hookNavigator,\n hookPreview,\n hookRoute,\n hookTab,\n PreviewService\n} from '@c8y/ngx-components';\nimport { TypeDashboardsListComponent } from '@c8y/ngx-components/dashboard-manager';\nimport { first, Observable } from 'rxjs';\nimport { DashboardManagerNavigationFactory } from './dashboard-manager-navigation.factory';\nimport { DashboardManagerTabsFactory } from './dashboard-manager-tabs.factory';\n\nexport const DM_DASHBOARD_MANAGER_PREVIEW_KEY = 'ui.dm-dashboard-manager';\nexport const DM_DASHBOARD_MANAGER_PATH = 'dashboard-manager';\n\nexport function canActivateDashboardManager(): Observable<boolean> {\n const previewFeatureService = inject(PreviewService);\n return previewFeatureService.getState$(DM_DASHBOARD_MANAGER_PREVIEW_KEY).pipe(first());\n}\n\nexport const dashboardManagerFeatureProvider = [\n hookTab(DashboardManagerTabsFactory),\n hookRoute([\n {\n path: DM_DASHBOARD_MANAGER_PATH,\n redirectTo: `${DM_DASHBOARD_MANAGER_PATH}/type-dashboards`,\n pathMatch: 'full'\n },\n {\n path: `${DM_DASHBOARD_MANAGER_PATH}/type-dashboards`,\n component: TypeDashboardsListComponent,\n canActivate: [canActivateDashboardManager]\n }\n ]),\n hookNavigator(DashboardManagerNavigationFactory),\n hookPreview({\n key: DM_DASHBOARD_MANAGER_PREVIEW_KEY,\n label: 'Dashboard manager',\n description: () =>\n import('@c8y/style/markdown-files/dm-dashboard-manager-preview.md').then(m => m.default),\n settings: { reload: true }\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-dashboard-manager-devicemanagement.mjs","sources":["../../dashboard-manager/devicemanagement/dashboard-manager-navigation.factory.ts","../../dashboard-manager/devicemanagement/dashboard-manager-tabs.factory.ts","../../dashboard-manager/devicemanagement/index.ts","../../dashboard-manager/devicemanagement/c8y-ngx-components-dashboard-manager-devicemanagement.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { NavigatorNode, NavigatorNodeFactory, PreviewService } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { map, Observable } from 'rxjs';\nimport { DM_DASHBOARD_MANAGER_PATH, DM_DASHBOARD_MANAGER_PREVIEW_KEY } from './index';\n\n@Injectable()\nexport class DashboardManagerNavigationFactory implements NavigatorNodeFactory {\n private readonly previewFeatureService = inject(PreviewService);\n\n get(): Observable<NavigatorNode[]> {\n return this.previewFeatureService.getState$(DM_DASHBOARD_MANAGER_PREVIEW_KEY).pipe(\n map(state => {\n if (state) {\n return [\n new NavigatorNode({\n parent: gettext('Management'),\n path: DM_DASHBOARD_MANAGER_PATH,\n label: gettext('Dashboard manager'),\n icon: 'management1',\n routerLinkExact: false,\n preventDuplicates: true,\n featureId: 'dashboardManager'\n })\n ];\n }\n return [];\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Tab, TabFactory } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\n\n@Injectable()\nexport class DashboardManagerTabsFactory implements TabFactory {\n constructor(public router: Router) {}\n\n get() {\n const tabs: Tab[] = [];\n\n if (this.router.url.match(/\\/dashboard-manager/g)) {\n tabs.push({\n path: 'dashboard-manager/type-dashboards',\n priority: 1000,\n label: gettext('Type dashboards')\n } as Tab);\n }\n\n return tabs;\n }\n}\n","import { inject } from '@angular/core';\nimport {\n hookNavigator,\n hookPreview,\n hookRoute,\n hookTab,\n PreviewService\n} from '@c8y/ngx-components';\nimport { TypeDashboardsListComponent } from '@c8y/ngx-components/dashboard-manager';\nimport { first, Observable } from 'rxjs';\nimport { DashboardManagerNavigationFactory } from './dashboard-manager-navigation.factory';\nimport { DashboardManagerTabsFactory } from './dashboard-manager-tabs.factory';\n\nexport const DM_DASHBOARD_MANAGER_PREVIEW_KEY = 'ui.dm-dashboard-manager';\nexport const DM_DASHBOARD_MANAGER_PATH = 'dashboard-manager';\n\nexport function canActivateDashboardManager(): Observable<boolean> {\n const previewFeatureService = inject(PreviewService);\n return previewFeatureService.getState$(DM_DASHBOARD_MANAGER_PREVIEW_KEY).pipe(first());\n}\n\nexport const dashboardManagerFeatureProvider = [\n hookTab(DashboardManagerTabsFactory),\n hookRoute([\n {\n path: DM_DASHBOARD_MANAGER_PATH,\n redirectTo: `${DM_DASHBOARD_MANAGER_PATH}/type-dashboards`,\n pathMatch: 'full'\n },\n {\n path: `${DM_DASHBOARD_MANAGER_PATH}/type-dashboards`,\n component: TypeDashboardsListComponent,\n canActivate: [canActivateDashboardManager]\n }\n ]),\n hookNavigator(DashboardManagerNavigationFactory),\n hookPreview({\n key: DM_DASHBOARD_MANAGER_PREVIEW_KEY,\n label: 'Dashboard manager',\n description: () =>\n import('@c8y/style/markdown-files/dm-dashboard-manager-preview.md').then(m => m.default),\n settings: { reload: true }\n })\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -44,10 +44,10 @@ class DashboardManagerTabsFactory {
44
44
  }
45
45
  return tabs;
46
46
  }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DashboardManagerTabsFactory, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
48
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DashboardManagerTabsFactory }); }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DashboardManagerTabsFactory, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
48
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DashboardManagerTabsFactory }); }
49
49
  }
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DashboardManagerTabsFactory, decorators: [{
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DashboardManagerTabsFactory, decorators: [{
51
51
  type: Injectable
52
52
  }], ctorParameters: () => [{ type: i1.Router }] });
53
53
 
@@ -117,10 +117,10 @@ class TypeDashboardAssetsGridService extends DataGridService {
117
117
  fullQuery = this.queriesUtil.addAndFilter(fullQuery, query);
118
118
  return this.queriesUtil.buildQuery(fullQuery);
119
119
  }
120
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: TypeDashboardAssetsGridService, deps: [{ token: i1$1.InventoryService }, { token: i2.UserPreferencesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
121
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: TypeDashboardAssetsGridService, providedIn: 'root' }); }
120
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TypeDashboardAssetsGridService, deps: [{ token: i1$1.InventoryService }, { token: i2.UserPreferencesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
121
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TypeDashboardAssetsGridService, providedIn: 'root' }); }
122
122
  }
123
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: TypeDashboardAssetsGridService, decorators: [{
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TypeDashboardAssetsGridService, decorators: [{
124
124
  type: Injectable,
125
125
  args: [{
126
126
  providedIn: 'root'
@@ -181,10 +181,10 @@ class TypeDashboardTargetAssetsGridComponent {
181
181
  action: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.ACTIONS.OPEN_DASHBOARD_INSTANCE_TO_EDIT
182
182
  });
183
183
  }
184
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: TypeDashboardTargetAssetsGridComponent, deps: [{ token: i1.Router }, { token: TypeDashboardAssetsGridService }, { token: i3.ContextDashboardService }, { token: i2.GainsightService }], target: i0.ɵɵFactoryTarget.Component }); }
185
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.3", type: TypeDashboardTargetAssetsGridComponent, isStandalone: true, selector: "c8y-type-dashboard-target-assets-grid", inputs: { dashboard: "dashboard" }, outputs: { onNavigateToAsset: "onNavigateToAsset" }, ngImport: i0, template: "<c8y-data-grid\n [title]=\"''\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [infiniteScroll]=\"'auto'\"\n [actionControls]=\"actionControls\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [showSearch]=\"true\"\n>\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Refine your search terms.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n</c8y-data-grid>\n", dependencies: [{ kind: "component", type: DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "childNodePagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "treeGrid", "hideReload", "childNodesProperty", "parentNodeLabelProperty"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
184
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TypeDashboardTargetAssetsGridComponent, deps: [{ token: i1.Router }, { token: TypeDashboardAssetsGridService }, { token: i3.ContextDashboardService }, { token: i2.GainsightService }], target: i0.ɵɵFactoryTarget.Component }); }
185
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: TypeDashboardTargetAssetsGridComponent, isStandalone: true, selector: "c8y-type-dashboard-target-assets-grid", inputs: { dashboard: "dashboard" }, outputs: { onNavigateToAsset: "onNavigateToAsset" }, ngImport: i0, template: "<c8y-data-grid\n [title]=\"''\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [infiniteScroll]=\"'auto'\"\n [actionControls]=\"actionControls\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [showSearch]=\"true\"\n>\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Refine your search terms.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n</c8y-data-grid>\n", dependencies: [{ kind: "component", type: DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "childNodePagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "treeGrid", "hideReload", "childNodesProperty", "parentNodeLabelProperty"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
186
186
  }
187
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: TypeDashboardTargetAssetsGridComponent, decorators: [{
187
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TypeDashboardTargetAssetsGridComponent, decorators: [{
188
188
  type: Component,
189
189
  args: [{ selector: 'c8y-type-dashboard-target-assets-grid', imports: [DataGridComponent, EmptyStateComponent, NgFor, ColumnDirective, C8yTranslatePipe], template: "<c8y-data-grid\n [title]=\"''\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [infiniteScroll]=\"'auto'\"\n [actionControls]=\"actionControls\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [showSearch]=\"true\"\n>\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Refine your search terms.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n</c8y-data-grid>\n" }]
190
190
  }], ctorParameters: () => [{ type: i1.Router }, { type: TypeDashboardAssetsGridService }, { type: i3.ContextDashboardService }, { type: i2.GainsightService }], propDecorators: { dashboard: [{
@@ -206,10 +206,10 @@ class TypeDashboardTargetAssetsModalComponent {
206
206
  close() {
207
207
  this.bsModalRef.hide();
208
208
  }
209
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: TypeDashboardTargetAssetsModalComponent, deps: [{ token: i1$2.BsModalRef }], target: i0.ɵɵFactoryTarget.Component }); }
210
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.3", type: TypeDashboardTargetAssetsModalComponent, isStandalone: true, selector: "c8y-type-dashboard-target-assets-modal", inputs: { dashboard: "dashboard" }, host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, ngImport: i0, template: "<c8y-modal\n title=\"{{ 'Select dashboard instance to edit' | translate }}\"\n (onClose)=\"close()\"\n (onDismiss)=\"close()\"\n [labels]=\"labels\"\n [disabled]=\"true\"\n [headerClasses]=\"'has-data-grid'\"\n>\n <c8y-type-dashboard-target-assets-grid\n [dashboard]=\"dashboard\"\n (onNavigateToAsset)=\"close()\"\n ></c8y-type-dashboard-target-assets-grid>\n</c8y-modal>\n", dependencies: [{ kind: "component", type: ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "component", type: TypeDashboardTargetAssetsGridComponent, selector: "c8y-type-dashboard-target-assets-grid", inputs: ["dashboard"], outputs: ["onNavigateToAsset"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
209
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TypeDashboardTargetAssetsModalComponent, deps: [{ token: i1$2.BsModalRef }], target: i0.ɵɵFactoryTarget.Component }); }
210
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: TypeDashboardTargetAssetsModalComponent, isStandalone: true, selector: "c8y-type-dashboard-target-assets-modal", inputs: { dashboard: "dashboard" }, host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, ngImport: i0, template: "<c8y-modal\n title=\"{{ 'Select dashboard instance to edit' | translate }}\"\n (onClose)=\"close()\"\n (onDismiss)=\"close()\"\n [labels]=\"labels\"\n [disabled]=\"true\"\n [headerClasses]=\"'has-data-grid'\"\n>\n <c8y-type-dashboard-target-assets-grid\n [dashboard]=\"dashboard\"\n (onNavigateToAsset)=\"close()\"\n ></c8y-type-dashboard-target-assets-grid>\n</c8y-modal>\n", dependencies: [{ kind: "component", type: ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "component", type: TypeDashboardTargetAssetsGridComponent, selector: "c8y-type-dashboard-target-assets-grid", inputs: ["dashboard"], outputs: ["onNavigateToAsset"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
211
211
  }
212
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: TypeDashboardTargetAssetsModalComponent, decorators: [{
212
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TypeDashboardTargetAssetsModalComponent, decorators: [{
213
213
  type: Component,
214
214
  args: [{ selector: 'c8y-type-dashboard-target-assets-modal', imports: [ModalComponent, TypeDashboardTargetAssetsGridComponent, C8yTranslatePipe], template: "<c8y-modal\n title=\"{{ 'Select dashboard instance to edit' | translate }}\"\n (onClose)=\"close()\"\n (onDismiss)=\"close()\"\n [labels]=\"labels\"\n [disabled]=\"true\"\n [headerClasses]=\"'has-data-grid'\"\n>\n <c8y-type-dashboard-target-assets-grid\n [dashboard]=\"dashboard\"\n (onNavigateToAsset)=\"close()\"\n ></c8y-type-dashboard-target-assets-grid>\n</c8y-modal>\n" }]
215
215
  }], ctorParameters: () => [{ type: i1$2.BsModalRef }], propDecorators: { dashboard: [{
@@ -368,10 +368,10 @@ class DashboardManagerService extends DataGridService {
368
368
  });
369
369
  return this.queriesUtil.buildQuery(withAppliedTo);
370
370
  }
371
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DashboardManagerService, deps: [{ token: i1$1.InventoryService }, { token: i2.UserPreferencesService }, { token: i2.ModalService }, { token: i3$1.TranslateService }, { token: i3.ContextDashboardService }], target: i0.ɵɵFactoryTarget.Injectable }); }
372
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DashboardManagerService, providedIn: 'root' }); }
371
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DashboardManagerService, deps: [{ token: i1$1.InventoryService }, { token: i2.UserPreferencesService }, { token: i2.ModalService }, { token: i3$1.TranslateService }, { token: i3.ContextDashboardService }], target: i0.ɵɵFactoryTarget.Injectable }); }
372
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DashboardManagerService, providedIn: 'root' }); }
373
373
  }
374
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DashboardManagerService, decorators: [{
374
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DashboardManagerService, decorators: [{
375
375
  type: Injectable,
376
376
  args: [{
377
377
  providedIn: 'root'
@@ -442,10 +442,10 @@ class TypeDashboardsListComponent {
442
442
  size
443
443
  };
444
444
  }
445
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: TypeDashboardsListComponent, deps: [{ token: DashboardManagerService }, { token: i1$2.BsModalService }, { token: i2.GainsightService }], target: i0.ɵɵFactoryTarget.Component }); }
446
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.3", type: TypeDashboardsListComponent, isStandalone: true, selector: "c8y-dashboard-manager", ngImport: i0, template: "<c8y-title>\n {{ 'Dashboard manager' | translate }}\n</c8y-title>\n\n<div class=\"content-fullpage d-flex d-col border-top border-bottom\">\n <c8y-data-grid\n [title]=\"title\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [infiniteScroll]=\"'auto'\"\n [actionControls]=\"actionControls\"\n [showSearch]=\"true\"\n [displayOptions]=\"displayOptions\"\n [refresh]=\"refresh\"\n [expandableRows]=\"'ASYNC'\"\n >\n <div\n *c8yExpandableRow=\"\n let context;\n let asyncRenderSuccess = asyncRenderSuccess;\n let asyncRenderFail = asyncRenderFail\n \"\n >\n <c8y-type-dashboard-info\n [context]=\"context\"\n [asyncRenderSuccess]=\"asyncRenderSuccess\"\n [asyncRenderFail]=\"asyncRenderFail\"\n ></c8y-type-dashboard-info>\n </div>\n\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No matching dashboards.' | translate\"\n [subtitle]=\"'Refine your search terms' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column name=\"icon\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <i [c8yIcon]=\"context.value\"></i>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"deviceTypeValue\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span class=\"label label-info\">\n {{ context.value }}\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"name\">\n <ng-container *c8yCellRendererDef=\"let context\">\n @let dashboardItem = context.item.c8y_Dashboard;\n @let dashboardName =\n dashboardItem.translateDashboardTitle\n ? (dashboardItem.name | translate)\n : dashboardItem.name;\n\n {{ dashboardName }}\n </ng-container>\n </c8y-column>\n\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n </c8y-data-grid>\n</div>\n", dependencies: [{ kind: "component", type: TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "childNodePagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "treeGrid", "hideReload", "childNodesProperty", "parentNodeLabelProperty"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "directive", type: ExpandableRowDirective, selector: "[c8yExpandableRow]" }, { kind: "component", type: TypeDashboardInfoComponent, selector: "c8y-type-dashboard-info", inputs: ["deviceTypeValue", "displayDeviceTypeValue", "context", "asyncRenderSuccess", "asyncRenderFail"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "directive", type: CellRendererDefDirective, selector: "[c8yCellRendererDef]" }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
445
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TypeDashboardsListComponent, deps: [{ token: DashboardManagerService }, { token: i1$2.BsModalService }, { token: i2.GainsightService }], target: i0.ɵɵFactoryTarget.Component }); }
446
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: TypeDashboardsListComponent, isStandalone: true, selector: "c8y-dashboard-manager", ngImport: i0, template: "<c8y-title>\n {{ 'Dashboard manager' | translate }}\n</c8y-title>\n\n<div class=\"content-fullpage d-flex d-col border-top border-bottom\">\n <c8y-data-grid\n [title]=\"title\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [infiniteScroll]=\"'auto'\"\n [actionControls]=\"actionControls\"\n [showSearch]=\"true\"\n [displayOptions]=\"displayOptions\"\n [refresh]=\"refresh\"\n [expandableRows]=\"'ASYNC'\"\n >\n <div\n *c8yExpandableRow=\"\n let context;\n let asyncRenderSuccess = asyncRenderSuccess;\n let asyncRenderFail = asyncRenderFail\n \"\n >\n <c8y-type-dashboard-info\n [context]=\"context\"\n [asyncRenderSuccess]=\"asyncRenderSuccess\"\n [asyncRenderFail]=\"asyncRenderFail\"\n ></c8y-type-dashboard-info>\n </div>\n\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No matching dashboards.' | translate\"\n [subtitle]=\"'Refine your search terms' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column name=\"icon\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <i [c8yIcon]=\"context.value\"></i>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"deviceTypeValue\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span class=\"label label-info\">\n {{ context.value }}\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"name\">\n <ng-container *c8yCellRendererDef=\"let context\">\n @let dashboardItem = context.item.c8y_Dashboard;\n @let dashboardName =\n dashboardItem.translateDashboardTitle\n ? (dashboardItem.name | translate)\n : dashboardItem.name;\n\n {{ dashboardName }}\n </ng-container>\n </c8y-column>\n\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n </c8y-data-grid>\n</div>\n", dependencies: [{ kind: "component", type: TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "childNodePagination", "infiniteScroll", "serverSideDataCallback", "selectable", "singleSelection", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning", "activeClassName", "expandableRows", "treeGrid", "hideReload", "childNodesProperty", "parentNodeLabelProperty"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "directive", type: ExpandableRowDirective, selector: "[c8yExpandableRow]" }, { kind: "component", type: TypeDashboardInfoComponent, selector: "c8y-type-dashboard-info", inputs: ["deviceTypeValue", "displayDeviceTypeValue", "context", "asyncRenderSuccess", "asyncRenderFail"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "directive", type: CellRendererDefDirective, selector: "[c8yCellRendererDef]" }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
447
447
  }
448
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: TypeDashboardsListComponent, decorators: [{
448
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TypeDashboardsListComponent, decorators: [{
449
449
  type: Component,
450
450
  args: [{ selector: 'c8y-dashboard-manager', imports: [
451
451
  TitleComponent,
@@ -463,8 +463,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
463
463
 
464
464
  const DASHBOARD_MANAGER_PATH = 'dashboard-manager';
465
465
  class DashboardManagerModule {
466
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DashboardManagerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
467
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.3", ngImport: i0, type: DashboardManagerModule, imports: [CoreModule,
466
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DashboardManagerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
467
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: DashboardManagerModule, imports: [CoreModule,
468
468
  TooltipModule,
469
469
  DeviceGridModule,
470
470
  ContextDashboardModule,
@@ -473,7 +473,7 @@ class DashboardManagerModule {
473
473
  TypeDashboardsListComponent,
474
474
  TypeDashboardTargetAssetsModalComponent,
475
475
  TypeDashboardTargetAssetsGridComponent] }); }
476
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DashboardManagerModule, providers: [
476
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DashboardManagerModule, providers: [
477
477
  hookTab(DashboardManagerTabsFactory),
478
478
  hookRoute([
479
479
  {
@@ -504,7 +504,7 @@ class DashboardManagerModule {
504
504
  TypeDashboardTargetAssetsModalComponent,
505
505
  TypeDashboardTargetAssetsGridComponent] }); }
506
506
  }
507
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: DashboardManagerModule, decorators: [{
507
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DashboardManagerModule, decorators: [{
508
508
  type: NgModule,
509
509
  args: [{
510
510
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-dashboard-manager.mjs","sources":["../../dashboard-manager/dashboard-manager.model.ts","../../dashboard-manager/dashboard-manager-tabs.factory.ts","../../dashboard-manager/type-dashboard-target-assets-grid/basic-name.device-grid-column.ts","../../dashboard-manager/type-dashboard-target-assets-grid/type-dashboard-assets-grid.service.ts","../../dashboard-manager/type-dashboard-target-assets-grid/type-dashboard-target-assets-grid.component.ts","../../dashboard-manager/type-dashboard-target-assets-grid/type-dashboard-target-assets-grid.component.html","../../dashboard-manager/type-dashboard-target-assets-modal/type-dashboard-target-assets-modal.component.ts","../../dashboard-manager/type-dashboard-target-assets-modal/type-dashboard-target-assets-modal.component.html","../../dashboard-manager/type-dashboards-list/device-type-value.grid-column.ts","../../dashboard-manager/dashboard-manager.service.ts","../../dashboard-manager/type-dashboards-list/type-dashboards-list.component.ts","../../dashboard-manager/type-dashboards-list/type-dashboards-list.component.html","../../dashboard-manager/dashboard-manager.module.ts","../../dashboard-manager/c8y-ngx-components-dashboard-manager.ts"],"sourcesContent":["export interface TypeDashboardFilter {\n query: string;\n text?: string;\n pageSize: number;\n currentPage: number;\n withTotalPages: boolean;\n withTotalElements: boolean;\n}\n\nexport const DASHBOARD_MANAGER_PRODUCT_EXPERIENCE = {\n EVENTS: {\n DASHBOARD_TEMPLATE: 'dashboardTemplate'\n },\n COMPONENTS: {\n TYPE_DASHBOARDS_LIST: 'type-dashboards-list',\n TYPE_DASHBOARD_TARGET_ASSETS_GRID: 'type-dashboard-target-assets-grid'\n },\n ACTIONS: {\n DELETE_TYPE_DASHBOARD: 'deleteTypeDashboard',\n EDIT_TYPE_DASHBOARD: 'editTypeDashboard',\n OPEN_DASHBOARD_INSTANCE_TO_EDIT: 'openDashboardInstanceToEdit'\n }\n} as const;\n","import { Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { TabFactory, Tab } from '@c8y/ngx-components';\nimport { Router } from '@angular/router';\n\n@Injectable()\nexport class DashboardManagerTabsFactory implements TabFactory {\n constructor(public router: Router) {}\n\n get() {\n const tabs: Tab[] = [];\n\n if (this.router.url.match(/\\/dashboard-manager/g)) {\n tabs.push({\n path: 'dashboard-manager/type-dashboards',\n priority: 1000,\n label: gettext('Type dashboards')\n } as Tab);\n }\n\n return tabs;\n }\n}\n","import { ColumnConfig } from '@c8y/ngx-components';\nimport { NameDeviceGridColumn } from '@c8y/ngx-components/device-grid';\n\nexport class BasicNameDeviceGridColumn extends NameDeviceGridColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'basic-name';\n this.cellRendererComponent = null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Column, DataGridService, Pagination, UserPreferencesService } from '@c8y/ngx-components';\nimport { InventoryService } from '@c8y/client';\nimport {\n GroupDeviceGridColumn,\n RegistrationDateDeviceGridColumn,\n TypeDeviceGridColumn\n} from '@c8y/ngx-components/device-grid';\nimport { BasicNameDeviceGridColumn } from './basic-name.device-grid-column';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TypeDashboardAssetsGridService extends DataGridService {\n constructor(\n protected inventoryService: InventoryService,\n protected userPreferencesService: UserPreferencesService\n ) {\n super(userPreferencesService);\n }\n\n getDefaultColumns(columnsForDevice = true): Column[] {\n return columnsForDevice\n ? [\n new BasicNameDeviceGridColumn(),\n new TypeDeviceGridColumn(),\n new GroupDeviceGridColumn(),\n new RegistrationDateDeviceGridColumn()\n ]\n : [\n new BasicNameDeviceGridColumn(),\n new TypeDeviceGridColumn(),\n new RegistrationDateDeviceGridColumn()\n ];\n }\n\n async getData(columns: Column[], pagination: Pagination, query: any = {}, text = null) {\n const filters = {\n ...this.getFilters(columns, pagination, query, text),\n withGroups: true\n };\n return this.inventoryService.list(filters);\n }\n\n async getCount(columns: Column[], pagination: Pagination, query: any = {}, text: string = null) {\n const filters = {\n ...this.getFilters(columns, pagination, query, text),\n pageSize: 1,\n currentPage: 1\n };\n return (await this.inventoryService.list(filters)).paging.totalPages;\n }\n\n async getTotal(query: any = {}): Promise<number> {\n const filters = {\n query: this.queriesUtil.buildQuery(query),\n pageSize: 1,\n withTotalPages: true\n };\n return (await this.inventoryService.list(filters)).paging.totalPages;\n }\n\n private getFilters(columns: Column[], pagination: Pagination, query: any, text?: string) {\n return {\n ...{ query: this.getDeviceQueryString(columns, query) },\n ...(text && { text }),\n pageSize: pagination.pageSize,\n currentPage: pagination.currentPage,\n withChildren: false,\n withTotalPages: true\n };\n }\n\n private getDeviceQueryString(columns: Column[], query: any): string {\n let fullQuery = this.getQueryObj(columns);\n fullQuery = this.queriesUtil.addAndFilter(fullQuery, query);\n return this.queriesUtil.buildQuery(fullQuery);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n ActionControl,\n alertOnError,\n Column,\n DataSourceModifier,\n GainsightService,\n ModalLabels,\n ServerSideDataCallback,\n ServerSideDataResult,\n DataGridComponent,\n EmptyStateComponent,\n ColumnDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { Router } from '@angular/router';\nimport { IManagedObject } from '@c8y/client';\nimport { TypeDashboardAssetsGridService } from './type-dashboard-assets-grid.service';\nimport {\n ContextDashboardManagedObject,\n ContextDashboardService\n} from '@c8y/ngx-components/context-dashboard';\nimport { DASHBOARD_MANAGER_PRODUCT_EXPERIENCE } from '../dashboard-manager.model';\nimport { NgFor } from '@angular/common';\n\n@Component({\n selector: 'c8y-type-dashboard-target-assets-grid',\n templateUrl: './type-dashboard-target-assets-grid.component.html',\n imports: [DataGridComponent, EmptyStateComponent, NgFor, ColumnDirective, C8yTranslatePipe]\n})\nexport class TypeDashboardTargetAssetsGridComponent implements OnInit {\n labels: ModalLabels = { cancel: gettext('Cancel') };\n columns: Column[];\n actionControls: ActionControl[] = [\n {\n type: 'navigateToInstance',\n text: gettext('Open instance`dashboard`'),\n callback: item => this.navigateToDevice(item as IManagedObject),\n icon: 'file-create'\n }\n ];\n loadMoreItemsLabel = gettext('Load more assets');\n loadingItemsLabel: string = gettext('Loading assets…');\n pagination = {\n pageSize: 25,\n currentPage: 1\n };\n serverSideDataCallback: ServerSideDataCallback;\n\n @Input() dashboard: ContextDashboardManagedObject;\n @Output() onNavigateToAsset: EventEmitter<void> = new EventEmitter<void>();\n private isDeviceDashboard: boolean;\n\n constructor(\n private router: Router,\n private assetsGridService: TypeDashboardAssetsGridService,\n private contextDashboardService: ContextDashboardService,\n private gainsightService: GainsightService\n ) {\n this.serverSideDataCallback = this.onDataSourceModifier.bind(this);\n }\n\n ngOnInit() {\n this.isDeviceDashboard = this.contextDashboardService.isDeviceDashboard(this.dashboard);\n this.columns = this.assetsGridService.getDefaultColumns(this.isDeviceDashboard);\n }\n\n async onDataSourceModifier(\n dataSourceModifier: DataSourceModifier\n ): Promise<ServerSideDataResult> {\n const baseQuery = { type: this.dashboard.c8y_Dashboard.deviceTypeValue };\n\n const { res, data, paging } = await alertOnError(\n this.assetsGridService.getData(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n baseQuery,\n dataSourceModifier.searchText\n )\n );\n\n const filteredSize = await alertOnError(\n this.assetsGridService.getCount(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n baseQuery,\n dataSourceModifier.searchText\n )\n );\n const size = await alertOnError(this.assetsGridService.getTotal(baseQuery));\n\n const serverSideDataResult = {\n res,\n data,\n paging,\n filteredSize,\n size\n };\n\n return serverSideDataResult;\n }\n\n trackByName(_index, column: Column): string {\n return column.name;\n }\n\n navigateToDevice(val: IManagedObject): void {\n const parentSubPath = this.isDeviceDashboard ? 'device' : 'group';\n this.onNavigateToAsset.emit();\n this.router.navigate([`/${parentSubPath}/${val.id}/dashboard/${this.dashboard.id}`]);\n\n this.gainsightService.triggerEvent(\n DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.EVENTS.DASHBOARD_TEMPLATE,\n {\n component:\n DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.COMPONENTS.TYPE_DASHBOARD_TARGET_ASSETS_GRID,\n action: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.ACTIONS.OPEN_DASHBOARD_INSTANCE_TO_EDIT\n }\n );\n }\n}\n","<c8y-data-grid\n [title]=\"''\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [infiniteScroll]=\"'auto'\"\n [actionControls]=\"actionControls\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [showSearch]=\"true\"\n>\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Refine your search terms.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n</c8y-data-grid>\n","import { Component, HostListener, Input } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { ModalLabels, ModalComponent, C8yTranslatePipe } from '@c8y/ngx-components';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { ContextDashboardManagedObject } from '@c8y/ngx-components/context-dashboard';\nimport { TypeDashboardTargetAssetsGridComponent } from '../type-dashboard-target-assets-grid/type-dashboard-target-assets-grid.component';\n\n@Component({\n selector: 'c8y-type-dashboard-target-assets-modal',\n templateUrl: './type-dashboard-target-assets-modal.component.html',\n imports: [ModalComponent, TypeDashboardTargetAssetsGridComponent, C8yTranslatePipe]\n})\nexport class TypeDashboardTargetAssetsModalComponent {\n labels: ModalLabels = { cancel: gettext('Cancel') };\n @Input() dashboard: ContextDashboardManagedObject;\n\n constructor(private bsModalRef: BsModalRef) {}\n\n @HostListener('document:keydown', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n this.close();\n }\n }\n\n close(): void {\n this.bsModalRef.hide();\n }\n}\n","<c8y-modal\n title=\"{{ 'Select dashboard instance to edit' | translate }}\"\n (onClose)=\"close()\"\n (onDismiss)=\"close()\"\n [labels]=\"labels\"\n [disabled]=\"true\"\n [headerClasses]=\"'has-data-grid'\"\n>\n <c8y-type-dashboard-target-assets-grid\n [dashboard]=\"dashboard\"\n (onNavigateToAsset)=\"close()\"\n ></c8y-type-dashboard-target-assets-grid>\n</c8y-modal>\n","import { gettext } from '@c8y/ngx-components/gettext';\nimport { BaseColumn, ColumnConfig, getBasicInputArrayFormFieldConfig } from '@c8y/ngx-components';\n\nexport class DeviceTypeValueGridColumn extends BaseColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'deviceTypeValue';\n this.path = 'c8y_Dashboard.deviceTypeValue';\n this.header = gettext('Target asset model');\n\n this.filterable = true;\n this.sortable = false;\n\n this.filteringConfig = {\n fields: getBasicInputArrayFormFieldConfig({\n key: 'deviceTypeValues',\n label: gettext('Filter dashboards by target asset model'),\n addText: gettext('Add next`target asset model`'),\n tooltip: gettext('Use * as a wildcard character'),\n placeholder: 'c8y_MQTTDevice'\n }),\n getFilter: (model: any): any => {\n const filter: any = {};\n if (model.deviceTypeValues.length) {\n filter[this.path] = { __in: model.deviceTypeValues };\n }\n return filter;\n }\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IManagedObject, InventoryService, IResultList, QueriesUtil } from '@c8y/client';\nimport {\n Column,\n DataGridService,\n ModalService,\n Pagination,\n Status,\n UserPreferencesService\n} from '@c8y/ngx-components';\nimport {\n ContextDashboardManagedObject,\n ContextDashboardService\n} from '@c8y/ngx-components/context-dashboard';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n DASHBOARD_MANAGER_PRODUCT_EXPERIENCE,\n TypeDashboardFilter\n} from './dashboard-manager.model';\nimport { DeviceTypeValueGridColumn } from './type-dashboards-list/device-type-value.grid-column';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DashboardManagerService extends DataGridService {\n queriesUtil: QueriesUtil;\n baseQuery = {\n __filter: {\n __and: [\n { 'c8y_Dashboard.deviceType': { __eq: true } },\n { __has: 'c8y_Dashboard.deviceTypeValue' }\n ]\n }\n };\n\n private readonly baseTypeDashboardsFilter = {\n __filter: {\n __and: [\n { 'c8y_Dashboard.deviceType': { __eq: true } },\n { __has: 'c8y_Dashboard.deviceTypeValue' }\n ]\n }\n };\n constructor(\n protected inventory: InventoryService,\n protected userPreferencesService: UserPreferencesService,\n protected modal: ModalService,\n protected translateService: TranslateService,\n private contextDashboardService: ContextDashboardService\n ) {\n super(userPreferencesService);\n this.queriesUtil = new QueriesUtil();\n }\n\n getColumns(): Column[] {\n return [\n {\n name: 'icon',\n header: gettext('Icon'),\n path: 'c8y_Dashboard.icon',\n sortable: false,\n gridTrackSize: '45px'\n },\n {\n name: 'name',\n header: gettext('Name'),\n path: 'name',\n sortable: false,\n gridTrackSize: '200px'\n },\n {\n name: 'description',\n header: gettext('Description'),\n path: 'c8y_Dashboard.description',\n sortable: false\n },\n new DeviceTypeValueGridColumn(),\n {\n name: 'lastUpdated',\n header: gettext('Last update'),\n path: 'lastUpdated',\n sortable: false,\n gridTrackSize: '200px'\n }\n ];\n }\n\n getDefaultPagination(): Pagination {\n return {\n pageSize: 25,\n currentPage: 1\n };\n }\n\n async getData(\n columns: Column[],\n pagination: Pagination,\n text?: string\n ): Promise<IResultList<IManagedObject>> {\n const filters = this.getFilters(columns, pagination, text);\n\n return await this.inventory.list(filters);\n }\n\n async getTotal(): Promise<number> {\n const query = this.queriesUtil.buildQuery({\n __filter: {\n __and: [\n this.baseTypeDashboardsFilter.__filter,\n this.contextDashboardService.appliedToFilter()\n ]\n }\n });\n\n const res = await this.inventory.list({ query, withTotalElements: true, pageSize: 1 });\n return res.paging.totalElements;\n }\n\n async delete(dashboard: ContextDashboardManagedObject, onSuccess: () => void): Promise<void> {\n try {\n const msg: string = gettext(\n `You are about to delete the dashboard \"{{ dashboardName }}\" from all devices of type \"{{ deviceType }}\".\n Do you want to proceed?`\n );\n\n await this.modal.confirm(\n gettext('Delete dashboard'),\n this.translateService.instant(msg, {\n dashboardName: dashboard.c8y_Dashboard.name,\n deviceType: dashboard.c8y_Dashboard.deviceTypeValue\n }),\n Status.DANGER,\n {\n ok: gettext('Delete'),\n cancel: gettext('Cancel')\n },\n {},\n {\n eventName: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.EVENTS.DASHBOARD_TEMPLATE,\n data: {\n action: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.ACTIONS.DELETE_TYPE_DASHBOARD,\n component: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.COMPONENTS.TYPE_DASHBOARDS_LIST\n }\n }\n );\n await this.inventory.delete(dashboard);\n onSuccess();\n } catch (ex) {\n // intended empty\n }\n }\n\n private getFilters(\n columns: Column[],\n pagination: Pagination,\n text?: string\n ): TypeDashboardFilter {\n return {\n query: this.getQueryString(columns),\n ...(text && { text }),\n pageSize: pagination.pageSize,\n currentPage: pagination.currentPage,\n withTotalPages: true,\n withTotalElements: true\n };\n }\n\n private getQueryString(columns: Column[]): string {\n const queryFromColumns = this.getQueryObj(columns);\n\n const base = this.queriesUtil.addAndFilter(queryFromColumns, this.baseTypeDashboardsFilter);\n\n const withAppliedTo = this.queriesUtil.addAndFilter(base, {\n __filter: this.contextDashboardService.appliedToFilter()\n });\n\n return this.queriesUtil.buildQuery(withAppliedTo);\n }\n}\n","import { Component, EventEmitter } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n ActionControl,\n alertOnError,\n BuiltInActionType,\n Column,\n DataSourceModifier,\n DisplayOptions,\n GainsightService,\n ServerSideDataCallback,\n ServerSideDataResult,\n TitleComponent,\n DataGridComponent,\n ExpandableRowDirective,\n EmptyStateComponent,\n ColumnDirective,\n CellRendererDefDirective,\n IconDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { DashboardManagerService } from '../dashboard-manager.service';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { TypeDashboardTargetAssetsModalComponent } from '../type-dashboard-target-assets-modal/type-dashboard-target-assets-modal.component';\nimport {\n ContextDashboardManagedObject,\n TypeDashboardInfoComponent\n} from '@c8y/ngx-components/context-dashboard';\nimport { DASHBOARD_MANAGER_PRODUCT_EXPERIENCE } from '../dashboard-manager.model';\nimport { NgFor } from '@angular/common';\n\n@Component({\n selector: 'c8y-dashboard-manager',\n templateUrl: './type-dashboards-list.component.html',\n imports: [\n TitleComponent,\n DataGridComponent,\n ExpandableRowDirective,\n TypeDashboardInfoComponent,\n EmptyStateComponent,\n NgFor,\n ColumnDirective,\n CellRendererDefDirective,\n IconDirective,\n C8yTranslatePipe\n ]\n})\nexport class TypeDashboardsListComponent {\n title = gettext('Type dashboards');\n loadMoreItemsLabel = gettext('Load more dashboards');\n loadingItemsLabel: string = gettext('Loading dashboards…');\n columns = this.dashboardManagerService.getColumns();\n pagination = this.dashboardManagerService.getDefaultPagination();\n actionControls: ActionControl[] = [\n {\n type: BuiltInActionType.Edit,\n text: gettext('Edit dashboard'),\n callback: item => this.openTargetAssetsModal(item as ContextDashboardManagedObject)\n },\n {\n type: BuiltInActionType.Delete,\n text: gettext('Delete dashboard'),\n callback: item => this.delete(item as ContextDashboardManagedObject)\n }\n ];\n serverSideDataCallback: ServerSideDataCallback;\n displayOptions: DisplayOptions = {\n striped: true,\n bordered: false,\n gridHeader: true,\n filter: true,\n hover: false\n };\n refresh = new EventEmitter<void>();\n\n constructor(\n private dashboardManagerService: DashboardManagerService,\n private bsModalService: BsModalService,\n private gainsightService: GainsightService\n ) {\n this.serverSideDataCallback = this.onDataSourceModifier.bind(this);\n }\n\n async delete(dashboard: ContextDashboardManagedObject) {\n await this.dashboardManagerService.delete(dashboard, () => this.refresh.emit());\n }\n\n openTargetAssetsModal(dashboard: ContextDashboardManagedObject): void {\n const initialState: Pick<TypeDashboardTargetAssetsModalComponent, 'dashboard'> = { dashboard };\n this.bsModalService.show(TypeDashboardTargetAssetsModalComponent, {\n class: 'modal-lg',\n ariaDescribedby: 'modal-body',\n ariaLabelledBy: 'modal-title',\n ignoreBackdropClick: true,\n initialState\n });\n\n this.gainsightService.triggerEvent(\n DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.EVENTS.DASHBOARD_TEMPLATE,\n {\n component: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.COMPONENTS.TYPE_DASHBOARDS_LIST,\n action: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.ACTIONS.EDIT_TYPE_DASHBOARD\n }\n );\n }\n\n trackByName(_index, column: Column): string {\n return column.name;\n }\n\n async onDataSourceModifier(\n dataSourceModifier: DataSourceModifier\n ): Promise<ServerSideDataResult> {\n const { res, data, paging } = await alertOnError(\n this.dashboardManagerService.getData(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n dataSourceModifier.searchText\n )\n );\n const filteredSize = paging.totalElements;\n const size = await alertOnError(this.dashboardManagerService.getTotal());\n\n return {\n res,\n data,\n paging,\n filteredSize,\n size\n };\n }\n}\n","<c8y-title>\n {{ 'Dashboard manager' | translate }}\n</c8y-title>\n\n<div class=\"content-fullpage d-flex d-col border-top border-bottom\">\n <c8y-data-grid\n [title]=\"title\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [infiniteScroll]=\"'auto'\"\n [actionControls]=\"actionControls\"\n [showSearch]=\"true\"\n [displayOptions]=\"displayOptions\"\n [refresh]=\"refresh\"\n [expandableRows]=\"'ASYNC'\"\n >\n <div\n *c8yExpandableRow=\"\n let context;\n let asyncRenderSuccess = asyncRenderSuccess;\n let asyncRenderFail = asyncRenderFail\n \"\n >\n <c8y-type-dashboard-info\n [context]=\"context\"\n [asyncRenderSuccess]=\"asyncRenderSuccess\"\n [asyncRenderFail]=\"asyncRenderFail\"\n ></c8y-type-dashboard-info>\n </div>\n\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No matching dashboards.' | translate\"\n [subtitle]=\"'Refine your search terms' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column name=\"icon\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <i [c8yIcon]=\"context.value\"></i>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"deviceTypeValue\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span class=\"label label-info\">\n {{ context.value }}\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"name\">\n <ng-container *c8yCellRendererDef=\"let context\">\n @let dashboardItem = context.item.c8y_Dashboard;\n @let dashboardName =\n dashboardItem.translateDashboardTitle\n ? (dashboardItem.name | translate)\n : dashboardItem.name;\n\n {{ dashboardName }}\n </ng-container>\n </c8y-column>\n\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n </c8y-data-grid>\n</div>\n","import { NgModule } from '@angular/core';\nimport {\n CoreModule,\n hookNavigator,\n hookRoute,\n hookTab,\n ModalModule,\n NavigatorNode\n} from '@c8y/ngx-components';\nimport {\n ContextDashboardModule,\n TypeDashboardInfoComponent\n} from '@c8y/ngx-components/context-dashboard';\nimport { DeviceGridModule } from '@c8y/ngx-components/device-grid';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { DashboardManagerTabsFactory } from './dashboard-manager-tabs.factory';\nimport { TypeDashboardTargetAssetsGridComponent } from './type-dashboard-target-assets-grid/type-dashboard-target-assets-grid.component';\nimport { TypeDashboardTargetAssetsModalComponent } from './type-dashboard-target-assets-modal/type-dashboard-target-assets-modal.component';\nimport { TypeDashboardsListComponent } from './type-dashboards-list/type-dashboards-list.component';\n\nconst DASHBOARD_MANAGER_PATH = 'dashboard-manager';\n\n@NgModule({\n imports: [\n CoreModule,\n TooltipModule,\n DeviceGridModule,\n ContextDashboardModule,\n ModalModule,\n TypeDashboardInfoComponent,\n TypeDashboardsListComponent,\n TypeDashboardTargetAssetsModalComponent,\n TypeDashboardTargetAssetsGridComponent\n ],\n providers: [\n hookTab(DashboardManagerTabsFactory),\n hookRoute([\n {\n path: DASHBOARD_MANAGER_PATH,\n redirectTo: `${DASHBOARD_MANAGER_PATH}/type-dashboards`,\n pathMatch: 'full'\n },\n {\n path: `${DASHBOARD_MANAGER_PATH}/type-dashboards`,\n component: TypeDashboardsListComponent\n }\n ]),\n hookNavigator(\n new NavigatorNode({\n parent: gettext('Configuration'),\n path: DASHBOARD_MANAGER_PATH,\n label: gettext('Dashboard manager'),\n icon: 'management1',\n routerLinkExact: false,\n featureId: 'dashboardManager'\n })\n )\n ]\n})\nexport class DashboardManagerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.TypeDashboardAssetsGridService","i4","i3","i1.DashboardManagerService","i2"],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-dashboard-manager.mjs","sources":["../../dashboard-manager/dashboard-manager.model.ts","../../dashboard-manager/dashboard-manager-tabs.factory.ts","../../dashboard-manager/type-dashboard-target-assets-grid/basic-name.device-grid-column.ts","../../dashboard-manager/type-dashboard-target-assets-grid/type-dashboard-assets-grid.service.ts","../../dashboard-manager/type-dashboard-target-assets-grid/type-dashboard-target-assets-grid.component.ts","../../dashboard-manager/type-dashboard-target-assets-grid/type-dashboard-target-assets-grid.component.html","../../dashboard-manager/type-dashboard-target-assets-modal/type-dashboard-target-assets-modal.component.ts","../../dashboard-manager/type-dashboard-target-assets-modal/type-dashboard-target-assets-modal.component.html","../../dashboard-manager/type-dashboards-list/device-type-value.grid-column.ts","../../dashboard-manager/dashboard-manager.service.ts","../../dashboard-manager/type-dashboards-list/type-dashboards-list.component.ts","../../dashboard-manager/type-dashboards-list/type-dashboards-list.component.html","../../dashboard-manager/dashboard-manager.module.ts","../../dashboard-manager/c8y-ngx-components-dashboard-manager.ts"],"sourcesContent":["export interface TypeDashboardFilter {\n query: string;\n text?: string;\n pageSize: number;\n currentPage: number;\n withTotalPages: boolean;\n withTotalElements: boolean;\n}\n\nexport const DASHBOARD_MANAGER_PRODUCT_EXPERIENCE = {\n EVENTS: {\n DASHBOARD_TEMPLATE: 'dashboardTemplate'\n },\n COMPONENTS: {\n TYPE_DASHBOARDS_LIST: 'type-dashboards-list',\n TYPE_DASHBOARD_TARGET_ASSETS_GRID: 'type-dashboard-target-assets-grid'\n },\n ACTIONS: {\n DELETE_TYPE_DASHBOARD: 'deleteTypeDashboard',\n EDIT_TYPE_DASHBOARD: 'editTypeDashboard',\n OPEN_DASHBOARD_INSTANCE_TO_EDIT: 'openDashboardInstanceToEdit'\n }\n} as const;\n","import { Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { TabFactory, Tab } from '@c8y/ngx-components';\nimport { Router } from '@angular/router';\n\n@Injectable()\nexport class DashboardManagerTabsFactory implements TabFactory {\n constructor(public router: Router) {}\n\n get() {\n const tabs: Tab[] = [];\n\n if (this.router.url.match(/\\/dashboard-manager/g)) {\n tabs.push({\n path: 'dashboard-manager/type-dashboards',\n priority: 1000,\n label: gettext('Type dashboards')\n } as Tab);\n }\n\n return tabs;\n }\n}\n","import { ColumnConfig } from '@c8y/ngx-components';\nimport { NameDeviceGridColumn } from '@c8y/ngx-components/device-grid';\n\nexport class BasicNameDeviceGridColumn extends NameDeviceGridColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'basic-name';\n this.cellRendererComponent = null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Column, DataGridService, Pagination, UserPreferencesService } from '@c8y/ngx-components';\nimport { InventoryService } from '@c8y/client';\nimport {\n GroupDeviceGridColumn,\n RegistrationDateDeviceGridColumn,\n TypeDeviceGridColumn\n} from '@c8y/ngx-components/device-grid';\nimport { BasicNameDeviceGridColumn } from './basic-name.device-grid-column';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TypeDashboardAssetsGridService extends DataGridService {\n constructor(\n protected inventoryService: InventoryService,\n protected userPreferencesService: UserPreferencesService\n ) {\n super(userPreferencesService);\n }\n\n getDefaultColumns(columnsForDevice = true): Column[] {\n return columnsForDevice\n ? [\n new BasicNameDeviceGridColumn(),\n new TypeDeviceGridColumn(),\n new GroupDeviceGridColumn(),\n new RegistrationDateDeviceGridColumn()\n ]\n : [\n new BasicNameDeviceGridColumn(),\n new TypeDeviceGridColumn(),\n new RegistrationDateDeviceGridColumn()\n ];\n }\n\n async getData(columns: Column[], pagination: Pagination, query: any = {}, text = null) {\n const filters = {\n ...this.getFilters(columns, pagination, query, text),\n withGroups: true\n };\n return this.inventoryService.list(filters);\n }\n\n async getCount(columns: Column[], pagination: Pagination, query: any = {}, text: string = null) {\n const filters = {\n ...this.getFilters(columns, pagination, query, text),\n pageSize: 1,\n currentPage: 1\n };\n return (await this.inventoryService.list(filters)).paging.totalPages;\n }\n\n async getTotal(query: any = {}): Promise<number> {\n const filters = {\n query: this.queriesUtil.buildQuery(query),\n pageSize: 1,\n withTotalPages: true\n };\n return (await this.inventoryService.list(filters)).paging.totalPages;\n }\n\n private getFilters(columns: Column[], pagination: Pagination, query: any, text?: string) {\n return {\n ...{ query: this.getDeviceQueryString(columns, query) },\n ...(text && { text }),\n pageSize: pagination.pageSize,\n currentPage: pagination.currentPage,\n withChildren: false,\n withTotalPages: true\n };\n }\n\n private getDeviceQueryString(columns: Column[], query: any): string {\n let fullQuery = this.getQueryObj(columns);\n fullQuery = this.queriesUtil.addAndFilter(fullQuery, query);\n return this.queriesUtil.buildQuery(fullQuery);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n ActionControl,\n alertOnError,\n Column,\n DataSourceModifier,\n GainsightService,\n ModalLabels,\n ServerSideDataCallback,\n ServerSideDataResult,\n DataGridComponent,\n EmptyStateComponent,\n ColumnDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { Router } from '@angular/router';\nimport { IManagedObject } from '@c8y/client';\nimport { TypeDashboardAssetsGridService } from './type-dashboard-assets-grid.service';\nimport {\n ContextDashboardManagedObject,\n ContextDashboardService\n} from '@c8y/ngx-components/context-dashboard';\nimport { DASHBOARD_MANAGER_PRODUCT_EXPERIENCE } from '../dashboard-manager.model';\nimport { NgFor } from '@angular/common';\n\n@Component({\n selector: 'c8y-type-dashboard-target-assets-grid',\n templateUrl: './type-dashboard-target-assets-grid.component.html',\n imports: [DataGridComponent, EmptyStateComponent, NgFor, ColumnDirective, C8yTranslatePipe]\n})\nexport class TypeDashboardTargetAssetsGridComponent implements OnInit {\n labels: ModalLabels = { cancel: gettext('Cancel') };\n columns: Column[];\n actionControls: ActionControl[] = [\n {\n type: 'navigateToInstance',\n text: gettext('Open instance`dashboard`'),\n callback: item => this.navigateToDevice(item as IManagedObject),\n icon: 'file-create'\n }\n ];\n loadMoreItemsLabel = gettext('Load more assets');\n loadingItemsLabel: string = gettext('Loading assets…');\n pagination = {\n pageSize: 25,\n currentPage: 1\n };\n serverSideDataCallback: ServerSideDataCallback;\n\n @Input() dashboard: ContextDashboardManagedObject;\n @Output() onNavigateToAsset: EventEmitter<void> = new EventEmitter<void>();\n private isDeviceDashboard: boolean;\n\n constructor(\n private router: Router,\n private assetsGridService: TypeDashboardAssetsGridService,\n private contextDashboardService: ContextDashboardService,\n private gainsightService: GainsightService\n ) {\n this.serverSideDataCallback = this.onDataSourceModifier.bind(this);\n }\n\n ngOnInit() {\n this.isDeviceDashboard = this.contextDashboardService.isDeviceDashboard(this.dashboard);\n this.columns = this.assetsGridService.getDefaultColumns(this.isDeviceDashboard);\n }\n\n async onDataSourceModifier(\n dataSourceModifier: DataSourceModifier\n ): Promise<ServerSideDataResult> {\n const baseQuery = { type: this.dashboard.c8y_Dashboard.deviceTypeValue };\n\n const { res, data, paging } = await alertOnError(\n this.assetsGridService.getData(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n baseQuery,\n dataSourceModifier.searchText\n )\n );\n\n const filteredSize = await alertOnError(\n this.assetsGridService.getCount(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n baseQuery,\n dataSourceModifier.searchText\n )\n );\n const size = await alertOnError(this.assetsGridService.getTotal(baseQuery));\n\n const serverSideDataResult = {\n res,\n data,\n paging,\n filteredSize,\n size\n };\n\n return serverSideDataResult;\n }\n\n trackByName(_index, column: Column): string {\n return column.name;\n }\n\n navigateToDevice(val: IManagedObject): void {\n const parentSubPath = this.isDeviceDashboard ? 'device' : 'group';\n this.onNavigateToAsset.emit();\n this.router.navigate([`/${parentSubPath}/${val.id}/dashboard/${this.dashboard.id}`]);\n\n this.gainsightService.triggerEvent(\n DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.EVENTS.DASHBOARD_TEMPLATE,\n {\n component:\n DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.COMPONENTS.TYPE_DASHBOARD_TARGET_ASSETS_GRID,\n action: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.ACTIONS.OPEN_DASHBOARD_INSTANCE_TO_EDIT\n }\n );\n }\n}\n","<c8y-data-grid\n [title]=\"''\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [infiniteScroll]=\"'auto'\"\n [actionControls]=\"actionControls\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [showSearch]=\"true\"\n>\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Refine your search terms.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n</c8y-data-grid>\n","import { Component, HostListener, Input } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { ModalLabels, ModalComponent, C8yTranslatePipe } from '@c8y/ngx-components';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { ContextDashboardManagedObject } from '@c8y/ngx-components/context-dashboard';\nimport { TypeDashboardTargetAssetsGridComponent } from '../type-dashboard-target-assets-grid/type-dashboard-target-assets-grid.component';\n\n@Component({\n selector: 'c8y-type-dashboard-target-assets-modal',\n templateUrl: './type-dashboard-target-assets-modal.component.html',\n imports: [ModalComponent, TypeDashboardTargetAssetsGridComponent, C8yTranslatePipe]\n})\nexport class TypeDashboardTargetAssetsModalComponent {\n labels: ModalLabels = { cancel: gettext('Cancel') };\n @Input() dashboard: ContextDashboardManagedObject;\n\n constructor(private bsModalRef: BsModalRef) {}\n\n @HostListener('document:keydown', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n this.close();\n }\n }\n\n close(): void {\n this.bsModalRef.hide();\n }\n}\n","<c8y-modal\n title=\"{{ 'Select dashboard instance to edit' | translate }}\"\n (onClose)=\"close()\"\n (onDismiss)=\"close()\"\n [labels]=\"labels\"\n [disabled]=\"true\"\n [headerClasses]=\"'has-data-grid'\"\n>\n <c8y-type-dashboard-target-assets-grid\n [dashboard]=\"dashboard\"\n (onNavigateToAsset)=\"close()\"\n ></c8y-type-dashboard-target-assets-grid>\n</c8y-modal>\n","import { gettext } from '@c8y/ngx-components/gettext';\nimport { BaseColumn, ColumnConfig, getBasicInputArrayFormFieldConfig } from '@c8y/ngx-components';\n\nexport class DeviceTypeValueGridColumn extends BaseColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'deviceTypeValue';\n this.path = 'c8y_Dashboard.deviceTypeValue';\n this.header = gettext('Target asset model');\n\n this.filterable = true;\n this.sortable = false;\n\n this.filteringConfig = {\n fields: getBasicInputArrayFormFieldConfig({\n key: 'deviceTypeValues',\n label: gettext('Filter dashboards by target asset model'),\n addText: gettext('Add next`target asset model`'),\n tooltip: gettext('Use * as a wildcard character'),\n placeholder: 'c8y_MQTTDevice'\n }),\n getFilter: (model: any): any => {\n const filter: any = {};\n if (model.deviceTypeValues.length) {\n filter[this.path] = { __in: model.deviceTypeValues };\n }\n return filter;\n }\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IManagedObject, InventoryService, IResultList, QueriesUtil } from '@c8y/client';\nimport {\n Column,\n DataGridService,\n ModalService,\n Pagination,\n Status,\n UserPreferencesService\n} from '@c8y/ngx-components';\nimport {\n ContextDashboardManagedObject,\n ContextDashboardService\n} from '@c8y/ngx-components/context-dashboard';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n DASHBOARD_MANAGER_PRODUCT_EXPERIENCE,\n TypeDashboardFilter\n} from './dashboard-manager.model';\nimport { DeviceTypeValueGridColumn } from './type-dashboards-list/device-type-value.grid-column';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DashboardManagerService extends DataGridService {\n queriesUtil: QueriesUtil;\n baseQuery = {\n __filter: {\n __and: [\n { 'c8y_Dashboard.deviceType': { __eq: true } },\n { __has: 'c8y_Dashboard.deviceTypeValue' }\n ]\n }\n };\n\n private readonly baseTypeDashboardsFilter = {\n __filter: {\n __and: [\n { 'c8y_Dashboard.deviceType': { __eq: true } },\n { __has: 'c8y_Dashboard.deviceTypeValue' }\n ]\n }\n };\n constructor(\n protected inventory: InventoryService,\n protected userPreferencesService: UserPreferencesService,\n protected modal: ModalService,\n protected translateService: TranslateService,\n private contextDashboardService: ContextDashboardService\n ) {\n super(userPreferencesService);\n this.queriesUtil = new QueriesUtil();\n }\n\n getColumns(): Column[] {\n return [\n {\n name: 'icon',\n header: gettext('Icon'),\n path: 'c8y_Dashboard.icon',\n sortable: false,\n gridTrackSize: '45px'\n },\n {\n name: 'name',\n header: gettext('Name'),\n path: 'name',\n sortable: false,\n gridTrackSize: '200px'\n },\n {\n name: 'description',\n header: gettext('Description'),\n path: 'c8y_Dashboard.description',\n sortable: false\n },\n new DeviceTypeValueGridColumn(),\n {\n name: 'lastUpdated',\n header: gettext('Last update'),\n path: 'lastUpdated',\n sortable: false,\n gridTrackSize: '200px'\n }\n ];\n }\n\n getDefaultPagination(): Pagination {\n return {\n pageSize: 25,\n currentPage: 1\n };\n }\n\n async getData(\n columns: Column[],\n pagination: Pagination,\n text?: string\n ): Promise<IResultList<IManagedObject>> {\n const filters = this.getFilters(columns, pagination, text);\n\n return await this.inventory.list(filters);\n }\n\n async getTotal(): Promise<number> {\n const query = this.queriesUtil.buildQuery({\n __filter: {\n __and: [\n this.baseTypeDashboardsFilter.__filter,\n this.contextDashboardService.appliedToFilter()\n ]\n }\n });\n\n const res = await this.inventory.list({ query, withTotalElements: true, pageSize: 1 });\n return res.paging.totalElements;\n }\n\n async delete(dashboard: ContextDashboardManagedObject, onSuccess: () => void): Promise<void> {\n try {\n const msg: string = gettext(\n `You are about to delete the dashboard \"{{ dashboardName }}\" from all devices of type \"{{ deviceType }}\".\n Do you want to proceed?`\n );\n\n await this.modal.confirm(\n gettext('Delete dashboard'),\n this.translateService.instant(msg, {\n dashboardName: dashboard.c8y_Dashboard.name,\n deviceType: dashboard.c8y_Dashboard.deviceTypeValue\n }),\n Status.DANGER,\n {\n ok: gettext('Delete'),\n cancel: gettext('Cancel')\n },\n {},\n {\n eventName: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.EVENTS.DASHBOARD_TEMPLATE,\n data: {\n action: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.ACTIONS.DELETE_TYPE_DASHBOARD,\n component: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.COMPONENTS.TYPE_DASHBOARDS_LIST\n }\n }\n );\n await this.inventory.delete(dashboard);\n onSuccess();\n } catch (ex) {\n // intended empty\n }\n }\n\n private getFilters(\n columns: Column[],\n pagination: Pagination,\n text?: string\n ): TypeDashboardFilter {\n return {\n query: this.getQueryString(columns),\n ...(text && { text }),\n pageSize: pagination.pageSize,\n currentPage: pagination.currentPage,\n withTotalPages: true,\n withTotalElements: true\n };\n }\n\n private getQueryString(columns: Column[]): string {\n const queryFromColumns = this.getQueryObj(columns);\n\n const base = this.queriesUtil.addAndFilter(queryFromColumns, this.baseTypeDashboardsFilter);\n\n const withAppliedTo = this.queriesUtil.addAndFilter(base, {\n __filter: this.contextDashboardService.appliedToFilter()\n });\n\n return this.queriesUtil.buildQuery(withAppliedTo);\n }\n}\n","import { Component, EventEmitter } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n ActionControl,\n alertOnError,\n BuiltInActionType,\n Column,\n DataSourceModifier,\n DisplayOptions,\n GainsightService,\n ServerSideDataCallback,\n ServerSideDataResult,\n TitleComponent,\n DataGridComponent,\n ExpandableRowDirective,\n EmptyStateComponent,\n ColumnDirective,\n CellRendererDefDirective,\n IconDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { DashboardManagerService } from '../dashboard-manager.service';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { TypeDashboardTargetAssetsModalComponent } from '../type-dashboard-target-assets-modal/type-dashboard-target-assets-modal.component';\nimport {\n ContextDashboardManagedObject,\n TypeDashboardInfoComponent\n} from '@c8y/ngx-components/context-dashboard';\nimport { DASHBOARD_MANAGER_PRODUCT_EXPERIENCE } from '../dashboard-manager.model';\nimport { NgFor } from '@angular/common';\n\n@Component({\n selector: 'c8y-dashboard-manager',\n templateUrl: './type-dashboards-list.component.html',\n imports: [\n TitleComponent,\n DataGridComponent,\n ExpandableRowDirective,\n TypeDashboardInfoComponent,\n EmptyStateComponent,\n NgFor,\n ColumnDirective,\n CellRendererDefDirective,\n IconDirective,\n C8yTranslatePipe\n ]\n})\nexport class TypeDashboardsListComponent {\n title = gettext('Type dashboards');\n loadMoreItemsLabel = gettext('Load more dashboards');\n loadingItemsLabel: string = gettext('Loading dashboards…');\n columns = this.dashboardManagerService.getColumns();\n pagination = this.dashboardManagerService.getDefaultPagination();\n actionControls: ActionControl[] = [\n {\n type: BuiltInActionType.Edit,\n text: gettext('Edit dashboard'),\n callback: item => this.openTargetAssetsModal(item as ContextDashboardManagedObject)\n },\n {\n type: BuiltInActionType.Delete,\n text: gettext('Delete dashboard'),\n callback: item => this.delete(item as ContextDashboardManagedObject)\n }\n ];\n serverSideDataCallback: ServerSideDataCallback;\n displayOptions: DisplayOptions = {\n striped: true,\n bordered: false,\n gridHeader: true,\n filter: true,\n hover: false\n };\n refresh = new EventEmitter<void>();\n\n constructor(\n private dashboardManagerService: DashboardManagerService,\n private bsModalService: BsModalService,\n private gainsightService: GainsightService\n ) {\n this.serverSideDataCallback = this.onDataSourceModifier.bind(this);\n }\n\n async delete(dashboard: ContextDashboardManagedObject) {\n await this.dashboardManagerService.delete(dashboard, () => this.refresh.emit());\n }\n\n openTargetAssetsModal(dashboard: ContextDashboardManagedObject): void {\n const initialState: Pick<TypeDashboardTargetAssetsModalComponent, 'dashboard'> = { dashboard };\n this.bsModalService.show(TypeDashboardTargetAssetsModalComponent, {\n class: 'modal-lg',\n ariaDescribedby: 'modal-body',\n ariaLabelledBy: 'modal-title',\n ignoreBackdropClick: true,\n initialState\n });\n\n this.gainsightService.triggerEvent(\n DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.EVENTS.DASHBOARD_TEMPLATE,\n {\n component: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.COMPONENTS.TYPE_DASHBOARDS_LIST,\n action: DASHBOARD_MANAGER_PRODUCT_EXPERIENCE.ACTIONS.EDIT_TYPE_DASHBOARD\n }\n );\n }\n\n trackByName(_index, column: Column): string {\n return column.name;\n }\n\n async onDataSourceModifier(\n dataSourceModifier: DataSourceModifier\n ): Promise<ServerSideDataResult> {\n const { res, data, paging } = await alertOnError(\n this.dashboardManagerService.getData(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n dataSourceModifier.searchText\n )\n );\n const filteredSize = paging.totalElements;\n const size = await alertOnError(this.dashboardManagerService.getTotal());\n\n return {\n res,\n data,\n paging,\n filteredSize,\n size\n };\n }\n}\n","<c8y-title>\n {{ 'Dashboard manager' | translate }}\n</c8y-title>\n\n<div class=\"content-fullpage d-flex d-col border-top border-bottom\">\n <c8y-data-grid\n [title]=\"title\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [infiniteScroll]=\"'auto'\"\n [actionControls]=\"actionControls\"\n [showSearch]=\"true\"\n [displayOptions]=\"displayOptions\"\n [refresh]=\"refresh\"\n [expandableRows]=\"'ASYNC'\"\n >\n <div\n *c8yExpandableRow=\"\n let context;\n let asyncRenderSuccess = asyncRenderSuccess;\n let asyncRenderFail = asyncRenderFail\n \"\n >\n <c8y-type-dashboard-info\n [context]=\"context\"\n [asyncRenderSuccess]=\"asyncRenderSuccess\"\n [asyncRenderFail]=\"asyncRenderFail\"\n ></c8y-type-dashboard-info>\n </div>\n\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No matching dashboards.' | translate\"\n [subtitle]=\"'Refine your search terms' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column name=\"icon\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <i [c8yIcon]=\"context.value\"></i>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"deviceTypeValue\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span class=\"label label-info\">\n {{ context.value }}\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"name\">\n <ng-container *c8yCellRendererDef=\"let context\">\n @let dashboardItem = context.item.c8y_Dashboard;\n @let dashboardName =\n dashboardItem.translateDashboardTitle\n ? (dashboardItem.name | translate)\n : dashboardItem.name;\n\n {{ dashboardName }}\n </ng-container>\n </c8y-column>\n\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n </c8y-data-grid>\n</div>\n","import { NgModule } from '@angular/core';\nimport {\n CoreModule,\n hookNavigator,\n hookRoute,\n hookTab,\n ModalModule,\n NavigatorNode\n} from '@c8y/ngx-components';\nimport {\n ContextDashboardModule,\n TypeDashboardInfoComponent\n} from '@c8y/ngx-components/context-dashboard';\nimport { DeviceGridModule } from '@c8y/ngx-components/device-grid';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { DashboardManagerTabsFactory } from './dashboard-manager-tabs.factory';\nimport { TypeDashboardTargetAssetsGridComponent } from './type-dashboard-target-assets-grid/type-dashboard-target-assets-grid.component';\nimport { TypeDashboardTargetAssetsModalComponent } from './type-dashboard-target-assets-modal/type-dashboard-target-assets-modal.component';\nimport { TypeDashboardsListComponent } from './type-dashboards-list/type-dashboards-list.component';\n\nconst DASHBOARD_MANAGER_PATH = 'dashboard-manager';\n\n@NgModule({\n imports: [\n CoreModule,\n TooltipModule,\n DeviceGridModule,\n ContextDashboardModule,\n ModalModule,\n TypeDashboardInfoComponent,\n TypeDashboardsListComponent,\n TypeDashboardTargetAssetsModalComponent,\n TypeDashboardTargetAssetsGridComponent\n ],\n providers: [\n hookTab(DashboardManagerTabsFactory),\n hookRoute([\n {\n path: DASHBOARD_MANAGER_PATH,\n redirectTo: `${DASHBOARD_MANAGER_PATH}/type-dashboards`,\n pathMatch: 'full'\n },\n {\n path: `${DASHBOARD_MANAGER_PATH}/type-dashboards`,\n component: TypeDashboardsListComponent\n }\n ]),\n hookNavigator(\n new NavigatorNode({\n parent: gettext('Configuration'),\n path: DASHBOARD_MANAGER_PATH,\n label: gettext('Dashboard manager'),\n icon: 'management1',\n routerLinkExact: false,\n featureId: 'dashboardManager'\n })\n )\n ]\n})\nexport class DashboardManagerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.TypeDashboardAssetsGridService","i4","i3","i1.DashboardManagerService","i2"],"mappings":"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"}