@c8y/ngx-components 1021.38.1 → 1021.49.4

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 (529) hide show
  1. package/api/services.d.ts +1 -1
  2. package/api/services.d.ts.map +1 -1
  3. package/auth-configuration/sso-configuration/template-parts/access-mapping/access-mapping.component.d.ts.map +1 -1
  4. package/connectivity/abstract-connectivity-tab.factory.d.ts +1 -1
  5. package/context-dashboard/add-dashboard.component.d.ts.map +1 -1
  6. package/context-dashboard/context-dashboard.model.d.ts +4 -2
  7. package/context-dashboard/context-dashboard.model.d.ts.map +1 -1
  8. package/context-dashboard/dashboard-detail.component.d.ts.map +1 -1
  9. package/context-dashboard/dashboard-manager/dashboard-manager.model.d.ts +1 -0
  10. package/context-dashboard/dashboard-manager/dashboard-manager.model.d.ts.map +1 -1
  11. package/context-dashboard/dashboard-manager/dashboard-manager.service.d.ts +0 -1
  12. package/context-dashboard/dashboard-manager/dashboard-manager.service.d.ts.map +1 -1
  13. package/context-dashboard/dashboard-manager/type-dashboards-list/type-dashboards-list.component.d.ts.map +1 -1
  14. package/context-dashboard/new-dashboard.guard.d.ts +1 -1
  15. package/context-dashboard/new-dashboard.guard.d.ts.map +1 -1
  16. package/core/action/action.component.d.ts +2 -1
  17. package/core/action/action.component.d.ts.map +1 -1
  18. package/core/action/action.model.d.ts +3 -2
  19. package/core/action/action.model.d.ts.map +1 -1
  20. package/core/breadcrumb/breadcrumb-item.component.d.ts +2 -1
  21. package/core/breadcrumb/breadcrumb-item.component.d.ts.map +1 -1
  22. package/core/breadcrumb/breadcrumb.model.d.ts +2 -1
  23. package/core/breadcrumb/breadcrumb.model.d.ts.map +1 -1
  24. package/core/common/ApplicationOptions.d.ts +1 -0
  25. package/core/common/ApplicationOptions.d.ts.map +1 -1
  26. package/core/common/empty-state/empty-state.component.d.ts +2 -1
  27. package/core/common/empty-state/empty-state.component.d.ts.map +1 -1
  28. package/core/common/get-group-icon.pipe.d.ts +2 -1
  29. package/core/common/get-group-icon.pipe.d.ts.map +1 -1
  30. package/core/common/group.service.d.ts +22 -7
  31. package/core/common/group.service.d.ts.map +1 -1
  32. package/core/common/icon.directive.d.ts +5 -5
  33. package/core/common/icon.directive.d.ts.map +1 -1
  34. package/core/common/service-registry.model.d.ts +2 -1
  35. package/core/common/service-registry.model.d.ts.map +1 -1
  36. package/core/data-grid/data-grid.model.d.ts +2 -1
  37. package/core/data-grid/data-grid.model.d.ts.map +1 -1
  38. package/core/docs/docs.models.d.ts +2 -1
  39. package/core/docs/docs.models.d.ts.map +1 -1
  40. package/core/docs/help-and-support-outlet/help-and-support-outlet.component.d.ts +5 -1
  41. package/core/docs/help-and-support-outlet/help-and-support-outlet.component.d.ts.map +1 -1
  42. package/core/docs/legal-notices-outlet/legal-notices-outlet.component.d.ts +5 -1
  43. package/core/docs/legal-notices-outlet/legal-notices-outlet.component.d.ts.map +1 -1
  44. package/core/docs/support-outlet/support-outlet.component.d.ts +5 -1
  45. package/core/docs/support-outlet/support-outlet.component.d.ts.map +1 -1
  46. package/core/forms/filter-input.component.d.ts +8 -3
  47. package/core/forms/filter-input.component.d.ts.map +1 -1
  48. package/core/i18n/translate.service.d.ts.map +1 -1
  49. package/core/list-group/list-item-action.component.d.ts +2 -1
  50. package/core/list-group/list-item-action.component.d.ts.map +1 -1
  51. package/core/list-group/list-item-icon.component.d.ts +2 -1
  52. package/core/list-group/list-item-icon.component.d.ts.map +1 -1
  53. package/core/login/login.service.d.ts.map +1 -1
  54. package/core/navigator/navigator-icon.component.d.ts +1 -1
  55. package/core/navigator/navigator-icon.component.d.ts.map +1 -1
  56. package/core/navigator/navigator-node-data.d.ts +2 -1
  57. package/core/navigator/navigator-node-data.d.ts.map +1 -1
  58. package/core/navigator/navigator-node.component.d.ts.map +1 -1
  59. package/core/navigator/navigator-node.d.ts +2 -1
  60. package/core/navigator/navigator-node.d.ts.map +1 -1
  61. package/core/plugins/plugins.model.d.ts +7 -2
  62. package/core/plugins/plugins.model.d.ts.map +1 -1
  63. package/core/plugins/plugins.service.d.ts.map +1 -1
  64. package/core/properties-list/properties-list.component.d.ts +2 -1
  65. package/core/properties-list/properties-list.component.d.ts.map +1 -1
  66. package/core/provider-configuration/model/dynamic-provider-config.model.d.ts +2 -2
  67. package/core/provider-configuration/model/dynamic-provider-config.model.d.ts.map +1 -1
  68. package/core/router/context-route.service.d.ts.map +1 -1
  69. package/core/router/router.model.d.ts +1 -1
  70. package/core/router/router.model.d.ts.map +1 -1
  71. package/core/router/scoped-context-route.service.d.ts.map +1 -1
  72. package/core/search/search.model.d.ts +2 -1
  73. package/core/search/search.model.d.ts.map +1 -1
  74. package/core/select/select-keyboard.service.d.ts +4 -0
  75. package/core/select/select-keyboard.service.d.ts.map +1 -1
  76. package/core/select/select.component.d.ts +14 -3
  77. package/core/select/select.component.d.ts.map +1 -1
  78. package/core/select-modal/select-modal.component.d.ts +2 -1
  79. package/core/select-modal/select-modal.component.d.ts.map +1 -1
  80. package/core/shared/core.model.d.ts +5 -1
  81. package/core/shared/core.model.d.ts.map +1 -1
  82. package/core/tabs/conditional-tabs-outlet.component.d.ts.map +1 -1
  83. package/core/tabs/tab.component.d.ts +3 -2
  84. package/core/tabs/tab.component.d.ts.map +1 -1
  85. package/core/tabs/tab.model.d.ts +10 -5
  86. package/core/tabs/tab.model.d.ts.map +1 -1
  87. package/core/tabs/tabs-outlet.component.d.ts +7 -4
  88. package/core/tabs/tabs-outlet.component.d.ts.map +1 -1
  89. package/core/user/user-menu-item.component.d.ts +2 -1
  90. package/core/user/user-menu-item.component.d.ts.map +1 -1
  91. package/core/user/user.model.d.ts +2 -1
  92. package/core/user/user.model.d.ts.map +1 -1
  93. package/core/wizard/wizard.model.d.ts +4 -3
  94. package/core/wizard/wizard.model.d.ts.map +1 -1
  95. package/data-grid-columns/asset-type/asset-type.cell-renderer.component.d.ts.map +1 -1
  96. package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.d.ts +15 -46
  97. package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.d.ts.map +1 -1
  98. package/datapoint-selector/datapoint-attributes-form/datapoint-attributes.model.d.ts +3 -0
  99. package/datapoint-selector/datapoint-attributes-form/datapoint-attributes.model.d.ts.map +1 -1
  100. package/datapoint-selector/datapoint-selection.model.d.ts +6 -7
  101. package/datapoint-selector/datapoint-selection.model.d.ts.map +1 -1
  102. package/datapoints-export-selector/datapoints-export-selector.model.d.ts +2 -1
  103. package/datapoints-export-selector/datapoints-export-selector.model.d.ts.map +1 -1
  104. package/device-grid/columns/icon.cell-renderer.component.d.ts +14 -0
  105. package/device-grid/columns/icon.cell-renderer.component.d.ts.map +1 -0
  106. package/device-grid/columns/index.d.ts +1 -0
  107. package/device-grid/columns/index.d.ts.map +1 -1
  108. package/device-grid/device-grid.component.d.ts.map +1 -1
  109. package/device-grid/device-grid.service.d.ts +0 -2
  110. package/device-grid/device-grid.service.d.ts.map +1 -1
  111. package/device-provisioned-certificates/c8y-ngx-components-device-provisioned-certificates.d.ts.map +1 -0
  112. package/device-provisioned-certificates/device-provisioned-certificates.guard.d.ts +11 -0
  113. package/device-provisioned-certificates/device-provisioned-certificates.guard.d.ts.map +1 -0
  114. package/device-provisioned-certificates/device-provisioned-certificates.module.d.ts +13 -0
  115. package/device-provisioned-certificates/device-provisioned-certificates.module.d.ts.map +1 -0
  116. package/device-provisioned-certificates/device-provisioned-certificates.service.d.ts +13 -0
  117. package/device-provisioned-certificates/device-provisioned-certificates.service.d.ts.map +1 -0
  118. package/device-provisioned-certificates/device-tab-provisioned-certificates.component.d.ts +57 -0
  119. package/device-provisioned-certificates/device-tab-provisioned-certificates.component.d.ts.map +1 -0
  120. package/device-provisioned-certificates/index.d.ts +2 -0
  121. package/device-provisioned-certificates/index.d.ts.map +1 -0
  122. package/ecosystem/application-plugins/application-plugins.component.d.ts +4 -0
  123. package/ecosystem/application-plugins/application-plugins.component.d.ts.map +1 -1
  124. package/ecosystem/application-plugins/application-plugins.module.d.ts +2 -2
  125. package/ecosystem/application-plugins/application-plugins.module.d.ts.map +1 -1
  126. package/ecosystem/application-plugins/index.d.ts +1 -0
  127. package/ecosystem/application-plugins/index.d.ts.map +1 -1
  128. package/ecosystem/application-plugins/install-plugin.component.d.ts +9 -11
  129. package/ecosystem/application-plugins/install-plugin.component.d.ts.map +1 -1
  130. package/ecosystem/application-plugins/only-latest-filter/only-latest-filter.component.d.ts +12 -0
  131. package/ecosystem/application-plugins/only-latest-filter/only-latest-filter.component.d.ts.map +1 -0
  132. package/ecosystem/application-plugins/plugin-list-item.component.d.ts +8 -3
  133. package/ecosystem/application-plugins/plugin-list-item.component.d.ts.map +1 -1
  134. package/ecosystem/application-plugins/plugin-list.component.d.ts.map +1 -1
  135. package/ecosystem/application-plugins/update-plugin-of-app/update-plugin-of-app.component.d.ts.map +1 -1
  136. package/ecosystem/applications/application-list/application-list.component.d.ts +2 -2
  137. package/ecosystem/applications/application-list/application-list.component.d.ts.map +1 -1
  138. package/ecosystem/applications/install-from-package/install-from-package.component.d.ts.map +1 -1
  139. package/ecosystem/archived-confirm/archived-confirm-modal.component.d.ts +11 -0
  140. package/ecosystem/archived-confirm/archived-confirm-modal.component.d.ts.map +1 -0
  141. package/ecosystem/archived-confirm/archived-confirm.module.d.ts +10 -0
  142. package/ecosystem/archived-confirm/archived-confirm.module.d.ts.map +1 -0
  143. package/ecosystem/archived-confirm/c8y-ngx-components-ecosystem-archived-confirm.d.ts.map +1 -0
  144. package/ecosystem/archived-confirm/index.d.ts +3 -0
  145. package/ecosystem/archived-confirm/index.d.ts.map +1 -0
  146. package/ecosystem/ecosystem.module.d.ts +2 -1
  147. package/ecosystem/ecosystem.module.d.ts.map +1 -1
  148. package/ecosystem/features/feature-list.component.d.ts +2 -2
  149. package/ecosystem/features/feature-list.component.d.ts.map +1 -1
  150. package/ecosystem/microservices/microservice-list.component.d.ts +2 -2
  151. package/ecosystem/microservices/microservice-list.component.d.ts.map +1 -1
  152. package/ecosystem/packages/deploy-application/deploy-application.component.d.ts.map +1 -1
  153. package/ecosystem/packages/package-details/package-details.component.d.ts +7 -2
  154. package/ecosystem/packages/package-details/package-details.component.d.ts.map +1 -1
  155. package/ecosystem/packages/package-list/packages-list.component.d.ts +2 -2
  156. package/ecosystem/packages/package-list/packages-list.component.d.ts.map +1 -1
  157. package/ecosystem/shared/add-application.component.d.ts +2 -1
  158. package/ecosystem/shared/add-application.component.d.ts.map +1 -1
  159. package/ecosystem/shared/application-card.component.d.ts +4 -0
  160. package/ecosystem/shared/application-card.component.d.ts.map +1 -1
  161. package/ecosystem/shared/archived-filter/archived-filter.component.d.ts +12 -0
  162. package/ecosystem/shared/archived-filter/archived-filter.component.d.ts.map +1 -0
  163. package/ecosystem/shared/ecosystem.constants.d.ts +4 -0
  164. package/ecosystem/shared/ecosystem.constants.d.ts.map +1 -1
  165. package/ecosystem/shared/ecosystem.model.d.ts +5 -1
  166. package/ecosystem/shared/ecosystem.model.d.ts.map +1 -1
  167. package/ecosystem/shared/ecosystem.service.d.ts +7 -0
  168. package/ecosystem/shared/ecosystem.service.d.ts.map +1 -1
  169. package/ecosystem/shared/index.d.ts +1 -0
  170. package/ecosystem/shared/index.d.ts.map +1 -1
  171. package/ecosystem/shared/list-filters/list-filters.component.d.ts +14 -4
  172. package/ecosystem/shared/list-filters/list-filters.component.d.ts.map +1 -1
  173. package/ecosystem/shared/list-filters/list-filters.model.d.ts +8 -2
  174. package/ecosystem/shared/list-filters/list-filters.model.d.ts.map +1 -1
  175. package/ecosystem/shared/shared-ecosystem.module.d.ts +9 -8
  176. package/ecosystem/shared/shared-ecosystem.module.d.ts.map +1 -1
  177. package/ecosystem/shared/translate-package-label.pipe.d.ts +1 -1
  178. package/ecosystem/shared/translate-package-label.pipe.d.ts.map +1 -1
  179. package/esm2022/alarms/alarm-info.component.mjs +1 -1
  180. package/esm2022/api/services.mjs +2 -2
  181. package/esm2022/auth-configuration/sso-configuration/template-parts/access-mapping/access-mapping.component.mjs +10 -5
  182. package/esm2022/auth-configuration/sso-configuration/template-parts/user-data-mapping.component.mjs +4 -4
  183. package/esm2022/branding/shared/lazy/branding-form/branding-form.component.mjs +3 -3
  184. package/esm2022/context-dashboard/add-dashboard.component.mjs +4 -2
  185. package/esm2022/context-dashboard/context-dashboard.model.mjs +3 -2
  186. package/esm2022/context-dashboard/context-dashboard.service.mjs +2 -2
  187. package/esm2022/context-dashboard/dashboard-detail.component.mjs +5 -3
  188. package/esm2022/context-dashboard/dashboard-manager/dashboard-manager.model.mjs +1 -1
  189. package/esm2022/context-dashboard/dashboard-manager/dashboard-manager.service.mjs +5 -15
  190. package/esm2022/context-dashboard/dashboard-manager/type-dashboards-list/type-dashboards-list.component.mjs +2 -2
  191. package/esm2022/context-dashboard/new-dashboard.guard.mjs +1 -1
  192. package/esm2022/core/action/action.component.mjs +1 -1
  193. package/esm2022/core/action/action.model.mjs +1 -1
  194. package/esm2022/core/bootstrap/bootstrap.component.mjs +1 -1
  195. package/esm2022/core/breadcrumb/breadcrumb-item.component.mjs +1 -1
  196. package/esm2022/core/breadcrumb/breadcrumb.model.mjs +1 -1
  197. package/esm2022/core/common/ApplicationOptions.mjs +1 -1
  198. package/esm2022/core/common/empty-state/empty-state.component.mjs +1 -1
  199. package/esm2022/core/common/get-group-icon.pipe.mjs +1 -1
  200. package/esm2022/core/common/group.service.mjs +2 -2
  201. package/esm2022/core/common/icon.directive.mjs +1 -1
  202. package/esm2022/core/common/service-registry.model.mjs +1 -1
  203. package/esm2022/core/data-grid/data-grid.model.mjs +1 -1
  204. package/esm2022/core/docs/docs.models.mjs +1 -1
  205. package/esm2022/core/docs/support-outlet/support-outlet.component.mjs +3 -3
  206. package/esm2022/core/forms/filter-input.component.mjs +22 -7
  207. package/esm2022/core/i18n/translate.service.mjs +7 -5
  208. package/esm2022/core/list-group/list-item-action.component.mjs +1 -1
  209. package/esm2022/core/list-group/list-item-icon.component.mjs +1 -1
  210. package/esm2022/core/login/credentials.component.mjs +2 -2
  211. package/esm2022/core/login/login.service.mjs +18 -7
  212. package/esm2022/core/navigator/navigator-node-data.mjs +1 -1
  213. package/esm2022/core/navigator/navigator-node.component.mjs +11 -2
  214. package/esm2022/core/navigator/navigator-node.mjs +1 -1
  215. package/esm2022/core/plugins/plugins.model.mjs +5 -1
  216. package/esm2022/core/plugins/plugins.service.mjs +6 -2
  217. package/esm2022/core/properties-list/properties-list.component.mjs +1 -1
  218. package/esm2022/core/provider-configuration/model/dynamic-provider-config.model.mjs +1 -1
  219. package/esm2022/core/router/context-route.service.mjs +4 -2
  220. package/esm2022/core/router/router.model.mjs +1 -1
  221. package/esm2022/core/router/scoped-context-route.service.mjs +4 -2
  222. package/esm2022/core/search/search.model.mjs +1 -1
  223. package/esm2022/core/select/select-keyboard.service.mjs +7 -3
  224. package/esm2022/core/select/select.component.mjs +36 -8
  225. package/esm2022/core/select-modal/select-modal.component.mjs +2 -2
  226. package/esm2022/core/shared/core.model.mjs +6 -2
  227. package/esm2022/core/tabs/conditional-tabs-outlet.component.mjs +4 -2
  228. package/esm2022/core/tabs/tab.component.mjs +1 -1
  229. package/esm2022/core/tabs/tab.model.mjs +1 -1
  230. package/esm2022/core/tabs/tabs-outlet.component.mjs +41 -12
  231. package/esm2022/core/user/user-menu-item.component.mjs +1 -1
  232. package/esm2022/core/user/user.model.mjs +1 -1
  233. package/esm2022/core/wizard/wizard.model.mjs +1 -1
  234. package/esm2022/data-grid-columns/asset-type/asset-type.cell-renderer.component.mjs +1 -1
  235. package/esm2022/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.mjs +47 -22
  236. package/esm2022/datapoint-selector/datapoint-attributes-form/datapoint-attributes.model.mjs +1 -1
  237. package/esm2022/datapoint-selector/datapoint-selection.model.mjs +1 -1
  238. package/esm2022/datapoint-selector/datapoint-selector-list-item/datapoint-selector-list-item.component.mjs +3 -3
  239. package/esm2022/datapoints-export-selector/datapoints-export-selector.model.mjs +1 -1
  240. package/esm2022/device-grid/columns/icon.cell-renderer.component.mjs +42 -0
  241. package/esm2022/device-grid/columns/index.mjs +2 -1
  242. package/esm2022/device-grid/device-grid.component.mjs +3 -3
  243. package/esm2022/device-grid/device-grid.service.mjs +7 -25
  244. package/esm2022/device-provisioned-certificates/c8y-ngx-components-device-provisioned-certificates.mjs +5 -0
  245. package/esm2022/device-provisioned-certificates/device-provisioned-certificates.guard.mjs +28 -0
  246. package/esm2022/device-provisioned-certificates/device-provisioned-certificates.module.mjs +51 -0
  247. package/esm2022/device-provisioned-certificates/device-provisioned-certificates.service.mjs +31 -0
  248. package/esm2022/device-provisioned-certificates/device-tab-provisioned-certificates.component.mjs +76 -0
  249. package/esm2022/device-provisioned-certificates/index.mjs +2 -0
  250. package/esm2022/ecosystem/application-plugins/application-plugins.component.mjs +41 -39
  251. package/esm2022/ecosystem/application-plugins/application-plugins.module.mjs +8 -6
  252. package/esm2022/ecosystem/application-plugins/apps-to-update-remotes-select.component.mjs +1 -1
  253. package/esm2022/ecosystem/application-plugins/index.mjs +2 -1
  254. package/esm2022/ecosystem/application-plugins/install-plugin.component.mjs +18 -21
  255. package/esm2022/ecosystem/application-plugins/only-latest-filter/only-latest-filter.component.mjs +26 -0
  256. package/esm2022/ecosystem/application-plugins/plugin-list-item.component.mjs +14 -6
  257. package/esm2022/ecosystem/application-plugins/plugin-list.component.mjs +14 -12
  258. package/esm2022/ecosystem/application-plugins/update-plugin-of-app/update-plugin-of-app.component.mjs +7 -1
  259. package/esm2022/ecosystem/applications/application-list/application-list.component.mjs +1 -1
  260. package/esm2022/ecosystem/applications/install-from-package/install-from-package.component.mjs +6 -1
  261. package/esm2022/ecosystem/archived-confirm/archived-confirm-modal.component.mjs +22 -0
  262. package/esm2022/ecosystem/archived-confirm/archived-confirm.module.mjs +32 -0
  263. package/esm2022/ecosystem/archived-confirm/c8y-ngx-components-ecosystem-archived-confirm.mjs +5 -0
  264. package/esm2022/ecosystem/archived-confirm/index.mjs +3 -0
  265. package/esm2022/ecosystem/ecosystem.module.mjs +20 -16
  266. package/esm2022/ecosystem/features/feature-list.component.mjs +1 -1
  267. package/esm2022/ecosystem/microservices/microservice-list.component.mjs +1 -1
  268. package/esm2022/ecosystem/packages/deploy-application/deploy-application.component.mjs +6 -1
  269. package/esm2022/ecosystem/packages/package-details/package-details.component.mjs +13 -8
  270. package/esm2022/ecosystem/packages/package-list/packages-list.component.mjs +4 -4
  271. package/esm2022/ecosystem/shared/add-application.component.mjs +1 -1
  272. package/esm2022/ecosystem/shared/application-card.component.mjs +3 -3
  273. package/esm2022/ecosystem/shared/archived-filter/archived-filter.component.mjs +27 -0
  274. package/esm2022/ecosystem/shared/ecosystem.constants.mjs +5 -1
  275. package/esm2022/ecosystem/shared/ecosystem.model.mjs +7 -3
  276. package/esm2022/ecosystem/shared/ecosystem.service.mjs +26 -1
  277. package/esm2022/ecosystem/shared/index.mjs +2 -1
  278. package/esm2022/ecosystem/shared/list-filters/list-filters.component.mjs +75 -13
  279. package/esm2022/ecosystem/shared/list-filters/list-filters.model.mjs +1 -1
  280. package/esm2022/ecosystem/shared/shared-ecosystem.module.mjs +10 -5
  281. package/esm2022/ecosystem/shared/translate-package-label.pipe.mjs +3 -3
  282. package/esm2022/files-repository/files-repository.component.mjs +2 -2
  283. package/esm2022/files-repository/files-repository.service.mjs +5 -16
  284. package/esm2022/icon-selector/icon-selector.component.mjs +1 -1
  285. package/esm2022/icon-selector/icons/index.mjs +1 -1
  286. package/esm2022/operations/shared/status-option.model.mjs +1 -1
  287. package/esm2022/protocol-lwm2m/components/configuration/lwm2m-configuration.component.mjs +2 -2
  288. package/esm2022/protocol-opcua/opcua-auto-apply-settings.component.mjs +1 -1
  289. package/esm2022/register-device/bulk/bulk-device-registration-modal.component.mjs +17 -9
  290. package/esm2022/register-device/general/general-device-registration-button.component.mjs +3 -3
  291. package/esm2022/register-device/general/general-device-registration.component.mjs +109 -33
  292. package/esm2022/remote-access/configurations/c8y-ngx-components-remote-access-configurations.mjs +5 -0
  293. package/esm2022/remote-access/configurations/index.mjs +16 -0
  294. package/esm2022/remote-access/configurations/remote-access-configuration-list/remote-access-configuration-list.component.mjs +218 -0
  295. package/esm2022/remote-access/configurations/remote-access-configuration-list/remote-access-connect-button/remote-access-connect-button.component.mjs +60 -0
  296. package/esm2022/remote-access/configurations/remote-access-pick-protocol-modal/remote-access-pick-protocol-modal.component.mjs +36 -0
  297. package/esm2022/remote-access/data/c8y-ngx-components-remote-access-data.mjs +5 -0
  298. package/esm2022/remote-access/data/index.mjs +3 -0
  299. package/esm2022/remote-access/data/remote-access-protocol-provider.mjs +2 -0
  300. package/esm2022/remote-access/data/remote-access.service.mjs +200 -0
  301. package/esm2022/remote-access/passthrough/c8y-ngx-components-remote-access-passthrough.mjs +5 -0
  302. package/esm2022/remote-access/passthrough/index.mjs +36 -0
  303. package/esm2022/remote-access/shared/c8y-ngx-components-remote-access-shared.mjs +5 -0
  304. package/esm2022/remote-access/shared/index.mjs +3 -0
  305. package/esm2022/remote-access/shared/remote-access-basic-endpoint-modal/remote-access-basic-endpoint-modal.component.mjs +49 -0
  306. package/esm2022/remote-access/shared/ssh-key-input/ssh-key-input.component.mjs +87 -0
  307. package/esm2022/remote-access/ssh/c8y-ngx-components-remote-access-ssh.mjs +5 -0
  308. package/esm2022/remote-access/ssh/index.mjs +73 -0
  309. package/esm2022/remote-access/ssh/remote-access-ssh-endpoint-modal/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +5 -0
  310. package/esm2022/remote-access/ssh/remote-access-ssh-endpoint-modal/index.mjs +2 -0
  311. package/esm2022/remote-access/ssh/remote-access-ssh-endpoint-modal/remote-access-ssh-endpoint-modal.component.mjs +104 -0
  312. package/esm2022/remote-access/telnet/c8y-ngx-components-remote-access-telnet.mjs +5 -0
  313. package/esm2022/remote-access/telnet/index.mjs +43 -0
  314. package/esm2022/remote-access/terminal-viewer/c8y-ngx-components-remote-access-terminal-viewer.mjs +5 -0
  315. package/esm2022/remote-access/terminal-viewer/index.mjs +2 -0
  316. package/esm2022/remote-access/terminal-viewer/shell-adapter.mjs +36 -0
  317. package/esm2022/remote-access/terminal-viewer/telnet-negotiator.mjs +96 -0
  318. package/esm2022/remote-access/terminal-viewer/terminal-viewer.component.mjs +101 -0
  319. package/esm2022/remote-access/vnc/c8y-ngx-components-remote-access-vnc.mjs +5 -0
  320. package/esm2022/remote-access/vnc/index.mjs +73 -0
  321. package/esm2022/remote-access/vnc/remote-access-vnc-endpoint-modal/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +5 -0
  322. package/esm2022/remote-access/vnc/remote-access-vnc-endpoint-modal/index.mjs +2 -0
  323. package/esm2022/remote-access/vnc/remote-access-vnc-endpoint-modal/remote-access-vnc-endpoint-modal.component.mjs +59 -0
  324. package/esm2022/remote-access/vnc/vnc-viewer/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +5 -0
  325. package/esm2022/remote-access/vnc/vnc-viewer/index.mjs +2 -0
  326. package/esm2022/remote-access/vnc/vnc-viewer/vnc-credentials-prompt/vnc-credentials-prompt.component.mjs +57 -0
  327. package/esm2022/remote-access/vnc/vnc-viewer/vnc-viewer.component.mjs +158 -0
  328. package/esm2022/replace-device/replace-device-wizard/replace-device-wizard.model.mjs +1 -1
  329. package/esm2022/report-dashboard/report-dashboard-list.component.mjs +4 -3
  330. package/esm2022/repository/configuration/device-tab/device-configuration-list.component.mjs +1 -1
  331. package/esm2022/repository/shared/repository.model.mjs +1 -1
  332. package/esm2022/repository/shared/repository.service.mjs +3 -3
  333. package/esm2022/services/status-options/status-options.model.mjs +1 -1
  334. package/esm2022/sub-assets/group-info.component.mjs +1 -1
  335. package/esm2022/translation-editor/data/translation-store.service.mjs +4 -3
  336. package/esm2022/trusted-certificates/list/trusted-certificate-list.component.mjs +35 -9
  337. package/esm2022/upgrade/bridge.service.mjs +16 -2
  338. package/esm2022/widgets/implementations/alarms/severity-icon.pipe.mjs +1 -1
  339. package/esm2022/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.component.mjs +3 -2
  340. package/esm2022/widgets/implementations/kpi/kpi-widget.model.mjs +1 -1
  341. package/fesm2022/c8y-ngx-components-alarms.mjs +1 -1
  342. package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
  343. package/fesm2022/c8y-ngx-components-api.mjs +3 -2
  344. package/fesm2022/c8y-ngx-components-api.mjs.map +1 -1
  345. package/fesm2022/c8y-ngx-components-auth-configuration.mjs +12 -7
  346. package/fesm2022/c8y-ngx-components-auth-configuration.mjs.map +1 -1
  347. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +2 -2
  348. package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
  349. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +15 -20
  350. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  351. package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs.map +1 -1
  352. package/fesm2022/c8y-ngx-components-data-grid-columns.mjs.map +1 -1
  353. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +48 -23
  354. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
  355. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -1
  356. package/fesm2022/c8y-ngx-components-device-grid.mjs +48 -28
  357. package/fesm2022/c8y-ngx-components-device-grid.mjs.map +1 -1
  358. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +174 -0
  359. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs.map +1 -0
  360. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +125 -105
  361. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
  362. package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs +57 -0
  363. package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs.map +1 -0
  364. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +147 -31
  365. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
  366. package/fesm2022/c8y-ngx-components-ecosystem.mjs +1452 -1414
  367. package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
  368. package/fesm2022/c8y-ngx-components-files-repository.mjs +5 -16
  369. package/fesm2022/c8y-ngx-components-files-repository.mjs.map +1 -1
  370. package/fesm2022/c8y-ngx-components-icon-selector-icons.mjs.map +1 -1
  371. package/fesm2022/c8y-ngx-components-icon-selector.mjs.map +1 -1
  372. package/fesm2022/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs +1 -1
  373. package/fesm2022/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs.map +1 -1
  374. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +1 -1
  375. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs.map +1 -1
  376. package/fesm2022/c8y-ngx-components-register-device.mjs +269 -188
  377. package/fesm2022/c8y-ngx-components-register-device.mjs.map +1 -1
  378. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +314 -0
  379. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs.map +1 -0
  380. package/fesm2022/c8y-ngx-components-remote-access-data.mjs +206 -0
  381. package/fesm2022/c8y-ngx-components-remote-access-data.mjs.map +1 -0
  382. package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs +42 -0
  383. package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs.map +1 -0
  384. package/fesm2022/c8y-ngx-components-remote-access-shared.mjs +138 -0
  385. package/fesm2022/c8y-ngx-components-remote-access-shared.mjs.map +1 -0
  386. package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +111 -0
  387. package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs.map +1 -0
  388. package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs +79 -0
  389. package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs.map +1 -0
  390. package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs +50 -0
  391. package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs.map +1 -0
  392. package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs +235 -0
  393. package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs.map +1 -0
  394. package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +66 -0
  395. package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs.map +1 -0
  396. package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +211 -0
  397. package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs.map +1 -0
  398. package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs +79 -0
  399. package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs.map +1 -0
  400. package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs.map +1 -1
  401. package/fesm2022/c8y-ngx-components-report-dashboard.mjs +3 -2
  402. package/fesm2022/c8y-ngx-components-report-dashboard.mjs.map +1 -1
  403. package/fesm2022/c8y-ngx-components-repository-configuration.mjs +1 -1
  404. package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
  405. package/fesm2022/c8y-ngx-components-repository-shared.mjs +2 -2
  406. package/fesm2022/c8y-ngx-components-repository-shared.mjs.map +1 -1
  407. package/fesm2022/c8y-ngx-components-services.mjs.map +1 -1
  408. package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
  409. package/fesm2022/c8y-ngx-components-translation-editor-data.mjs +3 -2
  410. package/fesm2022/c8y-ngx-components-translation-editor-data.mjs.map +1 -1
  411. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +43 -17
  412. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs.map +1 -1
  413. package/fesm2022/c8y-ngx-components-upgrade.mjs +16 -2
  414. package/fesm2022/c8y-ngx-components-upgrade.mjs.map +1 -1
  415. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
  416. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +2 -1
  417. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs.map +1 -1
  418. package/fesm2022/c8y-ngx-components.mjs +157 -42
  419. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  420. package/files-repository/files-repository.component.d.ts.map +1 -1
  421. package/files-repository/files-repository.service.d.ts +0 -2
  422. package/files-repository/files-repository.service.d.ts.map +1 -1
  423. package/icon-selector/icon-selector.component.d.ts +3 -2
  424. package/icon-selector/icon-selector.component.d.ts.map +1 -1
  425. package/icon-selector/icons/index.d.ts +1 -0
  426. package/icon-selector/icons/index.d.ts.map +1 -1
  427. package/locales/de.po +157 -5
  428. package/locales/es.po +157 -5
  429. package/locales/fr.po +157 -5
  430. package/locales/ja_JP.po +156 -5
  431. package/locales/ko.po +156 -5
  432. package/locales/locales.pot +156 -4
  433. package/locales/nl.po +157 -5
  434. package/locales/pl.po +157 -5
  435. package/locales/pt_BR.po +157 -5
  436. package/locales/zh_CN.po +156 -5
  437. package/locales/zh_TW.po +156 -5
  438. package/operations/shared/status-option.model.d.ts +2 -1
  439. package/operations/shared/status-option.model.d.ts.map +1 -1
  440. package/package.json +1 -1
  441. package/register-device/bulk/bulk-device-registration-modal.component.d.ts +6 -2
  442. package/register-device/bulk/bulk-device-registration-modal.component.d.ts.map +1 -1
  443. package/register-device/general/general-device-registration-button.component.d.ts +1 -1
  444. package/register-device/general/general-device-registration-button.component.d.ts.map +1 -1
  445. package/register-device/general/general-device-registration.component.d.ts +21 -7
  446. package/register-device/general/general-device-registration.component.d.ts.map +1 -1
  447. package/remote-access/configurations/c8y-ngx-components-remote-access-configurations.d.ts.map +1 -0
  448. package/remote-access/configurations/index.d.ts +3 -0
  449. package/remote-access/configurations/index.d.ts.map +1 -0
  450. package/remote-access/configurations/remote-access-configuration-list/remote-access-configuration-list.component.d.ts +34 -0
  451. package/remote-access/configurations/remote-access-configuration-list/remote-access-configuration-list.component.d.ts.map +1 -0
  452. package/remote-access/configurations/remote-access-configuration-list/remote-access-connect-button/remote-access-connect-button.component.d.ts +17 -0
  453. package/remote-access/configurations/remote-access-configuration-list/remote-access-connect-button/remote-access-connect-button.component.d.ts.map +1 -0
  454. package/remote-access/configurations/remote-access-pick-protocol-modal/remote-access-pick-protocol-modal.component.d.ts +18 -0
  455. package/remote-access/configurations/remote-access-pick-protocol-modal/remote-access-pick-protocol-modal.component.d.ts.map +1 -0
  456. package/remote-access/data/c8y-ngx-components-remote-access-data.d.ts.map +1 -0
  457. package/remote-access/data/index.d.ts +3 -0
  458. package/remote-access/data/index.d.ts.map +1 -0
  459. package/remote-access/data/remote-access-protocol-provider.d.ts +21 -0
  460. package/remote-access/data/remote-access-protocol-provider.d.ts.map +1 -0
  461. package/remote-access/data/remote-access.service.d.ts +94 -0
  462. package/remote-access/data/remote-access.service.d.ts.map +1 -0
  463. package/remote-access/passthrough/c8y-ngx-components-remote-access-passthrough.d.ts.map +1 -0
  464. package/remote-access/passthrough/index.d.ts +17 -0
  465. package/remote-access/passthrough/index.d.ts.map +1 -0
  466. package/remote-access/shared/c8y-ngx-components-remote-access-shared.d.ts.map +1 -0
  467. package/remote-access/shared/index.d.ts +3 -0
  468. package/remote-access/shared/index.d.ts.map +1 -0
  469. package/remote-access/shared/remote-access-basic-endpoint-modal/remote-access-basic-endpoint-modal.component.d.ts +37 -0
  470. package/remote-access/shared/remote-access-basic-endpoint-modal/remote-access-basic-endpoint-modal.component.d.ts.map +1 -0
  471. package/remote-access/shared/ssh-key-input/ssh-key-input.component.d.ts +38 -0
  472. package/remote-access/shared/ssh-key-input/ssh-key-input.component.d.ts.map +1 -0
  473. package/remote-access/ssh/c8y-ngx-components-remote-access-ssh.d.ts.map +1 -0
  474. package/remote-access/ssh/index.d.ts +22 -0
  475. package/remote-access/ssh/index.d.ts.map +1 -0
  476. package/remote-access/ssh/remote-access-ssh-endpoint-modal/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.d.ts.map +1 -0
  477. package/remote-access/ssh/remote-access-ssh-endpoint-modal/index.d.ts +2 -0
  478. package/remote-access/ssh/remote-access-ssh-endpoint-modal/index.d.ts.map +1 -0
  479. package/remote-access/ssh/remote-access-ssh-endpoint-modal/remote-access-ssh-endpoint-modal.component.d.ts +64 -0
  480. package/remote-access/ssh/remote-access-ssh-endpoint-modal/remote-access-ssh-endpoint-modal.component.d.ts.map +1 -0
  481. package/remote-access/telnet/c8y-ngx-components-remote-access-telnet.d.ts.map +1 -0
  482. package/remote-access/telnet/index.d.ts +17 -0
  483. package/remote-access/telnet/index.d.ts.map +1 -0
  484. package/remote-access/terminal-viewer/c8y-ngx-components-remote-access-terminal-viewer.d.ts.map +1 -0
  485. package/remote-access/terminal-viewer/index.d.ts +2 -0
  486. package/remote-access/terminal-viewer/index.d.ts.map +1 -0
  487. package/remote-access/terminal-viewer/shell-adapter.d.ts +14 -0
  488. package/remote-access/terminal-viewer/shell-adapter.d.ts.map +1 -0
  489. package/remote-access/terminal-viewer/telnet-negotiator.d.ts +13 -0
  490. package/remote-access/terminal-viewer/telnet-negotiator.d.ts.map +1 -0
  491. package/remote-access/terminal-viewer/terminal-viewer.component.d.ts +25 -0
  492. package/remote-access/terminal-viewer/terminal-viewer.component.d.ts.map +1 -0
  493. package/remote-access/vnc/c8y-ngx-components-remote-access-vnc.d.ts.map +1 -0
  494. package/remote-access/vnc/index.d.ts +22 -0
  495. package/remote-access/vnc/index.d.ts.map +1 -0
  496. package/remote-access/vnc/remote-access-vnc-endpoint-modal/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.d.ts.map +1 -0
  497. package/remote-access/vnc/remote-access-vnc-endpoint-modal/index.d.ts +2 -0
  498. package/remote-access/vnc/remote-access-vnc-endpoint-modal/index.d.ts.map +1 -0
  499. package/remote-access/vnc/remote-access-vnc-endpoint-modal/remote-access-vnc-endpoint-modal.component.d.ts +46 -0
  500. package/remote-access/vnc/remote-access-vnc-endpoint-modal/remote-access-vnc-endpoint-modal.component.d.ts.map +1 -0
  501. package/remote-access/vnc/vnc-viewer/c8y-ngx-components-remote-access-vnc-vnc-viewer.d.ts.map +1 -0
  502. package/remote-access/vnc/vnc-viewer/index.d.ts +2 -0
  503. package/remote-access/vnc/vnc-viewer/index.d.ts.map +1 -0
  504. package/remote-access/vnc/vnc-viewer/vnc-credentials-prompt/vnc-credentials-prompt.component.d.ts +32 -0
  505. package/remote-access/vnc/vnc-viewer/vnc-credentials-prompt/vnc-credentials-prompt.component.d.ts.map +1 -0
  506. package/remote-access/vnc/vnc-viewer/vnc-viewer.component.d.ts +37 -0
  507. package/remote-access/vnc/vnc-viewer/vnc-viewer.component.d.ts.map +1 -0
  508. package/replace-device/replace-device-wizard/replace-device-wizard.model.d.ts +2 -1
  509. package/replace-device/replace-device-wizard/replace-device-wizard.model.d.ts.map +1 -1
  510. package/report-dashboard/report-dashboard-list.component.d.ts +29 -0
  511. package/report-dashboard/report-dashboard-list.component.d.ts.map +1 -1
  512. package/repository/shared/repository.model.d.ts +2 -1
  513. package/repository/shared/repository.model.d.ts.map +1 -1
  514. package/services/status-options/status-options.model.d.ts +2 -1
  515. package/services/status-options/status-options.model.d.ts.map +1 -1
  516. package/sub-assets/group-info.component.d.ts +2 -1
  517. package/sub-assets/group-info.component.d.ts.map +1 -1
  518. package/translation-editor/data/translation-store.service.d.ts.map +1 -1
  519. package/trusted-certificates/list/trusted-certificate-list.component.d.ts +7 -2
  520. package/trusted-certificates/list/trusted-certificate-list.component.d.ts.map +1 -1
  521. package/upgrade/bridge.service.d.ts +5 -0
  522. package/upgrade/bridge.service.d.ts.map +1 -1
  523. package/widgets/implementations/alarms/severity-icon.pipe.d.ts.map +1 -1
  524. package/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.component.d.ts.map +1 -1
  525. package/widgets/implementations/kpi/kpi-widget.model.d.ts +2 -1
  526. package/widgets/implementations/kpi/kpi-widget.model.d.ts.map +1 -1
  527. package/ecosystem/application-plugins/only-latest-plugin-version.pipe.d.ts +0 -10
  528. package/ecosystem/application-plugins/only-latest-plugin-version.pipe.d.ts.map +0 -1
  529. package/esm2022/ecosystem/application-plugins/only-latest-plugin-version.pipe.mjs +0 -20
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-data-grid-columns-asset-type.mjs","sources":["../../data-grid-columns/asset-type/asset-type.cell-renderer.component.ts","../../data-grid-columns/asset-type/asset-type.cell-renderer.component.html","../../data-grid-columns/asset-type/asset-type-grid-column.ts","../../data-grid-columns/asset-type/c8y-ngx-components-data-grid-columns-asset-type.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport {\n CellRendererContext,\n I18nModule,\n gettext,\n CommonModule,\n DeviceStatusModule\n} from '@c8y/ngx-components';\nimport { AssetNodeService } from '@c8y/ngx-components/assets-navigator';\n\n@Component({\n templateUrl: './asset-type.cell-renderer.component.html',\n standalone: true,\n imports: [CommonModule, I18nModule, DeviceStatusModule],\n selector: 'c8y-asset-type-cell-renderer'\n})\nexport class AssetTypeCellRendererComponent implements OnInit {\n groupIcon: Promise<string>;\n isAnyGroup: boolean;\n isDevice: boolean;\n isAsset: boolean;\n iconTitle: string;\n constructor(\n public context: CellRendererContext,\n protected assetNodeService: AssetNodeService\n ) {}\n\n async ngOnInit() {\n this.isAnyGroup = this.assetNodeService.isAnyGroup(this.context.item);\n this.groupIcon = this.assetNodeService.icon(this.context.item);\n this.isDevice = this.assetNodeService.isDevice(this.context.item);\n this.isAsset = this.assetNodeService.isAsset(this.context.item);\n this.iconTitle = this.getIconTitle(await this.groupIcon);\n }\n\n private getIconTitle(icon: string): string {\n if (this.isAsset) {\n return this.context.item.type;\n }\n\n switch (icon) {\n case 'c8y-group':\n return gettext('Group');\n case 'c8y-group-smart':\n return gettext('Smart group');\n case 'c8y-group-remote-inactive':\n return 'Inactive remote group';\n case 'c8y-group-remote':\n return gettext('Remote group');\n case 'exchange':\n return gettext('Device');\n default:\n return gettext('Asset');\n }\n }\n}\n","<device-status\n class=\"m-l-8\"\n [mo]=\"context.item\"\n *ngIf=\"isDevice\"\n></device-status>\n<i\n class=\"m-l-8 c8y-icon-duocolor\"\n [c8yIcon]=\"groupIcon | async\"\n title=\"{{ iconTitle | translate }}\"\n *ngIf=\"isAnyGroup || !isDevice\"\n></i>\n","import {\n BaseColumn,\n ColumnConfig,\n ColumnDataType,\n getBasicInputArrayFormFieldConfig,\n gettext\n} from '@c8y/ngx-components';\nimport { AssetTypeCellRendererComponent } from './asset-type.cell-renderer.component';\n\nexport class AssetTypeGridColumn extends BaseColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'type';\n this.header = gettext('Type');\n this.dataType = ColumnDataType.Icon;\n this.cellRendererComponent = AssetTypeCellRendererComponent;\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: `c8y_IsDeviceGroup` }]\n };\n\n this.filterable = true;\n this.filteringConfig = {\n fields: getBasicInputArrayFormFieldConfig({\n key: 'types',\n label: gettext('Show items with type'),\n addText: gettext('Add next`type`'),\n tooltip: gettext('Use * as a wildcard character'),\n placeholder: gettext('building`e.g. house`')\n }),\n getFilter(model: any): any {\n const filter: any = {};\n if (model.types.length) {\n filter.type = { __in: model.types };\n }\n return filter;\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-data-grid-columns-asset-type.mjs","sources":["../../data-grid-columns/asset-type/asset-type.cell-renderer.component.ts","../../data-grid-columns/asset-type/asset-type.cell-renderer.component.html","../../data-grid-columns/asset-type/asset-type-grid-column.ts","../../data-grid-columns/asset-type/c8y-ngx-components-data-grid-columns-asset-type.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport {\n CellRendererContext,\n I18nModule,\n gettext,\n CommonModule,\n DeviceStatusModule\n} from '@c8y/ngx-components';\nimport { AssetNodeService } from '@c8y/ngx-components/assets-navigator';\nimport { SupportedIconsSuggestions } from '@c8y/ngx-components/icon-selector/icons';\n\n@Component({\n templateUrl: './asset-type.cell-renderer.component.html',\n standalone: true,\n imports: [CommonModule, I18nModule, DeviceStatusModule],\n selector: 'c8y-asset-type-cell-renderer'\n})\nexport class AssetTypeCellRendererComponent implements OnInit {\n groupIcon: Promise<string>;\n isAnyGroup: boolean;\n isDevice: boolean;\n isAsset: boolean;\n iconTitle: string;\n constructor(\n public context: CellRendererContext,\n protected assetNodeService: AssetNodeService\n ) {}\n\n async ngOnInit() {\n this.isAnyGroup = this.assetNodeService.isAnyGroup(this.context.item);\n this.groupIcon = this.assetNodeService.icon(this.context.item);\n this.isDevice = this.assetNodeService.isDevice(this.context.item);\n this.isAsset = this.assetNodeService.isAsset(this.context.item);\n this.iconTitle = this.getIconTitle(await this.groupIcon);\n }\n\n private getIconTitle(icon: SupportedIconsSuggestions): string {\n if (this.isAsset) {\n return this.context.item.type;\n }\n\n switch (icon) {\n case 'c8y-group':\n return gettext('Group');\n case 'c8y-group-smart':\n return gettext('Smart group');\n case 'c8y-group-remote-inactive':\n return 'Inactive remote group';\n case 'c8y-group-remote':\n return gettext('Remote group');\n case 'exchange':\n return gettext('Device');\n default:\n return gettext('Asset');\n }\n }\n}\n","<device-status\n class=\"m-l-8\"\n [mo]=\"context.item\"\n *ngIf=\"isDevice\"\n></device-status>\n<i\n class=\"m-l-8 c8y-icon-duocolor\"\n [c8yIcon]=\"groupIcon | async\"\n title=\"{{ iconTitle | translate }}\"\n *ngIf=\"isAnyGroup || !isDevice\"\n></i>\n","import {\n BaseColumn,\n ColumnConfig,\n ColumnDataType,\n getBasicInputArrayFormFieldConfig,\n gettext\n} from '@c8y/ngx-components';\nimport { AssetTypeCellRendererComponent } from './asset-type.cell-renderer.component';\n\nexport class AssetTypeGridColumn extends BaseColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'type';\n this.header = gettext('Type');\n this.dataType = ColumnDataType.Icon;\n this.cellRendererComponent = AssetTypeCellRendererComponent;\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: `c8y_IsDeviceGroup` }]\n };\n\n this.filterable = true;\n this.filteringConfig = {\n fields: getBasicInputArrayFormFieldConfig({\n key: 'types',\n label: gettext('Show items with type'),\n addText: gettext('Add next`type`'),\n tooltip: gettext('Use * as a wildcard character'),\n placeholder: gettext('building`e.g. house`')\n }),\n getFilter(model: any): any {\n const filter: any = {};\n if (model.types.length) {\n filter.type = { __in: model.types };\n }\n return filter;\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 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-data-grid-columns.mjs","sources":["../../data-grid-columns/asset-type/asset-type.cell-renderer.component.ts","../../data-grid-columns/asset-type/asset-type.cell-renderer.component.html","../../data-grid-columns/asset-type/asset-type-grid-column.ts","../../data-grid-columns/c8y-ngx-components-data-grid-columns.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport {\n CellRendererContext,\n I18nModule,\n gettext,\n CommonModule,\n DeviceStatusModule\n} from '@c8y/ngx-components';\nimport { AssetNodeService } from '@c8y/ngx-components/assets-navigator';\n\n@Component({\n templateUrl: './asset-type.cell-renderer.component.html',\n standalone: true,\n imports: [CommonModule, I18nModule, DeviceStatusModule],\n selector: 'c8y-asset-type-cell-renderer'\n})\nexport class AssetTypeCellRendererComponent implements OnInit {\n groupIcon: Promise<string>;\n isAnyGroup: boolean;\n isDevice: boolean;\n isAsset: boolean;\n iconTitle: string;\n constructor(\n public context: CellRendererContext,\n protected assetNodeService: AssetNodeService\n ) {}\n\n async ngOnInit() {\n this.isAnyGroup = this.assetNodeService.isAnyGroup(this.context.item);\n this.groupIcon = this.assetNodeService.icon(this.context.item);\n this.isDevice = this.assetNodeService.isDevice(this.context.item);\n this.isAsset = this.assetNodeService.isAsset(this.context.item);\n this.iconTitle = this.getIconTitle(await this.groupIcon);\n }\n\n private getIconTitle(icon: string): string {\n if (this.isAsset) {\n return this.context.item.type;\n }\n\n switch (icon) {\n case 'c8y-group':\n return gettext('Group');\n case 'c8y-group-smart':\n return gettext('Smart group');\n case 'c8y-group-remote-inactive':\n return 'Inactive remote group';\n case 'c8y-group-remote':\n return gettext('Remote group');\n case 'exchange':\n return gettext('Device');\n default:\n return gettext('Asset');\n }\n }\n}\n","<device-status\n class=\"m-l-8\"\n [mo]=\"context.item\"\n *ngIf=\"isDevice\"\n></device-status>\n<i\n class=\"m-l-8 c8y-icon-duocolor\"\n [c8yIcon]=\"groupIcon | async\"\n title=\"{{ iconTitle | translate }}\"\n *ngIf=\"isAnyGroup || !isDevice\"\n></i>\n","import {\n BaseColumn,\n ColumnConfig,\n ColumnDataType,\n getBasicInputArrayFormFieldConfig,\n gettext\n} from '@c8y/ngx-components';\nimport { AssetTypeCellRendererComponent } from './asset-type.cell-renderer.component';\n\nexport class AssetTypeGridColumn extends BaseColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'type';\n this.header = gettext('Type');\n this.dataType = ColumnDataType.Icon;\n this.cellRendererComponent = AssetTypeCellRendererComponent;\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: `c8y_IsDeviceGroup` }]\n };\n\n this.filterable = true;\n this.filteringConfig = {\n fields: getBasicInputArrayFormFieldConfig({\n key: 'types',\n label: gettext('Show items with type'),\n addText: gettext('Add next`type`'),\n tooltip: gettext('Use * as a wildcard character'),\n placeholder: gettext('building`e.g. house`')\n }),\n getFilter(model: any): any {\n const filter: any = {};\n if (model.types.length) {\n filter.type = { __in: model.types };\n }\n return filter;\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-data-grid-columns.mjs","sources":["../../data-grid-columns/asset-type/asset-type.cell-renderer.component.ts","../../data-grid-columns/asset-type/asset-type.cell-renderer.component.html","../../data-grid-columns/asset-type/asset-type-grid-column.ts","../../data-grid-columns/c8y-ngx-components-data-grid-columns.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport {\n CellRendererContext,\n I18nModule,\n gettext,\n CommonModule,\n DeviceStatusModule\n} from '@c8y/ngx-components';\nimport { AssetNodeService } from '@c8y/ngx-components/assets-navigator';\nimport { SupportedIconsSuggestions } from '@c8y/ngx-components/icon-selector/icons';\n\n@Component({\n templateUrl: './asset-type.cell-renderer.component.html',\n standalone: true,\n imports: [CommonModule, I18nModule, DeviceStatusModule],\n selector: 'c8y-asset-type-cell-renderer'\n})\nexport class AssetTypeCellRendererComponent implements OnInit {\n groupIcon: Promise<string>;\n isAnyGroup: boolean;\n isDevice: boolean;\n isAsset: boolean;\n iconTitle: string;\n constructor(\n public context: CellRendererContext,\n protected assetNodeService: AssetNodeService\n ) {}\n\n async ngOnInit() {\n this.isAnyGroup = this.assetNodeService.isAnyGroup(this.context.item);\n this.groupIcon = this.assetNodeService.icon(this.context.item);\n this.isDevice = this.assetNodeService.isDevice(this.context.item);\n this.isAsset = this.assetNodeService.isAsset(this.context.item);\n this.iconTitle = this.getIconTitle(await this.groupIcon);\n }\n\n private getIconTitle(icon: SupportedIconsSuggestions): string {\n if (this.isAsset) {\n return this.context.item.type;\n }\n\n switch (icon) {\n case 'c8y-group':\n return gettext('Group');\n case 'c8y-group-smart':\n return gettext('Smart group');\n case 'c8y-group-remote-inactive':\n return 'Inactive remote group';\n case 'c8y-group-remote':\n return gettext('Remote group');\n case 'exchange':\n return gettext('Device');\n default:\n return gettext('Asset');\n }\n }\n}\n","<device-status\n class=\"m-l-8\"\n [mo]=\"context.item\"\n *ngIf=\"isDevice\"\n></device-status>\n<i\n class=\"m-l-8 c8y-icon-duocolor\"\n [c8yIcon]=\"groupIcon | async\"\n title=\"{{ iconTitle | translate }}\"\n *ngIf=\"isAnyGroup || !isDevice\"\n></i>\n","import {\n BaseColumn,\n ColumnConfig,\n ColumnDataType,\n getBasicInputArrayFormFieldConfig,\n gettext\n} from '@c8y/ngx-components';\nimport { AssetTypeCellRendererComponent } from './asset-type.cell-renderer.component';\n\nexport class AssetTypeGridColumn extends BaseColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'type';\n this.header = gettext('Type');\n this.dataType = ColumnDataType.Icon;\n this.cellRendererComponent = AssetTypeCellRendererComponent;\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: `c8y_IsDeviceGroup` }]\n };\n\n this.filterable = true;\n this.filteringConfig = {\n fields: getBasicInputArrayFormFieldConfig({\n key: 'types',\n label: gettext('Show items with type'),\n addText: gettext('Add next`type`'),\n tooltip: gettext('Use * as a wildcard character'),\n placeholder: gettext('building`e.g. house`')\n }),\n getFilter(model: any): any {\n const filter: any = {};\n if (model.types.length) {\n filter.type = { __in: model.types };\n }\n return filter;\n }\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -227,34 +227,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
227
227
  class DatapointAttributesFormComponent {
228
228
  constructor(formValidations) {
229
229
  this.formValidations = formValidations;
230
+ this.selectableChartRenderTypes = [];
231
+ this.selectableChartLineTypes = [];
232
+ this.selectableAxisTypes = [];
230
233
  this.showTarget = true;
231
234
  this.showRange = true;
232
235
  this.showYellowRange = true;
233
236
  this.showRedRange = true;
234
- /**
235
- * Responsible for displaying the chart section in a form.
236
- * Form contains display selector, so if this flag is true
237
- * then the form won't be shown alone (the state of the showDisplay flag won't be taken into account).
238
- */
239
237
  this.showChart = true;
240
- this.showDisplay = false;
241
238
  this.showFormIfTemplateWasSelected = false;
242
239
  this.rawValue = {};
243
- this.CHART_RENDER_TYPES = CHART_RENDER_TYPES;
244
- this.CHART_LINE_TYPES = CHART_LINE_TYPES;
245
- this.AXIS_TYPES = AXIS_TYPES;
240
+ this.CHART_RENDER_TYPES = Array.from(CHART_RENDER_TYPES);
241
+ this.CHART_LINE_TYPES = Array.from(CHART_LINE_TYPES);
242
+ this.AXIS_TYPES = Array.from(AXIS_TYPES);
246
243
  this.customValidationErrorMessages = {};
247
244
  this.shouldForceInitialValidation = true;
248
245
  this.formGroup = this.formValidations.getDefaultFormGroup();
249
246
  this.setSubForms();
250
247
  }
251
248
  ngOnInit() {
252
- /**
253
- * 'showChart' has a higher priority than 'showDisplay' because the display selector is part of the chart section.
254
- */
255
- if (this.showChart && this.showDisplay) {
256
- this.showDisplay = false;
257
- }
249
+ this.initializeFormVisibility();
250
+ this.filterChartTypes();
258
251
  }
259
252
  validate(_control) {
260
253
  if (this.formGroup?.get('series')?.errors?.noPeriods) {
@@ -301,8 +294,36 @@ class DatapointAttributesFormComponent {
301
294
  this.chart = this.formGroup.get('chart');
302
295
  this.display = this.formGroup.get('display');
303
296
  }
297
+ initializeFormVisibility() {
298
+ this.showChartForm = this.chart && this.showChart;
299
+ const hasLineTypes = !!this.selectableChartLineTypes?.length;
300
+ const hasAxisTypes = !!this.selectableAxisTypes?.length;
301
+ const hasRenderTypes = this.selectableChartRenderTypes?.length > 0 || this.selectableChartRenderTypes === undefined;
302
+ this.showOnlyDisplayForm =
303
+ !this.showChartForm && !hasLineTypes && !hasAxisTypes && hasRenderTypes;
304
+ }
305
+ filterChartTypes() {
306
+ this.filterRenderTypes();
307
+ this.filterLineTypes();
308
+ this.filterAxisTypes();
309
+ }
310
+ filterRenderTypes() {
311
+ if (!!this.selectableChartRenderTypes?.length) {
312
+ this.CHART_RENDER_TYPES = this.CHART_RENDER_TYPES.filter(renderType => this.selectableChartRenderTypes.includes(renderType.val));
313
+ }
314
+ }
315
+ filterLineTypes() {
316
+ if (!!this.selectableChartLineTypes?.length) {
317
+ this.CHART_LINE_TYPES = this.CHART_LINE_TYPES.filter(lineType => this.selectableChartLineTypes.includes(lineType.val));
318
+ }
319
+ }
320
+ filterAxisTypes() {
321
+ if (!!this.selectableAxisTypes?.length) {
322
+ this.AXIS_TYPES = this.AXIS_TYPES.filter(axisType => this.selectableAxisTypes.includes(axisType.val));
323
+ }
324
+ }
304
325
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DatapointAttributesFormComponent, deps: [{ token: DatapointAttributesFormValidationService }], target: i0.ɵɵFactoryTarget.Component }); }
305
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: DatapointAttributesFormComponent, selector: "c8y-datapoint-attributes-form", inputs: { showTarget: "showTarget", showRange: "showRange", showYellowRange: "showYellowRange", showRedRange: "showRedRange", showChart: "showChart", showDisplay: "showDisplay", showFormIfTemplateWasSelected: "showFormIfTemplateWasSelected" }, providers: [
326
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: DatapointAttributesFormComponent, selector: "c8y-datapoint-attributes-form", inputs: { selectableChartRenderTypes: "selectableChartRenderTypes", selectableChartLineTypes: "selectableChartLineTypes", selectableAxisTypes: "selectableAxisTypes", showTarget: "showTarget", showRange: "showRange", showYellowRange: "showYellowRange", showRedRange: "showRedRange", showChart: "showChart", showFormIfTemplateWasSelected: "showFormIfTemplateWasSelected" }, providers: [
306
327
  {
307
328
  provide: NG_VALUE_ACCESSOR,
308
329
  useExisting: forwardRef(() => DatapointAttributesFormComponent),
@@ -313,7 +334,7 @@ class DatapointAttributesFormComponent {
313
334
  useExisting: forwardRef(() => DatapointAttributesFormComponent),
314
335
  multi: true
315
336
  }
316
- ], ngImport: i0, template: "<div [formGroup]=\"formGroup\">\n <ng-container *ngIf=\"!rawValue?.__template || showFormIfTemplateWasSelected\">\n <fieldset\n class=\"c8y-fieldset\"\n *ngIf=\"formGroup.controls?.label || formGroup.controls?.unit || formGroup.controls?.target\"\n >\n <legend translate>Details</legend>\n <div class=\"row\">\n <div\n class=\"col-md-6\"\n *ngIf=\"formGroup.controls?.label\"\n >\n <c8y-form-group>\n <label translate>Label</label>\n <input\n class=\"form-control\"\n name=\"label\"\n formControlName=\"label\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'Temperature' }\"\n />\n <c8y-messages\n [show]=\"formGroup.controls.label.touched && formGroup.controls.label.errors\"\n >\n <c8y-message\n *ngFor=\"let item of customValidationErrorMessages['label'] | keyvalue\"\n [name]=\"item.key\"\n [text]=\"item.value\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n\n <div\n class=\"col-md-6\"\n *ngIf=\"formGroup.controls?.unit\"\n >\n <c8y-form-group>\n <label translate>Unit</label>\n <input\n class=\"form-control\"\n name=\"unit\"\n formControlName=\"unit\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: '\u00BAC' }\"\n />\n <c8y-messages\n [show]=\"formGroup.controls.unit.touched && formGroup.controls.unit.errors\"\n >\n <c8y-message\n *ngFor=\"let item of customValidationErrorMessages['unit'] | keyvalue\"\n [name]=\"item.key\"\n [text]=\"item.value\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n\n <div\n class=\"col-md-6\"\n *ngIf=\"formGroup.controls?.target && showTarget\"\n >\n <c8y-form-group\n [ngClass]=\"{\n 'has-error':\n (range?.touched || formGroup.controls.target.touched) &&\n formGroup.controls?.target?.errors\n }\"\n >\n <label translate>Target</label>\n <input\n class=\"form-control\"\n name=\"target\"\n type=\"number\"\n formControlName=\"target\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 25 }\"\n />\n <c8y-messages\n [show]=\"\n (range?.touched || formGroup.controls.target.touched) &&\n formGroup.controls.target.errors\n \"\n >\n <c8y-message\n *ngFor=\"let item of customValidationErrorMessages['target'] | keyvalue\"\n [name]=\"item.key\"\n [text]=\"item.value\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n <fieldset\n class=\"c8y-fieldset\"\n *ngIf=\"range && showRange\"\n >\n <legend translate>Range</legend>\n <div\n class=\"row\"\n formGroupName=\"range\"\n >\n <div class=\"col-md-6\">\n <c8y-form-group\n [ngClass]=\"{ 'has-error': range?.touched && range?.controls?.min?.errors }\"\n >\n <label translate>Min</label>\n <input\n class=\"form-control\"\n name=\"min\"\n type=\"number\"\n formControlName=\"min\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 0 }\"\n />\n <c8y-messages [show]=\"range?.touched && range.controls?.min?.errors\"></c8y-messages>\n </c8y-form-group>\n </div>\n <div class=\"col-md-6\">\n <c8y-form-group\n [ngClass]=\"{ 'has-error': range?.touched && range?.controls?.max?.errors }\"\n >\n <label translate>Max</label>\n <input\n class=\"form-control\"\n name=\"max\"\n type=\"number\"\n formControlName=\"max\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 100 }\"\n />\n <c8y-messages [show]=\"range?.touched && range.controls?.max?.errors\">\n <c8y-message\n *ngFor=\"let item of customValidationErrorMessages['max'] | keyvalue\"\n [name]=\"item.key\"\n [text]=\"item.value\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n\n <fieldset\n class=\"c8y-fieldset\"\n formGroupName=\"yellowRange\"\n *ngIf=\"yellowRange && showYellowRange\"\n >\n <legend translate>Yellow range</legend>\n <div class=\"row\">\n <div class=\"col-md-6\">\n <c8y-form-group\n [ngClass]=\"{\n 'has-error':\n (range?.touched || yellowRange?.touched) && yellowRange?.controls?.min?.errors\n }\"\n >\n <label translate>Min</label>\n <input\n class=\"form-control\"\n name=\"min\"\n type=\"number\"\n formControlName=\"min\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 50 }\"\n />\n <c8y-messages\n [show]=\"(range?.touched || yellowRange?.touched) && yellowRange.controls?.min?.errors\"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n\n <div class=\"col-md-6\">\n <c8y-form-group\n [ngClass]=\"{\n 'has-error':\n (range?.touched || yellowRange?.touched) && yellowRange?.controls?.max?.errors\n }\"\n >\n <label translate>Max</label>\n <input\n class=\"form-control\"\n name=\"max\"\n type=\"number\"\n formControlName=\"max\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 75 }\"\n />\n <c8y-messages\n [show]=\"(range?.touched || yellowRange?.touched) && yellowRange.controls?.max?.errors\"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n\n <fieldset\n class=\"c8y-fieldset\"\n formGroupName=\"redRange\"\n *ngIf=\"redRange && showRedRange\"\n >\n <legend translate>Red range</legend>\n <div class=\"row\">\n <div class=\"col-md-6\">\n <c8y-form-group\n [ngClass]=\"{\n 'has-error': (range?.touched || redRange?.touched) && redRange?.controls?.min?.errors\n }\"\n >\n <label translate>Min</label>\n <input\n class=\"form-control\"\n name=\"min\"\n type=\"number\"\n formControlName=\"min\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 75 }\"\n />\n <c8y-messages\n [show]=\"(range?.touched || redRange?.touched) && redRange.controls?.min?.errors\"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n\n <div class=\"col-md-6\">\n <c8y-form-group\n [ngClass]=\"{\n 'has-error': (range?.touched || redRange?.touched) && redRange?.controls?.max?.errors\n }\"\n >\n <label translate>Max</label>\n <input\n class=\"form-control\"\n name=\"max\"\n type=\"number\"\n formControlName=\"max\"\n [placeholder]=\"'e.g. {{ example }}' | translate : { example: 100 }\"\n />\n <c8y-messages\n [show]=\"(range?.touched || redRange?.touched) && redRange.controls?.max?.errors\"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n </ng-container>\n\n <fieldset\n class=\"c8y-fieldset\"\n *ngIf=\"chart && showChart\"\n formGroupName=\"chart\"\n >\n <legend translate>Chart</legend>\n <div class=\"tight-grid\">\n <div class=\"col-xs-6 col-sm-4\">\n <c8y-form-group>\n <label for=\"display\">\n {{ 'Display' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ 'Value displayed when data is aggregated' | translate }}\"\n triggers=\"focus\"\n type=\"button\"\n [placement]=\"'right'\"\n [container]=\"'body'\"\n ></button>\n </label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n formControlName=\"renderType\"\n >\n <option\n *ngFor=\"let type of CHART_RENDER_TYPES\"\n [ngValue]=\"type.val\"\n >\n {{ type.text | translate }}\n </option>\n </select>\n </div>\n </c8y-form-group>\n </div>\n <div class=\"col-xs-6 col-sm-4\">\n <c8y-form-group>\n <label\n for=\"chartType\"\n translate\n >\n Chart type\n </label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n formControlName=\"lineType\"\n >\n <option\n *ngFor=\"let type of CHART_LINE_TYPES\"\n [ngValue]=\"type.val\"\n >\n {{ type.text | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </c8y-form-group>\n </div>\n <div class=\"col-xs-6 col-sm-4\">\n <c8y-form-group>\n <label\n for=\"yAxis\"\n translate\n >\n Y-axis\n </label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n formControlName=\"yAxisType\"\n >\n <option\n *ngFor=\"let type of AXIS_TYPES\"\n [ngValue]=\"type.val\"\n >\n {{ type.text | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n <fieldset\n class=\"c8y-fieldset\"\n *ngIf=\"showDisplay\"\n formGroupName=\"display\"\n >\n <legend translate>Display</legend>\n <div class=\"tight-grid\">\n <div class=\"col-xs-6 col-sm-4\">\n <c8y-form-group>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n formControlName=\"renderType\"\n >\n <option\n *ngFor=\"let type of CHART_RENDER_TYPES\"\n [ngValue]=\"type.val\"\n >\n {{ type.text | translate }}\n </option>\n </select>\n </div>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n</div>\n", dependencies: [{ 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: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.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.MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "component", type: i2.MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i5.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i3.KeyValuePipe, name: "keyvalue" }] }); }
337
+ ], ngImport: i0, template: "<div [formGroup]=\"formGroup\">\n <ng-container *ngIf=\"!rawValue?.__template || showFormIfTemplateWasSelected\">\n <fieldset\n class=\"c8y-fieldset\"\n *ngIf=\"formGroup.controls?.label || formGroup.controls?.unit || formGroup.controls?.target\"\n >\n <legend translate>Details</legend>\n <div class=\"row\">\n <div\n class=\"col-md-6\"\n *ngIf=\"formGroup.controls?.label\"\n >\n <c8y-form-group>\n <label translate>Label</label>\n <input\n class=\"form-control\"\n name=\"label\"\n formControlName=\"label\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'Temperature' }\"\n />\n <c8y-messages\n [show]=\"formGroup.controls.label.touched && formGroup.controls.label.errors\"\n >\n <c8y-message\n *ngFor=\"let item of customValidationErrorMessages['label'] | keyvalue\"\n [name]=\"item.key\"\n [text]=\"item.value\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n\n <div\n class=\"col-md-6\"\n *ngIf=\"formGroup.controls?.unit\"\n >\n <c8y-form-group>\n <label translate>Unit</label>\n <input\n class=\"form-control\"\n name=\"unit\"\n formControlName=\"unit\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: '\u00BAC' }\"\n />\n <c8y-messages\n [show]=\"formGroup.controls.unit.touched && formGroup.controls.unit.errors\"\n >\n <c8y-message\n *ngFor=\"let item of customValidationErrorMessages['unit'] | keyvalue\"\n [name]=\"item.key\"\n [text]=\"item.value\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n\n <div\n class=\"col-md-6\"\n *ngIf=\"formGroup.controls?.target && showTarget\"\n >\n <c8y-form-group\n [ngClass]=\"{\n 'has-error':\n (range?.touched || formGroup.controls.target.touched) &&\n formGroup.controls?.target?.errors\n }\"\n >\n <label translate>Target</label>\n <input\n class=\"form-control\"\n name=\"target\"\n type=\"number\"\n formControlName=\"target\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 25 }\"\n />\n <c8y-messages\n [show]=\"\n (range?.touched || formGroup.controls.target.touched) &&\n formGroup.controls.target.errors\n \"\n >\n <c8y-message\n *ngFor=\"let item of customValidationErrorMessages['target'] | keyvalue\"\n [name]=\"item.key\"\n [text]=\"item.value\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n <fieldset\n class=\"c8y-fieldset\"\n *ngIf=\"range && showRange\"\n >\n <legend translate>Range</legend>\n <div\n class=\"row\"\n formGroupName=\"range\"\n >\n <div class=\"col-md-6\">\n <c8y-form-group\n [ngClass]=\"{ 'has-error': range?.touched && range?.controls?.min?.errors }\"\n >\n <label translate>Min</label>\n <input\n class=\"form-control\"\n name=\"min\"\n type=\"number\"\n formControlName=\"min\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 0 }\"\n />\n <c8y-messages [show]=\"range?.touched && range.controls?.min?.errors\"></c8y-messages>\n </c8y-form-group>\n </div>\n <div class=\"col-md-6\">\n <c8y-form-group\n [ngClass]=\"{ 'has-error': range?.touched && range?.controls?.max?.errors }\"\n >\n <label translate>Max</label>\n <input\n class=\"form-control\"\n name=\"max\"\n type=\"number\"\n formControlName=\"max\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 100 }\"\n />\n <c8y-messages [show]=\"range?.touched && range.controls?.max?.errors\">\n <c8y-message\n *ngFor=\"let item of customValidationErrorMessages['max'] | keyvalue\"\n [name]=\"item.key\"\n [text]=\"item.value\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n\n <fieldset\n class=\"c8y-fieldset\"\n formGroupName=\"yellowRange\"\n *ngIf=\"yellowRange && showYellowRange\"\n >\n <legend translate>Yellow range</legend>\n <div class=\"row\">\n <div class=\"col-md-6\">\n <c8y-form-group\n [ngClass]=\"{\n 'has-error':\n (range?.touched || yellowRange?.touched) && yellowRange?.controls?.min?.errors\n }\"\n >\n <label translate>Min</label>\n <input\n class=\"form-control\"\n name=\"min\"\n type=\"number\"\n formControlName=\"min\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 50 }\"\n />\n <c8y-messages\n [show]=\"(range?.touched || yellowRange?.touched) && yellowRange.controls?.min?.errors\"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n\n <div class=\"col-md-6\">\n <c8y-form-group\n [ngClass]=\"{\n 'has-error':\n (range?.touched || yellowRange?.touched) && yellowRange?.controls?.max?.errors\n }\"\n >\n <label translate>Max</label>\n <input\n class=\"form-control\"\n name=\"max\"\n type=\"number\"\n formControlName=\"max\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 75 }\"\n />\n <c8y-messages\n [show]=\"(range?.touched || yellowRange?.touched) && yellowRange.controls?.max?.errors\"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n\n <fieldset\n class=\"c8y-fieldset\"\n formGroupName=\"redRange\"\n *ngIf=\"redRange && showRedRange\"\n >\n <legend translate>Red range</legend>\n <div class=\"row\">\n <div class=\"col-md-6\">\n <c8y-form-group\n [ngClass]=\"{\n 'has-error': (range?.touched || redRange?.touched) && redRange?.controls?.min?.errors\n }\"\n >\n <label translate>Min</label>\n <input\n class=\"form-control\"\n name=\"min\"\n type=\"number\"\n formControlName=\"min\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 75 }\"\n />\n <c8y-messages\n [show]=\"(range?.touched || redRange?.touched) && redRange.controls?.min?.errors\"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n\n <div class=\"col-md-6\">\n <c8y-form-group\n [ngClass]=\"{\n 'has-error': (range?.touched || redRange?.touched) && redRange?.controls?.max?.errors\n }\"\n >\n <label translate>Max</label>\n <input\n class=\"form-control\"\n name=\"max\"\n type=\"number\"\n formControlName=\"max\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 100 }\"\n />\n <c8y-messages\n [show]=\"(range?.touched || redRange?.touched) && redRange.controls?.max?.errors\"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n </ng-container>\n\n <fieldset\n class=\"c8y-fieldset\"\n *ngIf=\"showChartForm\"\n formGroupName=\"chart\"\n >\n <legend translate>Chart</legend>\n <div class=\"tight-grid\">\n <div\n class=\"col-xs-6 col-sm-4\"\n *ngIf=\"selectableChartRenderTypes?.length !== 0\"\n >\n <c8y-form-group>\n <ng-container *ngTemplateOutlet=\"displayHelpButton\"></ng-container>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n formControlName=\"renderType\"\n >\n <option\n *ngFor=\"let type of CHART_RENDER_TYPES\"\n [ngValue]=\"type.val\"\n >\n {{ type.text | translate }}\n </option>\n </select>\n </div>\n </c8y-form-group>\n </div>\n <div\n class=\"col-xs-6 col-sm-4\"\n *ngIf=\"selectableChartLineTypes?.length !== 0\"\n >\n <c8y-form-group>\n <label\n for=\"chartType\"\n translate\n >\n Chart type\n </label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n formControlName=\"lineType\"\n >\n <option\n *ngFor=\"let type of CHART_LINE_TYPES\"\n [ngValue]=\"type.val\"\n >\n {{ type.text | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </c8y-form-group>\n </div>\n <div\n class=\"col-xs-6 col-sm-4\"\n *ngIf=\"selectableAxisTypes?.length !== 0\"\n >\n <c8y-form-group>\n <label\n for=\"yAxis\"\n translate\n >\n Y-axis\n </label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n formControlName=\"yAxisType\"\n >\n <option\n *ngFor=\"let type of AXIS_TYPES\"\n [ngValue]=\"type.val\"\n >\n {{ type.text | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n <fieldset\n class=\"c8y-fieldset\"\n *ngIf=\"showOnlyDisplayForm\"\n formGroupName=\"display\"\n >\n <legend>\n <ng-container *ngTemplateOutlet=\"displayHelpButton\"></ng-container>\n </legend>\n <div class=\"tight-grid\">\n <div class=\"col-xs-6 col-sm-4\">\n <c8y-form-group>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n formControlName=\"renderType\"\n >\n <option\n *ngFor=\"let type of CHART_RENDER_TYPES\"\n [ngValue]=\"type.val\"\n >\n {{ type.text | translate }}\n </option>\n </select>\n </div>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n</div>\n\n<ng-template #displayHelpButton>\n <label>\n {{ 'Display' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ 'Value displayed when data is aggregated' | translate }}\"\n triggers=\"focus\"\n type=\"button\"\n [placement]=\"'right'\"\n [container]=\"'body'\"\n ></button>\n </label>\n</ng-template>\n", dependencies: [{ 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: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.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.MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "component", type: i2.MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i5.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i3.KeyValuePipe, name: "keyvalue" }] }); }
317
338
  }
318
339
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DatapointAttributesFormComponent, decorators: [{
319
340
  type: Component,
@@ -328,8 +349,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
328
349
  useExisting: forwardRef(() => DatapointAttributesFormComponent),
329
350
  multi: true
330
351
  }
331
- ], template: "<div [formGroup]=\"formGroup\">\n <ng-container *ngIf=\"!rawValue?.__template || showFormIfTemplateWasSelected\">\n <fieldset\n class=\"c8y-fieldset\"\n *ngIf=\"formGroup.controls?.label || formGroup.controls?.unit || formGroup.controls?.target\"\n >\n <legend translate>Details</legend>\n <div class=\"row\">\n <div\n class=\"col-md-6\"\n *ngIf=\"formGroup.controls?.label\"\n >\n <c8y-form-group>\n <label translate>Label</label>\n <input\n class=\"form-control\"\n name=\"label\"\n formControlName=\"label\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'Temperature' }\"\n />\n <c8y-messages\n [show]=\"formGroup.controls.label.touched && formGroup.controls.label.errors\"\n >\n <c8y-message\n *ngFor=\"let item of customValidationErrorMessages['label'] | keyvalue\"\n [name]=\"item.key\"\n [text]=\"item.value\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n\n <div\n class=\"col-md-6\"\n *ngIf=\"formGroup.controls?.unit\"\n >\n <c8y-form-group>\n <label translate>Unit</label>\n <input\n class=\"form-control\"\n name=\"unit\"\n formControlName=\"unit\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: '\u00BAC' }\"\n />\n <c8y-messages\n [show]=\"formGroup.controls.unit.touched && formGroup.controls.unit.errors\"\n >\n <c8y-message\n *ngFor=\"let item of customValidationErrorMessages['unit'] | keyvalue\"\n [name]=\"item.key\"\n [text]=\"item.value\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n\n <div\n class=\"col-md-6\"\n *ngIf=\"formGroup.controls?.target && showTarget\"\n >\n <c8y-form-group\n [ngClass]=\"{\n 'has-error':\n (range?.touched || formGroup.controls.target.touched) &&\n formGroup.controls?.target?.errors\n }\"\n >\n <label translate>Target</label>\n <input\n class=\"form-control\"\n name=\"target\"\n type=\"number\"\n formControlName=\"target\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 25 }\"\n />\n <c8y-messages\n [show]=\"\n (range?.touched || formGroup.controls.target.touched) &&\n formGroup.controls.target.errors\n \"\n >\n <c8y-message\n *ngFor=\"let item of customValidationErrorMessages['target'] | keyvalue\"\n [name]=\"item.key\"\n [text]=\"item.value\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n <fieldset\n class=\"c8y-fieldset\"\n *ngIf=\"range && showRange\"\n >\n <legend translate>Range</legend>\n <div\n class=\"row\"\n formGroupName=\"range\"\n >\n <div class=\"col-md-6\">\n <c8y-form-group\n [ngClass]=\"{ 'has-error': range?.touched && range?.controls?.min?.errors }\"\n >\n <label translate>Min</label>\n <input\n class=\"form-control\"\n name=\"min\"\n type=\"number\"\n formControlName=\"min\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 0 }\"\n />\n <c8y-messages [show]=\"range?.touched && range.controls?.min?.errors\"></c8y-messages>\n </c8y-form-group>\n </div>\n <div class=\"col-md-6\">\n <c8y-form-group\n [ngClass]=\"{ 'has-error': range?.touched && range?.controls?.max?.errors }\"\n >\n <label translate>Max</label>\n <input\n class=\"form-control\"\n name=\"max\"\n type=\"number\"\n formControlName=\"max\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 100 }\"\n />\n <c8y-messages [show]=\"range?.touched && range.controls?.max?.errors\">\n <c8y-message\n *ngFor=\"let item of customValidationErrorMessages['max'] | keyvalue\"\n [name]=\"item.key\"\n [text]=\"item.value\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n\n <fieldset\n class=\"c8y-fieldset\"\n formGroupName=\"yellowRange\"\n *ngIf=\"yellowRange && showYellowRange\"\n >\n <legend translate>Yellow range</legend>\n <div class=\"row\">\n <div class=\"col-md-6\">\n <c8y-form-group\n [ngClass]=\"{\n 'has-error':\n (range?.touched || yellowRange?.touched) && yellowRange?.controls?.min?.errors\n }\"\n >\n <label translate>Min</label>\n <input\n class=\"form-control\"\n name=\"min\"\n type=\"number\"\n formControlName=\"min\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 50 }\"\n />\n <c8y-messages\n [show]=\"(range?.touched || yellowRange?.touched) && yellowRange.controls?.min?.errors\"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n\n <div class=\"col-md-6\">\n <c8y-form-group\n [ngClass]=\"{\n 'has-error':\n (range?.touched || yellowRange?.touched) && yellowRange?.controls?.max?.errors\n }\"\n >\n <label translate>Max</label>\n <input\n class=\"form-control\"\n name=\"max\"\n type=\"number\"\n formControlName=\"max\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 75 }\"\n />\n <c8y-messages\n [show]=\"(range?.touched || yellowRange?.touched) && yellowRange.controls?.max?.errors\"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n\n <fieldset\n class=\"c8y-fieldset\"\n formGroupName=\"redRange\"\n *ngIf=\"redRange && showRedRange\"\n >\n <legend translate>Red range</legend>\n <div class=\"row\">\n <div class=\"col-md-6\">\n <c8y-form-group\n [ngClass]=\"{\n 'has-error': (range?.touched || redRange?.touched) && redRange?.controls?.min?.errors\n }\"\n >\n <label translate>Min</label>\n <input\n class=\"form-control\"\n name=\"min\"\n type=\"number\"\n formControlName=\"min\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 75 }\"\n />\n <c8y-messages\n [show]=\"(range?.touched || redRange?.touched) && redRange.controls?.min?.errors\"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n\n <div class=\"col-md-6\">\n <c8y-form-group\n [ngClass]=\"{\n 'has-error': (range?.touched || redRange?.touched) && redRange?.controls?.max?.errors\n }\"\n >\n <label translate>Max</label>\n <input\n class=\"form-control\"\n name=\"max\"\n type=\"number\"\n formControlName=\"max\"\n [placeholder]=\"'e.g. {{ example }}' | translate : { example: 100 }\"\n />\n <c8y-messages\n [show]=\"(range?.touched || redRange?.touched) && redRange.controls?.max?.errors\"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n </ng-container>\n\n <fieldset\n class=\"c8y-fieldset\"\n *ngIf=\"chart && showChart\"\n formGroupName=\"chart\"\n >\n <legend translate>Chart</legend>\n <div class=\"tight-grid\">\n <div class=\"col-xs-6 col-sm-4\">\n <c8y-form-group>\n <label for=\"display\">\n {{ 'Display' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ 'Value displayed when data is aggregated' | translate }}\"\n triggers=\"focus\"\n type=\"button\"\n [placement]=\"'right'\"\n [container]=\"'body'\"\n ></button>\n </label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n formControlName=\"renderType\"\n >\n <option\n *ngFor=\"let type of CHART_RENDER_TYPES\"\n [ngValue]=\"type.val\"\n >\n {{ type.text | translate }}\n </option>\n </select>\n </div>\n </c8y-form-group>\n </div>\n <div class=\"col-xs-6 col-sm-4\">\n <c8y-form-group>\n <label\n for=\"chartType\"\n translate\n >\n Chart type\n </label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n formControlName=\"lineType\"\n >\n <option\n *ngFor=\"let type of CHART_LINE_TYPES\"\n [ngValue]=\"type.val\"\n >\n {{ type.text | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </c8y-form-group>\n </div>\n <div class=\"col-xs-6 col-sm-4\">\n <c8y-form-group>\n <label\n for=\"yAxis\"\n translate\n >\n Y-axis\n </label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n formControlName=\"yAxisType\"\n >\n <option\n *ngFor=\"let type of AXIS_TYPES\"\n [ngValue]=\"type.val\"\n >\n {{ type.text | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n <fieldset\n class=\"c8y-fieldset\"\n *ngIf=\"showDisplay\"\n formGroupName=\"display\"\n >\n <legend translate>Display</legend>\n <div class=\"tight-grid\">\n <div class=\"col-xs-6 col-sm-4\">\n <c8y-form-group>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n formControlName=\"renderType\"\n >\n <option\n *ngFor=\"let type of CHART_RENDER_TYPES\"\n [ngValue]=\"type.val\"\n >\n {{ type.text | translate }}\n </option>\n </select>\n </div>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n</div>\n" }]
332
- }], ctorParameters: () => [{ type: DatapointAttributesFormValidationService }], propDecorators: { showTarget: [{
352
+ ], template: "<div [formGroup]=\"formGroup\">\n <ng-container *ngIf=\"!rawValue?.__template || showFormIfTemplateWasSelected\">\n <fieldset\n class=\"c8y-fieldset\"\n *ngIf=\"formGroup.controls?.label || formGroup.controls?.unit || formGroup.controls?.target\"\n >\n <legend translate>Details</legend>\n <div class=\"row\">\n <div\n class=\"col-md-6\"\n *ngIf=\"formGroup.controls?.label\"\n >\n <c8y-form-group>\n <label translate>Label</label>\n <input\n class=\"form-control\"\n name=\"label\"\n formControlName=\"label\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'Temperature' }\"\n />\n <c8y-messages\n [show]=\"formGroup.controls.label.touched && formGroup.controls.label.errors\"\n >\n <c8y-message\n *ngFor=\"let item of customValidationErrorMessages['label'] | keyvalue\"\n [name]=\"item.key\"\n [text]=\"item.value\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n\n <div\n class=\"col-md-6\"\n *ngIf=\"formGroup.controls?.unit\"\n >\n <c8y-form-group>\n <label translate>Unit</label>\n <input\n class=\"form-control\"\n name=\"unit\"\n formControlName=\"unit\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: '\u00BAC' }\"\n />\n <c8y-messages\n [show]=\"formGroup.controls.unit.touched && formGroup.controls.unit.errors\"\n >\n <c8y-message\n *ngFor=\"let item of customValidationErrorMessages['unit'] | keyvalue\"\n [name]=\"item.key\"\n [text]=\"item.value\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n\n <div\n class=\"col-md-6\"\n *ngIf=\"formGroup.controls?.target && showTarget\"\n >\n <c8y-form-group\n [ngClass]=\"{\n 'has-error':\n (range?.touched || formGroup.controls.target.touched) &&\n formGroup.controls?.target?.errors\n }\"\n >\n <label translate>Target</label>\n <input\n class=\"form-control\"\n name=\"target\"\n type=\"number\"\n formControlName=\"target\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 25 }\"\n />\n <c8y-messages\n [show]=\"\n (range?.touched || formGroup.controls.target.touched) &&\n formGroup.controls.target.errors\n \"\n >\n <c8y-message\n *ngFor=\"let item of customValidationErrorMessages['target'] | keyvalue\"\n [name]=\"item.key\"\n [text]=\"item.value\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n <fieldset\n class=\"c8y-fieldset\"\n *ngIf=\"range && showRange\"\n >\n <legend translate>Range</legend>\n <div\n class=\"row\"\n formGroupName=\"range\"\n >\n <div class=\"col-md-6\">\n <c8y-form-group\n [ngClass]=\"{ 'has-error': range?.touched && range?.controls?.min?.errors }\"\n >\n <label translate>Min</label>\n <input\n class=\"form-control\"\n name=\"min\"\n type=\"number\"\n formControlName=\"min\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 0 }\"\n />\n <c8y-messages [show]=\"range?.touched && range.controls?.min?.errors\"></c8y-messages>\n </c8y-form-group>\n </div>\n <div class=\"col-md-6\">\n <c8y-form-group\n [ngClass]=\"{ 'has-error': range?.touched && range?.controls?.max?.errors }\"\n >\n <label translate>Max</label>\n <input\n class=\"form-control\"\n name=\"max\"\n type=\"number\"\n formControlName=\"max\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 100 }\"\n />\n <c8y-messages [show]=\"range?.touched && range.controls?.max?.errors\">\n <c8y-message\n *ngFor=\"let item of customValidationErrorMessages['max'] | keyvalue\"\n [name]=\"item.key\"\n [text]=\"item.value\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n\n <fieldset\n class=\"c8y-fieldset\"\n formGroupName=\"yellowRange\"\n *ngIf=\"yellowRange && showYellowRange\"\n >\n <legend translate>Yellow range</legend>\n <div class=\"row\">\n <div class=\"col-md-6\">\n <c8y-form-group\n [ngClass]=\"{\n 'has-error':\n (range?.touched || yellowRange?.touched) && yellowRange?.controls?.min?.errors\n }\"\n >\n <label translate>Min</label>\n <input\n class=\"form-control\"\n name=\"min\"\n type=\"number\"\n formControlName=\"min\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 50 }\"\n />\n <c8y-messages\n [show]=\"(range?.touched || yellowRange?.touched) && yellowRange.controls?.min?.errors\"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n\n <div class=\"col-md-6\">\n <c8y-form-group\n [ngClass]=\"{\n 'has-error':\n (range?.touched || yellowRange?.touched) && yellowRange?.controls?.max?.errors\n }\"\n >\n <label translate>Max</label>\n <input\n class=\"form-control\"\n name=\"max\"\n type=\"number\"\n formControlName=\"max\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 75 }\"\n />\n <c8y-messages\n [show]=\"(range?.touched || yellowRange?.touched) && yellowRange.controls?.max?.errors\"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n\n <fieldset\n class=\"c8y-fieldset\"\n formGroupName=\"redRange\"\n *ngIf=\"redRange && showRedRange\"\n >\n <legend translate>Red range</legend>\n <div class=\"row\">\n <div class=\"col-md-6\">\n <c8y-form-group\n [ngClass]=\"{\n 'has-error': (range?.touched || redRange?.touched) && redRange?.controls?.min?.errors\n }\"\n >\n <label translate>Min</label>\n <input\n class=\"form-control\"\n name=\"min\"\n type=\"number\"\n formControlName=\"min\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 75 }\"\n />\n <c8y-messages\n [show]=\"(range?.touched || redRange?.touched) && redRange.controls?.min?.errors\"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n\n <div class=\"col-md-6\">\n <c8y-form-group\n [ngClass]=\"{\n 'has-error': (range?.touched || redRange?.touched) && redRange?.controls?.max?.errors\n }\"\n >\n <label translate>Max</label>\n <input\n class=\"form-control\"\n name=\"max\"\n type=\"number\"\n formControlName=\"max\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 100 }\"\n />\n <c8y-messages\n [show]=\"(range?.touched || redRange?.touched) && redRange.controls?.max?.errors\"\n ></c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n </ng-container>\n\n <fieldset\n class=\"c8y-fieldset\"\n *ngIf=\"showChartForm\"\n formGroupName=\"chart\"\n >\n <legend translate>Chart</legend>\n <div class=\"tight-grid\">\n <div\n class=\"col-xs-6 col-sm-4\"\n *ngIf=\"selectableChartRenderTypes?.length !== 0\"\n >\n <c8y-form-group>\n <ng-container *ngTemplateOutlet=\"displayHelpButton\"></ng-container>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n formControlName=\"renderType\"\n >\n <option\n *ngFor=\"let type of CHART_RENDER_TYPES\"\n [ngValue]=\"type.val\"\n >\n {{ type.text | translate }}\n </option>\n </select>\n </div>\n </c8y-form-group>\n </div>\n <div\n class=\"col-xs-6 col-sm-4\"\n *ngIf=\"selectableChartLineTypes?.length !== 0\"\n >\n <c8y-form-group>\n <label\n for=\"chartType\"\n translate\n >\n Chart type\n </label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n formControlName=\"lineType\"\n >\n <option\n *ngFor=\"let type of CHART_LINE_TYPES\"\n [ngValue]=\"type.val\"\n >\n {{ type.text | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </c8y-form-group>\n </div>\n <div\n class=\"col-xs-6 col-sm-4\"\n *ngIf=\"selectableAxisTypes?.length !== 0\"\n >\n <c8y-form-group>\n <label\n for=\"yAxis\"\n translate\n >\n Y-axis\n </label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n formControlName=\"yAxisType\"\n >\n <option\n *ngFor=\"let type of AXIS_TYPES\"\n [ngValue]=\"type.val\"\n >\n {{ type.text | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n <fieldset\n class=\"c8y-fieldset\"\n *ngIf=\"showOnlyDisplayForm\"\n formGroupName=\"display\"\n >\n <legend>\n <ng-container *ngTemplateOutlet=\"displayHelpButton\"></ng-container>\n </legend>\n <div class=\"tight-grid\">\n <div class=\"col-xs-6 col-sm-4\">\n <c8y-form-group>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n formControlName=\"renderType\"\n >\n <option\n *ngFor=\"let type of CHART_RENDER_TYPES\"\n [ngValue]=\"type.val\"\n >\n {{ type.text | translate }}\n </option>\n </select>\n </div>\n </c8y-form-group>\n </div>\n </div>\n </fieldset>\n</div>\n\n<ng-template #displayHelpButton>\n <label>\n {{ 'Display' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ 'Value displayed when data is aggregated' | translate }}\"\n triggers=\"focus\"\n type=\"button\"\n [placement]=\"'right'\"\n [container]=\"'body'\"\n ></button>\n </label>\n</ng-template>\n" }]
353
+ }], ctorParameters: () => [{ type: DatapointAttributesFormValidationService }], propDecorators: { selectableChartRenderTypes: [{
354
+ type: Input
355
+ }], selectableChartLineTypes: [{
356
+ type: Input
357
+ }], selectableAxisTypes: [{
358
+ type: Input
359
+ }], showTarget: [{
333
360
  type: Input
334
361
  }], showRange: [{
335
362
  type: Input
@@ -339,8 +366,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
339
366
  type: Input
340
367
  }], showChart: [{
341
368
  type: Input
342
- }], showDisplay: [{
343
- type: Input
344
369
  }], showFormIfTemplateWasSelected: [{
345
370
  type: Input
346
371
  }] } });
@@ -751,7 +776,7 @@ class DatapointSelectorListItemComponent {
751
776
  useExisting: forwardRef(() => DatapointSelectorListItemComponent),
752
777
  multi: true
753
778
  }
754
- ], queries: [{ propertyName: "dragHandle", first: true, predicate: ListItemDragHandleComponent, descendants: true }], ngImport: i0, template: "<c8y-li class=\"c8y-list__item__collapse--container-small\" [formGroup]=\"formGroup\" #li>\n <c8y-li-drag-handle><ng-content select=\"c8y-li-drag-handle\"></ng-content></c8y-li-drag-handle>\n <c8y-li-checkbox\n class=\"a-s-center p-r-0\"\n *ngIf=\"showActiveToggle\"\n [displayAsSwitch]=\"true\"\n formControlName=\"__active\"\n (click)=\"$event.stopPropagation()\"\n ></c8y-li-checkbox>\n\n <div class=\"d-flex a-i-center p-l-16\">\n <div class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-0\" [title]=\"'Change color' | translate\">\n <div class=\"c8y-colorpicker\">\n <input\n type=\"color\"\n [attr.aria-label]=\"'Color' | translate\"\n formControlName=\"color\"\n (click)=\"$event.stopPropagation()\"\n />\n <span [style.background-color]=\"formGroup.value.color\"></span>\n </div>\n </div>\n <button\n class=\"btn-clean data-point-label text-truncate\"\n type=\"button\"\n [attr.aria-expanded]=\"!li.collapsed\"\n (click)=\"li.collapsed = !li.collapsed\"\n >\n <span class=\"text-truncate\" [title]=\"formGroup.value.details?.label\">\n <c8y-highlight\n [text]=\"formGroup.value.details?.label\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n <small class=\"text-truncate text-muted icon-flex\" *ngIf=\"formGroup.value.__target\">\n <i c8yIcon=\"exchange\"></i>\n <span class=\"text-truncate\">{{ formGroup.value.__target.name }}</span>\n </small>\n </button>\n\n <button\n class=\"btn btn-dot btn-dot--danger m-l-auto\"\n type=\"button\"\n [attr.aria-label]=\"'Invalid' | translate\"\n [popover]=\"\n errorMessage\n ? errorMessage\n : ('Some entries are invalid. Check the input fields with red borders.' | translate)\n \"\n triggers=\"focus\"\n placement=\"left\"\n container=\"body\"\n *ngIf=\"!(isValid$ | async)\"\n >\n <i c8yIcon=\"warning\"></i>\n </button>\n <div class=\"m-l-auto a-s-center p-r-4\" *ngIf=\"showAddRemoveButton\">\n <button\n class=\"btn btn-dot btn-dot--danger\"\n type=\"button\"\n [attr.aria-label]=\"'Remove' | translate\"\n [tooltip]=\"'Remove from selected data points' | translate\"\n [delay]=\"500\"\n (click)=\"addOrRemoveItem()\"\n *ngIf=\"isSelected\"\n [attr.data-cy]=\"'datapoint-selector-list-item--remove-datapoint-button'\"\n >\n <i class=\"icon-20\" c8yIcon=\"minus-circle\"></i>\n </button>\n <button\n class=\"btn btn-dot text-primary\"\n type=\"button\"\n [attr.aria-label]=\"'Add to selected data points' | translate\"\n [tooltip]=\"'Add to selected data points' | translate\"\n [delay]=\"500\"\n [disabled]=\"!(isValid$ | async)\"\n (click)=\"addOrRemoveItem()\"\n *ngIf=\"!isSelected\"\n [attr.data-cy]=\"'datapoint-selector-list-item--add-datapoint-button'\"\n >\n <i class=\"text-primary icon-20\" c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n </div>\n\n <c8y-li-action\n *ngIf=\"optionToRemove\"\n [icon]=\"'minus-circle'\"\n [label]=\"'Remove from list' | translate\"\n (click)=\"remove()\"\n ></c8y-li-action>\n <c8y-li-action\n *ngFor=\"let action of actions\"\n [icon]=\"action.icon\"\n [label]=\"action.label\"\n (click)=\"action.callback(formGroup.value)\"\n ></c8y-li-action>\n <c8y-li-collapse>\n <div class=\"data-point-details\">\n <ul class=\"list-unstyled small m-b-16\">\n <li class=\"p-t-4 p-b-4 d-flex separator-top-bottom\">\n <label class=\"small m-b-0 m-r-8 a-s-start text-muted\" translate>Fragment</label>\n <span class=\"m-l-auto\">\n <c8y-highlight\n [text]=\"formGroup.value.fragment\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n </li>\n <li class=\"p-t-4 p-b-4 d-flex separator-bottom\">\n <label class=\"small m-b-0 m-r-8 a-s-start text-muted\" translate>Series</label>\n <span class=\"m-l-auto\">\n <c8y-highlight\n [text]=\"formGroup.value.series\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n </li>\n </ul>\n <div\n class=\"form-group\"\n *ngIf=\"datapointLibraryEntries && datapointLibraryEntries | async as libraryEntries\"\n >\n <label class=\"d-inline-block\" translate>Data point template</label>\n <button\n class=\"btn-help btn-help--sm\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"datapointHintPopoverTemplate\"\n (click)=\"$event.stopPropagation()\"\n triggers=\"focus\"\n placement=\"top\"\n container=\"body\"\n ></button>\n\n <ng-template #datapointHintPopoverTemplate>\n {{\n 'Using a data point template sets color, label, unit and ranges. Removing the template allows you to set the values manually.'\n | translate\n }}\n </ng-template>\n <div class=\"d-flex\">\n <c8y-typeahead\n class=\"flex-grow\"\n [placeholder]=\"'No template' | translate\"\n [ngModel]=\"formGroup.value.__template ? formGroup.value.details : undefined\"\n [ngModelOptions]=\"{ standalone: true }\"\n (onSearch)=\"setPipe($event)\"\n [displayProperty]=\"'label'\"\n [hideNew]=\"true\"\n *ngIf=\"datapointLibraryEntries\"\n [disabled]=\"isSelected && disableTypeaheadIfSelected\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link interact\"\n *c8yFor=\"\n let item of datapointLibraryEntries;\n loadMore: 'auto';\n pipe: filterPipe;\n notFound: notFoundTemplate\n \"\n (click)=\"dataPointTemplateSelected(item)\"\n [active]=\"formGroup.value.__template === item.id\"\n [attr.role]=\"'menuitem'\"\n >\n <c8y-highlight [text]=\"item.c8y_Kpi?.label\" [pattern]=\"pattern\"></c8y-highlight>\n <c8y-li-icon icon=\"circle\" [style.color]=\"item.c8y_Kpi?.color\"></c8y-li-icon>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li class=\"bg-level-2 p-8\" *ngIf=\"pattern.length > 0\">\n <span>No match found.</span>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n <button\n class=\"btn btn-info btn-xs btn-icon a-s-center m-l-8\"\n type=\"button\"\n [attr.aria-label]=\"'Info' | translate\"\n [popover]=\"datapointOverviewPopoverTemplate\"\n placement=\"left\"\n triggers=\"focus\"\n container=\"body\"\n *ngIf=\"formGroup.value.__template\"\n >\n <i class=\"text-info\" c8yIcon=\"info\"></i>\n </button>\n <button\n class=\"btn btn-danger btn-xs btn-icon a-s-center m-l-8\"\n type=\"button\"\n tooltip=\"{{ 'Unlink data point template' | translate }}\"\n [attr.aria-label]=\"'Unlink data point template' | translate\"\n triggers=\"mouseenter\"\n [delay]=\"500\"\n *ngIf=\"formGroup.value.__template && hasUnlinkTemplateOption\"\n (click)=\"unlinkDatapointTemplate()\"\n >\n <i c8yIcon=\"unlink\"></i>\n </button>\n </div>\n </div>\n <ng-template #datapointOverviewPopoverTemplate>\n <c8y-datapoint-template-popover\n [datapoint]=\"formGroup.value.details\"\n ></c8y-datapoint-template-popover>\n </ng-template>\n <c8y-datapoint-attributes-form\n *ngIf=\"defaultFormOptions\"\n [showTarget]=\"defaultFormOptions.showTarget\"\n [showRange]=\"defaultFormOptions.showRange\"\n [showYellowRange]=\"defaultFormOptions.showYellowRange\"\n [showRedRange]=\"defaultFormOptions.showRedRange\"\n [showChart]=\"defaultFormOptions.showChart\"\n [showDisplay]=\"defaultFormOptions.showDisplay\"\n [showFormIfTemplateWasSelected]=\"defaultFormOptions.showFormIfTemplateWasSelected\"\n formControlName=\"details\"\n ></c8y-datapoint-attributes-form>\n </div>\n </c8y-li-collapse>\n</c8y-li>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "component", type: i2.HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "component", type: i2.TypeaheadComponent, selector: "c8y-typeahead", inputs: ["required", "maxlength", "disabled", "allowFreeEntries", "placeholder", "displayProperty", "icon", "name", "autoClose", "hideNew", "container", "selected", "highlightFirstItem"], outputs: ["onSearch", "onIconClick"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: i2.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i2.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: i2.ListItemActionComponent, selector: "c8y-list-item-action, c8y-li-action", inputs: ["label", "icon", "disabled"], outputs: ["click"] }, { kind: "component", type: i2.ListItemCollapseComponent, selector: "c8y-list-item-collapse, c8y-li-collapse", inputs: ["collapseWay"] }, { kind: "component", type: i2.ListItemCheckboxComponent, selector: "c8y-list-item-checkbox, c8y-li-checkbox", inputs: ["selected", "indeterminate", "disabled", "displayAsSwitch"], outputs: ["onSelect"] }, { kind: "component", type: i2.ListItemDragHandleComponent, selector: "c8y-list-item-drag-handle, c8y-li-drag-handle" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4$1.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i5.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: DatapointTemplatePopoverComponent, selector: "c8y-datapoint-template-popover", inputs: ["datapoint", "attributes"] }, { kind: "component", type: DatapointAttributesFormComponent, selector: "c8y-datapoint-attributes-form", inputs: ["showTarget", "showRange", "showYellowRange", "showRedRange", "showChart", "showDisplay", "showFormIfTemplateWasSelected"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
779
+ ], queries: [{ propertyName: "dragHandle", first: true, predicate: ListItemDragHandleComponent, descendants: true }], ngImport: i0, template: "<c8y-li class=\"c8y-list__item__collapse--container-small\" [formGroup]=\"formGroup\" #li>\n <c8y-li-drag-handle><ng-content select=\"c8y-li-drag-handle\"></ng-content></c8y-li-drag-handle>\n <c8y-li-checkbox\n class=\"a-s-center p-r-0\"\n *ngIf=\"showActiveToggle\"\n [displayAsSwitch]=\"true\"\n formControlName=\"__active\"\n (click)=\"$event.stopPropagation()\"\n ></c8y-li-checkbox>\n\n <div class=\"d-flex a-i-center p-l-16\">\n <div class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-0\" [title]=\"'Change color' | translate\">\n <div class=\"c8y-colorpicker\">\n <input\n type=\"color\"\n [attr.aria-label]=\"'Color' | translate\"\n formControlName=\"color\"\n (click)=\"$event.stopPropagation()\"\n />\n <span [style.background-color]=\"formGroup.value.color\"></span>\n </div>\n </div>\n <button\n class=\"btn-clean data-point-label text-truncate\"\n type=\"button\"\n [attr.aria-expanded]=\"!li.collapsed\"\n (click)=\"li.collapsed = !li.collapsed\"\n >\n <span class=\"text-truncate\" [title]=\"formGroup.value.details?.label\">\n <c8y-highlight\n [text]=\"formGroup.value.details?.label\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n <small class=\"text-truncate text-muted icon-flex\" *ngIf=\"formGroup.value.__target\">\n <i c8yIcon=\"exchange\"></i>\n <span class=\"text-truncate\">{{ formGroup.value.__target.name }}</span>\n </small>\n </button>\n\n <button\n class=\"btn btn-dot btn-dot--danger m-l-auto\"\n type=\"button\"\n [attr.aria-label]=\"'Invalid' | translate\"\n [popover]=\"\n errorMessage\n ? errorMessage\n : ('Some entries are invalid. Check the input fields with red borders.' | translate)\n \"\n triggers=\"focus\"\n placement=\"left\"\n container=\"body\"\n *ngIf=\"!(isValid$ | async)\"\n >\n <i c8yIcon=\"warning\"></i>\n </button>\n <div class=\"m-l-auto a-s-center p-r-4\" *ngIf=\"showAddRemoveButton\">\n <button\n class=\"btn btn-dot btn-dot--danger\"\n type=\"button\"\n [attr.aria-label]=\"'Remove' | translate\"\n [tooltip]=\"'Remove from selected data points' | translate\"\n [delay]=\"500\"\n (click)=\"addOrRemoveItem()\"\n *ngIf=\"isSelected\"\n [attr.data-cy]=\"'datapoint-selector-list-item--remove-datapoint-button'\"\n >\n <i class=\"icon-20\" c8yIcon=\"minus-circle\"></i>\n </button>\n <button\n class=\"btn btn-dot text-primary\"\n type=\"button\"\n [attr.aria-label]=\"'Add to selected data points' | translate\"\n [tooltip]=\"'Add to selected data points' | translate\"\n [delay]=\"500\"\n [disabled]=\"!(isValid$ | async)\"\n (click)=\"addOrRemoveItem()\"\n *ngIf=\"!isSelected\"\n [attr.data-cy]=\"'datapoint-selector-list-item--add-datapoint-button'\"\n >\n <i class=\"text-primary icon-20\" c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n </div>\n\n <c8y-li-action\n *ngIf=\"optionToRemove\"\n [icon]=\"'minus-circle'\"\n [label]=\"'Remove from list' | translate\"\n (click)=\"remove()\"\n ></c8y-li-action>\n <c8y-li-action\n *ngFor=\"let action of actions\"\n [icon]=\"action.icon\"\n [label]=\"action.label\"\n (click)=\"action.callback(formGroup.value)\"\n ></c8y-li-action>\n <c8y-li-collapse>\n <div class=\"data-point-details\">\n <ul class=\"list-unstyled small m-b-16\">\n <li class=\"p-t-4 p-b-4 d-flex separator-top-bottom\">\n <label class=\"small m-b-0 m-r-8 a-s-start text-muted\" translate>Fragment</label>\n <span class=\"m-l-auto\">\n <c8y-highlight\n [text]=\"formGroup.value.fragment\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n </li>\n <li class=\"p-t-4 p-b-4 d-flex separator-bottom\">\n <label class=\"small m-b-0 m-r-8 a-s-start text-muted\" translate>Series</label>\n <span class=\"m-l-auto\">\n <c8y-highlight\n [text]=\"formGroup.value.series\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n </li>\n </ul>\n <div\n class=\"form-group\"\n *ngIf=\"datapointLibraryEntries && datapointLibraryEntries | async as libraryEntries\"\n >\n <label class=\"d-inline-block\" translate>Data point template</label>\n <button\n class=\"btn-help btn-help--sm\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"datapointHintPopoverTemplate\"\n (click)=\"$event.stopPropagation()\"\n triggers=\"focus\"\n placement=\"top\"\n container=\"body\"\n ></button>\n\n <ng-template #datapointHintPopoverTemplate>\n {{\n 'Using a data point template sets color, label, unit and ranges. Removing the template allows you to set the values manually.'\n | translate\n }}\n </ng-template>\n <div class=\"d-flex\">\n <c8y-typeahead\n class=\"flex-grow\"\n [placeholder]=\"'No template' | translate\"\n [ngModel]=\"formGroup.value.__template ? formGroup.value.details : undefined\"\n [ngModelOptions]=\"{ standalone: true }\"\n (onSearch)=\"setPipe($event)\"\n [displayProperty]=\"'label'\"\n [hideNew]=\"true\"\n *ngIf=\"datapointLibraryEntries\"\n [disabled]=\"isSelected && disableTypeaheadIfSelected\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link interact\"\n *c8yFor=\"\n let item of datapointLibraryEntries;\n loadMore: 'auto';\n pipe: filterPipe;\n notFound: notFoundTemplate\n \"\n (click)=\"dataPointTemplateSelected(item)\"\n [active]=\"formGroup.value.__template === item.id\"\n [attr.role]=\"'menuitem'\"\n >\n <c8y-highlight [text]=\"item.c8y_Kpi?.label\" [pattern]=\"pattern\"></c8y-highlight>\n <c8y-li-icon icon=\"circle\" [style.color]=\"item.c8y_Kpi?.color\"></c8y-li-icon>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li class=\"bg-level-2 p-8\" *ngIf=\"pattern.length > 0\">\n <span>No match found.</span>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n <button\n class=\"btn btn-info btn-xs btn-icon a-s-center m-l-8\"\n type=\"button\"\n [attr.aria-label]=\"'Info' | translate\"\n [popover]=\"datapointOverviewPopoverTemplate\"\n placement=\"left\"\n triggers=\"focus\"\n container=\"body\"\n *ngIf=\"formGroup.value.__template\"\n >\n <i class=\"text-info\" c8yIcon=\"info\"></i>\n </button>\n <button\n class=\"btn btn-danger btn-xs btn-icon a-s-center m-l-8\"\n type=\"button\"\n tooltip=\"{{ 'Unlink data point template' | translate }}\"\n [attr.aria-label]=\"'Unlink data point template' | translate\"\n triggers=\"mouseenter\"\n [delay]=\"500\"\n *ngIf=\"formGroup.value.__template && hasUnlinkTemplateOption\"\n (click)=\"unlinkDatapointTemplate()\"\n >\n <i c8yIcon=\"unlink\"></i>\n </button>\n </div>\n </div>\n <ng-template #datapointOverviewPopoverTemplate>\n <c8y-datapoint-template-popover\n [datapoint]=\"formGroup.value.details\"\n ></c8y-datapoint-template-popover>\n </ng-template>\n <c8y-datapoint-attributes-form\n *ngIf=\"defaultFormOptions\"\n [showTarget]=\"defaultFormOptions.showTarget\"\n [showRange]=\"defaultFormOptions.showRange\"\n [showYellowRange]=\"defaultFormOptions.showYellowRange\"\n [showRedRange]=\"defaultFormOptions.showRedRange\"\n [showChart]=\"defaultFormOptions.showChart\"\n [showFormIfTemplateWasSelected]=\"defaultFormOptions.showFormIfTemplateWasSelected\"\n [selectableChartRenderTypes]=\"defaultFormOptions.selectableChartRenderTypes\"\n [selectableChartLineTypes]=\"defaultFormOptions.selectableChartLineTypes\"\n [selectableAxisTypes]=\"defaultFormOptions.selectableAxisTypes\"\n formControlName=\"details\"\n ></c8y-datapoint-attributes-form>\n </div>\n </c8y-li-collapse>\n</c8y-li>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "component", type: i2.HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "component", type: i2.TypeaheadComponent, selector: "c8y-typeahead", inputs: ["required", "maxlength", "disabled", "allowFreeEntries", "placeholder", "displayProperty", "icon", "name", "autoClose", "hideNew", "container", "selected", "highlightFirstItem"], outputs: ["onSearch", "onIconClick"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: i2.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i2.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: i2.ListItemActionComponent, selector: "c8y-list-item-action, c8y-li-action", inputs: ["label", "icon", "disabled"], outputs: ["click"] }, { kind: "component", type: i2.ListItemCollapseComponent, selector: "c8y-list-item-collapse, c8y-li-collapse", inputs: ["collapseWay"] }, { kind: "component", type: i2.ListItemCheckboxComponent, selector: "c8y-list-item-checkbox, c8y-li-checkbox", inputs: ["selected", "indeterminate", "disabled", "displayAsSwitch"], outputs: ["onSelect"] }, { kind: "component", type: i2.ListItemDragHandleComponent, selector: "c8y-list-item-drag-handle, c8y-li-drag-handle" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4$1.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i5.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: DatapointTemplatePopoverComponent, selector: "c8y-datapoint-template-popover", inputs: ["datapoint", "attributes"] }, { kind: "component", type: DatapointAttributesFormComponent, selector: "c8y-datapoint-attributes-form", inputs: ["selectableChartRenderTypes", "selectableChartLineTypes", "selectableAxisTypes", "showTarget", "showRange", "showYellowRange", "showRedRange", "showChart", "showFormIfTemplateWasSelected"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
755
780
  }
756
781
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DatapointSelectorListItemComponent, decorators: [{
757
782
  type: Component,
@@ -766,7 +791,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
766
791
  useExisting: forwardRef(() => DatapointSelectorListItemComponent),
767
792
  multi: true
768
793
  }
769
- ], template: "<c8y-li class=\"c8y-list__item__collapse--container-small\" [formGroup]=\"formGroup\" #li>\n <c8y-li-drag-handle><ng-content select=\"c8y-li-drag-handle\"></ng-content></c8y-li-drag-handle>\n <c8y-li-checkbox\n class=\"a-s-center p-r-0\"\n *ngIf=\"showActiveToggle\"\n [displayAsSwitch]=\"true\"\n formControlName=\"__active\"\n (click)=\"$event.stopPropagation()\"\n ></c8y-li-checkbox>\n\n <div class=\"d-flex a-i-center p-l-16\">\n <div class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-0\" [title]=\"'Change color' | translate\">\n <div class=\"c8y-colorpicker\">\n <input\n type=\"color\"\n [attr.aria-label]=\"'Color' | translate\"\n formControlName=\"color\"\n (click)=\"$event.stopPropagation()\"\n />\n <span [style.background-color]=\"formGroup.value.color\"></span>\n </div>\n </div>\n <button\n class=\"btn-clean data-point-label text-truncate\"\n type=\"button\"\n [attr.aria-expanded]=\"!li.collapsed\"\n (click)=\"li.collapsed = !li.collapsed\"\n >\n <span class=\"text-truncate\" [title]=\"formGroup.value.details?.label\">\n <c8y-highlight\n [text]=\"formGroup.value.details?.label\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n <small class=\"text-truncate text-muted icon-flex\" *ngIf=\"formGroup.value.__target\">\n <i c8yIcon=\"exchange\"></i>\n <span class=\"text-truncate\">{{ formGroup.value.__target.name }}</span>\n </small>\n </button>\n\n <button\n class=\"btn btn-dot btn-dot--danger m-l-auto\"\n type=\"button\"\n [attr.aria-label]=\"'Invalid' | translate\"\n [popover]=\"\n errorMessage\n ? errorMessage\n : ('Some entries are invalid. Check the input fields with red borders.' | translate)\n \"\n triggers=\"focus\"\n placement=\"left\"\n container=\"body\"\n *ngIf=\"!(isValid$ | async)\"\n >\n <i c8yIcon=\"warning\"></i>\n </button>\n <div class=\"m-l-auto a-s-center p-r-4\" *ngIf=\"showAddRemoveButton\">\n <button\n class=\"btn btn-dot btn-dot--danger\"\n type=\"button\"\n [attr.aria-label]=\"'Remove' | translate\"\n [tooltip]=\"'Remove from selected data points' | translate\"\n [delay]=\"500\"\n (click)=\"addOrRemoveItem()\"\n *ngIf=\"isSelected\"\n [attr.data-cy]=\"'datapoint-selector-list-item--remove-datapoint-button'\"\n >\n <i class=\"icon-20\" c8yIcon=\"minus-circle\"></i>\n </button>\n <button\n class=\"btn btn-dot text-primary\"\n type=\"button\"\n [attr.aria-label]=\"'Add to selected data points' | translate\"\n [tooltip]=\"'Add to selected data points' | translate\"\n [delay]=\"500\"\n [disabled]=\"!(isValid$ | async)\"\n (click)=\"addOrRemoveItem()\"\n *ngIf=\"!isSelected\"\n [attr.data-cy]=\"'datapoint-selector-list-item--add-datapoint-button'\"\n >\n <i class=\"text-primary icon-20\" c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n </div>\n\n <c8y-li-action\n *ngIf=\"optionToRemove\"\n [icon]=\"'minus-circle'\"\n [label]=\"'Remove from list' | translate\"\n (click)=\"remove()\"\n ></c8y-li-action>\n <c8y-li-action\n *ngFor=\"let action of actions\"\n [icon]=\"action.icon\"\n [label]=\"action.label\"\n (click)=\"action.callback(formGroup.value)\"\n ></c8y-li-action>\n <c8y-li-collapse>\n <div class=\"data-point-details\">\n <ul class=\"list-unstyled small m-b-16\">\n <li class=\"p-t-4 p-b-4 d-flex separator-top-bottom\">\n <label class=\"small m-b-0 m-r-8 a-s-start text-muted\" translate>Fragment</label>\n <span class=\"m-l-auto\">\n <c8y-highlight\n [text]=\"formGroup.value.fragment\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n </li>\n <li class=\"p-t-4 p-b-4 d-flex separator-bottom\">\n <label class=\"small m-b-0 m-r-8 a-s-start text-muted\" translate>Series</label>\n <span class=\"m-l-auto\">\n <c8y-highlight\n [text]=\"formGroup.value.series\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n </li>\n </ul>\n <div\n class=\"form-group\"\n *ngIf=\"datapointLibraryEntries && datapointLibraryEntries | async as libraryEntries\"\n >\n <label class=\"d-inline-block\" translate>Data point template</label>\n <button\n class=\"btn-help btn-help--sm\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"datapointHintPopoverTemplate\"\n (click)=\"$event.stopPropagation()\"\n triggers=\"focus\"\n placement=\"top\"\n container=\"body\"\n ></button>\n\n <ng-template #datapointHintPopoverTemplate>\n {{\n 'Using a data point template sets color, label, unit and ranges. Removing the template allows you to set the values manually.'\n | translate\n }}\n </ng-template>\n <div class=\"d-flex\">\n <c8y-typeahead\n class=\"flex-grow\"\n [placeholder]=\"'No template' | translate\"\n [ngModel]=\"formGroup.value.__template ? formGroup.value.details : undefined\"\n [ngModelOptions]=\"{ standalone: true }\"\n (onSearch)=\"setPipe($event)\"\n [displayProperty]=\"'label'\"\n [hideNew]=\"true\"\n *ngIf=\"datapointLibraryEntries\"\n [disabled]=\"isSelected && disableTypeaheadIfSelected\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link interact\"\n *c8yFor=\"\n let item of datapointLibraryEntries;\n loadMore: 'auto';\n pipe: filterPipe;\n notFound: notFoundTemplate\n \"\n (click)=\"dataPointTemplateSelected(item)\"\n [active]=\"formGroup.value.__template === item.id\"\n [attr.role]=\"'menuitem'\"\n >\n <c8y-highlight [text]=\"item.c8y_Kpi?.label\" [pattern]=\"pattern\"></c8y-highlight>\n <c8y-li-icon icon=\"circle\" [style.color]=\"item.c8y_Kpi?.color\"></c8y-li-icon>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li class=\"bg-level-2 p-8\" *ngIf=\"pattern.length > 0\">\n <span>No match found.</span>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n <button\n class=\"btn btn-info btn-xs btn-icon a-s-center m-l-8\"\n type=\"button\"\n [attr.aria-label]=\"'Info' | translate\"\n [popover]=\"datapointOverviewPopoverTemplate\"\n placement=\"left\"\n triggers=\"focus\"\n container=\"body\"\n *ngIf=\"formGroup.value.__template\"\n >\n <i class=\"text-info\" c8yIcon=\"info\"></i>\n </button>\n <button\n class=\"btn btn-danger btn-xs btn-icon a-s-center m-l-8\"\n type=\"button\"\n tooltip=\"{{ 'Unlink data point template' | translate }}\"\n [attr.aria-label]=\"'Unlink data point template' | translate\"\n triggers=\"mouseenter\"\n [delay]=\"500\"\n *ngIf=\"formGroup.value.__template && hasUnlinkTemplateOption\"\n (click)=\"unlinkDatapointTemplate()\"\n >\n <i c8yIcon=\"unlink\"></i>\n </button>\n </div>\n </div>\n <ng-template #datapointOverviewPopoverTemplate>\n <c8y-datapoint-template-popover\n [datapoint]=\"formGroup.value.details\"\n ></c8y-datapoint-template-popover>\n </ng-template>\n <c8y-datapoint-attributes-form\n *ngIf=\"defaultFormOptions\"\n [showTarget]=\"defaultFormOptions.showTarget\"\n [showRange]=\"defaultFormOptions.showRange\"\n [showYellowRange]=\"defaultFormOptions.showYellowRange\"\n [showRedRange]=\"defaultFormOptions.showRedRange\"\n [showChart]=\"defaultFormOptions.showChart\"\n [showDisplay]=\"defaultFormOptions.showDisplay\"\n [showFormIfTemplateWasSelected]=\"defaultFormOptions.showFormIfTemplateWasSelected\"\n formControlName=\"details\"\n ></c8y-datapoint-attributes-form>\n </div>\n </c8y-li-collapse>\n</c8y-li>\n" }]
794
+ ], template: "<c8y-li class=\"c8y-list__item__collapse--container-small\" [formGroup]=\"formGroup\" #li>\n <c8y-li-drag-handle><ng-content select=\"c8y-li-drag-handle\"></ng-content></c8y-li-drag-handle>\n <c8y-li-checkbox\n class=\"a-s-center p-r-0\"\n *ngIf=\"showActiveToggle\"\n [displayAsSwitch]=\"true\"\n formControlName=\"__active\"\n (click)=\"$event.stopPropagation()\"\n ></c8y-li-checkbox>\n\n <div class=\"d-flex a-i-center p-l-16\">\n <div class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-0\" [title]=\"'Change color' | translate\">\n <div class=\"c8y-colorpicker\">\n <input\n type=\"color\"\n [attr.aria-label]=\"'Color' | translate\"\n formControlName=\"color\"\n (click)=\"$event.stopPropagation()\"\n />\n <span [style.background-color]=\"formGroup.value.color\"></span>\n </div>\n </div>\n <button\n class=\"btn-clean data-point-label text-truncate\"\n type=\"button\"\n [attr.aria-expanded]=\"!li.collapsed\"\n (click)=\"li.collapsed = !li.collapsed\"\n >\n <span class=\"text-truncate\" [title]=\"formGroup.value.details?.label\">\n <c8y-highlight\n [text]=\"formGroup.value.details?.label\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n <small class=\"text-truncate text-muted icon-flex\" *ngIf=\"formGroup.value.__target\">\n <i c8yIcon=\"exchange\"></i>\n <span class=\"text-truncate\">{{ formGroup.value.__target.name }}</span>\n </small>\n </button>\n\n <button\n class=\"btn btn-dot btn-dot--danger m-l-auto\"\n type=\"button\"\n [attr.aria-label]=\"'Invalid' | translate\"\n [popover]=\"\n errorMessage\n ? errorMessage\n : ('Some entries are invalid. Check the input fields with red borders.' | translate)\n \"\n triggers=\"focus\"\n placement=\"left\"\n container=\"body\"\n *ngIf=\"!(isValid$ | async)\"\n >\n <i c8yIcon=\"warning\"></i>\n </button>\n <div class=\"m-l-auto a-s-center p-r-4\" *ngIf=\"showAddRemoveButton\">\n <button\n class=\"btn btn-dot btn-dot--danger\"\n type=\"button\"\n [attr.aria-label]=\"'Remove' | translate\"\n [tooltip]=\"'Remove from selected data points' | translate\"\n [delay]=\"500\"\n (click)=\"addOrRemoveItem()\"\n *ngIf=\"isSelected\"\n [attr.data-cy]=\"'datapoint-selector-list-item--remove-datapoint-button'\"\n >\n <i class=\"icon-20\" c8yIcon=\"minus-circle\"></i>\n </button>\n <button\n class=\"btn btn-dot text-primary\"\n type=\"button\"\n [attr.aria-label]=\"'Add to selected data points' | translate\"\n [tooltip]=\"'Add to selected data points' | translate\"\n [delay]=\"500\"\n [disabled]=\"!(isValid$ | async)\"\n (click)=\"addOrRemoveItem()\"\n *ngIf=\"!isSelected\"\n [attr.data-cy]=\"'datapoint-selector-list-item--add-datapoint-button'\"\n >\n <i class=\"text-primary icon-20\" c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n </div>\n\n <c8y-li-action\n *ngIf=\"optionToRemove\"\n [icon]=\"'minus-circle'\"\n [label]=\"'Remove from list' | translate\"\n (click)=\"remove()\"\n ></c8y-li-action>\n <c8y-li-action\n *ngFor=\"let action of actions\"\n [icon]=\"action.icon\"\n [label]=\"action.label\"\n (click)=\"action.callback(formGroup.value)\"\n ></c8y-li-action>\n <c8y-li-collapse>\n <div class=\"data-point-details\">\n <ul class=\"list-unstyled small m-b-16\">\n <li class=\"p-t-4 p-b-4 d-flex separator-top-bottom\">\n <label class=\"small m-b-0 m-r-8 a-s-start text-muted\" translate>Fragment</label>\n <span class=\"m-l-auto\">\n <c8y-highlight\n [text]=\"formGroup.value.fragment\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n </li>\n <li class=\"p-t-4 p-b-4 d-flex separator-bottom\">\n <label class=\"small m-b-0 m-r-8 a-s-start text-muted\" translate>Series</label>\n <span class=\"m-l-auto\">\n <c8y-highlight\n [text]=\"formGroup.value.series\"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n </li>\n </ul>\n <div\n class=\"form-group\"\n *ngIf=\"datapointLibraryEntries && datapointLibraryEntries | async as libraryEntries\"\n >\n <label class=\"d-inline-block\" translate>Data point template</label>\n <button\n class=\"btn-help btn-help--sm\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"datapointHintPopoverTemplate\"\n (click)=\"$event.stopPropagation()\"\n triggers=\"focus\"\n placement=\"top\"\n container=\"body\"\n ></button>\n\n <ng-template #datapointHintPopoverTemplate>\n {{\n 'Using a data point template sets color, label, unit and ranges. Removing the template allows you to set the values manually.'\n | translate\n }}\n </ng-template>\n <div class=\"d-flex\">\n <c8y-typeahead\n class=\"flex-grow\"\n [placeholder]=\"'No template' | translate\"\n [ngModel]=\"formGroup.value.__template ? formGroup.value.details : undefined\"\n [ngModelOptions]=\"{ standalone: true }\"\n (onSearch)=\"setPipe($event)\"\n [displayProperty]=\"'label'\"\n [hideNew]=\"true\"\n *ngIf=\"datapointLibraryEntries\"\n [disabled]=\"isSelected && disableTypeaheadIfSelected\"\n >\n <c8y-li\n class=\"p-l-8 p-r-8 c8y-list__item--link interact\"\n *c8yFor=\"\n let item of datapointLibraryEntries;\n loadMore: 'auto';\n pipe: filterPipe;\n notFound: notFoundTemplate\n \"\n (click)=\"dataPointTemplateSelected(item)\"\n [active]=\"formGroup.value.__template === item.id\"\n [attr.role]=\"'menuitem'\"\n >\n <c8y-highlight [text]=\"item.c8y_Kpi?.label\" [pattern]=\"pattern\"></c8y-highlight>\n <c8y-li-icon icon=\"circle\" [style.color]=\"item.c8y_Kpi?.color\"></c8y-li-icon>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li class=\"bg-level-2 p-8\" *ngIf=\"pattern.length > 0\">\n <span>No match found.</span>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n <button\n class=\"btn btn-info btn-xs btn-icon a-s-center m-l-8\"\n type=\"button\"\n [attr.aria-label]=\"'Info' | translate\"\n [popover]=\"datapointOverviewPopoverTemplate\"\n placement=\"left\"\n triggers=\"focus\"\n container=\"body\"\n *ngIf=\"formGroup.value.__template\"\n >\n <i class=\"text-info\" c8yIcon=\"info\"></i>\n </button>\n <button\n class=\"btn btn-danger btn-xs btn-icon a-s-center m-l-8\"\n type=\"button\"\n tooltip=\"{{ 'Unlink data point template' | translate }}\"\n [attr.aria-label]=\"'Unlink data point template' | translate\"\n triggers=\"mouseenter\"\n [delay]=\"500\"\n *ngIf=\"formGroup.value.__template && hasUnlinkTemplateOption\"\n (click)=\"unlinkDatapointTemplate()\"\n >\n <i c8yIcon=\"unlink\"></i>\n </button>\n </div>\n </div>\n <ng-template #datapointOverviewPopoverTemplate>\n <c8y-datapoint-template-popover\n [datapoint]=\"formGroup.value.details\"\n ></c8y-datapoint-template-popover>\n </ng-template>\n <c8y-datapoint-attributes-form\n *ngIf=\"defaultFormOptions\"\n [showTarget]=\"defaultFormOptions.showTarget\"\n [showRange]=\"defaultFormOptions.showRange\"\n [showYellowRange]=\"defaultFormOptions.showYellowRange\"\n [showRedRange]=\"defaultFormOptions.showRedRange\"\n [showChart]=\"defaultFormOptions.showChart\"\n [showFormIfTemplateWasSelected]=\"defaultFormOptions.showFormIfTemplateWasSelected\"\n [selectableChartRenderTypes]=\"defaultFormOptions.selectableChartRenderTypes\"\n [selectableChartLineTypes]=\"defaultFormOptions.selectableChartLineTypes\"\n [selectableAxisTypes]=\"defaultFormOptions.selectableAxisTypes\"\n formControlName=\"details\"\n ></c8y-datapoint-attributes-form>\n </div>\n </c8y-li-collapse>\n</c8y-li>\n" }]
770
795
  }], ctorParameters: () => [{ type: i4.FormBuilder }], propDecorators: { defaultFormOptions: [{
771
796
  type: Input
772
797
  }], isSelected: [{