@c8y/ngx-components 1022.10.1 → 1022.16.2

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 (1047) hide show
  1. package/actility-device-registration/actility-device-registration-button.component.d.ts +1 -1
  2. package/actility-device-registration/actility-device-registration-button.component.d.ts.map +1 -1
  3. package/actility-device-registration/actility-device-registration.component.d.ts +1 -1
  4. package/actility-device-registration/actility-device-registration.component.d.ts.map +1 -1
  5. package/actility-device-registration/actility-device-registration.module.d.ts +4 -4
  6. package/actility-device-registration/actility-device-registration.module.d.ts.map +1 -1
  7. package/alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.component.d.ts +1 -1
  8. package/alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.component.d.ts.map +1 -1
  9. package/alarm-event-selector/alarm-event-selection-list/alarm-event-selection-list.component.d.ts +25 -1
  10. package/alarm-event-selector/alarm-event-selection-list/alarm-event-selection-list.component.d.ts.map +1 -1
  11. package/alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.d.ts +1 -1
  12. package/alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.d.ts.map +1 -1
  13. package/alarm-event-selector/alarm-event-selector-modal/alarm-event-selector-modal.component.d.ts +1 -1
  14. package/alarm-event-selector/alarm-event-selector-modal/alarm-event-selector-modal.component.d.ts.map +1 -1
  15. package/alarm-event-selector/alarm-event-selector.component.d.ts +1 -1
  16. package/alarm-event-selector/alarm-event-selector.component.d.ts.map +1 -1
  17. package/alarm-event-selector/alarm-event-selector.module.d.ts +15 -15
  18. package/alarm-event-selector/alarm-event-selector.module.d.ts.map +1 -1
  19. package/alarm-event-selector/custom-alarm-event-form/custom-alarm-event-form.component.d.ts +1 -1
  20. package/alarm-event-selector/custom-alarm-event-form/custom-alarm-event-form.component.d.ts.map +1 -1
  21. package/alarm-event-selector/pipes/includes-alarm.pipe.d.ts +1 -1
  22. package/alarm-event-selector/pipes/includes-alarm.pipe.d.ts.map +1 -1
  23. package/alarms/alarm-details.component.d.ts +1 -1
  24. package/alarms/alarm-details.component.d.ts.map +1 -1
  25. package/alarms/alarm-empty.component.d.ts +1 -1
  26. package/alarms/alarm-empty.component.d.ts.map +1 -1
  27. package/alarms/alarm-info.component.d.ts +1 -1
  28. package/alarms/alarm-info.component.d.ts.map +1 -1
  29. package/alarms/alarm-severities-to-title.pipe.d.ts +1 -1
  30. package/alarms/alarm-severities-to-title.pipe.d.ts.map +1 -1
  31. package/alarms/alarm-severity-to-label.pipe.d.ts +1 -1
  32. package/alarms/alarm-severity-to-label.pipe.d.ts.map +1 -1
  33. package/alarms/alarm-status-to-icon.pipe.d.ts +1 -1
  34. package/alarms/alarm-status-to-icon.pipe.d.ts.map +1 -1
  35. package/alarms/alarm-status-to-label.pipe.d.ts +1 -1
  36. package/alarms/alarm-status-to-label.pipe.d.ts.map +1 -1
  37. package/alarms/alarms-date-filter.component.d.ts +1 -1
  38. package/alarms/alarms-date-filter.component.d.ts.map +1 -1
  39. package/alarms/alarms-filter.component.d.ts +1 -1
  40. package/alarms/alarms-filter.component.d.ts.map +1 -1
  41. package/alarms/alarms-icon.component.d.ts +1 -1
  42. package/alarms/alarms-icon.component.d.ts.map +1 -1
  43. package/alarms/alarms-interval-refresh.component.d.ts +1 -1
  44. package/alarms/alarms-interval-refresh.component.d.ts.map +1 -1
  45. package/alarms/alarms-list.component.d.ts +1 -1
  46. package/alarms/alarms-list.component.d.ts.map +1 -1
  47. package/alarms/alarms-type-filter.component.d.ts +1 -1
  48. package/alarms/alarms-type-filter.component.d.ts.map +1 -1
  49. package/alarms/alarms.component.d.ts +1 -1
  50. package/alarms/alarms.component.d.ts.map +1 -1
  51. package/alarms/alarms.helper.d.ts.map +1 -1
  52. package/alarms/alarms.module.d.ts +27 -27
  53. package/alarms/alarms.module.d.ts.map +1 -1
  54. package/alarms/audit-changes-message.pipe.d.ts +1 -1
  55. package/alarms/audit-changes-message.pipe.d.ts.map +1 -1
  56. package/api/api.service.d.ts +8 -0
  57. package/api/api.service.d.ts.map +1 -1
  58. package/app-logs/app-logs-auto-refresh.component.d.ts +1 -1
  59. package/app-logs/app-logs-auto-refresh.component.d.ts.map +1 -1
  60. package/app-logs/app-logs-auto-refresh.module.d.ts +4 -4
  61. package/app-logs/app-logs-auto-refresh.module.d.ts.map +1 -1
  62. package/assets-navigator/asset-selector/asset-selector-node.component.d.ts +1 -1
  63. package/assets-navigator/asset-selector/asset-selector-node.component.d.ts.map +1 -1
  64. package/assets-navigator/asset-selector/asset-selector.component.d.ts +12 -1
  65. package/assets-navigator/asset-selector/asset-selector.component.d.ts.map +1 -1
  66. package/assets-navigator/asset-selector/asset-selector.module.d.ts +8 -8
  67. package/assets-navigator/asset-selector/asset-selector.module.d.ts.map +1 -1
  68. package/assets-navigator/asset-selector/miller-view.component.d.ts +1 -1
  69. package/assets-navigator/asset-selector/miller-view.component.d.ts.map +1 -1
  70. package/auth-configuration/basic-settings/auth-configuration.component.d.ts +1 -1
  71. package/auth-configuration/basic-settings/auth-configuration.component.d.ts.map +1 -1
  72. package/auth-configuration/basic-settings/basic-auth-settings.component.d.ts +1 -1
  73. package/auth-configuration/basic-settings/basic-auth-settings.component.d.ts.map +1 -1
  74. package/auth-configuration/basic-settings/basic-settings.module.d.ts +8 -8
  75. package/auth-configuration/basic-settings/basic-settings.module.d.ts.map +1 -1
  76. package/auth-configuration/basic-settings/login-settings.component.d.ts +2 -2
  77. package/auth-configuration/basic-settings/login-settings.component.d.ts.map +1 -1
  78. package/auth-configuration/basic-settings/session-configuration.component.d.ts +1 -1
  79. package/auth-configuration/basic-settings/session-configuration.component.d.ts.map +1 -1
  80. package/auth-configuration/basic-settings/tfa-settings.component.d.ts +1 -1
  81. package/auth-configuration/basic-settings/tfa-settings.component.d.ts.map +1 -1
  82. package/auth-configuration/sso-configuration/sso-configuration.component.d.ts +1 -1
  83. package/auth-configuration/sso-configuration/sso-configuration.component.d.ts.map +1 -1
  84. package/auth-configuration/sso-configuration/sso-configuration.module.d.ts +24 -24
  85. package/auth-configuration/sso-configuration/sso-configuration.module.d.ts.map +1 -1
  86. package/auth-configuration/sso-configuration/template-parts/access-mapping/access-mapping.component.d.ts +1 -1
  87. package/auth-configuration/sso-configuration/template-parts/access-mapping/access-mapping.component.d.ts.map +1 -1
  88. package/auth-configuration/sso-configuration/template-parts/access-mapping/child-predicates.component.d.ts +1 -1
  89. package/auth-configuration/sso-configuration/template-parts/access-mapping/child-predicates.component.d.ts.map +1 -1
  90. package/auth-configuration/sso-configuration/template-parts/access-mapping/dynamic-access-mapping.component.d.ts +1 -1
  91. package/auth-configuration/sso-configuration/template-parts/access-mapping/dynamic-access-mapping.component.d.ts.map +1 -1
  92. package/auth-configuration/sso-configuration/template-parts/access-mapping/inventory-roles-mapping.component.d.ts +1 -1
  93. package/auth-configuration/sso-configuration/template-parts/access-mapping/inventory-roles-mapping.component.d.ts.map +1 -1
  94. package/auth-configuration/sso-configuration/template-parts/access-mapping/inventory-roles-modal.component.d.ts +1 -1
  95. package/auth-configuration/sso-configuration/template-parts/access-mapping/inventory-roles-modal.component.d.ts.map +1 -1
  96. package/auth-configuration/sso-configuration/template-parts/basic-configuration.component.d.ts +1 -1
  97. package/auth-configuration/sso-configuration/template-parts/basic-configuration.component.d.ts.map +1 -1
  98. package/auth-configuration/sso-configuration/template-parts/external-token-config.component.d.ts +1 -1
  99. package/auth-configuration/sso-configuration/template-parts/external-token-config.component.d.ts.map +1 -1
  100. package/auth-configuration/sso-configuration/template-parts/logout-configuration.component.d.ts +1 -1
  101. package/auth-configuration/sso-configuration/template-parts/logout-configuration.component.d.ts.map +1 -1
  102. package/auth-configuration/sso-configuration/template-parts/request-configuration.component.d.ts +1 -1
  103. package/auth-configuration/sso-configuration/template-parts/request-configuration.component.d.ts.map +1 -1
  104. package/auth-configuration/sso-configuration/template-parts/signature-configuration.component.d.ts +1 -1
  105. package/auth-configuration/sso-configuration/template-parts/signature-configuration.component.d.ts.map +1 -1
  106. package/auth-configuration/sso-configuration/template-parts/user-data-mapping.component.d.ts +1 -1
  107. package/auth-configuration/sso-configuration/template-parts/user-data-mapping.component.d.ts.map +1 -1
  108. package/auth-configuration/sso-configuration/template-parts/user-id-configuration.component.d.ts +1 -1
  109. package/auth-configuration/sso-configuration/template-parts/user-id-configuration.component.d.ts.map +1 -1
  110. package/auth-configuration/sso-configuration/templates/aad-template.component.d.ts +1 -1
  111. package/auth-configuration/sso-configuration/templates/aad-template.component.d.ts.map +1 -1
  112. package/auth-configuration/sso-configuration/templates/custom-template.component.d.ts +1 -1
  113. package/auth-configuration/sso-configuration/templates/custom-template.component.d.ts.map +1 -1
  114. package/auth-configuration/sso-configuration/templates/key-cloak-template.component.d.ts +1 -1
  115. package/auth-configuration/sso-configuration/templates/key-cloak-template.component.d.ts.map +1 -1
  116. package/auth-configuration/sso-configuration/templates/template.component.d.ts +1 -1
  117. package/bookmarks/bookmarks.component.d.ts +1 -1
  118. package/bookmarks/bookmarks.component.d.ts.map +1 -1
  119. package/bookmarks/bookmarks.module.d.ts +7 -7
  120. package/bookmarks/bookmarks.module.d.ts.map +1 -1
  121. package/bookmarks/edit-bookmarks/edit-bookmarks.component.d.ts +1 -1
  122. package/bookmarks/edit-bookmarks/edit-bookmarks.component.d.ts.map +1 -1
  123. package/child-devices/child-devices.component.d.ts +1 -1
  124. package/child-devices/child-devices.component.d.ts.map +1 -1
  125. package/child-devices/child-devices.module.d.ts +5 -5
  126. package/child-devices/child-devices.module.d.ts.map +1 -1
  127. package/cockpit-config/cockpit-config.module.d.ts +17 -17
  128. package/cockpit-config/cockpit-config.module.d.ts.map +1 -1
  129. package/cockpit-config/cockpit-configuration.component.d.ts +1 -1
  130. package/cockpit-config/cockpit-configuration.component.d.ts.map +1 -1
  131. package/cockpit-config/feature-config.component.d.ts +1 -1
  132. package/cockpit-config/feature-config.component.d.ts.map +1 -1
  133. package/cockpit-config/home-dashboard-config.component.d.ts +1 -1
  134. package/cockpit-config/home-dashboard-config.component.d.ts.map +1 -1
  135. package/cockpit-config/misc-config.component.d.ts +1 -1
  136. package/cockpit-config/misc-config.component.d.ts.map +1 -1
  137. package/cockpit-config/root-node-config.component.d.ts +1 -1
  138. package/cockpit-config/root-node-config.component.d.ts.map +1 -1
  139. package/cockpit-config/setup/cockpit-setup-step1.component.d.ts +1 -1
  140. package/cockpit-config/setup/cockpit-setup-step1.component.d.ts.map +1 -1
  141. package/cockpit-config/setup/cockpit-setup-step2.component.d.ts +1 -1
  142. package/cockpit-config/setup/cockpit-setup-step2.component.d.ts.map +1 -1
  143. package/cockpit-config/setup/cockpit-setup-step3.component.d.ts +1 -1
  144. package/cockpit-config/setup/cockpit-setup-step3.component.d.ts.map +1 -1
  145. package/cockpit-config/setup/cockpit-setup-step4.component.d.ts +1 -1
  146. package/cockpit-config/setup/cockpit-setup-step4.component.d.ts.map +1 -1
  147. package/cockpit-config/setup/cockpit-setup-stepper-buttons.component.d.ts +1 -1
  148. package/cockpit-config/setup/cockpit-setup-stepper-buttons.component.d.ts.map +1 -1
  149. package/context-dashboard/add-dashboard.component.d.ts +1 -1
  150. package/context-dashboard/add-dashboard.component.d.ts.map +1 -1
  151. package/context-dashboard/context-dashboard.component.d.ts +2 -1
  152. package/context-dashboard/context-dashboard.component.d.ts.map +1 -1
  153. package/context-dashboard/context-dashboard.model.d.ts +0 -1
  154. package/context-dashboard/context-dashboard.model.d.ts.map +1 -1
  155. package/context-dashboard/context-dashboard.module.d.ts +26 -19
  156. package/context-dashboard/context-dashboard.module.d.ts.map +1 -1
  157. package/context-dashboard/context-dashboard.service.d.ts +6 -1
  158. package/context-dashboard/context-dashboard.service.d.ts.map +1 -1
  159. package/context-dashboard/dashboard-detail.component.d.ts +2 -2
  160. package/context-dashboard/dashboard-detail.component.d.ts.map +1 -1
  161. package/context-dashboard/device-info-dashboard/device-info-dashboard.component.d.ts +1 -1
  162. package/context-dashboard/device-info-dashboard/device-info-dashboard.component.d.ts.map +1 -1
  163. package/context-dashboard/device-info-dashboard/device-info-dashboard.module.d.ts +5 -5
  164. package/context-dashboard/device-info-dashboard/device-info-dashboard.module.d.ts.map +1 -1
  165. package/context-dashboard/device-management-home-dashboard/device-management-home-dashboard.component.d.ts +1 -1
  166. package/context-dashboard/device-management-home-dashboard/device-management-home-dashboard.component.d.ts.map +1 -1
  167. package/context-dashboard/device-management-home-dashboard/device-management-home-dashboard.module.d.ts +5 -5
  168. package/context-dashboard/device-management-home-dashboard/device-management-home-dashboard.module.d.ts.map +1 -1
  169. package/context-dashboard/paste-dashboard-action.component.d.ts +1 -1
  170. package/context-dashboard/paste-dashboard-action.component.d.ts.map +1 -1
  171. package/context-dashboard/widget-config.component.d.ts +1 -1
  172. package/context-dashboard/widget-config.component.d.ts.map +1 -1
  173. package/context-dashboard/widget-config.service.d.ts +1 -1
  174. package/core/alert/alert.service.d.ts +14 -5
  175. package/core/alert/alert.service.d.ts.map +1 -1
  176. package/core/asset-property/asset-property.model.d.ts +2 -0
  177. package/core/asset-property/asset-property.model.d.ts.map +1 -1
  178. package/core/authentication/authentication.module.d.ts.map +1 -1
  179. package/core/bottom-drawer/bottom-drawer.component.d.ts +3 -0
  180. package/core/bottom-drawer/bottom-drawer.component.d.ts.map +1 -1
  181. package/core/breadcrumb/breadcrumb.module.d.ts +3 -3
  182. package/core/common/ApplicationOptions.d.ts +14 -12
  183. package/core/common/ApplicationOptions.d.ts.map +1 -1
  184. package/core/common/date.pipe.d.ts +1 -1
  185. package/core/common/forOf.directive.d.ts +16 -16
  186. package/core/common/forOf.directive.d.ts.map +1 -1
  187. package/core/common/humanize-app-name.pipe.d.ts +7 -0
  188. package/core/common/humanize-app-name.pipe.d.ts.map +1 -1
  189. package/core/common/humanize.pipe.d.ts +7 -0
  190. package/core/common/humanize.pipe.d.ts.map +1 -1
  191. package/core/common/icon.directive.d.ts +19 -0
  192. package/core/common/icon.directive.d.ts.map +1 -1
  193. package/core/common/markdown-to-html.pipe.d.ts +8 -0
  194. package/core/common/markdown-to-html.pipe.d.ts.map +1 -1
  195. package/core/common/options.service.d.ts +5 -5
  196. package/core/common/outlet.directive.d.ts +4 -6
  197. package/core/common/outlet.directive.d.ts.map +1 -1
  198. package/core/common/permissions.service.d.ts +12 -12
  199. package/core/common/service-registry.service.d.ts +2 -1
  200. package/core/common/service-registry.service.d.ts.map +1 -1
  201. package/core/common/user-name-initials.pipe.d.ts +7 -0
  202. package/core/common/user-name-initials.pipe.d.ts.map +1 -1
  203. package/core/common/user-preferences/user-preferences.service.d.ts +1 -1
  204. package/core/countdown-interval/countdown-interval.component.d.ts +7 -0
  205. package/core/countdown-interval/countdown-interval.component.d.ts.map +1 -1
  206. package/core/dashboard/widget-auto-refresh-context/auto-refresh-control.component.d.ts.map +1 -1
  207. package/core/date-time-picker/date-time-picker.component.d.ts +20 -0
  208. package/core/date-time-picker/date-time-picker.component.d.ts.map +1 -1
  209. package/core/device-status/device-status.component.d.ts +3 -0
  210. package/core/device-status/device-status.component.d.ts.map +1 -1
  211. package/core/drop-area/drop-area.component.d.ts +2 -0
  212. package/core/drop-area/drop-area.component.d.ts.map +1 -1
  213. package/core/dynamic-forms/file/file.type.component.d.ts.map +1 -1
  214. package/core/header/header.model.d.ts +3 -2
  215. package/core/header/header.model.d.ts.map +1 -1
  216. package/core/header/title/title.component.d.ts +2 -0
  217. package/core/header/title/title.component.d.ts.map +1 -1
  218. package/core/i18n/c8y-translate.directive.d.ts +2 -2
  219. package/core/list-display-switch/list-display-switch.component.d.ts +9 -0
  220. package/core/list-display-switch/list-display-switch.component.d.ts.map +1 -1
  221. package/core/modal/modal.module.d.ts.map +1 -1
  222. package/core/plugins/plugins.module.d.ts.map +1 -1
  223. package/core/plugins/plugins.service.d.ts +1 -2
  224. package/core/plugins/plugins.service.d.ts.map +1 -1
  225. package/core/preview-feature/preview-feature.service.d.ts +1 -0
  226. package/core/preview-feature/preview-feature.service.d.ts.map +1 -1
  227. package/core/range-display/range-display.component.d.ts +11 -0
  228. package/core/range-display/range-display.component.d.ts.map +1 -1
  229. package/core/realtime/realtime.service.d.ts +4 -4
  230. package/core/select/select.component.d.ts.map +1 -1
  231. package/dashboard-manager/dashboard-manager.module.d.ts +8 -8
  232. package/dashboard-manager/dashboard-manager.module.d.ts.map +1 -1
  233. package/dashboard-manager/type-dashboard-target-assets-grid/type-dashboard-target-assets-grid.component.d.ts +1 -1
  234. package/dashboard-manager/type-dashboard-target-assets-grid/type-dashboard-target-assets-grid.component.d.ts.map +1 -1
  235. package/dashboard-manager/type-dashboard-target-assets-modal/type-dashboard-target-assets-modal.component.d.ts +1 -1
  236. package/dashboard-manager/type-dashboard-target-assets-modal/type-dashboard-target-assets-modal.component.d.ts.map +1 -1
  237. package/dashboard-manager/type-dashboards-list/type-dashboards-list.component.d.ts +1 -1
  238. package/dashboard-manager/type-dashboards-list/type-dashboards-list.component.d.ts.map +1 -1
  239. package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.d.ts +1 -1
  240. package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.d.ts.map +1 -1
  241. package/datapoint-selector/datapoint-selection-list/datapoint-selection-list.component.d.ts +10 -1
  242. package/datapoint-selector/datapoint-selection-list/datapoint-selection-list.component.d.ts.map +1 -1
  243. package/datapoint-selector/datapoint-selector-list-item/datapoint-selector-list-item.component.d.ts +1 -1
  244. package/datapoint-selector/datapoint-selector-list-item/datapoint-selector-list-item.component.d.ts.map +1 -1
  245. package/datapoint-selector/datapoint-selector-modal/datapoint-selector-modal.component.d.ts +1 -1
  246. package/datapoint-selector/datapoint-selector-modal/datapoint-selector-modal.component.d.ts.map +1 -1
  247. package/datapoint-selector/datapoint-selector.component.d.ts +1 -1
  248. package/datapoint-selector/datapoint-selector.component.d.ts.map +1 -1
  249. package/datapoint-selector/datapoint-selector.module.d.ts +18 -18
  250. package/datapoint-selector/datapoint-selector.module.d.ts.map +1 -1
  251. package/datapoint-selector/datapoint-template-popover/datapoint-template-popover.component.d.ts +1 -1
  252. package/datapoint-selector/datapoint-template-popover/datapoint-template-popover.component.d.ts.map +1 -1
  253. package/datapoint-selector/pipes/datapoint-label.pipe.d.ts +1 -1
  254. package/datapoint-selector/pipes/datapoint-label.pipe.d.ts.map +1 -1
  255. package/datapoint-selector/pipes/filter-datapoints.pipe.d.ts +1 -1
  256. package/datapoint-selector/pipes/filter-datapoints.pipe.d.ts.map +1 -1
  257. package/datapoint-selector/pipes/includes-datapoint.pipe.d.ts +1 -1
  258. package/datapoint-selector/pipes/includes-datapoint.pipe.d.ts.map +1 -1
  259. package/datapoints-export-selector/datapoints-export-selector.component.d.ts +7 -0
  260. package/datapoints-export-selector/datapoints-export-selector.component.d.ts.map +1 -1
  261. package/default-subscriptions/default-subscriptions.component.d.ts +1 -1
  262. package/default-subscriptions/default-subscriptions.component.d.ts.map +1 -1
  263. package/default-subscriptions/default-subscriptions.module.d.ts +4 -4
  264. package/default-subscriptions/default-subscriptions.module.d.ts.map +1 -1
  265. package/device-grid/columns/alarms.cell-renderer.component.d.ts +1 -1
  266. package/device-grid/columns/alarms.cell-renderer.component.d.ts.map +1 -1
  267. package/device-grid/columns/alarms.header-cell-renderer.component.d.ts +1 -1
  268. package/device-grid/columns/alarms.header-cell-renderer.component.d.ts.map +1 -1
  269. package/device-grid/columns/group.cell-renderer.component.d.ts +1 -1
  270. package/device-grid/columns/group.cell-renderer.component.d.ts.map +1 -1
  271. package/device-grid/columns/group.filtering-form-renderer.component.d.ts +1 -1
  272. package/device-grid/columns/group.filtering-form-renderer.component.d.ts.map +1 -1
  273. package/device-grid/columns/model.cell-renderer.component.d.ts +1 -1
  274. package/device-grid/columns/model.cell-renderer.component.d.ts.map +1 -1
  275. package/device-grid/columns/name.cell-renderer.component.d.ts +1 -1
  276. package/device-grid/columns/name.cell-renderer.component.d.ts.map +1 -1
  277. package/device-grid/columns/registration-date.cell-renderer.component.d.ts +1 -1
  278. package/device-grid/columns/registration-date.cell-renderer.component.d.ts.map +1 -1
  279. package/device-grid/columns/serial-number.cell-renderer.component.d.ts +1 -1
  280. package/device-grid/columns/serial-number.cell-renderer.component.d.ts.map +1 -1
  281. package/device-grid/columns/status.cell-renderer.component.d.ts +1 -1
  282. package/device-grid/columns/status.cell-renderer.component.d.ts.map +1 -1
  283. package/device-grid/device-grid.component.d.ts +1 -1
  284. package/device-grid/device-grid.component.d.ts.map +1 -1
  285. package/device-grid/device-grid.module.d.ts +15 -15
  286. package/device-grid/device-grid.module.d.ts.map +1 -1
  287. package/device-list/add-smart-group.component.d.ts +1 -1
  288. package/device-list/add-smart-group.component.d.ts.map +1 -1
  289. package/device-list/device-list.component.d.ts +1 -1
  290. package/device-list/device-list.component.d.ts.map +1 -1
  291. package/device-list/device-list.module.d.ts +8 -8
  292. package/device-list/device-list.module.d.ts.map +1 -1
  293. package/device-list/devices.breadcrumb-factory.d.ts +1 -0
  294. package/device-list/devices.breadcrumb-factory.d.ts.map +1 -1
  295. package/device-parameters/device-parameter-details.component.d.ts +22 -0
  296. package/device-parameters/device-parameter-details.component.d.ts.map +1 -0
  297. package/device-parameters/device-parameter-value.component.d.ts +12 -0
  298. package/device-parameters/device-parameter-value.component.d.ts.map +1 -0
  299. package/device-parameters/device-parameters-list.component.d.ts +2 -1
  300. package/device-parameters/device-parameters-list.component.d.ts.map +1 -1
  301. package/device-parameters/index.d.ts +5 -0
  302. package/device-parameters/index.d.ts.map +1 -1
  303. package/device-parameters/parameter-type-cell-renderer.components.d.ts +8 -0
  304. package/device-parameters/parameter-type-cell-renderer.components.d.ts.map +1 -0
  305. package/device-profile/add-device-profile.component.d.ts +1 -1
  306. package/device-profile/add-device-profile.component.d.ts.map +1 -1
  307. package/device-profile/device-profile-list.component.d.ts +1 -1
  308. package/device-profile/device-profile-list.component.d.ts.map +1 -1
  309. package/device-profile/device-profile.component.d.ts +1 -1
  310. package/device-profile/device-profile.component.d.ts.map +1 -1
  311. package/device-profile/device-profile.module.d.ts +17 -17
  312. package/device-profile/device-profile.module.d.ts.map +1 -1
  313. package/device-profile/device-tab-profile/device-profile-item-list.component.d.ts +1 -1
  314. package/device-profile/device-tab-profile/device-profile-item-list.component.d.ts.map +1 -1
  315. package/device-profile/device-tab-profile/device-tab-profile-detail.component.d.ts +1 -1
  316. package/device-profile/device-tab-profile/device-tab-profile-detail.component.d.ts.map +1 -1
  317. package/device-profile/device-tab-profile/device-tab-profile.component.d.ts +1 -1
  318. package/device-profile/device-tab-profile/device-tab-profile.component.d.ts.map +1 -1
  319. package/device-profile/select-configuration-modal.component.d.ts +1 -1
  320. package/device-profile/select-configuration-modal.component.d.ts.map +1 -1
  321. package/device-protocols/device-protocols.module.d.ts +1 -1
  322. package/device-protocols/device-type-detail.component.d.ts +1 -1
  323. package/device-protocols/device-type-detail.component.d.ts.map +1 -1
  324. package/device-protocols/device-type-detail.directive.d.ts +1 -1
  325. package/device-protocols/device-type-detail.directive.d.ts.map +1 -1
  326. package/device-provisioned-certificates/device-provisioned-certificates.module.d.ts +7 -7
  327. package/device-provisioned-certificates/device-provisioned-certificates.module.d.ts.map +1 -1
  328. package/device-provisioned-certificates/device-tab-provisioned-certificates.component.d.ts +5 -3
  329. package/device-provisioned-certificates/device-tab-provisioned-certificates.component.d.ts.map +1 -1
  330. package/device-shell/command-templates/command-templates.component.d.ts +1 -1
  331. package/device-shell/command-templates/command-templates.component.d.ts.map +1 -1
  332. package/device-shell/command-templates/command-templates.directive.d.ts +1 -1
  333. package/device-shell/command-templates/command-templates.directive.d.ts.map +1 -1
  334. package/device-shell/command-templates/command-templates.module.d.ts +1 -1
  335. package/device-shell/shell/shell.component.d.ts +1 -1
  336. package/device-shell/shell/shell.component.d.ts.map +1 -1
  337. package/device-shell/shell/shell.module.d.ts +7 -7
  338. package/diagnostics/diagnostics.component.d.ts +1 -1
  339. package/diagnostics/diagnostics.component.d.ts.map +1 -1
  340. package/diagnostics/diagnostics.module.d.ts +8 -8
  341. package/diagnostics/diagnostics.module.d.ts.map +1 -1
  342. package/ecosystem/activity-log/activity-log.component.d.ts +1 -1
  343. package/ecosystem/activity-log/activity-log.component.d.ts.map +1 -1
  344. package/ecosystem/application-plugins/appState.pipe.d.ts +1 -1
  345. package/ecosystem/application-plugins/appState.pipe.d.ts.map +1 -1
  346. package/ecosystem/application-plugins/application-plugin-readme.component.d.ts +1 -1
  347. package/ecosystem/application-plugins/application-plugin-readme.component.d.ts.map +1 -1
  348. package/ecosystem/application-plugins/application-plugins.component.d.ts +1 -1
  349. package/ecosystem/application-plugins/application-plugins.component.d.ts.map +1 -1
  350. package/ecosystem/application-plugins/application-plugins.module.d.ts +14 -14
  351. package/ecosystem/application-plugins/application-plugins.module.d.ts.map +1 -1
  352. package/ecosystem/application-plugins/apps-to-update-remotes-select.component.d.ts +2 -2
  353. package/ecosystem/application-plugins/apps-to-update-remotes-select.component.d.ts.map +1 -1
  354. package/ecosystem/application-plugins/install-plugin.component.d.ts +1 -1
  355. package/ecosystem/application-plugins/install-plugin.component.d.ts.map +1 -1
  356. package/ecosystem/application-plugins/label-cell-renderer.component.d.ts +1 -1
  357. package/ecosystem/application-plugins/label-cell-renderer.component.d.ts.map +1 -1
  358. package/ecosystem/application-plugins/only-latest-filter/only-latest-filter.component.d.ts +1 -1
  359. package/ecosystem/application-plugins/only-latest-filter/only-latest-filter.component.d.ts.map +1 -1
  360. package/ecosystem/application-plugins/orphaned-status-cell-renderer.component.d.ts +1 -1
  361. package/ecosystem/application-plugins/orphaned-status-cell-renderer.component.d.ts.map +1 -1
  362. package/ecosystem/application-plugins/plugin-list-item.component.d.ts +1 -1
  363. package/ecosystem/application-plugins/plugin-list-item.component.d.ts.map +1 -1
  364. package/ecosystem/application-plugins/plugin-list.component.d.ts +1 -1
  365. package/ecosystem/application-plugins/plugin-list.component.d.ts.map +1 -1
  366. package/ecosystem/application-plugins/update-plugin-of-app/update-plugin-of-app.component.d.ts +1 -1
  367. package/ecosystem/application-plugins/update-plugin-of-app/update-plugin-of-app.component.d.ts.map +1 -1
  368. package/ecosystem/application-properties/application-properties.component.d.ts +1 -1
  369. package/ecosystem/application-properties/application-properties.component.d.ts.map +1 -1
  370. package/ecosystem/application-properties/subscription-modal/subscription-modal.component.d.ts +1 -1
  371. package/ecosystem/application-properties/subscription-modal/subscription-modal.component.d.ts.map +1 -1
  372. package/ecosystem/application-properties/update-application-modal/update-application-modal.component.d.ts +1 -1
  373. package/ecosystem/application-properties/update-application-modal/update-application-modal.component.d.ts.map +1 -1
  374. package/ecosystem/applications/add-external-applicaiton/add-external-application.component.d.ts +1 -1
  375. package/ecosystem/applications/add-external-applicaiton/add-external-application.component.d.ts.map +1 -1
  376. package/ecosystem/applications/add-web-application/add-web-application.component.d.ts +1 -1
  377. package/ecosystem/applications/add-web-application/add-web-application.component.d.ts.map +1 -1
  378. package/ecosystem/applications/application-list/application-list.component.d.ts +1 -1
  379. package/ecosystem/applications/application-list/application-list.component.d.ts.map +1 -1
  380. package/ecosystem/applications/install-from-package/install-from-package.component.d.ts +2 -3
  381. package/ecosystem/applications/install-from-package/install-from-package.component.d.ts.map +1 -1
  382. package/ecosystem/archived-confirm/archived-confirm-modal.component.d.ts +1 -1
  383. package/ecosystem/archived-confirm/archived-confirm-modal.component.d.ts.map +1 -1
  384. package/ecosystem/archived-confirm/archived-confirm.module.d.ts +4 -4
  385. package/ecosystem/archived-confirm/archived-confirm.module.d.ts.map +1 -1
  386. package/ecosystem/ecosystem.module.d.ts +34 -34
  387. package/ecosystem/ecosystem.module.d.ts.map +1 -1
  388. package/ecosystem/features/feature-list.component.d.ts +1 -1
  389. package/ecosystem/features/feature-list.component.d.ts.map +1 -1
  390. package/ecosystem/license-confirm/license-confirm-modal.component.d.ts +1 -1
  391. package/ecosystem/license-confirm/license-confirm-modal.component.d.ts.map +1 -1
  392. package/ecosystem/license-confirm/license-confirm.module.d.ts +5 -5
  393. package/ecosystem/license-confirm/license-confirm.module.d.ts.map +1 -1
  394. package/ecosystem/license-confirm/license-view.component.d.ts +1 -1
  395. package/ecosystem/license-confirm/license-view.component.d.ts.map +1 -1
  396. package/ecosystem/microservices/add-microservice.component.d.ts +1 -1
  397. package/ecosystem/microservices/add-microservice.component.d.ts.map +1 -1
  398. package/ecosystem/microservices/microservice-list.component.d.ts +1 -1
  399. package/ecosystem/microservices/microservice-list.component.d.ts.map +1 -1
  400. package/ecosystem/packages/add-package.component.d.ts +1 -1
  401. package/ecosystem/packages/add-package.component.d.ts.map +1 -1
  402. package/ecosystem/packages/deploy-application/deploy-application.component.d.ts +1 -1
  403. package/ecosystem/packages/deploy-application/deploy-application.component.d.ts.map +1 -1
  404. package/ecosystem/packages/package-details/package-details.component.d.ts +1 -1
  405. package/ecosystem/packages/package-details/package-details.component.d.ts.map +1 -1
  406. package/ecosystem/packages/package-list/packages-list.component.d.ts +1 -1
  407. package/ecosystem/packages/package-list/packages-list.component.d.ts.map +1 -1
  408. package/ecosystem/packages/package-versions/package-contents/contents-apps/contents-apps.component.d.ts +1 -1
  409. package/ecosystem/packages/package-versions/package-contents/contents-apps/contents-apps.component.d.ts.map +1 -1
  410. package/ecosystem/packages/package-versions/package-contents/contents-plugins/contents-plugins.component.d.ts +1 -1
  411. package/ecosystem/packages/package-versions/package-contents/contents-plugins/contents-plugins.component.d.ts.map +1 -1
  412. package/ecosystem/packages/package-versions/package-contents/packages-contents.component.d.ts +1 -1
  413. package/ecosystem/packages/package-versions/package-contents/packages-contents.component.d.ts.map +1 -1
  414. package/ecosystem/packages/package-versions/package-versions-list/package-versions-list.component.d.ts +1 -1
  415. package/ecosystem/packages/package-versions/package-versions-list/package-versions-list.component.d.ts.map +1 -1
  416. package/ecosystem/packages/package-versions/packages-versions.component.d.ts +1 -1
  417. package/ecosystem/packages/package-versions/packages-versions.component.d.ts.map +1 -1
  418. package/ecosystem/shared/add-application.component.d.ts +1 -1
  419. package/ecosystem/shared/add-application.component.d.ts.map +1 -1
  420. package/ecosystem/shared/application-card.component.d.ts +1 -1
  421. package/ecosystem/shared/application-card.component.d.ts.map +1 -1
  422. package/ecosystem/shared/application-properties-form.component.d.ts +1 -1
  423. package/ecosystem/shared/application-properties-form.component.d.ts.map +1 -1
  424. package/ecosystem/shared/archived-filter/archived-filter.component.d.ts +1 -1
  425. package/ecosystem/shared/archived-filter/archived-filter.component.d.ts.map +1 -1
  426. package/ecosystem/shared/duplicate-application/duplicate-application-list/duplicate-application-list.component.d.ts +1 -1
  427. package/ecosystem/shared/duplicate-application/duplicate-application-list/duplicate-application-list.component.d.ts.map +1 -1
  428. package/ecosystem/shared/duplicate-application/duplicate-application-properties/duplicate-application-properties.component.d.ts +2 -2
  429. package/ecosystem/shared/duplicate-application/duplicate-application-properties/duplicate-application-properties.component.d.ts.map +1 -1
  430. package/ecosystem/shared/duplicate-application/duplicate-application.component.d.ts +1 -1
  431. package/ecosystem/shared/duplicate-application/duplicate-application.component.d.ts.map +1 -1
  432. package/ecosystem/shared/list-filters/list-filters.component.d.ts +1 -1
  433. package/ecosystem/shared/list-filters/list-filters.component.d.ts.map +1 -1
  434. package/ecosystem/shared/package-version-select/package-version-select.component.d.ts +1 -1
  435. package/ecosystem/shared/package-version-select/package-version-select.component.d.ts.map +1 -1
  436. package/ecosystem/shared/shared-ecosystem.module.d.ts +20 -20
  437. package/ecosystem/shared/shared-ecosystem.module.d.ts.map +1 -1
  438. package/ecosystem/shared/translate-package-label.pipe.d.ts +1 -1
  439. package/ecosystem/shared/translate-package-label.pipe.d.ts.map +1 -1
  440. package/ecosystem/shared/upload-archive.component.d.ts +1 -1
  441. package/ecosystem/shared/upload-archive.component.d.ts.map +1 -1
  442. package/events/c8y-ngx-components-events.d.ts.map +1 -0
  443. package/events/events-timeline/c8y-ngx-components-events-events-timeline.d.ts.map +1 -0
  444. package/events/events-timeline/events-timeline.component.d.ts +19 -0
  445. package/events/events-timeline/events-timeline.component.d.ts.map +1 -0
  446. package/events/events-timeline/index.d.ts +2 -0
  447. package/events/events-timeline/index.d.ts.map +1 -0
  448. package/events/events.model.d.ts +6 -0
  449. package/events/events.model.d.ts.map +1 -0
  450. package/events/events.service.d.ts +10 -0
  451. package/events/events.service.d.ts.map +1 -0
  452. package/events/index.d.ts +3 -0
  453. package/events/index.d.ts.map +1 -0
  454. package/fesm2022/c8y-ngx-components-actility-device-registration.mjs +36 -12
  455. package/fesm2022/c8y-ngx-components-actility-device-registration.mjs.map +1 -1
  456. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +195 -107
  457. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs.map +1 -1
  458. package/fesm2022/c8y-ngx-components-alarms.mjs +238 -97
  459. package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
  460. package/fesm2022/c8y-ngx-components-api.mjs +8 -0
  461. package/fesm2022/c8y-ngx-components-api.mjs.map +1 -1
  462. package/fesm2022/c8y-ngx-components-app-logs.mjs +6 -8
  463. package/fesm2022/c8y-ngx-components-app-logs.mjs.map +1 -1
  464. package/fesm2022/c8y-ngx-components-assets-navigator.mjs +74 -26
  465. package/fesm2022/c8y-ngx-components-assets-navigator.mjs.map +1 -1
  466. package/fesm2022/c8y-ngx-components-auth-configuration.mjs +580 -368
  467. package/fesm2022/c8y-ngx-components-auth-configuration.mjs.map +1 -1
  468. package/fesm2022/c8y-ngx-components-bookmarks.mjs +36 -17
  469. package/fesm2022/c8y-ngx-components-bookmarks.mjs.map +1 -1
  470. package/fesm2022/c8y-ngx-components-child-devices.mjs +7 -9
  471. package/fesm2022/c8y-ngx-components-child-devices.mjs.map +1 -1
  472. package/fesm2022/c8y-ngx-components-cockpit-config.mjs +138 -67
  473. package/fesm2022/c8y-ngx-components-cockpit-config.mjs.map +1 -1
  474. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-B7m2lsIe.mjs → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-C-JLbcn5.mjs} +3 -3
  475. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-B7m2lsIe.mjs.map → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-C-JLbcn5.mjs.map} +1 -1
  476. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-BCG_pjJz.mjs → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-RXvOcs04.mjs} +5 -5
  477. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-BCG_pjJz.mjs.map → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-RXvOcs04.mjs.map} +1 -1
  478. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-DjCdFkJw.mjs → c8y-ngx-components-context-dashboard-dashboard-version-history.component-DmPIJGXO.mjs} +3 -3
  479. package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-DjCdFkJw.mjs.map → c8y-ngx-components-context-dashboard-dashboard-version-history.component-DmPIJGXO.mjs.map} +1 -1
  480. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +170 -94
  481. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  482. package/fesm2022/c8y-ngx-components-dashboard-manager.mjs +44 -31
  483. package/fesm2022/c8y-ngx-components-dashboard-manager.mjs.map +1 -1
  484. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +132 -66
  485. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
  486. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -1
  487. package/fesm2022/c8y-ngx-components-default-subscriptions.mjs +32 -16
  488. package/fesm2022/c8y-ngx-components-default-subscriptions.mjs.map +1 -1
  489. package/fesm2022/c8y-ngx-components-device-grid.mjs +50 -45
  490. package/fesm2022/c8y-ngx-components-device-grid.mjs.map +1 -1
  491. package/fesm2022/c8y-ngx-components-device-list.mjs +59 -27
  492. package/fesm2022/c8y-ngx-components-device-list.mjs.map +1 -1
  493. package/fesm2022/c8y-ngx-components-device-parameters.mjs +110 -13
  494. package/fesm2022/c8y-ngx-components-device-parameters.mjs.map +1 -1
  495. package/fesm2022/c8y-ngx-components-device-profile.mjs +126 -49
  496. package/fesm2022/c8y-ngx-components-device-profile.mjs.map +1 -1
  497. package/fesm2022/c8y-ngx-components-device-protocols.mjs +6 -9
  498. package/fesm2022/c8y-ngx-components-device-protocols.mjs.map +1 -1
  499. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +78 -18
  500. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs.map +1 -1
  501. package/fesm2022/c8y-ngx-components-device-shell.mjs +31 -22
  502. package/fesm2022/c8y-ngx-components-device-shell.mjs.map +1 -1
  503. package/fesm2022/c8y-ngx-components-diagnostics.mjs +36 -19
  504. package/fesm2022/c8y-ngx-components-diagnostics.mjs.map +1 -1
  505. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +155 -72
  506. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
  507. package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs +13 -7
  508. package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs.map +1 -1
  509. package/fesm2022/c8y-ngx-components-ecosystem-license-confirm.mjs +43 -12
  510. package/fesm2022/c8y-ngx-components-ecosystem-license-confirm.mjs.map +1 -1
  511. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +179 -80
  512. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
  513. package/fesm2022/c8y-ngx-components-ecosystem.mjs +353 -1316
  514. package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
  515. package/fesm2022/c8y-ngx-components-events-events-timeline.mjs +45 -0
  516. package/fesm2022/c8y-ngx-components-events-events-timeline.mjs.map +1 -0
  517. package/fesm2022/c8y-ngx-components-events.mjs +44 -0
  518. package/fesm2022/c8y-ngx-components-events.mjs.map +1 -0
  519. package/fesm2022/c8y-ngx-components-file-preview.mjs +17 -8
  520. package/fesm2022/c8y-ngx-components-file-preview.mjs.map +1 -1
  521. package/fesm2022/c8y-ngx-components-files-repository.mjs +55 -22
  522. package/fesm2022/c8y-ngx-components-files-repository.mjs.map +1 -1
  523. package/fesm2022/c8y-ngx-components-icon-selector.mjs +46 -28
  524. package/fesm2022/c8y-ngx-components-icon-selector.mjs.map +1 -1
  525. package/fesm2022/c8y-ngx-components-location.mjs +28 -15
  526. package/fesm2022/c8y-ngx-components-location.mjs.map +1 -1
  527. package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs +36 -12
  528. package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs.map +1 -1
  529. package/fesm2022/c8y-ngx-components-map.mjs +260 -28
  530. package/fesm2022/c8y-ngx-components-map.mjs.map +1 -1
  531. package/fesm2022/c8y-ngx-components-operations-bulk-operation-from-single.mjs +8 -14
  532. package/fesm2022/c8y-ngx-components-operations-bulk-operation-from-single.mjs.map +1 -1
  533. package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs +49 -49
  534. package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs.map +1 -1
  535. package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs +27 -14
  536. package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs.map +1 -1
  537. package/fesm2022/c8y-ngx-components-operations-bulk-operation-stepper.mjs +27 -33
  538. package/fesm2022/c8y-ngx-components-operations-bulk-operation-stepper.mjs.map +1 -1
  539. package/fesm2022/c8y-ngx-components-operations-bulk-operations-list.mjs +51 -39
  540. package/fesm2022/c8y-ngx-components-operations-bulk-operations-list.mjs.map +1 -1
  541. package/fesm2022/c8y-ngx-components-operations-bulk-operations-stepper-container.mjs +10 -8
  542. package/fesm2022/c8y-ngx-components-operations-bulk-operations-stepper-container.mjs.map +1 -1
  543. package/fesm2022/c8y-ngx-components-operations-create-bulk-operation-details.mjs +16 -11
  544. package/fesm2022/c8y-ngx-components-operations-create-bulk-operation-details.mjs.map +1 -1
  545. package/fesm2022/c8y-ngx-components-operations-device-selector.mjs +8 -11
  546. package/fesm2022/c8y-ngx-components-operations-device-selector.mjs.map +1 -1
  547. package/fesm2022/c8y-ngx-components-operations-operation-details.mjs +25 -21
  548. package/fesm2022/c8y-ngx-components-operations-operation-details.mjs.map +1 -1
  549. package/fesm2022/c8y-ngx-components-operations-operation-summary.mjs +7 -9
  550. package/fesm2022/c8y-ngx-components-operations-operation-summary.mjs.map +1 -1
  551. package/fesm2022/c8y-ngx-components-operations-operations-list-item-details.mjs +31 -31
  552. package/fesm2022/c8y-ngx-components-operations-operations-list-item-details.mjs.map +1 -1
  553. package/fesm2022/c8y-ngx-components-operations-operations-list.mjs +3 -3
  554. package/fesm2022/c8y-ngx-components-operations-operations-list.mjs.map +1 -1
  555. package/fesm2022/c8y-ngx-components-operations-operations-timeline.mjs +33 -13
  556. package/fesm2022/c8y-ngx-components-operations-operations-timeline.mjs.map +1 -1
  557. package/fesm2022/c8y-ngx-components-operations-status-filter.mjs +19 -13
  558. package/fesm2022/c8y-ngx-components-operations-status-filter.mjs.map +1 -1
  559. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-configuration.mjs +40 -36
  560. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-configuration.mjs.map +1 -1
  561. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-device-profile.mjs +60 -41
  562. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-device-profile.mjs.map +1 -1
  563. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-firmware.mjs +122 -109
  564. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-firmware.mjs.map +1 -1
  565. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-software.mjs +66 -41
  566. package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-software.mjs.map +1 -1
  567. package/fesm2022/c8y-ngx-components-operations-stepper-frames.mjs +11 -16
  568. package/fesm2022/c8y-ngx-components-operations-stepper-frames.mjs.map +1 -1
  569. package/fesm2022/c8y-ngx-components-platform-configuration.mjs +24 -13
  570. package/fesm2022/c8y-ngx-components-platform-configuration.mjs.map +1 -1
  571. package/fesm2022/c8y-ngx-components-protocol-lpwan.mjs +133 -26
  572. package/fesm2022/c8y-ngx-components-protocol-lpwan.mjs.map +1 -1
  573. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +212 -83
  574. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs.map +1 -1
  575. package/fesm2022/c8y-ngx-components-register-device.mjs +314 -249
  576. package/fesm2022/c8y-ngx-components-register-device.mjs.map +1 -1
  577. package/fesm2022/c8y-ngx-components-report-dashboard.mjs +41 -17
  578. package/fesm2022/c8y-ngx-components-report-dashboard.mjs.map +1 -1
  579. package/fesm2022/c8y-ngx-components-reports.mjs +61 -21
  580. package/fesm2022/c8y-ngx-components-reports.mjs.map +1 -1
  581. package/fesm2022/c8y-ngx-components-repository-configuration.mjs +113 -54
  582. package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
  583. package/fesm2022/c8y-ngx-components-repository-firmware.mjs +130 -62
  584. package/fesm2022/c8y-ngx-components-repository-firmware.mjs.map +1 -1
  585. package/fesm2022/c8y-ngx-components-repository-shared.mjs +37 -28
  586. package/fesm2022/c8y-ngx-components-repository-shared.mjs.map +1 -1
  587. package/fesm2022/c8y-ngx-components-repository-software.mjs +156 -83
  588. package/fesm2022/c8y-ngx-components-repository-software.mjs.map +1 -1
  589. package/fesm2022/c8y-ngx-components-search.mjs +34 -21
  590. package/fesm2022/c8y-ngx-components-search.mjs.map +1 -1
  591. package/fesm2022/c8y-ngx-components-services.mjs +32 -19
  592. package/fesm2022/c8y-ngx-components-services.mjs.map +1 -1
  593. package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs +43 -19
  594. package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs.map +1 -1
  595. package/fesm2022/c8y-ngx-components-sub-assets.mjs +207 -72
  596. package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
  597. package/fesm2022/c8y-ngx-components-tenants.mjs +96 -39
  598. package/fesm2022/c8y-ngx-components-tenants.mjs.map +1 -1
  599. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +224 -67
  600. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs.map +1 -1
  601. package/fesm2022/c8y-ngx-components-upgrade-upgraded-services.mjs +16 -3
  602. package/fesm2022/c8y-ngx-components-upgrade-upgraded-services.mjs.map +1 -1
  603. package/fesm2022/c8y-ngx-components-upgrade.mjs +20 -24
  604. package/fesm2022/c8y-ngx-components-upgrade.mjs.map +1 -1
  605. package/fesm2022/c8y-ngx-components-user-roles.mjs +24 -14
  606. package/fesm2022/c8y-ngx-components-user-roles.mjs.map +1 -1
  607. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +76 -50
  608. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
  609. package/fesm2022/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs +15 -8
  610. package/fesm2022/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs.map +1 -1
  611. package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs +2 -2
  612. package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs.map +1 -1
  613. package/fesm2022/c8y-ngx-components.mjs +640 -549
  614. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  615. package/file-preview/file-preview.component.d.ts +1 -1
  616. package/file-preview/file-preview.component.d.ts.map +1 -1
  617. package/file-preview/file-preview.module.d.ts +3 -3
  618. package/file-preview/file-preview.module.d.ts.map +1 -1
  619. package/files-repository/files-repository-upload.component.d.ts +1 -1
  620. package/files-repository/files-repository-upload.component.d.ts.map +1 -1
  621. package/files-repository/files-repository.component.d.ts +1 -1
  622. package/files-repository/files-repository.component.d.ts.map +1 -1
  623. package/files-repository/files-repository.module.d.ts +6 -6
  624. package/files-repository/files-repository.module.d.ts.map +1 -1
  625. package/icon-selector/icon-name.pipe.d.ts +1 -1
  626. package/icon-selector/icon-name.pipe.d.ts.map +1 -1
  627. package/icon-selector/icon-selector-modal/icon-selector-modal.component.d.ts +1 -1
  628. package/icon-selector/icon-selector-modal/icon-selector-modal.component.d.ts.map +1 -1
  629. package/icon-selector/icon-selector-wrapper/icon-selector-wrapper.component.d.ts +1 -1
  630. package/icon-selector/icon-selector-wrapper/icon-selector-wrapper.component.d.ts.map +1 -1
  631. package/icon-selector/icon-selector.component.d.ts +1 -1
  632. package/icon-selector/icon-selector.component.d.ts.map +1 -1
  633. package/icon-selector/icon-selector.module.d.ts +8 -8
  634. package/icon-selector/icon-selector.module.d.ts.map +1 -1
  635. package/locales/de.po +55 -17
  636. package/locales/es.po +43 -4
  637. package/locales/fr.po +43 -4
  638. package/locales/ja_JP.po +45 -6
  639. package/locales/ko.po +43 -4
  640. package/locales/locales.pot +41 -2
  641. package/locales/nl.po +43 -4
  642. package/locales/pl.po +43 -4
  643. package/locales/pt_BR.po +43 -4
  644. package/locales/zh_CN.po +44 -5
  645. package/locales/zh_TW.po +43 -4
  646. package/location/add-location.component.d.ts +1 -1
  647. package/location/add-location.component.d.ts.map +1 -1
  648. package/location/location.component.d.ts +1 -1
  649. package/location/location.component.d.ts.map +1 -1
  650. package/location/location.module.d.ts +6 -6
  651. package/location/location.module.d.ts.map +1 -1
  652. package/loriot-device-registration/loriot-device-registration-button.component.d.ts +1 -1
  653. package/loriot-device-registration/loriot-device-registration-button.component.d.ts.map +1 -1
  654. package/loriot-device-registration/loriot-device-registration.component.d.ts +1 -1
  655. package/loriot-device-registration/loriot-device-registration.component.d.ts.map +1 -1
  656. package/loriot-device-registration/loriot-device-registration.module.d.ts +4 -4
  657. package/loriot-device-registration/loriot-device-registration.module.d.ts.map +1 -1
  658. package/map/cluster-map.component.d.ts +61 -1
  659. package/map/cluster-map.component.d.ts.map +1 -1
  660. package/map/map-popup.directive.d.ts +1 -1
  661. package/map/map-popup.directive.d.ts.map +1 -1
  662. package/map/map-status.component.d.ts +86 -3
  663. package/map/map-status.component.d.ts.map +1 -1
  664. package/map/map.component.d.ts +100 -5
  665. package/map/map.component.d.ts.map +1 -1
  666. package/map/map.model.d.ts +98 -4
  667. package/map/map.model.d.ts.map +1 -1
  668. package/map/map.module.d.ts +9 -9
  669. package/map/map.module.d.ts.map +1 -1
  670. package/operations/bulk-operation-from-single/bulk-operation-from-single.component.d.ts +1 -1
  671. package/operations/bulk-operation-from-single/bulk-operation-from-single.component.d.ts.map +1 -1
  672. package/operations/bulk-operation-from-single/bulk-operation-from-single.module.d.ts +3 -5
  673. package/operations/bulk-operation-from-single/bulk-operation-from-single.module.d.ts.map +1 -1
  674. package/operations/bulk-operation-list-item/bulk-operation-list-item.component.d.ts +1 -1
  675. package/operations/bulk-operation-list-item/bulk-operation-list-item.component.d.ts.map +1 -1
  676. package/operations/bulk-operation-list-item/bulk-operation-list-item.module.d.ts +1 -7
  677. package/operations/bulk-operation-list-item/bulk-operation-list-item.module.d.ts.map +1 -1
  678. package/operations/bulk-operation-list-item/bulk-operation-wrapper.component.d.ts +1 -1
  679. package/operations/bulk-operation-list-item/bulk-operation-wrapper.component.d.ts.map +1 -1
  680. package/operations/bulk-operation-list-item/modal-body-host.directive.d.ts +1 -1
  681. package/operations/bulk-operation-list-item/modal-body-host.directive.d.ts.map +1 -1
  682. package/operations/bulk-operation-list-item/modals/bulk-operations-reschedule-modal.component.d.ts +1 -1
  683. package/operations/bulk-operation-list-item/modals/bulk-operations-reschedule-modal.component.d.ts.map +1 -1
  684. package/operations/bulk-operation-scheduler/bulk-operation-scheduler.module.d.ts +6 -6
  685. package/operations/bulk-operation-scheduler/operation-scheduler.component.d.ts +1 -1
  686. package/operations/bulk-operation-scheduler/operation-scheduler.component.d.ts.map +1 -1
  687. package/operations/bulk-operation-stepper/base-stepper.component.d.ts +1 -1
  688. package/operations/bulk-operation-stepper/bulk-operation-stepper.component.d.ts +1 -1
  689. package/operations/bulk-operation-stepper/bulk-operation-stepper.component.d.ts.map +1 -1
  690. package/operations/bulk-operation-stepper/bulk-operation-stepper.module.d.ts +1 -5
  691. package/operations/bulk-operation-stepper/bulk-operation-stepper.module.d.ts.map +1 -1
  692. package/operations/bulk-operation-stepper/custom-step.directive.d.ts +1 -1
  693. package/operations/bulk-operation-stepper/custom-step.directive.d.ts.map +1 -1
  694. package/operations/bulk-operations-list/bulk-operations-list.component.d.ts +1 -1
  695. package/operations/bulk-operations-list/bulk-operations-list.component.d.ts.map +1 -1
  696. package/operations/bulk-operations-list/bulk-operations-list.module.d.ts +4 -10
  697. package/operations/bulk-operations-list/bulk-operations-list.module.d.ts.map +1 -1
  698. package/operations/bulk-operations-list/modals/bulk-operations-modal.component.d.ts +1 -1
  699. package/operations/bulk-operations-list/modals/bulk-operations-modal.component.d.ts.map +1 -1
  700. package/operations/bulk-operations-stepper-container/bulk-operations-stepper-container.component.d.ts +1 -1
  701. package/operations/bulk-operations-stepper-container/bulk-operations-stepper-container.component.d.ts.map +1 -1
  702. package/operations/bulk-operations-stepper-container/bulk-operations-stepper-container.module.d.ts +3 -4
  703. package/operations/bulk-operations-stepper-container/bulk-operations-stepper-container.module.d.ts.map +1 -1
  704. package/operations/create-bulk-operation-details/create-bulk-operation-details.component.d.ts +1 -1
  705. package/operations/create-bulk-operation-details/create-bulk-operation-details.component.d.ts.map +1 -1
  706. package/operations/create-bulk-operation-details/create-bulk-operation-details.module.d.ts +1 -4
  707. package/operations/create-bulk-operation-details/create-bulk-operation-details.module.d.ts.map +1 -1
  708. package/operations/device-selector/device-selector.component.d.ts +1 -1
  709. package/operations/device-selector/device-selector.component.d.ts.map +1 -1
  710. package/operations/device-selector/device-selector.module.d.ts +1 -3
  711. package/operations/device-selector/device-selector.module.d.ts.map +1 -1
  712. package/operations/operation-details/operation-details-modal.component.d.ts +1 -1
  713. package/operations/operation-details/operation-details-modal.component.d.ts.map +1 -1
  714. package/operations/operation-details/operation-details.component.d.ts +1 -1
  715. package/operations/operation-details/operation-details.component.d.ts.map +1 -1
  716. package/operations/operation-details/operation-details.module.d.ts +1 -7
  717. package/operations/operation-details/operation-details.module.d.ts.map +1 -1
  718. package/operations/operation-details/operation-details.service.d.ts.map +1 -1
  719. package/operations/operation-summary/operation-summary.component.d.ts +1 -1
  720. package/operations/operation-summary/operation-summary.component.d.ts.map +1 -1
  721. package/operations/operation-summary/operation-summary.module.d.ts +1 -2
  722. package/operations/operation-summary/operation-summary.module.d.ts.map +1 -1
  723. package/operations/operations-list/operations-list-item.component.d.ts.map +1 -1
  724. package/operations/operations-list/operations-list.component.d.ts.map +1 -1
  725. package/operations/operations-list/operations-list.service.d.ts +1 -1
  726. package/operations/operations-list/operations-list.service.d.ts.map +1 -1
  727. package/operations/operations-list-item-details/operation-details-tabs.component.d.ts +1 -1
  728. package/operations/operations-list-item-details/operation-details-tabs.component.d.ts.map +1 -1
  729. package/operations/operations-list-item-details/operation-details.component.d.ts +1 -1
  730. package/operations/operations-list-item-details/operation-details.component.d.ts.map +1 -1
  731. package/operations/operations-list-item-details/operations-list-item-details.module.d.ts +1 -6
  732. package/operations/operations-list-item-details/operations-list-item-details.module.d.ts.map +1 -1
  733. package/operations/operations-timeline/operations-timeline.component.d.ts +5 -5
  734. package/operations/operations-timeline/operations-timeline.component.d.ts.map +1 -1
  735. package/operations/operations-timeline/operations-timeline.module.d.ts +4 -6
  736. package/operations/operations-timeline/operations-timeline.module.d.ts.map +1 -1
  737. package/operations/status-filter/status-filter.component.d.ts +1 -1
  738. package/operations/status-filter/status-filter.component.d.ts.map +1 -1
  739. package/operations/status-filter/status-filter.module.d.ts +1 -4
  740. package/operations/status-filter/status-filter.module.d.ts.map +1 -1
  741. package/operations/stepper-bulk-type-configuration/stepper-bulk-type-configuration.component.d.ts +1 -1
  742. package/operations/stepper-bulk-type-configuration/stepper-bulk-type-configuration.component.d.ts.map +1 -1
  743. package/operations/stepper-bulk-type-configuration/stepper-bulk-type-configuration.module.d.ts +1 -6
  744. package/operations/stepper-bulk-type-configuration/stepper-bulk-type-configuration.module.d.ts.map +1 -1
  745. package/operations/stepper-bulk-type-device-profile/confirm-device-profile-selection-step.component.d.ts +1 -1
  746. package/operations/stepper-bulk-type-device-profile/confirm-device-profile-selection-step.component.d.ts.map +1 -1
  747. package/operations/stepper-bulk-type-device-profile/select-device-profile-step.component.d.ts +1 -1
  748. package/operations/stepper-bulk-type-device-profile/select-device-profile-step.component.d.ts.map +1 -1
  749. package/operations/stepper-bulk-type-device-profile/stepper-bulk-type-device-profile.component.d.ts +1 -1
  750. package/operations/stepper-bulk-type-device-profile/stepper-bulk-type-device-profile.component.d.ts.map +1 -1
  751. package/operations/stepper-bulk-type-device-profile/stepper-bulk-type-device-profile.module.d.ts +1 -6
  752. package/operations/stepper-bulk-type-device-profile/stepper-bulk-type-device-profile.module.d.ts.map +1 -1
  753. package/operations/stepper-bulk-type-firmware/select-firmware.component.d.ts +1 -1
  754. package/operations/stepper-bulk-type-firmware/select-firmware.component.d.ts.map +1 -1
  755. package/operations/stepper-bulk-type-firmware/stepper-bulk-type-firmware.component.d.ts +1 -1
  756. package/operations/stepper-bulk-type-firmware/stepper-bulk-type-firmware.component.d.ts.map +1 -1
  757. package/operations/stepper-bulk-type-firmware/stepper-bulk-type-firmware.module.d.ts +1 -6
  758. package/operations/stepper-bulk-type-firmware/stepper-bulk-type-firmware.module.d.ts.map +1 -1
  759. package/operations/stepper-bulk-type-firmware/version-or-patch.component.d.ts +1 -1
  760. package/operations/stepper-bulk-type-firmware/version-or-patch.component.d.ts.map +1 -1
  761. package/operations/stepper-bulk-type-software/confirm-software-selection-step.component.d.ts +1 -1
  762. package/operations/stepper-bulk-type-software/confirm-software-selection-step.component.d.ts.map +1 -1
  763. package/operations/stepper-bulk-type-software/select-software-step.component.d.ts +1 -1
  764. package/operations/stepper-bulk-type-software/select-software-step.component.d.ts.map +1 -1
  765. package/operations/stepper-bulk-type-software/stepper-bulk-type-software.component.d.ts +1 -1
  766. package/operations/stepper-bulk-type-software/stepper-bulk-type-software.component.d.ts.map +1 -1
  767. package/operations/stepper-bulk-type-software/stepper-bulk-type-software.module.d.ts +1 -6
  768. package/operations/stepper-bulk-type-software/stepper-bulk-type-software.module.d.ts.map +1 -1
  769. package/operations/stepper-frames/preview-block.directive.d.ts +1 -1
  770. package/operations/stepper-frames/preview-block.directive.d.ts.map +1 -1
  771. package/operations/stepper-frames/preview-selection-frame.component.d.ts +1 -1
  772. package/operations/stepper-frames/preview-selection-frame.component.d.ts.map +1 -1
  773. package/operations/stepper-frames/select-step-frame.component.d.ts +1 -1
  774. package/operations/stepper-frames/select-step-frame.component.d.ts.map +1 -1
  775. package/operations/stepper-frames/stepper-frames.modules.d.ts +1 -2
  776. package/operations/stepper-frames/stepper-frames.modules.d.ts.map +1 -1
  777. package/package.json +1 -1
  778. package/platform-configuration/platform-configuration-form.component.d.ts +1 -1
  779. package/platform-configuration/platform-configuration-form.component.d.ts.map +1 -1
  780. package/platform-configuration/platform-configuration.module.d.ts +4 -4
  781. package/platform-configuration/platform-configuration.module.d.ts.map +1 -1
  782. package/protocol-lpwan/lpwan-protocol.module.d.ts +4 -4
  783. package/protocol-lpwan/lpwan-protocol.module.d.ts.map +1 -1
  784. package/protocol-lpwan/lpwan-set-connections.component.d.ts +1 -1
  785. package/protocol-lpwan/lpwan-set-connections.component.d.ts.map +1 -1
  786. package/protocol-lpwan/lpwan-set-device-protocol.component.d.ts +1 -1
  787. package/protocol-lpwan/lpwan-set-device-protocol.component.d.ts.map +1 -1
  788. package/protocol-lpwan/multiple-lns-connectors/actility-multiple-lns-connector.component.d.ts +1 -1
  789. package/protocol-lpwan/multiple-lns-connectors/actility-multiple-lns-connector.component.d.ts.map +1 -1
  790. package/protocol-lpwan/multiple-lns-connectors/connection-info-with-download-csv.component.d.ts +1 -1
  791. package/protocol-lpwan/multiple-lns-connectors/connection-info-with-download-csv.component.d.ts.map +1 -1
  792. package/protocol-lpwan/multiple-lns-connectors/loriot/loriot-multiple-lns-connector.component.d.ts +1 -1
  793. package/protocol-lpwan/multiple-lns-connectors/loriot/loriot-multiple-lns-connector.component.d.ts.map +1 -1
  794. package/protocol-lpwan/multiple-lns-connectors/multiple-lns-connectors.module.d.ts +8 -8
  795. package/protocol-lpwan/multiple-lns-connectors/multiple-lns-connectors.module.d.ts.map +1 -1
  796. package/protocol-lpwan/multiple-lns-connectors/no-connections-found.component.d.ts +1 -1
  797. package/protocol-lpwan/multiple-lns-connectors/sigfox-multiple-lns-connector.component.d.ts +1 -1
  798. package/protocol-lpwan/multiple-lns-connectors/sigfox-multiple-lns-connector.component.d.ts.map +1 -1
  799. package/protocol-opcua/opcua-address-space-detail.component.d.ts +1 -1
  800. package/protocol-opcua/opcua-address-space-detail.component.d.ts.map +1 -1
  801. package/protocol-opcua/opcua-address-space-tree.component.d.ts +1 -1
  802. package/protocol-opcua/opcua-address-space-tree.component.d.ts.map +1 -1
  803. package/protocol-opcua/opcua-address-space.component.d.ts +1 -1
  804. package/protocol-opcua/opcua-address-space.component.d.ts.map +1 -1
  805. package/protocol-opcua/opcua-auto-apply-settings.component.d.ts +1 -1
  806. package/protocol-opcua/opcua-auto-apply-settings.component.d.ts.map +1 -1
  807. package/protocol-opcua/opcua-device-protocol-browse-path-validation.directive.d.ts +1 -1
  808. package/protocol-opcua/opcua-device-protocol-browse-path-validation.directive.d.ts.map +1 -1
  809. package/protocol-opcua/opcua-device-protocol-data-reporting.component.d.ts +1 -1
  810. package/protocol-opcua/opcua-device-protocol-data-reporting.component.d.ts.map +1 -1
  811. package/protocol-opcua/opcua-device-protocol-description.component.d.ts +1 -1
  812. package/protocol-opcua/opcua-device-protocol-description.component.d.ts.map +1 -1
  813. package/protocol-opcua/opcua-device-protocol-detail.component.d.ts +1 -1
  814. package/protocol-opcua/opcua-device-protocol-detail.component.d.ts.map +1 -1
  815. package/protocol-opcua/opcua-device-protocol-mapping.component.d.ts +1 -1
  816. package/protocol-opcua/opcua-device-protocol-mapping.component.d.ts.map +1 -1
  817. package/protocol-opcua/opcua-device-protocol-object-mapping-status-icon.component.d.ts +1 -1
  818. package/protocol-opcua/opcua-device-protocol-object-mapping-status-icon.component.d.ts.map +1 -1
  819. package/protocol-opcua/opcua-protocol.module.d.ts +26 -26
  820. package/protocol-opcua/opcua-protocol.module.d.ts.map +1 -1
  821. package/protocol-opcua/opcua-server-config.component.d.ts +1 -1
  822. package/protocol-opcua/opcua-server-config.component.d.ts.map +1 -1
  823. package/protocol-opcua/opcua-server-list.component.d.ts +1 -1
  824. package/protocol-opcua/opcua-server-list.component.d.ts.map +1 -1
  825. package/protocol-opcua/opcua-servers.component.d.ts +1 -1
  826. package/protocol-opcua/opcua-servers.component.d.ts.map +1 -1
  827. package/register-device/bulk/bulk-device-registration-button.component.d.ts +1 -1
  828. package/register-device/bulk/bulk-device-registration-button.component.d.ts.map +1 -1
  829. package/register-device/bulk/bulk-device-registration-modal.component.d.ts +1 -1
  830. package/register-device/bulk/bulk-device-registration-modal.component.d.ts.map +1 -1
  831. package/register-device/device-registration-view.component.d.ts +1 -1
  832. package/register-device/device-registration-view.component.d.ts.map +1 -1
  833. package/register-device/dropdown/register-device-dropdown.component.d.ts +1 -1
  834. package/register-device/dropdown/register-device-dropdown.component.d.ts.map +1 -1
  835. package/register-device/extensible/bulk/extensible-bulk-device-registration-button.component.d.ts +1 -1
  836. package/register-device/extensible/bulk/extensible-bulk-device-registration-button.component.d.ts.map +1 -1
  837. package/register-device/extensible/bulk/extensible-bulk-device-registration-modal.component.d.ts +1 -1
  838. package/register-device/extensible/bulk/extensible-bulk-device-registration-modal.component.d.ts.map +1 -1
  839. package/register-device/extensible/single/extensible-device-registration-button.component.d.ts +1 -1
  840. package/register-device/extensible/single/extensible-device-registration-button.component.d.ts.map +1 -1
  841. package/register-device/extensible/single/extensible-device-registration-modal.component.d.ts +1 -1
  842. package/register-device/extensible/single/extensible-device-registration-modal.component.d.ts.map +1 -1
  843. package/register-device/extensible/single/extensible-device-registration-stepper.component.d.ts +1 -1
  844. package/register-device/extensible/single/extensible-device-registration-stepper.component.d.ts.map +1 -1
  845. package/register-device/general/general-device-registration-button.component.d.ts +1 -1
  846. package/register-device/general/general-device-registration-button.component.d.ts.map +1 -1
  847. package/register-device/general/general-device-registration.component.d.ts +3 -6
  848. package/register-device/general/general-device-registration.component.d.ts.map +1 -1
  849. package/register-device/register-device.module.d.ts +16 -16
  850. package/register-device/register-device.module.d.ts.map +1 -1
  851. package/report-dashboard/report-dashboard-list.component.d.ts +1 -1
  852. package/report-dashboard/report-dashboard-list.component.d.ts.map +1 -1
  853. package/report-dashboard/report-dashboard.module.d.ts +7 -7
  854. package/reports/cron.component.d.ts +1 -1
  855. package/reports/cron.component.d.ts.map +1 -1
  856. package/reports/export-schedules.component.d.ts +2 -3
  857. package/reports/export-schedules.component.d.ts.map +1 -1
  858. package/reports/reports.module.d.ts +7 -7
  859. package/reports/reports.module.d.ts.map +1 -1
  860. package/reports/schedule-modal.component.d.ts +2 -3
  861. package/reports/schedule-modal.component.d.ts.map +1 -1
  862. package/repository/configuration/device-tab/configuration-filter.pipe.d.ts +1 -1
  863. package/repository/configuration/device-tab/configuration-filter.pipe.d.ts.map +1 -1
  864. package/repository/configuration/device-tab/configuration-preview.component.d.ts +1 -1
  865. package/repository/configuration/device-tab/configuration-preview.component.d.ts.map +1 -1
  866. package/repository/configuration/device-tab/configuration-repository-device-tab.module.d.ts +11 -13
  867. package/repository/configuration/device-tab/configuration-repository-device-tab.module.d.ts.map +1 -1
  868. package/repository/configuration/device-tab/device-configuration-list.component.d.ts +1 -1
  869. package/repository/configuration/device-tab/device-configuration-list.component.d.ts.map +1 -1
  870. package/repository/configuration/device-tab/device-configuration.component.d.ts +1 -1
  871. package/repository/configuration/device-tab/device-configuration.component.d.ts.map +1 -1
  872. package/repository/configuration/device-tab/save-to-repository.component.d.ts +1 -1
  873. package/repository/configuration/device-tab/save-to-repository.component.d.ts.map +1 -1
  874. package/repository/configuration/device-tab/source-code-preview.component.d.ts +1 -1
  875. package/repository/configuration/device-tab/source-code-preview.component.d.ts.map +1 -1
  876. package/repository/configuration/device-tab/text-based-configuration.component.d.ts +1 -1
  877. package/repository/configuration/device-tab/text-based-configuration.component.d.ts.map +1 -1
  878. package/repository/configuration/list/configuration-detail.component.d.ts +1 -1
  879. package/repository/configuration/list/configuration-detail.component.d.ts.map +1 -1
  880. package/repository/configuration/list/configuration-list.component.d.ts +1 -1
  881. package/repository/configuration/list/configuration-list.component.d.ts.map +1 -1
  882. package/repository/configuration/list/configuration-repository-list.module.d.ts +4 -7
  883. package/repository/configuration/list/configuration-repository-list.module.d.ts.map +1 -1
  884. package/repository/firmware/device-tab/firmware-device-tab.component.d.ts +1 -1
  885. package/repository/firmware/device-tab/firmware-device-tab.component.d.ts.map +1 -1
  886. package/repository/firmware/device-tab/firmware-repository-device-tab.module.d.ts +4 -6
  887. package/repository/firmware/device-tab/firmware-repository-device-tab.module.d.ts.map +1 -1
  888. package/repository/firmware/list/add-firmware-modal.component.d.ts +1 -1
  889. package/repository/firmware/list/add-firmware-modal.component.d.ts.map +1 -1
  890. package/repository/firmware/list/add-firmware-patch-modal.component.d.ts +1 -1
  891. package/repository/firmware/list/add-firmware-patch-modal.component.d.ts.map +1 -1
  892. package/repository/firmware/list/firmware-details.component.d.ts +1 -1
  893. package/repository/firmware/list/firmware-details.component.d.ts.map +1 -1
  894. package/repository/firmware/list/firmware-list.component.d.ts +1 -1
  895. package/repository/firmware/list/firmware-list.component.d.ts.map +1 -1
  896. package/repository/firmware/list/firmware-repository-list.module.d.ts +6 -11
  897. package/repository/firmware/list/firmware-repository-list.module.d.ts.map +1 -1
  898. package/repository/shared/file-download/file-download.component.d.ts +1 -1
  899. package/repository/shared/file-download/file-download.component.d.ts.map +1 -1
  900. package/repository/shared/select-modal/repository-select-modal.component.d.ts +1 -1
  901. package/repository/shared/select-modal/repository-select-modal.component.d.ts.map +1 -1
  902. package/repository/shared/shared-repository.module.d.ts +1 -4
  903. package/repository/shared/shared-repository.module.d.ts.map +1 -1
  904. package/repository/shared/software-type/software-type.component.d.ts +1 -1
  905. package/repository/shared/software-type/software-type.component.d.ts.map +1 -1
  906. package/repository/software/device-tab/device-software-changes.component.d.ts +1 -1
  907. package/repository/software/device-tab/device-software-changes.component.d.ts.map +1 -1
  908. package/repository/software/device-tab/device-software-list.component.d.ts +1 -1
  909. package/repository/software/device-tab/device-software-list.component.d.ts.map +1 -1
  910. package/repository/software/device-tab/installed-software.component.d.ts +1 -1
  911. package/repository/software/device-tab/installed-software.component.d.ts.map +1 -1
  912. package/repository/software/device-tab/software-device-tab.component.d.ts +1 -1
  913. package/repository/software/device-tab/software-device-tab.component.d.ts.map +1 -1
  914. package/repository/software/device-tab/software-repository-device-tab.module.d.ts +7 -11
  915. package/repository/software/device-tab/software-repository-device-tab.module.d.ts.map +1 -1
  916. package/repository/software/list/add-software-modal.component.d.ts +1 -1
  917. package/repository/software/list/add-software-modal.component.d.ts.map +1 -1
  918. package/repository/software/list/software-details.component.d.ts +1 -1
  919. package/repository/software/list/software-details.component.d.ts.map +1 -1
  920. package/repository/software/list/software-list.component.d.ts +1 -1
  921. package/repository/software/list/software-list.component.d.ts.map +1 -1
  922. package/repository/software/list/software-repository-list.module.d.ts +5 -11
  923. package/repository/software/list/software-repository-list.module.d.ts.map +1 -1
  924. package/search/search-action.component.d.ts +1 -1
  925. package/search/search-action.component.d.ts.map +1 -1
  926. package/search/search-custom-filters.component.d.ts +1 -1
  927. package/search/search-custom-filters.component.d.ts.map +1 -1
  928. package/search/search-grid.component.d.ts +1 -1
  929. package/search/search-grid.component.d.ts.map +1 -1
  930. package/search/search-results.component.d.ts +1 -1
  931. package/search/search-results.component.d.ts.map +1 -1
  932. package/search/search.module.d.ts +8 -8
  933. package/search/search.module.d.ts.map +1 -1
  934. package/services/services-device-tab/columns/last-updated-date.cell-renderer.component.d.ts +1 -1
  935. package/services/services-device-tab/columns/last-updated-date.cell-renderer.component.d.ts.map +1 -1
  936. package/services/services-device-tab/columns/name.cell-renderer.component.d.ts +1 -1
  937. package/services/services-device-tab/columns/name.cell-renderer.component.d.ts.map +1 -1
  938. package/services/services-device-tab/columns/status.cell-renderer.component.d.ts +1 -1
  939. package/services/services-device-tab/columns/status.cell-renderer.component.d.ts.map +1 -1
  940. package/services/services-device-tab/services-device-tab.component.d.ts +1 -1
  941. package/services/services-device-tab/services-device-tab.component.d.ts.map +1 -1
  942. package/services/services-device-tab/services-device-tab.module.d.ts +1 -4
  943. package/services/services-device-tab/services-device-tab.module.d.ts.map +1 -1
  944. package/sigfox-device-registration/sigfox-device-registration-button.component.d.ts +1 -1
  945. package/sigfox-device-registration/sigfox-device-registration-button.component.d.ts.map +1 -1
  946. package/sigfox-device-registration/sigfox-device-registration.component.d.ts +1 -1
  947. package/sigfox-device-registration/sigfox-device-registration.component.d.ts.map +1 -1
  948. package/sigfox-device-registration/sigfox-device-registration.module.d.ts +4 -4
  949. package/sigfox-device-registration/sigfox-device-registration.module.d.ts.map +1 -1
  950. package/sub-assets/add-group/add-group.component.d.ts +1 -1
  951. package/sub-assets/add-group/add-group.component.d.ts.map +1 -1
  952. package/sub-assets/add-group/add-group.module.d.ts +7 -7
  953. package/sub-assets/asset-properties-item.component.d.ts +1 -1
  954. package/sub-assets/asset-properties-item.component.d.ts.map +1 -1
  955. package/sub-assets/asset-properties.component.d.ts +1 -1
  956. package/sub-assets/asset-properties.component.d.ts.map +1 -1
  957. package/sub-assets/assign-devices/assign-child-devices.component.d.ts +2 -3
  958. package/sub-assets/assign-devices/assign-child-devices.component.d.ts.map +1 -1
  959. package/sub-assets/assign-devices/assign-devices.component.d.ts +1 -1
  960. package/sub-assets/assign-devices/assign-devices.component.d.ts.map +1 -1
  961. package/sub-assets/delete-assets-modal/delete-assets-modal.component.d.ts +1 -1
  962. package/sub-assets/delete-assets-modal/delete-assets-modal.component.d.ts.map +1 -1
  963. package/sub-assets/group-info.component.d.ts +1 -1
  964. package/sub-assets/group-info.component.d.ts.map +1 -1
  965. package/sub-assets/groups.component.d.ts +1 -1
  966. package/sub-assets/groups.component.d.ts.map +1 -1
  967. package/sub-assets/location/asset-location.component.d.ts +1 -1
  968. package/sub-assets/location/asset-location.component.d.ts.map +1 -1
  969. package/sub-assets/sub-assets-grid.component.d.ts +1 -1
  970. package/sub-assets/sub-assets-grid.component.d.ts.map +1 -1
  971. package/sub-assets/sub-assets-grids.module.d.ts +9 -9
  972. package/sub-assets/sub-assets-grids.module.d.ts.map +1 -1
  973. package/sub-assets/sub-assets.component.d.ts +1 -1
  974. package/sub-assets/sub-assets.component.d.ts.map +1 -1
  975. package/sub-assets/sub-assets.module.d.ts +18 -18
  976. package/sub-assets/sub-assets.module.d.ts.map +1 -1
  977. package/sub-assets/unassign-assets-modal/unassign-modal.component.d.ts +1 -1
  978. package/sub-assets/unassign-assets-modal/unassign-modal.component.d.ts.map +1 -1
  979. package/tenants/tenant-form/tenant-form.component.d.ts +1 -1
  980. package/tenants/tenant-form/tenant-form.component.d.ts.map +1 -1
  981. package/tenants/tenant-list/creation-time.filtering-form-renderer.component.d.ts +2 -3
  982. package/tenants/tenant-list/creation-time.filtering-form-renderer.component.d.ts.map +1 -1
  983. package/tenants/tenant-list/status.filtering-form-renderer.component.d.ts +1 -1
  984. package/tenants/tenant-list/status.filtering-form-renderer.component.d.ts.map +1 -1
  985. package/tenants/tenant-list/tenant-list.component.d.ts +1 -1
  986. package/tenants/tenant-list/tenant-list.component.d.ts.map +1 -1
  987. package/tenants/tenants.module.d.ts +9 -9
  988. package/tenants/tenants.module.d.ts.map +1 -1
  989. package/trusted-certificates/crl/crl-check-settings.component.d.ts +1 -1
  990. package/trusted-certificates/crl/crl-check-settings.component.d.ts.map +1 -1
  991. package/trusted-certificates/crl/crl-settings.component.d.ts +6 -2
  992. package/trusted-certificates/crl/crl-settings.component.d.ts.map +1 -1
  993. package/trusted-certificates/crl/crl-settings.module.d.ts +8 -8
  994. package/trusted-certificates/crl/crl-settings.module.d.ts.map +1 -1
  995. package/trusted-certificates/factories/tabs.factory.d.ts +3 -2
  996. package/trusted-certificates/factories/tabs.factory.d.ts.map +1 -1
  997. package/trusted-certificates/factories/trusted-certificates-navigation.factory.d.ts +2 -0
  998. package/trusted-certificates/factories/trusted-certificates-navigation.factory.d.ts.map +1 -1
  999. package/trusted-certificates/list/add-trusted-certificate.component.d.ts +4 -3
  1000. package/trusted-certificates/list/add-trusted-certificate.component.d.ts.map +1 -1
  1001. package/trusted-certificates/list/trusted-certificate-list.component.d.ts +16 -3
  1002. package/trusted-certificates/list/trusted-certificate-list.component.d.ts.map +1 -1
  1003. package/trusted-certificates/list/trusted-certificate-list.module.d.ts +10 -10
  1004. package/trusted-certificates/list/trusted-certificate-list.module.d.ts.map +1 -1
  1005. package/trusted-certificates/list/trusted-certificate.model.d.ts +2 -0
  1006. package/trusted-certificates/list/trusted-certificate.model.d.ts.map +1 -1
  1007. package/trusted-certificates/pattern-messages.data.d.ts +6 -0
  1008. package/trusted-certificates/pattern-messages.data.d.ts.map +1 -1
  1009. package/trusted-certificates/trusted-certificates.guard.d.ts +11 -0
  1010. package/trusted-certificates/trusted-certificates.guard.d.ts.map +1 -0
  1011. package/upgrade/dashboard/dashboard-upgrade.module.d.ts +6 -6
  1012. package/upgrade/dashboard/dashboard-upgrade.module.d.ts.map +1 -1
  1013. package/upgrade/dashboard/device-selector.component.d.ts +1 -1
  1014. package/upgrade/dashboard/device-selector.component.d.ts.map +1 -1
  1015. package/upgrade/dashboard/widget.component.d.ts +1 -1
  1016. package/upgrade/dashboard/widget.component.d.ts.map +1 -1
  1017. package/upgrade/index.d.ts +0 -1
  1018. package/upgrade/index.d.ts.map +1 -1
  1019. package/upgrade/upgrade.module.d.ts.map +1 -1
  1020. package/upgrade/upgraded-services/index.d.ts +1 -0
  1021. package/upgrade/upgraded-services/index.d.ts.map +1 -1
  1022. package/upgrade/upgraded-services/smart-rules.service.d.ts.map +1 -0
  1023. package/upgrade/upgraded-services/upgraded-services.module.d.ts.map +1 -1
  1024. package/user-roles/inventory-role-selector/inventory-role-selector.component.d.ts +2 -1
  1025. package/user-roles/inventory-role-selector/inventory-role-selector.component.d.ts.map +1 -1
  1026. package/user-roles/roles-asset-tree/roles-asset-tree.component.d.ts +2 -1
  1027. package/user-roles/roles-asset-tree/roles-asset-tree.component.d.ts.map +1 -1
  1028. package/user-roles/user-roles.module.d.ts +4 -4
  1029. package/user-roles/user-roles.module.d.ts.map +1 -1
  1030. package/widgets/implementations/alarms/alarm-list-widget-config/alarm-list-widget-config.component.d.ts +1 -1
  1031. package/widgets/implementations/alarms/alarm-list-widget-config/alarm-list-widget-config.component.d.ts.map +1 -1
  1032. package/widgets/implementations/alarms/alarm-list-widget-view/alarm-list-widget.component.d.ts +1 -1
  1033. package/widgets/implementations/alarms/alarm-list-widget-view/alarm-list-widget.component.d.ts.map +1 -1
  1034. package/widgets/implementations/alarms/alarm-widget-alarms-reload.component.d.ts +1 -1
  1035. package/widgets/implementations/alarms/alarm-widget-alarms-reload.component.d.ts.map +1 -1
  1036. package/widgets/implementations/alarms/alarms-widget.module.d.ts +13 -13
  1037. package/widgets/implementations/alarms/alarms-widget.module.d.ts.map +1 -1
  1038. package/widgets/implementations/alarms/severity-icon.pipe.d.ts +1 -1
  1039. package/widgets/implementations/alarms/severity-icon.pipe.d.ts.map +1 -1
  1040. package/widgets/implementations/alarms/sorting-description-popover-message.pipe.d.ts +1 -1
  1041. package/widgets/implementations/alarms/sorting-description-popover-message.pipe.d.ts.map +1 -1
  1042. package/widgets/implementations/device-management-welcome/device-management-welcome-widget.module.d.ts +4 -4
  1043. package/widgets/implementations/device-management-welcome/device-management-welcome-widget.module.d.ts.map +1 -1
  1044. package/widgets/implementations/device-management-welcome/welcome.component.d.ts +1 -1
  1045. package/widgets/implementations/device-management-welcome/welcome.component.d.ts.map +1 -1
  1046. package/upgrade/smart-rules.service.d.ts.map +0 -1
  1047. /package/upgrade/{smart-rules.service.d.ts → upgraded-services/smart-rules.service.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-files-repository.mjs","sources":["../../files-repository/files-repository.guard.ts","../../files-repository/files-repository-navigation.factory.ts","../../files-repository/files-repository-product-experience.constants.ts","../../files-repository/files-repository-upload.component.ts","../../files-repository/files-repository-upload.component.html","../../files-repository/files-repository.service.ts","../../files-repository/files-repository.component.ts","../../files-repository/files-repository.component.html","../../files-repository/files-repository.module.ts","../../files-repository/c8y-ngx-components-files-repository.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { Permissions } from '@c8y/ngx-components';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FilesRepositoryGuard {\n constructor(private permissions: Permissions) {}\n\n /**\n * Checks if files repository should be active,\n * i.e. whether the current tenant can read or admin files in repository.\n *\n * @returns True, if the feature should be active.\n */\n canActivate(): boolean {\n return (\n this.permissions.hasRole(Permissions.ROLE_INVENTORY_READ) ||\n this.permissions.hasAllRoles([\n Permissions.ROLE_MANAGED_OBJECT_READ,\n Permissions.ROLE_BINARY_READ\n ])\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { gettext, NavigatorNode, NavigatorNodeFactory } from '@c8y/ngx-components';\nimport { FilesRepositoryGuard } from './files-repository.guard';\n\n@Injectable({ providedIn: 'root' })\nexport class FilesRepositoryNavigationFactory implements NavigatorNodeFactory {\n private navs: NavigatorNode[] = [];\n\n constructor(private filesRepositoryGuard: FilesRepositoryGuard) {}\n\n async get(): Promise<NavigatorNode[]> {\n if (this.filesRepositoryGuard.canActivate()) {\n if (!this.navs.length) {\n this.navs.push(\n new NavigatorNode({\n parent: gettext('Management'),\n label: gettext('Files repository'),\n icon: 'c8y-archive',\n path: 'files',\n routerLinkExact: false,\n priority: 1000\n })\n );\n }\n }\n return this.navs;\n }\n}\n","export const PRODUCT_EXPERIENCE_FILE_REPOSITORY = {\n EVENTS: {\n FILE_REPOSITORY_UPLOAD: 'filesRepositoryUpload'\n },\n COMPONENTS: {\n FILE_REPOSITORY_UPLOAD_COMPONENT: 'files-repository-upload'\n },\n RESULTS: {\n UPLOAD_ITEM_SUCCESS: 'fileUploadSuccess',\n UPLOAD_ITEM_FAILED: 'fileUploadFailed'\n }\n} as const;\n","import { Component, Output } from '@angular/core';\nimport { EventEmitter } from '@angular/core';\nimport {\n AlertService,\n GainsightService,\n FilesService,\n gettext,\n IFetchWithProgress\n} from '@c8y/ngx-components';\nimport { PRODUCT_EXPERIENCE_FILE_REPOSITORY } from './files-repository-product-experience.constants';\nimport { Observable, Subscription, combineLatest } from 'rxjs';\n\n@Component({\n selector: 'c8y-files-repository-upload',\n templateUrl: './files-repository-upload.component.html',\n standalone: false\n})\nexport class FilesRepositoryUploadComponent {\n /** Emits an event when modal is closed. `uploaded` indicates if any files were uploaded. */\n @Output() onClose: EventEmitter<{ uploaded: boolean }> = new EventEmitter();\n isLoading = false;\n dropFilesHereMessage: string = gettext('Drop files here');\n filesToUpload: File[];\n uploadProgress: IFetchWithProgress[];\n uploadProgress$: Observable<IFetchWithProgress[]>;\n uploadSubscription: Subscription;\n\n constructor(\n private alertService: AlertService,\n private gainsightService: GainsightService,\n private filesService: FilesService\n ) {}\n\n async upload(): Promise<void> {\n this.isLoading = true;\n this.uploadProgress$ = combineLatest(\n this.filesToUpload.map(file => this.filesService.uploadFileWithProgress$(file))\n );\n\n this.uploadSubscription = this.uploadProgress$.subscribe(\n uploadProgress => {\n this.uploadProgress = uploadProgress;\n },\n e => {\n if (e) {\n this.alertService.addServerFailure(e);\n this.gainsightService.triggerEvent(\n PRODUCT_EXPERIENCE_FILE_REPOSITORY.EVENTS.FILE_REPOSITORY_UPLOAD,\n {\n component:\n PRODUCT_EXPERIENCE_FILE_REPOSITORY.COMPONENTS.FILE_REPOSITORY_UPLOAD_COMPONENT,\n action: PRODUCT_EXPERIENCE_FILE_REPOSITORY.RESULTS.UPLOAD_ITEM_FAILED\n }\n );\n }\n this.isLoading = false;\n },\n () => {\n this.alertService.success(gettext('File(s) uploaded.'));\n this.onClose.emit({ uploaded: true });\n this.gainsightService.triggerEvent(\n PRODUCT_EXPERIENCE_FILE_REPOSITORY.EVENTS.FILE_REPOSITORY_UPLOAD,\n {\n component:\n PRODUCT_EXPERIENCE_FILE_REPOSITORY.COMPONENTS.FILE_REPOSITORY_UPLOAD_COMPONENT,\n action: PRODUCT_EXPERIENCE_FILE_REPOSITORY.RESULTS.UPLOAD_ITEM_SUCCESS\n }\n );\n }\n );\n }\n\n onFileDroppedEvent(event: File[]): void {\n if (event && event.length > 0) {\n this.filesToUpload = event;\n }\n }\n}\n","<div class=\"c8y-viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i c8yIcon=\"upload\"></i>\n <h4\n id=\"modal-title\"\n translate\n >\n Upload files\n </h4>\n </div>\n <div class=\"modal-inner-scroll\">\n <div\n class=\"modal-body\"\n id=\"modal-body\"\n >\n <c8y-file-picker-form-control\n #filePicker\n [uploadInProgress]=\"isLoading\"\n (dropped)=\"onFileDroppedEvent($event)\"\n [uploadProgress]=\"uploadProgress\"\n ></c8y-file-picker-form-control>\n </div>\n </div>\n <div class=\"card-footer separator d-flex j-c-center\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"onClose.emit({ uploaded: false })\"\n [disabled]=\"isLoading\"\n translate\n >\n Cancel\n </button>\n <button\n class=\"btn btn-primary btn-form\"\n title=\"{{ 'Upload' | translate }}\"\n type=\"button\"\n (click)=\"upload()\"\n [disabled]=\"!filePicker.valid || isLoading\"\n translate\n data-cy=\"c8y-files-repository-upload--upload\"\n >\n Upload\n </button>\n </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport { QueriesUtil } from '@c8y/client';\nimport { InventoryService } from '@c8y/client';\nimport { gettext, Pagination, SortOrder, Column, Row } from '@c8y/ngx-components';\nimport { transform, has } from 'lodash-es';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FilesRepositoryService {\n queriesUtil: QueriesUtil;\n baseQuery = { __has: 'c8y_IsBinary' };\n constructor(private inventoryService: InventoryService) {\n this.queriesUtil = new QueriesUtil();\n }\n\n getPagination(): Pagination {\n return {\n pageSize: 10,\n currentPage: 1\n };\n }\n\n hasApplicationStorageFragment(file: Row): boolean {\n return has(file, 'c8y_applications_storage');\n }\n\n getColumns(): Column[] {\n return [\n {\n name: 'name',\n header: gettext('Name'),\n path: 'name',\n filterable: true,\n sortable: true,\n sortOrder: 'asc' as SortOrder\n },\n {\n name: 'type',\n header: gettext('Type'),\n path: 'type',\n filterable: true,\n sortable: true\n },\n {\n name: 'length',\n header: gettext('Size'),\n path: 'length',\n filterable: false,\n sortable: true\n },\n {\n name: 'owner',\n header: gettext('Owner'),\n path: 'owner',\n filterable: true,\n sortable: true\n },\n {\n name: 'lastUpdated',\n header: gettext('Last update'),\n path: 'lastUpdated',\n filterable: false,\n sortable: true\n }\n ];\n }\n\n /** Returns array with items id where item has not c8y_applications_storage fragment. */\n getDeletableItemsIds(selectedItemsIds: string[], dataFromDataGrid: Array<any>): string[] {\n const selectedItemsWithoutApplications = [];\n dataFromDataGrid.forEach(item => {\n selectedItemsIds.forEach(selectedItemId => {\n if (selectedItemId === item.id && !this.hasApplicationStorageFragment(item)) {\n selectedItemsWithoutApplications.push(selectedItemId);\n }\n });\n });\n\n return selectedItemsWithoutApplications;\n }\n\n /** Returns the total number of items (with no filters based on columns setup). */\n async getTotal(): Promise<number> {\n const filters = {\n query: this.queriesUtil.buildQuery(this.baseQuery),\n withTotalElements: true\n };\n return (await this.inventoryService.list(filters)).paging.totalElements;\n }\n\n /** Returns data for current columns and pagination setup. */\n async getData(columns: Column[], pagination: Pagination, searchText = '') {\n // build filters based on columns and pagination\n const filters = {\n text: searchText,\n ...this.getFilters(columns, pagination),\n withTotalElements: true\n };\n // execute inventory query for the list of managed objects\n\n return this.inventoryService.list(filters);\n }\n\n /** Returns filters for given columns and pagination setup. */\n private getFilters(columns: Column[], pagination: Pagination) {\n return {\n query: this.getQueryString(columns),\n pageSize: pagination.pageSize,\n currentPage: pagination.currentPage,\n withChildren: false,\n withTotalPages: true\n };\n }\n\n /** Returns a query string based on columns setup. */\n private getQueryString(columns: Column[]): string {\n let fullQuery = this.getQueryObj(columns);\n fullQuery = this.queriesUtil.addAndFilter(fullQuery, this.baseQuery);\n return this.queriesUtil.buildQuery(fullQuery);\n }\n\n /** Returns a query object based on columns setup. */\n private getQueryObj(columns: Column[]) {\n return transform(columns, (query, column) => this.addColumnQuery(query, column), {\n __filter: {},\n __orderby: []\n });\n }\n\n /** Extends given query with a part based on the setup of given column. */\n private addColumnQuery(query, column: Column): void {\n // when a column is marked as filterable\n if (column.filterable) {\n // in the case of default filtering form, `filterPredicate` will contain the string entered by a user\n if (column.filterPredicate) {\n // so we use it as the expected value, * allow to search for it anywhere in the property\n query.__filter[column.path] = `*${column.filterPredicate}*`;\n }\n\n // in the case of custom filtering form, we're storing the query in `externalFilterQuery.query`\n if (column.externalFilterQuery) {\n query = this.queriesUtil.addAndFilter(query, column.externalFilterQuery.query);\n }\n }\n\n // when a column is sortable and has a specified sorting order\n if (column.sortable && column.sortOrder) {\n // add sorting condition for the configured column `path`\n query.__orderby.push({\n [column.path]: column.sortOrder === 'asc' ? 1 : -1\n });\n }\n\n return query;\n }\n}\n","import { Component, EventEmitter, ViewChild } from '@angular/core';\nimport { IManagedObjectBinary, InventoryBinaryService } from '@c8y/client';\nimport {\n ActionControl,\n AlertService,\n BuiltInActionType,\n BulkActionControl,\n Column,\n DataGridComponent,\n DataSourceModifier,\n DisplayOptions,\n FilesService,\n gettext,\n LoadMoreMode,\n ModalService,\n Pagination,\n Row,\n ServerSideDataCallback,\n ServerSideDataResult,\n Status\n} from '@c8y/ngx-components';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BsModalService, ModalOptions } from 'ngx-bootstrap/modal';\nimport { Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\nimport { FilesRepositoryUploadComponent } from './files-repository-upload.component';\nimport { FilesRepositoryService } from './files-repository.service';\n\n@Component({\n selector: 'c8y-files-repository',\n templateUrl: './files-repository.component.html',\n standalone: false\n})\nexport class FilesRepositoryComponent {\n @ViewChild(DataGridComponent, { static: true }) dataGrid: DataGridComponent;\n destroy$: Subject<boolean> = new Subject<boolean>();\n title: string = gettext('Files repository');\n managementTitle: string = gettext('Management');\n loadMoreItemsLabel: string = gettext('Load more files');\n loadingItemsLabel: string = gettext('Loading files…');\n\n isLoading = true;\n\n displayOptions: DisplayOptions = {\n bordered: false,\n striped: true,\n filter: true,\n gridHeader: true,\n hover: true\n };\n\n columns: Column[] = this.filesRepositoryService.getColumns();\n pagination: Pagination = this.filesRepositoryService.getPagination();\n infiniteScroll: LoadMoreMode = 'auto';\n serverSideDataCallback: ServerSideDataCallback;\n returnedDataSize: number;\n selectable = true;\n actionControls: ActionControl[] = [\n {\n text: gettext('Delete'),\n icon: 'trash',\n type: BuiltInActionType.Delete,\n showIf: selectedItem =>\n !this.filesRepositoryService.hasApplicationStorageFragment(selectedItem),\n callback: selectedItem => this.onDeleteItem(selectedItem)\n },\n {\n text: gettext('Download'),\n icon: 'download',\n type: BuiltInActionType.Export,\n callback: selectedItem => this.onDownloadItem(selectedItem as IManagedObjectBinary)\n }\n ];\n bulkActionControls: BulkActionControl[] = [\n {\n type: BuiltInActionType.Delete,\n callback: selectedItemIds => this.onDeleteItems(selectedItemIds)\n }\n ];\n\n refresh: EventEmitter<void> = new EventEmitter<void>();\n\n noResultsMessage = gettext('No results to display.');\n noDataMessage = gettext('No files to display.');\n noResultsSubtitle = gettext('Refine your search terms or check your spelling.');\n noDataSubtitle = gettext('Add a new file by clicking below.');\n\n constructor(\n private filesRepositoryService: FilesRepositoryService,\n private inventoryBinaryService: InventoryBinaryService,\n private modalService: ModalService,\n private alertService: AlertService,\n private bsModalService: BsModalService,\n private fileService: FilesService,\n private translateService: TranslateService\n ) {\n // we're setting up `serverSideDataCallback` to execute a method from this component with bound `this`\n this.serverSideDataCallback = this.onDataSourceModifier.bind(this);\n }\n\n async onDataSourceModifier(\n dataSourceModifier: DataSourceModifier\n ): Promise<ServerSideDataResult> {\n const { res, data, paging } = await this.filesRepositoryService.getData(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n dataSourceModifier.searchText\n );\n const filteredSize: number = paging.totalElements;\n const size: number = await this.filesRepositoryService.getTotal();\n\n const serverSideDataResult: ServerSideDataResult = { res, data, paging, filteredSize, size };\n this.isLoading = false;\n this.returnedDataSize = serverSideDataResult.size;\n\n return serverSideDataResult;\n }\n\n async onDeleteItem(selectedItem: Row) {\n return this.deleteItemsWithConfirmation([selectedItem.id], {\n title: gettext('Delete file'),\n body: this.translateService.instant(\n gettext('You are about to delete file \"{{ name }}\". Do you want to proceed?'),\n selectedItem\n ),\n successText: gettext('File deleted.')\n });\n }\n\n async onDeleteItems(selectedItemsIds: string[]) {\n const dataGridDataSourceData = await this.dataGrid.dataSource.data$.pipe(take(1)).toPromise();\n const deletableItemsIds = this.filesRepositoryService.getDeletableItemsIds(\n selectedItemsIds,\n dataGridDataSourceData\n );\n let body: string;\n if (deletableItemsIds.length < selectedItemsIds.length) {\n body = gettext(`\n You are about to delete the selected files.\n Note: the selected files of type \"c8y_applications_storage_*\" won't be deleted though\n - such files can be deleted only from the \"Activity log\" of the associated application.\n Do you want to proceed?\n `);\n } else {\n body = gettext('You are about to delete the selected files. Do you want to proceed?');\n }\n\n return this.deleteItemsWithConfirmation(deletableItemsIds, {\n title: gettext('Delete files'),\n body,\n successText: gettext('Files deleted.')\n });\n }\n\n async onDownloadItem(selectedItem: IManagedObjectBinary) {\n return this.fileService.download(selectedItem);\n }\n\n openFileUploadComponent() {\n const modalOptions: ModalOptions<FilesRepositoryUploadComponent> = {\n class: 'modal-sm',\n ariaDescribedby: 'modal-body',\n ariaLabelledBy: 'modal-title',\n ignoreBackdropClick: true\n };\n const modalRef = this.bsModalService.show(FilesRepositoryUploadComponent, modalOptions);\n modalRef.content.onClose.pipe(takeUntil(this.destroy$)).subscribe(({ uploaded }) => {\n if (uploaded) {\n this.refresh.emit();\n }\n modalRef.hide();\n });\n }\n\n private async deleteItemsWithConfirmation(\n selectedItemsIds: string[],\n options: { title: string; body: string; successText: string }\n ) {\n try {\n await this.confirmItemsDeletion(options);\n this.isLoading = true;\n const promises = selectedItemsIds.map(selectedItemId =>\n this.inventoryBinaryService.delete(selectedItemId)\n );\n await Promise.all(promises);\n this.alertService.success(options.successText);\n this.refresh.next();\n } catch (ex) {\n if (ex) {\n this.alertService.addServerFailure(ex);\n }\n } finally {\n this.isLoading = false;\n }\n }\n\n private async confirmItemsDeletion({ title, body }: { title: string; body: string }) {\n const status = Status.DANGER;\n const labels = { ok: gettext('Delete'), cancel: gettext('Cancel') };\n await this.modalService.confirm(title, body, status, labels);\n }\n}\n","<c8y-title>\n {{ title | translate }}\n</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-management\"\n [label]=\"managementTitle | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"title | translate\"></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Upload files' | translate }}\"\n *c8yIfAllowed=\"['ROLE_INVENTORY_ADMIN', 'ROLE_INVENTORY_CREATE']; allowAny: true\"\n (click)=\"openFileUploadComponent()\"\n data-cy=\"c8y-files-repository--open-file-upload-component\"\n >\n <i c8yIcon=\"upload\"></i>\n {{ 'Upload files' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help src=\"/docs/standard-tenant/managing-data/#file-repository\"></c8y-help>\n\n<div class=\"content-fullpage border-top border-bottom\">\n <c8y-data-grid\n [title]=\"title\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [displayOptions]=\"displayOptions\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [infiniteScroll]=\"infiniteScroll\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [actionControls]=\"actionControls\"\n [selectable]=\"selectable\"\n [showSearch]=\"true\"\n [refresh]=\"refresh\"\n [bulkActionControls]=\"bulkActionControls\"\n >\n <c8y-ui-empty-state\n [icon]=\"stats?.size > 0 ? 'search' : 'c8y-archive'\"\n [title]=\"stats?.size > 0 ? (noResultsMessage | translate) : (noDataMessage | translate)\"\n [subtitle]=\"stats?.size > 0 ? (noResultsSubtitle | translate) : (noDataSubtitle | translate)\"\n *emptyStateContext=\"let stats\"\n [horizontal]=\"stats?.size > 0\"\n >\n <p *ngIf=\"stats?.size === 0\">\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Upload file' | translate }}\"\n type=\"button\"\n (click)=\"openFileUploadComponent()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Upload file' | translate }}\n </button>\n </p>\n </c8y-ui-empty-state>\n\n <c8y-column name=\"name\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value }}\">\n <div class=\"d-flex j-c-between a-i-center\">\n {{ context.value }}\n <c8y-file-preview\n class=\"m-l-auto\"\n [mo]=\"context.item\"\n >\n <button\n class=\"btn btn-emphasis btn-icon\"\n [title]=\"'Preview file' | translate\"\n type=\"button\"\n customButton\n >\n <i c8yIcon=\"search\"></i>\n </button>\n </c8y-file-preview>\n </div>\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"length\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value }} B\">\n {{ context.value | bytes }}\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"lastUpdated\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value | c8yDate }}\">\n {{ context.value | c8yDate }}\n </span>\n </ng-container>\n </c8y-column>\n </c8y-data-grid>\n</div>\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { CoreModule, hookNavigator, hookRoute, DropAreaModule } from '@c8y/ngx-components';\nimport { FilesRepositoryNavigationFactory } from './files-repository-navigation.factory';\nimport { FilesRepositoryComponent } from './files-repository.component';\nimport { FilesRepositoryUploadComponent } from './files-repository-upload.component';\nimport { FilesRepositoryService } from './files-repository.service';\nimport { FilesRepositoryGuard } from './files-repository.guard';\nimport { FilePreviewModule } from '@c8y/ngx-components/file-preview';\n\n@NgModule({\n imports: [RouterModule, CoreModule, DropAreaModule, FilePreviewModule],\n exports: [],\n declarations: [FilesRepositoryComponent, FilesRepositoryUploadComponent],\n providers: [\n FilesRepositoryGuard,\n hookNavigator(FilesRepositoryNavigationFactory),\n hookRoute(\n {\n path: 'files',\n component: FilesRepositoryComponent,\n canActivate: [FilesRepositoryGuard]\n },\n { multi: true }\n ),\n FilesRepositoryService\n ]\n})\nexport class FilesRepositoryModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.FilesRepositoryGuard","i1.FilesRepositoryService","i2"],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-files-repository.mjs","sources":["../../files-repository/files-repository.guard.ts","../../files-repository/files-repository-navigation.factory.ts","../../files-repository/files-repository-product-experience.constants.ts","../../files-repository/files-repository-upload.component.ts","../../files-repository/files-repository-upload.component.html","../../files-repository/files-repository.service.ts","../../files-repository/files-repository.component.ts","../../files-repository/files-repository.component.html","../../files-repository/files-repository.module.ts","../../files-repository/c8y-ngx-components-files-repository.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { Permissions } from '@c8y/ngx-components';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FilesRepositoryGuard {\n constructor(private permissions: Permissions) {}\n\n /**\n * Checks if files repository should be active,\n * i.e. whether the current tenant can read or admin files in repository.\n *\n * @returns True, if the feature should be active.\n */\n canActivate(): boolean {\n return (\n this.permissions.hasRole(Permissions.ROLE_INVENTORY_READ) ||\n this.permissions.hasAllRoles([\n Permissions.ROLE_MANAGED_OBJECT_READ,\n Permissions.ROLE_BINARY_READ\n ])\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { gettext, NavigatorNode, NavigatorNodeFactory } from '@c8y/ngx-components';\nimport { FilesRepositoryGuard } from './files-repository.guard';\n\n@Injectable({ providedIn: 'root' })\nexport class FilesRepositoryNavigationFactory implements NavigatorNodeFactory {\n private navs: NavigatorNode[] = [];\n\n constructor(private filesRepositoryGuard: FilesRepositoryGuard) {}\n\n async get(): Promise<NavigatorNode[]> {\n if (this.filesRepositoryGuard.canActivate()) {\n if (!this.navs.length) {\n this.navs.push(\n new NavigatorNode({\n parent: gettext('Management'),\n label: gettext('Files repository'),\n icon: 'c8y-archive',\n path: 'files',\n routerLinkExact: false,\n priority: 1000\n })\n );\n }\n }\n return this.navs;\n }\n}\n","export const PRODUCT_EXPERIENCE_FILE_REPOSITORY = {\n EVENTS: {\n FILE_REPOSITORY_UPLOAD: 'filesRepositoryUpload'\n },\n COMPONENTS: {\n FILE_REPOSITORY_UPLOAD_COMPONENT: 'files-repository-upload'\n },\n RESULTS: {\n UPLOAD_ITEM_SUCCESS: 'fileUploadSuccess',\n UPLOAD_ITEM_FAILED: 'fileUploadFailed'\n }\n} as const;\n","import { Component, Output, EventEmitter } from '@angular/core';\nimport {\n AlertService,\n GainsightService,\n FilesService,\n gettext,\n IFetchWithProgress,\n IconDirective,\n C8yTranslateDirective,\n FilePickerFormControlComponent,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { PRODUCT_EXPERIENCE_FILE_REPOSITORY } from './files-repository-product-experience.constants';\nimport { Observable, Subscription, combineLatest } from 'rxjs';\n\n@Component({\n selector: 'c8y-files-repository-upload',\n templateUrl: './files-repository-upload.component.html',\n imports: [IconDirective, C8yTranslateDirective, FilePickerFormControlComponent, C8yTranslatePipe]\n})\nexport class FilesRepositoryUploadComponent {\n /** Emits an event when modal is closed. `uploaded` indicates if any files were uploaded. */\n @Output() onClose: EventEmitter<{ uploaded: boolean }> = new EventEmitter();\n isLoading = false;\n dropFilesHereMessage: string = gettext('Drop files here');\n filesToUpload: File[];\n uploadProgress: IFetchWithProgress[];\n uploadProgress$: Observable<IFetchWithProgress[]>;\n uploadSubscription: Subscription;\n\n constructor(\n private alertService: AlertService,\n private gainsightService: GainsightService,\n private filesService: FilesService\n ) {}\n\n async upload(): Promise<void> {\n this.isLoading = true;\n this.uploadProgress$ = combineLatest(\n this.filesToUpload.map(file => this.filesService.uploadFileWithProgress$(file))\n );\n\n this.uploadSubscription = this.uploadProgress$.subscribe(\n uploadProgress => {\n this.uploadProgress = uploadProgress;\n },\n e => {\n if (e) {\n this.alertService.addServerFailure(e);\n this.gainsightService.triggerEvent(\n PRODUCT_EXPERIENCE_FILE_REPOSITORY.EVENTS.FILE_REPOSITORY_UPLOAD,\n {\n component:\n PRODUCT_EXPERIENCE_FILE_REPOSITORY.COMPONENTS.FILE_REPOSITORY_UPLOAD_COMPONENT,\n action: PRODUCT_EXPERIENCE_FILE_REPOSITORY.RESULTS.UPLOAD_ITEM_FAILED\n }\n );\n }\n this.isLoading = false;\n },\n () => {\n this.alertService.success(gettext('File(s) uploaded.'));\n this.onClose.emit({ uploaded: true });\n this.gainsightService.triggerEvent(\n PRODUCT_EXPERIENCE_FILE_REPOSITORY.EVENTS.FILE_REPOSITORY_UPLOAD,\n {\n component:\n PRODUCT_EXPERIENCE_FILE_REPOSITORY.COMPONENTS.FILE_REPOSITORY_UPLOAD_COMPONENT,\n action: PRODUCT_EXPERIENCE_FILE_REPOSITORY.RESULTS.UPLOAD_ITEM_SUCCESS\n }\n );\n }\n );\n }\n\n onFileDroppedEvent(event: File[]): void {\n if (event && event.length > 0) {\n this.filesToUpload = event;\n }\n }\n}\n","<div class=\"c8y-viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i c8yIcon=\"upload\"></i>\n <h4\n id=\"modal-title\"\n translate\n >\n Upload files\n </h4>\n </div>\n <div class=\"modal-inner-scroll\">\n <div\n class=\"modal-body\"\n id=\"modal-body\"\n >\n <c8y-file-picker-form-control\n #filePicker\n [uploadInProgress]=\"isLoading\"\n (dropped)=\"onFileDroppedEvent($event)\"\n [uploadProgress]=\"uploadProgress\"\n ></c8y-file-picker-form-control>\n </div>\n </div>\n <div class=\"card-footer separator d-flex j-c-center\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"onClose.emit({ uploaded: false })\"\n [disabled]=\"isLoading\"\n translate\n >\n Cancel\n </button>\n <button\n class=\"btn btn-primary btn-form\"\n title=\"{{ 'Upload' | translate }}\"\n type=\"button\"\n (click)=\"upload()\"\n [disabled]=\"!filePicker.valid || isLoading\"\n translate\n data-cy=\"c8y-files-repository-upload--upload\"\n >\n Upload\n </button>\n </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport { QueriesUtil } from '@c8y/client';\nimport { InventoryService } from '@c8y/client';\nimport { gettext, Pagination, SortOrder, Column, Row } from '@c8y/ngx-components';\nimport { transform, has } from 'lodash-es';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FilesRepositoryService {\n queriesUtil: QueriesUtil;\n baseQuery = { __has: 'c8y_IsBinary' };\n constructor(private inventoryService: InventoryService) {\n this.queriesUtil = new QueriesUtil();\n }\n\n getPagination(): Pagination {\n return {\n pageSize: 10,\n currentPage: 1\n };\n }\n\n hasApplicationStorageFragment(file: Row): boolean {\n return has(file, 'c8y_applications_storage');\n }\n\n getColumns(): Column[] {\n return [\n {\n name: 'name',\n header: gettext('Name'),\n path: 'name',\n filterable: true,\n sortable: true,\n sortOrder: 'asc' as SortOrder\n },\n {\n name: 'type',\n header: gettext('Type'),\n path: 'type',\n filterable: true,\n sortable: true\n },\n {\n name: 'length',\n header: gettext('Size'),\n path: 'length',\n filterable: false,\n sortable: true\n },\n {\n name: 'owner',\n header: gettext('Owner'),\n path: 'owner',\n filterable: true,\n sortable: true\n },\n {\n name: 'lastUpdated',\n header: gettext('Last update'),\n path: 'lastUpdated',\n filterable: false,\n sortable: true\n }\n ];\n }\n\n /** Returns array with items id where item has not c8y_applications_storage fragment. */\n getDeletableItemsIds(selectedItemsIds: string[], dataFromDataGrid: Array<any>): string[] {\n const selectedItemsWithoutApplications = [];\n dataFromDataGrid.forEach(item => {\n selectedItemsIds.forEach(selectedItemId => {\n if (selectedItemId === item.id && !this.hasApplicationStorageFragment(item)) {\n selectedItemsWithoutApplications.push(selectedItemId);\n }\n });\n });\n\n return selectedItemsWithoutApplications;\n }\n\n /** Returns the total number of items (with no filters based on columns setup). */\n async getTotal(): Promise<number> {\n const filters = {\n query: this.queriesUtil.buildQuery(this.baseQuery),\n withTotalElements: true\n };\n return (await this.inventoryService.list(filters)).paging.totalElements;\n }\n\n /** Returns data for current columns and pagination setup. */\n async getData(columns: Column[], pagination: Pagination, searchText = '') {\n // build filters based on columns and pagination\n const filters = {\n text: searchText,\n ...this.getFilters(columns, pagination),\n withTotalElements: true\n };\n // execute inventory query for the list of managed objects\n\n return this.inventoryService.list(filters);\n }\n\n /** Returns filters for given columns and pagination setup. */\n private getFilters(columns: Column[], pagination: Pagination) {\n return {\n query: this.getQueryString(columns),\n pageSize: pagination.pageSize,\n currentPage: pagination.currentPage,\n withChildren: false,\n withTotalPages: true\n };\n }\n\n /** Returns a query string based on columns setup. */\n private getQueryString(columns: Column[]): string {\n let fullQuery = this.getQueryObj(columns);\n fullQuery = this.queriesUtil.addAndFilter(fullQuery, this.baseQuery);\n return this.queriesUtil.buildQuery(fullQuery);\n }\n\n /** Returns a query object based on columns setup. */\n private getQueryObj(columns: Column[]) {\n return transform(columns, (query, column) => this.addColumnQuery(query, column), {\n __filter: {},\n __orderby: []\n });\n }\n\n /** Extends given query with a part based on the setup of given column. */\n private addColumnQuery(query, column: Column): void {\n // when a column is marked as filterable\n if (column.filterable) {\n // in the case of default filtering form, `filterPredicate` will contain the string entered by a user\n if (column.filterPredicate) {\n // so we use it as the expected value, * allow to search for it anywhere in the property\n query.__filter[column.path] = `*${column.filterPredicate}*`;\n }\n\n // in the case of custom filtering form, we're storing the query in `externalFilterQuery.query`\n if (column.externalFilterQuery) {\n query = this.queriesUtil.addAndFilter(query, column.externalFilterQuery.query);\n }\n }\n\n // when a column is sortable and has a specified sorting order\n if (column.sortable && column.sortOrder) {\n // add sorting condition for the configured column `path`\n query.__orderby.push({\n [column.path]: column.sortOrder === 'asc' ? 1 : -1\n });\n }\n\n return query;\n }\n}\n","import { Component, EventEmitter, ViewChild } from '@angular/core';\nimport { IManagedObjectBinary, InventoryBinaryService } from '@c8y/client';\nimport {\n ActionControl,\n AlertService,\n BuiltInActionType,\n BulkActionControl,\n Column,\n DataGridComponent,\n DataSourceModifier,\n DisplayOptions,\n FilesService,\n gettext,\n LoadMoreMode,\n ModalService,\n Pagination,\n Row,\n ServerSideDataCallback,\n ServerSideDataResult,\n Status,\n TitleComponent,\n BreadcrumbComponent,\n BreadcrumbItemComponent,\n ActionBarItemComponent,\n IfAllowedDirective,\n IconDirective,\n HelpComponent,\n EmptyStateContextDirective,\n EmptyStateComponent,\n ColumnDirective,\n CellRendererDefDirective,\n C8yTranslatePipe,\n DatePipe,\n BytesPipe\n} from '@c8y/ngx-components';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BsModalService, ModalOptions } from 'ngx-bootstrap/modal';\nimport { Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\nimport { FilesRepositoryUploadComponent } from './files-repository-upload.component';\nimport { FilesRepositoryService } from './files-repository.service';\n\nimport { NgIf } from '@angular/common';\nimport { FilePreviewComponent } from '@c8y/ngx-components/file-preview';\n\n@Component({\n selector: 'c8y-files-repository',\n templateUrl: './files-repository.component.html',\n imports: [\n TitleComponent,\n BreadcrumbComponent,\n BreadcrumbItemComponent,\n ActionBarItemComponent,\n IfAllowedDirective,\n IconDirective,\n HelpComponent,\n DataGridComponent,\n EmptyStateContextDirective,\n EmptyStateComponent,\n NgIf,\n ColumnDirective,\n CellRendererDefDirective,\n FilePreviewComponent,\n C8yTranslatePipe,\n DatePipe,\n BytesPipe\n ]\n})\nexport class FilesRepositoryComponent {\n @ViewChild(DataGridComponent, { static: true }) dataGrid: DataGridComponent;\n destroy$: Subject<boolean> = new Subject<boolean>();\n title: string = gettext('Files repository');\n managementTitle: string = gettext('Management');\n loadMoreItemsLabel: string = gettext('Load more files');\n loadingItemsLabel: string = gettext('Loading files…');\n\n isLoading = true;\n\n displayOptions: DisplayOptions = {\n bordered: false,\n striped: true,\n filter: true,\n gridHeader: true,\n hover: true\n };\n\n columns: Column[] = this.filesRepositoryService.getColumns();\n pagination: Pagination = this.filesRepositoryService.getPagination();\n infiniteScroll: LoadMoreMode = 'auto';\n serverSideDataCallback: ServerSideDataCallback;\n returnedDataSize: number;\n selectable = true;\n actionControls: ActionControl[] = [\n {\n text: gettext('Delete'),\n icon: 'trash',\n type: BuiltInActionType.Delete,\n showIf: selectedItem =>\n !this.filesRepositoryService.hasApplicationStorageFragment(selectedItem),\n callback: selectedItem => this.onDeleteItem(selectedItem)\n },\n {\n text: gettext('Download'),\n icon: 'download',\n type: BuiltInActionType.Export,\n callback: selectedItem => this.onDownloadItem(selectedItem as IManagedObjectBinary)\n }\n ];\n bulkActionControls: BulkActionControl[] = [\n {\n type: BuiltInActionType.Delete,\n callback: selectedItemIds => this.onDeleteItems(selectedItemIds)\n }\n ];\n\n refresh: EventEmitter<void> = new EventEmitter<void>();\n\n noResultsMessage = gettext('No results to display.');\n noDataMessage = gettext('No files to display.');\n noResultsSubtitle = gettext('Refine your search terms or check your spelling.');\n noDataSubtitle = gettext('Add a new file by clicking below.');\n\n constructor(\n private filesRepositoryService: FilesRepositoryService,\n private inventoryBinaryService: InventoryBinaryService,\n private modalService: ModalService,\n private alertService: AlertService,\n private bsModalService: BsModalService,\n private fileService: FilesService,\n private translateService: TranslateService\n ) {\n // we're setting up `serverSideDataCallback` to execute a method from this component with bound `this`\n this.serverSideDataCallback = this.onDataSourceModifier.bind(this);\n }\n\n async onDataSourceModifier(\n dataSourceModifier: DataSourceModifier\n ): Promise<ServerSideDataResult> {\n const { res, data, paging } = await this.filesRepositoryService.getData(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n dataSourceModifier.searchText\n );\n const filteredSize: number = paging.totalElements;\n const size: number = await this.filesRepositoryService.getTotal();\n\n const serverSideDataResult: ServerSideDataResult = { res, data, paging, filteredSize, size };\n this.isLoading = false;\n this.returnedDataSize = serverSideDataResult.size;\n\n return serverSideDataResult;\n }\n\n async onDeleteItem(selectedItem: Row) {\n return this.deleteItemsWithConfirmation([selectedItem.id], {\n title: gettext('Delete file'),\n body: this.translateService.instant(\n gettext('You are about to delete file \"{{ name }}\". Do you want to proceed?'),\n selectedItem\n ),\n successText: gettext('File deleted.')\n });\n }\n\n async onDeleteItems(selectedItemsIds: string[]) {\n const dataGridDataSourceData = await this.dataGrid.dataSource.data$.pipe(take(1)).toPromise();\n const deletableItemsIds = this.filesRepositoryService.getDeletableItemsIds(\n selectedItemsIds,\n dataGridDataSourceData\n );\n let body: string;\n if (deletableItemsIds.length < selectedItemsIds.length) {\n body = gettext(`\n You are about to delete the selected files.\n Note: the selected files of type \"c8y_applications_storage_*\" won't be deleted though\n - such files can be deleted only from the \"Activity log\" of the associated application.\n Do you want to proceed?\n `);\n } else {\n body = gettext('You are about to delete the selected files. Do you want to proceed?');\n }\n\n return this.deleteItemsWithConfirmation(deletableItemsIds, {\n title: gettext('Delete files'),\n body,\n successText: gettext('Files deleted.')\n });\n }\n\n async onDownloadItem(selectedItem: IManagedObjectBinary) {\n return this.fileService.download(selectedItem);\n }\n\n openFileUploadComponent() {\n const modalOptions: ModalOptions<FilesRepositoryUploadComponent> = {\n class: 'modal-sm',\n ariaDescribedby: 'modal-body',\n ariaLabelledBy: 'modal-title',\n ignoreBackdropClick: true\n };\n const modalRef = this.bsModalService.show(FilesRepositoryUploadComponent, modalOptions);\n modalRef.content.onClose.pipe(takeUntil(this.destroy$)).subscribe(({ uploaded }) => {\n if (uploaded) {\n this.refresh.emit();\n }\n modalRef.hide();\n });\n }\n\n private async deleteItemsWithConfirmation(\n selectedItemsIds: string[],\n options: { title: string; body: string; successText: string }\n ) {\n try {\n await this.confirmItemsDeletion(options);\n this.isLoading = true;\n const promises = selectedItemsIds.map(selectedItemId =>\n this.inventoryBinaryService.delete(selectedItemId)\n );\n await Promise.all(promises);\n this.alertService.success(options.successText);\n this.refresh.next();\n } catch (ex) {\n if (ex) {\n this.alertService.addServerFailure(ex);\n }\n } finally {\n this.isLoading = false;\n }\n }\n\n private async confirmItemsDeletion({ title, body }: { title: string; body: string }) {\n const status = Status.DANGER;\n const labels = { ok: gettext('Delete'), cancel: gettext('Cancel') };\n await this.modalService.confirm(title, body, status, labels);\n }\n}\n","<c8y-title>\n {{ title | translate }}\n</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-management\"\n [label]=\"managementTitle | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item [label]=\"title | translate\"></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Upload files' | translate }}\"\n *c8yIfAllowed=\"['ROLE_INVENTORY_ADMIN', 'ROLE_INVENTORY_CREATE']; allowAny: true\"\n (click)=\"openFileUploadComponent()\"\n data-cy=\"c8y-files-repository--open-file-upload-component\"\n >\n <i c8yIcon=\"upload\"></i>\n {{ 'Upload files' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help src=\"/docs/standard-tenant/managing-data/#file-repository\"></c8y-help>\n\n<div class=\"content-fullpage border-top border-bottom\">\n <c8y-data-grid\n [title]=\"title\"\n [loadMoreItemsLabel]=\"loadMoreItemsLabel\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [displayOptions]=\"displayOptions\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [infiniteScroll]=\"infiniteScroll\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [actionControls]=\"actionControls\"\n [selectable]=\"selectable\"\n [showSearch]=\"true\"\n [refresh]=\"refresh\"\n [bulkActionControls]=\"bulkActionControls\"\n >\n <c8y-ui-empty-state\n [icon]=\"stats?.size > 0 ? 'search' : 'c8y-archive'\"\n [title]=\"stats?.size > 0 ? (noResultsMessage | translate) : (noDataMessage | translate)\"\n [subtitle]=\"stats?.size > 0 ? (noResultsSubtitle | translate) : (noDataSubtitle | translate)\"\n *emptyStateContext=\"let stats\"\n [horizontal]=\"stats?.size > 0\"\n >\n <p *ngIf=\"stats?.size === 0\">\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Upload file' | translate }}\"\n type=\"button\"\n (click)=\"openFileUploadComponent()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Upload file' | translate }}\n </button>\n </p>\n </c8y-ui-empty-state>\n\n <c8y-column name=\"name\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value }}\">\n <div class=\"d-flex j-c-between a-i-center\">\n {{ context.value }}\n <c8y-file-preview\n class=\"m-l-auto\"\n [mo]=\"context.item\"\n >\n <button\n class=\"btn btn-emphasis btn-icon\"\n [title]=\"'Preview file' | translate\"\n type=\"button\"\n customButton\n >\n <i c8yIcon=\"search\"></i>\n </button>\n </c8y-file-preview>\n </div>\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"length\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value }} B\">\n {{ context.value | bytes }}\n </span>\n </ng-container>\n </c8y-column>\n\n <c8y-column name=\"lastUpdated\">\n <ng-container *c8yCellRendererDef=\"let context\">\n <span title=\"{{ context.value | c8yDate }}\">\n {{ context.value | c8yDate }}\n </span>\n </ng-container>\n </c8y-column>\n </c8y-data-grid>\n</div>\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { CoreModule, hookNavigator, hookRoute, DropAreaModule } from '@c8y/ngx-components';\nimport { FilesRepositoryNavigationFactory } from './files-repository-navigation.factory';\nimport { FilesRepositoryComponent } from './files-repository.component';\nimport { FilesRepositoryUploadComponent } from './files-repository-upload.component';\nimport { FilesRepositoryService } from './files-repository.service';\nimport { FilesRepositoryGuard } from './files-repository.guard';\nimport { FilePreviewModule } from '@c8y/ngx-components/file-preview';\n\n@NgModule({\n imports: [\n RouterModule,\n CoreModule,\n DropAreaModule,\n FilePreviewModule,\n FilesRepositoryComponent,\n FilesRepositoryUploadComponent\n ],\n exports: [],\n providers: [\n FilesRepositoryGuard,\n hookNavigator(FilesRepositoryNavigationFactory),\n hookRoute(\n {\n path: 'files',\n component: FilesRepositoryComponent,\n canActivate: [FilesRepositoryGuard]\n },\n { multi: true }\n ),\n FilesRepositoryService\n ]\n})\nexport class FilesRepositoryModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.FilesRepositoryGuard","i1","i1.FilesRepositoryService","i2","i3"],"mappings":"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"}
@@ -1,16 +1,15 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Pipe, EventEmitter, Input, Output, Component, Injectable, forwardRef, NgModule } from '@angular/core';
3
- import * as i3 from '@angular/forms';
4
- import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
3
+ import * as i1 from '@angular/forms';
4
+ import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
5
5
  import * as i2 from '@c8y/ngx-components';
6
- import { gettext, CommonModule, DropAreaModule } from '@c8y/ngx-components';
7
- import * as i4 from 'ngx-bootstrap/tooltip';
8
- import { TooltipModule } from 'ngx-bootstrap/tooltip';
9
- import * as i1 from 'ngx-bootstrap/modal';
6
+ import { gettext, IconDirective, C8yTranslateDirective, C8yTranslatePipe, CommonModule, DropAreaModule } from '@c8y/ngx-components';
7
+ import { TooltipDirective, TooltipModule } from 'ngx-bootstrap/tooltip';
8
+ import * as i1$1 from 'ngx-bootstrap/modal';
10
9
  import { BehaviorSubject, defer, from, combineLatest } from 'rxjs';
11
10
  import { map, shareReplay, debounceTime, startWith } from 'rxjs/operators';
12
11
  import { clone } from 'lodash-es';
13
- import * as i2$1 from '@angular/common';
12
+ import { NgIf, NgFor, NgClass, AsyncPipe } from '@angular/common';
14
13
  import { PRODUCT_EXPERIENCE_ICON_SELECTOR } from '@c8y/ngx-components/icon-selector/model';
15
14
 
16
15
  class IconNamePipe {
@@ -21,14 +20,11 @@ class IconNamePipe {
21
20
  return icon;
22
21
  }
23
22
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: IconNamePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
24
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: IconNamePipe, isStandalone: false, name: "iconName" }); }
23
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: IconNamePipe, isStandalone: true, name: "iconName" }); }
25
24
  }
26
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: IconNamePipe, decorators: [{
27
26
  type: Pipe,
28
- args: [{
29
- name: 'iconName',
30
- standalone: false
31
- }]
27
+ args: [{ name: 'iconName' }]
32
28
  }] });
33
29
 
34
30
  const allIconCategory = gettext('All`icons-category`');
@@ -79,11 +75,21 @@ class IconSelectorComponent {
79
75
  this.onSelect.emit(icon[0]);
80
76
  }
81
77
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: IconSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
82
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: IconSelectorComponent, isStandalone: false, selector: "c8y-icon-selector", inputs: { iconCategoriesToExclude: "iconCategoriesToExclude", showIconClass: "showIconClass", selectedIcon: "selectedIcon" }, outputs: { onSelect: "onSelect" }, ngImport: i0, template: "<div class=\"p-l-24 p-r-24 p-t-8 p-b-8 separator-bottom\">\n <div class=\"row d-flex-sm\">\n <div class=\"col-sm-6 m-b-8\">\n <div class=\"input-group-search input-group\" style=\"width: auto\">\n <input\n type=\"search\"\n class=\"form-control\"\n id=\"filter-icons\"\n [ngModel]=\"searchTerm$ | async\"\n (ngModelChange)=\"onSearchChange($event)\"\n placeholder=\"{{ 'Type to filter icons\u2026' | translate }}\"\n />\n <ng-template #searchIcon>\n <span class=\"input-group-addon\">\n <i c8yIcon=\"search\"></i>\n </span>\n </ng-template>\n <span\n class=\"input-group-addon pointer\"\n *ngIf=\"searchTerm$ | async; else searchIcon\"\n (click)=\"onSearchChange('')\"\n >\n <i c8yIcon=\"times\"></i>\n </span>\n </div>\n </div>\n <div class=\"col-sm-6 m-b-8 text-right\">\n <div class=\"d-inline-flex a-i-center text-left\">\n <label class=\"m-b-0 m-r-8 flex-no-shrink\" translate>Filter by type</label>\n <div class=\"c8y-select-wrapper\">\n <select\n id=\"exampleSelect\"\n class=\"form-control\"\n [ngModel]=\"selectedIconCategory$ | async\"\n (ngModelChange)=\"onCategoryFilterChanged($event)\"\n >\n <option *ngFor=\"let category of availableIconCategories$ | async\" [ngValue]=\"category\">\n {{ category | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div class=\"modal-inner-scroll\">\n <div class=\"modal-body\" style=\"height: calc(100vh - 293px)\">\n <div class=\"dtm-icon-grid\">\n <div *ngFor=\"let iconDefinition of filteredIcons$ | async\" class=\"d-contents\">\n <div class=\"legend form-block center grid__col--fullspan\">\n {{ iconDefinition.label | translate }}\n </div>\n\n <div class=\"d-contents\" *ngFor=\"let icon of iconDefinition.icons\">\n <div\n class=\"dtm-icon-grid__item\"\n [ngClass]=\"{\n 'dtm-icon-grid__item--selected': selectedIcon && icon[0] === selectedIcon\n }\"\n >\n <button (click)=\"onIconClicked(icon)\" class=\"dtm-icon-grid__btn\" [title]=\"icon[0] | iconName\">\n <i [c8yIcon]=\"icon[0]\" class=\"d-block icon-40\"></i>\n <small *ngIf=\"showIconClass\" class=\"text-break-word\">{{ icon[0] | iconName }}</small>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.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: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: IconNamePipe, name: "iconName" }] }); }
78
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: IconSelectorComponent, isStandalone: true, selector: "c8y-icon-selector", inputs: { iconCategoriesToExclude: "iconCategoriesToExclude", showIconClass: "showIconClass", selectedIcon: "selectedIcon" }, outputs: { onSelect: "onSelect" }, ngImport: i0, template: "<div class=\"p-l-24 p-r-24 p-t-8 p-b-8 separator-bottom\">\n <div class=\"row d-flex-sm\">\n <div class=\"col-sm-6 m-b-8\">\n <div class=\"input-group-search input-group\" style=\"width: auto\">\n <input\n type=\"search\"\n class=\"form-control\"\n id=\"filter-icons\"\n [ngModel]=\"searchTerm$ | async\"\n (ngModelChange)=\"onSearchChange($event)\"\n placeholder=\"{{ 'Type to filter icons\u2026' | translate }}\"\n />\n <ng-template #searchIcon>\n <span class=\"input-group-addon\">\n <i c8yIcon=\"search\"></i>\n </span>\n </ng-template>\n <span\n class=\"input-group-addon pointer\"\n *ngIf=\"searchTerm$ | async; else searchIcon\"\n (click)=\"onSearchChange('')\"\n >\n <i c8yIcon=\"times\"></i>\n </span>\n </div>\n </div>\n <div class=\"col-sm-6 m-b-8 text-right\">\n <div class=\"d-inline-flex a-i-center text-left\">\n <label class=\"m-b-0 m-r-8 flex-no-shrink\" translate>Filter by type</label>\n <div class=\"c8y-select-wrapper\">\n <select\n id=\"exampleSelect\"\n class=\"form-control\"\n [ngModel]=\"selectedIconCategory$ | async\"\n (ngModelChange)=\"onCategoryFilterChanged($event)\"\n >\n <option *ngFor=\"let category of availableIconCategories$ | async\" [ngValue]=\"category\">\n {{ category | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div class=\"modal-inner-scroll\">\n <div class=\"modal-body\" style=\"height: calc(100vh - 293px)\">\n <div class=\"dtm-icon-grid\">\n <div *ngFor=\"let iconDefinition of filteredIcons$ | async\" class=\"d-contents\">\n <div class=\"legend form-block center grid__col--fullspan\">\n {{ iconDefinition.label | translate }}\n </div>\n\n <div class=\"d-contents\" *ngFor=\"let icon of iconDefinition.icons\">\n <div\n class=\"dtm-icon-grid__item\"\n [ngClass]=\"{\n 'dtm-icon-grid__item--selected': selectedIcon && icon[0] === selectedIcon\n }\"\n >\n <button (click)=\"onIconClicked(icon)\" class=\"dtm-icon-grid__btn\" [title]=\"icon[0] | iconName\">\n <i [c8yIcon]=\"icon[0]\" class=\"d-block icon-40\"></i>\n <small *ngIf=\"showIconClass\" class=\"text-break-word\">{{ icon[0] | iconName }}</small>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: IconNamePipe, name: "iconName" }] }); }
83
79
  }
84
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: IconSelectorComponent, decorators: [{
85
81
  type: Component,
86
- args: [{ selector: 'c8y-icon-selector', standalone: false, template: "<div class=\"p-l-24 p-r-24 p-t-8 p-b-8 separator-bottom\">\n <div class=\"row d-flex-sm\">\n <div class=\"col-sm-6 m-b-8\">\n <div class=\"input-group-search input-group\" style=\"width: auto\">\n <input\n type=\"search\"\n class=\"form-control\"\n id=\"filter-icons\"\n [ngModel]=\"searchTerm$ | async\"\n (ngModelChange)=\"onSearchChange($event)\"\n placeholder=\"{{ 'Type to filter icons\u2026' | translate }}\"\n />\n <ng-template #searchIcon>\n <span class=\"input-group-addon\">\n <i c8yIcon=\"search\"></i>\n </span>\n </ng-template>\n <span\n class=\"input-group-addon pointer\"\n *ngIf=\"searchTerm$ | async; else searchIcon\"\n (click)=\"onSearchChange('')\"\n >\n <i c8yIcon=\"times\"></i>\n </span>\n </div>\n </div>\n <div class=\"col-sm-6 m-b-8 text-right\">\n <div class=\"d-inline-flex a-i-center text-left\">\n <label class=\"m-b-0 m-r-8 flex-no-shrink\" translate>Filter by type</label>\n <div class=\"c8y-select-wrapper\">\n <select\n id=\"exampleSelect\"\n class=\"form-control\"\n [ngModel]=\"selectedIconCategory$ | async\"\n (ngModelChange)=\"onCategoryFilterChanged($event)\"\n >\n <option *ngFor=\"let category of availableIconCategories$ | async\" [ngValue]=\"category\">\n {{ category | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div class=\"modal-inner-scroll\">\n <div class=\"modal-body\" style=\"height: calc(100vh - 293px)\">\n <div class=\"dtm-icon-grid\">\n <div *ngFor=\"let iconDefinition of filteredIcons$ | async\" class=\"d-contents\">\n <div class=\"legend form-block center grid__col--fullspan\">\n {{ iconDefinition.label | translate }}\n </div>\n\n <div class=\"d-contents\" *ngFor=\"let icon of iconDefinition.icons\">\n <div\n class=\"dtm-icon-grid__item\"\n [ngClass]=\"{\n 'dtm-icon-grid__item--selected': selectedIcon && icon[0] === selectedIcon\n }\"\n >\n <button (click)=\"onIconClicked(icon)\" class=\"dtm-icon-grid__btn\" [title]=\"icon[0] | iconName\">\n <i [c8yIcon]=\"icon[0]\" class=\"d-block icon-40\"></i>\n <small *ngIf=\"showIconClass\" class=\"text-break-word\">{{ icon[0] | iconName }}</small>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
82
+ args: [{ selector: 'c8y-icon-selector', imports: [
83
+ FormsModule,
84
+ IconDirective,
85
+ NgIf,
86
+ C8yTranslateDirective,
87
+ NgFor,
88
+ NgClass,
89
+ C8yTranslatePipe,
90
+ AsyncPipe,
91
+ IconNamePipe
92
+ ], template: "<div class=\"p-l-24 p-r-24 p-t-8 p-b-8 separator-bottom\">\n <div class=\"row d-flex-sm\">\n <div class=\"col-sm-6 m-b-8\">\n <div class=\"input-group-search input-group\" style=\"width: auto\">\n <input\n type=\"search\"\n class=\"form-control\"\n id=\"filter-icons\"\n [ngModel]=\"searchTerm$ | async\"\n (ngModelChange)=\"onSearchChange($event)\"\n placeholder=\"{{ 'Type to filter icons\u2026' | translate }}\"\n />\n <ng-template #searchIcon>\n <span class=\"input-group-addon\">\n <i c8yIcon=\"search\"></i>\n </span>\n </ng-template>\n <span\n class=\"input-group-addon pointer\"\n *ngIf=\"searchTerm$ | async; else searchIcon\"\n (click)=\"onSearchChange('')\"\n >\n <i c8yIcon=\"times\"></i>\n </span>\n </div>\n </div>\n <div class=\"col-sm-6 m-b-8 text-right\">\n <div class=\"d-inline-flex a-i-center text-left\">\n <label class=\"m-b-0 m-r-8 flex-no-shrink\" translate>Filter by type</label>\n <div class=\"c8y-select-wrapper\">\n <select\n id=\"exampleSelect\"\n class=\"form-control\"\n [ngModel]=\"selectedIconCategory$ | async\"\n (ngModelChange)=\"onCategoryFilterChanged($event)\"\n >\n <option *ngFor=\"let category of availableIconCategories$ | async\" [ngValue]=\"category\">\n {{ category | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div class=\"modal-inner-scroll\">\n <div class=\"modal-body\" style=\"height: calc(100vh - 293px)\">\n <div class=\"dtm-icon-grid\">\n <div *ngFor=\"let iconDefinition of filteredIcons$ | async\" class=\"d-contents\">\n <div class=\"legend form-block center grid__col--fullspan\">\n {{ iconDefinition.label | translate }}\n </div>\n\n <div class=\"d-contents\" *ngFor=\"let icon of iconDefinition.icons\">\n <div\n class=\"dtm-icon-grid__item\"\n [ngClass]=\"{\n 'dtm-icon-grid__item--selected': selectedIcon && icon[0] === selectedIcon\n }\"\n >\n <button (click)=\"onIconClicked(icon)\" class=\"dtm-icon-grid__btn\" [title]=\"icon[0] | iconName\">\n <i [c8yIcon]=\"icon[0]\" class=\"d-block icon-40\"></i>\n <small *ngIf=\"showIconClass\" class=\"text-break-word\">{{ icon[0] | iconName }}</small>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
87
93
  }], ctorParameters: () => [], propDecorators: { iconCategoriesToExclude: [{
88
94
  type: Input
89
95
  }], showIconClass: [{
@@ -117,13 +123,13 @@ class IconSelectorModalComponent {
117
123
  selectionChange(newSelection) {
118
124
  this.currentSelection = newSelection;
119
125
  }
120
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: IconSelectorModalComponent, deps: [{ token: i1.BsModalRef }], target: i0.ɵɵFactoryTarget.Component }); }
121
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: IconSelectorModalComponent, isStandalone: false, selector: "c8y-icon-selector-modal", ngImport: i0, template: "<div class=\"modal-header\">\n <div id=\"modal-title\" class=\"modal-title h4\">{{ title | translate }}</div>\n</div>\n<div id=\"modal-body\">\n <c8y-icon-selector\n (onSelect)=\"selectionChange($event)\"\n [selectedIcon]=\"currentSelection\"\n [iconCategoriesToExclude]=\"iconCategoriesToExclude\"\n [showIconClass]=\"showIconClass\"\n ></c8y-icon-selector>\n</div>\n<div class=\"modal-footer separator text-center\">\n <button class=\"btn btn-default\" (click)=\"close()\">\n {{ 'Cancel' | translate }}\n </button>\n <button class=\"btn btn-primary\" [disabled]=\"!currentSelection\" (click)=\"saveChanges()\">\n {{ saveButtonLabel | translate }}\n </button>\n</div>\n", dependencies: [{ kind: "component", type: IconSelectorComponent, selector: "c8y-icon-selector", inputs: ["iconCategoriesToExclude", "showIconClass", "selectedIcon"], outputs: ["onSelect"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
126
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: IconSelectorModalComponent, deps: [{ token: i1$1.BsModalRef }], target: i0.ɵɵFactoryTarget.Component }); }
127
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: IconSelectorModalComponent, isStandalone: true, selector: "c8y-icon-selector-modal", ngImport: i0, template: "<div class=\"modal-header\">\n <div id=\"modal-title\" class=\"modal-title h4\">{{ title | translate }}</div>\n</div>\n<div id=\"modal-body\">\n <c8y-icon-selector\n (onSelect)=\"selectionChange($event)\"\n [selectedIcon]=\"currentSelection\"\n [iconCategoriesToExclude]=\"iconCategoriesToExclude\"\n [showIconClass]=\"showIconClass\"\n ></c8y-icon-selector>\n</div>\n<div class=\"modal-footer separator text-center\">\n <button class=\"btn btn-default\" (click)=\"close()\">\n {{ 'Cancel' | translate }}\n </button>\n <button class=\"btn btn-primary\" [disabled]=\"!currentSelection\" (click)=\"saveChanges()\">\n {{ saveButtonLabel | translate }}\n </button>\n</div>\n", dependencies: [{ kind: "component", type: IconSelectorComponent, selector: "c8y-icon-selector", inputs: ["iconCategoriesToExclude", "showIconClass", "selectedIcon"], outputs: ["onSelect"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
122
128
  }
123
129
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: IconSelectorModalComponent, decorators: [{
124
130
  type: Component,
125
- args: [{ selector: 'c8y-icon-selector-modal', standalone: false, template: "<div class=\"modal-header\">\n <div id=\"modal-title\" class=\"modal-title h4\">{{ title | translate }}</div>\n</div>\n<div id=\"modal-body\">\n <c8y-icon-selector\n (onSelect)=\"selectionChange($event)\"\n [selectedIcon]=\"currentSelection\"\n [iconCategoriesToExclude]=\"iconCategoriesToExclude\"\n [showIconClass]=\"showIconClass\"\n ></c8y-icon-selector>\n</div>\n<div class=\"modal-footer separator text-center\">\n <button class=\"btn btn-default\" (click)=\"close()\">\n {{ 'Cancel' | translate }}\n </button>\n <button class=\"btn btn-primary\" [disabled]=\"!currentSelection\" (click)=\"saveChanges()\">\n {{ saveButtonLabel | translate }}\n </button>\n</div>\n" }]
126
- }], ctorParameters: () => [{ type: i1.BsModalRef }] });
131
+ args: [{ selector: 'c8y-icon-selector-modal', imports: [IconSelectorComponent, C8yTranslatePipe], template: "<div class=\"modal-header\">\n <div id=\"modal-title\" class=\"modal-title h4\">{{ title | translate }}</div>\n</div>\n<div id=\"modal-body\">\n <c8y-icon-selector\n (onSelect)=\"selectionChange($event)\"\n [selectedIcon]=\"currentSelection\"\n [iconCategoriesToExclude]=\"iconCategoriesToExclude\"\n [showIconClass]=\"showIconClass\"\n ></c8y-icon-selector>\n</div>\n<div class=\"modal-footer separator text-center\">\n <button class=\"btn btn-default\" (click)=\"close()\">\n {{ 'Cancel' | translate }}\n </button>\n <button class=\"btn btn-primary\" [disabled]=\"!currentSelection\" (click)=\"saveChanges()\">\n {{ saveButtonLabel | translate }}\n </button>\n</div>\n" }]
132
+ }], ctorParameters: () => [{ type: i1$1.BsModalRef }] });
127
133
 
128
134
  class IconSelectorService {
129
135
  constructor(modal) {
@@ -139,13 +145,13 @@ class IconSelectorService {
139
145
  const content = modal.content;
140
146
  return content.result;
141
147
  }
142
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: IconSelectorService, deps: [{ token: i1.BsModalService }], target: i0.ɵɵFactoryTarget.Injectable }); }
148
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: IconSelectorService, deps: [{ token: i1$1.BsModalService }], target: i0.ɵɵFactoryTarget.Injectable }); }
143
149
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: IconSelectorService, providedIn: 'root' }); }
144
150
  }
145
151
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: IconSelectorService, decorators: [{
146
152
  type: Injectable,
147
153
  args: [{ providedIn: 'root' }]
148
- }], ctorParameters: () => [{ type: i1.BsModalService }] });
154
+ }], ctorParameters: () => [{ type: i1$1.BsModalService }] });
149
155
 
150
156
  /**
151
157
  * A component which acts as a wrapper for the icon selector.
@@ -226,13 +232,13 @@ class IconSelectorWrapperComponent {
226
232
  }
227
233
  }
228
234
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: IconSelectorWrapperComponent, deps: [{ token: IconSelectorService }, { token: i2.GainsightService }], target: i0.ɵɵFactoryTarget.Component }); }
229
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: IconSelectorWrapperComponent, isStandalone: false, selector: "c8y-icon-selector-wrapper", inputs: { canRemoveIcon: "canRemoveIcon", selectedIcon: "selectedIcon", iconSize: "iconSize" }, outputs: { onSelect: "onSelect" }, providers: [
235
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: IconSelectorWrapperComponent, isStandalone: true, selector: "c8y-icon-selector-wrapper", inputs: { canRemoveIcon: "canRemoveIcon", selectedIcon: "selectedIcon", iconSize: "iconSize" }, outputs: { onSelect: "onSelect" }, providers: [
230
236
  {
231
237
  provide: NG_VALUE_ACCESSOR,
232
238
  useExisting: forwardRef(() => IconSelectorWrapperComponent),
233
239
  multi: true
234
240
  }
235
- ], ngImport: i0, template: "<div class=\"d-flex a-i-center j-c-center p-relative\">\n <div\n class=\"icon-{{ iconSize }} text-center l-h-1 fit-w fit-h\"\n *ngIf=\"selectedIcon\"\n >\n <i\n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"selectedIcon\"\n ></i>\n </div>\n\n <div\n class=\"icon-{{ iconSize }} text-muted text-center a-s-stretch fit-w\"\n style=\"border: 2px dashed var(--c8y-root-component-border-color)\"\n *ngIf=\"!selectedIcon\"\n >\n <span class=\"d-flex a-i-center j-c-center text-12 fit-h\">\n <em>{{ 'Auto' | translate }}</em>\n </span>\n </div>\n <div class=\"showOnHover d-flex j-c-center p-absolute fit-h fit-w\">\n <button\n class=\"btn btn-dot btn-icon btn-sm m-0\"\n title=\"{{ 'Select icon' | translate }}\"\n [attr.aria-label]=\"'Select icon' | translate\"\n type=\"button\"\n (click)=\"openIconSelector()\"\n *ngIf=\"!selectedIcon\"\n >\n {{ 'Select' | translate }}\n </button>\n <button\n class=\"btn btn-dot btn-sm btn-icon m-0\"\n [attr.aria-label]=\"'Change icon' | translate\"\n tooltip=\"{{ 'Change icon' | translate }}\"\n placement=\"top\"\n [delay]=\"500\"\n container=\"body\"\n type=\"button\"\n *ngIf=\"selectedIcon\"\n (click)=\"openIconSelector()\"\n >\n <i [c8yIcon]=\"'replace'\"></i>\n </button>\n <button\n class=\"btn btn-dot btn-dot--danger btn-icon btn-sm m-0\"\n [attr.aria-label]=\"'Remove icon and use default icon' | translate\"\n tooltip=\"{{ 'Remove icon and use default icon' | translate }}\"\n placement=\"top\"\n [delay]=\"500\"\n container=\"body\"\n type=\"button\"\n *ngIf=\"selectedIcon && canRemoveIcon\"\n (click)=\"removeIcon()\"\n >\n <i [c8yIcon]=\"'trash'\"></i>\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.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: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
241
+ ], ngImport: i0, template: "<div class=\"d-flex a-i-center j-c-center p-relative\">\n <div\n class=\"icon-{{ iconSize }} text-center l-h-1 fit-w fit-h\"\n *ngIf=\"selectedIcon\"\n >\n <i\n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"selectedIcon\"\n ></i>\n </div>\n\n <div\n class=\"icon-{{ iconSize }} text-muted text-center a-s-stretch fit-w\"\n style=\"border: 2px dashed var(--c8y-root-component-border-color)\"\n *ngIf=\"!selectedIcon\"\n >\n <span class=\"d-flex a-i-center j-c-center text-12 fit-h\">\n <em>{{ 'Auto' | translate }}</em>\n </span>\n </div>\n <div class=\"showOnHover d-flex j-c-center p-absolute fit-h fit-w\">\n <button\n class=\"btn btn-dot btn-icon btn-sm m-0\"\n title=\"{{ 'Select icon' | translate }}\"\n [attr.aria-label]=\"'Select icon' | translate\"\n type=\"button\"\n (click)=\"openIconSelector()\"\n *ngIf=\"!selectedIcon\"\n >\n {{ 'Select' | translate }}\n </button>\n <button\n class=\"btn btn-dot btn-sm btn-icon m-0\"\n [attr.aria-label]=\"'Change icon' | translate\"\n tooltip=\"{{ 'Change icon' | translate }}\"\n placement=\"top\"\n [delay]=\"500\"\n container=\"body\"\n type=\"button\"\n *ngIf=\"selectedIcon\"\n (click)=\"openIconSelector()\"\n >\n <i [c8yIcon]=\"'replace'\"></i>\n </button>\n <button\n class=\"btn btn-dot btn-dot--danger btn-icon btn-sm m-0\"\n [attr.aria-label]=\"'Remove icon and use default icon' | translate\"\n tooltip=\"{{ 'Remove icon and use default icon' | translate }}\"\n placement=\"top\"\n [delay]=\"500\"\n container=\"body\"\n type=\"button\"\n *ngIf=\"selectedIcon && canRemoveIcon\"\n (click)=\"removeIcon()\"\n >\n <i [c8yIcon]=\"'trash'\"></i>\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: 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: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
236
242
  }
237
243
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: IconSelectorWrapperComponent, decorators: [{
238
244
  type: Component,
@@ -242,7 +248,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
242
248
  useExisting: forwardRef(() => IconSelectorWrapperComponent),
243
249
  multi: true
244
250
  }
245
- ], standalone: false, template: "<div class=\"d-flex a-i-center j-c-center p-relative\">\n <div\n class=\"icon-{{ iconSize }} text-center l-h-1 fit-w fit-h\"\n *ngIf=\"selectedIcon\"\n >\n <i\n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"selectedIcon\"\n ></i>\n </div>\n\n <div\n class=\"icon-{{ iconSize }} text-muted text-center a-s-stretch fit-w\"\n style=\"border: 2px dashed var(--c8y-root-component-border-color)\"\n *ngIf=\"!selectedIcon\"\n >\n <span class=\"d-flex a-i-center j-c-center text-12 fit-h\">\n <em>{{ 'Auto' | translate }}</em>\n </span>\n </div>\n <div class=\"showOnHover d-flex j-c-center p-absolute fit-h fit-w\">\n <button\n class=\"btn btn-dot btn-icon btn-sm m-0\"\n title=\"{{ 'Select icon' | translate }}\"\n [attr.aria-label]=\"'Select icon' | translate\"\n type=\"button\"\n (click)=\"openIconSelector()\"\n *ngIf=\"!selectedIcon\"\n >\n {{ 'Select' | translate }}\n </button>\n <button\n class=\"btn btn-dot btn-sm btn-icon m-0\"\n [attr.aria-label]=\"'Change icon' | translate\"\n tooltip=\"{{ 'Change icon' | translate }}\"\n placement=\"top\"\n [delay]=\"500\"\n container=\"body\"\n type=\"button\"\n *ngIf=\"selectedIcon\"\n (click)=\"openIconSelector()\"\n >\n <i [c8yIcon]=\"'replace'\"></i>\n </button>\n <button\n class=\"btn btn-dot btn-dot--danger btn-icon btn-sm m-0\"\n [attr.aria-label]=\"'Remove icon and use default icon' | translate\"\n tooltip=\"{{ 'Remove icon and use default icon' | translate }}\"\n placement=\"top\"\n [delay]=\"500\"\n container=\"body\"\n type=\"button\"\n *ngIf=\"selectedIcon && canRemoveIcon\"\n (click)=\"removeIcon()\"\n >\n <i [c8yIcon]=\"'trash'\"></i>\n </button>\n </div>\n</div>\n" }]
251
+ ], imports: [NgIf, IconDirective, TooltipDirective, C8yTranslatePipe], template: "<div class=\"d-flex a-i-center j-c-center p-relative\">\n <div\n class=\"icon-{{ iconSize }} text-center l-h-1 fit-w fit-h\"\n *ngIf=\"selectedIcon\"\n >\n <i\n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"selectedIcon\"\n ></i>\n </div>\n\n <div\n class=\"icon-{{ iconSize }} text-muted text-center a-s-stretch fit-w\"\n style=\"border: 2px dashed var(--c8y-root-component-border-color)\"\n *ngIf=\"!selectedIcon\"\n >\n <span class=\"d-flex a-i-center j-c-center text-12 fit-h\">\n <em>{{ 'Auto' | translate }}</em>\n </span>\n </div>\n <div class=\"showOnHover d-flex j-c-center p-absolute fit-h fit-w\">\n <button\n class=\"btn btn-dot btn-icon btn-sm m-0\"\n title=\"{{ 'Select icon' | translate }}\"\n [attr.aria-label]=\"'Select icon' | translate\"\n type=\"button\"\n (click)=\"openIconSelector()\"\n *ngIf=\"!selectedIcon\"\n >\n {{ 'Select' | translate }}\n </button>\n <button\n class=\"btn btn-dot btn-sm btn-icon m-0\"\n [attr.aria-label]=\"'Change icon' | translate\"\n tooltip=\"{{ 'Change icon' | translate }}\"\n placement=\"top\"\n [delay]=\"500\"\n container=\"body\"\n type=\"button\"\n *ngIf=\"selectedIcon\"\n (click)=\"openIconSelector()\"\n >\n <i [c8yIcon]=\"'replace'\"></i>\n </button>\n <button\n class=\"btn btn-dot btn-dot--danger btn-icon btn-sm m-0\"\n [attr.aria-label]=\"'Remove icon and use default icon' | translate\"\n tooltip=\"{{ 'Remove icon and use default icon' | translate }}\"\n placement=\"top\"\n [delay]=\"500\"\n container=\"body\"\n type=\"button\"\n *ngIf=\"selectedIcon && canRemoveIcon\"\n (click)=\"removeIcon()\"\n >\n <i [c8yIcon]=\"'trash'\"></i>\n </button>\n </div>\n</div>\n" }]
246
252
  }], ctorParameters: () => [{ type: IconSelectorService }, { type: i2.GainsightService }], propDecorators: { canRemoveIcon: [{
247
253
  type: Input
248
254
  }], selectedIcon: [{
@@ -255,20 +261,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
255
261
 
256
262
  class IconSelectorModule {
257
263
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: IconSelectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
258
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: IconSelectorModule, declarations: [IconSelectorComponent,
264
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: IconSelectorModule, imports: [CommonModule,
265
+ FormsModule,
266
+ DropAreaModule,
267
+ TooltipModule,
268
+ IconSelectorComponent,
259
269
  IconSelectorModalComponent,
260
270
  IconNamePipe,
261
- IconSelectorWrapperComponent], imports: [CommonModule, FormsModule, DropAreaModule, TooltipModule], exports: [IconSelectorComponent,
271
+ IconSelectorWrapperComponent], exports: [IconSelectorComponent,
262
272
  IconSelectorModalComponent,
263
273
  IconNamePipe,
264
274
  IconSelectorWrapperComponent] }); }
265
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: IconSelectorModule, imports: [CommonModule, FormsModule, DropAreaModule, TooltipModule] }); }
275
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: IconSelectorModule, imports: [CommonModule,
276
+ FormsModule,
277
+ DropAreaModule,
278
+ TooltipModule,
279
+ IconSelectorComponent,
280
+ IconSelectorModalComponent] }); }
266
281
  }
267
282
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: IconSelectorModule, decorators: [{
268
283
  type: NgModule,
269
284
  args: [{
270
- imports: [CommonModule, FormsModule, DropAreaModule, TooltipModule],
271
- declarations: [
285
+ imports: [
286
+ CommonModule,
287
+ FormsModule,
288
+ DropAreaModule,
289
+ TooltipModule,
272
290
  IconSelectorComponent,
273
291
  IconSelectorModalComponent,
274
292
  IconNamePipe,
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-icon-selector.mjs","sources":["../../icon-selector/icon-name.pipe.ts","../../icon-selector/icon-selector.component.ts","../../icon-selector/icon-selector.component.html","../../icon-selector/icon-selector-modal/icon-selector-modal.component.ts","../../icon-selector/icon-selector-modal/icon-selector-modal.component.html","../../icon-selector/icon-selector.service.ts","../../icon-selector/icon-selector-wrapper/icon-selector-wrapper.component.ts","../../icon-selector/icon-selector-wrapper/icon-selector-wrapper.component.html","../../icon-selector/icon-selector.module.ts","../../icon-selector/c8y-ngx-components-icon-selector.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'iconName',\n standalone: false\n})\nexport class IconNamePipe implements PipeTransform {\n transform(icon: string): string {\n if (icon.startsWith('c8y-')) {\n return icon.replace(/^c8y-/, '');\n }\n return icon;\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BehaviorSubject, Observable, combineLatest, defer, from } from 'rxjs';\nimport { debounceTime, map, shareReplay, startWith } from 'rxjs/operators';\nimport { gettext } from '@c8y/ngx-components';\nimport { clone } from 'lodash-es';\nimport { DefaultIconDefinition } from '@c8y/ngx-components/icon-selector/model';\nimport { SupportedIconsSuggestions } from '@c8y/ngx-components/icon-selector/icons';\n\nconst allIconCategory = gettext('All`icons-category`');\n\n@Component({\n selector: 'c8y-icon-selector',\n templateUrl: './icon-selector.component.html',\n styleUrls: [],\n standalone: false\n})\nexport class IconSelectorComponent {\n @Input() iconCategoriesToExclude: string[] = [];\n @Input() showIconClass = true;\n @Output() onSelect = new EventEmitter<string>();\n @Input() selectedIcon: SupportedIconsSuggestions;\n\n icons$: Observable<DefaultIconDefinition[]>;\n filteredIcons$: Observable<DefaultIconDefinition[]>;\n searchTerm$ = new BehaviorSubject('');\n selectedIconCategory$ = new BehaviorSubject<string>(allIconCategory);\n availableIconCategories$: Observable<string[]>;\n\n constructor() {\n this.icons$ = defer(() => from(this.loadIconDefinitions())).pipe(\n map(icons => icons.filter(tmp => !this.iconCategoriesToExclude.includes(tmp.label))),\n shareReplay({ refCount: true, bufferSize: 1 })\n );\n this.filteredIcons$ = combineLatest([\n this.icons$,\n this.searchTerm$.pipe(debounceTime(500), startWith(this.searchTerm$.value)),\n this.selectedIconCategory$\n ]).pipe(\n map(([icons, searchTerm, category]) =>\n this.filterIconsByCategoryAndSearchTerm(icons, category, searchTerm)\n )\n );\n this.availableIconCategories$ = this.icons$.pipe(\n map(icons => [allIconCategory, ...icons.map(tmp => tmp.label)])\n );\n }\n\n async loadIconDefinitions(): Promise<DefaultIconDefinition[]> {\n const { allIcons } = await import('@c8y/ngx-components/icon-selector/icons');\n return allIcons;\n }\n\n filterIconsByCategoryAndSearchTerm(\n iconCategories: DefaultIconDefinition[],\n selectedCategory: string,\n searchTerm: string\n ): DefaultIconDefinition[] {\n if (selectedCategory !== allIconCategory) {\n iconCategories = iconCategories.filter(category => category.label === selectedCategory);\n }\n\n if (searchTerm) {\n const lowerCaseSearchTerm = searchTerm.toLowerCase();\n const matchingCategories = new Array<DefaultIconDefinition>();\n for (const category of iconCategories) {\n const matchingIcons = category.icons.filter(iconClasses =>\n iconClasses.some(iconClass => iconClass.includes(lowerCaseSearchTerm))\n );\n if (matchingIcons.length) {\n matchingCategories.push({ ...clone(category), icons: matchingIcons });\n }\n }\n return matchingCategories;\n }\n\n return iconCategories;\n }\n\n onSearchChange(searchTerm: string) {\n this.searchTerm$.next(searchTerm);\n }\n\n onCategoryFilterChanged(categoryChange: string): void {\n this.selectedIconCategory$.next(categoryChange);\n }\n\n onIconClicked(icon: ReadonlyArray<string>): void {\n this.selectedIcon = icon[0];\n this.onSelect.emit(icon[0]);\n }\n}\n","<div class=\"p-l-24 p-r-24 p-t-8 p-b-8 separator-bottom\">\n <div class=\"row d-flex-sm\">\n <div class=\"col-sm-6 m-b-8\">\n <div class=\"input-group-search input-group\" style=\"width: auto\">\n <input\n type=\"search\"\n class=\"form-control\"\n id=\"filter-icons\"\n [ngModel]=\"searchTerm$ | async\"\n (ngModelChange)=\"onSearchChange($event)\"\n placeholder=\"{{ 'Type to filter icons…' | translate }}\"\n />\n <ng-template #searchIcon>\n <span class=\"input-group-addon\">\n <i c8yIcon=\"search\"></i>\n </span>\n </ng-template>\n <span\n class=\"input-group-addon pointer\"\n *ngIf=\"searchTerm$ | async; else searchIcon\"\n (click)=\"onSearchChange('')\"\n >\n <i c8yIcon=\"times\"></i>\n </span>\n </div>\n </div>\n <div class=\"col-sm-6 m-b-8 text-right\">\n <div class=\"d-inline-flex a-i-center text-left\">\n <label class=\"m-b-0 m-r-8 flex-no-shrink\" translate>Filter by type</label>\n <div class=\"c8y-select-wrapper\">\n <select\n id=\"exampleSelect\"\n class=\"form-control\"\n [ngModel]=\"selectedIconCategory$ | async\"\n (ngModelChange)=\"onCategoryFilterChanged($event)\"\n >\n <option *ngFor=\"let category of availableIconCategories$ | async\" [ngValue]=\"category\">\n {{ category | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div class=\"modal-inner-scroll\">\n <div class=\"modal-body\" style=\"height: calc(100vh - 293px)\">\n <div class=\"dtm-icon-grid\">\n <div *ngFor=\"let iconDefinition of filteredIcons$ | async\" class=\"d-contents\">\n <div class=\"legend form-block center grid__col--fullspan\">\n {{ iconDefinition.label | translate }}\n </div>\n\n <div class=\"d-contents\" *ngFor=\"let icon of iconDefinition.icons\">\n <div\n class=\"dtm-icon-grid__item\"\n [ngClass]=\"{\n 'dtm-icon-grid__item--selected': selectedIcon && icon[0] === selectedIcon\n }\"\n >\n <button (click)=\"onIconClicked(icon)\" class=\"dtm-icon-grid__btn\" [title]=\"icon[0] | iconName\">\n <i [c8yIcon]=\"icon[0]\" class=\"d-block icon-40\"></i>\n <small *ngIf=\"showIconClass\" class=\"text-break-word\">{{ icon[0] | iconName }}</small>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\n\n@Component({\n selector: 'c8y-icon-selector-modal',\n templateUrl: './icon-selector-modal.component.html',\n standalone: false\n})\nexport class IconSelectorModalComponent {\n title: string = gettext('Select icon');\n currentSelection: string;\n saveButtonLabel: string = gettext('Select');\n iconCategoriesToExclude: string[] = [];\n showIconClass = true;\n\n readonly result: Promise<string> = new Promise((resolve, reject) => {\n this.save = resolve;\n this.cancel = reject;\n });\n\n private save: (value: string) => void;\n private cancel: (reason?: any) => void;\n\n constructor(private bsModal: BsModalRef) {}\n\n close() {\n this.bsModal.hide();\n this.cancel();\n }\n\n saveChanges(): void {\n this.bsModal.hide();\n this.save(this.currentSelection);\n }\n\n selectionChange(newSelection: string) {\n this.currentSelection = newSelection;\n }\n}\n","<div class=\"modal-header\">\n <div id=\"modal-title\" class=\"modal-title h4\">{{ title | translate }}</div>\n</div>\n<div id=\"modal-body\">\n <c8y-icon-selector\n (onSelect)=\"selectionChange($event)\"\n [selectedIcon]=\"currentSelection\"\n [iconCategoriesToExclude]=\"iconCategoriesToExclude\"\n [showIconClass]=\"showIconClass\"\n ></c8y-icon-selector>\n</div>\n<div class=\"modal-footer separator text-center\">\n <button class=\"btn btn-default\" (click)=\"close()\">\n {{ 'Cancel' | translate }}\n </button>\n <button class=\"btn btn-primary\" [disabled]=\"!currentSelection\" (click)=\"saveChanges()\">\n {{ saveButtonLabel | translate }}\n </button>\n</div>\n","import { Injectable } from '@angular/core';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { IconSelectorModalComponent } from './icon-selector-modal/icon-selector-modal.component';\n\n@Injectable({ providedIn: 'root' })\nexport class IconSelectorService {\n constructor(protected modal: BsModalService) {}\n\n selectIcon(\n initialState: Partial<\n Pick<\n IconSelectorModalComponent,\n | 'currentSelection'\n | 'title'\n | 'saveButtonLabel'\n | 'iconCategoriesToExclude'\n | 'showIconClass'\n >\n > = {}\n ): Promise<string> {\n const modal = this.modal.show(IconSelectorModalComponent, {\n ignoreBackdropClick: true,\n keyboard: false,\n initialState,\n class: 'modal-lg'\n });\n const content = modal.content as IconSelectorModalComponent;\n return content.result;\n }\n}\n","import { Component, forwardRef, Input, Output, EventEmitter } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IconSelectorService } from '../icon-selector.service';\nimport { GainsightService } from '@c8y/ngx-components';\nimport { PRODUCT_EXPERIENCE_ICON_SELECTOR } from '@c8y/ngx-components/icon-selector/model';\n/**\n * A component which acts as a wrapper for the icon selector.\n *\n * Example 1:\n * ```\n <c8y-icon-selector-wrapper\n [selectedIcon]=\"'water'\"\n (onSelect)=\"selectIcon($event)\"\n ></c8y-icon-selector-wrapper>\n * ```\n * OR as a part of a formGroup\n * Example 2:\n * ```\n <c8y-icon-selector-wrapper name=\"icon\" formControlName=\"icon\">\n </c8y-icon-selector-wrapper>\n * ```\n */\n@Component({\n selector: 'c8y-icon-selector-wrapper',\n templateUrl: './icon-selector-wrapper.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IconSelectorWrapperComponent),\n multi: true\n }\n ],\n standalone: false\n})\nexport class IconSelectorWrapperComponent implements ControlValueAccessor {\n @Input() canRemoveIcon = false;\n @Input() selectedIcon: string;\n /**\n * The displayed icon size, the value has to be multiple of 8.\n */\n @Input() iconSize = 32;\n @Output() onSelect: EventEmitter<string> = new EventEmitter();\n\n /**\n * @ignore\n */\n onTouched: () => void;\n\n constructor(\n private iconSelector: IconSelectorService,\n private gainsightService: GainsightService\n ) {}\n\n /**\n * @ignore\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: (value: string) => void = () => {};\n\n /**\n * @ignore\n * @param icon The value to update\n */\n writeValue(icon: string): void {\n this.selectedIcon = icon;\n }\n\n /**\n * @ignore\n * @param fn The function to register for changes\n */\n registerOnChange(fn: () => void): void {\n this.onChange = fn;\n }\n\n /**\n * @ignore\n * @param fn The function to register for changes\n */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n removeIcon() {\n this.onSelect.emit(undefined);\n }\n\n async openIconSelector() {\n try {\n this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE_ICON_SELECTOR.EVENTS.ICON_SELECTOR, {\n component: PRODUCT_EXPERIENCE_ICON_SELECTOR.COMPONENTS.ICON_SELECTOR_WRAPPER_COMPONENT,\n action: PRODUCT_EXPERIENCE_ICON_SELECTOR.ACTIONS.OPEN_ICON_SELECTOR\n });\n const icon = await this.iconSelector.selectIcon({\n currentSelection: this.selectedIcon\n });\n this.onChange(icon);\n this.selectedIcon = icon;\n this.onSelect.emit(icon);\n this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE_ICON_SELECTOR.EVENTS.ICON_SELECTOR, {\n component: PRODUCT_EXPERIENCE_ICON_SELECTOR.COMPONENTS.ICON_SELECTOR_WRAPPER_COMPONENT,\n action: PRODUCT_EXPERIENCE_ICON_SELECTOR.ACTIONS.ICON_SELECTED\n });\n } catch {\n // nothing to do\n }\n }\n}\n","<div class=\"d-flex a-i-center j-c-center p-relative\">\n <div\n class=\"icon-{{ iconSize }} text-center l-h-1 fit-w fit-h\"\n *ngIf=\"selectedIcon\"\n >\n <i\n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"selectedIcon\"\n ></i>\n </div>\n\n <div\n class=\"icon-{{ iconSize }} text-muted text-center a-s-stretch fit-w\"\n style=\"border: 2px dashed var(--c8y-root-component-border-color)\"\n *ngIf=\"!selectedIcon\"\n >\n <span class=\"d-flex a-i-center j-c-center text-12 fit-h\">\n <em>{{ 'Auto' | translate }}</em>\n </span>\n </div>\n <div class=\"showOnHover d-flex j-c-center p-absolute fit-h fit-w\">\n <button\n class=\"btn btn-dot btn-icon btn-sm m-0\"\n title=\"{{ 'Select icon' | translate }}\"\n [attr.aria-label]=\"'Select icon' | translate\"\n type=\"button\"\n (click)=\"openIconSelector()\"\n *ngIf=\"!selectedIcon\"\n >\n {{ 'Select' | translate }}\n </button>\n <button\n class=\"btn btn-dot btn-sm btn-icon m-0\"\n [attr.aria-label]=\"'Change icon' | translate\"\n tooltip=\"{{ 'Change icon' | translate }}\"\n placement=\"top\"\n [delay]=\"500\"\n container=\"body\"\n type=\"button\"\n *ngIf=\"selectedIcon\"\n (click)=\"openIconSelector()\"\n >\n <i [c8yIcon]=\"'replace'\"></i>\n </button>\n <button\n class=\"btn btn-dot btn-dot--danger btn-icon btn-sm m-0\"\n [attr.aria-label]=\"'Remove icon and use default icon' | translate\"\n tooltip=\"{{ 'Remove icon and use default icon' | translate }}\"\n placement=\"top\"\n [delay]=\"500\"\n container=\"body\"\n type=\"button\"\n *ngIf=\"selectedIcon && canRemoveIcon\"\n (click)=\"removeIcon()\"\n >\n <i [c8yIcon]=\"'trash'\"></i>\n </button>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule, DropAreaModule } from '@c8y/ngx-components';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { IconNamePipe } from './icon-name.pipe';\nimport { IconSelectorModalComponent } from './icon-selector-modal/icon-selector-modal.component';\nimport { IconSelectorComponent } from './icon-selector.component';\nimport { IconSelectorWrapperComponent } from './icon-selector-wrapper/icon-selector-wrapper.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, DropAreaModule, TooltipModule],\n declarations: [\n IconSelectorComponent,\n IconSelectorModalComponent,\n IconNamePipe,\n IconSelectorWrapperComponent\n ],\n exports: [\n IconSelectorComponent,\n IconSelectorModalComponent,\n IconNamePipe,\n IconSelectorWrapperComponent\n ]\n})\nexport class IconSelectorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i4.IconNamePipe","i2.IconSelectorComponent","i3","i1.IconSelectorService"],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-icon-selector.mjs","sources":["../../icon-selector/icon-name.pipe.ts","../../icon-selector/icon-selector.component.ts","../../icon-selector/icon-selector.component.html","../../icon-selector/icon-selector-modal/icon-selector-modal.component.ts","../../icon-selector/icon-selector-modal/icon-selector-modal.component.html","../../icon-selector/icon-selector.service.ts","../../icon-selector/icon-selector-wrapper/icon-selector-wrapper.component.ts","../../icon-selector/icon-selector-wrapper/icon-selector-wrapper.component.html","../../icon-selector/icon-selector.module.ts","../../icon-selector/c8y-ngx-components-icon-selector.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'iconName' })\nexport class IconNamePipe implements PipeTransform {\n transform(icon: string): string {\n if (icon.startsWith('c8y-')) {\n return icon.replace(/^c8y-/, '');\n }\n return icon;\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BehaviorSubject, Observable, combineLatest, defer, from } from 'rxjs';\nimport { debounceTime, map, shareReplay, startWith } from 'rxjs/operators';\nimport {\n gettext,\n IconDirective,\n C8yTranslateDirective,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { clone } from 'lodash-es';\nimport { DefaultIconDefinition } from '@c8y/ngx-components/icon-selector/model';\nimport { SupportedIconsSuggestions } from '@c8y/ngx-components/icon-selector/icons';\nimport { FormsModule } from '@angular/forms';\nimport { NgIf, NgFor, NgClass, AsyncPipe } from '@angular/common';\nimport { IconNamePipe } from './icon-name.pipe';\n\nconst allIconCategory = gettext('All`icons-category`');\n\n@Component({\n selector: 'c8y-icon-selector',\n templateUrl: './icon-selector.component.html',\n styleUrls: [],\n imports: [\n FormsModule,\n IconDirective,\n NgIf,\n C8yTranslateDirective,\n NgFor,\n NgClass,\n C8yTranslatePipe,\n AsyncPipe,\n IconNamePipe\n ]\n})\nexport class IconSelectorComponent {\n @Input() iconCategoriesToExclude: string[] = [];\n @Input() showIconClass = true;\n @Output() onSelect = new EventEmitter<string>();\n @Input() selectedIcon: SupportedIconsSuggestions;\n\n icons$: Observable<DefaultIconDefinition[]>;\n filteredIcons$: Observable<DefaultIconDefinition[]>;\n searchTerm$ = new BehaviorSubject('');\n selectedIconCategory$ = new BehaviorSubject<string>(allIconCategory);\n availableIconCategories$: Observable<string[]>;\n\n constructor() {\n this.icons$ = defer(() => from(this.loadIconDefinitions())).pipe(\n map(icons => icons.filter(tmp => !this.iconCategoriesToExclude.includes(tmp.label))),\n shareReplay({ refCount: true, bufferSize: 1 })\n );\n this.filteredIcons$ = combineLatest([\n this.icons$,\n this.searchTerm$.pipe(debounceTime(500), startWith(this.searchTerm$.value)),\n this.selectedIconCategory$\n ]).pipe(\n map(([icons, searchTerm, category]) =>\n this.filterIconsByCategoryAndSearchTerm(icons, category, searchTerm)\n )\n );\n this.availableIconCategories$ = this.icons$.pipe(\n map(icons => [allIconCategory, ...icons.map(tmp => tmp.label)])\n );\n }\n\n async loadIconDefinitions(): Promise<DefaultIconDefinition[]> {\n const { allIcons } = await import('@c8y/ngx-components/icon-selector/icons');\n return allIcons;\n }\n\n filterIconsByCategoryAndSearchTerm(\n iconCategories: DefaultIconDefinition[],\n selectedCategory: string,\n searchTerm: string\n ): DefaultIconDefinition[] {\n if (selectedCategory !== allIconCategory) {\n iconCategories = iconCategories.filter(category => category.label === selectedCategory);\n }\n\n if (searchTerm) {\n const lowerCaseSearchTerm = searchTerm.toLowerCase();\n const matchingCategories = new Array<DefaultIconDefinition>();\n for (const category of iconCategories) {\n const matchingIcons = category.icons.filter(iconClasses =>\n iconClasses.some(iconClass => iconClass.includes(lowerCaseSearchTerm))\n );\n if (matchingIcons.length) {\n matchingCategories.push({ ...clone(category), icons: matchingIcons });\n }\n }\n return matchingCategories;\n }\n\n return iconCategories;\n }\n\n onSearchChange(searchTerm: string) {\n this.searchTerm$.next(searchTerm);\n }\n\n onCategoryFilterChanged(categoryChange: string): void {\n this.selectedIconCategory$.next(categoryChange);\n }\n\n onIconClicked(icon: ReadonlyArray<string>): void {\n this.selectedIcon = icon[0];\n this.onSelect.emit(icon[0]);\n }\n}\n","<div class=\"p-l-24 p-r-24 p-t-8 p-b-8 separator-bottom\">\n <div class=\"row d-flex-sm\">\n <div class=\"col-sm-6 m-b-8\">\n <div class=\"input-group-search input-group\" style=\"width: auto\">\n <input\n type=\"search\"\n class=\"form-control\"\n id=\"filter-icons\"\n [ngModel]=\"searchTerm$ | async\"\n (ngModelChange)=\"onSearchChange($event)\"\n placeholder=\"{{ 'Type to filter icons…' | translate }}\"\n />\n <ng-template #searchIcon>\n <span class=\"input-group-addon\">\n <i c8yIcon=\"search\"></i>\n </span>\n </ng-template>\n <span\n class=\"input-group-addon pointer\"\n *ngIf=\"searchTerm$ | async; else searchIcon\"\n (click)=\"onSearchChange('')\"\n >\n <i c8yIcon=\"times\"></i>\n </span>\n </div>\n </div>\n <div class=\"col-sm-6 m-b-8 text-right\">\n <div class=\"d-inline-flex a-i-center text-left\">\n <label class=\"m-b-0 m-r-8 flex-no-shrink\" translate>Filter by type</label>\n <div class=\"c8y-select-wrapper\">\n <select\n id=\"exampleSelect\"\n class=\"form-control\"\n [ngModel]=\"selectedIconCategory$ | async\"\n (ngModelChange)=\"onCategoryFilterChanged($event)\"\n >\n <option *ngFor=\"let category of availableIconCategories$ | async\" [ngValue]=\"category\">\n {{ category | translate }}\n </option>\n </select>\n <span></span>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div class=\"modal-inner-scroll\">\n <div class=\"modal-body\" style=\"height: calc(100vh - 293px)\">\n <div class=\"dtm-icon-grid\">\n <div *ngFor=\"let iconDefinition of filteredIcons$ | async\" class=\"d-contents\">\n <div class=\"legend form-block center grid__col--fullspan\">\n {{ iconDefinition.label | translate }}\n </div>\n\n <div class=\"d-contents\" *ngFor=\"let icon of iconDefinition.icons\">\n <div\n class=\"dtm-icon-grid__item\"\n [ngClass]=\"{\n 'dtm-icon-grid__item--selected': selectedIcon && icon[0] === selectedIcon\n }\"\n >\n <button (click)=\"onIconClicked(icon)\" class=\"dtm-icon-grid__btn\" [title]=\"icon[0] | iconName\">\n <i [c8yIcon]=\"icon[0]\" class=\"d-block icon-40\"></i>\n <small *ngIf=\"showIconClass\" class=\"text-break-word\">{{ icon[0] | iconName }}</small>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { gettext, C8yTranslatePipe } from '@c8y/ngx-components';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { IconSelectorComponent } from '../icon-selector.component';\n\n@Component({\n selector: 'c8y-icon-selector-modal',\n templateUrl: './icon-selector-modal.component.html',\n imports: [IconSelectorComponent, C8yTranslatePipe]\n})\nexport class IconSelectorModalComponent {\n title: string = gettext('Select icon');\n currentSelection: string;\n saveButtonLabel: string = gettext('Select');\n iconCategoriesToExclude: string[] = [];\n showIconClass = true;\n\n readonly result: Promise<string> = new Promise((resolve, reject) => {\n this.save = resolve;\n this.cancel = reject;\n });\n\n private save: (value: string) => void;\n private cancel: (reason?: any) => void;\n\n constructor(private bsModal: BsModalRef) {}\n\n close() {\n this.bsModal.hide();\n this.cancel();\n }\n\n saveChanges(): void {\n this.bsModal.hide();\n this.save(this.currentSelection);\n }\n\n selectionChange(newSelection: string) {\n this.currentSelection = newSelection;\n }\n}\n","<div class=\"modal-header\">\n <div id=\"modal-title\" class=\"modal-title h4\">{{ title | translate }}</div>\n</div>\n<div id=\"modal-body\">\n <c8y-icon-selector\n (onSelect)=\"selectionChange($event)\"\n [selectedIcon]=\"currentSelection\"\n [iconCategoriesToExclude]=\"iconCategoriesToExclude\"\n [showIconClass]=\"showIconClass\"\n ></c8y-icon-selector>\n</div>\n<div class=\"modal-footer separator text-center\">\n <button class=\"btn btn-default\" (click)=\"close()\">\n {{ 'Cancel' | translate }}\n </button>\n <button class=\"btn btn-primary\" [disabled]=\"!currentSelection\" (click)=\"saveChanges()\">\n {{ saveButtonLabel | translate }}\n </button>\n</div>\n","import { Injectable } from '@angular/core';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { IconSelectorModalComponent } from './icon-selector-modal/icon-selector-modal.component';\n\n@Injectable({ providedIn: 'root' })\nexport class IconSelectorService {\n constructor(protected modal: BsModalService) {}\n\n selectIcon(\n initialState: Partial<\n Pick<\n IconSelectorModalComponent,\n | 'currentSelection'\n | 'title'\n | 'saveButtonLabel'\n | 'iconCategoriesToExclude'\n | 'showIconClass'\n >\n > = {}\n ): Promise<string> {\n const modal = this.modal.show(IconSelectorModalComponent, {\n ignoreBackdropClick: true,\n keyboard: false,\n initialState,\n class: 'modal-lg'\n });\n const content = modal.content as IconSelectorModalComponent;\n return content.result;\n }\n}\n","import { Component, forwardRef, Input, Output, EventEmitter } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IconSelectorService } from '../icon-selector.service';\nimport { GainsightService, IconDirective, C8yTranslatePipe } from '@c8y/ngx-components';\nimport { PRODUCT_EXPERIENCE_ICON_SELECTOR } from '@c8y/ngx-components/icon-selector/model';\nimport { NgIf } from '@angular/common';\nimport { TooltipDirective } from 'ngx-bootstrap/tooltip';\n\n/**\n * A component which acts as a wrapper for the icon selector.\n *\n * Example 1:\n * ```\n <c8y-icon-selector-wrapper\n [selectedIcon]=\"'water'\"\n (onSelect)=\"selectIcon($event)\"\n ></c8y-icon-selector-wrapper>\n * ```\n * OR as a part of a formGroup\n * Example 2:\n * ```\n <c8y-icon-selector-wrapper name=\"icon\" formControlName=\"icon\">\n </c8y-icon-selector-wrapper>\n * ```\n */\n@Component({\n selector: 'c8y-icon-selector-wrapper',\n templateUrl: './icon-selector-wrapper.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IconSelectorWrapperComponent),\n multi: true\n }\n ],\n imports: [NgIf, IconDirective, TooltipDirective, C8yTranslatePipe]\n})\nexport class IconSelectorWrapperComponent implements ControlValueAccessor {\n @Input() canRemoveIcon = false;\n @Input() selectedIcon: string;\n /**\n * The displayed icon size, the value has to be multiple of 8.\n */\n @Input() iconSize = 32;\n @Output() onSelect: EventEmitter<string> = new EventEmitter();\n\n /**\n * @ignore\n */\n onTouched: () => void;\n\n constructor(\n private iconSelector: IconSelectorService,\n private gainsightService: GainsightService\n ) {}\n\n /**\n * @ignore\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: (value: string) => void = () => {};\n\n /**\n * @ignore\n * @param icon The value to update\n */\n writeValue(icon: string): void {\n this.selectedIcon = icon;\n }\n\n /**\n * @ignore\n * @param fn The function to register for changes\n */\n registerOnChange(fn: () => void): void {\n this.onChange = fn;\n }\n\n /**\n * @ignore\n * @param fn The function to register for changes\n */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n removeIcon() {\n this.onSelect.emit(undefined);\n }\n\n async openIconSelector() {\n try {\n this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE_ICON_SELECTOR.EVENTS.ICON_SELECTOR, {\n component: PRODUCT_EXPERIENCE_ICON_SELECTOR.COMPONENTS.ICON_SELECTOR_WRAPPER_COMPONENT,\n action: PRODUCT_EXPERIENCE_ICON_SELECTOR.ACTIONS.OPEN_ICON_SELECTOR\n });\n const icon = await this.iconSelector.selectIcon({\n currentSelection: this.selectedIcon\n });\n this.onChange(icon);\n this.selectedIcon = icon;\n this.onSelect.emit(icon);\n this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE_ICON_SELECTOR.EVENTS.ICON_SELECTOR, {\n component: PRODUCT_EXPERIENCE_ICON_SELECTOR.COMPONENTS.ICON_SELECTOR_WRAPPER_COMPONENT,\n action: PRODUCT_EXPERIENCE_ICON_SELECTOR.ACTIONS.ICON_SELECTED\n });\n } catch {\n // nothing to do\n }\n }\n}\n","<div class=\"d-flex a-i-center j-c-center p-relative\">\n <div\n class=\"icon-{{ iconSize }} text-center l-h-1 fit-w fit-h\"\n *ngIf=\"selectedIcon\"\n >\n <i\n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"selectedIcon\"\n ></i>\n </div>\n\n <div\n class=\"icon-{{ iconSize }} text-muted text-center a-s-stretch fit-w\"\n style=\"border: 2px dashed var(--c8y-root-component-border-color)\"\n *ngIf=\"!selectedIcon\"\n >\n <span class=\"d-flex a-i-center j-c-center text-12 fit-h\">\n <em>{{ 'Auto' | translate }}</em>\n </span>\n </div>\n <div class=\"showOnHover d-flex j-c-center p-absolute fit-h fit-w\">\n <button\n class=\"btn btn-dot btn-icon btn-sm m-0\"\n title=\"{{ 'Select icon' | translate }}\"\n [attr.aria-label]=\"'Select icon' | translate\"\n type=\"button\"\n (click)=\"openIconSelector()\"\n *ngIf=\"!selectedIcon\"\n >\n {{ 'Select' | translate }}\n </button>\n <button\n class=\"btn btn-dot btn-sm btn-icon m-0\"\n [attr.aria-label]=\"'Change icon' | translate\"\n tooltip=\"{{ 'Change icon' | translate }}\"\n placement=\"top\"\n [delay]=\"500\"\n container=\"body\"\n type=\"button\"\n *ngIf=\"selectedIcon\"\n (click)=\"openIconSelector()\"\n >\n <i [c8yIcon]=\"'replace'\"></i>\n </button>\n <button\n class=\"btn btn-dot btn-dot--danger btn-icon btn-sm m-0\"\n [attr.aria-label]=\"'Remove icon and use default icon' | translate\"\n tooltip=\"{{ 'Remove icon and use default icon' | translate }}\"\n placement=\"top\"\n [delay]=\"500\"\n container=\"body\"\n type=\"button\"\n *ngIf=\"selectedIcon && canRemoveIcon\"\n (click)=\"removeIcon()\"\n >\n <i [c8yIcon]=\"'trash'\"></i>\n </button>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule, DropAreaModule } from '@c8y/ngx-components';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { IconNamePipe } from './icon-name.pipe';\nimport { IconSelectorModalComponent } from './icon-selector-modal/icon-selector-modal.component';\nimport { IconSelectorComponent } from './icon-selector.component';\nimport { IconSelectorWrapperComponent } from './icon-selector-wrapper/icon-selector-wrapper.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n DropAreaModule,\n TooltipModule,\n IconSelectorComponent,\n IconSelectorModalComponent,\n IconNamePipe,\n IconSelectorWrapperComponent\n ],\n exports: [\n IconSelectorComponent,\n IconSelectorModalComponent,\n IconNamePipe,\n IconSelectorWrapperComponent\n ]\n})\nexport class IconSelectorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.IconSelectorService"],"mappings":"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"}