@c8y/ngx-components 1022.28.2 → 1022.33.0

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 (475) hide show
  1. package/asset-properties/asset-properties.model.d.ts +12 -3
  2. package/asset-properties/asset-properties.model.d.ts.map +1 -1
  3. package/asset-properties/asset-properties.service.d.ts +20 -2
  4. package/asset-properties/asset-properties.service.d.ts.map +1 -1
  5. package/asset-properties/asset-property-list/asset-property-icon-tooltip.pipe.d.ts +14 -0
  6. package/asset-properties/asset-property-list/asset-property-icon-tooltip.pipe.d.ts.map +1 -0
  7. package/asset-properties/asset-property-list/asset-property-icon.pipe.d.ts.map +1 -1
  8. package/asset-properties/asset-property-list/asset-property-list.component.d.ts +28 -18
  9. package/asset-properties/asset-property-list/asset-property-list.component.d.ts.map +1 -1
  10. package/asset-properties/asset-property-selector-drawer/asset-property-selector-drawer.component.d.ts +2 -2
  11. package/asset-properties/asset-property-selector-drawer/asset-property-selector-drawer.component.d.ts.map +1 -1
  12. package/asset-properties/custom-properties-drawer/custom-properties-drawer.component.d.ts +97 -0
  13. package/asset-properties/custom-properties-drawer/custom-properties-drawer.component.d.ts.map +1 -0
  14. package/asset-properties/custom-properties-drawer.service.d.ts +12 -0
  15. package/asset-properties/custom-properties-drawer.service.d.ts.map +1 -0
  16. package/asset-properties/index.d.ts +1 -0
  17. package/asset-properties/index.d.ts.map +1 -1
  18. package/context-dashboard/dashboard-detail.service.d.ts +2 -2
  19. package/context-dashboard/widget-config-hook/widget-config-hook.model.d.ts +2 -1
  20. package/context-dashboard/widget-config-hook/widget-config-hook.model.d.ts.map +1 -1
  21. package/context-dashboard/widget-config.component.d.ts +3 -1
  22. package/context-dashboard/widget-config.component.d.ts.map +1 -1
  23. package/context-dashboard/widget-config.service.d.ts +14 -8
  24. package/context-dashboard/widget-config.service.d.ts.map +1 -1
  25. package/core/dynamic-component/dynamic-component.model.d.ts +26 -0
  26. package/core/dynamic-component/dynamic-component.model.d.ts.map +1 -1
  27. package/core/i18n/pattern-messages.data.d.ts +7 -0
  28. package/core/i18n/pattern-messages.data.d.ts.map +1 -1
  29. package/core/index.d.ts +1 -0
  30. package/core/index.d.ts.map +1 -1
  31. package/core/query-param-handler/query-param-handler.service.d.ts +1 -1
  32. package/core/query-param-handler/query-param-handler.service.d.ts.map +1 -1
  33. package/core/query-param-handler/query-param-modal-handler.service.d.ts +16 -5
  34. package/core/query-param-handler/query-param-modal-handler.service.d.ts.map +1 -1
  35. package/core/resizable-grid/index.d.ts +2 -0
  36. package/core/resizable-grid/index.d.ts.map +1 -0
  37. package/core/resizable-grid/resizable-grid.component.d.ts +114 -0
  38. package/core/resizable-grid/resizable-grid.component.d.ts.map +1 -0
  39. package/dashboard-manager/devicemanagement/c8y-ngx-components-dashboard-manager-devicemanagement.d.ts.map +1 -0
  40. package/dashboard-manager/devicemanagement/index.d.ts +2 -0
  41. package/dashboard-manager/devicemanagement/index.d.ts.map +1 -0
  42. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/data-fetching.service.d.ts.map +1 -1
  43. package/fesm2022/c8y-ngx-components-actility-device-registration.mjs +16 -16
  44. package/fesm2022/c8y-ngx-components-actility-device-registration.mjs.map +1 -1
  45. package/fesm2022/c8y-ngx-components-advanced-software-management.mjs +7 -7
  46. package/fesm2022/c8y-ngx-components-advanced-software-management.mjs.map +1 -1
  47. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +34 -34
  48. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs.map +1 -1
  49. package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs +4 -4
  50. package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs.map +1 -1
  51. package/fesm2022/c8y-ngx-components-alarms-devicemanagement.mjs.map +1 -1
  52. package/fesm2022/c8y-ngx-components-alarms.mjs +73 -73
  53. package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
  54. package/fesm2022/c8y-ngx-components-api.mjs +7 -7
  55. package/fesm2022/c8y-ngx-components-api.mjs.map +1 -1
  56. package/fesm2022/c8y-ngx-components-app-logs.mjs +10 -10
  57. package/fesm2022/c8y-ngx-components-app-logs.mjs.map +1 -1
  58. package/fesm2022/c8y-ngx-components-asset-properties.mjs +427 -66
  59. package/fesm2022/c8y-ngx-components-asset-properties.mjs.map +1 -1
  60. package/fesm2022/{c8y-ngx-components-asset-property-grid.component-WUN1r4fC.mjs → c8y-ngx-components-asset-property-grid.component-CRnyUbyz.mjs} +13 -13
  61. package/fesm2022/{c8y-ngx-components-asset-property-grid.component-WUN1r4fC.mjs.map → c8y-ngx-components-asset-property-grid.component-CRnyUbyz.mjs.map} +1 -1
  62. package/fesm2022/c8y-ngx-components-assets-navigator.mjs +32 -32
  63. package/fesm2022/c8y-ngx-components-assets-navigator.mjs.map +1 -1
  64. package/fesm2022/c8y-ngx-components-auth-configuration.mjs +114 -114
  65. package/fesm2022/c8y-ngx-components-auth-configuration.mjs.map +1 -1
  66. package/fesm2022/c8y-ngx-components-binary-file-download.mjs +7 -7
  67. package/fesm2022/c8y-ngx-components-binary-file-download.mjs.map +1 -1
  68. package/fesm2022/c8y-ngx-components-bookmarks.mjs +13 -13
  69. package/fesm2022/c8y-ngx-components-bookmarks.mjs.map +1 -1
  70. package/fesm2022/c8y-ngx-components-branding-base-branding.mjs +4 -4
  71. package/fesm2022/c8y-ngx-components-branding-dark-theme.mjs +7 -7
  72. package/fesm2022/c8y-ngx-components-branding-dark-theme.mjs.map +1 -1
  73. package/fesm2022/c8y-ngx-components-branding-extra-css-branding-editor.mjs +7 -7
  74. package/fesm2022/c8y-ngx-components-branding-extra-css-branding-editor.mjs.map +1 -1
  75. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor-lazy.mjs +3 -3
  76. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor-lazy.mjs.map +1 -1
  77. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs +7 -7
  78. package/fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs.map +1 -1
  79. package/fesm2022/c8y-ngx-components-branding-shared-data.mjs +15 -15
  80. package/fesm2022/c8y-ngx-components-branding-shared-data.mjs.map +1 -1
  81. package/fesm2022/c8y-ngx-components-branding-shared-lazy-add-branding-modal.mjs +6 -6
  82. package/fesm2022/c8y-ngx-components-branding-shared-lazy-add-branding-modal.mjs.map +1 -1
  83. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +33 -33
  84. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
  85. package/fesm2022/c8y-ngx-components-branding-shared.mjs +10 -10
  86. package/fesm2022/c8y-ngx-components-branding-shared.mjs.map +1 -1
  87. package/fesm2022/c8y-ngx-components-child-devices.mjs +13 -13
  88. package/fesm2022/c8y-ngx-components-child-devices.mjs.map +1 -1
  89. package/fesm2022/c8y-ngx-components-cockpit-config.mjs +40 -40
  90. package/fesm2022/c8y-ngx-components-cockpit-config.mjs.map +1 -1
  91. package/fesm2022/c8y-ngx-components-connectivity.mjs +53 -53
  92. package/fesm2022/c8y-ngx-components-connectivity.mjs.map +1 -1
  93. package/fesm2022/c8y-ngx-components-context-dashboard-asset-add.mjs +10 -10
  94. package/fesm2022/c8y-ngx-components-context-dashboard-asset-add.mjs.map +1 -1
  95. package/fesm2022/c8y-ngx-components-context-dashboard-asset-view.mjs +7 -7
  96. package/fesm2022/c8y-ngx-components-context-dashboard-asset-view.mjs.map +1 -1
  97. package/fesm2022/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.mjs +11 -11
  98. package/fesm2022/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.mjs.map +1 -1
  99. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-C-JLbcn5.mjs → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BWyhab0H.mjs} +4 -4
  100. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-C-JLbcn5.mjs.map → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BWyhab0H.mjs.map} +1 -1
  101. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-RXvOcs04.mjs → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-DjlpSztw.mjs} +10 -10
  102. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-RXvOcs04.mjs.map → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-DjlpSztw.mjs.map} +1 -1
  103. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-DmPIJGXO.mjs → c8y-ngx-components-context-dashboard-dashboard-version-history.component-B2zLhv0X.mjs} +4 -4
  104. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-DmPIJGXO.mjs.map → c8y-ngx-components-context-dashboard-dashboard-version-history.component-B2zLhv0X.mjs.map} +1 -1
  105. package/fesm2022/c8y-ngx-components-context-dashboard-device-add.mjs +10 -10
  106. package/fesm2022/c8y-ngx-components-context-dashboard-device-add.mjs.map +1 -1
  107. package/fesm2022/c8y-ngx-components-context-dashboard-device-view.mjs +7 -7
  108. package/fesm2022/c8y-ngx-components-context-dashboard-device-view.mjs.map +1 -1
  109. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +133 -116
  110. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  111. package/fesm2022/{c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-DtLAOoFx.mjs → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-CwfVxTSx.mjs} +16 -16
  112. package/fesm2022/{c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-DtLAOoFx.mjs.map → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-CwfVxTSx.mjs.map} +1 -1
  113. package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab.mjs +12 -12
  114. package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab.mjs.map +1 -1
  115. package/fesm2022/c8y-ngx-components-dashboard-manager-devicemanagement.mjs +19 -0
  116. package/fesm2022/c8y-ngx-components-dashboard-manager-devicemanagement.mjs.map +1 -0
  117. package/fesm2022/c8y-ngx-components-dashboard-manager.mjs +22 -22
  118. package/fesm2022/c8y-ngx-components-dashboard-manager.mjs.map +1 -1
  119. package/fesm2022/c8y-ngx-components-data-broker.mjs +7 -7
  120. package/fesm2022/c8y-ngx-components-data-broker.mjs.map +1 -1
  121. package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs +3 -3
  122. package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs.map +1 -1
  123. package/fesm2022/c8y-ngx-components-data-grid-columns.mjs +3 -3
  124. package/fesm2022/c8y-ngx-components-data-grid-columns.mjs.map +1 -1
  125. package/fesm2022/c8y-ngx-components-datapoint-explorer-devicemanagement.mjs.map +1 -1
  126. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +24 -24
  127. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs.map +1 -1
  128. package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs +7 -7
  129. package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs.map +1 -1
  130. package/fesm2022/c8y-ngx-components-datapoint-library-details.mjs +3 -3
  131. package/fesm2022/c8y-ngx-components-datapoint-library-details.mjs.map +1 -1
  132. package/fesm2022/c8y-ngx-components-datapoint-library-list.mjs +3 -3
  133. package/fesm2022/c8y-ngx-components-datapoint-library-list.mjs.map +1 -1
  134. package/fesm2022/c8y-ngx-components-datapoint-library-services.mjs +3 -3
  135. package/fesm2022/c8y-ngx-components-datapoint-library-services.mjs.map +1 -1
  136. package/fesm2022/c8y-ngx-components-datapoint-library.mjs +4 -4
  137. package/fesm2022/c8y-ngx-components-datapoint-library.mjs.map +1 -1
  138. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +40 -40
  139. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
  140. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs +41 -40
  141. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -1
  142. package/fesm2022/c8y-ngx-components-default-subscriptions.mjs +16 -16
  143. package/fesm2022/c8y-ngx-components-default-subscriptions.mjs.map +1 -1
  144. package/fesm2022/c8y-ngx-components-device-grid.mjs +43 -43
  145. package/fesm2022/c8y-ngx-components-device-grid.mjs.map +1 -1
  146. package/fesm2022/c8y-ngx-components-device-list.mjs +22 -22
  147. package/fesm2022/c8y-ngx-components-device-list.mjs.map +1 -1
  148. package/fesm2022/c8y-ngx-components-device-map.mjs +12 -12
  149. package/fesm2022/c8y-ngx-components-device-map.mjs.map +1 -1
  150. package/fesm2022/c8y-ngx-components-device-profile.mjs +34 -34
  151. package/fesm2022/c8y-ngx-components-device-profile.mjs.map +1 -1
  152. package/fesm2022/c8y-ngx-components-device-protocol-object-mappings.mjs +3 -3
  153. package/fesm2022/c8y-ngx-components-device-protocol-object-mappings.mjs.map +1 -1
  154. package/fesm2022/c8y-ngx-components-device-protocols.mjs +16 -16
  155. package/fesm2022/c8y-ngx-components-device-protocols.mjs.map +1 -1
  156. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +13 -13
  157. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs.map +1 -1
  158. package/fesm2022/c8y-ngx-components-device-shell.mjs +31 -31
  159. package/fesm2022/c8y-ngx-components-device-shell.mjs.map +1 -1
  160. package/fesm2022/c8y-ngx-components-diagnostics.mjs +13 -13
  161. package/fesm2022/c8y-ngx-components-diagnostics.mjs.map +1 -1
  162. package/fesm2022/c8y-ngx-components-echart-models.mjs.map +1 -1
  163. package/fesm2022/c8y-ngx-components-echart.mjs +27 -27
  164. package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
  165. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +43 -43
  166. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
  167. package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs +7 -7
  168. package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs.map +1 -1
  169. package/fesm2022/c8y-ngx-components-ecosystem-license-confirm.mjs +10 -10
  170. package/fesm2022/c8y-ngx-components-ecosystem-license-confirm.mjs.map +1 -1
  171. package/fesm2022/c8y-ngx-components-ecosystem-plugin-setup-stepper.mjs +7 -7
  172. package/fesm2022/c8y-ngx-components-ecosystem-plugin-setup-stepper.mjs.map +1 -1
  173. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +46 -46
  174. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
  175. package/fesm2022/c8y-ngx-components-ecosystem.mjs +82 -82
  176. package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
  177. package/fesm2022/c8y-ngx-components-editor.mjs +6 -6
  178. package/fesm2022/c8y-ngx-components-editor.mjs.map +1 -1
  179. package/fesm2022/c8y-ngx-components-events-events-timeline.mjs +3 -3
  180. package/fesm2022/c8y-ngx-components-events-events-timeline.mjs.map +1 -1
  181. package/fesm2022/c8y-ngx-components-events.mjs +3 -3
  182. package/fesm2022/c8y-ngx-components-events.mjs.map +1 -1
  183. package/fesm2022/c8y-ngx-components-exports-list.mjs +6 -6
  184. package/fesm2022/c8y-ngx-components-exports-list.mjs.map +1 -1
  185. package/fesm2022/c8y-ngx-components-exports.mjs.map +1 -1
  186. package/fesm2022/c8y-ngx-components-file-preview.mjs +7 -7
  187. package/fesm2022/c8y-ngx-components-file-preview.mjs.map +1 -1
  188. package/fesm2022/c8y-ngx-components-files-repository.mjs +19 -19
  189. package/fesm2022/c8y-ngx-components-files-repository.mjs.map +1 -1
  190. package/fesm2022/c8y-ngx-components-icon-selector-icons-arrows.mjs.map +1 -1
  191. package/fesm2022/c8y-ngx-components-icon-selector-icons-city.mjs.map +1 -1
  192. package/fesm2022/c8y-ngx-components-icon-selector-icons-data.mjs.map +1 -1
  193. package/fesm2022/c8y-ngx-components-icon-selector-icons-dateAndTime.mjs.map +1 -1
  194. package/fesm2022/c8y-ngx-components-icon-selector-icons-devicesAndSensors.mjs.map +1 -1
  195. package/fesm2022/c8y-ngx-components-icon-selector-icons-ecommerce.mjs.map +1 -1
  196. package/fesm2022/c8y-ngx-components-icon-selector-icons-editing.mjs.map +1 -1
  197. package/fesm2022/c8y-ngx-components-icon-selector-icons-filesAndFolders.mjs.map +1 -1
  198. package/fesm2022/c8y-ngx-components-icon-selector-icons-finance.mjs.map +1 -1
  199. package/fesm2022/c8y-ngx-components-icon-selector-icons-hands.mjs.map +1 -1
  200. package/fesm2022/c8y-ngx-components-icon-selector-icons-location.mjs.map +1 -1
  201. package/fesm2022/c8y-ngx-components-icon-selector-icons-messaging.mjs.map +1 -1
  202. package/fesm2022/c8y-ngx-components-icon-selector-icons-multimedia.mjs.map +1 -1
  203. package/fesm2022/c8y-ngx-components-icon-selector-icons-network.mjs.map +1 -1
  204. package/fesm2022/c8y-ngx-components-icon-selector-icons-office.mjs.map +1 -1
  205. package/fesm2022/c8y-ngx-components-icon-selector-icons-people.mjs.map +1 -1
  206. package/fesm2022/c8y-ngx-components-icon-selector-icons-platform.mjs +1 -0
  207. package/fesm2022/c8y-ngx-components-icon-selector-icons-platform.mjs.map +1 -1
  208. package/fesm2022/c8y-ngx-components-icon-selector-icons-programming.mjs.map +1 -1
  209. package/fesm2022/c8y-ngx-components-icon-selector-icons-security.mjs.map +1 -1
  210. package/fesm2022/c8y-ngx-components-icon-selector-icons-transport.mjs.map +1 -1
  211. package/fesm2022/c8y-ngx-components-icon-selector-icons-userInterface.mjs.map +1 -1
  212. package/fesm2022/c8y-ngx-components-icon-selector-icons-weather.mjs.map +1 -1
  213. package/fesm2022/c8y-ngx-components-icon-selector-icons.mjs.map +1 -1
  214. package/fesm2022/c8y-ngx-components-icon-selector-model.mjs.map +1 -1
  215. package/fesm2022/c8y-ngx-components-icon-selector.mjs +19 -19
  216. package/fesm2022/c8y-ngx-components-icon-selector.mjs.map +1 -1
  217. package/fesm2022/c8y-ngx-components-interval-picker.mjs +3 -3
  218. package/fesm2022/c8y-ngx-components-interval-picker.mjs.map +1 -1
  219. package/fesm2022/c8y-ngx-components-location.mjs +28 -28
  220. package/fesm2022/c8y-ngx-components-location.mjs.map +1 -1
  221. package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs +16 -16
  222. package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs.map +1 -1
  223. package/fesm2022/c8y-ngx-components-map.mjs +19 -19
  224. package/fesm2022/c8y-ngx-components-map.mjs.map +1 -1
  225. package/fesm2022/c8y-ngx-components-messaging-management.mjs +55 -55
  226. package/fesm2022/c8y-ngx-components-messaging-management.mjs.map +1 -1
  227. package/fesm2022/c8y-ngx-components-operations-bulk-operation-from-single.mjs +7 -7
  228. package/fesm2022/c8y-ngx-components-operations-bulk-operation-from-single.mjs.map +1 -1
  229. package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs +19 -19
  230. package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs.map +1 -1
  231. package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs +7 -7
  232. package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs.map +1 -1
  233. package/fesm2022/c8y-ngx-components-operations-bulk-operation-stepper.mjs +13 -13
  234. package/fesm2022/c8y-ngx-components-operations-bulk-operation-stepper.mjs.map +1 -1
  235. package/fesm2022/c8y-ngx-components-operations-bulk-operations-list.mjs +13 -13
  236. package/fesm2022/c8y-ngx-components-operations-bulk-operations-list.mjs.map +1 -1
  237. package/fesm2022/c8y-ngx-components-operations-bulk-operations-service.mjs +7 -7
  238. package/fesm2022/c8y-ngx-components-operations-bulk-operations-service.mjs.map +1 -1
  239. package/fesm2022/c8y-ngx-components-operations-bulk-operations-stepper-container.mjs +7 -7
  240. package/fesm2022/c8y-ngx-components-operations-bulk-operations-stepper-container.mjs.map +1 -1
  241. package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs +10 -10
  242. package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs.map +1 -1
  243. package/fesm2022/c8y-ngx-components-operations-create-bulk-operation-details.mjs +7 -7
  244. package/fesm2022/c8y-ngx-components-operations-create-bulk-operation-details.mjs.map +1 -1
  245. package/fesm2022/c8y-ngx-components-operations-device-selector.mjs +7 -7
  246. package/fesm2022/c8y-ngx-components-operations-device-selector.mjs.map +1 -1
  247. package/fesm2022/c8y-ngx-components-operations-grid-columns.mjs +12 -12
  248. package/fesm2022/c8y-ngx-components-operations-grid-columns.mjs.map +1 -1
  249. package/fesm2022/c8y-ngx-components-operations-operation-details.mjs +13 -13
  250. package/fesm2022/c8y-ngx-components-operations-operation-details.mjs.map +1 -1
  251. package/fesm2022/c8y-ngx-components-operations-operation-summary.mjs +7 -7
  252. package/fesm2022/c8y-ngx-components-operations-operation-summary.mjs.map +1 -1
  253. package/fesm2022/c8y-ngx-components-operations-operations-list-item-details.mjs +10 -10
  254. package/fesm2022/c8y-ngx-components-operations-operations-list-item-details.mjs.map +1 -1
  255. package/fesm2022/c8y-ngx-components-operations-operations-list.mjs +12 -12
  256. package/fesm2022/c8y-ngx-components-operations-operations-list.mjs.map +1 -1
  257. package/fesm2022/c8y-ngx-components-operations-operations-timeline.mjs +7 -7
  258. package/fesm2022/c8y-ngx-components-operations-operations-timeline.mjs.map +1 -1
  259. package/fesm2022/c8y-ngx-components-operations-product-experience.mjs.map +1 -1
  260. package/fesm2022/c8y-ngx-components-operations-shared.mjs +10 -10
  261. package/fesm2022/c8y-ngx-components-operations-shared.mjs.map +1 -1
  262. package/fesm2022/c8y-ngx-components-operations-status-filter.mjs +7 -7
  263. package/fesm2022/c8y-ngx-components-operations-status-filter.mjs.map +1 -1
  264. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-configuration.mjs +7 -7
  265. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-configuration.mjs.map +1 -1
  266. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-device-profile.mjs +13 -13
  267. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-device-profile.mjs.map +1 -1
  268. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-firmware.mjs +13 -13
  269. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-firmware.mjs.map +1 -1
  270. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-software.mjs +13 -13
  271. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-software.mjs.map +1 -1
  272. package/fesm2022/c8y-ngx-components-operations-stepper-frames.mjs +13 -13
  273. package/fesm2022/c8y-ngx-components-operations-stepper-frames.mjs.map +1 -1
  274. package/fesm2022/c8y-ngx-components-operations.mjs +7 -7
  275. package/fesm2022/c8y-ngx-components-operations.mjs.map +1 -1
  276. package/fesm2022/c8y-ngx-components-pending-mo-request.mjs +7 -7
  277. package/fesm2022/c8y-ngx-components-pending-mo-request.mjs.map +1 -1
  278. package/fesm2022/c8y-ngx-components-platform-configuration.mjs +10 -10
  279. package/fesm2022/c8y-ngx-components-platform-configuration.mjs.map +1 -1
  280. package/fesm2022/c8y-ngx-components-protocol-lpwan.mjs +38 -38
  281. package/fesm2022/c8y-ngx-components-protocol-lpwan.mjs.map +1 -1
  282. package/fesm2022/c8y-ngx-components-protocol-opcua-mappings.mjs.map +1 -1
  283. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +58 -58
  284. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs.map +1 -1
  285. package/fesm2022/c8y-ngx-components-register-device.mjs +58 -58
  286. package/fesm2022/c8y-ngx-components-register-device.mjs.map +1 -1
  287. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +9 -9
  288. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs.map +1 -1
  289. package/fesm2022/c8y-ngx-components-remote-access-data.mjs +3 -3
  290. package/fesm2022/c8y-ngx-components-remote-access-data.mjs.map +1 -1
  291. package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs +3 -3
  292. package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs.map +1 -1
  293. package/fesm2022/c8y-ngx-components-remote-access-shared.mjs +6 -6
  294. package/fesm2022/c8y-ngx-components-remote-access-shared.mjs.map +1 -1
  295. package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +3 -3
  296. package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs.map +1 -1
  297. package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs +3 -3
  298. package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs.map +1 -1
  299. package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs +3 -3
  300. package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs.map +1 -1
  301. package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs +3 -3
  302. package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs.map +1 -1
  303. package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +3 -3
  304. package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs.map +1 -1
  305. package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +6 -6
  306. package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs.map +1 -1
  307. package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs +3 -3
  308. package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs.map +1 -1
  309. package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs +6 -6
  310. package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs.map +1 -1
  311. package/fesm2022/c8y-ngx-components-replace-device.mjs +13 -29
  312. package/fesm2022/c8y-ngx-components-replace-device.mjs.map +1 -1
  313. package/fesm2022/c8y-ngx-components-report-dashboard.mjs +16 -16
  314. package/fesm2022/c8y-ngx-components-report-dashboard.mjs.map +1 -1
  315. package/fesm2022/c8y-ngx-components-reports.mjs +19 -19
  316. package/fesm2022/c8y-ngx-components-reports.mjs.map +1 -1
  317. package/fesm2022/c8y-ngx-components-repository-configuration.mjs +48 -48
  318. package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
  319. package/fesm2022/c8y-ngx-components-repository-firmware.mjs +33 -33
  320. package/fesm2022/c8y-ngx-components-repository-firmware.mjs.map +1 -1
  321. package/fesm2022/c8y-ngx-components-repository-shared.mjs +34 -34
  322. package/fesm2022/c8y-ngx-components-repository-shared.mjs.map +1 -1
  323. package/fesm2022/c8y-ngx-components-repository-software.mjs +42 -42
  324. package/fesm2022/c8y-ngx-components-repository-software.mjs.map +1 -1
  325. package/fesm2022/c8y-ngx-components-repository.mjs +4 -4
  326. package/fesm2022/c8y-ngx-components-repository.mjs.map +1 -1
  327. package/fesm2022/c8y-ngx-components-search.mjs +19 -19
  328. package/fesm2022/c8y-ngx-components-search.mjs.map +1 -1
  329. package/fesm2022/c8y-ngx-components-sensor-phone-sensor-phone-modal.mjs +33 -27
  330. package/fesm2022/c8y-ngx-components-sensor-phone-sensor-phone-modal.mjs.map +1 -1
  331. package/fesm2022/c8y-ngx-components-sensor-phone.mjs +17 -320
  332. package/fesm2022/c8y-ngx-components-sensor-phone.mjs.map +1 -1
  333. package/fesm2022/c8y-ngx-components-services-service-command-tab.mjs +3 -3
  334. package/fesm2022/c8y-ngx-components-services-service-command-tab.mjs.map +1 -1
  335. package/fesm2022/c8y-ngx-components-services-shared.mjs +3 -3
  336. package/fesm2022/c8y-ngx-components-services-shared.mjs.map +1 -1
  337. package/fesm2022/c8y-ngx-components-services.mjs +29 -29
  338. package/fesm2022/c8y-ngx-components-services.mjs.map +1 -1
  339. package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs +16 -16
  340. package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs.map +1 -1
  341. package/fesm2022/c8y-ngx-components-sms-gateway.mjs +7 -7
  342. package/fesm2022/c8y-ngx-components-sms-gateway.mjs.map +1 -1
  343. package/fesm2022/c8y-ngx-components-static-assets-data.mjs +3 -3
  344. package/fesm2022/c8y-ngx-components-static-assets-data.mjs.map +1 -1
  345. package/fesm2022/c8y-ngx-components-static-assets-modal.mjs +3 -3
  346. package/fesm2022/c8y-ngx-components-static-assets-modal.mjs.map +1 -1
  347. package/fesm2022/c8y-ngx-components-static-assets.mjs +6 -6
  348. package/fesm2022/c8y-ngx-components-static-assets.mjs.map +1 -1
  349. package/fesm2022/c8y-ngx-components-sub-assets.mjs +60 -60
  350. package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
  351. package/fesm2022/c8y-ngx-components-tenants.mjs +40 -40
  352. package/fesm2022/c8y-ngx-components-tenants.mjs.map +1 -1
  353. package/fesm2022/c8y-ngx-components-time-context.mjs +6 -6
  354. package/fesm2022/c8y-ngx-components-time-context.mjs.map +1 -1
  355. package/fesm2022/c8y-ngx-components-tracking.mjs +12 -12
  356. package/fesm2022/c8y-ngx-components-tracking.mjs.map +1 -1
  357. package/fesm2022/c8y-ngx-components-translation-editor-data.mjs +3 -3
  358. package/fesm2022/c8y-ngx-components-translation-editor-data.mjs.map +1 -1
  359. package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs +12 -12
  360. package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs.map +1 -1
  361. package/fesm2022/c8y-ngx-components-translation-editor.mjs +6 -6
  362. package/fesm2022/c8y-ngx-components-translation-editor.mjs.map +1 -1
  363. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +33 -33
  364. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs.map +1 -1
  365. package/fesm2022/c8y-ngx-components-upgrade-upgraded-services.mjs +4 -4
  366. package/fesm2022/c8y-ngx-components-upgrade-upgraded-services.mjs.map +1 -1
  367. package/fesm2022/c8y-ngx-components-upgrade.mjs +41 -41
  368. package/fesm2022/c8y-ngx-components-upgrade.mjs.map +1 -1
  369. package/fesm2022/c8y-ngx-components-user-roles.mjs +10 -10
  370. package/fesm2022/c8y-ngx-components-user-roles.mjs.map +1 -1
  371. package/fesm2022/c8y-ngx-components-widgets-cockpit-exports.mjs.map +1 -1
  372. package/fesm2022/c8y-ngx-components-widgets-cockpit.mjs +4 -4
  373. package/fesm2022/c8y-ngx-components-widgets-cockpit.mjs.map +1 -1
  374. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs.map +1 -1
  375. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-all-critical-alarms.mjs.map +1 -1
  376. package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-recent-alarms.mjs.map +1 -1
  377. package/fesm2022/c8y-ngx-components-widgets-definitions-applications.mjs.map +1 -1
  378. package/fesm2022/c8y-ngx-components-widgets-definitions-asset-notes.mjs.map +1 -1
  379. package/fesm2022/c8y-ngx-components-widgets-definitions-cockpit-legacy-welcome.mjs.map +1 -1
  380. package/fesm2022/c8y-ngx-components-widgets-definitions-cockpit-welcome.mjs.map +1 -1
  381. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs +3 -3
  382. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs.map +1 -1
  383. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs.map +1 -1
  384. package/fesm2022/c8y-ngx-components-widgets-definitions-device-control-message.mjs.map +1 -1
  385. package/fesm2022/c8y-ngx-components-widgets-definitions-device-management-welcome.mjs.map +1 -1
  386. package/fesm2022/c8y-ngx-components-widgets-definitions-help-and-service.mjs.map +1 -1
  387. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs +18 -14
  388. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs.map +1 -1
  389. package/fesm2022/c8y-ngx-components-widgets-definitions-image.mjs +4 -2
  390. package/fesm2022/c8y-ngx-components-widgets-definitions-image.mjs.map +1 -1
  391. package/fesm2022/c8y-ngx-components-widgets-definitions-info-gauge.mjs.map +1 -1
  392. package/fesm2022/c8y-ngx-components-widgets-definitions-kpi.mjs.map +1 -1
  393. package/fesm2022/c8y-ngx-components-widgets-definitions-linear-gauge.mjs.map +1 -1
  394. package/fesm2022/c8y-ngx-components-widgets-definitions-map.mjs.map +1 -1
  395. package/fesm2022/c8y-ngx-components-widgets-definitions-markdown.mjs +4 -2
  396. package/fesm2022/c8y-ngx-components-widgets-definitions-markdown.mjs.map +1 -1
  397. package/fesm2022/c8y-ngx-components-widgets-definitions-quick-links.mjs.map +1 -1
  398. package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs.map +1 -1
  399. package/fesm2022/c8y-ngx-components-widgets-definitions-silo.mjs.map +1 -1
  400. package/fesm2022/c8y-ngx-components-widgets-definitions-three-d-rotation.mjs.map +1 -1
  401. package/fesm2022/c8y-ngx-components-widgets-definitions.mjs.map +1 -1
  402. package/fesm2022/c8y-ngx-components-widgets-device-management.mjs.map +1 -1
  403. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +22 -22
  404. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
  405. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-notes.mjs +3 -3
  406. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-notes.mjs.map +1 -1
  407. package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-legacy-welcome.mjs +3 -3
  408. package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-legacy-welcome.mjs.map +1 -1
  409. package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs +3 -3
  410. package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs.map +1 -1
  411. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +6 -6
  412. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
  413. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +50 -36
  414. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs.map +1 -1
  415. package/fesm2022/c8y-ngx-components-widgets-implementations-device-control-message.mjs +3 -3
  416. package/fesm2022/c8y-ngx-components-widgets-implementations-device-control-message.mjs.map +1 -1
  417. package/fesm2022/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs +7 -7
  418. package/fesm2022/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs.map +1 -1
  419. package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs +3 -3
  420. package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs.map +1 -1
  421. package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs +22 -22
  422. package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs.map +1 -1
  423. package/fesm2022/c8y-ngx-components-widgets-implementations-image.mjs +9 -9
  424. package/fesm2022/c8y-ngx-components-widgets-implementations-image.mjs.map +1 -1
  425. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +18 -18
  426. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs.map +1 -1
  427. package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs +6 -6
  428. package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs.map +1 -1
  429. package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs +6 -6
  430. package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs.map +1 -1
  431. package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs +9 -9
  432. package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs.map +1 -1
  433. package/fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs +9 -9
  434. package/fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs.map +1 -1
  435. package/fesm2022/c8y-ngx-components-widgets-implementations-quick-links.mjs +18 -18
  436. package/fesm2022/c8y-ngx-components-widgets-implementations-quick-links.mjs.map +1 -1
  437. package/fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation.mjs +9 -9
  438. package/fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation.mjs.map +1 -1
  439. package/fesm2022/c8y-ngx-components-widgets-import-export-config.mjs.map +1 -1
  440. package/fesm2022/c8y-ngx-components-widgets.mjs +4 -4
  441. package/fesm2022/c8y-ngx-components-widgets.mjs.map +1 -1
  442. package/fesm2022/c8y-ngx-components.mjs +1658 -1315
  443. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  444. package/icon-selector/icons/index.d.ts +1 -1
  445. package/icon-selector/icons/platform/index.d.ts +2 -2
  446. package/icon-selector/icons/platform/index.d.ts.map +1 -1
  447. package/locales/de.po +26 -3
  448. package/locales/es.po +26 -3
  449. package/locales/fr.po +26 -3
  450. package/locales/ja_JP.po +25 -3
  451. package/locales/ko.po +26 -3
  452. package/locales/locales.pot +25 -2
  453. package/locales/nl.po +26 -3
  454. package/locales/pl.po +26 -3
  455. package/locales/pt_BR.po +26 -3
  456. package/locales/zh_CN.po +26 -3
  457. package/locales/zh_TW.po +26 -3
  458. package/package.json +1 -1
  459. package/replace-device/replace-device.module.d.ts.map +1 -1
  460. package/sensor-phone/sensor-phone-modal/sensor-phone-modal.component.d.ts +6 -6
  461. package/sensor-phone/sensor-phone-modal/sensor-phone-modal.component.d.ts.map +1 -1
  462. package/sensor-phone/sensor-phone-modal/sensor-phone.model.d.ts +0 -1
  463. package/sensor-phone/sensor-phone-modal/sensor-phone.model.d.ts.map +1 -1
  464. package/sensor-phone/sensor-phone.module.d.ts +2 -3
  465. package/sensor-phone/sensor-phone.module.d.ts.map +1 -1
  466. package/widgets/definitions/datapoints-table/index.d.ts +1 -2
  467. package/widgets/definitions/datapoints-table/index.d.ts.map +1 -1
  468. package/widgets/definitions/html-widget/html-widget-config.factory.d.ts +1 -1
  469. package/widgets/definitions/html-widget/html-widget-config.factory.d.ts.map +1 -1
  470. package/widgets/definitions/image/index.d.ts +1 -1
  471. package/widgets/definitions/image/index.d.ts.map +1 -1
  472. package/widgets/definitions/markdown/index.d.ts +1 -1
  473. package/widgets/definitions/markdown/index.d.ts.map +1 -1
  474. package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table-view.component.d.ts.map +1 -1
  475. package/widgets/implementations/three-d-rotation/three-d-rotation-widget-view/three-d-rotation-widget-view.component.d.ts.map +1 -1
@@ -82,10 +82,10 @@ class CockpitDashboardComponent {
82
82
  this.pageTitle = config.pageTitle;
83
83
  }
84
84
  }
85
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CockpitDashboardComponent, deps: [{ token: i1.AppStateService }, { token: COCKPIT_HOME_DASHBOARD_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
86
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: CockpitDashboardComponent, isStandalone: true, selector: "c8y-cockpit-dashboard", viewQueries: [{ propertyName: "contextDashboard", first: true, predicate: ContextDashboardComponent, descendants: true, static: true }], ngImport: i0, template: "<c8y-title>\n {{ pageTitle | translate }}\n</c8y-title>\n\n<c8y-context-dashboard\n [name]=\"dashboardName\"\n [defaultWidgets]=\"defaultWidgets\"\n [canDelete]=\"false\"\n [hideAvailability]=\"true\"\n></c8y-context-dashboard>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "component", type: i1.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "ngmodule", type: ContextDashboardModule }, { kind: "component", type: i2.ContextDashboardComponent, selector: "c8y-context-dashboard", inputs: ["name", "childrenClasses", "context", "setTitle", "defaultWidgets", "canCopy", "canDelete", "isLoading", "breadcrumbSettings", "showContextHelpButton", "translateWidgetTitle", "hideAvailability"] }] }); }
85
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: CockpitDashboardComponent, deps: [{ token: i1.AppStateService }, { token: COCKPIT_HOME_DASHBOARD_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
86
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: CockpitDashboardComponent, isStandalone: true, selector: "c8y-cockpit-dashboard", viewQueries: [{ propertyName: "contextDashboard", first: true, predicate: ContextDashboardComponent, descendants: true, static: true }], ngImport: i0, template: "<c8y-title>\n {{ pageTitle | translate }}\n</c8y-title>\n\n<c8y-context-dashboard\n [name]=\"dashboardName\"\n [defaultWidgets]=\"defaultWidgets\"\n [canDelete]=\"false\"\n [hideAvailability]=\"true\"\n></c8y-context-dashboard>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "component", type: i1.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "ngmodule", type: ContextDashboardModule }, { kind: "component", type: i2.ContextDashboardComponent, selector: "c8y-context-dashboard", inputs: ["name", "childrenClasses", "context", "setTitle", "defaultWidgets", "canCopy", "canDelete", "isLoading", "breadcrumbSettings", "showContextHelpButton", "translateWidgetTitle", "hideAvailability"] }] }); }
87
87
  }
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CockpitDashboardComponent, decorators: [{
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: CockpitDashboardComponent, decorators: [{
89
89
  type: Component,
90
90
  args: [{ selector: 'c8y-cockpit-dashboard', standalone: true, imports: [CoreModule, ContextDashboardModule], template: "<c8y-title>\n {{ pageTitle | translate }}\n</c8y-title>\n\n<c8y-context-dashboard\n [name]=\"dashboardName\"\n [defaultWidgets]=\"defaultWidgets\"\n [canDelete]=\"false\"\n [hideAvailability]=\"true\"\n></c8y-context-dashboard>\n" }]
91
91
  }], ctorParameters: () => [{ type: i1.AppStateService }, { type: undefined, decorators: [{
@@ -99,9 +99,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
99
99
  }] } });
100
100
 
101
101
  class CockpitHomeDashboardModule {
102
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CockpitHomeDashboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
103
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: CockpitHomeDashboardModule }); }
104
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CockpitHomeDashboardModule, providers: [
102
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: CockpitHomeDashboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
103
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: CockpitHomeDashboardModule }); }
104
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: CockpitHomeDashboardModule, providers: [
105
105
  hookNavigator({
106
106
  label: gettext('Home'),
107
107
  icon: 'home',
@@ -117,7 +117,7 @@ class CockpitHomeDashboardModule {
117
117
  })
118
118
  ] }); }
119
119
  }
120
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CockpitHomeDashboardModule, decorators: [{
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: CockpitHomeDashboardModule, decorators: [{
121
121
  type: NgModule,
122
122
  args: [{
123
123
  providers: [
@@ -149,11 +149,11 @@ class CockpitDashboardModule {
149
149
  ]
150
150
  };
151
151
  }
152
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CockpitDashboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
153
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: CockpitDashboardModule, imports: [CockpitHomeDashboardModule] }); }
154
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CockpitDashboardModule, imports: [CockpitHomeDashboardModule] }); }
152
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: CockpitDashboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
153
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: CockpitDashboardModule, imports: [CockpitHomeDashboardModule] }); }
154
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: CockpitDashboardModule, imports: [CockpitHomeDashboardModule] }); }
155
155
  }
156
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CockpitDashboardModule, decorators: [{
156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: CockpitDashboardModule, decorators: [{
157
157
  type: NgModule,
158
158
  args: [{
159
159
  imports: [CockpitHomeDashboardModule]
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-context-dashboard-cockpit-home-dashboard.mjs","sources":["../../context-dashboard/cockpit-home-dashboard/cockpit-dashboard.model.ts","../../context-dashboard/cockpit-home-dashboard/cockpit-dashboard.component.ts","../../context-dashboard/cockpit-home-dashboard/cockpit-dashboard.component.html","../../context-dashboard/cockpit-home-dashboard/cockpit-dashboard.module.ts","../../context-dashboard/cockpit-home-dashboard/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { gettext, Widget } from '@c8y/ngx-components';\n\n/**\n * A hook to define the default widgets of the home dashboard in the cockpit app.\n */\nexport const COCKPIT_HOME_DASHBOARD_CONFIG = new InjectionToken('CockpitHomeDashboardConfig');\n\nexport interface CockpitDashboardConfig {\n /**\n * Allows to have customized dashboard context name in case the CockpitDashboardModule is used in different apps and should have individual home dashboards per app\n */\n dashboardName?: string;\n /**\n * Allows to define the default widgets shown on the Cockpit Homepage\n */\n defaultWidgets?: Widget[];\n /**\n * Allows to have a different page title than the default 'Home'\n */\n pageTitle?: string;\n /**\n * Allows to have individual home dashboards per user\n */\n userSpecific?: boolean;\n}\n\n/**\n * An array of widgets that is per default placed on the home dashboard of the cockpit app.\n */\nexport const DEFAULT_COCKPIT_HOME_WIDGETS = [\n {\n name: 'cockpit.welcome.widget',\n title: gettext('Welcome to Cockpit'),\n _x: 0,\n _y: 0,\n _height: 5,\n _width: 24,\n classes: { 'panel-title-hidden': true }\n },\n {\n name: 'Asset Alarms',\n title: gettext('Active, critical alarms'),\n _x: 0,\n _y: 5,\n _height: 4,\n _width: 12\n },\n {\n name: 'Recent Alarms',\n title: gettext('Recent alarms'),\n _x: 0,\n _y: 9,\n _height: 4,\n _width: 12\n },\n {\n name: 'Map',\n title: gettext('Map'),\n _x: 12,\n _y: 5,\n _height: 8,\n _width: 12\n }\n] as Partial<Widget>[] as Widget[];\n","import { Component, Inject, Optional, ViewChild } from '@angular/core';\nimport { AppStateService, CoreModule, gettext } from '@c8y/ngx-components';\nimport {\n CockpitDashboardConfig,\n COCKPIT_HOME_DASHBOARD_CONFIG,\n DEFAULT_COCKPIT_HOME_WIDGETS\n} from './cockpit-dashboard.model';\nimport {\n CanDeactivateComponent,\n ContextDashboardComponent,\n ContextDashboardModule\n} from '@c8y/ngx-components/context-dashboard';\n\n@Component({\n selector: 'c8y-cockpit-dashboard',\n templateUrl: './cockpit-dashboard.component.html',\n standalone: true,\n imports: [CoreModule, ContextDashboardModule]\n})\nexport class CockpitDashboardComponent implements CanDeactivateComponent {\n defaultWidgets = DEFAULT_COCKPIT_HOME_WIDGETS;\n dashboardName = 'home-cockpit1';\n pageTitle: string = gettext('Home');\n @ViewChild(ContextDashboardComponent, { static: true })\n contextDashboard: ContextDashboardComponent;\n\n constructor(\n private appState: AppStateService,\n @Optional()\n @Inject(COCKPIT_HOME_DASHBOARD_CONFIG)\n private homeDashboardConfig: CockpitDashboardConfig\n ) {\n const config = {\n ...this.homeDashboardConfig,\n dashboardName: appState.currentApplication.value?.config?.homeDashboardName,\n userSpecific: appState.currentApplication.value?.config?.userSpecificHomeDashboard\n };\n this.applyDashboardConfig(config);\n }\n\n canDeactivate(): Promise<boolean> {\n return this.contextDashboard.canDeactivate();\n }\n\n private applyDashboardConfig(config: CockpitDashboardConfig) {\n if (!config) {\n return;\n }\n\n if (config.dashboardName) {\n this.dashboardName = config.dashboardName;\n }\n\n if (config.defaultWidgets) {\n this.defaultWidgets = config.defaultWidgets;\n }\n\n if (config.userSpecific && this.appState.currentUser.value) {\n this.dashboardName = `${this.appState.currentUser.value.userName.replace(/\\./g, '__')}_${\n this.dashboardName\n }`;\n }\n\n if (config.pageTitle) {\n this.pageTitle = config.pageTitle;\n }\n }\n}\n","<c8y-title>\n {{ pageTitle | translate }}\n</c8y-title>\n\n<c8y-context-dashboard\n [name]=\"dashboardName\"\n [defaultWidgets]=\"defaultWidgets\"\n [canDelete]=\"false\"\n [hideAvailability]=\"true\"\n></c8y-context-dashboard>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { hookNavigator, gettext, hookRoute, ViewContext } from '@c8y/ngx-components';\nimport { CockpitDashboardComponent } from './cockpit-dashboard.component';\nimport { CockpitDashboardConfig, COCKPIT_HOME_DASHBOARD_CONFIG } from './cockpit-dashboard.model';\nimport { CanDeactivateComponent } from '@c8y/ngx-components/context-dashboard';\n\n@NgModule({\n providers: [\n hookNavigator({\n label: gettext('Home'),\n icon: 'home',\n priority: 10000,\n path: '/home',\n routerLinkExact: false\n }),\n hookRoute({\n path: 'home',\n component: CockpitDashboardComponent,\n canDeactivate: [(component: CanDeactivateComponent) => component.canDeactivate()],\n rootContext: ViewContext.Dashboard\n })\n ]\n})\nexport class CockpitHomeDashboardModule {}\n\n@NgModule({\n imports: [CockpitHomeDashboardModule]\n})\nexport class CockpitDashboardModule {\n static config(config: CockpitDashboardConfig = {}): ModuleWithProviders<CockpitDashboardModule> {\n return {\n ngModule: CockpitDashboardModule,\n providers: [\n {\n provide: COCKPIT_HOME_DASHBOARD_CONFIG,\n useValue: config\n }\n ]\n };\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-context-dashboard-cockpit-home-dashboard.mjs","sources":["../../context-dashboard/cockpit-home-dashboard/cockpit-dashboard.model.ts","../../context-dashboard/cockpit-home-dashboard/cockpit-dashboard.component.ts","../../context-dashboard/cockpit-home-dashboard/cockpit-dashboard.component.html","../../context-dashboard/cockpit-home-dashboard/cockpit-dashboard.module.ts","../../context-dashboard/cockpit-home-dashboard/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { gettext, Widget } from '@c8y/ngx-components';\n\n/**\n * A hook to define the default widgets of the home dashboard in the cockpit app.\n */\nexport const COCKPIT_HOME_DASHBOARD_CONFIG = new InjectionToken('CockpitHomeDashboardConfig');\n\nexport interface CockpitDashboardConfig {\n /**\n * Allows to have customized dashboard context name in case the CockpitDashboardModule is used in different apps and should have individual home dashboards per app\n */\n dashboardName?: string;\n /**\n * Allows to define the default widgets shown on the Cockpit Homepage\n */\n defaultWidgets?: Widget[];\n /**\n * Allows to have a different page title than the default 'Home'\n */\n pageTitle?: string;\n /**\n * Allows to have individual home dashboards per user\n */\n userSpecific?: boolean;\n}\n\n/**\n * An array of widgets that is per default placed on the home dashboard of the cockpit app.\n */\nexport const DEFAULT_COCKPIT_HOME_WIDGETS = [\n {\n name: 'cockpit.welcome.widget',\n title: gettext('Welcome to Cockpit'),\n _x: 0,\n _y: 0,\n _height: 5,\n _width: 24,\n classes: { 'panel-title-hidden': true }\n },\n {\n name: 'Asset Alarms',\n title: gettext('Active, critical alarms'),\n _x: 0,\n _y: 5,\n _height: 4,\n _width: 12\n },\n {\n name: 'Recent Alarms',\n title: gettext('Recent alarms'),\n _x: 0,\n _y: 9,\n _height: 4,\n _width: 12\n },\n {\n name: 'Map',\n title: gettext('Map'),\n _x: 12,\n _y: 5,\n _height: 8,\n _width: 12\n }\n] as Partial<Widget>[] as Widget[];\n","import { Component, Inject, Optional, ViewChild } from '@angular/core';\nimport { AppStateService, CoreModule, gettext } from '@c8y/ngx-components';\nimport {\n CockpitDashboardConfig,\n COCKPIT_HOME_DASHBOARD_CONFIG,\n DEFAULT_COCKPIT_HOME_WIDGETS\n} from './cockpit-dashboard.model';\nimport {\n CanDeactivateComponent,\n ContextDashboardComponent,\n ContextDashboardModule\n} from '@c8y/ngx-components/context-dashboard';\n\n@Component({\n selector: 'c8y-cockpit-dashboard',\n templateUrl: './cockpit-dashboard.component.html',\n standalone: true,\n imports: [CoreModule, ContextDashboardModule]\n})\nexport class CockpitDashboardComponent implements CanDeactivateComponent {\n defaultWidgets = DEFAULT_COCKPIT_HOME_WIDGETS;\n dashboardName = 'home-cockpit1';\n pageTitle: string = gettext('Home');\n @ViewChild(ContextDashboardComponent, { static: true })\n contextDashboard: ContextDashboardComponent;\n\n constructor(\n private appState: AppStateService,\n @Optional()\n @Inject(COCKPIT_HOME_DASHBOARD_CONFIG)\n private homeDashboardConfig: CockpitDashboardConfig\n ) {\n const config = {\n ...this.homeDashboardConfig,\n dashboardName: appState.currentApplication.value?.config?.homeDashboardName,\n userSpecific: appState.currentApplication.value?.config?.userSpecificHomeDashboard\n };\n this.applyDashboardConfig(config);\n }\n\n canDeactivate(): Promise<boolean> {\n return this.contextDashboard.canDeactivate();\n }\n\n private applyDashboardConfig(config: CockpitDashboardConfig) {\n if (!config) {\n return;\n }\n\n if (config.dashboardName) {\n this.dashboardName = config.dashboardName;\n }\n\n if (config.defaultWidgets) {\n this.defaultWidgets = config.defaultWidgets;\n }\n\n if (config.userSpecific && this.appState.currentUser.value) {\n this.dashboardName = `${this.appState.currentUser.value.userName.replace(/\\./g, '__')}_${\n this.dashboardName\n }`;\n }\n\n if (config.pageTitle) {\n this.pageTitle = config.pageTitle;\n }\n }\n}\n","<c8y-title>\n {{ pageTitle | translate }}\n</c8y-title>\n\n<c8y-context-dashboard\n [name]=\"dashboardName\"\n [defaultWidgets]=\"defaultWidgets\"\n [canDelete]=\"false\"\n [hideAvailability]=\"true\"\n></c8y-context-dashboard>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { hookNavigator, gettext, hookRoute, ViewContext } from '@c8y/ngx-components';\nimport { CockpitDashboardComponent } from './cockpit-dashboard.component';\nimport { CockpitDashboardConfig, COCKPIT_HOME_DASHBOARD_CONFIG } from './cockpit-dashboard.model';\nimport { CanDeactivateComponent } from '@c8y/ngx-components/context-dashboard';\n\n@NgModule({\n providers: [\n hookNavigator({\n label: gettext('Home'),\n icon: 'home',\n priority: 10000,\n path: '/home',\n routerLinkExact: false\n }),\n hookRoute({\n path: 'home',\n component: CockpitDashboardComponent,\n canDeactivate: [(component: CanDeactivateComponent) => component.canDeactivate()],\n rootContext: ViewContext.Dashboard\n })\n ]\n})\nexport class CockpitHomeDashboardModule {}\n\n@NgModule({\n imports: [CockpitHomeDashboardModule]\n})\nexport class CockpitDashboardModule {\n static config(config: CockpitDashboardConfig = {}): ModuleWithProviders<CockpitDashboardModule> {\n return {\n ngModule: CockpitDashboardModule,\n providers: [\n {\n provide: COCKPIT_HOME_DASHBOARD_CONFIG,\n useValue: config\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -48,13 +48,13 @@ class DashboardAppearanceSettingsComponent {
48
48
  this.styling.headerClass = this.contextDashboardService.getStyling(WIDGET_HEADER_CLASSES, styleName, this.styling.headerClass);
49
49
  });
50
50
  }
51
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DashboardAppearanceSettingsComponent, deps: [{ token: ContextDashboardService }, { token: DashboardDetailService }], target: i0.ɵɵFactoryTarget.Component }); }
52
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: DashboardAppearanceSettingsComponent, isStandalone: true, selector: "c8y-dashboard-appearance-settings", ngImport: i0, template: "<div [formGroup]=\"appearanceSettingsForm\">\n <c8y-appearance-settings\n [themeClass]=\"styling.themeClass\"\n [headerClass]=\"styling.headerClass\"\n (themeClassChange)=\"changeThemeClass($event)\"\n (headerClassChange)=\"changeHeaderClass($event)\"\n [dashboardSettings]=\"true\"\n [columns]=\"3\"\n >\n <div class=\"col-md-4\">\n <fieldset class=\"c8y-fieldset c8y-fieldset--lg\">\n <legend translate>Misc</legend>\n <c8y-form-group>\n <label for=\"margin\">{{ 'Widget margin' | translate }}</label>\n <div class=\"input-group\">\n <input\n class=\"form-control\"\n id=\"margin\"\n placeholder=\"{{ DEFAULT_DASHBOARD_MARGIN }}\"\n name=\"margin\"\n type=\"number\"\n formControlName=\"widgetMargin\"\n />\n <span class=\"input-group-addon\">px</span>\n </div>\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Widget titles</label>\n <label\n class=\"c8y-checkbox\"\n title=\"{{ 'Translate if possible' | translate }}\"\n >\n <input\n name=\"translateWidgetTitle\"\n type=\"checkbox\"\n formControlName=\"translateWidgetTitle\"\n />\n <span></span>\n <span>{{ 'Translate if possible' | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n </div>\n </c8y-appearance-settings>\n</div>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: CoreModule }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: AppearanceSettingsComponent, selector: "c8y-appearance-settings", inputs: ["themeClass", "headerClass", "defaultThemeClass", "defaultHeaderClass", "dashboardSettings", "possibleStylingTheme", "possibleStylingHeader", "columns"], outputs: ["themeClassChange", "headerClassChange", "onChange"] }] }); }
51
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DashboardAppearanceSettingsComponent, deps: [{ token: ContextDashboardService }, { token: DashboardDetailService }], target: i0.ɵɵFactoryTarget.Component }); }
52
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: DashboardAppearanceSettingsComponent, isStandalone: true, selector: "c8y-dashboard-appearance-settings", ngImport: i0, template: "<div [formGroup]=\"appearanceSettingsForm\">\n <c8y-appearance-settings\n [themeClass]=\"styling.themeClass\"\n [headerClass]=\"styling.headerClass\"\n (themeClassChange)=\"changeThemeClass($event)\"\n (headerClassChange)=\"changeHeaderClass($event)\"\n [dashboardSettings]=\"true\"\n [columns]=\"3\"\n >\n <div class=\"col-md-4\">\n <fieldset class=\"c8y-fieldset c8y-fieldset--lg\">\n <legend translate>Misc</legend>\n <c8y-form-group>\n <label for=\"margin\">{{ 'Widget margin' | translate }}</label>\n <div class=\"input-group\">\n <input\n class=\"form-control\"\n id=\"margin\"\n placeholder=\"{{ DEFAULT_DASHBOARD_MARGIN }}\"\n name=\"margin\"\n type=\"number\"\n formControlName=\"widgetMargin\"\n />\n <span class=\"input-group-addon\">px</span>\n </div>\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Widget titles</label>\n <label\n class=\"c8y-checkbox\"\n title=\"{{ 'Translate if possible' | translate }}\"\n >\n <input\n name=\"translateWidgetTitle\"\n type=\"checkbox\"\n formControlName=\"translateWidgetTitle\"\n />\n <span></span>\n <span>{{ 'Translate if possible' | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n </div>\n </c8y-appearance-settings>\n</div>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: CoreModule }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: AppearanceSettingsComponent, selector: "c8y-appearance-settings", inputs: ["themeClass", "headerClass", "defaultThemeClass", "defaultHeaderClass", "dashboardSettings", "possibleStylingTheme", "possibleStylingHeader", "columns"], outputs: ["themeClassChange", "headerClassChange", "onChange"] }] }); }
53
53
  }
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DashboardAppearanceSettingsComponent, decorators: [{
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DashboardAppearanceSettingsComponent, decorators: [{
55
55
  type: Component,
56
56
  args: [{ selector: 'c8y-dashboard-appearance-settings', standalone: true, imports: [ReactiveFormsModule, CoreModule, AppearanceSettingsComponent, C8yTranslatePipe], template: "<div [formGroup]=\"appearanceSettingsForm\">\n <c8y-appearance-settings\n [themeClass]=\"styling.themeClass\"\n [headerClass]=\"styling.headerClass\"\n (themeClassChange)=\"changeThemeClass($event)\"\n (headerClassChange)=\"changeHeaderClass($event)\"\n [dashboardSettings]=\"true\"\n [columns]=\"3\"\n >\n <div class=\"col-md-4\">\n <fieldset class=\"c8y-fieldset c8y-fieldset--lg\">\n <legend translate>Misc</legend>\n <c8y-form-group>\n <label for=\"margin\">{{ 'Widget margin' | translate }}</label>\n <div class=\"input-group\">\n <input\n class=\"form-control\"\n id=\"margin\"\n placeholder=\"{{ DEFAULT_DASHBOARD_MARGIN }}\"\n name=\"margin\"\n type=\"number\"\n formControlName=\"widgetMargin\"\n />\n <span class=\"input-group-addon\">px</span>\n </div>\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Widget titles</label>\n <label\n class=\"c8y-checkbox\"\n title=\"{{ 'Translate if possible' | translate }}\"\n >\n <input\n name=\"translateWidgetTitle\"\n type=\"checkbox\"\n formControlName=\"translateWidgetTitle\"\n />\n <span></span>\n <span>{{ 'Translate if possible' | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n </div>\n </c8y-appearance-settings>\n</div>\n" }]
57
57
  }], ctorParameters: () => [{ type: ContextDashboardService }, { type: DashboardDetailService }] });
58
58
 
59
59
  export { DashboardAppearanceSettingsComponent };
60
- //# sourceMappingURL=c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-C-JLbcn5.mjs.map
60
+ //# sourceMappingURL=c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BWyhab0H.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-C-JLbcn5.mjs","sources":["../../context-dashboard/dashboard-settings/dashboard-appearance-settings.component.ts","../../context-dashboard/dashboard-settings/dashboard-appearance-settings.component.html"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport {\n ContextDashboard,\n DASHBOARD_THEME_CLASSES,\n WIDGET_HEADER_CLASSES\n} from '../context-dashboard.model';\nimport { ContextDashboardService } from '../context-dashboard.service';\nimport { DashboardDetailService } from '../dashboard-detail.service';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { C8yTranslatePipe, CoreModule } from '@c8y/ngx-components';\nimport { AppearanceSettingsComponent } from '../widget-config/appearance-settings.component';\n\n@Component({\n selector: 'c8y-dashboard-appearance-settings',\n templateUrl: './dashboard-appearance-settings.component.html',\n standalone: true,\n imports: [ReactiveFormsModule, CoreModule, AppearanceSettingsComponent, C8yTranslatePipe]\n})\nexport class DashboardAppearanceSettingsComponent implements OnInit {\n dashboard: ContextDashboard;\n appearanceSettingsForm: DashboardDetailService['appearanceSettingsForm'];\n styling = {\n themeClass: 'dashboard-theme-light',\n headerClass: 'panel-title-regular'\n };\n\n readonly DEFAULT_DASHBOARD_MARGIN = 12;\n\n constructor(\n private contextDashboardService: ContextDashboardService,\n private dashboardDetailService: DashboardDetailService\n ) {}\n\n ngOnInit() {\n this.dashboard = this.dashboardDetailService.details.dashboard;\n this.appearanceSettingsForm = this.dashboardDetailService.appearanceSettingsForm;\n if (this.dashboard) {\n this.setDashboardStyle();\n }\n }\n\n changeThemeClass(themeClass: string) {\n this.styling.themeClass = themeClass;\n this.appearanceSettingsForm.get('classes').setValue({ [this.styling.themeClass]: true });\n this.dashboardDetailService.previewChangedFn({ classes: { [this.styling.themeClass]: true } });\n this.appearanceSettingsForm.markAsDirty();\n }\n\n changeHeaderClass(headerClass: string) {\n this.styling.headerClass = headerClass;\n this.appearanceSettingsForm.get('widgetClasses').setValue({ [this.styling.headerClass]: true });\n this.dashboardDetailService.previewChangedFn({\n widgetClasses: { [this.styling.headerClass]: true }\n });\n this.appearanceSettingsForm.markAsDirty();\n }\n\n private setDashboardStyle() {\n const allClasses = {\n ...this.appearanceSettingsForm.get('classes').value,\n ...this.appearanceSettingsForm.get('widgetClasses').value\n };\n\n const styles = Object.keys(allClasses).map(c => c.split('-').pop());\n styles.forEach(styleName => {\n this.styling.themeClass = this.contextDashboardService.getStyling(\n DASHBOARD_THEME_CLASSES,\n styleName,\n this.styling.themeClass\n );\n this.styling.headerClass = this.contextDashboardService.getStyling(\n WIDGET_HEADER_CLASSES,\n styleName,\n this.styling.headerClass\n );\n });\n }\n}\n","<div [formGroup]=\"appearanceSettingsForm\">\n <c8y-appearance-settings\n [themeClass]=\"styling.themeClass\"\n [headerClass]=\"styling.headerClass\"\n (themeClassChange)=\"changeThemeClass($event)\"\n (headerClassChange)=\"changeHeaderClass($event)\"\n [dashboardSettings]=\"true\"\n [columns]=\"3\"\n >\n <div class=\"col-md-4\">\n <fieldset class=\"c8y-fieldset c8y-fieldset--lg\">\n <legend translate>Misc</legend>\n <c8y-form-group>\n <label for=\"margin\">{{ 'Widget margin' | translate }}</label>\n <div class=\"input-group\">\n <input\n class=\"form-control\"\n id=\"margin\"\n placeholder=\"{{ DEFAULT_DASHBOARD_MARGIN }}\"\n name=\"margin\"\n type=\"number\"\n formControlName=\"widgetMargin\"\n />\n <span class=\"input-group-addon\">px</span>\n </div>\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Widget titles</label>\n <label\n class=\"c8y-checkbox\"\n title=\"{{ 'Translate if possible' | translate }}\"\n >\n <input\n name=\"translateWidgetTitle\"\n type=\"checkbox\"\n formControlName=\"translateWidgetTitle\"\n />\n <span></span>\n <span>{{ 'Translate if possible' | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n </div>\n </c8y-appearance-settings>\n</div>\n"],"names":["i1.ContextDashboardService","i2.DashboardDetailService","i3"],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BWyhab0H.mjs","sources":["../../context-dashboard/dashboard-settings/dashboard-appearance-settings.component.ts","../../context-dashboard/dashboard-settings/dashboard-appearance-settings.component.html"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport {\n ContextDashboard,\n DASHBOARD_THEME_CLASSES,\n WIDGET_HEADER_CLASSES\n} from '../context-dashboard.model';\nimport { ContextDashboardService } from '../context-dashboard.service';\nimport { DashboardDetailService } from '../dashboard-detail.service';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { C8yTranslatePipe, CoreModule } from '@c8y/ngx-components';\nimport { AppearanceSettingsComponent } from '../widget-config/appearance-settings.component';\n\n@Component({\n selector: 'c8y-dashboard-appearance-settings',\n templateUrl: './dashboard-appearance-settings.component.html',\n standalone: true,\n imports: [ReactiveFormsModule, CoreModule, AppearanceSettingsComponent, C8yTranslatePipe]\n})\nexport class DashboardAppearanceSettingsComponent implements OnInit {\n dashboard: ContextDashboard;\n appearanceSettingsForm: DashboardDetailService['appearanceSettingsForm'];\n styling = {\n themeClass: 'dashboard-theme-light',\n headerClass: 'panel-title-regular'\n };\n\n readonly DEFAULT_DASHBOARD_MARGIN = 12;\n\n constructor(\n private contextDashboardService: ContextDashboardService,\n private dashboardDetailService: DashboardDetailService\n ) {}\n\n ngOnInit() {\n this.dashboard = this.dashboardDetailService.details.dashboard;\n this.appearanceSettingsForm = this.dashboardDetailService.appearanceSettingsForm;\n if (this.dashboard) {\n this.setDashboardStyle();\n }\n }\n\n changeThemeClass(themeClass: string) {\n this.styling.themeClass = themeClass;\n this.appearanceSettingsForm.get('classes').setValue({ [this.styling.themeClass]: true });\n this.dashboardDetailService.previewChangedFn({ classes: { [this.styling.themeClass]: true } });\n this.appearanceSettingsForm.markAsDirty();\n }\n\n changeHeaderClass(headerClass: string) {\n this.styling.headerClass = headerClass;\n this.appearanceSettingsForm.get('widgetClasses').setValue({ [this.styling.headerClass]: true });\n this.dashboardDetailService.previewChangedFn({\n widgetClasses: { [this.styling.headerClass]: true }\n });\n this.appearanceSettingsForm.markAsDirty();\n }\n\n private setDashboardStyle() {\n const allClasses = {\n ...this.appearanceSettingsForm.get('classes').value,\n ...this.appearanceSettingsForm.get('widgetClasses').value\n };\n\n const styles = Object.keys(allClasses).map(c => c.split('-').pop());\n styles.forEach(styleName => {\n this.styling.themeClass = this.contextDashboardService.getStyling(\n DASHBOARD_THEME_CLASSES,\n styleName,\n this.styling.themeClass\n );\n this.styling.headerClass = this.contextDashboardService.getStyling(\n WIDGET_HEADER_CLASSES,\n styleName,\n this.styling.headerClass\n );\n });\n }\n}\n","<div [formGroup]=\"appearanceSettingsForm\">\n <c8y-appearance-settings\n [themeClass]=\"styling.themeClass\"\n [headerClass]=\"styling.headerClass\"\n (themeClassChange)=\"changeThemeClass($event)\"\n (headerClassChange)=\"changeHeaderClass($event)\"\n [dashboardSettings]=\"true\"\n [columns]=\"3\"\n >\n <div class=\"col-md-4\">\n <fieldset class=\"c8y-fieldset c8y-fieldset--lg\">\n <legend translate>Misc</legend>\n <c8y-form-group>\n <label for=\"margin\">{{ 'Widget margin' | translate }}</label>\n <div class=\"input-group\">\n <input\n class=\"form-control\"\n id=\"margin\"\n placeholder=\"{{ DEFAULT_DASHBOARD_MARGIN }}\"\n name=\"margin\"\n type=\"number\"\n formControlName=\"widgetMargin\"\n />\n <span class=\"input-group-addon\">px</span>\n </div>\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Widget titles</label>\n <label\n class=\"c8y-checkbox\"\n title=\"{{ 'Translate if possible' | translate }}\"\n >\n <input\n name=\"translateWidgetTitle\"\n type=\"checkbox\"\n formControlName=\"translateWidgetTitle\"\n />\n <span></span>\n <span>{{ 'Translate if possible' | translate }}</span>\n </label>\n </c8y-form-group>\n </fieldset>\n </div>\n </c8y-appearance-settings>\n</div>\n"],"names":["i1.ContextDashboardService","i2.DashboardDetailService","i3"],"mappings":"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"}
@@ -91,10 +91,10 @@ class DashboardAvailabilityComponent {
91
91
  .map(globalRoleId => this.globalRolesItems.find(gR => gR.id === globalRoleId))
92
92
  .filter(Boolean);
93
93
  }
94
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DashboardAvailabilityComponent, deps: [{ token: i1.UserGroupService }, { token: i2.GainsightService }, { token: i2.Permissions }], target: i0.ɵɵFactoryTarget.Component }); }
95
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: DashboardAvailabilityComponent, isStandalone: true, selector: "c8y-dashboard-availability", inputs: { globalRolesIds: "globalRolesIds" }, outputs: { globalRolesIdsChange: "globalRolesIdsChange" }, ngImport: i0, template: "<fieldset class=\"c8y-fieldset c8y-fieldset--lg\">\n <legend>{{ 'Availability`of dashboard based on permissions`' | translate }}</legend>\n <c8y-form-group>\n <label for=\"availability\">\n <span\n class=\"m-r-4\"\n id=\"availability\"\n >\n {{ 'Global roles' | translate }}\n </span>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{\n 'Select the global roles for which the dashboard will be available' | translate\n }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </label>\n <c8y-select-legacy\n *ngIf=\"!selectHidden\"\n [items]=\"globalRolesItems\"\n [selected]=\"globalRolesItemsSelected\"\n (onChange)=\"onSelected($event)\"\n ></c8y-select-legacy>\n <p\n class=\"form-control-static\"\n *ngIf=\"selectHidden\"\n >\n {{ \"You don't have permission to change global roles.\" | translate }}\n </p>\n </c8y-form-group>\n</fieldset>\n", dependencies: [{ kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: PopoverModule }, { kind: "directive", type: i2$1.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i2.SelectLegacyComponent, selector: "c8y-select-legacy", inputs: ["placeholder", "selectedLabel", "applyLabel", "items", "selected", "updateItems", "disableApplyOnNoSelection", "addDropdownContainerToBody"], outputs: ["onChange"] }] }); }
94
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DashboardAvailabilityComponent, deps: [{ token: i1.UserGroupService }, { token: i2.GainsightService }, { token: i2.Permissions }], target: i0.ɵɵFactoryTarget.Component }); }
95
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: DashboardAvailabilityComponent, isStandalone: true, selector: "c8y-dashboard-availability", inputs: { globalRolesIds: "globalRolesIds" }, outputs: { globalRolesIdsChange: "globalRolesIdsChange" }, ngImport: i0, template: "<fieldset class=\"c8y-fieldset c8y-fieldset--lg\">\n <legend>{{ 'Availability`of dashboard based on permissions`' | translate }}</legend>\n <c8y-form-group>\n <label for=\"availability\">\n <span\n class=\"m-r-4\"\n id=\"availability\"\n >\n {{ 'Global roles' | translate }}\n </span>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{\n 'Select the global roles for which the dashboard will be available' | translate\n }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </label>\n <c8y-select-legacy\n *ngIf=\"!selectHidden\"\n [items]=\"globalRolesItems\"\n [selected]=\"globalRolesItemsSelected\"\n (onChange)=\"onSelected($event)\"\n ></c8y-select-legacy>\n <p\n class=\"form-control-static\"\n *ngIf=\"selectHidden\"\n >\n {{ \"You don't have permission to change global roles.\" | translate }}\n </p>\n </c8y-form-group>\n</fieldset>\n", dependencies: [{ kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: PopoverModule }, { kind: "directive", type: i2$1.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i2.SelectLegacyComponent, selector: "c8y-select-legacy", inputs: ["placeholder", "selectedLabel", "applyLabel", "items", "selected", "updateItems", "disableApplyOnNoSelection", "addDropdownContainerToBody"], outputs: ["onChange"] }] }); }
96
96
  }
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DashboardAvailabilityComponent, decorators: [{
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DashboardAvailabilityComponent, decorators: [{
98
98
  type: Component,
99
99
  args: [{ selector: 'c8y-dashboard-availability', standalone: true, imports: [C8yTranslatePipe, ReactiveFormsModule, PopoverModule, FormsModule, NgIf, SelectModule], template: "<fieldset class=\"c8y-fieldset c8y-fieldset--lg\">\n <legend>{{ 'Availability`of dashboard based on permissions`' | translate }}</legend>\n <c8y-form-group>\n <label for=\"availability\">\n <span\n class=\"m-r-4\"\n id=\"availability\"\n >\n {{ 'Global roles' | translate }}\n </span>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{\n 'Select the global roles for which the dashboard will be available' | translate\n }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </label>\n <c8y-select-legacy\n *ngIf=\"!selectHidden\"\n [items]=\"globalRolesItems\"\n [selected]=\"globalRolesItemsSelected\"\n (onChange)=\"onSelected($event)\"\n ></c8y-select-legacy>\n <p\n class=\"form-control-static\"\n *ngIf=\"selectHidden\"\n >\n {{ \"You don't have permission to change global roles.\" | translate }}\n </p>\n </c8y-form-group>\n</fieldset>\n" }]
100
100
  }], ctorParameters: () => [{ type: i1.UserGroupService }, { type: i2.GainsightService }, { type: i2.Permissions }], propDecorators: { globalRolesIds: [{
@@ -201,8 +201,8 @@ class TypedDashboardSettingsComponent {
201
201
  });
202
202
  this.deviceTypeInstancesCount = count.data;
203
203
  }
204
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TypedDashboardSettingsComponent, deps: [{ token: i1.InventoryService }, { token: i2.InterAppService }, { token: i1$1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
205
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: TypedDashboardSettingsComponent, isStandalone: true, selector: "c8y-typed-dashboard-settings", inputs: { deviceTypeValue: "deviceTypeValue", displayDeviceTypeValue: "displayDeviceTypeValue", formInvalid: "formInvalid", mo: "mo", isDevice: "isDevice", allowTypeDashboard: "allowTypeDashboard" }, outputs: { onDuplicateWithoutType: "onDuplicateWithoutType" }, providers: [
204
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TypedDashboardSettingsComponent, deps: [{ token: i1.InventoryService }, { token: i2.InterAppService }, { token: i1$1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
205
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TypedDashboardSettingsComponent, isStandalone: true, selector: "c8y-typed-dashboard-settings", inputs: { deviceTypeValue: "deviceTypeValue", displayDeviceTypeValue: "displayDeviceTypeValue", formInvalid: "formInvalid", mo: "mo", isDevice: "isDevice", allowTypeDashboard: "allowTypeDashboard" }, outputs: { onDuplicateWithoutType: "onDuplicateWithoutType" }, providers: [
206
206
  {
207
207
  provide: NG_VALUE_ACCESSOR,
208
208
  useExisting: forwardRef(() => TypedDashboardSettingsComponent),
@@ -210,7 +210,7 @@ class TypedDashboardSettingsComponent {
210
210
  }
211
211
  ], ngImport: i0, template: "<fieldset class=\"c8y-fieldset c8y-fieldset--lg\">\n <legend>{{ 'Dashboard template' | translate }}</legend>\n <div class=\"d-flex p-b-16 gap-16\">\n <label class=\"c8y-switch flex-no-shrink\">\n <input\n type=\"checkbox\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n (click)=\"toggle()\"\n />\n <span></span>\n <span>{{ typedDashboardStatus | translate }}</span>\n </label>\n <div class=\"flex-grow d-flex d-col\">\n <div\n class=\"flex-grow\"\n [innerHtml]=\"infoText | translate: { displayDeviceTypeValue: displayDeviceTypeValue }\"\n ></div>\n <button\n class=\"btn-link p-0 m-r-auto\"\n type=\"button\"\n *ngIf=\"allowTypeDashboard === 'allow_if_type_filled' && showSourceNavigationLink$ | async\"\n (click)=\"goToDeviceView()\"\n >\n {{\n deviceManagementLinkTitle\n | translate\n : {\n deviceManagementAppName:\n userDeviceManagementApp$ | async | humanizeAppName | async\n }\n }}\n <i c8yIcon=\"external-link\"></i>\n </button>\n </div>\n </div>\n\n <c8y-type-dashboard-info\n *ngIf=\"allowTypeDashboard === 'allow'\"\n [context]=\"mo\"\n [deviceTypeValue]=\"deviceTypeValue\"\n [displayDeviceTypeValue]=\"displayDeviceTypeValue\"\n ></c8y-type-dashboard-info>\n\n <div\n class=\"p-t-8 p-b-16\"\n *ngIf=\"mo?.c8y_Dashboard && value\"\n >\n <button\n class=\"btn btn-default btn-sm\"\n type=\"button\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.DASHBOARD_TEMPLATE\"\n [actionData]=\"{\n component: PRODUCT_EXPERIENCE.DASHBOARD.COMPONENTS.TYPED_DASHBOARD_SETTINGS,\n action: PRODUCT_EXPERIENCE.DASHBOARD.ACTIONS.DUPLICATE_AS_REGULAR_DASHBOARD\n }\"\n (click)=\"onDuplicateWithoutType.emit()\"\n [disabled]=\"formInvalid\"\n >\n {{ 'Duplicate as regular dashboard' | translate }}\n </button>\n </div>\n</fieldset>\n", dependencies: [{ kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.HumanizeAppNamePipe, name: "humanizeAppName" }, { kind: "directive", type: i2.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "component", type: TypeDashboardInfoComponent, selector: "c8y-type-dashboard-info", inputs: ["deviceTypeValue", "displayDeviceTypeValue", "context", "asyncRenderSuccess", "asyncRenderFail"] }] }); }
212
212
  }
213
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TypedDashboardSettingsComponent, decorators: [{
213
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TypedDashboardSettingsComponent, decorators: [{
214
214
  type: Component,
215
215
  args: [{ selector: 'c8y-typed-dashboard-settings', providers: [
216
216
  {
@@ -256,10 +256,10 @@ class DashboardGeneralSettingsComponent {
256
256
  async duplicateWithoutType() {
257
257
  await this.dashboardDetailService.duplicateWithoutTypeFn();
258
258
  }
259
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DashboardGeneralSettingsComponent, deps: [{ token: i2.NavigatorService }, { token: DashboardDetailService }], target: i0.ɵɵFactoryTarget.Component }); }
260
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: DashboardGeneralSettingsComponent, isStandalone: true, selector: "c8y-dashboard-general-settings", ngImport: i0, template: "<div\n class=\"row\"\n [formGroup]=\"generalSettingsForm\"\n>\n <div\n class=\"col-xs-12 p-b-24\"\n [ngClass]=\"{ 'col-md-6': !isReport, 'col-md-8': isReport }\"\n *ngIf=\"!isNamedDashboard || isReport\"\n >\n <fieldset class=\"c8y-fieldset c8y-fieldset--lg m-b-24\">\n <legend>{{ 'Navigation' | translate }}</legend>\n <div class=\"d-flex gap-16\">\n <c8y-form-group>\n <label>{{ 'Icon' | translate }}</label>\n <c8y-icon-selector-wrapper\n [iconSize]=\"24\"\n name=\"icon\"\n formControlName=\"icon\"\n ></c8y-icon-selector-wrapper>\n </c8y-form-group>\n <c8y-form-group class=\"flex-grow\">\n <label for=\"menuLabel\">\n {{ 'Menu label' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{\n 'Menu label to display in submenu when dashboard is attached' | translate\n }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </label>\n <input\n class=\"form-control\"\n id=\"menuLabel\"\n placeholder=\"{{ namePlaceholder | translate }}\"\n name=\"name\"\n type=\"text\"\n formControlName=\"name\"\n />\n </c8y-form-group>\n </div>\n\n <c8y-form-group>\n <label for=\"description\">{{ 'Description ' | translate }}</label>\n <textarea\n class=\"form-control\"\n id=\"description\"\n name=\"description\"\n c8y-textarea-autoresize\n formControlName=\"description\"\n ></textarea>\n </c8y-form-group>\n\n <div class=\"row\">\n <div\n class=\"col-lg-7 col-xs-12\"\n *ngIf=\"!isReport\"\n >\n <c8y-form-group>\n <label for=\"position\">\n {{ 'Position in tabs' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ positionInTabsExampleLabel | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </label>\n <input\n class=\"form-control\"\n id=\"positionNav\"\n placeholder=\"{{ priorityExampleLabel | translate: { example: '500' } }}\"\n name=\"priority\"\n for=\"position\"\n type=\"number\"\n formControlName=\"priority\"\n />\n </c8y-form-group>\n </div>\n\n <div\n class=\"col-xs-6\"\n *ngIf=\"isReport\"\n >\n <label translate>Navigator menu item</label>\n <c8y-form-group>\n <label\n class=\"c8y-switch\"\n title=\"{{ 'Show in navigator' | translate }}\"\n >\n <input\n type=\"checkbox\"\n formControlName=\"c8y_IsNavigatorNode\"\n />\n <span></span>\n <span>{{ 'Show in navigator' | translate }}</span>\n </label>\n </c8y-form-group>\n </div>\n\n <div\n class=\"col-xs-6\"\n *ngIf=\"isReport && generalSettingsForm.value.c8y_IsNavigatorNode\"\n >\n <c8y-form-group>\n <label\n class=\"d-block\"\n for=\"position\"\n >\n {{ 'Position in navigator' | translate }}\n <ng-template #positionInNavPop>\n <span>\n {{ positionInTabsExampleLabel | translate }}&nbsp;\n {{ 'Existing nodes:' | translate }}\n </span>\n <ul class=\"list-unstyled m-t-16 m-b-0\">\n <li\n class=\"p-t-4 p-b-4\"\n title=\"{{ node.label | translate }}\"\n *ngFor=\"let node of navigatorNodes$ | async\"\n >\n <div class=\"icon-flex fit-w\">\n <i [c8yIcon]=\"node.icon\"></i>\n <span class=\"text-truncate m-l-4 m-r-16 flex-grow\">\n {{ node.label | translate }}\n </span>\n <span class=\"text-medium flex-no-shrink\">{{ node.priority }}</span>\n </div>\n </li>\n </ul>\n </ng-template>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"positionInNavPop\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </label>\n <input\n class=\"form-control\"\n placeholder=\"{{ priorityExampleLabel | translate: { example: '500' } }}\"\n name=\"priority\"\n for=\"position\"\n type=\"number\"\n formControlName=\"priority\"\n />\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n <c8y-dashboard-availability\n *ngIf=\"\n !!isReport === false &&\n allowTypeDashboard &&\n deviceTypeValue &&\n generalSettingsForm.get('deviceType') &&\n !hideAvailability\n \"\n [(globalRolesIds)]=\"globalRolesIds\"\n (globalRolesIdsChange)=\"changeGlobalRoleIds()\"\n ></c8y-dashboard-availability>\n </div>\n\n <div class=\"col-xs-12 col-md-6 p-b-24\">\n <c8y-typed-dashboard-settings\n *ngIf=\"allowTypeDashboard !== 'disallow'\"\n formControlName=\"deviceType\"\n [deviceTypeValue]=\"deviceTypeValue\"\n [displayDeviceTypeValue]=\"displayDeviceTypeValue\"\n [formInvalid]=\"generalSettingsForm.invalid\"\n [mo]=\"mo\"\n [isDevice]=\"isDevice\"\n [allowTypeDashboard]=\"allowTypeDashboard\"\n (onDuplicateWithoutType)=\"duplicateWithoutType()\"\n ></c8y-typed-dashboard-settings>\n <c8y-dashboard-availability\n *ngIf=\"\n !!isReport === false &&\n (!allowTypeDashboard || !deviceTypeValue || !generalSettingsForm.get('deviceType')) &&\n !hideAvailability\n \"\n [(globalRolesIds)]=\"globalRolesIds\"\n (globalRolesIdsChange)=\"changeGlobalRoleIds()\"\n ></c8y-dashboard-availability>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "directive", type: i2.TextareaAutoresizeDirective, selector: "[c8y-textarea-autoresize]" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: IconSelectorModule }, { kind: "component", type: i5$1.IconSelectorWrapperComponent, selector: "c8y-icon-selector-wrapper", inputs: ["canRemoveIcon", "selectedIcon", "iconSize"], outputs: ["onSelect"] }, { kind: "ngmodule", type: PopoverModule }, { kind: "directive", type: i2$1.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "component", type: DashboardAvailabilityComponent, selector: "c8y-dashboard-availability", inputs: ["globalRolesIds"], outputs: ["globalRolesIdsChange"] }, { kind: "component", type: TypedDashboardSettingsComponent, selector: "c8y-typed-dashboard-settings", inputs: ["deviceTypeValue", "displayDeviceTypeValue", "formInvalid", "mo", "isDevice", "allowTypeDashboard"], outputs: ["onDuplicateWithoutType"] }] }); }
259
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DashboardGeneralSettingsComponent, deps: [{ token: i2.NavigatorService }, { token: DashboardDetailService }], target: i0.ɵɵFactoryTarget.Component }); }
260
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: DashboardGeneralSettingsComponent, isStandalone: true, selector: "c8y-dashboard-general-settings", ngImport: i0, template: "<div\n class=\"row\"\n [formGroup]=\"generalSettingsForm\"\n>\n <div\n class=\"col-xs-12 p-b-24\"\n [ngClass]=\"{ 'col-md-6': !isReport, 'col-md-8': isReport }\"\n *ngIf=\"!isNamedDashboard || isReport\"\n >\n <fieldset class=\"c8y-fieldset c8y-fieldset--lg m-b-24\">\n <legend>{{ 'Navigation' | translate }}</legend>\n <div class=\"d-flex gap-16\">\n <c8y-form-group>\n <label>{{ 'Icon' | translate }}</label>\n <c8y-icon-selector-wrapper\n [iconSize]=\"24\"\n name=\"icon\"\n formControlName=\"icon\"\n ></c8y-icon-selector-wrapper>\n </c8y-form-group>\n <c8y-form-group class=\"flex-grow\">\n <label for=\"menuLabel\">\n {{ 'Menu label' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{\n 'Menu label to display in submenu when dashboard is attached' | translate\n }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </label>\n <input\n class=\"form-control\"\n id=\"menuLabel\"\n placeholder=\"{{ namePlaceholder | translate }}\"\n name=\"name\"\n type=\"text\"\n formControlName=\"name\"\n />\n </c8y-form-group>\n </div>\n\n <c8y-form-group>\n <label for=\"description\">{{ 'Description ' | translate }}</label>\n <textarea\n class=\"form-control\"\n id=\"description\"\n name=\"description\"\n c8y-textarea-autoresize\n formControlName=\"description\"\n ></textarea>\n </c8y-form-group>\n\n <div class=\"row\">\n <div\n class=\"col-lg-7 col-xs-12\"\n *ngIf=\"!isReport\"\n >\n <c8y-form-group>\n <label for=\"position\">\n {{ 'Position in tabs' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ positionInTabsExampleLabel | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </label>\n <input\n class=\"form-control\"\n id=\"positionNav\"\n placeholder=\"{{ priorityExampleLabel | translate: { example: '500' } }}\"\n name=\"priority\"\n for=\"position\"\n type=\"number\"\n formControlName=\"priority\"\n />\n </c8y-form-group>\n </div>\n\n <div\n class=\"col-xs-6\"\n *ngIf=\"isReport\"\n >\n <label translate>Navigator menu item</label>\n <c8y-form-group>\n <label\n class=\"c8y-switch\"\n title=\"{{ 'Show in navigator' | translate }}\"\n >\n <input\n type=\"checkbox\"\n formControlName=\"c8y_IsNavigatorNode\"\n />\n <span></span>\n <span>{{ 'Show in navigator' | translate }}</span>\n </label>\n </c8y-form-group>\n </div>\n\n <div\n class=\"col-xs-6\"\n *ngIf=\"isReport && generalSettingsForm.value.c8y_IsNavigatorNode\"\n >\n <c8y-form-group>\n <label\n class=\"d-block\"\n for=\"position\"\n >\n {{ 'Position in navigator' | translate }}\n <ng-template #positionInNavPop>\n <span>\n {{ positionInTabsExampleLabel | translate }}&nbsp;\n {{ 'Existing nodes:' | translate }}\n </span>\n <ul class=\"list-unstyled m-t-16 m-b-0\">\n <li\n class=\"p-t-4 p-b-4\"\n title=\"{{ node.label | translate }}\"\n *ngFor=\"let node of navigatorNodes$ | async\"\n >\n <div class=\"icon-flex fit-w\">\n <i [c8yIcon]=\"node.icon\"></i>\n <span class=\"text-truncate m-l-4 m-r-16 flex-grow\">\n {{ node.label | translate }}\n </span>\n <span class=\"text-medium flex-no-shrink\">{{ node.priority }}</span>\n </div>\n </li>\n </ul>\n </ng-template>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"positionInNavPop\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </label>\n <input\n class=\"form-control\"\n placeholder=\"{{ priorityExampleLabel | translate: { example: '500' } }}\"\n name=\"priority\"\n for=\"position\"\n type=\"number\"\n formControlName=\"priority\"\n />\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n <c8y-dashboard-availability\n *ngIf=\"\n !!isReport === false &&\n allowTypeDashboard &&\n deviceTypeValue &&\n generalSettingsForm.get('deviceType') &&\n !hideAvailability\n \"\n [(globalRolesIds)]=\"globalRolesIds\"\n (globalRolesIdsChange)=\"changeGlobalRoleIds()\"\n ></c8y-dashboard-availability>\n </div>\n\n <div class=\"col-xs-12 col-md-6 p-b-24\">\n <c8y-typed-dashboard-settings\n *ngIf=\"allowTypeDashboard !== 'disallow'\"\n formControlName=\"deviceType\"\n [deviceTypeValue]=\"deviceTypeValue\"\n [displayDeviceTypeValue]=\"displayDeviceTypeValue\"\n [formInvalid]=\"generalSettingsForm.invalid\"\n [mo]=\"mo\"\n [isDevice]=\"isDevice\"\n [allowTypeDashboard]=\"allowTypeDashboard\"\n (onDuplicateWithoutType)=\"duplicateWithoutType()\"\n ></c8y-typed-dashboard-settings>\n <c8y-dashboard-availability\n *ngIf=\"\n !!isReport === false &&\n (!allowTypeDashboard || !deviceTypeValue || !generalSettingsForm.get('deviceType')) &&\n !hideAvailability\n \"\n [(globalRolesIds)]=\"globalRolesIds\"\n (globalRolesIdsChange)=\"changeGlobalRoleIds()\"\n ></c8y-dashboard-availability>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "directive", type: i2.TextareaAutoresizeDirective, selector: "[c8y-textarea-autoresize]" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: IconSelectorModule }, { kind: "component", type: i5$1.IconSelectorWrapperComponent, selector: "c8y-icon-selector-wrapper", inputs: ["canRemoveIcon", "selectedIcon", "iconSize"], outputs: ["onSelect"] }, { kind: "ngmodule", type: PopoverModule }, { kind: "directive", type: i2$1.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "component", type: DashboardAvailabilityComponent, selector: "c8y-dashboard-availability", inputs: ["globalRolesIds"], outputs: ["globalRolesIdsChange"] }, { kind: "component", type: TypedDashboardSettingsComponent, selector: "c8y-typed-dashboard-settings", inputs: ["deviceTypeValue", "displayDeviceTypeValue", "formInvalid", "mo", "isDevice", "allowTypeDashboard"], outputs: ["onDuplicateWithoutType"] }] }); }
261
261
  }
262
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DashboardGeneralSettingsComponent, decorators: [{
262
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DashboardGeneralSettingsComponent, decorators: [{
263
263
  type: Component,
264
264
  args: [{ selector: 'c8y-dashboard-general-settings', standalone: true, imports: [
265
265
  CoreModule,
@@ -272,4 +272,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
272
272
  }], ctorParameters: () => [{ type: i2.NavigatorService }, { type: DashboardDetailService }] });
273
273
 
274
274
  export { DashboardGeneralSettingsComponent };
275
- //# sourceMappingURL=c8y-ngx-components-context-dashboard-dashboard-general-settings.component-RXvOcs04.mjs.map
275
+ //# sourceMappingURL=c8y-ngx-components-context-dashboard-dashboard-general-settings.component-DjlpSztw.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-context-dashboard-dashboard-general-settings.component-RXvOcs04.mjs","sources":["../../context-dashboard/dashboard-availability.component.ts","../../context-dashboard/dashboard-availability.component.html","../../context-dashboard/dashboard-settings/typed-dashboard-settings.component.ts","../../context-dashboard/dashboard-settings/typed-dashboard-settings.component.html","../../context-dashboard/dashboard-settings/dashboard-general-settings.component.ts","../../context-dashboard/dashboard-settings/dashboard-general-settings.component.html"],"sourcesContent":["import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IUserGroup, UserGroupService } from '@c8y/client';\nimport {\n C8yTranslatePipe,\n FormsModule,\n GainsightService,\n Item,\n Permissions,\n SelectModule\n} from '@c8y/ngx-components';\nimport {\n DashboardGlobalRoles,\n ALL_GLOBAL_ROLES_SELECTED,\n PRODUCT_EXPERIENCE\n} from './context-dashboard.model';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { NgIf } from '@angular/common';\n\n@Component({\n selector: 'c8y-dashboard-availability',\n templateUrl: './dashboard-availability.component.html',\n standalone: true,\n imports: [C8yTranslatePipe, ReactiveFormsModule, PopoverModule, FormsModule, NgIf, SelectModule]\n})\nexport class DashboardAvailabilityComponent implements OnInit {\n /**\n * Ids of global roles assigned to the dashboard or a string \"all\" indicating the selection of all global roles.\n * The value undefined is treated as equivalent to 'all'.\n */\n @Input()\n get globalRolesIds(): DashboardGlobalRoles {\n return this._globalRolesIds;\n }\n set globalRolesIds(ids: DashboardGlobalRoles) {\n if (!ids || ids === ALL_GLOBAL_ROLES_SELECTED) {\n this._globalRolesIds = ALL_GLOBAL_ROLES_SELECTED;\n return;\n }\n this._globalRolesIds = [...ids];\n }\n @Output() globalRolesIdsChange = new EventEmitter<DashboardGlobalRoles>();\n globalRolesItems: Item[] = [];\n globalRolesItemsSelected: Item[] = [];\n selectHidden = false;\n private globalRoles: IUserGroup[] = [];\n private PAGE_SIZE = 100;\n private _globalRolesIds: DashboardGlobalRoles;\n\n constructor(\n private userGroupService: UserGroupService,\n private gainsightService: GainsightService,\n private permissions: Permissions\n ) {}\n\n async ngOnInit() {\n if (this.permissions.hasRole(Permissions.ROLE_USER_MANAGEMENT_READ)) {\n this.globalRoles = await this.getGlobalRoles();\n this.globalRolesItems = this.mapGlobalRolesToItems();\n this.globalRolesItemsSelected = this.getSelectedGlobalRolesItems();\n } else {\n this.selectHidden = true;\n }\n }\n\n onSelected(items: Item[]) {\n if (!items || !Array.isArray(items)) {\n return;\n }\n\n const allItemsSelected = items.length === this.globalRolesItems.length;\n this.globalRolesItemsSelected = items;\n\n if (allItemsSelected) {\n this.globalRolesIdsChange.emit(ALL_GLOBAL_ROLES_SELECTED);\n this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.DASHBOARDS, {\n component: PRODUCT_EXPERIENCE.DASHBOARD.COMPONENTS.DASHBOARD_AVAILABILITY,\n action: PRODUCT_EXPERIENCE.DASHBOARD.ACTIONS.APPLY_GLOBAL_ROLES_CHANGES,\n globalRoles: ALL_GLOBAL_ROLES_SELECTED\n });\n } else {\n const selectedGlobalRolesIds = items.map(i => i.id);\n this.globalRolesIdsChange.emit([...selectedGlobalRolesIds]);\n\n this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.DASHBOARDS, {\n component: PRODUCT_EXPERIENCE.DASHBOARD.COMPONENTS.DASHBOARD_AVAILABILITY,\n action: PRODUCT_EXPERIENCE.DASHBOARD.ACTIONS.APPLY_GLOBAL_ROLES_CHANGES,\n globalRoles: selectedGlobalRolesIds?.sort()?.join()\n });\n }\n }\n\n private async getGlobalRoles() {\n return (await this.userGroupService.list({ pageSize: this.PAGE_SIZE })).data;\n }\n\n private mapGlobalRolesToItems(): Item[] {\n return this.globalRoles.map(({ name, id }) => ({\n name,\n id\n }));\n }\n\n private getSelectedGlobalRolesItems(): Item[] {\n if (!this.globalRolesIds || this.globalRolesIds === ALL_GLOBAL_ROLES_SELECTED) {\n return this.globalRolesItems;\n }\n return this.globalRolesIds\n .map(globalRoleId => this.globalRolesItems.find(gR => gR.id === globalRoleId))\n .filter(Boolean);\n }\n}\n","<fieldset class=\"c8y-fieldset c8y-fieldset--lg\">\n <legend>{{ 'Availability`of dashboard based on permissions`' | translate }}</legend>\n <c8y-form-group>\n <label for=\"availability\">\n <span\n class=\"m-r-4\"\n id=\"availability\"\n >\n {{ 'Global roles' | translate }}\n </span>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{\n 'Select the global roles for which the dashboard will be available' | translate\n }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </label>\n <c8y-select-legacy\n *ngIf=\"!selectHidden\"\n [items]=\"globalRolesItems\"\n [selected]=\"globalRolesItemsSelected\"\n (onChange)=\"onSelected($event)\"\n ></c8y-select-legacy>\n <p\n class=\"form-control-static\"\n *ngIf=\"selectHidden\"\n >\n {{ \"You don't have permission to change global roles.\" | translate }}\n </p>\n </c8y-form-group>\n</fieldset>\n","import { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\nimport {\n gettext,\n InterAppService,\n SupportedApps,\n SupportedAppKey,\n CoreModule,\n C8yTranslatePipe,\n ProductExperienceDirective\n} from '@c8y/ngx-components';\nimport { IApplication, InventoryService } from '@c8y/client';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n AllowTypeDashboard,\n ContextDashboardManagedObject,\n PRODUCT_EXPERIENCE\n} from '../context-dashboard.model';\nimport { Observable } from 'rxjs';\nimport { ActivatedRoute } from '@angular/router';\nimport { TypeDashboardInfoComponent } from '../type-dashboard-info/type-dashboard-info.component';\n\n@Component({\n selector: 'c8y-typed-dashboard-settings',\n templateUrl: './typed-dashboard-settings.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TypedDashboardSettingsComponent),\n multi: true\n }\n ],\n standalone: true,\n imports: [C8yTranslatePipe, CoreModule, TypeDashboardInfoComponent, ProductExperienceDirective]\n})\nexport class TypedDashboardSettingsComponent implements ControlValueAccessor, OnInit {\n value: boolean;\n touched = false;\n disabled = false;\n\n @Input() deviceTypeValue: string;\n @Input() displayDeviceTypeValue: string;\n @Input() formInvalid: boolean;\n @Input() mo: ContextDashboardManagedObject;\n @Input() isDevice: boolean;\n @Input() allowTypeDashboard: AllowTypeDashboard;\n @Output() onDuplicateWithoutType = new EventEmitter<void>();\n typedDashboardStatus: string;\n infoText: string;\n deviceTypeInstancesCount: number;\n showSourceNavigationLink$: Observable<boolean>;\n userDeviceManagementApp$: Observable<IApplication>;\n context: any;\n deviceManagementAppKey: SupportedAppKey = SupportedApps.devicemanagement;\n deviceManagementLinkTitle = gettext('Device Info page in {{ deviceManagementAppName }}');\n PRODUCT_EXPERIENCE = PRODUCT_EXPERIENCE;\n\n constructor(\n private inventory: InventoryService,\n private interAppService: InterAppService,\n private route: ActivatedRoute\n ) {}\n\n async ngOnInit() {\n this.userDeviceManagementApp$ = this.interAppService.getApp$(this.deviceManagementAppKey);\n this.context = this.route.parent.snapshot.data.contextData;\n this.showSourceNavigationLink$ = this.interAppService.shouldShowAppLink$(\n this.deviceManagementAppKey\n );\n }\n\n async goToDeviceView(): Promise<void> {\n await this.interAppService.navigateToApp(\n this.deviceManagementAppKey,\n `#/device/${this.context.id}/device-info`\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange = _ => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched = () => {};\n\n writeValue(value: boolean): void {\n this.value = value;\n this.updateTexts();\n if (value) {\n this.updateDeviceTypeCount();\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(onTouched: any): void {\n this.onTouched = onTouched;\n }\n\n markAsTouched(): void {\n if (!this.touched) {\n this.onTouched();\n this.touched = true;\n }\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n async toggle(): Promise<void> {\n this.value = !this.value;\n this.onChange(this.value);\n if (this.value && this.deviceTypeInstancesCount == null) {\n this.setDisabledState(true);\n await this.updateDeviceTypeCount();\n }\n this.updateTexts();\n this.setDisabledState(false);\n }\n\n private updateTexts(): void {\n this.typedDashboardStatus = this.value\n ? gettext('Enabled`typed dashboard`')\n : gettext('Disabled`typed dashboard`');\n\n if (this.allowTypeDashboard === 'allow_if_type_filled') {\n this.infoText = gettext(\n `<p class=\"p-b-8\">Enabling this option uses the layout and configuration of this dashboard to create dashboard instances for all devices based on the device type.</p>\n <p class=\"p-b-16\">The current device doesn't have a device type assigned to it. Assign a device type to the device via the \"Asset properties\" widget in the <strong>Info</strong> tab of the device.</p>`\n );\n return;\n }\n\n if (this.value) {\n if (this.isDevice) {\n this.infoText = gettext(\n `<p class=\"p-b-8\">\n The layout and configuration of this dashboard is used by all devices based on device type <span class=\"tag tag--info text-12\">{{ displayDeviceTypeValue }}</span>.\n </p>\n <p class=\"p-b-16\">\n Disabling this option removes it from all devices based on the same type and makes it available only for the current instance.\n </p>`\n );\n } else {\n this.infoText = gettext(\n `<p class=\"p-b-8\">\n The layout and configuration of this dashboard is used by all assets based on asset model <span class=\"tag tag--info text-12\">{{ displayDeviceTypeValue }}</span>.\n </p>\n <p class=\"p-b-16\">\n Disabling this option removes it from all assets based on the same model and makes it available only for the current instance.\n </p>`\n );\n }\n } else {\n if (this.isDevice) {\n this.infoText = gettext(\n `<p>Enabling this option uses the layout and configuration of this dashboard to create dashboard instances for all devices based on the type <span class=\"tag tag--info text-12\">{{ displayDeviceTypeValue }}</span>.</p>`\n );\n } else {\n this.infoText = gettext(\n `<p>Enabling this option uses the layout and configuration of this dashboard to create dashboard instances for all assets based on the model <span class=\"tag tag--info text-12\">{{ displayDeviceTypeValue }}</span>.</p>`\n );\n }\n }\n }\n\n private async updateDeviceTypeCount(): Promise<void> {\n const count = await this.inventory.count({\n type: this.deviceTypeValue\n });\n this.deviceTypeInstancesCount = count.data;\n }\n}\n","<fieldset class=\"c8y-fieldset c8y-fieldset--lg\">\n <legend>{{ 'Dashboard template' | translate }}</legend>\n <div class=\"d-flex p-b-16 gap-16\">\n <label class=\"c8y-switch flex-no-shrink\">\n <input\n type=\"checkbox\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n (click)=\"toggle()\"\n />\n <span></span>\n <span>{{ typedDashboardStatus | translate }}</span>\n </label>\n <div class=\"flex-grow d-flex d-col\">\n <div\n class=\"flex-grow\"\n [innerHtml]=\"infoText | translate: { displayDeviceTypeValue: displayDeviceTypeValue }\"\n ></div>\n <button\n class=\"btn-link p-0 m-r-auto\"\n type=\"button\"\n *ngIf=\"allowTypeDashboard === 'allow_if_type_filled' && showSourceNavigationLink$ | async\"\n (click)=\"goToDeviceView()\"\n >\n {{\n deviceManagementLinkTitle\n | translate\n : {\n deviceManagementAppName:\n userDeviceManagementApp$ | async | humanizeAppName | async\n }\n }}\n <i c8yIcon=\"external-link\"></i>\n </button>\n </div>\n </div>\n\n <c8y-type-dashboard-info\n *ngIf=\"allowTypeDashboard === 'allow'\"\n [context]=\"mo\"\n [deviceTypeValue]=\"deviceTypeValue\"\n [displayDeviceTypeValue]=\"displayDeviceTypeValue\"\n ></c8y-type-dashboard-info>\n\n <div\n class=\"p-t-8 p-b-16\"\n *ngIf=\"mo?.c8y_Dashboard && value\"\n >\n <button\n class=\"btn btn-default btn-sm\"\n type=\"button\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.DASHBOARD_TEMPLATE\"\n [actionData]=\"{\n component: PRODUCT_EXPERIENCE.DASHBOARD.COMPONENTS.TYPED_DASHBOARD_SETTINGS,\n action: PRODUCT_EXPERIENCE.DASHBOARD.ACTIONS.DUPLICATE_AS_REGULAR_DASHBOARD\n }\"\n (click)=\"onDuplicateWithoutType.emit()\"\n [disabled]=\"formInvalid\"\n >\n {{ 'Duplicate as regular dashboard' | translate }}\n </button>\n </div>\n</fieldset>\n","import { Component } from '@angular/core';\nimport {\n AllowTypeDashboard,\n ContextDashboard,\n ContextDashboardManagedObject,\n DashboardGlobalRoles,\n DashboardMetadata\n} from '../context-dashboard.model';\nimport {\n C8yTranslatePipe,\n CoreModule,\n gettext,\n NavigatorNode,\n NavigatorService\n} from '@c8y/ngx-components';\nimport { Observable } from 'rxjs';\nimport { DashboardDetailService } from '../dashboard-detail.service';\nimport { IconSelectorModule } from '@c8y/ngx-components/icon-selector';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { DashboardAvailabilityComponent } from '../dashboard-availability.component';\nimport { TypedDashboardSettingsComponent } from './typed-dashboard-settings.component';\n\n@Component({\n selector: 'c8y-dashboard-general-settings',\n templateUrl: './dashboard-general-settings.component.html',\n standalone: true,\n imports: [\n CoreModule,\n IconSelectorModule,\n C8yTranslatePipe,\n PopoverModule,\n DashboardAvailabilityComponent,\n TypedDashboardSettingsComponent\n ]\n})\nexport class DashboardGeneralSettingsComponent implements Omit<DashboardMetadata, 'context'> {\n isReport: boolean;\n isNamedDashboard: boolean;\n hideAvailability: boolean;\n dashboard: ContextDashboard;\n deviceTypeValue: string;\n displayDeviceTypeValue: string;\n allowTypeDashboard: AllowTypeDashboard;\n isDevice: boolean;\n mo: ContextDashboardManagedObject;\n\n generalSettingsForm: DashboardDetailService['generalSettingsForm'];\n dashboardName: string;\n navigatorNodes$: Observable<NavigatorNode[]>;\n globalRolesIds: DashboardGlobalRoles;\n readonly priorityExampleLabel = gettext('e.g. {{ example }}');\n readonly positionInTabsExampleLabel = gettext('Position in tabs (10000 first, -10000 last)');\n namePlaceholder: string;\n constructor(\n private navigatorService: NavigatorService,\n private dashboardDetailService: DashboardDetailService\n ) {}\n\n ngOnInit() {\n this.generalSettingsForm = this.dashboardDetailService.generalSettingsForm;\n Object.assign(this, this.dashboardDetailService.details);\n this.namePlaceholder = this.isReport ? gettext('e.g. My report') : gettext('e.g. My dashboard');\n this.navigatorNodes$ = this.navigatorService.items$;\n this.globalRolesIds = this.generalSettingsForm.value.globalRolesIds;\n }\n\n changeGlobalRoleIds() {\n this.generalSettingsForm.get('globalRolesIds').setValue(this.globalRolesIds);\n this.generalSettingsForm.markAsDirty();\n }\n\n async duplicateWithoutType() {\n await this.dashboardDetailService.duplicateWithoutTypeFn();\n }\n}\n","<div\n class=\"row\"\n [formGroup]=\"generalSettingsForm\"\n>\n <div\n class=\"col-xs-12 p-b-24\"\n [ngClass]=\"{ 'col-md-6': !isReport, 'col-md-8': isReport }\"\n *ngIf=\"!isNamedDashboard || isReport\"\n >\n <fieldset class=\"c8y-fieldset c8y-fieldset--lg m-b-24\">\n <legend>{{ 'Navigation' | translate }}</legend>\n <div class=\"d-flex gap-16\">\n <c8y-form-group>\n <label>{{ 'Icon' | translate }}</label>\n <c8y-icon-selector-wrapper\n [iconSize]=\"24\"\n name=\"icon\"\n formControlName=\"icon\"\n ></c8y-icon-selector-wrapper>\n </c8y-form-group>\n <c8y-form-group class=\"flex-grow\">\n <label for=\"menuLabel\">\n {{ 'Menu label' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{\n 'Menu label to display in submenu when dashboard is attached' | translate\n }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </label>\n <input\n class=\"form-control\"\n id=\"menuLabel\"\n placeholder=\"{{ namePlaceholder | translate }}\"\n name=\"name\"\n type=\"text\"\n formControlName=\"name\"\n />\n </c8y-form-group>\n </div>\n\n <c8y-form-group>\n <label for=\"description\">{{ 'Description ' | translate }}</label>\n <textarea\n class=\"form-control\"\n id=\"description\"\n name=\"description\"\n c8y-textarea-autoresize\n formControlName=\"description\"\n ></textarea>\n </c8y-form-group>\n\n <div class=\"row\">\n <div\n class=\"col-lg-7 col-xs-12\"\n *ngIf=\"!isReport\"\n >\n <c8y-form-group>\n <label for=\"position\">\n {{ 'Position in tabs' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ positionInTabsExampleLabel | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </label>\n <input\n class=\"form-control\"\n id=\"positionNav\"\n placeholder=\"{{ priorityExampleLabel | translate: { example: '500' } }}\"\n name=\"priority\"\n for=\"position\"\n type=\"number\"\n formControlName=\"priority\"\n />\n </c8y-form-group>\n </div>\n\n <div\n class=\"col-xs-6\"\n *ngIf=\"isReport\"\n >\n <label translate>Navigator menu item</label>\n <c8y-form-group>\n <label\n class=\"c8y-switch\"\n title=\"{{ 'Show in navigator' | translate }}\"\n >\n <input\n type=\"checkbox\"\n formControlName=\"c8y_IsNavigatorNode\"\n />\n <span></span>\n <span>{{ 'Show in navigator' | translate }}</span>\n </label>\n </c8y-form-group>\n </div>\n\n <div\n class=\"col-xs-6\"\n *ngIf=\"isReport && generalSettingsForm.value.c8y_IsNavigatorNode\"\n >\n <c8y-form-group>\n <label\n class=\"d-block\"\n for=\"position\"\n >\n {{ 'Position in navigator' | translate }}\n <ng-template #positionInNavPop>\n <span>\n {{ positionInTabsExampleLabel | translate }}&nbsp;\n {{ 'Existing nodes:' | translate }}\n </span>\n <ul class=\"list-unstyled m-t-16 m-b-0\">\n <li\n class=\"p-t-4 p-b-4\"\n title=\"{{ node.label | translate }}\"\n *ngFor=\"let node of navigatorNodes$ | async\"\n >\n <div class=\"icon-flex fit-w\">\n <i [c8yIcon]=\"node.icon\"></i>\n <span class=\"text-truncate m-l-4 m-r-16 flex-grow\">\n {{ node.label | translate }}\n </span>\n <span class=\"text-medium flex-no-shrink\">{{ node.priority }}</span>\n </div>\n </li>\n </ul>\n </ng-template>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"positionInNavPop\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </label>\n <input\n class=\"form-control\"\n placeholder=\"{{ priorityExampleLabel | translate: { example: '500' } }}\"\n name=\"priority\"\n for=\"position\"\n type=\"number\"\n formControlName=\"priority\"\n />\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n <c8y-dashboard-availability\n *ngIf=\"\n !!isReport === false &&\n allowTypeDashboard &&\n deviceTypeValue &&\n generalSettingsForm.get('deviceType') &&\n !hideAvailability\n \"\n [(globalRolesIds)]=\"globalRolesIds\"\n (globalRolesIdsChange)=\"changeGlobalRoleIds()\"\n ></c8y-dashboard-availability>\n </div>\n\n <div class=\"col-xs-12 col-md-6 p-b-24\">\n <c8y-typed-dashboard-settings\n *ngIf=\"allowTypeDashboard !== 'disallow'\"\n formControlName=\"deviceType\"\n [deviceTypeValue]=\"deviceTypeValue\"\n [displayDeviceTypeValue]=\"displayDeviceTypeValue\"\n [formInvalid]=\"generalSettingsForm.invalid\"\n [mo]=\"mo\"\n [isDevice]=\"isDevice\"\n [allowTypeDashboard]=\"allowTypeDashboard\"\n (onDuplicateWithoutType)=\"duplicateWithoutType()\"\n ></c8y-typed-dashboard-settings>\n <c8y-dashboard-availability\n *ngIf=\"\n !!isReport === false &&\n (!allowTypeDashboard || !deviceTypeValue || !generalSettingsForm.get('deviceType')) &&\n !hideAvailability\n \"\n [(globalRolesIds)]=\"globalRolesIds\"\n (globalRolesIdsChange)=\"changeGlobalRoleIds()\"\n ></c8y-dashboard-availability>\n </div>\n</div>\n"],"names":["i3","i1","i2.DashboardDetailService","i4","i5","i6"],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-context-dashboard-dashboard-general-settings.component-DjlpSztw.mjs","sources":["../../context-dashboard/dashboard-availability.component.ts","../../context-dashboard/dashboard-availability.component.html","../../context-dashboard/dashboard-settings/typed-dashboard-settings.component.ts","../../context-dashboard/dashboard-settings/typed-dashboard-settings.component.html","../../context-dashboard/dashboard-settings/dashboard-general-settings.component.ts","../../context-dashboard/dashboard-settings/dashboard-general-settings.component.html"],"sourcesContent":["import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IUserGroup, UserGroupService } from '@c8y/client';\nimport {\n C8yTranslatePipe,\n FormsModule,\n GainsightService,\n Item,\n Permissions,\n SelectModule\n} from '@c8y/ngx-components';\nimport {\n DashboardGlobalRoles,\n ALL_GLOBAL_ROLES_SELECTED,\n PRODUCT_EXPERIENCE\n} from './context-dashboard.model';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { NgIf } from '@angular/common';\n\n@Component({\n selector: 'c8y-dashboard-availability',\n templateUrl: './dashboard-availability.component.html',\n standalone: true,\n imports: [C8yTranslatePipe, ReactiveFormsModule, PopoverModule, FormsModule, NgIf, SelectModule]\n})\nexport class DashboardAvailabilityComponent implements OnInit {\n /**\n * Ids of global roles assigned to the dashboard or a string \"all\" indicating the selection of all global roles.\n * The value undefined is treated as equivalent to 'all'.\n */\n @Input()\n get globalRolesIds(): DashboardGlobalRoles {\n return this._globalRolesIds;\n }\n set globalRolesIds(ids: DashboardGlobalRoles) {\n if (!ids || ids === ALL_GLOBAL_ROLES_SELECTED) {\n this._globalRolesIds = ALL_GLOBAL_ROLES_SELECTED;\n return;\n }\n this._globalRolesIds = [...ids];\n }\n @Output() globalRolesIdsChange = new EventEmitter<DashboardGlobalRoles>();\n globalRolesItems: Item[] = [];\n globalRolesItemsSelected: Item[] = [];\n selectHidden = false;\n private globalRoles: IUserGroup[] = [];\n private PAGE_SIZE = 100;\n private _globalRolesIds: DashboardGlobalRoles;\n\n constructor(\n private userGroupService: UserGroupService,\n private gainsightService: GainsightService,\n private permissions: Permissions\n ) {}\n\n async ngOnInit() {\n if (this.permissions.hasRole(Permissions.ROLE_USER_MANAGEMENT_READ)) {\n this.globalRoles = await this.getGlobalRoles();\n this.globalRolesItems = this.mapGlobalRolesToItems();\n this.globalRolesItemsSelected = this.getSelectedGlobalRolesItems();\n } else {\n this.selectHidden = true;\n }\n }\n\n onSelected(items: Item[]) {\n if (!items || !Array.isArray(items)) {\n return;\n }\n\n const allItemsSelected = items.length === this.globalRolesItems.length;\n this.globalRolesItemsSelected = items;\n\n if (allItemsSelected) {\n this.globalRolesIdsChange.emit(ALL_GLOBAL_ROLES_SELECTED);\n this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.DASHBOARDS, {\n component: PRODUCT_EXPERIENCE.DASHBOARD.COMPONENTS.DASHBOARD_AVAILABILITY,\n action: PRODUCT_EXPERIENCE.DASHBOARD.ACTIONS.APPLY_GLOBAL_ROLES_CHANGES,\n globalRoles: ALL_GLOBAL_ROLES_SELECTED\n });\n } else {\n const selectedGlobalRolesIds = items.map(i => i.id);\n this.globalRolesIdsChange.emit([...selectedGlobalRolesIds]);\n\n this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.DASHBOARDS, {\n component: PRODUCT_EXPERIENCE.DASHBOARD.COMPONENTS.DASHBOARD_AVAILABILITY,\n action: PRODUCT_EXPERIENCE.DASHBOARD.ACTIONS.APPLY_GLOBAL_ROLES_CHANGES,\n globalRoles: selectedGlobalRolesIds?.sort()?.join()\n });\n }\n }\n\n private async getGlobalRoles() {\n return (await this.userGroupService.list({ pageSize: this.PAGE_SIZE })).data;\n }\n\n private mapGlobalRolesToItems(): Item[] {\n return this.globalRoles.map(({ name, id }) => ({\n name,\n id\n }));\n }\n\n private getSelectedGlobalRolesItems(): Item[] {\n if (!this.globalRolesIds || this.globalRolesIds === ALL_GLOBAL_ROLES_SELECTED) {\n return this.globalRolesItems;\n }\n return this.globalRolesIds\n .map(globalRoleId => this.globalRolesItems.find(gR => gR.id === globalRoleId))\n .filter(Boolean);\n }\n}\n","<fieldset class=\"c8y-fieldset c8y-fieldset--lg\">\n <legend>{{ 'Availability`of dashboard based on permissions`' | translate }}</legend>\n <c8y-form-group>\n <label for=\"availability\">\n <span\n class=\"m-r-4\"\n id=\"availability\"\n >\n {{ 'Global roles' | translate }}\n </span>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{\n 'Select the global roles for which the dashboard will be available' | translate\n }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </label>\n <c8y-select-legacy\n *ngIf=\"!selectHidden\"\n [items]=\"globalRolesItems\"\n [selected]=\"globalRolesItemsSelected\"\n (onChange)=\"onSelected($event)\"\n ></c8y-select-legacy>\n <p\n class=\"form-control-static\"\n *ngIf=\"selectHidden\"\n >\n {{ \"You don't have permission to change global roles.\" | translate }}\n </p>\n </c8y-form-group>\n</fieldset>\n","import { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\nimport {\n gettext,\n InterAppService,\n SupportedApps,\n SupportedAppKey,\n CoreModule,\n C8yTranslatePipe,\n ProductExperienceDirective\n} from '@c8y/ngx-components';\nimport { IApplication, InventoryService } from '@c8y/client';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n AllowTypeDashboard,\n ContextDashboardManagedObject,\n PRODUCT_EXPERIENCE\n} from '../context-dashboard.model';\nimport { Observable } from 'rxjs';\nimport { ActivatedRoute } from '@angular/router';\nimport { TypeDashboardInfoComponent } from '../type-dashboard-info/type-dashboard-info.component';\n\n@Component({\n selector: 'c8y-typed-dashboard-settings',\n templateUrl: './typed-dashboard-settings.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TypedDashboardSettingsComponent),\n multi: true\n }\n ],\n standalone: true,\n imports: [C8yTranslatePipe, CoreModule, TypeDashboardInfoComponent, ProductExperienceDirective]\n})\nexport class TypedDashboardSettingsComponent implements ControlValueAccessor, OnInit {\n value: boolean;\n touched = false;\n disabled = false;\n\n @Input() deviceTypeValue: string;\n @Input() displayDeviceTypeValue: string;\n @Input() formInvalid: boolean;\n @Input() mo: ContextDashboardManagedObject;\n @Input() isDevice: boolean;\n @Input() allowTypeDashboard: AllowTypeDashboard;\n @Output() onDuplicateWithoutType = new EventEmitter<void>();\n typedDashboardStatus: string;\n infoText: string;\n deviceTypeInstancesCount: number;\n showSourceNavigationLink$: Observable<boolean>;\n userDeviceManagementApp$: Observable<IApplication>;\n context: any;\n deviceManagementAppKey: SupportedAppKey = SupportedApps.devicemanagement;\n deviceManagementLinkTitle = gettext('Device Info page in {{ deviceManagementAppName }}');\n PRODUCT_EXPERIENCE = PRODUCT_EXPERIENCE;\n\n constructor(\n private inventory: InventoryService,\n private interAppService: InterAppService,\n private route: ActivatedRoute\n ) {}\n\n async ngOnInit() {\n this.userDeviceManagementApp$ = this.interAppService.getApp$(this.deviceManagementAppKey);\n this.context = this.route.parent.snapshot.data.contextData;\n this.showSourceNavigationLink$ = this.interAppService.shouldShowAppLink$(\n this.deviceManagementAppKey\n );\n }\n\n async goToDeviceView(): Promise<void> {\n await this.interAppService.navigateToApp(\n this.deviceManagementAppKey,\n `#/device/${this.context.id}/device-info`\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange = _ => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched = () => {};\n\n writeValue(value: boolean): void {\n this.value = value;\n this.updateTexts();\n if (value) {\n this.updateDeviceTypeCount();\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(onTouched: any): void {\n this.onTouched = onTouched;\n }\n\n markAsTouched(): void {\n if (!this.touched) {\n this.onTouched();\n this.touched = true;\n }\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n async toggle(): Promise<void> {\n this.value = !this.value;\n this.onChange(this.value);\n if (this.value && this.deviceTypeInstancesCount == null) {\n this.setDisabledState(true);\n await this.updateDeviceTypeCount();\n }\n this.updateTexts();\n this.setDisabledState(false);\n }\n\n private updateTexts(): void {\n this.typedDashboardStatus = this.value\n ? gettext('Enabled`typed dashboard`')\n : gettext('Disabled`typed dashboard`');\n\n if (this.allowTypeDashboard === 'allow_if_type_filled') {\n this.infoText = gettext(\n `<p class=\"p-b-8\">Enabling this option uses the layout and configuration of this dashboard to create dashboard instances for all devices based on the device type.</p>\n <p class=\"p-b-16\">The current device doesn't have a device type assigned to it. Assign a device type to the device via the \"Asset properties\" widget in the <strong>Info</strong> tab of the device.</p>`\n );\n return;\n }\n\n if (this.value) {\n if (this.isDevice) {\n this.infoText = gettext(\n `<p class=\"p-b-8\">\n The layout and configuration of this dashboard is used by all devices based on device type <span class=\"tag tag--info text-12\">{{ displayDeviceTypeValue }}</span>.\n </p>\n <p class=\"p-b-16\">\n Disabling this option removes it from all devices based on the same type and makes it available only for the current instance.\n </p>`\n );\n } else {\n this.infoText = gettext(\n `<p class=\"p-b-8\">\n The layout and configuration of this dashboard is used by all assets based on asset model <span class=\"tag tag--info text-12\">{{ displayDeviceTypeValue }}</span>.\n </p>\n <p class=\"p-b-16\">\n Disabling this option removes it from all assets based on the same model and makes it available only for the current instance.\n </p>`\n );\n }\n } else {\n if (this.isDevice) {\n this.infoText = gettext(\n `<p>Enabling this option uses the layout and configuration of this dashboard to create dashboard instances for all devices based on the type <span class=\"tag tag--info text-12\">{{ displayDeviceTypeValue }}</span>.</p>`\n );\n } else {\n this.infoText = gettext(\n `<p>Enabling this option uses the layout and configuration of this dashboard to create dashboard instances for all assets based on the model <span class=\"tag tag--info text-12\">{{ displayDeviceTypeValue }}</span>.</p>`\n );\n }\n }\n }\n\n private async updateDeviceTypeCount(): Promise<void> {\n const count = await this.inventory.count({\n type: this.deviceTypeValue\n });\n this.deviceTypeInstancesCount = count.data;\n }\n}\n","<fieldset class=\"c8y-fieldset c8y-fieldset--lg\">\n <legend>{{ 'Dashboard template' | translate }}</legend>\n <div class=\"d-flex p-b-16 gap-16\">\n <label class=\"c8y-switch flex-no-shrink\">\n <input\n type=\"checkbox\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n (click)=\"toggle()\"\n />\n <span></span>\n <span>{{ typedDashboardStatus | translate }}</span>\n </label>\n <div class=\"flex-grow d-flex d-col\">\n <div\n class=\"flex-grow\"\n [innerHtml]=\"infoText | translate: { displayDeviceTypeValue: displayDeviceTypeValue }\"\n ></div>\n <button\n class=\"btn-link p-0 m-r-auto\"\n type=\"button\"\n *ngIf=\"allowTypeDashboard === 'allow_if_type_filled' && showSourceNavigationLink$ | async\"\n (click)=\"goToDeviceView()\"\n >\n {{\n deviceManagementLinkTitle\n | translate\n : {\n deviceManagementAppName:\n userDeviceManagementApp$ | async | humanizeAppName | async\n }\n }}\n <i c8yIcon=\"external-link\"></i>\n </button>\n </div>\n </div>\n\n <c8y-type-dashboard-info\n *ngIf=\"allowTypeDashboard === 'allow'\"\n [context]=\"mo\"\n [deviceTypeValue]=\"deviceTypeValue\"\n [displayDeviceTypeValue]=\"displayDeviceTypeValue\"\n ></c8y-type-dashboard-info>\n\n <div\n class=\"p-t-8 p-b-16\"\n *ngIf=\"mo?.c8y_Dashboard && value\"\n >\n <button\n class=\"btn btn-default btn-sm\"\n type=\"button\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.DASHBOARD_TEMPLATE\"\n [actionData]=\"{\n component: PRODUCT_EXPERIENCE.DASHBOARD.COMPONENTS.TYPED_DASHBOARD_SETTINGS,\n action: PRODUCT_EXPERIENCE.DASHBOARD.ACTIONS.DUPLICATE_AS_REGULAR_DASHBOARD\n }\"\n (click)=\"onDuplicateWithoutType.emit()\"\n [disabled]=\"formInvalid\"\n >\n {{ 'Duplicate as regular dashboard' | translate }}\n </button>\n </div>\n</fieldset>\n","import { Component } from '@angular/core';\nimport {\n AllowTypeDashboard,\n ContextDashboard,\n ContextDashboardManagedObject,\n DashboardGlobalRoles,\n DashboardMetadata\n} from '../context-dashboard.model';\nimport {\n C8yTranslatePipe,\n CoreModule,\n gettext,\n NavigatorNode,\n NavigatorService\n} from '@c8y/ngx-components';\nimport { Observable } from 'rxjs';\nimport { DashboardDetailService } from '../dashboard-detail.service';\nimport { IconSelectorModule } from '@c8y/ngx-components/icon-selector';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { DashboardAvailabilityComponent } from '../dashboard-availability.component';\nimport { TypedDashboardSettingsComponent } from './typed-dashboard-settings.component';\n\n@Component({\n selector: 'c8y-dashboard-general-settings',\n templateUrl: './dashboard-general-settings.component.html',\n standalone: true,\n imports: [\n CoreModule,\n IconSelectorModule,\n C8yTranslatePipe,\n PopoverModule,\n DashboardAvailabilityComponent,\n TypedDashboardSettingsComponent\n ]\n})\nexport class DashboardGeneralSettingsComponent implements Omit<DashboardMetadata, 'context'> {\n isReport: boolean;\n isNamedDashboard: boolean;\n hideAvailability: boolean;\n dashboard: ContextDashboard;\n deviceTypeValue: string;\n displayDeviceTypeValue: string;\n allowTypeDashboard: AllowTypeDashboard;\n isDevice: boolean;\n mo: ContextDashboardManagedObject;\n\n generalSettingsForm: DashboardDetailService['generalSettingsForm'];\n dashboardName: string;\n navigatorNodes$: Observable<NavigatorNode[]>;\n globalRolesIds: DashboardGlobalRoles;\n readonly priorityExampleLabel = gettext('e.g. {{ example }}');\n readonly positionInTabsExampleLabel = gettext('Position in tabs (10000 first, -10000 last)');\n namePlaceholder: string;\n constructor(\n private navigatorService: NavigatorService,\n private dashboardDetailService: DashboardDetailService\n ) {}\n\n ngOnInit() {\n this.generalSettingsForm = this.dashboardDetailService.generalSettingsForm;\n Object.assign(this, this.dashboardDetailService.details);\n this.namePlaceholder = this.isReport ? gettext('e.g. My report') : gettext('e.g. My dashboard');\n this.navigatorNodes$ = this.navigatorService.items$;\n this.globalRolesIds = this.generalSettingsForm.value.globalRolesIds;\n }\n\n changeGlobalRoleIds() {\n this.generalSettingsForm.get('globalRolesIds').setValue(this.globalRolesIds);\n this.generalSettingsForm.markAsDirty();\n }\n\n async duplicateWithoutType() {\n await this.dashboardDetailService.duplicateWithoutTypeFn();\n }\n}\n","<div\n class=\"row\"\n [formGroup]=\"generalSettingsForm\"\n>\n <div\n class=\"col-xs-12 p-b-24\"\n [ngClass]=\"{ 'col-md-6': !isReport, 'col-md-8': isReport }\"\n *ngIf=\"!isNamedDashboard || isReport\"\n >\n <fieldset class=\"c8y-fieldset c8y-fieldset--lg m-b-24\">\n <legend>{{ 'Navigation' | translate }}</legend>\n <div class=\"d-flex gap-16\">\n <c8y-form-group>\n <label>{{ 'Icon' | translate }}</label>\n <c8y-icon-selector-wrapper\n [iconSize]=\"24\"\n name=\"icon\"\n formControlName=\"icon\"\n ></c8y-icon-selector-wrapper>\n </c8y-form-group>\n <c8y-form-group class=\"flex-grow\">\n <label for=\"menuLabel\">\n {{ 'Menu label' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{\n 'Menu label to display in submenu when dashboard is attached' | translate\n }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </label>\n <input\n class=\"form-control\"\n id=\"menuLabel\"\n placeholder=\"{{ namePlaceholder | translate }}\"\n name=\"name\"\n type=\"text\"\n formControlName=\"name\"\n />\n </c8y-form-group>\n </div>\n\n <c8y-form-group>\n <label for=\"description\">{{ 'Description ' | translate }}</label>\n <textarea\n class=\"form-control\"\n id=\"description\"\n name=\"description\"\n c8y-textarea-autoresize\n formControlName=\"description\"\n ></textarea>\n </c8y-form-group>\n\n <div class=\"row\">\n <div\n class=\"col-lg-7 col-xs-12\"\n *ngIf=\"!isReport\"\n >\n <c8y-form-group>\n <label for=\"position\">\n {{ 'Position in tabs' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ positionInTabsExampleLabel | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </label>\n <input\n class=\"form-control\"\n id=\"positionNav\"\n placeholder=\"{{ priorityExampleLabel | translate: { example: '500' } }}\"\n name=\"priority\"\n for=\"position\"\n type=\"number\"\n formControlName=\"priority\"\n />\n </c8y-form-group>\n </div>\n\n <div\n class=\"col-xs-6\"\n *ngIf=\"isReport\"\n >\n <label translate>Navigator menu item</label>\n <c8y-form-group>\n <label\n class=\"c8y-switch\"\n title=\"{{ 'Show in navigator' | translate }}\"\n >\n <input\n type=\"checkbox\"\n formControlName=\"c8y_IsNavigatorNode\"\n />\n <span></span>\n <span>{{ 'Show in navigator' | translate }}</span>\n </label>\n </c8y-form-group>\n </div>\n\n <div\n class=\"col-xs-6\"\n *ngIf=\"isReport && generalSettingsForm.value.c8y_IsNavigatorNode\"\n >\n <c8y-form-group>\n <label\n class=\"d-block\"\n for=\"position\"\n >\n {{ 'Position in navigator' | translate }}\n <ng-template #positionInNavPop>\n <span>\n {{ positionInTabsExampleLabel | translate }}&nbsp;\n {{ 'Existing nodes:' | translate }}\n </span>\n <ul class=\"list-unstyled m-t-16 m-b-0\">\n <li\n class=\"p-t-4 p-b-4\"\n title=\"{{ node.label | translate }}\"\n *ngFor=\"let node of navigatorNodes$ | async\"\n >\n <div class=\"icon-flex fit-w\">\n <i [c8yIcon]=\"node.icon\"></i>\n <span class=\"text-truncate m-l-4 m-r-16 flex-grow\">\n {{ node.label | translate }}\n </span>\n <span class=\"text-medium flex-no-shrink\">{{ node.priority }}</span>\n </div>\n </li>\n </ul>\n </ng-template>\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"positionInNavPop\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </label>\n <input\n class=\"form-control\"\n placeholder=\"{{ priorityExampleLabel | translate: { example: '500' } }}\"\n name=\"priority\"\n for=\"position\"\n type=\"number\"\n formControlName=\"priority\"\n />\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n <c8y-dashboard-availability\n *ngIf=\"\n !!isReport === false &&\n allowTypeDashboard &&\n deviceTypeValue &&\n generalSettingsForm.get('deviceType') &&\n !hideAvailability\n \"\n [(globalRolesIds)]=\"globalRolesIds\"\n (globalRolesIdsChange)=\"changeGlobalRoleIds()\"\n ></c8y-dashboard-availability>\n </div>\n\n <div class=\"col-xs-12 col-md-6 p-b-24\">\n <c8y-typed-dashboard-settings\n *ngIf=\"allowTypeDashboard !== 'disallow'\"\n formControlName=\"deviceType\"\n [deviceTypeValue]=\"deviceTypeValue\"\n [displayDeviceTypeValue]=\"displayDeviceTypeValue\"\n [formInvalid]=\"generalSettingsForm.invalid\"\n [mo]=\"mo\"\n [isDevice]=\"isDevice\"\n [allowTypeDashboard]=\"allowTypeDashboard\"\n (onDuplicateWithoutType)=\"duplicateWithoutType()\"\n ></c8y-typed-dashboard-settings>\n <c8y-dashboard-availability\n *ngIf=\"\n !!isReport === false &&\n (!allowTypeDashboard || !deviceTypeValue || !generalSettingsForm.get('deviceType')) &&\n !hideAvailability\n \"\n [(globalRolesIds)]=\"globalRolesIds\"\n (globalRolesIdsChange)=\"changeGlobalRoleIds()\"\n ></c8y-dashboard-availability>\n </div>\n</div>\n"],"names":["i3","i1","i2.DashboardDetailService","i4","i5","i6"],"mappings":"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"}
@@ -105,13 +105,13 @@ class DashboardVersionHistoryComponent {
105
105
  newDashboard.historyDescription.restored = dashboard.created;
106
106
  this.dashboardDetailService.revertToDashboardFn(newDashboard);
107
107
  }
108
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DashboardVersionHistoryComponent, deps: [{ token: i2.TranslateService }, { token: ContextDashboardService }, { token: DashboardDetailService }], target: i0.ɵɵFactoryTarget.Component }); }
109
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: DashboardVersionHistoryComponent, isStandalone: true, selector: "c8y-dashboard-version-history", ngImport: i0, template: "<div class=\"bg-component p-t-8 p-b-8 separator-bottom text-center\">\n <i\n class=\"text-info m-r-4\"\n c8yIcon=\"info\"\n ></i>\n {{\n versionHistoryLimitMessage\n | translate: { versionHistoryLimit: contextDashboardService.VERSION_HISTORY_SIZE_LIMIT }\n }}\n</div>\n<c8y-list-group class=\"p-t-24 p-b-24\">\n <c8y-li-timeline\n *ngFor=\"let dashboard of dashboardHistoryExtended; index as i\"\n [ngClass]=\"{ active: i === 0 }\"\n >\n {{ dashboard.created | date: 'mediumDate' }}\n {{ dashboard.created | date: 'shortTime' }}\n <c8y-li data-cy=\"c8y-dashboard-version-history--history-row\">\n <c8y-li-body>\n <div class=\"d-flex a-i-start\">\n <div class=\"flex-grow\">\n <span\n class=\"text-truncate-wrap\"\n title=\"{{ dashboard.descriptionText }}\"\n data-cy=\"c8y-dashboard-version-history--history-title\"\n >\n {{ dashboard.descriptionText }}\n {{\n dashboard.historyDescription.restored\n ? (restoredDashboardMessage\n | translate\n : {\n restoredStateCreationDate: dashboard.historyDescription.restored | c8yDate\n })\n : ''\n }}\n </span>\n <small\n class=\"text-muted\"\n title=\"{{ 'by`user`' | translate }} {{ dashboard.author }}\"\n *ngIf=\"dashboard.author\"\n >\n <div class=\"icon-flex\">\n <i c8yIcon=\"c8y-user\"></i>\n {{ dashboard.author }}\n </div>\n </small>\n </div>\n\n <span\n class=\"label label-primary m-l-auto\"\n title=\"{{ 'The last saved status of the dashboard' | translate }}\"\n *ngIf=\"i === 0\"\n >\n {{ 'Current`dashboard status`' | translate }}\n </span>\n <span\n class=\"m-l-auto showOnHover\"\n *ngIf=\"dashboardHistoryExtended.length > 1 && i > 0\"\n >\n <button\n class=\"btn btn-default btn-sm\"\n title=\"{{ 'Restore the dashboard to this status' | translate }}\"\n type=\"button\"\n (click)=\"revertDashboard(dashboard)\"\n >\n {{ 'Restore' | translate }}\n </button>\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-li-timeline>\n</c8y-list-group>\n", dependencies: [{ kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i2$1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }, { kind: "pipe", type: i2$1.DatePipe, name: "c8yDate" }, { kind: "component", type: i2$1.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i2$1.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i2$1.ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "component", type: i2$1.ListItemTimelineComponent, selector: "c8y-list-item-timeline, c8y-li-timeline" }] }); }
108
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DashboardVersionHistoryComponent, deps: [{ token: i2.TranslateService }, { token: ContextDashboardService }, { token: DashboardDetailService }], target: i0.ɵɵFactoryTarget.Component }); }
109
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: DashboardVersionHistoryComponent, isStandalone: true, selector: "c8y-dashboard-version-history", ngImport: i0, template: "<div class=\"bg-component p-t-8 p-b-8 separator-bottom text-center\">\n <i\n class=\"text-info m-r-4\"\n c8yIcon=\"info\"\n ></i>\n {{\n versionHistoryLimitMessage\n | translate: { versionHistoryLimit: contextDashboardService.VERSION_HISTORY_SIZE_LIMIT }\n }}\n</div>\n<c8y-list-group class=\"p-t-24 p-b-24\">\n <c8y-li-timeline\n *ngFor=\"let dashboard of dashboardHistoryExtended; index as i\"\n [ngClass]=\"{ active: i === 0 }\"\n >\n {{ dashboard.created | date: 'mediumDate' }}\n {{ dashboard.created | date: 'shortTime' }}\n <c8y-li data-cy=\"c8y-dashboard-version-history--history-row\">\n <c8y-li-body>\n <div class=\"d-flex a-i-start\">\n <div class=\"flex-grow\">\n <span\n class=\"text-truncate-wrap\"\n title=\"{{ dashboard.descriptionText }}\"\n data-cy=\"c8y-dashboard-version-history--history-title\"\n >\n {{ dashboard.descriptionText }}\n {{\n dashboard.historyDescription.restored\n ? (restoredDashboardMessage\n | translate\n : {\n restoredStateCreationDate: dashboard.historyDescription.restored | c8yDate\n })\n : ''\n }}\n </span>\n <small\n class=\"text-muted\"\n title=\"{{ 'by`user`' | translate }} {{ dashboard.author }}\"\n *ngIf=\"dashboard.author\"\n >\n <div class=\"icon-flex\">\n <i c8yIcon=\"c8y-user\"></i>\n {{ dashboard.author }}\n </div>\n </small>\n </div>\n\n <span\n class=\"label label-primary m-l-auto\"\n title=\"{{ 'The last saved status of the dashboard' | translate }}\"\n *ngIf=\"i === 0\"\n >\n {{ 'Current`dashboard status`' | translate }}\n </span>\n <span\n class=\"m-l-auto showOnHover\"\n *ngIf=\"dashboardHistoryExtended.length > 1 && i > 0\"\n >\n <button\n class=\"btn btn-default btn-sm\"\n title=\"{{ 'Restore the dashboard to this status' | translate }}\"\n type=\"button\"\n (click)=\"revertDashboard(dashboard)\"\n >\n {{ 'Restore' | translate }}\n </button>\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-li-timeline>\n</c8y-list-group>\n", dependencies: [{ kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i2$1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }, { kind: "pipe", type: i2$1.DatePipe, name: "c8yDate" }, { kind: "component", type: i2$1.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i2$1.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i2$1.ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "component", type: i2$1.ListItemTimelineComponent, selector: "c8y-list-item-timeline, c8y-li-timeline" }] }); }
110
110
  }
111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DashboardVersionHistoryComponent, decorators: [{
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DashboardVersionHistoryComponent, decorators: [{
112
112
  type: Component,
113
113
  args: [{ selector: 'c8y-dashboard-version-history', standalone: true, imports: [C8yTranslatePipe, CoreModule], template: "<div class=\"bg-component p-t-8 p-b-8 separator-bottom text-center\">\n <i\n class=\"text-info m-r-4\"\n c8yIcon=\"info\"\n ></i>\n {{\n versionHistoryLimitMessage\n | translate: { versionHistoryLimit: contextDashboardService.VERSION_HISTORY_SIZE_LIMIT }\n }}\n</div>\n<c8y-list-group class=\"p-t-24 p-b-24\">\n <c8y-li-timeline\n *ngFor=\"let dashboard of dashboardHistoryExtended; index as i\"\n [ngClass]=\"{ active: i === 0 }\"\n >\n {{ dashboard.created | date: 'mediumDate' }}\n {{ dashboard.created | date: 'shortTime' }}\n <c8y-li data-cy=\"c8y-dashboard-version-history--history-row\">\n <c8y-li-body>\n <div class=\"d-flex a-i-start\">\n <div class=\"flex-grow\">\n <span\n class=\"text-truncate-wrap\"\n title=\"{{ dashboard.descriptionText }}\"\n data-cy=\"c8y-dashboard-version-history--history-title\"\n >\n {{ dashboard.descriptionText }}\n {{\n dashboard.historyDescription.restored\n ? (restoredDashboardMessage\n | translate\n : {\n restoredStateCreationDate: dashboard.historyDescription.restored | c8yDate\n })\n : ''\n }}\n </span>\n <small\n class=\"text-muted\"\n title=\"{{ 'by`user`' | translate }} {{ dashboard.author }}\"\n *ngIf=\"dashboard.author\"\n >\n <div class=\"icon-flex\">\n <i c8yIcon=\"c8y-user\"></i>\n {{ dashboard.author }}\n </div>\n </small>\n </div>\n\n <span\n class=\"label label-primary m-l-auto\"\n title=\"{{ 'The last saved status of the dashboard' | translate }}\"\n *ngIf=\"i === 0\"\n >\n {{ 'Current`dashboard status`' | translate }}\n </span>\n <span\n class=\"m-l-auto showOnHover\"\n *ngIf=\"dashboardHistoryExtended.length > 1 && i > 0\"\n >\n <button\n class=\"btn btn-default btn-sm\"\n title=\"{{ 'Restore the dashboard to this status' | translate }}\"\n type=\"button\"\n (click)=\"revertDashboard(dashboard)\"\n >\n {{ 'Restore' | translate }}\n </button>\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-li-timeline>\n</c8y-list-group>\n" }]
114
114
  }], ctorParameters: () => [{ type: i2.TranslateService }, { type: ContextDashboardService }, { type: DashboardDetailService }] });
115
115
 
116
116
  export { DashboardVersionHistoryComponent };
117
- //# sourceMappingURL=c8y-ngx-components-context-dashboard-dashboard-version-history.component-DmPIJGXO.mjs.map
117
+ //# sourceMappingURL=c8y-ngx-components-context-dashboard-dashboard-version-history.component-B2zLhv0X.mjs.map