@c8y/ngx-components 1023.92.0 → 1023.97.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/ai/agents/scada/index.d.ts +10 -0
  2. package/ai/agents/scada/index.d.ts.map +1 -0
  3. package/ai/ai-chat/index.d.ts +1 -1
  4. package/ai/ai-chat/index.d.ts.map +1 -1
  5. package/alarms/index.d.ts.map +1 -1
  6. package/computed-asset-properties/index.d.ts +89 -1
  7. package/computed-asset-properties/index.d.ts.map +1 -1
  8. package/context-dashboard/device/view/index.d.ts +24 -1
  9. package/context-dashboard/device/view/index.d.ts.map +1 -1
  10. package/context-dashboard/index.d.ts +27 -11
  11. package/context-dashboard/index.d.ts.map +1 -1
  12. package/echart/index.d.ts.map +1 -1
  13. package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs +2 -2
  14. package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs.map +1 -1
  15. package/fesm2022/c8y-ngx-components-ai-agents-scada.mjs +893 -0
  16. package/fesm2022/c8y-ngx-components-ai-agents-scada.mjs.map +1 -0
  17. package/fesm2022/c8y-ngx-components-ai-ai-chat.mjs +1 -0
  18. package/fesm2022/c8y-ngx-components-ai-ai-chat.mjs.map +1 -1
  19. package/fesm2022/c8y-ngx-components-alarms.mjs +12 -5
  20. package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
  21. package/fesm2022/c8y-ngx-components-asset-properties.mjs +2 -2
  22. package/fesm2022/c8y-ngx-components-asset-properties.mjs.map +1 -1
  23. package/fesm2022/{c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-Cy9R6Ixb.mjs → c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-CHZX7ALq.mjs} +10 -9
  24. package/fesm2022/c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-CHZX7ALq.mjs.map +1 -0
  25. package/fesm2022/{c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-LrmlAh6V.mjs → c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-DgWGXzEx.mjs} +2 -2
  26. package/fesm2022/{c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-LrmlAh6V.mjs.map → c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-DgWGXzEx.mjs.map} +1 -1
  27. package/fesm2022/{c8y-ngx-components-computed-asset-properties-last-measurement-config.component-f1u1TcCl.mjs → c8y-ngx-components-computed-asset-properties-last-measurement-config.component-yfc45-l_.mjs} +2 -2
  28. package/fesm2022/{c8y-ngx-components-computed-asset-properties-last-measurement-config.component-f1u1TcCl.mjs.map → c8y-ngx-components-computed-asset-properties-last-measurement-config.component-yfc45-l_.mjs.map} +1 -1
  29. package/fesm2022/c8y-ngx-components-computed-asset-properties.mjs +1 -1
  30. package/fesm2022/c8y-ngx-components-context-dashboard-device-view.mjs +21 -3
  31. package/fesm2022/c8y-ngx-components-context-dashboard-device-view.mjs.map +1 -1
  32. package/fesm2022/c8y-ngx-components-context-dashboard-devicemanagement.mjs +2 -2
  33. package/fesm2022/c8y-ngx-components-context-dashboard-devicemanagement.mjs.map +1 -1
  34. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +69 -51
  35. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  36. package/fesm2022/c8y-ngx-components-echart.mjs +52 -36
  37. package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
  38. package/fesm2022/c8y-ngx-components-global-context.mjs +112 -22
  39. package/fesm2022/c8y-ngx-components-global-context.mjs.map +1 -1
  40. package/fesm2022/c8y-ngx-components-map.mjs +15 -0
  41. package/fesm2022/c8y-ngx-components-map.mjs.map +1 -1
  42. package/fesm2022/c8y-ngx-components-repository-configuration.mjs +292 -115
  43. package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
  44. package/fesm2022/c8y-ngx-components-repository-firmware.mjs +2 -2
  45. package/fesm2022/c8y-ngx-components-repository-firmware.mjs.map +1 -1
  46. package/fesm2022/c8y-ngx-components-repository-software.mjs +1 -1
  47. package/fesm2022/c8y-ngx-components-repository-software.mjs.map +1 -1
  48. package/fesm2022/c8y-ngx-components-upgrade.mjs +12 -1
  49. package/fesm2022/c8y-ngx-components-upgrade.mjs.map +1 -1
  50. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs +2 -1
  51. package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs.map +1 -1
  52. package/fesm2022/c8y-ngx-components-widgets-definitions-scada.mjs +169 -0
  53. package/fesm2022/c8y-ngx-components-widgets-definitions-scada.mjs.map +1 -0
  54. package/fesm2022/c8y-ngx-components-widgets-definitions.mjs +2 -1
  55. package/fesm2022/c8y-ngx-components-widgets-definitions.mjs.map +1 -1
  56. package/fesm2022/c8y-ngx-components-widgets-exports.mjs +8 -1
  57. package/fesm2022/c8y-ngx-components-widgets-exports.mjs.map +1 -1
  58. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +2 -2
  59. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
  60. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +3 -3
  61. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
  62. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-list.mjs +2 -2
  63. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-list.mjs.map +1 -1
  64. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +2 -2
  65. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs.map +1 -1
  66. package/fesm2022/c8y-ngx-components-widgets-implementations-events.mjs +2 -2
  67. package/fesm2022/c8y-ngx-components-widgets-implementations-events.mjs.map +1 -1
  68. package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs +90 -32
  69. package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs.map +1 -1
  70. package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs +2 -2
  71. package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs.map +1 -1
  72. package/fesm2022/c8y-ngx-components-widgets-implementations-scada.mjs +1698 -0
  73. package/fesm2022/c8y-ngx-components-widgets-implementations-scada.mjs.map +1 -0
  74. package/fesm2022/c8y-ngx-components.mjs +220 -45
  75. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  76. package/global-context/index.d.ts +58 -3
  77. package/global-context/index.d.ts.map +1 -1
  78. package/index.d.ts +79 -22
  79. package/index.d.ts.map +1 -1
  80. package/locales/de.po +165 -3
  81. package/locales/es.po +165 -3
  82. package/locales/fr.po +165 -3
  83. package/locales/ja_JP.po +165 -3
  84. package/locales/ko.po +165 -3
  85. package/locales/locales.pot +156 -3
  86. package/locales/nl.po +165 -3
  87. package/locales/pl.po +165 -3
  88. package/locales/pt_BR.po +165 -3
  89. package/locales/zh_CN.po +165 -3
  90. package/locales/zh_TW.po +165 -3
  91. package/map/index.d.ts.map +1 -1
  92. package/package.json +1 -1
  93. package/repository/configuration/index.d.ts +64 -39
  94. package/repository/configuration/index.d.ts.map +1 -1
  95. package/upgrade/index.d.ts +1 -0
  96. package/upgrade/index.d.ts.map +1 -1
  97. package/widgets/cockpit-exports/index.d.ts +6 -0
  98. package/widgets/cockpit-exports/index.d.ts.map +1 -1
  99. package/widgets/definitions/index.d.ts +1 -0
  100. package/widgets/definitions/index.d.ts.map +1 -1
  101. package/widgets/definitions/scada/index.d.ts +6 -0
  102. package/widgets/definitions/scada/index.d.ts.map +1 -0
  103. package/widgets/device-management-exports/index.d.ts +6 -0
  104. package/widgets/device-management-exports/index.d.ts.map +1 -1
  105. package/widgets/exports/index.d.ts +8 -1
  106. package/widgets/exports/index.d.ts.map +1 -1
  107. package/widgets/implementations/html-widget/index.d.ts +30 -12
  108. package/widgets/implementations/html-widget/index.d.ts.map +1 -1
  109. package/widgets/implementations/scada/index.d.ts +415 -0
  110. package/widgets/implementations/scada/index.d.ts.map +1 -0
  111. package/fesm2022/c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-Cy9R6Ixb.mjs.map +0 -1
@@ -0,0 +1,10 @@
1
+ import { ClientAgentDefinition } from '@c8y/ngx-components/ai';
2
+
3
+ declare const SCADA_OUTPUT_TAG_NAME = "c8y-scada-output";
4
+ declare const SVG_EXTRACT_TAG_NAME = "c8y-svg-extract";
5
+ declare const MAPPING_EXTRACT_TAG_NAME = "c8y-mapping-extract";
6
+
7
+ declare const SCADA_SVG_AGENT_DEFINITION: ClientAgentDefinition;
8
+
9
+ export { MAPPING_EXTRACT_TAG_NAME, SCADA_OUTPUT_TAG_NAME, SCADA_SVG_AGENT_DEFINITION, SVG_EXTRACT_TAG_NAME };
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sources":["../../../../ai/agents/scada/scada-svg.agent.c8y.ts","../../../../ai/agents/scada/scada-svg-agent.definition.ts"],"sourcesContent":[null,null],"names":[],"mappings":";;AAEA,cAAA,qBAAA;AACA,cAAA,oBAAA;AACA,cAAA,wBAAA;;ACOA,cAAA,0BAAA,EAAA,qBAAA;;;;"}
@@ -272,7 +272,7 @@ declare class AiChatComponent {
272
272
  inputTokens: number;
273
273
  outputTokens: number;
274
274
  totalTokens: number;
275
- };
275
+ } | null;
276
276
  /**
277
277
  * Emitted when the user sends a message.
278
278
  * Provides an AIMessage object with role, content, and timestamp.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sources":["../../../ai/ai-chat/ai-chat-assistant-message.component.ts","../../../ai/ai-chat/ai-chat-assistant-part.component.ts","../../../ai/ai-chat/ai-chat-message-action.component.ts","../../../ai/ai-chat/ai-chat-message.component.ts","../../../ai/ai-chat/ai-chat-suggestion.component.ts","../../../ai/ai-chat/ai-chat-tool-call.component.ts","../../../ai/ai-chat/ai-chat.component.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":[],"mappings":";;;;;;AAqBA;;;AAGG;;;;;;;;AAUF;AAED;;;AAGG;AACH;AAcE;;;AAGG;;AAGH;;AAEG;;AAGH;;;AAGG;AACH;AAEA;;AAEG;AACH;AAEA;;AA2GiB;AACE;AAxGjB;;AAYF;;;AAGG;AACH;AAIA;;;;AAIG;AACH;AA8BA;AAQA;;;;;AAKG;AACH;;;AAuBA;;;;;;;;;AASG;AACH;;;AAGC;AA8DD;;;;;;AAMG;AACH;;;AA0BD;;AC1QD;AACA;;;;AAuBE;;;AAGG;;;AAIH;;;;AAKD;;AC7CD;;;AAGG;AACH;AAOE;;AAEG;AAEH;AAEA;;AAEG;AAEH;AAEA;;AAEG;AAEH;AAEA;;AAEG;;AAIH;;AAEG;AAEH;;;AACD;;ACpCD;;;;;AAKG;AACH;;;AAYE;AAEA;AAIA;;;;AAIG;;AAUH;;;;AAIG;;;;AAgBJ;;AC9DD;;;AAGG;AACH;AAQE;;AAEG;;AAGH;;AAEG;;AAGH;;AAEG;;AAGH;;AAEG;;AAGH;;AAEG;;AAGH;;AAEG;;AAGH;;AAEG;;;;AAQJ;;ACjDD;AAcE;;;AAGG;;AAGH;;AAEG;;AAGH;;AAEG;;AAGH;;AAEG;;AAGH;;AAEG;;AAEH;;AAEG;;AAGH;;AAEG;;AAGH;AACA;AAEA;AAEA;;;;AAgCD;;ACpED;;;;AAIG;AACH;AAoBE;;;AAGG;AAEH;AAEA;;AAEG;AAEH;AAEA;;AAEG;AAEH;AAEA;;;;AAIG;AAEH;;AAGS;AAEA;;;;;AAMT;;;AAGG;AAEH;AAEA;;AAEG;AAEH;AAEA;;AAEG;;AAGH;;AAEG;AACH;;;;AAoCA;;;;;AAKG;;;AASH;;;;AAIG;AACH;AAWA;;;AAGG;AACH;;;AAGD;;;"}
1
+ {"version":3,"file":"index.d.ts","sources":["../../../ai/ai-chat/ai-chat-assistant-message.component.ts","../../../ai/ai-chat/ai-chat-assistant-part.component.ts","../../../ai/ai-chat/ai-chat-message-action.component.ts","../../../ai/ai-chat/ai-chat-message.component.ts","../../../ai/ai-chat/ai-chat-suggestion.component.ts","../../../ai/ai-chat/ai-chat-tool-call.component.ts","../../../ai/ai-chat/ai-chat.component.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":[],"mappings":";;;;;;AAqBA;;;AAGG;;;;;;;;AAUF;AAED;;;AAGG;AACH;AAcE;;;AAGG;;AAGH;;AAEG;;AAGH;;;AAGG;AACH;AAEA;;AAEG;AACH;AAEA;;AA2GiB;AACE;AAxGjB;;AAYF;;;AAGG;AACH;AAIA;;;;AAIG;AACH;AA8BA;AAQA;;;;;AAKG;AACH;;;AAuBA;;;;;;;;;AASG;AACH;;;AAGC;AA8DD;;;;;;AAMG;AACH;;;AA0BD;;AC1QD;AACA;;;;AAuBE;;;AAGG;;;AAIH;;;;AAKD;;AC7CD;;;AAGG;AACH;AAOE;;AAEG;AAEH;AAEA;;AAEG;AAEH;AAEA;;AAEG;AAEH;AAEA;;AAEG;;AAIH;;AAEG;AAEH;;;AACD;;ACpCD;;;;;AAKG;AACH;;;AAYE;AAEA;AAIA;;;;AAIG;;AAUH;;;;AAIG;;;;AAgBJ;;AC9DD;;;AAGG;AACH;AAQE;;AAEG;;AAGH;;AAEG;;AAGH;;AAEG;;AAGH;;AAEG;;AAGH;;AAEG;;AAGH;;AAEG;;AAGH;;AAEG;;;;AAQJ;;ACjDD;AAcE;;;AAGG;;AAGH;;AAEG;;AAGH;;AAEG;;AAGH;;AAEG;;AAGH;;AAEG;;AAEH;;AAEG;;AAGH;;AAEG;;AAGH;AACA;AAEA;AAEA;;;;AAgCD;;ACpED;;;;AAIG;AACH;AAoBE;;;AAGG;AAEH;AAEA;;AAEG;AAEH;AAEA;;AAEG;AAEH;AAEA;;;;AAIG;AAEH;;AAGS;AAEA;;;;AAIR;AAED;;;AAGG;AAEH;AAEA;;AAEG;AAEH;AAEA;;AAEG;;AAGH;;AAEG;AACH;;;;AAoCA;;;;;AAKG;;;AASH;;;;AAIG;AACH;AAWA;;;AAGG;AACH;;;AAGD;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sources":["../../alarms/alarms.model.ts","../../alarms/alarm-details-custom-button/alarm-details-button.service.ts","../../alarms/alarm-details-custom-button/alarm-details-button.pipe.ts","../../alarms/alarm-details.service.ts","../../alarms/alarms-activity-tracker.service.ts","../../alarms/alarms-view.service.ts","../../alarms/ng1-smart-rules-upgrade.service.ts","../../alarms/alarm-details.component.ts","../../alarms/alarm-empty.component.ts","../../alarms/alarm-info.component.ts","../../alarms/alarm-list-custom-indicator/alarm-list-indicator.service.ts","../../alarms/alarm-list-custom-indicator/alarm-list-indicator.pipe.ts","../../alarms/alarm-severities-to-title.pipe.ts","../../alarms/alarm-severity-to-icon.pipe.ts","../../alarms/alarm-severity-to-icon-class.pipe.ts","../../alarms/alarm-severity-to-label.pipe.ts","../../alarms/alarm-status-to-icon.pipe.ts","../../alarms/alarm-status-to-label.pipe.ts","../../alarms/alarms-filter.component.ts","../../alarms/alarms-icon.component.ts","../../alarms/alarms-interval-refresh.component.ts","../../alarms/alarms-list.component.ts","../../alarms/alarms.component.ts","../../alarms/alarms.helper.ts","../../alarms/audit-changes-message.pipe.ts","../../alarms/alarms-date-filter.component.ts","../../alarms/alarms-type-filter.component.ts","../../alarms/alarms.module.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAuBE;;;AAGG;;AAGH;;;;AAIG;AACH;AAEA;;;;AAIG;AACH;AACD;AAED;AAEM;;;AAEN;;;;;AAMM;AAEN;;AAEG;AACH;AAMA;;;;;;AAOA;AAEM;AACN;;AAEG;AACH;AAOM;;;;;AAMN;;AAEG;AACH;AAKA;AAQM;;AAEJ;;;AAKF;AAEA;AAOA;AAMA;AAEM;AACJ;;AAGF;;AAEG;AACH;AAiBA;AAEA;;AAEG;AACG;AACJ;;AAEG;;AAEH;;;;AAIG;;AAEH;;;AAGG;;AAEH;;;;;;;AAOG;;;;;;;;;;AAWH;;;;AAIG;AACH;;AAED;;;AAIA;AAEK;;;;AAIL;AAEK;AAEN;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA;AAEE;AACE;;;AAGC;AAED;AACE;;;;;AAKG;AACH;AAID;AAED;AACE;;;;AAIG;;AAEJ;AACF;AACF;;ACzQD;AAMI;AACA;AADQ;AAIV;AAsBA;;;AAMD;;ACxCD;AAWc;AAAQ;AAEpB;;;AAGD;;AClBD;AAMc;AAFZ;AAEoB;AAEpB;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;;AAoBH;;;;;;;;;;;;;;;;;AAiBG;;AAcH;;;;;;;;;;;;;;;;;;;;AAoBG;;AAyBH;;;AAgBD;;AChJD;AAEE;AACA;;AAGA;AACA;;;AAIA;AAKA;AAOA;AAIA;;;;AAiBD;;ACpBD;;;;;;;;AAQG;AACH;AAiBI;AACA;AACA;AACA;AACA;AAjBF;;;;;AAMA;AACA;AACA;;AAKU;AAYV;;AAEG;AACH;AAIA;;;;;;;;;AASG;AACH;;AAgCA;;;AAGG;AACH;AAIA;;;;;;;;;AASG;AACG;AAgBN;;;;;AAKG;AACH;AAKA;;;;;;AAMG;AACH;AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;AACG;;;AA2BN;;;;;AAKG;;AAsBH;;;;;AAKG;AACH;AAIA;;;AAGG;;AASH;;;;AAIG;;AAOH;;;;;AAKG;AACH;AAYA;;;;;;;;AAQG;AACH;AAWA;;;;;;;AAOG;AACH;;;AAOD;;ACvVD;;;;;;;AAOG;AACH;;AAEE;AACA;AACD;AAED;AAIA;;;;;;AC0DA;AAgLI;AACA;AACA;AACA;AACA;AACA;AACY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AA3JF;;;;;;AAMG;AACM;AAET;;;;;;;;;AASG;AACM;;;;;;;;;;;;AAaT;;;;;;AAMG;AACM;AAET;;;;;;;;;AASG;AACM;;;;;;AAOT;;AAEG;AACM;;;;;;AAOT;;;;;AAA2C;;;AAG3C;;;;;;;;;;;;;;;;;;;;;;AAA+D;AAE/D;;;AAGG;AACH;AACA;;;AAGG;AACH;;;AAGA;;;;;;;;AAQG;;AAEH;AAEA;;;;AAIG;;AAEH;;AAEG;AACH;;AAGA;;AAEG;AACH;AACA;;AAEG;;AAGH;;AAEG;;AAGH;;AAEG;;AAEH;;AAEG;;AAEH;;AAEG;;;AAKH;;;AAoBM;;AAgDN;;AA2BA;AAUA;;;;AAIG;;AASH;;;;;;;;;;;;;;;AAeG;AACG;;AAgDA;;AAmDN;;;;;;;;;;;AAWG;;AAWH;AAIA;AAWA;AAMA;AAuBA;AAeA;;;;;;;;;;;;AAYG;AACH;AAeA;;;;;;;;;;;;;;AAcG;;;AAmCH;AAIA;AAcA;AAqGA;;;AAyCD;;AC5xBD;;;AAKmC;;ACOnC;AAaW;AACP;AACA;AATF;;AAGA;;;;;;AAiBD;;ACjCD;AAMI;AACA;AADQ;;AA0BV;;;AAMD;;ACxCD;AAWc;AAAQ;;;;AAKrB;;ACjBD;;;;;;AAMG;AACH;AAIc;AAFZ;AAEoB;AACpB;;;;;AAKG;AACH;AAaA;;;;;;AAMG;AACH;;;AAGD;;AC1CD;;;;;;;AAOG;AACH;AAKE;;;;;AAKG;;;;AAKJ;;ACxBD;AAKE;;;AA2BD;;AC/BD;;AAEG;AACH;AAEc;AAAQ;AAEpB;;;;AAIG;AACH;;;AAID;;ACjBD;;;;;;;AAOG;AACH;AAEE;;;;;AAKG;;;;AAIJ;;AClBD;;AAEG;AACH;AAEc;AAAQ;AAEpB;;;;AAIG;AACH;;;AAGD;;AC6BD;AAuDI;AACA;AACA;AACA;AACA;AArCF;AAGA;AAEA;;;AAGG;AAEH;;;;;;;AAK4D;;AAE5D;;AAEA;;;AAGA;AACA;;;;;;AACqD;;;;;;;;;;;;;;;;;;;;;;;AACoB;;;;;;AAQ/D;AAOV;AAmBA;AAMA;AAKA;AASA;AA0BA;AASA;AAMA;AAMA;AAIA;;;;;;;;AAQG;AACG;AAmCN;AAIA;AAQA;AAIA;AASA;AAOA;AASA;;;AAYD;;AC7RD;;;AAuBE;AACA;AAEA;AACA;AACA;AAEA;;;AAKD;;ACtBD;AA6FI;AACA;;;;;AAtEO;AACT;;AAEG;AAEH;AACA;;;;;;;;;;AAUG;AACH;AA0BA;;;;AAIG;;AAIH;;AAEG;AAEH;;;;;AAIqC;;AAErC;;;;AAIG;;AAIO;AAIV;AAIA;AAKA;AAKA;AAIA;;AAYA;AAIA;AAOA;AAOA;AAOA;;;AAOD;;AC7HD;AAwHI;AACA;AACA;AACA;;;AA3FF;;AAEG;AAEH;;AAA8C;AAErC;AAET;;AAEG;;AAIH;;AAEG;;AAIH;;;AAGG;;AASH;;;AAGG;AAEH;AAEA;;AAEG;AACM;AAET;;AAEG;AAEH;AAEA;;AAEG;AAEH;AAEA;;AAEG;AACH;AACA;;AAKA;AACA;;;;AAIG;AACH;AAEA;AAEA;;;AAaU;AAQV;;;;;;AAMG;AACH;AAUA;AAiBA;AAiBA;AAKA;AAIA;AAQA;AAKA;;;AAaD;;AC1ND;AAmDW;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AA5BF;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;AAMA;;AAIS;;AAwDT;;AAsBA;;AAiBM;AAKA;AAwBN;AAKM;AAIN;AAIA;AAIA;;;;AA4EA;AAgBA;;;AAcD;;ACrVD;AAWA;;AClBA;;;AAGG;AACH;AAEc;AAAQ;AAEpB;;;;;;;;;;AAUG;AACH;;;AAgBD;;ACOD;AAuDI;AACA;AACA;AACA;;;;AAxBO;AACA;AACT;;AAEG;AACM;AACT;;;;;AAOU;;;AAKV;AAGU;AAOV;;AAsCA;AAKA;AA8BA;AAUA;;AAQA;AAiBA;AAOA;AAqBA;;;AASD;;AC5ND;AA2CI;AACA;AACA;AACA;AAxBF;;;AASA;;AAGA;;;;;AASU;AAMV;;;AA8BA;;;;;;;;;AAmFA;AAKA;;AAiBA;AAWA;;;AAGD;;AC5LD;;;;;AA4DC;;;"}
1
+ {"version":3,"file":"index.d.ts","sources":["../../alarms/alarms.model.ts","../../alarms/alarm-details-custom-button/alarm-details-button.service.ts","../../alarms/alarm-details-custom-button/alarm-details-button.pipe.ts","../../alarms/alarm-details.service.ts","../../alarms/alarms-activity-tracker.service.ts","../../alarms/alarms-view.service.ts","../../alarms/ng1-smart-rules-upgrade.service.ts","../../alarms/alarm-details.component.ts","../../alarms/alarm-empty.component.ts","../../alarms/alarm-info.component.ts","../../alarms/alarm-list-custom-indicator/alarm-list-indicator.service.ts","../../alarms/alarm-list-custom-indicator/alarm-list-indicator.pipe.ts","../../alarms/alarm-severities-to-title.pipe.ts","../../alarms/alarm-severity-to-icon.pipe.ts","../../alarms/alarm-severity-to-icon-class.pipe.ts","../../alarms/alarm-severity-to-label.pipe.ts","../../alarms/alarm-status-to-icon.pipe.ts","../../alarms/alarm-status-to-label.pipe.ts","../../alarms/alarms-filter.component.ts","../../alarms/alarms-icon.component.ts","../../alarms/alarms-interval-refresh.component.ts","../../alarms/alarms-list.component.ts","../../alarms/alarms.component.ts","../../alarms/alarms.helper.ts","../../alarms/audit-changes-message.pipe.ts","../../alarms/alarms-date-filter.component.ts","../../alarms/alarms-type-filter.component.ts","../../alarms/alarms.module.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
@@ -1,7 +1,95 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { MeasurementRealtimeService, ManagedObjectRealtimeService, AlarmRealtimeService, EventRealtimeService, OperationRealtimeService } from '@c8y/ngx-components';
3
+ import { IManagedObject } from '@c8y/client';
4
+ import { AssetPropertyType } from '@c8y/ngx-components/asset-properties';
5
+
6
+ interface FieldbusDevice extends IManagedObject {
7
+ c8y_ModbusDevice?: {
8
+ address: number;
9
+ protocol: string;
10
+ ipAddress: string;
11
+ /** Reference URL to Fieldbus device type (e.g. /inventory/managedObjects/12345). */
12
+ type: string;
13
+ };
14
+ c8y_CoilStatus?: {
15
+ [name: string]: number;
16
+ };
17
+ c8y_RegisterStatus?: {
18
+ [name: string]: number;
19
+ };
20
+ }
21
+ interface FieldbusDeviceType extends IManagedObject {
22
+ name: string;
23
+ type: string;
24
+ fieldbusType: string;
25
+ c8y_Coils?: FieldbusCoil[];
26
+ c8y_Registers?: FieldbusRegister[];
27
+ }
28
+ interface FieldbusCoil {
29
+ number: number;
30
+ name: string;
31
+ input: boolean;
32
+ statusMapping: {
33
+ status: 'read' | 'write';
34
+ };
35
+ enumValues?: {
36
+ [value: number]: string;
37
+ };
38
+ alarmMapping?: {
39
+ severity: 'CRITICAL' | 'MAJOR' | 'MINOR' | 'WARNING';
40
+ type: string;
41
+ text: string;
42
+ raiseAlarmTemplate: number;
43
+ };
44
+ }
45
+ interface FieldbusRegister {
46
+ number: number;
47
+ input: boolean;
48
+ startBit: number;
49
+ noBits: number;
50
+ name: string;
51
+ multiplier: number;
52
+ divisor: number;
53
+ decimalPlaces: number;
54
+ unit: string;
55
+ signed: boolean;
56
+ min: number;
57
+ max: number;
58
+ category: string;
59
+ measurementMapping?: {
60
+ series: string;
61
+ sendMeasurementTemplate: number;
62
+ type: string;
63
+ };
64
+ statusMapping?: {
65
+ status: 'read' | 'write';
66
+ };
67
+ enumValues?: {
68
+ [value: number]: string;
69
+ };
70
+ eventMapping?: {
71
+ eventTemplate: number;
72
+ type: string;
73
+ text: string;
74
+ };
75
+ }
76
+ interface LegacyFieldbusProperty {
77
+ fieldbus: true;
78
+ id: string;
79
+ keyPath: [string, string];
80
+ label: string;
81
+ }
82
+
83
+ declare class FieldbusService {
84
+ private inventory;
85
+ private computedProperties;
86
+ getDeviceTypeOf(fieldbusDevice: FieldbusDevice): Promise<FieldbusDeviceType>;
87
+ migrateFieldbusProperty(legacyProperty: LegacyFieldbusProperty, fieldbusDevice: FieldbusDevice): Promise<AssetPropertyType>;
88
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FieldbusService, never>;
89
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<FieldbusService>;
90
+ }
3
91
 
4
92
  declare const computedAssetPropertiesProviders: (typeof MeasurementRealtimeService | _angular_core.ValueProvider | _angular_core.ClassProvider | _angular_core.ExistingProvider | typeof ManagedObjectRealtimeService | typeof AlarmRealtimeService | typeof EventRealtimeService | typeof OperationRealtimeService)[];
5
93
 
6
- export { computedAssetPropertiesProviders };
94
+ export { FieldbusService, computedAssetPropertiesProviders };
7
95
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sources":["../../computed-asset-properties/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAmBA,cAAA,gCAAA,UAAA,0BAAA,GAA6C,aAAA,CAAA,aAAA,GAAA,aAAA,CAAA,aAAA,GAAA,aAAA,CAAA,gBAAA,UAAA,4BAAA,UAAA,oBAAA,UAAA,oBAAA,UAAA,wBAAA;;;;"}
1
+ {"version":3,"file":"index.d.ts","sources":["../../computed-asset-properties/fieldbus-item-status/fieldbus-item-status.model.ts","../../computed-asset-properties/fieldbus-item-status/fieldbus.service.ts","../../computed-asset-properties/index.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":";;;;;AAcM;AACJ;;;;;;;AAOA;AACE;;AAEF;AACE;;AAEH;AAEK;;;;AAIJ;AACA;AACD;;;;;AAMC;AACE;;AAEF;AACE;;AAEF;;;;;;AAMD;;;;;;;;;;;;;;;AAgBC;;;;;AAKA;AACE;;AAEF;AACE;;AAEF;;;;;AAKD;;;;AAKC;;AAED;;ACpFD;;;;AA8BQ;;;AAkCP;;ACrDD;;"}
@@ -13,11 +13,34 @@ declare class DeviceDashboardGuard {
13
13
  static ɵprov: i0.ɵɵInjectableDeclaration<DeviceDashboardGuard>;
14
14
  }
15
15
 
16
+ interface DeviceDashboardGuardOptions {
17
+ /**
18
+ * When `true`, only dashboards that explicitly list the current app key in
19
+ * `c8y_AppliedToApplications` are shown. Legacy dashboards that have no
20
+ * `c8y_AppliedToApplications` fragment are excluded.
21
+ * Defaults to `false` (legacy dashboards are included).
22
+ */
23
+ strictAppFilter?: boolean;
24
+ }
25
+ /**
26
+ * Functional guard factory for device context dashboards.
27
+ *
28
+ * @example
29
+ * // Standard usage – equivalent to DeviceDashboardGuard
30
+ * canActivate: [deviceDashboardGuard()]
31
+ *
32
+ * @example
33
+ * // App-strict mode – only dashboards bound to the app using the factory are shown
34
+ * canActivate: [deviceDashboardGuard({ strictAppFilter: true })]
35
+ */
36
+ declare function deviceDashboardGuard(options?: DeviceDashboardGuardOptions): (route: ActivatedRouteSnapshot) => Observable<boolean | Tab[]>;
37
+
16
38
  declare class ViewDeviceContextDashboardModule {
17
39
  static ɵfac: i0.ɵɵFactoryDeclaration<ViewDeviceContextDashboardModule, never>;
18
40
  static ɵmod: i0.ɵɵNgModuleDeclaration<ViewDeviceContextDashboardModule, never, [typeof i1.ContextDashboardModule], never>;
19
41
  static ɵinj: i0.ɵɵInjectorDeclaration<ViewDeviceContextDashboardModule>;
20
42
  }
21
43
 
22
- export { DeviceDashboardGuard, ViewDeviceContextDashboardModule };
44
+ export { DeviceDashboardGuard, ViewDeviceContextDashboardModule, deviceDashboardGuard };
45
+ export type { DeviceDashboardGuardOptions };
23
46
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sources":["../../../../context-dashboard/device/view/device-dashboard.guard.ts","../../../../context-dashboard/device/view/view-device-context-dashboard.module.ts"],"sourcesContent":[null,null],"names":[],"mappings":";;;;;;;AASA,cAAA,oBAAA;AAEc;AAAQ,yCAAA,uBAAA;;;;AAQrB;;ACVD,cAAA,gCAAA;;;;AAegD;;;;"}
1
+ {"version":3,"file":"index.d.ts","sources":["../../../../context-dashboard/device/view/device-dashboard.guard.ts","../../../../context-dashboard/device/view/device-dashboard-guard.factory.ts","../../../../context-dashboard/device/view/view-device-context-dashboard.module.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":";;;;;;;AASA;AAEc;AAAQ;;;;AAQrB;;;ACTC;;;;;AAKG;;AAEJ;AAED;;;;;;;;;;AAUG;AACH;;ACrBA;;;;AAegD;;;"}
@@ -408,7 +408,9 @@ declare class ContextDashboardService {
408
408
  update(dashboard: ContextDashboardManagedObject, context?: ContextData): Promise<ContextDashboardManagedObject>;
409
409
  delete(dashboard: ContextDashboardManagedObject, withConfirmation?: boolean): Promise<void>;
410
410
  updateDashboardHistory(dashboard: Partial<ContextDashboardManagedObject>, dashboardCfg: ContextDashboard): Partial<ContextDashboardManagedObject>;
411
- activateDashboards(route: ActivatedRouteSnapshot, types: ContextDashboardType[]): Observable$1<boolean | Tab[]>;
411
+ activateDashboards(route: ActivatedRouteSnapshot, types: ContextDashboardType[], options?: {
412
+ strictAppFilter?: boolean;
413
+ }): Observable$1<boolean | Tab[]>;
412
414
  getDashboard(name: string, defaultWidgets: Widget[]): Observable$1<ContextDashboardManagedObject>;
413
415
  updateNavigatorItem(mo: IManagedObject): void;
414
416
  navigateToDashboard(dashboardMO: ContextDashboardManagedObject, isNewDashboard?: boolean): Promise<void>;
@@ -433,7 +435,9 @@ declare class ContextDashboardService {
433
435
  getFilteredDashboardStyles(styleList: string[]): string[];
434
436
  getStyling(styleList: any, styleName: any, defaultValue: any): any;
435
437
  mapWidgets(widgets: Widget[]): any;
436
- getDashboard$(dashboardIdOrName: any, dashboardType: ContextDashboardType[], mo?: IManagedObject): Observable$1<ContextDashboardManagedObject>;
438
+ getDashboard$(dashboardIdOrName: any, dashboardType: ContextDashboardType[], mo?: IManagedObject, options?: {
439
+ strictAppFilter?: boolean;
440
+ }): Observable$1<ContextDashboardManagedObject>;
437
441
  pasteDashboard(newContext: DashboardContext): Promise<void>;
438
442
  /**
439
443
  * Creates fragment that associates dashboards with device/asset. It consists of three elements:
@@ -462,7 +466,9 @@ declare class ContextDashboardService {
462
466
  createReport(reportCfg: Partial<IManagedObject>): Promise<_c8y_client.IResult<IManagedObject>>;
463
467
  addReportNavigatorNode(report: IManagedObject): void;
464
468
  getContextForGS(mo: IManagedObject): string | null;
465
- getContextDashboards(mo: IManagedObject, dashboardType: ContextDashboardType[]): Promise<IResultList<IManagedObject>>;
469
+ getContextDashboards(mo: IManagedObject, dashboardType: ContextDashboardType[], options?: {
470
+ strictAppFilter?: boolean;
471
+ }): Promise<IResultList<IManagedObject>>;
466
472
  /**
467
473
  * Creates query for application bound dashboards.
468
474
  * If application key is not available, it returns empty object.
@@ -1123,7 +1129,7 @@ declare class TypeDashboardInfoComponent implements OnInit {
1123
1129
  type AssetPropertyMappings = {
1124
1130
  [name: string]: {
1125
1131
  label?: string;
1126
- assetProperty: AssetPropertyType;
1132
+ assetProperty: AssetPropertyType | null;
1127
1133
  };
1128
1134
  };
1129
1135
  type AssetPropertyMapping = {
@@ -1870,9 +1876,10 @@ declare class AssetPropertyMappingsService {
1870
1876
  *
1871
1877
  * @param mappings - The asset property mappings configuration.
1872
1878
  * @param realtimeControl$ - Observable that controls realtime notifications (true = enabled, false = disabled, default = enabled).
1879
+ * @param refresh$ - Optional trigger; each emission forces a fresh REST fetch of all property values.
1873
1880
  * @returns Observable emitting updated asset property values as they change.
1874
1881
  */
1875
- getValues$(mappings: AssetPropertyMappings, realtimeControl$?: Observable$1<boolean>): Observable$1<Record<string, unknown>>;
1882
+ getValues$(mappings: AssetPropertyMappings, realtimeControl$?: Observable$1<boolean>, refresh$?: Observable$1<void>): Observable$1<Record<string, unknown>>;
1876
1883
  private groupByType;
1877
1884
  private groupByAssetId;
1878
1885
  private getComputedPropertyValues$;
@@ -1893,6 +1900,10 @@ declare class AssetPropertyMappingsComponent implements OnInit {
1893
1900
  allowAddingNewMappings: i0.InputSignal<boolean>;
1894
1901
  allowRenamingMappings: i0.InputSignal<boolean>;
1895
1902
  allowRelabellingMappings: i0.InputSignal<boolean>;
1903
+ /** When set, mapping names must match this regex. Validated on rename. */
1904
+ mappingNameFormatRegex: i0.InputSignal<RegExp>;
1905
+ /** Error message shown when a name fails the mappingNameFormatRegex check. */
1906
+ mappingNameFormatErrorMessage: i0.InputSignal<string>;
1896
1907
  allowEditingMappings: i0.InputSignal<boolean>;
1897
1908
  allowRemovingMappings: i0.InputSignal<boolean>;
1898
1909
  showLabels: i0.InputSignal<boolean>;
@@ -1905,8 +1916,14 @@ declare class AssetPropertyMappingsComponent implements OnInit {
1905
1916
  * Callback to transform a mapping into the text that gets copied to the clipboard.
1906
1917
  * Exposed as an input so widget config factories can override the default (e.g. to
1907
1918
  * produce a template expression like `${this.c8yProperties?.temperature}`).
1908
- */
1909
- onBeforeCopyMappingToClipboard: i0.InputSignal<(mapping: AssetPropertyMapping) => string>;
1919
+ * The second argument is the current widget config, which can be used to adjust
1920
+ * the output based on widget-specific settings (e.g. legacy mode).
1921
+ */
1922
+ onBeforeCopyMappingToClipboard: i0.InputSignal<(mapping: AssetPropertyMapping, config?: ContextWidgetConfig | null) => string>;
1923
+ emptyStateTitle: i0.InputSignal<string>;
1924
+ emptyStateSubtitle: i0.InputSignal<string>;
1925
+ /** Message shown in the section's feedback area. Available placeholder: {{ count }} */
1926
+ feedbackMessage: i0.InputSignal<string>;
1910
1927
  /** Distributes (12 - actionsColumnSpan) columns evenly among visible row-1 columns (label, name). */
1911
1928
  get row1ColumnSpans(): {
1912
1929
  label: number;
@@ -1918,8 +1935,6 @@ declare class AssetPropertyMappingsComponent implements OnInit {
1918
1935
  property: number;
1919
1936
  value: number;
1920
1937
  };
1921
- emptyStateTitle: "No asset property mappings";
1922
- emptyStateSubtitle: "Add first asset property mapping.";
1923
1938
  mappings$: rxjs.Observable<AssetPropertyMappings>;
1924
1939
  keys$: rxjs.Observable<string[]>;
1925
1940
  private readonly mappingsSignal;
@@ -1945,7 +1960,7 @@ declare class AssetPropertyMappingsComponent implements OnInit {
1945
1960
  saveName(key: string, newName: string): Promise<void>;
1946
1961
  private distributeColumns;
1947
1962
  static ɵfac: i0.ɵɵFactoryDeclaration<AssetPropertyMappingsComponent, never>;
1948
- static ɵcmp: i0.ɵɵComponentDeclaration<AssetPropertyMappingsComponent, "c8y-asset-property-mappings", never, { "widgetConfigPath": { "alias": "widgetConfigPath"; "required": false; "isSignal": true; }; "initialMappings": { "alias": "initialMappings"; "required": false; "isSignal": true; }; "allowAddingNewMappings": { "alias": "allowAddingNewMappings"; "required": false; "isSignal": true; }; "allowRenamingMappings": { "alias": "allowRenamingMappings"; "required": false; "isSignal": true; }; "allowRelabellingMappings": { "alias": "allowRelabellingMappings"; "required": false; "isSignal": true; }; "allowEditingMappings": { "alias": "allowEditingMappings"; "required": false; "isSignal": true; }; "allowRemovingMappings": { "alias": "allowRemovingMappings"; "required": false; "isSignal": true; }; "showLabels": { "alias": "showLabels"; "required": false; "isSignal": true; }; "showNames": { "alias": "showNames"; "required": false; "isSignal": true; }; "showAssets": { "alias": "showAssets"; "required": false; "isSignal": true; }; "showProperties": { "alias": "showProperties"; "required": false; "isSignal": true; }; "showValues": { "alias": "showValues"; "required": false; "isSignal": true; }; "actionsColumnSpan": { "alias": "actionsColumnSpan"; "required": false; "isSignal": true; }; "onBeforeCopyMappingToClipboard": { "alias": "onBeforeCopyMappingToClipboard"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1963
+ static ɵcmp: i0.ɵɵComponentDeclaration<AssetPropertyMappingsComponent, "c8y-asset-property-mappings", never, { "widgetConfigPath": { "alias": "widgetConfigPath"; "required": false; "isSignal": true; }; "initialMappings": { "alias": "initialMappings"; "required": false; "isSignal": true; }; "allowAddingNewMappings": { "alias": "allowAddingNewMappings"; "required": false; "isSignal": true; }; "allowRenamingMappings": { "alias": "allowRenamingMappings"; "required": false; "isSignal": true; }; "allowRelabellingMappings": { "alias": "allowRelabellingMappings"; "required": false; "isSignal": true; }; "mappingNameFormatRegex": { "alias": "mappingNameFormatRegex"; "required": false; "isSignal": true; }; "mappingNameFormatErrorMessage": { "alias": "mappingNameFormatErrorMessage"; "required": false; "isSignal": true; }; "allowEditingMappings": { "alias": "allowEditingMappings"; "required": false; "isSignal": true; }; "allowRemovingMappings": { "alias": "allowRemovingMappings"; "required": false; "isSignal": true; }; "showLabels": { "alias": "showLabels"; "required": false; "isSignal": true; }; "showNames": { "alias": "showNames"; "required": false; "isSignal": true; }; "showAssets": { "alias": "showAssets"; "required": false; "isSignal": true; }; "showProperties": { "alias": "showProperties"; "required": false; "isSignal": true; }; "showValues": { "alias": "showValues"; "required": false; "isSignal": true; }; "actionsColumnSpan": { "alias": "actionsColumnSpan"; "required": false; "isSignal": true; }; "onBeforeCopyMappingToClipboard": { "alias": "onBeforeCopyMappingToClipboard"; "required": false; "isSignal": true; }; "emptyStateTitle": { "alias": "emptyStateTitle"; "required": false; "isSignal": true; }; "emptyStateSubtitle": { "alias": "emptyStateSubtitle"; "required": false; "isSignal": true; }; "feedbackMessage": { "alias": "feedbackMessage"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1949
1964
  }
1950
1965
 
1951
1966
  /**
@@ -1959,6 +1974,7 @@ declare class AssetPropertyMappingsComponent implements OnInit {
1959
1974
  * - All other properties: strips leading `c8y_` and camelCases the name.
1960
1975
  */
1961
1976
  declare function getPropertyBaseKey(property: AssetPropertyType): string;
1977
+ declare function escapeForRegExp(key: string): string;
1962
1978
  /** Wraps key in quotes for bracket notation, choosing the quote style that requires fewest escapes. */
1963
1979
  declare function quoteAndEscape(key: string): string;
1964
1980
  /**
@@ -1975,6 +1991,6 @@ declare function quoteAndEscape(key: string): string;
1975
1991
  */
1976
1992
  declare function renamePropertyKeyInCode(code: string, oldKey: string, newKey: string, expressionPrefixes?: string[]): string;
1977
1993
 
1978
- export { ALL_GLOBAL_ROLES_SELECTED, AddDashboardComponent, AddDashboardFactory, AppearanceSettingsComponent, AssetPropertyMappingsComponent, AssetPropertyMappingsService, CONTEXT_DASHBOARD_CONFIG, ContextDashboardComponent, ContextDashboardModule, ContextDashboardService, ContextDashboardType, DASHBOARD_CHILDREN_STATE_NAME, DASHBOARD_DETAILS_OUTLET, DASHBOARD_DETAILS_TABS_OUTLET_NAME, DASHBOARD_SETTINGS_CHANGES, DASHBOARD_THEME_CLASSES, DashboardActionBarFactory, DashboardDetailComponent, DashboardDetailService, DashboardDetailsTabId, DeviceInfoDashboardComponent, DeviceInfoDashboardModule, DeviceManagementHomeDashboardComponent, DeviceManagementHomeDashboardModule, GlobalContextSectionComponent, HOOK_WIDGET_CONFIG, NewDashboardGuard, PRODUCT_EXPERIENCE, PasteDashboardActionComponent, REPORT_DEFAULT_NAVIGATION_NODE_PRIORITY, STYLING_CLASS_PREFIXES, TypeDashboardInfoComponent, WIDGET_CONTENT_CLASSES, WIDGET_HEADER_CLASSES, WidgetAssetSelectorComponent, WidgetConfigAppearanceComponent, WidgetConfigComponent, WidgetConfigFeedbackComponent, WidgetConfigGeneralComponent, WidgetConfigSectionComponent, WidgetConfigSectionService, WidgetConfigService, WidgetPreviewComponent, WidgetPreviewWrapperComponent, WidgetService, getPropertyBaseKey, hookWidgetConfig, newDashboardTab, quoteAndEscape, renamePropertyKeyInCode };
1994
+ export { ALL_GLOBAL_ROLES_SELECTED, AddDashboardComponent, AddDashboardFactory, AppearanceSettingsComponent, AssetPropertyMappingsComponent, AssetPropertyMappingsService, CONTEXT_DASHBOARD_CONFIG, ContextDashboardComponent, ContextDashboardModule, ContextDashboardService, ContextDashboardType, DASHBOARD_CHILDREN_STATE_NAME, DASHBOARD_DETAILS_OUTLET, DASHBOARD_DETAILS_TABS_OUTLET_NAME, DASHBOARD_SETTINGS_CHANGES, DASHBOARD_THEME_CLASSES, DashboardActionBarFactory, DashboardDetailComponent, DashboardDetailService, DashboardDetailsTabId, DeviceInfoDashboardComponent, DeviceInfoDashboardModule, DeviceManagementHomeDashboardComponent, DeviceManagementHomeDashboardModule, GlobalContextSectionComponent, HOOK_WIDGET_CONFIG, NewDashboardGuard, PRODUCT_EXPERIENCE, PasteDashboardActionComponent, REPORT_DEFAULT_NAVIGATION_NODE_PRIORITY, STYLING_CLASS_PREFIXES, TypeDashboardInfoComponent, WIDGET_CONTENT_CLASSES, WIDGET_HEADER_CLASSES, WidgetAssetSelectorComponent, WidgetConfigAppearanceComponent, WidgetConfigComponent, WidgetConfigFeedbackComponent, WidgetConfigGeneralComponent, WidgetConfigSectionComponent, WidgetConfigSectionService, WidgetConfigService, WidgetPreviewComponent, WidgetPreviewWrapperComponent, WidgetService, escapeForRegExp, getPropertyBaseKey, hookWidgetConfig, newDashboardTab, quoteAndEscape, renamePropertyKeyInCode };
1979
1995
  export type { AllowTypeDashboard, AssetPropertyMapping, AssetPropertyMappingKeyRenamedNotification, AssetPropertyMappings, CanDeactivateComponent, ContextDashboard, ContextDashboardConfig, ContextDashboardManagedObject, ContextWidgetConfig, CustomWidgetConfigNotification, DashboardAndWidgetThemeDefinition, DashboardChildrenState, DashboardContext, DashboardCopyClipboard, DashboardDetailsTabs, DashboardGlobalRoles, DashboardHistoryDescription, DashboardMetadata, WidgetConfigNotification, WidgetConfigSection, WidgetConfigSectionBase, WidgetConfigSectionDefinition, WidgetConfigSectionExtension };
1980
1996
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sources":["../../context-dashboard/add-dashboard.component.ts","../../context-dashboard/add-dashboard.factory.ts","../../context-dashboard/context-dashboard.model.ts","../../context-dashboard/context-dashboard.service.ts","../../context-dashboard/dashboard-detail.service.ts","../../context-dashboard/dashboard-detail.component.ts","../../context-dashboard/memento/dashboard-originator.service.ts","../../context-dashboard/memento/dashboard-caretaker.service.ts","../../context-dashboard/memento/dashboard-edit-mode.service.ts","../../context-dashboard/widget.service.ts","../../context-dashboard/context-dashboard.component.ts","../../context-dashboard/widget-config/appearance-settings.component.ts","../../context-dashboard/type-dashboard-info/type-dashboard-info.component.ts","../../context-dashboard/widget-config/asset-property-mappings.model.ts","../../context-dashboard/widget-config.model.ts","../../context-dashboard/widget-config-hook/widget-config-hook.model.ts","../../context-dashboard/widget-config-hook/widget-config-hook.service.ts","../../context-dashboard/widget-config.service.ts","../../context-dashboard/widget-config/widget-config-root.component.ts","../../context-dashboard/widget-config.component.ts","../../context-dashboard/widget-config/widget-preview.component.ts","../../context-dashboard/widget-config/widget-config-section.component.ts","../../context-dashboard/widget-config/widget-preview-wrapper.component.ts","../../context-dashboard/paste-dashboard-action.component.ts","../../context-dashboard/context-dashboard.module.ts","../../context-dashboard/dashboard-action-bar.factory.ts","../../context-dashboard/device-info-dashboard/device-info-dashboard.component.ts","../../context-dashboard/device-info-dashboard/device-info-dashboard.module.ts","../../context-dashboard/device-management-home-dashboard/device-management-home-dashboard.component.ts","../../context-dashboard/device-management-home-dashboard/device-management-home-dashboard.module.ts","../../context-dashboard/widget-config/widget-config-appearance.component.ts","../../context-dashboard/widget-config/widget-config-general.component.ts","../../context-dashboard/widget-config/widget-asset-selector.component.ts","../../context-dashboard/new-dashboard.guard.ts","../../context-dashboard/widget-config/global-context-section.component.ts","../../context-dashboard/widget-config/widget-config-feedback.component.ts","../../context-dashboard/widget-config/asset-property-mappings.service.ts","../../context-dashboard/widget-config/asset-property-mappings.component.ts","../../context-dashboard/widget-config/asset-property-mappings.utils.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sources":["../../context-dashboard/add-dashboard.component.ts","../../context-dashboard/add-dashboard.factory.ts","../../context-dashboard/context-dashboard.model.ts","../../context-dashboard/context-dashboard.service.ts","../../context-dashboard/dashboard-detail.service.ts","../../context-dashboard/dashboard-detail.component.ts","../../context-dashboard/memento/dashboard-originator.service.ts","../../context-dashboard/memento/dashboard-caretaker.service.ts","../../context-dashboard/memento/dashboard-edit-mode.service.ts","../../context-dashboard/widget.service.ts","../../context-dashboard/context-dashboard.component.ts","../../context-dashboard/widget-config/appearance-settings.component.ts","../../context-dashboard/type-dashboard-info/type-dashboard-info.component.ts","../../context-dashboard/widget-config/asset-property-mappings.model.ts","../../context-dashboard/widget-config.model.ts","../../context-dashboard/widget-config-hook/widget-config-hook.model.ts","../../context-dashboard/widget-config-hook/widget-config-hook.service.ts","../../context-dashboard/widget-config.service.ts","../../context-dashboard/widget-config/widget-config-root.component.ts","../../context-dashboard/widget-config.component.ts","../../context-dashboard/widget-config/widget-preview.component.ts","../../context-dashboard/widget-config/widget-config-section.component.ts","../../context-dashboard/widget-config/widget-preview-wrapper.component.ts","../../context-dashboard/paste-dashboard-action.component.ts","../../context-dashboard/context-dashboard.module.ts","../../context-dashboard/dashboard-action-bar.factory.ts","../../context-dashboard/device-info-dashboard/device-info-dashboard.component.ts","../../context-dashboard/device-info-dashboard/device-info-dashboard.module.ts","../../context-dashboard/device-management-home-dashboard/device-management-home-dashboard.component.ts","../../context-dashboard/device-management-home-dashboard/device-management-home-dashboard.module.ts","../../context-dashboard/widget-config/widget-config-appearance.component.ts","../../context-dashboard/widget-config/widget-config-general.component.ts","../../context-dashboard/widget-config/widget-asset-selector.component.ts","../../context-dashboard/new-dashboard.guard.ts","../../context-dashboard/widget-config/global-context-section.component.ts","../../context-dashboard/widget-config/widget-config-feedback.component.ts","../../context-dashboard/widget-config/asset-property-mappings.service.ts","../../context-dashboard/widget-config/asset-property-mappings.component.ts","../../context-dashboard/widget-config/asset-property-mappings.utils.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sources":["../../echart/models/datapoints-graph-widget.model.ts","../../echart/models/chart.model.ts","../../echart/models/svg-icons.model.ts","../../echart/charts.component.ts","../../echart/services/chart-alarms.service.ts","../../echart/services/chart-events.service.ts","../../echart/services/chart-helpers.service.ts","../../echart/chart-alerts/chart-alerts.component.ts","../../echart/select-aggregated-datapoint/select-aggregated-datapoint.component.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":[],"mappings":";;;;;;;;;;;;;;;AAoBM;;;;AAKA;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;AASA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;;;;;;;;;;AAWI;;;;;;;;;;AAUJ;;;;;AAMF;AAyBM;;AAEJ;AACA;;AAGI;;;AAIN;;AAEG;;AAGG;AAIN;AACE;AACA;AACD;AAED;AACM;;AAEL;AAED;;;;AAIM;;;;;;;AAQL;AAED;;;;;AAUE;;;;;AAGD;;AAGC;;AAEA;;AAEE;;AAEF;;;AACD;;;;;;;AAQC;AACA;AACD;AAEK;AACA;AAEA;AAEA;AAEN;;;;AAKA;;;;;;;;;;;;;AAcM;AACA;AAEA;;;;AAKA;;;;;;;;;;;;AAaL;AAED;;;;;;;;AAUE;AACA;AACD;;ACjPD;;;;;;AAMG;AACH;AACE;;;;AAIA;;;AACD;;;AAIA;;;AAIA;AAEK;AACA;AACJ;AACE;AACD;AACF;;AAGC;AACA;AACD;AAED;AACE;AACA;AACA;AACD;;AC3CD;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACD;AAED;;;;;;;;;;;AC8DA;AA4BE;;AAEA;;;;;;;;AAQA;;;;;;AAMK;AACK;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEV;;;;;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AAoEA;;;;;AA4JE;;;;;AAGD;AAuDD;AAOA;AAIA;AAwBA;AA6BA;AAWA;;;;;;AAMG;AACH;AAoCA;;;;;AAKG;AACH;AAgCA;AAeA;;;;;AAKG;AACH;AAYA;;;AAGG;AACH;AAaA;AA0BA;;AA2BA;AAeA;AA0BA;;AA8DA;;;AAuNA;AAyEA;AAwDA;AAmBA;AAWA;AAYA;;;AA6BD;;ACvrCD;AAEc;AAAQ;AAEpB;;;;;AAKG;AACG;;;AAqCP;;AC/CD;AAEc;AAAQ;AAEpB;;;;;AAKG;AACG;;;AAuBP;;AChCD;AAEE;;;;AAIG;;;;;;;;;;;AAcH;AAcA;;;AAGD;;AC9BD;;AAQmC;AAEjC;;;;AAQD;;ACVD;;AAqBW;AACC;AAEV;;AAGA;;;AAiBA;;;AAgBD;;;"}
1
+ {"version":3,"file":"index.d.ts","sources":["../../echart/models/datapoints-graph-widget.model.ts","../../echart/models/chart.model.ts","../../echart/models/svg-icons.model.ts","../../echart/charts.component.ts","../../echart/services/chart-alarms.service.ts","../../echart/services/chart-events.service.ts","../../echart/services/chart-helpers.service.ts","../../echart/chart-alerts/chart-alerts.component.ts","../../echart/select-aggregated-datapoint/select-aggregated-datapoint.component.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":[],"mappings":";;;;;;;;;;;;;;;AAoBM;;;;AAKA;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;AASA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;;;;;;;;;;AAWI;;;;;;;;;;AAUJ;;;;;AAMF;AAyBM;;AAEJ;AACA;;AAGI;;;AAIN;;AAEG;;AAGG;AAIN;AACE;AACA;AACD;AAED;AACM;;AAEL;AAED;;;;AAIM;;;;;;;AAQL;AAED;;;;;AAUE;;;;;AAGD;;AAGC;;AAEA;;AAEE;;AAEF;;;AACD;;;;;;;AAQC;AACA;AACD;AAEK;AACA;AAEA;AAEA;AAEN;;;;AAKA;;;;;;;;;;;;;AAcM;AACA;AAEA;;;;AAKA;;;;;;;;;;;;AAaL;AAED;;;;;;;;AAUE;AACA;AACD;;ACjPD;;;;;;AAMG;AACH;AACE;;;;AAIA;;;AACD;;;AAIA;;;AAIA;AAEK;AACA;AACJ;AACE;AACD;AACF;;AAGC;AACA;AACD;AAED;AACE;AACA;AACA;AACD;;AC3CD;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACD;AAED;;;;;;;;;;;AC8DA;AA4BE;;AAEA;;;;;;;;AAQA;;;;;;AAMK;AACK;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEV;;;;;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AAoEA;;;;;AA4JE;;;;;AAGD;AAuDD;AAOA;AAIA;AAwBA;AA6BA;AAWA;;;;;;AAMG;AACH;AAoCA;;;;;AAKG;AACH;AAgCA;AAeA;;;;;AAKG;AACH;AAYA;;;AAGG;AACH;AAaA;AA0BA;;AA2BA;AAeA;AA0BA;;AAkEA;;;AAuNA;AAyEA;AAwDA;AAmBA;AAWA;AAYA;;;AA6BD;;AC3rCD;AAEc;AAAQ;AAEpB;;;;;AAKG;AACG;;;AAqCP;;AC/CD;AAEc;AAAQ;AAEpB;;;;;AAKG;AACG;;;AAuBP;;AChCD;AAEE;;;;AAIG;;;;;;;;;;;AAcH;AAcA;;;AAGD;;AC9BD;;AAQmC;AAEjC;;;;AAQD;;ACVD;;AAqBW;AACC;AAEV;;AAGA;;;AAiBA;;;AAgBD;;;"}
@@ -1011,7 +1011,7 @@ class AgentChatComponent {
1011
1011
  }
1012
1012
  }
1013
1013
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AgentChatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1014
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: AgentChatComponent, isStandalone: true, selector: "c8y-agent-chat", inputs: { agent: { classPropertyName: "agent", publicName: "agent", isSignal: true, isRequired: true, transformFunction: null }, suggestions: { classPropertyName: "suggestions", publicName: "suggestions", isSignal: true, isRequired: false, transformFunction: null }, chatConfig: { classPropertyName: "chatConfig", publicName: "chatConfig", isSignal: true, isRequired: false, transformFunction: null }, welcomeTemplate: { classPropertyName: "welcomeTemplate", publicName: "welcomeTemplate", isSignal: true, isRequired: false, transformFunction: null }, autoCreateAgents: { classPropertyName: "autoCreateAgents", publicName: "autoCreateAgents", isSignal: true, isRequired: false, transformFunction: null }, variables: { classPropertyName: "variables", publicName: "variables", isSignal: true, isRequired: false, transformFunction: null }, assistantMessageComponent: { classPropertyName: "assistantMessageComponent", publicName: "assistantMessageComponent", isSignal: true, isRequired: false, transformFunction: null }, assistantMessageDisplayConfig: { classPropertyName: "assistantMessageDisplayConfig", publicName: "assistantMessageDisplayConfig", isSignal: true, isRequired: false, transformFunction: null }, preprocessAgentMessage: { classPropertyName: "preprocessAgentMessage", publicName: "preprocessAgentMessage", isSignal: true, isRequired: false, transformFunction: null }, pruneMessagesForAgent: { classPropertyName: "pruneMessagesForAgent", publicName: "pruneMessagesForAgent", isSignal: true, isRequired: false, transformFunction: null }, skipHealthCheck: { classPropertyName: "skipHealthCheck", publicName: "skipHealthCheck", isSignal: true, isRequired: false, transformFunction: null }, initialChatHistory: { classPropertyName: "initialChatHistory", publicName: "initialChatHistory", isSignal: true, isRequired: false, transformFunction: null }, groundingContextProvider: { classPropertyName: "groundingContextProvider", publicName: "groundingContextProvider", isSignal: true, isRequired: false, transformFunction: null }, userAnalyticsContext: { classPropertyName: "userAnalyticsContext", publicName: "userAnalyticsContext", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onMessageFinish: "onMessageFinish", onToolResult: "onToolResult", onFeedback: "onFeedback", onMessagesChange: "onMessagesChange" }, viewQueries: [{ propertyName: "assistantMessageComponents", predicate: AiChatAssistantMessageComponent, descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "@let agentHealthErrorMsg = _agentHealthError();\n@if (agentHealthErrorMsg) {\n @if (isLoadingAiResponse()) {\n <c8y-loading class=\"m-auto\"></c8y-loading>\n } @else {\n <c8y-ui-empty-state\n class=\"m-auto\"\n [icon]=\"'settings'\"\n [title]=\"'AI agent is not available.' | translate\"\n >\n <span>{{ agentHealthErrorMsg }}</span>\n\n @if (canCreate) {\n <div class=\"text-center m-t-16 m-b-16\">\n <button\n class=\"btn btn-primary\"\n (click)=\"createAgent()\"\n >\n {{ 'Create agent' | translate }}\n </button>\n </div>\n } @else {\n <p\n class=\"text-pre-wrap m-t-8\"\n data-cy=\"agent-health-detailed-messages\"\n >\n <small>{{ agentHealthDetailedMessages() }}</small>\n </p>\n }\n\n <p c8y-guide-docs>\n <small\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"/docs/ai\">user documentation</a>.\n </small>\n </p>\n </c8y-ui-empty-state>\n }\n}\n\n@if (!agentHealthErrorMsg) {\n <c8y-ai-chat\n (onMessage)=\"sendMessage($event)\"\n [isLoading]=\"isLoadingAiResponse()\"\n (onCancel)=\"cancel()\"\n [config]=\"chatConfig() ?? {}\"\n [prompt]=\"prompt\"\n [suggestionsTemplate]=\"suggestionsRef\"\n [welcomeTemplate]=\"welcomeTemplate()\"\n [cumulativeUsage]=\"cumulativeUsage()\"\n >\n @let messages$ = messages();\n @for (message of messages$; track $index; let i = $index) {\n <c8y-ai-chat-message [message]=\"message\">\n @if (message.role !== 'user' && model) {\n <!-- Visually hidden label included when users copy-paste from the chat, e.g. to report issues. It's quite helpful to know the model. -->\n <span\n class=\"hidden-copy-label\"\n aria-hidden=\"true\"\n >\n {{ `(Using model: ${model})` }}</span\n >\n }\n\n @if (message.role === 'user') {\n <div\n class=\"message-content\"\n data-cy=\"user-message-content\"\n [innerHTML]=\"message.content | markdownToHtml | async\"\n ></div>\n } @else if (\n message.role === 'assistant' && isLoadingAiResponse() && i === messages$.length - 1\n ) {\n <div>\n <!-- Last assistant message uses reactive computed context -->\n <ng-container\n [ngComponentOutlet]=\"assistantMessageComponent()\"\n [ngComponentOutletInputs]=\"{ assistantMessageContext: lastAssistantMessageContext() }\"\n ></ng-container>\n </div>\n } @else {\n <ng-container\n [ngComponentOutlet]=\"assistantMessageComponent()\"\n [ngComponentOutletInputs]=\"{\n assistantMessageContext: {\n message: message,\n config: assistantMessageDisplayConfig(),\n isMessageLoading: isLoadingAiResponse() && i === messages$.length - 1,\n messageDisplayIndex: messages$.length - 1 - i\n }\n }\"\n ></ng-container>\n }\n\n @let isLastMessage = i === messages$.length - 1;\n\n @if (message.role === 'user') {\n <c8y-ai-chat-message-action\n icon=\"pencil\"\n [tooltip]=\"'Edit and resend this message' | translate\"\n [disabled]=\"isLoadingAiResponse()\"\n (click)=\"reprompt(message)\"\n ></c8y-ai-chat-message-action>\n }\n\n @if (\n message.role === 'assistant' &&\n i > 0 &&\n chatConfig()?.showUsagePerMessage &&\n message.usage\n ) {\n <c8y-ai-chat-message-action [custom]=\"true\">\n <span\n class=\"tag tag--info m-l-auto\"\n [tooltip]=\"\n 'Input tokens: {{ input }} \\nOutput tokens: {{ output }}'\n | translate\n : {\n input: message.usage.inputTokens || 0 | c8yNumber: 'floor' : '1.0-0',\n output: message.usage.outputTokens || 0 | c8yNumber: 'floor' : '1.0-0'\n }\n \"\n >\n {{ 'Tokens used: {{total}}' | translate: { total: message.usage.totalTokens || 0 |\n c8yNumber: 'floor' : '1.0-0' } }}\n </span>\n </c8y-ai-chat-message-action>\n }\n\n @if (message.role === 'assistant' && i > 0 && !isLoadingAiResponse()) {\n <c8y-ai-chat-message-action\n icon=\"thumbs-up\"\n [tooltip]=\"'This is useful' | translate\"\n [disabled]=\"isLoadingAiResponse()\"\n (click)=\"rate(message, true)\"\n ></c8y-ai-chat-message-action>\n }\n\n @if (message.role === 'assistant' && i > 0 && !isLoadingAiResponse()) {\n <c8y-ai-chat-message-action\n icon=\"thumbs-down\"\n [tooltip]=\"'This is not useful' | translate\"\n [disabled]=\"isLoadingAiResponse()\"\n (click)=\"rate(message, false)\"\n ></c8y-ai-chat-message-action>\n }\n\n @if (\n message.role === 'assistant' &&\n !isLoadingAiResponse() &&\n chatConfig()?.showDeleteAction &&\n isLastMessage\n ) {\n <c8y-ai-chat-message-action\n icon=\"delete-bin\"\n [tooltip]=\"'Delete last exchange' | translate\"\n [disabled]=\"isLoadingAiResponse()\"\n (click)=\"deleteLastExchange()\"\n ></c8y-ai-chat-message-action>\n }\n\n <!-- Only allow regenerating the last message, otherwise we could be deleting a lot of useful message history -->\n @if (message.role === 'assistant' && i > 0 && isLastMessage && !isLoadingAiResponse()) {\n <c8y-ai-chat-message-action\n icon=\"refresh\"\n [tooltip]=\"'Regenerate this response' | translate\"\n [disabled]=\"isLoadingAiResponse()\"\n (click)=\"reload(message)\"\n ></c8y-ai-chat-message-action>\n }\n </c8y-ai-chat-message>\n }\n\n @let agentErrorMsg = agentRequestError();\n @if (agentErrorMsg) {\n <c8y-ai-chat-message [message]=\"{ role: 'assistant', content: agentErrorMsg }\">\n <div\n class=\"alert alert-danger d-flex a-i-center gap-8\"\n role=\"alert\"\n >\n <!-- Since errors come from the backend the only translation is for the fallback error message supplied by the UI. -->\n <div class=\"flex-grow text-pre-wrap\">{{ agentErrorMsg | translate }}</div>\n </div>\n </c8y-ai-chat-message>\n }\n\n <ng-template #suggestionsRef>\n @if (!isLoadingAiResponse()) {\n <!-- As soon as we have any suggestions (even empty) these take priority over what we restored from history -->\n @let activeSuggestions = suggestions() === undefined ? _restoredSuggestions : suggestions();\n @for (suggestion of activeSuggestions; track $index) {\n <c8y-ai-chat-suggestion\n [icon]=\"suggestion.icon || 'c8y-bulb'\"\n [useAiButtons]=\"true\"\n [prompt]=\"suggestion.prompt\"\n [label]=\"suggestion.label ?? suggestion.prompt\"\n (suggestionClicked)=\"sendMessage($event)\"\n [disabled]=\"isLoadingAiResponse()\"\n ></c8y-ai-chat-suggestion>\n }\n }\n </ng-template>\n </c8y-ai-chat>\n}\n", styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fade-in-out{animation:fadeIn .2s ease-in}.fade-in-out.ng-leave-active{animation:fadeOut .2s ease-out}.hidden-copy-label{display:block;font-size:0;line-height:0;-webkit-user-select:text;user-select:text}\n"], dependencies: [{ kind: "component", type: AiChatComponent, selector: "c8y-ai-chat", inputs: ["isLoading", "disabled", "prompt", "suggestionsTemplate", "welcomeTemplate", "cumulativeUsage", "config"], outputs: ["onMessage", "onCancel"] }, { kind: "component", type: AiChatSuggestionComponent, selector: "c8y-ai-chat-suggestion", inputs: ["label", "prompt", "icon", "useAiButtons", "disabled"], outputs: ["suggestionClicked"] }, { kind: "component", type: AiChatMessageComponent, selector: "c8y-ai-chat-message", inputs: ["role", "message"] }, { kind: "component", type: AiChatMessageActionComponent, selector: "c8y-ai-chat-message-action", inputs: ["custom", "disabled", "tooltip", "icon"], outputs: ["actionClicked"] }, { kind: "component", type: LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "ngmodule", type: CollapseModule }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: GuideDocsComponent, selector: "[c8y-guide-docs]" }, { kind: "directive", type: GuideHrefDirective, selector: "[c8y-guide-href]", inputs: ["c8y-guide-href"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i1.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: MarkdownToHtmlPipe, name: "markdownToHtml" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: NumberPipe, name: "c8yNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1014
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: AgentChatComponent, isStandalone: true, selector: "c8y-agent-chat", inputs: { agent: { classPropertyName: "agent", publicName: "agent", isSignal: true, isRequired: true, transformFunction: null }, suggestions: { classPropertyName: "suggestions", publicName: "suggestions", isSignal: true, isRequired: false, transformFunction: null }, chatConfig: { classPropertyName: "chatConfig", publicName: "chatConfig", isSignal: true, isRequired: false, transformFunction: null }, welcomeTemplate: { classPropertyName: "welcomeTemplate", publicName: "welcomeTemplate", isSignal: true, isRequired: false, transformFunction: null }, autoCreateAgents: { classPropertyName: "autoCreateAgents", publicName: "autoCreateAgents", isSignal: true, isRequired: false, transformFunction: null }, variables: { classPropertyName: "variables", publicName: "variables", isSignal: true, isRequired: false, transformFunction: null }, assistantMessageComponent: { classPropertyName: "assistantMessageComponent", publicName: "assistantMessageComponent", isSignal: true, isRequired: false, transformFunction: null }, assistantMessageDisplayConfig: { classPropertyName: "assistantMessageDisplayConfig", publicName: "assistantMessageDisplayConfig", isSignal: true, isRequired: false, transformFunction: null }, preprocessAgentMessage: { classPropertyName: "preprocessAgentMessage", publicName: "preprocessAgentMessage", isSignal: true, isRequired: false, transformFunction: null }, pruneMessagesForAgent: { classPropertyName: "pruneMessagesForAgent", publicName: "pruneMessagesForAgent", isSignal: true, isRequired: false, transformFunction: null }, skipHealthCheck: { classPropertyName: "skipHealthCheck", publicName: "skipHealthCheck", isSignal: true, isRequired: false, transformFunction: null }, initialChatHistory: { classPropertyName: "initialChatHistory", publicName: "initialChatHistory", isSignal: true, isRequired: false, transformFunction: null }, groundingContextProvider: { classPropertyName: "groundingContextProvider", publicName: "groundingContextProvider", isSignal: true, isRequired: false, transformFunction: null }, userAnalyticsContext: { classPropertyName: "userAnalyticsContext", publicName: "userAnalyticsContext", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onMessageFinish: "onMessageFinish", onToolResult: "onToolResult", onFeedback: "onFeedback", onMessagesChange: "onMessagesChange" }, viewQueries: [{ propertyName: "assistantMessageComponents", predicate: AiChatAssistantMessageComponent, descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "@let agentHealthErrorMsg = _agentHealthError();\n@if (agentHealthErrorMsg) {\n @if (isLoadingAiResponse()) {\n <c8y-loading class=\"m-auto\"></c8y-loading>\n } @else {\n <c8y-ui-empty-state\n class=\"m-auto\"\n [icon]=\"'settings'\"\n [title]=\"'AI agent is not available.' | translate\"\n >\n <span>{{ agentHealthErrorMsg }}</span>\n\n @if (canCreate) {\n <div class=\"text-center m-t-16 m-b-16\">\n <button\n class=\"btn btn-primary\"\n (click)=\"createAgent()\"\n >\n {{ 'Create agent' | translate }}\n </button>\n </div>\n } @else {\n <p\n class=\"text-pre-wrap m-t-8\"\n data-cy=\"agent-health-detailed-messages\"\n >\n <small>{{ agentHealthDetailedMessages() }}</small>\n </p>\n }\n\n <p c8y-guide-docs>\n <small\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"/docs/ai\">user documentation</a>.\n </small>\n </p>\n </c8y-ui-empty-state>\n }\n}\n\n@if (!agentHealthErrorMsg) {\n <c8y-ai-chat\n (onMessage)=\"sendMessage($event)\"\n [isLoading]=\"isLoadingAiResponse()\"\n (onCancel)=\"cancel()\"\n [config]=\"chatConfig() ?? {}\"\n [prompt]=\"prompt\"\n [suggestionsTemplate]=\"suggestionsRef\"\n [welcomeTemplate]=\"welcomeTemplate()\"\n [cumulativeUsage]=\"chatConfig()?.showCumulativeUsage ? cumulativeUsage() : null\"\n >\n @let messages$ = messages();\n @for (message of messages$; track $index; let i = $index) {\n <c8y-ai-chat-message [message]=\"message\">\n @if (message.role !== 'user' && model) {\n <!-- Visually hidden label included when users copy-paste from the chat, e.g. to report issues. It's quite helpful to know the model. -->\n <span\n class=\"hidden-copy-label\"\n aria-hidden=\"true\"\n >\n {{ `(Using model: ${model})` }}</span\n >\n }\n\n @if (message.role === 'user') {\n <div\n class=\"message-content\"\n data-cy=\"user-message-content\"\n [innerHTML]=\"message.content | markdownToHtml | async\"\n ></div>\n } @else if (\n message.role === 'assistant' && isLoadingAiResponse() && i === messages$.length - 1\n ) {\n <div>\n <!-- Last assistant message uses reactive computed context -->\n <ng-container\n [ngComponentOutlet]=\"assistantMessageComponent()\"\n [ngComponentOutletInputs]=\"{ assistantMessageContext: lastAssistantMessageContext() }\"\n ></ng-container>\n </div>\n } @else {\n <ng-container\n [ngComponentOutlet]=\"assistantMessageComponent()\"\n [ngComponentOutletInputs]=\"{\n assistantMessageContext: {\n message: message,\n config: assistantMessageDisplayConfig(),\n isMessageLoading: isLoadingAiResponse() && i === messages$.length - 1,\n messageDisplayIndex: messages$.length - 1 - i\n }\n }\"\n ></ng-container>\n }\n\n @let isLastMessage = i === messages$.length - 1;\n\n @if (message.role === 'user') {\n <c8y-ai-chat-message-action\n icon=\"pencil\"\n [tooltip]=\"'Edit and resend this message' | translate\"\n [disabled]=\"isLoadingAiResponse()\"\n (click)=\"reprompt(message)\"\n ></c8y-ai-chat-message-action>\n }\n\n @if (\n message.role === 'assistant' &&\n i > 0 &&\n chatConfig()?.showUsagePerMessage &&\n message.usage\n ) {\n <c8y-ai-chat-message-action [custom]=\"true\">\n <span\n class=\"tag tag--info m-l-auto\"\n [tooltip]=\"\n 'Input tokens: {{ input }} \\nOutput tokens: {{ output }}'\n | translate\n : {\n input: message.usage.inputTokens || 0 | c8yNumber: 'floor' : '1.0-0',\n output: message.usage.outputTokens || 0 | c8yNumber: 'floor' : '1.0-0'\n }\n \"\n >\n {{ 'Tokens used: {{total}}' | translate: { total: message.usage.totalTokens || 0 |\n c8yNumber: 'floor' : '1.0-0' } }}\n </span>\n </c8y-ai-chat-message-action>\n }\n\n @if (message.role === 'assistant' && i > 0 && !isLoadingAiResponse()) {\n <c8y-ai-chat-message-action\n icon=\"thumbs-up\"\n [tooltip]=\"'This is useful' | translate\"\n [disabled]=\"isLoadingAiResponse()\"\n (click)=\"rate(message, true)\"\n ></c8y-ai-chat-message-action>\n }\n\n @if (message.role === 'assistant' && i > 0 && !isLoadingAiResponse()) {\n <c8y-ai-chat-message-action\n icon=\"thumbs-down\"\n [tooltip]=\"'This is not useful' | translate\"\n [disabled]=\"isLoadingAiResponse()\"\n (click)=\"rate(message, false)\"\n ></c8y-ai-chat-message-action>\n }\n\n @if (\n message.role === 'assistant' &&\n !isLoadingAiResponse() &&\n chatConfig()?.showDeleteAction &&\n isLastMessage\n ) {\n <c8y-ai-chat-message-action\n icon=\"delete-bin\"\n [tooltip]=\"'Delete last exchange' | translate\"\n [disabled]=\"isLoadingAiResponse()\"\n (click)=\"deleteLastExchange()\"\n ></c8y-ai-chat-message-action>\n }\n\n <!-- Only allow regenerating the last message, otherwise we could be deleting a lot of useful message history -->\n @if (message.role === 'assistant' && i > 0 && isLastMessage && !isLoadingAiResponse()) {\n <c8y-ai-chat-message-action\n icon=\"refresh\"\n [tooltip]=\"'Regenerate this response' | translate\"\n [disabled]=\"isLoadingAiResponse()\"\n (click)=\"reload(message)\"\n ></c8y-ai-chat-message-action>\n }\n </c8y-ai-chat-message>\n }\n\n @let agentErrorMsg = agentRequestError();\n @if (agentErrorMsg) {\n <c8y-ai-chat-message [message]=\"{ role: 'assistant', content: agentErrorMsg }\">\n <div\n class=\"alert alert-danger d-flex a-i-center gap-8\"\n role=\"alert\"\n >\n <!-- Since errors come from the backend the only translation is for the fallback error message supplied by the UI. -->\n <div class=\"flex-grow text-pre-wrap\">{{ agentErrorMsg | translate }}</div>\n </div>\n </c8y-ai-chat-message>\n }\n\n <ng-template #suggestionsRef>\n @if (!isLoadingAiResponse()) {\n <!-- As soon as we have any suggestions (even empty) these take priority over what we restored from history -->\n @let activeSuggestions = suggestions() === undefined ? _restoredSuggestions : suggestions();\n @for (suggestion of activeSuggestions; track $index) {\n <c8y-ai-chat-suggestion\n [icon]=\"suggestion.icon || 'c8y-bulb'\"\n [useAiButtons]=\"true\"\n [prompt]=\"suggestion.prompt\"\n [label]=\"suggestion.label ?? suggestion.prompt\"\n (suggestionClicked)=\"sendMessage($event)\"\n [disabled]=\"isLoadingAiResponse()\"\n ></c8y-ai-chat-suggestion>\n }\n }\n </ng-template>\n </c8y-ai-chat>\n}\n", styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fade-in-out{animation:fadeIn .2s ease-in}.fade-in-out.ng-leave-active{animation:fadeOut .2s ease-out}.hidden-copy-label{display:block;font-size:0;line-height:0;-webkit-user-select:text;user-select:text}\n"], dependencies: [{ kind: "component", type: AiChatComponent, selector: "c8y-ai-chat", inputs: ["isLoading", "disabled", "prompt", "suggestionsTemplate", "welcomeTemplate", "cumulativeUsage", "config"], outputs: ["onMessage", "onCancel"] }, { kind: "component", type: AiChatSuggestionComponent, selector: "c8y-ai-chat-suggestion", inputs: ["label", "prompt", "icon", "useAiButtons", "disabled"], outputs: ["suggestionClicked"] }, { kind: "component", type: AiChatMessageComponent, selector: "c8y-ai-chat-message", inputs: ["role", "message"] }, { kind: "component", type: AiChatMessageActionComponent, selector: "c8y-ai-chat-message-action", inputs: ["custom", "disabled", "tooltip", "icon"], outputs: ["actionClicked"] }, { kind: "component", type: LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "ngmodule", type: CollapseModule }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: GuideDocsComponent, selector: "[c8y-guide-docs]" }, { kind: "directive", type: GuideHrefDirective, selector: "[c8y-guide-href]", inputs: ["c8y-guide-href"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i1.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: MarkdownToHtmlPipe, name: "markdownToHtml" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: NumberPipe, name: "c8yNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1015
1015
  }
1016
1016
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AgentChatComponent, decorators: [{
1017
1017
  type: Component,
@@ -1032,7 +1032,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
1032
1032
  GuideHrefDirective,
1033
1033
  TooltipModule,
1034
1034
  NumberPipe
1035
- ], template: "@let agentHealthErrorMsg = _agentHealthError();\n@if (agentHealthErrorMsg) {\n @if (isLoadingAiResponse()) {\n <c8y-loading class=\"m-auto\"></c8y-loading>\n } @else {\n <c8y-ui-empty-state\n class=\"m-auto\"\n [icon]=\"'settings'\"\n [title]=\"'AI agent is not available.' | translate\"\n >\n <span>{{ agentHealthErrorMsg }}</span>\n\n @if (canCreate) {\n <div class=\"text-center m-t-16 m-b-16\">\n <button\n class=\"btn btn-primary\"\n (click)=\"createAgent()\"\n >\n {{ 'Create agent' | translate }}\n </button>\n </div>\n } @else {\n <p\n class=\"text-pre-wrap m-t-8\"\n data-cy=\"agent-health-detailed-messages\"\n >\n <small>{{ agentHealthDetailedMessages() }}</small>\n </p>\n }\n\n <p c8y-guide-docs>\n <small\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"/docs/ai\">user documentation</a>.\n </small>\n </p>\n </c8y-ui-empty-state>\n }\n}\n\n@if (!agentHealthErrorMsg) {\n <c8y-ai-chat\n (onMessage)=\"sendMessage($event)\"\n [isLoading]=\"isLoadingAiResponse()\"\n (onCancel)=\"cancel()\"\n [config]=\"chatConfig() ?? {}\"\n [prompt]=\"prompt\"\n [suggestionsTemplate]=\"suggestionsRef\"\n [welcomeTemplate]=\"welcomeTemplate()\"\n [cumulativeUsage]=\"cumulativeUsage()\"\n >\n @let messages$ = messages();\n @for (message of messages$; track $index; let i = $index) {\n <c8y-ai-chat-message [message]=\"message\">\n @if (message.role !== 'user' && model) {\n <!-- Visually hidden label included when users copy-paste from the chat, e.g. to report issues. It's quite helpful to know the model. -->\n <span\n class=\"hidden-copy-label\"\n aria-hidden=\"true\"\n >\n {{ `(Using model: ${model})` }}</span\n >\n }\n\n @if (message.role === 'user') {\n <div\n class=\"message-content\"\n data-cy=\"user-message-content\"\n [innerHTML]=\"message.content | markdownToHtml | async\"\n ></div>\n } @else if (\n message.role === 'assistant' && isLoadingAiResponse() && i === messages$.length - 1\n ) {\n <div>\n <!-- Last assistant message uses reactive computed context -->\n <ng-container\n [ngComponentOutlet]=\"assistantMessageComponent()\"\n [ngComponentOutletInputs]=\"{ assistantMessageContext: lastAssistantMessageContext() }\"\n ></ng-container>\n </div>\n } @else {\n <ng-container\n [ngComponentOutlet]=\"assistantMessageComponent()\"\n [ngComponentOutletInputs]=\"{\n assistantMessageContext: {\n message: message,\n config: assistantMessageDisplayConfig(),\n isMessageLoading: isLoadingAiResponse() && i === messages$.length - 1,\n messageDisplayIndex: messages$.length - 1 - i\n }\n }\"\n ></ng-container>\n }\n\n @let isLastMessage = i === messages$.length - 1;\n\n @if (message.role === 'user') {\n <c8y-ai-chat-message-action\n icon=\"pencil\"\n [tooltip]=\"'Edit and resend this message' | translate\"\n [disabled]=\"isLoadingAiResponse()\"\n (click)=\"reprompt(message)\"\n ></c8y-ai-chat-message-action>\n }\n\n @if (\n message.role === 'assistant' &&\n i > 0 &&\n chatConfig()?.showUsagePerMessage &&\n message.usage\n ) {\n <c8y-ai-chat-message-action [custom]=\"true\">\n <span\n class=\"tag tag--info m-l-auto\"\n [tooltip]=\"\n 'Input tokens: {{ input }} \\nOutput tokens: {{ output }}'\n | translate\n : {\n input: message.usage.inputTokens || 0 | c8yNumber: 'floor' : '1.0-0',\n output: message.usage.outputTokens || 0 | c8yNumber: 'floor' : '1.0-0'\n }\n \"\n >\n {{ 'Tokens used: {{total}}' | translate: { total: message.usage.totalTokens || 0 |\n c8yNumber: 'floor' : '1.0-0' } }}\n </span>\n </c8y-ai-chat-message-action>\n }\n\n @if (message.role === 'assistant' && i > 0 && !isLoadingAiResponse()) {\n <c8y-ai-chat-message-action\n icon=\"thumbs-up\"\n [tooltip]=\"'This is useful' | translate\"\n [disabled]=\"isLoadingAiResponse()\"\n (click)=\"rate(message, true)\"\n ></c8y-ai-chat-message-action>\n }\n\n @if (message.role === 'assistant' && i > 0 && !isLoadingAiResponse()) {\n <c8y-ai-chat-message-action\n icon=\"thumbs-down\"\n [tooltip]=\"'This is not useful' | translate\"\n [disabled]=\"isLoadingAiResponse()\"\n (click)=\"rate(message, false)\"\n ></c8y-ai-chat-message-action>\n }\n\n @if (\n message.role === 'assistant' &&\n !isLoadingAiResponse() &&\n chatConfig()?.showDeleteAction &&\n isLastMessage\n ) {\n <c8y-ai-chat-message-action\n icon=\"delete-bin\"\n [tooltip]=\"'Delete last exchange' | translate\"\n [disabled]=\"isLoadingAiResponse()\"\n (click)=\"deleteLastExchange()\"\n ></c8y-ai-chat-message-action>\n }\n\n <!-- Only allow regenerating the last message, otherwise we could be deleting a lot of useful message history -->\n @if (message.role === 'assistant' && i > 0 && isLastMessage && !isLoadingAiResponse()) {\n <c8y-ai-chat-message-action\n icon=\"refresh\"\n [tooltip]=\"'Regenerate this response' | translate\"\n [disabled]=\"isLoadingAiResponse()\"\n (click)=\"reload(message)\"\n ></c8y-ai-chat-message-action>\n }\n </c8y-ai-chat-message>\n }\n\n @let agentErrorMsg = agentRequestError();\n @if (agentErrorMsg) {\n <c8y-ai-chat-message [message]=\"{ role: 'assistant', content: agentErrorMsg }\">\n <div\n class=\"alert alert-danger d-flex a-i-center gap-8\"\n role=\"alert\"\n >\n <!-- Since errors come from the backend the only translation is for the fallback error message supplied by the UI. -->\n <div class=\"flex-grow text-pre-wrap\">{{ agentErrorMsg | translate }}</div>\n </div>\n </c8y-ai-chat-message>\n }\n\n <ng-template #suggestionsRef>\n @if (!isLoadingAiResponse()) {\n <!-- As soon as we have any suggestions (even empty) these take priority over what we restored from history -->\n @let activeSuggestions = suggestions() === undefined ? _restoredSuggestions : suggestions();\n @for (suggestion of activeSuggestions; track $index) {\n <c8y-ai-chat-suggestion\n [icon]=\"suggestion.icon || 'c8y-bulb'\"\n [useAiButtons]=\"true\"\n [prompt]=\"suggestion.prompt\"\n [label]=\"suggestion.label ?? suggestion.prompt\"\n (suggestionClicked)=\"sendMessage($event)\"\n [disabled]=\"isLoadingAiResponse()\"\n ></c8y-ai-chat-suggestion>\n }\n }\n </ng-template>\n </c8y-ai-chat>\n}\n", styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fade-in-out{animation:fadeIn .2s ease-in}.fade-in-out.ng-leave-active{animation:fadeOut .2s ease-out}.hidden-copy-label{display:block;font-size:0;line-height:0;-webkit-user-select:text;user-select:text}\n"] }]
1035
+ ], template: "@let agentHealthErrorMsg = _agentHealthError();\n@if (agentHealthErrorMsg) {\n @if (isLoadingAiResponse()) {\n <c8y-loading class=\"m-auto\"></c8y-loading>\n } @else {\n <c8y-ui-empty-state\n class=\"m-auto\"\n [icon]=\"'settings'\"\n [title]=\"'AI agent is not available.' | translate\"\n >\n <span>{{ agentHealthErrorMsg }}</span>\n\n @if (canCreate) {\n <div class=\"text-center m-t-16 m-b-16\">\n <button\n class=\"btn btn-primary\"\n (click)=\"createAgent()\"\n >\n {{ 'Create agent' | translate }}\n </button>\n </div>\n } @else {\n <p\n class=\"text-pre-wrap m-t-8\"\n data-cy=\"agent-health-detailed-messages\"\n >\n <small>{{ agentHealthDetailedMessages() }}</small>\n </p>\n }\n\n <p c8y-guide-docs>\n <small\n translate\n ngNonBindable\n >\n Find out more in the\n <a c8y-guide-href=\"/docs/ai\">user documentation</a>.\n </small>\n </p>\n </c8y-ui-empty-state>\n }\n}\n\n@if (!agentHealthErrorMsg) {\n <c8y-ai-chat\n (onMessage)=\"sendMessage($event)\"\n [isLoading]=\"isLoadingAiResponse()\"\n (onCancel)=\"cancel()\"\n [config]=\"chatConfig() ?? {}\"\n [prompt]=\"prompt\"\n [suggestionsTemplate]=\"suggestionsRef\"\n [welcomeTemplate]=\"welcomeTemplate()\"\n [cumulativeUsage]=\"chatConfig()?.showCumulativeUsage ? cumulativeUsage() : null\"\n >\n @let messages$ = messages();\n @for (message of messages$; track $index; let i = $index) {\n <c8y-ai-chat-message [message]=\"message\">\n @if (message.role !== 'user' && model) {\n <!-- Visually hidden label included when users copy-paste from the chat, e.g. to report issues. It's quite helpful to know the model. -->\n <span\n class=\"hidden-copy-label\"\n aria-hidden=\"true\"\n >\n {{ `(Using model: ${model})` }}</span\n >\n }\n\n @if (message.role === 'user') {\n <div\n class=\"message-content\"\n data-cy=\"user-message-content\"\n [innerHTML]=\"message.content | markdownToHtml | async\"\n ></div>\n } @else if (\n message.role === 'assistant' && isLoadingAiResponse() && i === messages$.length - 1\n ) {\n <div>\n <!-- Last assistant message uses reactive computed context -->\n <ng-container\n [ngComponentOutlet]=\"assistantMessageComponent()\"\n [ngComponentOutletInputs]=\"{ assistantMessageContext: lastAssistantMessageContext() }\"\n ></ng-container>\n </div>\n } @else {\n <ng-container\n [ngComponentOutlet]=\"assistantMessageComponent()\"\n [ngComponentOutletInputs]=\"{\n assistantMessageContext: {\n message: message,\n config: assistantMessageDisplayConfig(),\n isMessageLoading: isLoadingAiResponse() && i === messages$.length - 1,\n messageDisplayIndex: messages$.length - 1 - i\n }\n }\"\n ></ng-container>\n }\n\n @let isLastMessage = i === messages$.length - 1;\n\n @if (message.role === 'user') {\n <c8y-ai-chat-message-action\n icon=\"pencil\"\n [tooltip]=\"'Edit and resend this message' | translate\"\n [disabled]=\"isLoadingAiResponse()\"\n (click)=\"reprompt(message)\"\n ></c8y-ai-chat-message-action>\n }\n\n @if (\n message.role === 'assistant' &&\n i > 0 &&\n chatConfig()?.showUsagePerMessage &&\n message.usage\n ) {\n <c8y-ai-chat-message-action [custom]=\"true\">\n <span\n class=\"tag tag--info m-l-auto\"\n [tooltip]=\"\n 'Input tokens: {{ input }} \\nOutput tokens: {{ output }}'\n | translate\n : {\n input: message.usage.inputTokens || 0 | c8yNumber: 'floor' : '1.0-0',\n output: message.usage.outputTokens || 0 | c8yNumber: 'floor' : '1.0-0'\n }\n \"\n >\n {{ 'Tokens used: {{total}}' | translate: { total: message.usage.totalTokens || 0 |\n c8yNumber: 'floor' : '1.0-0' } }}\n </span>\n </c8y-ai-chat-message-action>\n }\n\n @if (message.role === 'assistant' && i > 0 && !isLoadingAiResponse()) {\n <c8y-ai-chat-message-action\n icon=\"thumbs-up\"\n [tooltip]=\"'This is useful' | translate\"\n [disabled]=\"isLoadingAiResponse()\"\n (click)=\"rate(message, true)\"\n ></c8y-ai-chat-message-action>\n }\n\n @if (message.role === 'assistant' && i > 0 && !isLoadingAiResponse()) {\n <c8y-ai-chat-message-action\n icon=\"thumbs-down\"\n [tooltip]=\"'This is not useful' | translate\"\n [disabled]=\"isLoadingAiResponse()\"\n (click)=\"rate(message, false)\"\n ></c8y-ai-chat-message-action>\n }\n\n @if (\n message.role === 'assistant' &&\n !isLoadingAiResponse() &&\n chatConfig()?.showDeleteAction &&\n isLastMessage\n ) {\n <c8y-ai-chat-message-action\n icon=\"delete-bin\"\n [tooltip]=\"'Delete last exchange' | translate\"\n [disabled]=\"isLoadingAiResponse()\"\n (click)=\"deleteLastExchange()\"\n ></c8y-ai-chat-message-action>\n }\n\n <!-- Only allow regenerating the last message, otherwise we could be deleting a lot of useful message history -->\n @if (message.role === 'assistant' && i > 0 && isLastMessage && !isLoadingAiResponse()) {\n <c8y-ai-chat-message-action\n icon=\"refresh\"\n [tooltip]=\"'Regenerate this response' | translate\"\n [disabled]=\"isLoadingAiResponse()\"\n (click)=\"reload(message)\"\n ></c8y-ai-chat-message-action>\n }\n </c8y-ai-chat-message>\n }\n\n @let agentErrorMsg = agentRequestError();\n @if (agentErrorMsg) {\n <c8y-ai-chat-message [message]=\"{ role: 'assistant', content: agentErrorMsg }\">\n <div\n class=\"alert alert-danger d-flex a-i-center gap-8\"\n role=\"alert\"\n >\n <!-- Since errors come from the backend the only translation is for the fallback error message supplied by the UI. -->\n <div class=\"flex-grow text-pre-wrap\">{{ agentErrorMsg | translate }}</div>\n </div>\n </c8y-ai-chat-message>\n }\n\n <ng-template #suggestionsRef>\n @if (!isLoadingAiResponse()) {\n <!-- As soon as we have any suggestions (even empty) these take priority over what we restored from history -->\n @let activeSuggestions = suggestions() === undefined ? _restoredSuggestions : suggestions();\n @for (suggestion of activeSuggestions; track $index) {\n <c8y-ai-chat-suggestion\n [icon]=\"suggestion.icon || 'c8y-bulb'\"\n [useAiButtons]=\"true\"\n [prompt]=\"suggestion.prompt\"\n [label]=\"suggestion.label ?? suggestion.prompt\"\n (suggestionClicked)=\"sendMessage($event)\"\n [disabled]=\"isLoadingAiResponse()\"\n ></c8y-ai-chat-suggestion>\n }\n }\n </ng-template>\n </c8y-ai-chat>\n}\n", styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fade-in-out{animation:fadeIn .2s ease-in}.fade-in-out.ng-leave-active{animation:fadeOut .2s ease-out}.hidden-copy-label{display:block;font-size:0;line-height:0;-webkit-user-select:text;user-select:text}\n"] }]
1036
1036
  }], propDecorators: { agent: [{ type: i0.Input, args: [{ isSignal: true, alias: "agent", required: true }] }], suggestions: [{ type: i0.Input, args: [{ isSignal: true, alias: "suggestions", required: false }] }], chatConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "chatConfig", required: false }] }], welcomeTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "welcomeTemplate", required: false }] }], autoCreateAgents: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoCreateAgents", required: false }] }], variables: [{ type: i0.Input, args: [{ isSignal: true, alias: "variables", required: false }] }], assistantMessageComponent: [{ type: i0.Input, args: [{ isSignal: true, alias: "assistantMessageComponent", required: false }] }], assistantMessageDisplayConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "assistantMessageDisplayConfig", required: false }] }], preprocessAgentMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "preprocessAgentMessage", required: false }] }], pruneMessagesForAgent: [{ type: i0.Input, args: [{ isSignal: true, alias: "pruneMessagesForAgent", required: false }] }], skipHealthCheck: [{ type: i0.Input, args: [{ isSignal: true, alias: "skipHealthCheck", required: false }] }], initialChatHistory: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialChatHistory", required: false }] }], groundingContextProvider: [{ type: i0.Input, args: [{ isSignal: true, alias: "groundingContextProvider", required: false }] }], userAnalyticsContext: [{ type: i0.Input, args: [{ isSignal: true, alias: "userAnalyticsContext", required: false }] }], onMessageFinish: [{ type: i0.Output, args: ["onMessageFinish"] }], onToolResult: [{ type: i0.Output, args: ["onToolResult"] }], onFeedback: [{ type: i0.Output, args: ["onFeedback"] }], onMessagesChange: [{ type: i0.Output, args: ["onMessagesChange"] }], assistantMessageComponents: [{ type: i0.ViewChildren, args: [i0.forwardRef(() => AiChatAssistantMessageComponent), { isSignal: true }] }] } });
1037
1037
 
1038
1038
  class WidgetAiChatSectionComponent {