@copilotkitnext/angular 0.0.9-alpha.3 → 0.0.11
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.
- package/dist/esm2022/index.mjs +2 -70
- package/dist/esm2022/lib/agent.mjs +73 -0
- package/dist/esm2022/lib/chat-config.mjs +35 -0
- package/dist/esm2022/lib/chat-state.mjs +18 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-assistant-message-buttons.mjs +344 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-assistant-message-renderer.mjs +260 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-assistant-message-toolbar.mjs +22 -0
- package/dist/esm2022/{components/chat/copilot-chat-assistant-message.component.mjs → lib/components/chat/copilot-chat-assistant-message.mjs} +216 -240
- package/dist/esm2022/lib/components/chat/copilot-chat-assistant-message.types.mjs +2 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-audio-recorder.mjs +196 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-buttons.mjs +299 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-input-defaults.mjs +39 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-input.mjs +634 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-input.types.mjs +10 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-message-view-cursor.mjs +27 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-message-view.mjs +268 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-message-view.types.mjs +2 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-textarea.mjs +139 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-tool-calls-view.mjs +36 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-toolbar.mjs +20 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-tools-menu.mjs +203 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-user-message-branch-navigation.mjs +118 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-user-message-buttons.mjs +182 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-user-message-renderer.mjs +28 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-user-message-toolbar.mjs +25 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-user-message.mjs +306 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-user-message.types.mjs +2 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-view-disclaimer.mjs +48 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-view-feather.mjs +41 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-view-handlers.mjs +19 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-view-input-container.mjs +96 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-view-scroll-to-bottom-button.mjs +89 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-view-scroll-view.mjs +456 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-view.mjs +404 -0
- package/dist/esm2022/lib/components/chat/copilot-chat-view.types.mjs +2 -0
- package/dist/esm2022/lib/components/chat/copilot-chat.mjs +167 -0
- package/dist/esm2022/lib/config.mjs +9 -0
- package/dist/esm2022/lib/copilotkit.mjs +124 -0
- package/dist/esm2022/lib/directives/copilotkit-agent-context.mjs +130 -0
- package/dist/esm2022/lib/directives/stick-to-bottom.mjs +170 -0
- package/dist/esm2022/lib/directives/tooltip.mjs +217 -0
- package/dist/esm2022/lib/human-in-the-loop.mjs +19 -0
- package/dist/esm2022/lib/render-tool-calls.mjs +131 -0
- package/dist/esm2022/lib/resize-observer.mjs +152 -0
- package/dist/esm2022/lib/scroll-position.mjs +124 -0
- package/dist/esm2022/lib/slots/copilot-slot.mjs +156 -0
- package/dist/esm2022/lib/slots/index.mjs +4 -0
- package/dist/esm2022/lib/slots/slot.types.mjs +3 -3
- package/dist/esm2022/lib/slots/slot.utils.mjs +19 -15
- package/dist/esm2022/lib/tools.mjs +31 -0
- package/dist/esm2022/lib/utils.mjs +3 -3
- package/dist/esm2022/public-api.mjs +47 -0
- package/dist/fesm2022/copilotkitnext-angular.mjs +5249 -8271
- package/dist/fesm2022/copilotkitnext-angular.mjs.map +1 -1
- package/dist/index.d.ts +1 -55
- package/dist/lib/agent.d.ts +53 -0
- package/dist/{core/chat-configuration/chat-configuration.types.d.ts → lib/chat-config.d.ts} +4 -8
- package/dist/lib/chat-state.d.ts +10 -0
- package/dist/lib/components/chat/copilot-chat-assistant-message-buttons.d.ts +68 -0
- package/dist/lib/components/chat/copilot-chat-assistant-message-renderer.d.ts +26 -0
- package/dist/lib/components/chat/copilot-chat-assistant-message-toolbar.d.ts +7 -0
- package/dist/lib/components/chat/copilot-chat-assistant-message.d.ts +178 -0
- package/dist/{components → lib/components}/chat/copilot-chat-assistant-message.types.d.ts +1 -1
- package/dist/{components/chat/copilot-chat-audio-recorder.component.d.ts → lib/components/chat/copilot-chat-audio-recorder.d.ts} +10 -10
- package/dist/lib/components/chat/copilot-chat-buttons.d.ts +65 -0
- package/dist/lib/components/chat/copilot-chat-input-defaults.d.ts +38 -0
- package/dist/lib/components/chat/copilot-chat-input.d.ts +133 -0
- package/dist/{components → lib/components}/chat/copilot-chat-input.types.d.ts +11 -11
- package/dist/lib/components/chat/copilot-chat-message-view-cursor.d.ts +11 -0
- package/dist/{components/chat/copilot-chat-message-view.component.d.ts → lib/components/chat/copilot-chat-message-view.d.ts} +68 -36
- package/dist/{components → lib/components}/chat/copilot-chat-message-view.types.d.ts +2 -2
- package/dist/lib/components/chat/copilot-chat-textarea.d.ts +41 -0
- package/dist/lib/components/chat/copilot-chat-tool-calls-view.d.ts +55 -0
- package/dist/lib/components/chat/copilot-chat-toolbar.d.ts +7 -0
- package/dist/lib/components/chat/copilot-chat-tools-menu.d.ts +20 -0
- package/dist/lib/components/chat/copilot-chat-user-message-branch-navigation.d.ts +20 -0
- package/dist/lib/components/chat/copilot-chat-user-message-buttons.d.ts +35 -0
- package/dist/lib/components/chat/copilot-chat-user-message-renderer.d.ts +8 -0
- package/dist/lib/components/chat/copilot-chat-user-message-toolbar.d.ts +7 -0
- package/dist/lib/components/chat/copilot-chat-user-message.d.ts +55 -0
- package/dist/{components → lib/components}/chat/copilot-chat-user-message.types.d.ts +2 -2
- package/dist/lib/components/chat/copilot-chat-view-disclaimer.d.ts +15 -0
- package/dist/{components/chat/copilot-chat-view-feather.component.d.ts → lib/components/chat/copilot-chat-view-feather.d.ts} +6 -6
- package/dist/{components/chat/copilot-chat-view-handlers.service.d.ts → lib/components/chat/copilot-chat-view-handlers.d.ts} +3 -3
- package/dist/lib/components/chat/copilot-chat-view-input-container.d.ts +23 -0
- package/dist/lib/components/chat/copilot-chat-view-scroll-to-bottom-button.d.ts +16 -0
- package/dist/lib/components/chat/copilot-chat-view-scroll-view.d.ts +114 -0
- package/dist/lib/components/chat/copilot-chat-view.d.ts +239 -0
- package/dist/{components → lib/components}/chat/copilot-chat-view.types.d.ts +2 -2
- package/dist/lib/components/chat/copilot-chat.d.ts +67 -0
- package/dist/lib/config.d.ts +16 -0
- package/dist/lib/copilotkit.d.ts +29 -0
- package/dist/{directives/copilotkit-agent-context.directive.d.ts → lib/directives/copilotkit-agent-context.d.ts} +5 -5
- package/dist/lib/directives/stick-to-bottom.d.ts +62 -0
- package/dist/lib/directives/tooltip.d.ts +33 -0
- package/dist/lib/human-in-the-loop.d.ts +13 -0
- package/dist/lib/render-tool-calls.d.ts +75 -0
- package/dist/{services/resize-observer.service.d.ts → lib/resize-observer.d.ts} +2 -2
- package/dist/{services/scroll-position.service.d.ts → lib/scroll-position.d.ts} +6 -6
- package/dist/lib/slots/copilot-slot.d.ts +34 -0
- package/dist/lib/slots/index.d.ts +3 -0
- package/dist/lib/slots/slot.types.d.ts +1 -1
- package/dist/lib/slots/slot.utils.d.ts +6 -4
- package/dist/lib/tools.d.ts +63 -0
- package/dist/lib/utils.d.ts +1 -1
- package/dist/public-api.d.ts +46 -0
- package/dist/styles.css +0 -69
- package/package.json +5 -5
- package/dist/components/chat/copilot-chat-assistant-message-buttons.component.d.ts +0 -75
- package/dist/components/chat/copilot-chat-assistant-message-renderer.component.d.ts +0 -31
- package/dist/components/chat/copilot-chat-assistant-message-toolbar.component.d.ts +0 -8
- package/dist/components/chat/copilot-chat-assistant-message.component.d.ts +0 -132
- package/dist/components/chat/copilot-chat-buttons.component.d.ts +0 -66
- package/dist/components/chat/copilot-chat-input-defaults.d.ts +0 -37
- package/dist/components/chat/copilot-chat-input.component.d.ts +0 -133
- package/dist/components/chat/copilot-chat-message-view-cursor.component.d.ts +0 -15
- package/dist/components/chat/copilot-chat-textarea.component.d.ts +0 -45
- package/dist/components/chat/copilot-chat-tool-calls-view.component.d.ts +0 -35
- package/dist/components/chat/copilot-chat-toolbar.component.d.ts +0 -8
- package/dist/components/chat/copilot-chat-tools-menu.component.d.ts +0 -20
- package/dist/components/chat/copilot-chat-user-message-branch-navigation.component.d.ts +0 -23
- package/dist/components/chat/copilot-chat-user-message-buttons.component.d.ts +0 -39
- package/dist/components/chat/copilot-chat-user-message-renderer.component.d.ts +0 -9
- package/dist/components/chat/copilot-chat-user-message-toolbar.component.d.ts +0 -8
- package/dist/components/chat/copilot-chat-user-message.component.d.ts +0 -55
- package/dist/components/chat/copilot-chat-view-disclaimer.component.d.ts +0 -15
- package/dist/components/chat/copilot-chat-view-input-container.component.d.ts +0 -23
- package/dist/components/chat/copilot-chat-view-scroll-to-bottom-button.component.d.ts +0 -17
- package/dist/components/chat/copilot-chat-view-scroll-view.component.d.ts +0 -84
- package/dist/components/chat/copilot-chat-view.component.d.ts +0 -205
- package/dist/components/chat/copilot-chat.component.d.ts +0 -36
- package/dist/components/copilotkit-tool-render.component.d.ts +0 -25
- package/dist/core/chat-configuration/chat-configuration.providers.d.ts +0 -54
- package/dist/core/chat-configuration/chat-configuration.service.d.ts +0 -75
- package/dist/core/copilotkit.providers.d.ts +0 -13
- package/dist/core/copilotkit.service.d.ts +0 -119
- package/dist/core/copilotkit.types.d.ts +0 -81
- package/dist/directives/copilotkit-agent.directive.d.ts +0 -106
- package/dist/directives/copilotkit-chat-config.directive.d.ts +0 -84
- package/dist/directives/copilotkit-config.directive.d.ts +0 -44
- package/dist/directives/copilotkit-frontend-tool.directive.d.ts +0 -25
- package/dist/directives/copilotkit-human-in-the-loop.directive.d.ts +0 -124
- package/dist/directives/stick-to-bottom.directive.d.ts +0 -62
- package/dist/esm2022/components/chat/copilot-chat-assistant-message-buttons.component.mjs +0 -384
- package/dist/esm2022/components/chat/copilot-chat-assistant-message-renderer.component.mjs +0 -286
- package/dist/esm2022/components/chat/copilot-chat-assistant-message-toolbar.component.mjs +0 -27
- package/dist/esm2022/components/chat/copilot-chat-assistant-message.types.mjs +0 -2
- package/dist/esm2022/components/chat/copilot-chat-audio-recorder.component.mjs +0 -202
- package/dist/esm2022/components/chat/copilot-chat-buttons.component.mjs +0 -321
- package/dist/esm2022/components/chat/copilot-chat-input-defaults.mjs +0 -38
- package/dist/esm2022/components/chat/copilot-chat-input.component.mjs +0 -666
- package/dist/esm2022/components/chat/copilot-chat-input.types.mjs +0 -10
- package/dist/esm2022/components/chat/copilot-chat-message-view-cursor.component.mjs +0 -45
- package/dist/esm2022/components/chat/copilot-chat-message-view.component.mjs +0 -296
- package/dist/esm2022/components/chat/copilot-chat-message-view.types.mjs +0 -2
- package/dist/esm2022/components/chat/copilot-chat-textarea.component.mjs +0 -188
- package/dist/esm2022/components/chat/copilot-chat-tool-calls-view.component.mjs +0 -222
- package/dist/esm2022/components/chat/copilot-chat-toolbar.component.mjs +0 -25
- package/dist/esm2022/components/chat/copilot-chat-tools-menu.component.mjs +0 -199
- package/dist/esm2022/components/chat/copilot-chat-user-message-branch-navigation.component.mjs +0 -137
- package/dist/esm2022/components/chat/copilot-chat-user-message-buttons.component.mjs +0 -207
- package/dist/esm2022/components/chat/copilot-chat-user-message-renderer.component.mjs +0 -35
- package/dist/esm2022/components/chat/copilot-chat-user-message-toolbar.component.mjs +0 -34
- package/dist/esm2022/components/chat/copilot-chat-user-message.component.mjs +0 -341
- package/dist/esm2022/components/chat/copilot-chat-user-message.types.mjs +0 -2
- package/dist/esm2022/components/chat/copilot-chat-view-disclaimer.component.mjs +0 -52
- package/dist/esm2022/components/chat/copilot-chat-view-feather.component.mjs +0 -55
- package/dist/esm2022/components/chat/copilot-chat-view-handlers.service.mjs +0 -19
- package/dist/esm2022/components/chat/copilot-chat-view-input-container.component.mjs +0 -110
- package/dist/esm2022/components/chat/copilot-chat-view-scroll-to-bottom-button.component.mjs +0 -93
- package/dist/esm2022/components/chat/copilot-chat-view-scroll-view.component.mjs +0 -443
- package/dist/esm2022/components/chat/copilot-chat-view.component.mjs +0 -479
- package/dist/esm2022/components/chat/copilot-chat-view.types.mjs +0 -2
- package/dist/esm2022/components/chat/copilot-chat.component.mjs +0 -220
- package/dist/esm2022/components/copilotkit-tool-render.component.mjs +0 -150
- package/dist/esm2022/core/chat-configuration/chat-configuration.providers.mjs +0 -65
- package/dist/esm2022/core/chat-configuration/chat-configuration.service.mjs +0 -145
- package/dist/esm2022/core/chat-configuration/chat-configuration.types.mjs +0 -26
- package/dist/esm2022/core/copilotkit.providers.mjs +0 -34
- package/dist/esm2022/core/copilotkit.service.mjs +0 -411
- package/dist/esm2022/core/copilotkit.types.mjs +0 -13
- package/dist/esm2022/directives/copilotkit-agent-context.directive.mjs +0 -130
- package/dist/esm2022/directives/copilotkit-agent.directive.mjs +0 -221
- package/dist/esm2022/directives/copilotkit-chat-config.directive.mjs +0 -218
- package/dist/esm2022/directives/copilotkit-config.directive.mjs +0 -94
- package/dist/esm2022/directives/copilotkit-frontend-tool.directive.mjs +0 -128
- package/dist/esm2022/directives/copilotkit-human-in-the-loop.directive.mjs +0 -265
- package/dist/esm2022/directives/stick-to-bottom.directive.mjs +0 -181
- package/dist/esm2022/lib/directives/tooltip.directive.mjs +0 -211
- package/dist/esm2022/lib/slots/copilot-slot.component.mjs +0 -154
- package/dist/esm2022/services/resize-observer.service.mjs +0 -152
- package/dist/esm2022/services/scroll-position.service.mjs +0 -124
- package/dist/esm2022/types/frontend-tool.mjs +0 -2
- package/dist/esm2022/types/human-in-the-loop.mjs +0 -2
- package/dist/esm2022/utils/agent-context.utils.mjs +0 -114
- package/dist/esm2022/utils/agent.utils.mjs +0 -212
- package/dist/esm2022/utils/chat-config.utils.mjs +0 -186
- package/dist/esm2022/utils/copilotkit.utils.mjs +0 -20
- package/dist/esm2022/utils/frontend-tool.utils.mjs +0 -224
- package/dist/esm2022/utils/human-in-the-loop.utils.mjs +0 -293
- package/dist/lib/directives/tooltip.directive.d.ts +0 -33
- package/dist/lib/slots/copilot-slot.component.d.ts +0 -34
- package/dist/types/frontend-tool.d.ts +0 -37
- package/dist/types/human-in-the-loop.d.ts +0 -44
- package/dist/utils/agent-context.utils.d.ts +0 -75
- package/dist/utils/agent.utils.d.ts +0 -108
- package/dist/utils/chat-config.utils.d.ts +0 -166
- package/dist/utils/copilotkit.utils.d.ts +0 -16
- package/dist/utils/frontend-tool.utils.d.ts +0 -119
- package/dist/utils/human-in-the-loop.utils.d.ts +0 -92
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error class for audio recorder failures
|
|
3
|
+
*/
|
|
4
|
+
export class AudioRecorderError extends Error {
|
|
5
|
+
constructor(message) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = "AudioRecorderError";
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdC1jaGF0LWlucHV0LnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LWlucHV0LnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRCQTs7R0FFRztBQUNILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxLQUFLO0lBQzNDLFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVHlwZSwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG4vKipcbiAqIE1vZGUgb2YgdGhlIGNoYXQgaW5wdXQgY29tcG9uZW50XG4gKi9cbmV4cG9ydCB0eXBlIENvcGlsb3RDaGF0SW5wdXRNb2RlID0gXCJpbnB1dFwiIHwgXCJ0cmFuc2NyaWJlXCIgfCBcInByb2Nlc3NpbmdcIjtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWVudSBpdGVtIGluIHRoZSB0b29scyBtZW51XG4gKi9cbmV4cG9ydCB0eXBlIFRvb2xzTWVudUl0ZW0gPSB7XG4gIGxhYmVsOiBzdHJpbmc7XG59ICYgKFxuICB8IHtcbiAgICAgIGFjdGlvbjogKCkgPT4gdm9pZDtcbiAgICAgIGl0ZW1zPzogbmV2ZXI7XG4gICAgfVxuICB8IHtcbiAgICAgIGFjdGlvbj86IG5ldmVyO1xuICAgICAgaXRlbXM6IChUb29sc01lbnVJdGVtIHwgXCItXCIpW107XG4gICAgfVxuKTtcblxuLyoqXG4gKiBBdWRpbyByZWNvcmRlciBzdGF0ZVxuICovXG5leHBvcnQgdHlwZSBBdWRpb1JlY29yZGVyU3RhdGUgPSBcImlkbGVcIiB8IFwicmVjb3JkaW5nXCIgfCBcInByb2Nlc3NpbmdcIjtcblxuLyoqXG4gKiBFcnJvciBjbGFzcyBmb3IgYXVkaW8gcmVjb3JkZXIgZmFpbHVyZXNcbiAqL1xuZXhwb3J0IGNsYXNzIEF1ZGlvUmVjb3JkZXJFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gXCJBdWRpb1JlY29yZGVyRXJyb3JcIjtcbiAgfVxufVxuXG4vKipcbiAqIFByb3BzIGZvciB0ZXh0YXJlYSBjb21wb25lbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb3BpbG90Q2hhdFRleHRhcmVhUHJvcHMge1xuICB2YWx1ZT86IHN0cmluZztcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIG1heFJvd3M/OiBudW1iZXI7XG4gIGF1dG9Gb2N1cz86IGJvb2xlYW47XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgb25DaGFuZ2U/OiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbiAgb25LZXlEb3duPzogKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB2b2lkO1xuICBpbnB1dENsYXNzPzogc3RyaW5nO1xuICBzdHlsZT86IGFueTtcbiAgcm93cz86IG51bWJlcjtcbiAgY29scz86IG51bWJlcjtcbiAgcmVhZG9ubHk/OiBib29sZWFuO1xuICBzcGVsbGNoZWNrPzogYm9vbGVhbjtcbiAgd3JhcD86IFwiaGFyZFwiIHwgXCJzb2Z0XCIgfCBcIm9mZlwiO1xufVxuXG4vKipcbiAqIFByb3BzIGZvciBidXR0b24gY29tcG9uZW50c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENvcGlsb3RDaGF0QnV0dG9uUHJvcHMge1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIG9uQ2xpY2s/OiAoKSA9PiB2b2lkO1xuICBpbnB1dENsYXNzPzogc3RyaW5nO1xuICBzdHlsZT86IGFueTtcbiAgdHlwZT86IFwiYnV0dG9uXCIgfCBcInN1Ym1pdFwiIHwgXCJyZXNldFwiO1xuICBhcmlhTGFiZWw/OiBzdHJpbmc7XG4gIGFyaWFQcmVzc2VkPzogYm9vbGVhbjtcbiAgYXJpYUV4cGFuZGVkPzogYm9vbGVhbjtcbiAgdGl0bGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcHMgZm9yIHRvb2xiYXIgYnV0dG9uIHdpdGggdG9vbHRpcFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvcGlsb3RDaGF0VG9vbGJhckJ1dHRvblByb3BzIGV4dGVuZHMgQ29waWxvdENoYXRCdXR0b25Qcm9wcyB7XG4gIGljb24/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICB0b29sdGlwPzogc3RyaW5nO1xuICB2YXJpYW50PzogXCJwcmltYXJ5XCIgfCBcInNlY29uZGFyeVwiO1xufVxuXG4vKipcbiAqIFByb3BzIGZvciB0b29scyBtZW51IGJ1dHRvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvcGlsb3RDaGF0VG9vbHNCdXR0b25Qcm9wcyBleHRlbmRzIENvcGlsb3RDaGF0QnV0dG9uUHJvcHMge1xuICB0b29sc01lbnU/OiAoVG9vbHNNZW51SXRlbSB8IFwiLVwiKVtdO1xufVxuXG4vKipcbiAqIFByb3BzIGZvciBhdWRpbyByZWNvcmRlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvcGlsb3RDaGF0QXVkaW9SZWNvcmRlclByb3BzIHtcbiAgaW5wdXRDbGFzcz86IHN0cmluZztcbiAgc3R5bGU/OiBhbnk7XG4gIG9uU3RhdGVDaGFuZ2U/OiAoc3RhdGU6IEF1ZGlvUmVjb3JkZXJTdGF0ZSkgPT4gdm9pZDtcbiAgc2hvd0NvbnRyb2xzPzogYm9vbGVhbjtcbiAgbWF4RHVyYXRpb24/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUHJvcHMgZm9yIHRvb2xiYXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb3BpbG90Q2hhdFRvb2xiYXJQcm9wcyB7XG4gIGlucHV0Q2xhc3M/OiBzdHJpbmc7XG4gIHN0eWxlPzogYW55O1xuICBwb3NpdGlvbj86IFwidG9wXCIgfCBcImJvdHRvbVwiO1xuICBhbGlnbm1lbnQ/OiBcImxlZnRcIiB8IFwiY2VudGVyXCIgfCBcInJpZ2h0XCIgfCBcInNwYWNlLWJldHdlZW5cIjtcbn1cblxuLyoqXG4gKiBTbG90IGNvbmZpZ3VyYXRpb24gZm9yIGNoYXQgaW5wdXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb3BpbG90Q2hhdElucHV0U2xvdHMge1xuICB0ZXh0QXJlYT86IFR5cGU8YW55PiB8IFRlbXBsYXRlUmVmPGFueT47XG4gIHNlbmRCdXR0b24/OiBUeXBlPGFueT4gfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICBzdGFydFRyYW5zY3JpYmVCdXR0b24/OiBUeXBlPGFueT4gfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICBjYW5jZWxUcmFuc2NyaWJlQnV0dG9uPzogVHlwZTxhbnk+IHwgVGVtcGxhdGVSZWY8YW55PjtcbiAgZmluaXNoVHJhbnNjcmliZUJ1dHRvbj86IFR5cGU8YW55PiB8IFRlbXBsYXRlUmVmPGFueT47XG4gIGFkZEZpbGVCdXR0b24/OiBUeXBlPGFueT4gfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICB0b29sc0J1dHRvbj86IFR5cGU8YW55PiB8IFRlbXBsYXRlUmVmPGFueT47XG4gIHRvb2xiYXI/OiBUeXBlPGFueT4gfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICBhdWRpb1JlY29yZGVyPzogVHlwZTxhbnk+IHwgVGVtcGxhdGVSZWY8YW55Pjtcbn1cblxuLyoqXG4gKiBJbnB1dCBjb25maWd1cmF0aW9uIGZvciB0aGUgY2hhdCBpbnB1dCBjb21wb25lbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb3BpbG90Q2hhdElucHV0Q29uZmlnIHtcbiAgbW9kZT86IENvcGlsb3RDaGF0SW5wdXRNb2RlO1xuICB0b29sc01lbnU/OiAoVG9vbHNNZW51SXRlbSB8IFwiLVwiKVtdO1xuICBhdXRvRm9jdXM/OiBib29sZWFuO1xuICBhZGRpdGlvbmFsVG9vbGJhckl0ZW1zPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgdmFsdWU/OiBzdHJpbmc7XG4gIGNsYXNzPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE91dHB1dCBldmVudHMgZm9yIHRoZSBjaGF0IGlucHV0IGNvbXBvbmVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvcGlsb3RDaGF0SW5wdXRPdXRwdXRzIHtcbiAgc3VibWl0TWVzc2FnZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XG4gIHN0YXJ0VHJhbnNjcmliZTogKCkgPT4gdm9pZDtcbiAgY2FuY2VsVHJhbnNjcmliZTogKCkgPT4gdm9pZDtcbiAgZmluaXNoVHJhbnNjcmliZTogKCkgPT4gdm9pZDtcbiAgYWRkRmlsZTogKCkgPT4gdm9pZDtcbiAgY2hhbmdlVmFsdWU6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xufVxuIl19
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Component, input, ChangeDetectionStrategy, ViewEncapsulation, computed, } from "@angular/core";
|
|
2
|
+
import { CommonModule } from "@angular/common";
|
|
3
|
+
import { cn } from "../../utils";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* Cursor component that matches the React implementation exactly.
|
|
7
|
+
* Shows a pulsing dot animation to indicate activity.
|
|
8
|
+
*/
|
|
9
|
+
export class CopilotChatMessageViewCursor {
|
|
10
|
+
inputClass = input();
|
|
11
|
+
// Computed class that matches React exactly: w-[11px] h-[11px] rounded-full bg-foreground animate-pulse-cursor ml-1
|
|
12
|
+
computedClass = computed(() => cn("w-[11px] h-[11px] rounded-full bg-foreground animate-pulse-cursor ml-1", this.inputClass()));
|
|
13
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotChatMessageViewCursor, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: CopilotChatMessageViewCursor, isStandalone: true, selector: "copilot-chat-message-view-cursor", inputs: { inputClass: { classPropertyName: "inputClass", publicName: "inputClass", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: ` <div [class]="computedClass()"></div> `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
15
|
+
}
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotChatMessageViewCursor, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
args: [{
|
|
19
|
+
selector: "copilot-chat-message-view-cursor",
|
|
20
|
+
standalone: true,
|
|
21
|
+
imports: [CommonModule],
|
|
22
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
23
|
+
encapsulation: ViewEncapsulation.None,
|
|
24
|
+
template: ` <div [class]="computedClass()"></div> `,
|
|
25
|
+
}]
|
|
26
|
+
}] });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdC1jaGF0LW1lc3NhZ2Utdmlldy1jdXJzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvY2hhdC9jb3BpbG90LWNoYXQtbWVzc2FnZS12aWV3LWN1cnNvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFFakM7OztHQUdHO0FBU0gsTUFBTSxPQUFPLDRCQUE0QjtJQUN2QyxVQUFVLEdBQUcsS0FBSyxFQUFzQixDQUFDO0lBRXpDLG9IQUFvSDtJQUNwSCxhQUFhLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUM1QixFQUFFLENBQ0Esd0VBQXdFLEVBQ3hFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FDbEIsQ0FDRixDQUFDO3dHQVRTLDRCQUE0Qjs0RkFBNUIsNEJBQTRCLCtPQUY3Qix5Q0FBeUMsMkRBSHpDLFlBQVk7OzRGQUtYLDRCQUE0QjtrQkFSeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0NBQWtDO29CQUM1QyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLFFBQVEsRUFBRSx5Q0FBeUM7aUJBQ3BEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBpbnB1dCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb21wdXRlZCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IGNuIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XG5cbi8qKlxuICogQ3Vyc29yIGNvbXBvbmVudCB0aGF0IG1hdGNoZXMgdGhlIFJlYWN0IGltcGxlbWVudGF0aW9uIGV4YWN0bHkuXG4gKiBTaG93cyBhIHB1bHNpbmcgZG90IGFuaW1hdGlvbiB0byBpbmRpY2F0ZSBhY3Rpdml0eS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImNvcGlsb3QtY2hhdC1tZXNzYWdlLXZpZXctY3Vyc29yXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGU6IGAgPGRpdiBbY2xhc3NdPVwiY29tcHV0ZWRDbGFzcygpXCI+PC9kaXY+IGAsXG59KVxuZXhwb3J0IGNsYXNzIENvcGlsb3RDaGF0TWVzc2FnZVZpZXdDdXJzb3Ige1xuICBpbnB1dENsYXNzID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPigpO1xuXG4gIC8vIENvbXB1dGVkIGNsYXNzIHRoYXQgbWF0Y2hlcyBSZWFjdCBleGFjdGx5OiB3LVsxMXB4XSBoLVsxMXB4XSByb3VuZGVkLWZ1bGwgYmctZm9yZWdyb3VuZCBhbmltYXRlLXB1bHNlLWN1cnNvciBtbC0xXG4gIGNvbXB1dGVkQ2xhc3MgPSBjb21wdXRlZCgoKSA9PlxuICAgIGNuKFxuICAgICAgXCJ3LVsxMXB4XSBoLVsxMXB4XSByb3VuZGVkLWZ1bGwgYmctZm9yZWdyb3VuZCBhbmltYXRlLXB1bHNlLWN1cnNvciBtbC0xXCIsXG4gICAgICB0aGlzLmlucHV0Q2xhc3MoKVxuICAgIClcbiAgKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
import { Component, input, output, ContentChild, ChangeDetectionStrategy, ViewEncapsulation, computed, } from "@angular/core";
|
|
2
|
+
import { CommonModule } from "@angular/common";
|
|
3
|
+
import { CopilotSlot } from "../../slots/copilot-slot";
|
|
4
|
+
import { CopilotChatAssistantMessage } from "./copilot-chat-assistant-message";
|
|
5
|
+
import { CopilotChatUserMessage } from "./copilot-chat-user-message";
|
|
6
|
+
import { CopilotChatMessageViewCursor } from "./copilot-chat-message-view-cursor";
|
|
7
|
+
import { cn } from "../../utils";
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/common";
|
|
10
|
+
/**
|
|
11
|
+
* CopilotChatMessageView component - Angular port of the React component.
|
|
12
|
+
* Renders a list of chat messages with support for custom slots and layouts.
|
|
13
|
+
* DOM structure and Tailwind classes match the React implementation exactly.
|
|
14
|
+
*/
|
|
15
|
+
export class CopilotChatMessageView {
|
|
16
|
+
// Core inputs matching React props
|
|
17
|
+
messages = input([]);
|
|
18
|
+
showCursor = input(false);
|
|
19
|
+
isLoading = input(false);
|
|
20
|
+
inputClass = input();
|
|
21
|
+
// Handler availability handled via DI service
|
|
22
|
+
// Assistant message slot inputs
|
|
23
|
+
assistantMessageComponent = input();
|
|
24
|
+
assistantMessageTemplate = input();
|
|
25
|
+
assistantMessageClass = input();
|
|
26
|
+
// User message slot inputs
|
|
27
|
+
userMessageComponent = input();
|
|
28
|
+
userMessageTemplate = input();
|
|
29
|
+
userMessageClass = input();
|
|
30
|
+
// Cursor slot inputs
|
|
31
|
+
cursorComponent = input();
|
|
32
|
+
cursorTemplate = input();
|
|
33
|
+
cursorClass = input();
|
|
34
|
+
// Custom layout template (render prop pattern)
|
|
35
|
+
customLayoutTemplate;
|
|
36
|
+
// Output events (bubbled from child components)
|
|
37
|
+
assistantMessageThumbsUp = output();
|
|
38
|
+
assistantMessageThumbsDown = output();
|
|
39
|
+
assistantMessageReadAloud = output();
|
|
40
|
+
assistantMessageRegenerate = output();
|
|
41
|
+
userMessageCopy = output();
|
|
42
|
+
userMessageEdit = output();
|
|
43
|
+
// Default components for slots
|
|
44
|
+
defaultAssistantComponent = CopilotChatAssistantMessage;
|
|
45
|
+
defaultUserComponent = CopilotChatUserMessage;
|
|
46
|
+
defaultCursorComponent = CopilotChatMessageViewCursor;
|
|
47
|
+
// Derived values from inputs
|
|
48
|
+
messagesValue = computed(() => this.messages());
|
|
49
|
+
showCursorValue = computed(() => this.showCursor());
|
|
50
|
+
isLoadingValue = computed(() => this.isLoading());
|
|
51
|
+
// Computed class matching React: twMerge("flex flex-col", className)
|
|
52
|
+
computedClass = computed(() => cn("flex flex-col", this.inputClass()));
|
|
53
|
+
// Layout context for custom templates (render prop pattern)
|
|
54
|
+
layoutContext = computed(() => ({
|
|
55
|
+
isLoading: this.isLoadingValue(),
|
|
56
|
+
messages: this.messagesValue(),
|
|
57
|
+
showCursor: this.showCursorValue(),
|
|
58
|
+
messageElements: this.messagesValue().filter((m) => m && (m.role === "assistant" || m.role === "user")),
|
|
59
|
+
}));
|
|
60
|
+
// Slot resolution computed signals
|
|
61
|
+
assistantMessageSlot = computed(() => this.assistantMessageComponent() || this.assistantMessageClass());
|
|
62
|
+
userMessageSlot = computed(() => this.userMessageComponent() || this.userMessageClass());
|
|
63
|
+
cursorSlot = computed(() => this.cursorComponent() || this.cursorClass());
|
|
64
|
+
// Props merging helpers
|
|
65
|
+
mergeAssistantProps(message) {
|
|
66
|
+
return {
|
|
67
|
+
message,
|
|
68
|
+
messages: this.messagesValue(),
|
|
69
|
+
isLoading: this.isLoadingValue(),
|
|
70
|
+
inputClass: this.assistantMessageClass(),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
mergeUserProps(message) {
|
|
74
|
+
return {
|
|
75
|
+
message,
|
|
76
|
+
inputClass: this.userMessageClass(),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
// TrackBy function for performance optimization
|
|
80
|
+
trackByMessageId(index, message) {
|
|
81
|
+
return message?.id || `index-${index}`;
|
|
82
|
+
}
|
|
83
|
+
constructor() { }
|
|
84
|
+
// Event handlers - just pass them through
|
|
85
|
+
handleAssistantThumbsUp(event) {
|
|
86
|
+
this.assistantMessageThumbsUp.emit(event);
|
|
87
|
+
}
|
|
88
|
+
handleAssistantThumbsDown(event) {
|
|
89
|
+
this.assistantMessageThumbsDown.emit(event);
|
|
90
|
+
}
|
|
91
|
+
handleAssistantReadAloud(event) {
|
|
92
|
+
this.assistantMessageReadAloud.emit(event);
|
|
93
|
+
}
|
|
94
|
+
handleAssistantRegenerate(event) {
|
|
95
|
+
this.assistantMessageRegenerate.emit(event);
|
|
96
|
+
}
|
|
97
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotChatMessageView, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
98
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CopilotChatMessageView, isStandalone: true, selector: "copilot-chat-message-view", inputs: { messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, showCursor: { classPropertyName: "showCursor", publicName: "showCursor", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, inputClass: { classPropertyName: "inputClass", publicName: "inputClass", isSignal: true, isRequired: false, transformFunction: null }, assistantMessageComponent: { classPropertyName: "assistantMessageComponent", publicName: "assistantMessageComponent", isSignal: true, isRequired: false, transformFunction: null }, assistantMessageTemplate: { classPropertyName: "assistantMessageTemplate", publicName: "assistantMessageTemplate", isSignal: true, isRequired: false, transformFunction: null }, assistantMessageClass: { classPropertyName: "assistantMessageClass", publicName: "assistantMessageClass", isSignal: true, isRequired: false, transformFunction: null }, userMessageComponent: { classPropertyName: "userMessageComponent", publicName: "userMessageComponent", isSignal: true, isRequired: false, transformFunction: null }, userMessageTemplate: { classPropertyName: "userMessageTemplate", publicName: "userMessageTemplate", isSignal: true, isRequired: false, transformFunction: null }, userMessageClass: { classPropertyName: "userMessageClass", publicName: "userMessageClass", isSignal: true, isRequired: false, transformFunction: null }, cursorComponent: { classPropertyName: "cursorComponent", publicName: "cursorComponent", isSignal: true, isRequired: false, transformFunction: null }, cursorTemplate: { classPropertyName: "cursorTemplate", publicName: "cursorTemplate", isSignal: true, isRequired: false, transformFunction: null }, cursorClass: { classPropertyName: "cursorClass", publicName: "cursorClass", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { assistantMessageThumbsUp: "assistantMessageThumbsUp", assistantMessageThumbsDown: "assistantMessageThumbsDown", assistantMessageReadAloud: "assistantMessageReadAloud", assistantMessageRegenerate: "assistantMessageRegenerate", userMessageCopy: "userMessageCopy", userMessageEdit: "userMessageEdit" }, queries: [{ propertyName: "customLayoutTemplate", first: true, predicate: ["customLayout"], descendants: true }], ngImport: i0, template: `
|
|
99
|
+
<!-- Custom layout template support (render prop pattern) -->
|
|
100
|
+
@if (customLayoutTemplate) {
|
|
101
|
+
<ng-container
|
|
102
|
+
[ngTemplateOutlet]="customLayoutTemplate"
|
|
103
|
+
[ngTemplateOutletContext]="layoutContext()"
|
|
104
|
+
></ng-container>
|
|
105
|
+
} @else {
|
|
106
|
+
<!-- Default layout - exact React DOM structure: div with "flex flex-col" classes -->
|
|
107
|
+
<div [class]="computedClass()">
|
|
108
|
+
<!-- Message iteration - simplified without tool calls -->
|
|
109
|
+
@for (
|
|
110
|
+
message of messagesValue();
|
|
111
|
+
track trackByMessageId($index, message)
|
|
112
|
+
) {
|
|
113
|
+
@if (message && message.role === "assistant") {
|
|
114
|
+
<!-- Assistant message with slot support -->
|
|
115
|
+
@if (assistantMessageComponent() || assistantMessageTemplate()) {
|
|
116
|
+
<copilot-slot
|
|
117
|
+
[slot]="
|
|
118
|
+
assistantMessageTemplate() || assistantMessageComponent()
|
|
119
|
+
"
|
|
120
|
+
[context]="mergeAssistantProps(message)"
|
|
121
|
+
[defaultComponent]="defaultAssistantComponent"
|
|
122
|
+
>
|
|
123
|
+
</copilot-slot>
|
|
124
|
+
} @else {
|
|
125
|
+
<copilot-chat-assistant-message
|
|
126
|
+
[message]="message"
|
|
127
|
+
[messages]="messagesValue()"
|
|
128
|
+
[isLoading]="isLoadingValue()"
|
|
129
|
+
[inputClass]="assistantMessageClass()"
|
|
130
|
+
(thumbsUp)="handleAssistantThumbsUp($event)"
|
|
131
|
+
(thumbsDown)="handleAssistantThumbsDown($event)"
|
|
132
|
+
(readAloud)="handleAssistantReadAloud($event)"
|
|
133
|
+
(regenerate)="handleAssistantRegenerate($event)"
|
|
134
|
+
>
|
|
135
|
+
</copilot-chat-assistant-message>
|
|
136
|
+
}
|
|
137
|
+
} @else if (message && message.role === "user") {
|
|
138
|
+
<!-- User message with slot support -->
|
|
139
|
+
@if (userMessageComponent() || userMessageTemplate()) {
|
|
140
|
+
<copilot-slot
|
|
141
|
+
[slot]="userMessageTemplate() || userMessageComponent()"
|
|
142
|
+
[context]="mergeUserProps(message)"
|
|
143
|
+
[defaultComponent]="defaultUserComponent"
|
|
144
|
+
>
|
|
145
|
+
</copilot-slot>
|
|
146
|
+
} @else {
|
|
147
|
+
<copilot-chat-user-message
|
|
148
|
+
[message]="message"
|
|
149
|
+
[inputClass]="userMessageClass()"
|
|
150
|
+
>
|
|
151
|
+
</copilot-chat-user-message>
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
<!-- Cursor - exactly like React's conditional rendering -->
|
|
157
|
+
@if (showCursorValue()) {
|
|
158
|
+
@if (cursorComponent() || cursorTemplate()) {
|
|
159
|
+
<copilot-slot
|
|
160
|
+
[slot]="cursorTemplate() || cursorComponent()"
|
|
161
|
+
[context]="{ inputClass: cursorClass() }"
|
|
162
|
+
[defaultComponent]="defaultCursorComponent"
|
|
163
|
+
>
|
|
164
|
+
</copilot-slot>
|
|
165
|
+
} @else {
|
|
166
|
+
<copilot-chat-message-view-cursor [inputClass]="cursorClass()">
|
|
167
|
+
</copilot-chat-message-view-cursor>
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
</div>
|
|
171
|
+
}
|
|
172
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: CopilotSlot, selector: "copilot-slot", inputs: ["slot", "context", "defaultComponent", "outputs"] }, { kind: "component", type: CopilotChatAssistantMessage, selector: "copilot-chat-assistant-message", inputs: ["markdownRendererClass", "toolbarClass", "copyButtonClass", "thumbsUpButtonClass", "thumbsDownButtonClass", "readAloudButtonClass", "regenerateButtonClass", "toolCallsViewClass", "markdownRendererComponent", "toolbarComponent", "copyButtonComponent", "thumbsUpButtonComponent", "thumbsDownButtonComponent", "readAloudButtonComponent", "regenerateButtonComponent", "toolCallsViewComponent", "message", "messages", "isLoading", "additionalToolbarItems", "toolbarVisible", "inputClass"], outputs: ["thumbsUp", "thumbsDown", "readAloud", "regenerate"] }, { kind: "component", type: CopilotChatUserMessage, selector: "copilot-chat-user-message", inputs: ["messageRendererClass", "toolbarClass", "copyButtonClass", "editButtonClass", "branchNavigationClass", "messageRendererComponent", "toolbarComponent", "copyButtonComponent", "editButtonComponent", "branchNavigationComponent", "message", "branchIndex", "numberOfBranches", "additionalToolbarItems", "inputClass"], outputs: ["editMessage", "switchToBranch"] }, { kind: "component", type: CopilotChatMessageViewCursor, selector: "copilot-chat-message-view-cursor", inputs: ["inputClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
173
|
+
}
|
|
174
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotChatMessageView, decorators: [{
|
|
175
|
+
type: Component,
|
|
176
|
+
args: [{
|
|
177
|
+
selector: "copilot-chat-message-view",
|
|
178
|
+
standalone: true,
|
|
179
|
+
imports: [
|
|
180
|
+
CommonModule,
|
|
181
|
+
CopilotSlot,
|
|
182
|
+
CopilotChatAssistantMessage,
|
|
183
|
+
CopilotChatUserMessage,
|
|
184
|
+
CopilotChatMessageViewCursor,
|
|
185
|
+
],
|
|
186
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
187
|
+
encapsulation: ViewEncapsulation.None,
|
|
188
|
+
template: `
|
|
189
|
+
<!-- Custom layout template support (render prop pattern) -->
|
|
190
|
+
@if (customLayoutTemplate) {
|
|
191
|
+
<ng-container
|
|
192
|
+
[ngTemplateOutlet]="customLayoutTemplate"
|
|
193
|
+
[ngTemplateOutletContext]="layoutContext()"
|
|
194
|
+
></ng-container>
|
|
195
|
+
} @else {
|
|
196
|
+
<!-- Default layout - exact React DOM structure: div with "flex flex-col" classes -->
|
|
197
|
+
<div [class]="computedClass()">
|
|
198
|
+
<!-- Message iteration - simplified without tool calls -->
|
|
199
|
+
@for (
|
|
200
|
+
message of messagesValue();
|
|
201
|
+
track trackByMessageId($index, message)
|
|
202
|
+
) {
|
|
203
|
+
@if (message && message.role === "assistant") {
|
|
204
|
+
<!-- Assistant message with slot support -->
|
|
205
|
+
@if (assistantMessageComponent() || assistantMessageTemplate()) {
|
|
206
|
+
<copilot-slot
|
|
207
|
+
[slot]="
|
|
208
|
+
assistantMessageTemplate() || assistantMessageComponent()
|
|
209
|
+
"
|
|
210
|
+
[context]="mergeAssistantProps(message)"
|
|
211
|
+
[defaultComponent]="defaultAssistantComponent"
|
|
212
|
+
>
|
|
213
|
+
</copilot-slot>
|
|
214
|
+
} @else {
|
|
215
|
+
<copilot-chat-assistant-message
|
|
216
|
+
[message]="message"
|
|
217
|
+
[messages]="messagesValue()"
|
|
218
|
+
[isLoading]="isLoadingValue()"
|
|
219
|
+
[inputClass]="assistantMessageClass()"
|
|
220
|
+
(thumbsUp)="handleAssistantThumbsUp($event)"
|
|
221
|
+
(thumbsDown)="handleAssistantThumbsDown($event)"
|
|
222
|
+
(readAloud)="handleAssistantReadAloud($event)"
|
|
223
|
+
(regenerate)="handleAssistantRegenerate($event)"
|
|
224
|
+
>
|
|
225
|
+
</copilot-chat-assistant-message>
|
|
226
|
+
}
|
|
227
|
+
} @else if (message && message.role === "user") {
|
|
228
|
+
<!-- User message with slot support -->
|
|
229
|
+
@if (userMessageComponent() || userMessageTemplate()) {
|
|
230
|
+
<copilot-slot
|
|
231
|
+
[slot]="userMessageTemplate() || userMessageComponent()"
|
|
232
|
+
[context]="mergeUserProps(message)"
|
|
233
|
+
[defaultComponent]="defaultUserComponent"
|
|
234
|
+
>
|
|
235
|
+
</copilot-slot>
|
|
236
|
+
} @else {
|
|
237
|
+
<copilot-chat-user-message
|
|
238
|
+
[message]="message"
|
|
239
|
+
[inputClass]="userMessageClass()"
|
|
240
|
+
>
|
|
241
|
+
</copilot-chat-user-message>
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
<!-- Cursor - exactly like React's conditional rendering -->
|
|
247
|
+
@if (showCursorValue()) {
|
|
248
|
+
@if (cursorComponent() || cursorTemplate()) {
|
|
249
|
+
<copilot-slot
|
|
250
|
+
[slot]="cursorTemplate() || cursorComponent()"
|
|
251
|
+
[context]="{ inputClass: cursorClass() }"
|
|
252
|
+
[defaultComponent]="defaultCursorComponent"
|
|
253
|
+
>
|
|
254
|
+
</copilot-slot>
|
|
255
|
+
} @else {
|
|
256
|
+
<copilot-chat-message-view-cursor [inputClass]="cursorClass()">
|
|
257
|
+
</copilot-chat-message-view-cursor>
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
</div>
|
|
261
|
+
}
|
|
262
|
+
`,
|
|
263
|
+
}]
|
|
264
|
+
}], ctorParameters: () => [], propDecorators: { customLayoutTemplate: [{
|
|
265
|
+
type: ContentChild,
|
|
266
|
+
args: ["customLayout"]
|
|
267
|
+
}] } });
|
|
268
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdC1jaGF0LW1lc3NhZ2Utdmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9jaGF0L2NvcGlsb3QtY2hhdC1tZXNzYWdlLXZpZXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFHWix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXZELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQUVqQzs7OztHQUlHO0FBeUZILE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsbUNBQW1DO0lBQ25DLFFBQVEsR0FBRyxLQUFLLENBQVksRUFBRSxDQUFDLENBQUM7SUFDaEMsVUFBVSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUNuQyxTQUFTLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLFVBQVUsR0FBRyxLQUFLLEVBQXNCLENBQUM7SUFFekMsOENBQThDO0lBRTlDLGdDQUFnQztJQUNoQyx5QkFBeUIsR0FBRyxLQUFLLEVBQXlCLENBQUM7SUFDM0Qsd0JBQXdCLEdBQUcsS0FBSyxFQUFnQyxDQUFDO0lBQ2pFLHFCQUFxQixHQUFHLEtBQUssRUFBc0IsQ0FBQztJQUVwRCwyQkFBMkI7SUFDM0Isb0JBQW9C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YUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwRVQ7aUJBQ0Y7d0RBMEIrQixvQkFBb0I7c0JBQWpELFlBQVk7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgQ29udGVudENoaWxkLFxuICBUZW1wbGF0ZVJlZixcbiAgVHlwZSxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb21wdXRlZCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IENvcGlsb3RTbG90IH0gZnJvbSBcIi4uLy4uL3Nsb3RzL2NvcGlsb3Qtc2xvdFwiO1xuaW1wb3J0IHR5cGUgeyBNZXNzYWdlIH0gZnJvbSBcIkBhZy11aS9jb3JlXCI7XG5pbXBvcnQgeyBDb3BpbG90Q2hhdEFzc2lzdGFudE1lc3NhZ2UgfSBmcm9tIFwiLi9jb3BpbG90LWNoYXQtYXNzaXN0YW50LW1lc3NhZ2VcIjtcbmltcG9ydCB7IENvcGlsb3RDaGF0VXNlck1lc3NhZ2UgfSBmcm9tIFwiLi9jb3BpbG90LWNoYXQtdXNlci1tZXNzYWdlXCI7XG5pbXBvcnQgeyBDb3BpbG90Q2hhdE1lc3NhZ2VWaWV3Q3Vyc29yIH0gZnJvbSBcIi4vY29waWxvdC1jaGF0LW1lc3NhZ2Utdmlldy1jdXJzb3JcIjtcbmltcG9ydCB7IGNuIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XG5cbi8qKlxuICogQ29waWxvdENoYXRNZXNzYWdlVmlldyBjb21wb25lbnQgLSBBbmd1bGFyIHBvcnQgb2YgdGhlIFJlYWN0IGNvbXBvbmVudC5cbiAqIFJlbmRlcnMgYSBsaXN0IG9mIGNoYXQgbWVzc2FnZXMgd2l0aCBzdXBwb3J0IGZvciBjdXN0b20gc2xvdHMgYW5kIGxheW91dHMuXG4gKiBET00gc3RydWN0dXJlIGFuZCBUYWlsd2luZCBjbGFzc2VzIG1hdGNoIHRoZSBSZWFjdCBpbXBsZW1lbnRhdGlvbiBleGFjdGx5LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiY29waWxvdC1jaGF0LW1lc3NhZ2Utdmlld1wiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIENvcGlsb3RTbG90LFxuICAgIENvcGlsb3RDaGF0QXNzaXN0YW50TWVzc2FnZSxcbiAgICBDb3BpbG90Q2hhdFVzZXJNZXNzYWdlLFxuICAgIENvcGlsb3RDaGF0TWVzc2FnZVZpZXdDdXJzb3IsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICB0ZW1wbGF0ZTogYFxuICAgIDwhLS0gQ3VzdG9tIGxheW91dCB0ZW1wbGF0ZSBzdXBwb3J0IChyZW5kZXIgcHJvcCBwYXR0ZXJuKSAtLT5cbiAgICBAaWYgKGN1c3RvbUxheW91dFRlbXBsYXRlKSB7XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImN1c3RvbUxheW91dFRlbXBsYXRlXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImxheW91dENvbnRleHQoKVwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8IS0tIERlZmF1bHQgbGF5b3V0IC0gZXhhY3QgUmVhY3QgRE9NIHN0cnVjdHVyZTogZGl2IHdpdGggXCJmbGV4IGZsZXgtY29sXCIgY2xhc3NlcyAtLT5cbiAgICAgIDxkaXYgW2NsYXNzXT1cImNvbXB1dGVkQ2xhc3MoKVwiPlxuICAgICAgICA8IS0tIE1lc3NhZ2UgaXRlcmF0aW9uIC0gc2ltcGxpZmllZCB3aXRob3V0IHRvb2wgY2FsbHMgLS0+XG4gICAgICAgIEBmb3IgKFxuICAgICAgICAgIG1lc3NhZ2Ugb2YgbWVzc2FnZXNWYWx1ZSgpO1xuICAgICAgICAgIHRyYWNrIHRyYWNrQnlNZXNzYWdlSWQoJGluZGV4LCBtZXNzYWdlKVxuICAgICAgICApIHtcbiAgICAgICAgICBAaWYgKG1lc3NhZ2UgJiYgbWVzc2FnZS5yb2xlID09PSBcImFzc2lzdGFudFwiKSB7XG4gICAgICAgICAgICA8IS0tIEFzc2lzdGFudCBtZXNzYWdlIHdpdGggc2xvdCBzdXBwb3J0IC0tPlxuICAgICAgICAgICAgQGlmIChhc3Npc3RhbnRNZXNzYWdlQ29tcG9uZW50KCkgfHwgYXNzaXN0YW50TWVzc2FnZVRlbXBsYXRlKCkpIHtcbiAgICAgICAgICAgICAgPGNvcGlsb3Qtc2xvdFxuICAgICAgICAgICAgICAgIFtzbG90XT1cIlxuICAgICAgICAgICAgICAgICAgYXNzaXN0YW50TWVzc2FnZVRlbXBsYXRlKCkgfHwgYXNzaXN0YW50TWVzc2FnZUNvbXBvbmVudCgpXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbY29udGV4dF09XCJtZXJnZUFzc2lzdGFudFByb3BzKG1lc3NhZ2UpXCJcbiAgICAgICAgICAgICAgICBbZGVmYXVsdENvbXBvbmVudF09XCJkZWZhdWx0QXNzaXN0YW50Q29tcG9uZW50XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L2NvcGlsb3Qtc2xvdD5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICA8Y29waWxvdC1jaGF0LWFzc2lzdGFudC1tZXNzYWdlXG4gICAgICAgICAgICAgICAgW21lc3NhZ2VdPVwibWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgW21lc3NhZ2VzXT1cIm1lc3NhZ2VzVmFsdWUoKVwiXG4gICAgICAgICAgICAgICAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmdWYWx1ZSgpXCJcbiAgICAgICAgICAgICAgICBbaW5wdXRDbGFzc109XCJhc3Npc3RhbnRNZXNzYWdlQ2xhc3MoKVwiXG4gICAgICAgICAgICAgICAgKHRodW1ic1VwKT1cImhhbmRsZUFzc2lzdGFudFRodW1ic1VwKCRldmVudClcIlxuICAgICAgICAgICAgICAgICh0aHVtYnNEb3duKT1cImhhbmRsZUFzc2lzdGFudFRodW1ic0Rvd24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKHJlYWRBbG91ZCk9XCJoYW5kbGVBc3Npc3RhbnRSZWFkQWxvdWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKHJlZ2VuZXJhdGUpPVwiaGFuZGxlQXNzaXN0YW50UmVnZW5lcmF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L2NvcGlsb3QtY2hhdC1hc3Npc3RhbnQtbWVzc2FnZT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IEBlbHNlIGlmIChtZXNzYWdlICYmIG1lc3NhZ2Uucm9sZSA9PT0gXCJ1c2VyXCIpIHtcbiAgICAgICAgICAgIDwhLS0gVXNlciBtZXNzYWdlIHdpdGggc2xvdCBzdXBwb3J0IC0tPlxuICAgICAgICAgICAgQGlmICh1c2VyTWVzc2FnZUNvbXBvbmVudCgpIHx8IHVzZXJNZXNzYWdlVGVtcGxhdGUoKSkge1xuICAgICAgICAgICAgICA8Y29waWxvdC1zbG90XG4gICAgICAgICAgICAgICAgW3Nsb3RdPVwidXNlck1lc3NhZ2VUZW1wbGF0ZSgpIHx8IHVzZXJNZXNzYWdlQ29tcG9uZW50KClcIlxuICAgICAgICAgICAgICAgIFtjb250ZXh0XT1cIm1lcmdlVXNlclByb3BzKG1lc3NhZ2UpXCJcbiAgICAgICAgICAgICAgICBbZGVmYXVsdENvbXBvbmVudF09XCJkZWZhdWx0VXNlckNvbXBvbmVudFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9jb3BpbG90LXNsb3Q+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPGNvcGlsb3QtY2hhdC11c2VyLW1lc3NhZ2VcbiAgICAgICAgICAgICAgICBbbWVzc2FnZV09XCJtZXNzYWdlXCJcbiAgICAgICAgICAgICAgICBbaW5wdXRDbGFzc109XCJ1c2VyTWVzc2FnZUNsYXNzKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvY29waWxvdC1jaGF0LXVzZXItbWVzc2FnZT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIEN1cnNvciAtIGV4YWN0bHkgbGlrZSBSZWFjdCdzIGNvbmRpdGlvbmFsIHJlbmRlcmluZyAtLT5cbiAgICAgICAgQGlmIChzaG93Q3Vyc29yVmFsdWUoKSkge1xuICAgICAgICAgIEBpZiAoY3Vyc29yQ29tcG9uZW50KCkgfHwgY3Vyc29yVGVtcGxhdGUoKSkge1xuICAgICAgICAgICAgPGNvcGlsb3Qtc2xvdFxuICAgICAgICAgICAgICBbc2xvdF09XCJjdXJzb3JUZW1wbGF0ZSgpIHx8IGN1cnNvckNvbXBvbmVudCgpXCJcbiAgICAgICAgICAgICAgW2NvbnRleHRdPVwieyBpbnB1dENsYXNzOiBjdXJzb3JDbGFzcygpIH1cIlxuICAgICAgICAgICAgICBbZGVmYXVsdENvbXBvbmVudF09XCJkZWZhdWx0Q3Vyc29yQ29tcG9uZW50XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvY29waWxvdC1zbG90PlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGNvcGlsb3QtY2hhdC1tZXNzYWdlLXZpZXctY3Vyc29yIFtpbnB1dENsYXNzXT1cImN1cnNvckNsYXNzKClcIj5cbiAgICAgICAgICAgIDwvY29waWxvdC1jaGF0LW1lc3NhZ2Utdmlldy1jdXJzb3I+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIENvcGlsb3RDaGF0TWVzc2FnZVZpZXcge1xuICAvLyBDb3JlIGlucHV0cyBtYXRjaGluZyBSZWFjdCBwcm9wc1xuICBtZXNzYWdlcyA9IGlucHV0PE1lc3NhZ2VbXT4oW10pO1xuICBzaG93Q3Vyc29yID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBpc0xvYWRpbmcgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIGlucHV0Q2xhc3MgPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQ+KCk7XG5cbiAgLy8gSGFuZGxlciBhdmFpbGFiaWxpdHkgaGFuZGxlZCB2aWEgREkgc2VydmljZVxuXG4gIC8vIEFzc2lzdGFudCBtZXNzYWdlIHNsb3QgaW5wdXRzXG4gIGFzc2lzdGFudE1lc3NhZ2VDb21wb25lbnQgPSBpbnB1dDxUeXBlPGFueT4gfCB1bmRlZmluZWQ+KCk7XG4gIGFzc2lzdGFudE1lc3NhZ2VUZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ+KCk7XG4gIGFzc2lzdGFudE1lc3NhZ2VDbGFzcyA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4oKTtcblxuICAvLyBVc2VyIG1lc3NhZ2Ugc2xvdCBpbnB1dHNcbiAgdXNlck1lc3NhZ2VDb21wb25lbnQgPSBpbnB1dDxUeXBlPGFueT4gfCB1bmRlZmluZWQ+KCk7XG4gIHVzZXJNZXNzYWdlVGVtcGxhdGUgPSBpbnB1dDxUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkPigpO1xuICB1c2VyTWVzc2FnZUNsYXNzID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPigpO1xuXG4gIC8vIEN1cnNvciBzbG90IGlucHV0c1xuICBjdXJzb3JDb21wb25lbnQgPSBpbnB1dDxUeXBlPGFueT4gfCB1bmRlZmluZWQ+KCk7XG4gIGN1cnNvclRlbXBsYXRlID0gaW5wdXQ8VGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZD4oKTtcbiAgY3Vyc29yQ2xhc3MgPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQ+KCk7XG5cbiAgLy8gQ3VzdG9tIGxheW91dCB0ZW1wbGF0ZSAocmVuZGVyIHByb3AgcGF0dGVybilcbiAgQENvbnRlbnRDaGlsZChcImN1c3RvbUxheW91dFwiKSBjdXN0b21MYXlvdXRUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgLy8gT3V0cHV0IGV2ZW50cyAoYnViYmxlZCBmcm9tIGNoaWxkIGNvbXBvbmVudHMpXG4gIGFzc2lzdGFudE1lc3NhZ2VUaHVtYnNVcCA9IG91dHB1dDx7IG1lc3NhZ2U6IE1lc3NhZ2UgfT4oKTtcbiAgYXNzaXN0YW50TWVzc2FnZVRodW1ic0Rvd24gPSBvdXRwdXQ8eyBtZXNzYWdlOiBNZXNzYWdlIH0+KCk7XG4gIGFzc2lzdGFudE1lc3NhZ2VSZWFkQWxvdWQgPSBvdXRwdXQ8eyBtZXNzYWdlOiBNZXNzYWdlIH0+KCk7XG4gIGFzc2lzdGFudE1lc3NhZ2VSZWdlbmVyYXRlID0gb3V0cHV0PHsgbWVzc2FnZTogTWVzc2FnZSB9PigpO1xuICB1c2VyTWVzc2FnZUNvcHkgPSBvdXRwdXQ8eyBtZXNzYWdlOiBNZXNzYWdlIH0+KCk7XG4gIHVzZXJNZXNzYWdlRWRpdCA9IG91dHB1dDx7IG1lc3NhZ2U6IE1lc3NhZ2UgfT4oKTtcblxuICAvLyBEZWZhdWx0IGNvbXBvbmVudHMgZm9yIHNsb3RzXG4gIHByb3RlY3RlZCByZWFkb25seSBkZWZhdWx0QXNzaXN0YW50Q29tcG9uZW50ID0gQ29waWxvdENoYXRBc3Npc3RhbnRNZXNzYWdlO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVmYXVsdFVzZXJDb21wb25lbnQgPSBDb3BpbG90Q2hhdFVzZXJNZXNzYWdlO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVmYXVsdEN1cnNvckNvbXBvbmVudCA9IENvcGlsb3RDaGF0TWVzc2FnZVZpZXdDdXJzb3I7XG5cbiAgLy8gRGVyaXZlZCB2YWx1ZXMgZnJvbSBpbnB1dHNcbiAgcHJvdGVjdGVkIG1lc3NhZ2VzVmFsdWUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1lc3NhZ2VzKCkpO1xuICBwcm90ZWN0ZWQgc2hvd0N1cnNvclZhbHVlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zaG93Q3Vyc29yKCkpO1xuICBwcm90ZWN0ZWQgaXNMb2FkaW5nVmFsdWUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmlzTG9hZGluZygpKTtcblxuICAvLyBDb21wdXRlZCBjbGFzcyBtYXRjaGluZyBSZWFjdDogdHdNZXJnZShcImZsZXggZmxleC1jb2xcIiwgY2xhc3NOYW1lKVxuICBjb21wdXRlZENsYXNzID0gY29tcHV0ZWQoKCkgPT4gY24oXCJmbGV4IGZsZXgtY29sXCIsIHRoaXMuaW5wdXRDbGFzcygpKSk7XG5cbiAgLy8gTGF5b3V0IGNvbnRleHQgZm9yIGN1c3RvbSB0ZW1wbGF0ZXMgKHJlbmRlciBwcm9wIHBhdHRlcm4pXG4gIGxheW91dENvbnRleHQgPSBjb21wdXRlZCgoKSA9PiAoe1xuICAgIGlzTG9hZGluZzogdGhpcy5pc0xvYWRpbmdWYWx1ZSgpLFxuICAgIG1lc3NhZ2VzOiB0aGlzLm1lc3NhZ2VzVmFsdWUoKSxcbiAgICBzaG93Q3Vyc29yOiB0aGlzLnNob3dDdXJzb3JWYWx1ZSgpLFxuICAgIG1lc3NhZ2VFbGVtZW50czogdGhpcy5tZXNzYWdlc1ZhbHVlKCkuZmlsdGVyKFxuICAgICAgKG0pID0+IG0gJiYgKG0ucm9sZSA9PT0gXCJhc3Npc3RhbnRcIiB8fCBtLnJvbGUgPT09IFwidXNlclwiKVxuICAgICksXG4gIH0pKTtcblxuICAvLyBTbG90IHJlc29sdXRpb24gY29tcHV0ZWQgc2lnbmFsc1xuICBhc3Npc3RhbnRNZXNzYWdlU2xvdCA9IGNvbXB1dGVkKFxuICAgICgpID0+IHRoaXMuYXNzaXN0YW50TWVzc2FnZUNvbXBvbmVudCgpIHx8IHRoaXMuYXNzaXN0YW50TWVzc2FnZUNsYXNzKClcbiAgKTtcblxuICB1c2VyTWVzc2FnZVNsb3QgPSBjb21wdXRlZChcbiAgICAoKSA9PiB0aGlzLnVzZXJNZXNzYWdlQ29tcG9uZW50KCkgfHwgdGhpcy51c2VyTWVzc2FnZUNsYXNzKClcbiAgKTtcblxuICBjdXJzb3JTbG90ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jdXJzb3JDb21wb25lbnQoKSB8fCB0aGlzLmN1cnNvckNsYXNzKCkpO1xuXG4gIC8vIFByb3BzIG1lcmdpbmcgaGVscGVyc1xuICBtZXJnZUFzc2lzdGFudFByb3BzKG1lc3NhZ2U6IE1lc3NhZ2UpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWVzc2FnZSxcbiAgICAgIG1lc3NhZ2VzOiB0aGlzLm1lc3NhZ2VzVmFsdWUoKSxcbiAgICAgIGlzTG9hZGluZzogdGhpcy5pc0xvYWRpbmdWYWx1ZSgpLFxuICAgICAgaW5wdXRDbGFzczogdGhpcy5hc3Npc3RhbnRNZXNzYWdlQ2xhc3MoKSxcbiAgICB9O1xuICB9XG5cbiAgbWVyZ2VVc2VyUHJvcHMobWVzc2FnZTogTWVzc2FnZSkge1xuICAgIHJldHVybiB7XG4gICAgICBtZXNzYWdlLFxuICAgICAgaW5wdXRDbGFzczogdGhpcy51c2VyTWVzc2FnZUNsYXNzKCksXG4gICAgfTtcbiAgfVxuXG4gIC8vIFRyYWNrQnkgZnVuY3Rpb24gZm9yIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvblxuICB0cmFja0J5TWVzc2FnZUlkKGluZGV4OiBudW1iZXIsIG1lc3NhZ2U6IE1lc3NhZ2UpOiBzdHJpbmcge1xuICAgIHJldHVybiBtZXNzYWdlPy5pZCB8fCBgaW5kZXgtJHtpbmRleH1gO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIC8vIEV2ZW50IGhhbmRsZXJzIC0ganVzdCBwYXNzIHRoZW0gdGhyb3VnaFxuICBoYW5kbGVBc3Npc3RhbnRUaHVtYnNVcChldmVudDogeyBtZXNzYWdlOiBNZXNzYWdlIH0pOiB2b2lkIHtcbiAgICB0aGlzLmFzc2lzdGFudE1lc3NhZ2VUaHVtYnNVcC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIGhhbmRsZUFzc2lzdGFudFRodW1ic0Rvd24oZXZlbnQ6IHsgbWVzc2FnZTogTWVzc2FnZSB9KTogdm9pZCB7XG4gICAgdGhpcy5hc3Npc3RhbnRNZXNzYWdlVGh1bWJzRG93bi5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIGhhbmRsZUFzc2lzdGFudFJlYWRBbG91ZChldmVudDogeyBtZXNzYWdlOiBNZXNzYWdlIH0pOiB2b2lkIHtcbiAgICB0aGlzLmFzc2lzdGFudE1lc3NhZ2VSZWFkQWxvdWQuZW1pdChldmVudCk7XG4gIH1cblxuICBoYW5kbGVBc3Npc3RhbnRSZWdlbmVyYXRlKGV2ZW50OiB7IG1lc3NhZ2U6IE1lc3NhZ2UgfSk6IHZvaWQge1xuICAgIHRoaXMuYXNzaXN0YW50TWVzc2FnZVJlZ2VuZXJhdGUuZW1pdChldmVudCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdC1jaGF0LW1lc3NhZ2Utdmlldy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9jaGF0L2NvcGlsb3QtY2hhdC1tZXNzYWdlLXZpZXcudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2UgfSBmcm9tIFwiQGFnLXVpL2NsaWVudFwiO1xuaW1wb3J0IHsgVHlwZSwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG4vLyBDb250ZXh0IGludGVyZmFjZXMgZm9yIHRlbXBsYXRlIHNsb3RzXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VWaWV3Q29udGV4dCB7XG4gIHNob3dDdXJzb3I6IGJvb2xlYW47XG4gIG1lc3NhZ2VzOiBNZXNzYWdlW107XG4gIG1lc3NhZ2VFbGVtZW50czogYW55W107IC8vIFdpbGwgYmUgcG9wdWxhdGVkIHdpdGggcmVuZGVyZWQgZWxlbWVudHNcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1vYmplY3QtdHlwZVxuZXhwb3J0IGludGVyZmFjZSBDdXJzb3JDb250ZXh0IHtcbiAgLy8gRW1wdHkgZm9yIG5vdywgY2FuIGJlIGV4dGVuZGVkIGlmIG5lZWRlZFxufVxuXG4vLyBDb21wb25lbnQgaW5wdXQgcHJvcHMgaW50ZXJmYWNlXG5leHBvcnQgaW50ZXJmYWNlIENvcGlsb3RDaGF0TWVzc2FnZVZpZXdQcm9wcyB7XG4gIG1lc3NhZ2VzPzogTWVzc2FnZVtdO1xuICBzaG93Q3Vyc29yPzogYm9vbGVhbjtcbiAgaW5wdXRDbGFzcz86IHN0cmluZztcblxuICAvLyBBc3Npc3RhbnQgbWVzc2FnZSBzbG90c1xuICBhc3Npc3RhbnRNZXNzYWdlQ29tcG9uZW50PzogVHlwZTxhbnk+O1xuICBhc3Npc3RhbnRNZXNzYWdlVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBhc3Npc3RhbnRNZXNzYWdlQ2xhc3M/OiBzdHJpbmc7XG5cbiAgLy8gVXNlciBtZXNzYWdlIHNsb3RzXG4gIHVzZXJNZXNzYWdlQ29tcG9uZW50PzogVHlwZTxhbnk+O1xuICB1c2VyTWVzc2FnZVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgdXNlck1lc3NhZ2VDbGFzcz86IHN0cmluZztcblxuICAvLyBDdXJzb3Igc2xvdHNcbiAgY3Vyc29yQ29tcG9uZW50PzogVHlwZTxhbnk+O1xuICBjdXJzb3JUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gIGN1cnNvckNsYXNzPzogc3RyaW5nO1xufVxuXG4vLyBSZS1leHBvcnQgZm9yIGNvbnZlbmllbmNlXG5leHBvcnQgdHlwZSB7IE1lc3NhZ2UgfTtcbiJdfQ==
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { Component, input, output, ElementRef, signal, computed, inject, ChangeDetectionStrategy, ViewEncapsulation, } from "@angular/core";
|
|
2
|
+
import { cn } from "../../utils";
|
|
3
|
+
import { injectChatLabels } from "../../chat-config";
|
|
4
|
+
import { injectChatState } from "../../chat-state";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class CopilotChatTextarea {
|
|
7
|
+
elementRef = inject((ElementRef));
|
|
8
|
+
get textareaRef() {
|
|
9
|
+
return this.elementRef;
|
|
10
|
+
}
|
|
11
|
+
inputValue = input();
|
|
12
|
+
inputPlaceholder = input();
|
|
13
|
+
inputMaxRows = input();
|
|
14
|
+
inputAutoFocus = input();
|
|
15
|
+
inputDisabled = input();
|
|
16
|
+
inputClass = input();
|
|
17
|
+
valueChange = output();
|
|
18
|
+
keyDown = output();
|
|
19
|
+
chatLabels = injectChatLabels();
|
|
20
|
+
chatState = injectChatState();
|
|
21
|
+
// Internal signals
|
|
22
|
+
maxHeight = signal(0);
|
|
23
|
+
// Computed values
|
|
24
|
+
computedValue = computed(() => this.inputValue() ?? this.chatState.inputValue() ?? "");
|
|
25
|
+
placeholder = computed(() => this.inputPlaceholder() || this.chatLabels.chatInputPlaceholder);
|
|
26
|
+
disabled = computed(() => this.inputDisabled() ?? false);
|
|
27
|
+
computedClass = computed(() => {
|
|
28
|
+
const baseClasses = cn(
|
|
29
|
+
// Layout and sizing
|
|
30
|
+
"w-full p-5 pb-0",
|
|
31
|
+
// Behavior
|
|
32
|
+
"outline-none resize-none",
|
|
33
|
+
// Background
|
|
34
|
+
"bg-transparent",
|
|
35
|
+
// Typography
|
|
36
|
+
"antialiased font-regular leading-relaxed text-[16px]",
|
|
37
|
+
// Placeholder styles
|
|
38
|
+
"placeholder:text-[#00000077] dark:placeholder:text-[#fffc]");
|
|
39
|
+
return cn(baseClasses, this.inputClass());
|
|
40
|
+
});
|
|
41
|
+
constructor() { }
|
|
42
|
+
ngAfterViewInit() {
|
|
43
|
+
this.calculateMaxHeight();
|
|
44
|
+
this.adjustHeight();
|
|
45
|
+
if (this.inputAutoFocus() ?? true) {
|
|
46
|
+
setTimeout(() => {
|
|
47
|
+
this.elementRef.nativeElement.focus();
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
onInput(event) {
|
|
52
|
+
const textarea = event.target;
|
|
53
|
+
const newValue = textarea.value;
|
|
54
|
+
this.valueChange.emit(newValue);
|
|
55
|
+
this.chatState.changeInput(newValue);
|
|
56
|
+
this.adjustHeight();
|
|
57
|
+
}
|
|
58
|
+
onKeyDown(event) {
|
|
59
|
+
// Check for Enter key without Shift
|
|
60
|
+
if (event.key === "Enter" && !event.shiftKey) {
|
|
61
|
+
event.preventDefault();
|
|
62
|
+
this.keyDown.emit(event);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
this.keyDown.emit(event);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
calculateMaxHeight() {
|
|
69
|
+
const textarea = this.elementRef.nativeElement;
|
|
70
|
+
const maxRowsValue = this.inputMaxRows() ?? 5;
|
|
71
|
+
// Save current value
|
|
72
|
+
const currentValue = textarea.value;
|
|
73
|
+
// Clear content to measure single row height
|
|
74
|
+
textarea.value = "";
|
|
75
|
+
textarea.style.height = "auto";
|
|
76
|
+
// Get computed styles to account for padding
|
|
77
|
+
const computedStyle = window.getComputedStyle(textarea);
|
|
78
|
+
const paddingTop = parseFloat(computedStyle.paddingTop);
|
|
79
|
+
const paddingBottom = parseFloat(computedStyle.paddingBottom);
|
|
80
|
+
// Calculate actual content height (without padding)
|
|
81
|
+
const contentHeight = textarea.scrollHeight - paddingTop - paddingBottom;
|
|
82
|
+
// Calculate max height: content height for maxRows + padding
|
|
83
|
+
const calculatedMaxHeight = contentHeight * maxRowsValue + paddingTop + paddingBottom;
|
|
84
|
+
this.maxHeight.set(calculatedMaxHeight);
|
|
85
|
+
// Restore original value
|
|
86
|
+
textarea.value = currentValue;
|
|
87
|
+
// Adjust height after calculating maxHeight
|
|
88
|
+
if (currentValue) {
|
|
89
|
+
this.adjustHeight();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
adjustHeight() {
|
|
93
|
+
const textarea = this.elementRef.nativeElement;
|
|
94
|
+
const maxHeightValue = this.maxHeight();
|
|
95
|
+
if (maxHeightValue > 0) {
|
|
96
|
+
textarea.style.height = "auto";
|
|
97
|
+
textarea.style.height = `${Math.min(textarea.scrollHeight, maxHeightValue)}px`;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Public method to focus the textarea
|
|
102
|
+
*/
|
|
103
|
+
focus() {
|
|
104
|
+
this.elementRef.nativeElement.focus();
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Public method to get current value
|
|
108
|
+
*/
|
|
109
|
+
getValue() {
|
|
110
|
+
return this.elementRef.nativeElement.value;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Public method to set value programmatically
|
|
114
|
+
*/
|
|
115
|
+
setValue(value) {
|
|
116
|
+
this.elementRef.nativeElement.value = value;
|
|
117
|
+
this.valueChange.emit(value);
|
|
118
|
+
this.chatState.changeInput(value);
|
|
119
|
+
setTimeout(() => this.adjustHeight());
|
|
120
|
+
}
|
|
121
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotChatTextarea, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
122
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: CopilotChatTextarea, isStandalone: true, selector: "textarea[copilotChatTextarea]", inputs: { inputValue: { classPropertyName: "inputValue", publicName: "inputValue", isSignal: true, isRequired: false, transformFunction: null }, inputPlaceholder: { classPropertyName: "inputPlaceholder", publicName: "inputPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, inputMaxRows: { classPropertyName: "inputMaxRows", publicName: "inputMaxRows", isSignal: true, isRequired: false, transformFunction: null }, inputAutoFocus: { classPropertyName: "inputAutoFocus", publicName: "inputAutoFocus", isSignal: true, isRequired: false, transformFunction: null }, inputDisabled: { classPropertyName: "inputDisabled", publicName: "inputDisabled", isSignal: true, isRequired: false, transformFunction: null }, inputClass: { classPropertyName: "inputClass", publicName: "inputClass", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", keyDown: "keyDown" }, host: { listeners: { "input": "onInput($event)", "keydown": "onKeyDown($event)" }, properties: { "value": "computedValue()", "placeholder": "placeholder()", "disabled": "disabled()", "class": "computedClass()", "style.max-height.px": "maxHeight()", "style.overflow": "'auto'", "style.resize": "'none'", "attr.rows": "1" } }, ngImport: i0, template: "", isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
123
|
+
}
|
|
124
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotChatTextarea, decorators: [{
|
|
125
|
+
type: Component,
|
|
126
|
+
args: [{ selector: "textarea[copilotChatTextarea]", standalone: true, imports: [], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
127
|
+
"[value]": "computedValue()",
|
|
128
|
+
"[placeholder]": "placeholder()",
|
|
129
|
+
"[disabled]": "disabled()",
|
|
130
|
+
"[class]": "computedClass()",
|
|
131
|
+
"[style.max-height.px]": "maxHeight()",
|
|
132
|
+
"[style.overflow]": "'auto'",
|
|
133
|
+
"[style.resize]": "'none'",
|
|
134
|
+
"(input)": "onInput($event)",
|
|
135
|
+
"(keydown)": "onKeyDown($event)",
|
|
136
|
+
"[attr.rows]": "1",
|
|
137
|
+
}, template: "" }]
|
|
138
|
+
}], ctorParameters: () => [] });
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdC1jaGF0LXRleHRhcmVhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2NoYXQvY29waWxvdC1jaGF0LXRleHRhcmVhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixVQUFVLEVBRVYsTUFBTSxFQUNOLFFBQVEsRUFDUixNQUFNLEVBQ04sdUJBQXVCLEVBQ3ZCLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUF1Qm5ELE1BQU0sT0FBTyxtQkFBbUI7SUFDdEIsVUFBVSxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQStCLENBQUEsQ0FBQyxDQUFDO0lBQzdELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsVUFBVSxHQUFHLEtBQUssRUFBc0IsQ0FBQztJQUN6QyxnQkFBZ0IsR0FBRyxLQUFLLEVBQXNCLENBQUM7SUFDL0MsWUFBWSxHQUFHLEtBQUssRUFBc0IsQ0FBQztJQUMzQyxjQUFjLEdBQUcsS0FBSyxFQUF1QixDQUFDO0lBQzlDLGFBQWEsR0FBRyxLQUFLLEVBQXVCLENBQUM7SUFDN0MsVUFBVSxHQUFHLEtBQUssRUFBc0IsQ0FBQztJQUV6QyxXQUFXLEdBQUcsTUFBTSxFQUFVLENBQUM7SUFDL0IsT0FBTyxHQUFHLE1BQU0sRUFBaUIsQ0FBQztJQUV6QixVQUFVLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztJQUNoQyxTQUFTLEdBQUcsZUFBZSxFQUFFLENBQUM7SUFFdkMsbUJBQW1CO0lBQ25CLFNBQVMsR0FB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S0FBYTtRQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTdCLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWxDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO3dHQW5KVSxtQkFBbUI7NEZBQW5CLG1CQUFtQiw4ekNBSHBCLEVBQUU7OzRGQUdELG1CQUFtQjtrQkFyQi9CLFNBQVM7K0JBQ0UsK0JBQStCLGNBQzdCLElBQUksV0FDUCxFQUFFLG1CQUNNLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0osU0FBUyxFQUFFLGlCQUFpQjt3QkFDNUIsZUFBZSxFQUFFLGVBQWU7d0JBQ2hDLFlBQVksRUFBRSxZQUFZO3dCQUMxQixTQUFTLEVBQUUsaUJBQWlCO3dCQUM1Qix1QkFBdUIsRUFBRSxhQUFhO3dCQUN0QyxrQkFBa0IsRUFBRSxRQUFRO3dCQUM1QixnQkFBZ0IsRUFBRSxRQUFRO3dCQUMxQixTQUFTLEVBQUUsaUJBQWlCO3dCQUM1QixXQUFXLEVBQUUsbUJBQW1CO3dCQUNoQyxhQUFhLEVBQUUsR0FBRztxQkFDbkIsWUFDUyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICBFbGVtZW50UmVmLFxuICBBZnRlclZpZXdJbml0LFxuICBzaWduYWwsXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IGNuIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XG5pbXBvcnQgeyBpbmplY3RDaGF0TGFiZWxzIH0gZnJvbSBcIi4uLy4uL2NoYXQtY29uZmlnXCI7XG5pbXBvcnQgeyBpbmplY3RDaGF0U3RhdGUgfSBmcm9tIFwiLi4vLi4vY2hhdC1zdGF0ZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwidGV4dGFyZWFbY29waWxvdENoYXRUZXh0YXJlYV1cIixcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgXCJbdmFsdWVdXCI6IFwiY29tcHV0ZWRWYWx1ZSgpXCIsXG4gICAgXCJbcGxhY2Vob2xkZXJdXCI6IFwicGxhY2Vob2xkZXIoKVwiLFxuICAgIFwiW2Rpc2FibGVkXVwiOiBcImRpc2FibGVkKClcIixcbiAgICBcIltjbGFzc11cIjogXCJjb21wdXRlZENsYXNzKClcIixcbiAgICBcIltzdHlsZS5tYXgtaGVpZ2h0LnB4XVwiOiBcIm1heEhlaWdodCgpXCIsXG4gICAgXCJbc3R5bGUub3ZlcmZsb3ddXCI6IFwiJ2F1dG8nXCIsXG4gICAgXCJbc3R5bGUucmVzaXplXVwiOiBcIidub25lJ1wiLFxuICAgIFwiKGlucHV0KVwiOiBcIm9uSW5wdXQoJGV2ZW50KVwiLFxuICAgIFwiKGtleWRvd24pXCI6IFwib25LZXlEb3duKCRldmVudClcIixcbiAgICBcIlthdHRyLnJvd3NdXCI6IFwiMVwiLFxuICB9LFxuICB0ZW1wbGF0ZTogXCJcIixcbiAgc3R5bGVzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29waWxvdENoYXRUZXh0YXJlYSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MVGV4dEFyZWFFbGVtZW50Pik7XG4gIGdldCB0ZXh0YXJlYVJlZigpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmO1xuICB9XG5cbiAgaW5wdXRWYWx1ZSA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4oKTtcbiAgaW5wdXRQbGFjZWhvbGRlciA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4oKTtcbiAgaW5wdXRNYXhSb3dzID0gaW5wdXQ8bnVtYmVyIHwgdW5kZWZpbmVkPigpO1xuICBpbnB1dEF1dG9Gb2N1cyA9IGlucHV0PGJvb2xlYW4gfCB1bmRlZmluZWQ+KCk7XG4gIGlucHV0RGlzYWJsZWQgPSBpbnB1dDxib29sZWFuIHwgdW5kZWZpbmVkPigpO1xuICBpbnB1dENsYXNzID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPigpO1xuXG4gIHZhbHVlQ2hhbmdlID0gb3V0cHV0PHN0cmluZz4oKTtcbiAga2V5RG93biA9IG91dHB1dDxLZXlib2FyZEV2ZW50PigpO1xuXG4gIHJlYWRvbmx5IGNoYXRMYWJlbHMgPSBpbmplY3RDaGF0TGFiZWxzKCk7XG4gIHJlYWRvbmx5IGNoYXRTdGF0ZSA9IGluamVjdENoYXRTdGF0ZSgpO1xuXG4gIC8vIEludGVybmFsIHNpZ25hbHNcbiAgbWF4SGVpZ2h0ID0gc2lnbmFsPG51bWJlcj4oMCk7XG5cbiAgLy8gQ29tcHV0ZWQgdmFsdWVzXG4gIGNvbXB1dGVkVmFsdWUgPSBjb21wdXRlZChcbiAgICAoKSA9PiB0aGlzLmlucHV0VmFsdWUoKSA/PyB0aGlzLmNoYXRTdGF0ZS5pbnB1dFZhbHVlKCkgPz8gXCJcIlxuICApO1xuICBwbGFjZWhvbGRlciA9IGNvbXB1dGVkKFxuICAgICgpID0+IHRoaXMuaW5wdXRQbGFjZWhvbGRlcigpIHx8IHRoaXMuY2hhdExhYmVscy5jaGF0SW5wdXRQbGFjZWhvbGRlclxuICApO1xuICBkaXNhYmxlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaW5wdXREaXNhYmxlZCgpID8/IGZhbHNlKTtcblxuICBjb21wdXRlZENsYXNzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGJhc2VDbGFzc2VzID0gY24oXG4gICAgICAvLyBMYXlvdXQgYW5kIHNpemluZ1xuICAgICAgXCJ3LWZ1bGwgcC01IHBiLTBcIixcbiAgICAgIC8vIEJlaGF2aW9yXG4gICAgICBcIm91dGxpbmUtbm9uZSByZXNpemUtbm9uZVwiLFxuICAgICAgLy8gQmFja2dyb3VuZFxuICAgICAgXCJiZy10cmFuc3BhcmVudFwiLFxuICAgICAgLy8gVHlwb2dyYXBoeVxuICAgICAgXCJhbnRpYWxpYXNlZCBmb250LXJlZ3VsYXIgbGVhZGluZy1yZWxheGVkIHRleHQtWzE2cHhdXCIsXG4gICAgICAvLyBQbGFjZWhvbGRlciBzdHlsZXNcbiAgICAgIFwicGxhY2Vob2xkZXI6dGV4dC1bIzAwMDAwMDc3XSBkYXJrOnBsYWNlaG9sZGVyOnRleHQtWyNmZmZjXVwiXG4gICAgKTtcbiAgICByZXR1cm4gY24oYmFzZUNsYXNzZXMsIHRoaXMuaW5wdXRDbGFzcygpKTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbGN1bGF0ZU1heEhlaWdodCgpO1xuICAgIHRoaXMuYWRqdXN0SGVpZ2h0KCk7XG5cbiAgICBpZiAodGhpcy5pbnB1dEF1dG9Gb2N1cygpID8/IHRydWUpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb25JbnB1dChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0ZXh0YXJlYSA9IGV2ZW50LnRhcmdldCBhcyBIVE1MVGV4dEFyZWFFbGVtZW50O1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gdGV4dGFyZWEudmFsdWU7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KG5ld1ZhbHVlKTtcblxuICAgIHRoaXMuY2hhdFN0YXRlLmNoYW5nZUlucHV0KG5ld1ZhbHVlKTtcblxuICAgIHRoaXMuYWRqdXN0SGVpZ2h0KCk7XG4gIH1cblxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBDaGVjayBmb3IgRW50ZXIga2V5IHdpdGhvdXQgU2hpZnRcbiAgICBpZiAoZXZlbnQua2V5ID09PSBcIkVudGVyXCIgJiYgIWV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5rZXlEb3duLmVtaXQoZXZlbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmtleURvd24uZW1pdChldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVNYXhIZWlnaHQoKTogdm9pZCB7XG4gICAgY29uc3QgdGV4dGFyZWEgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBtYXhSb3dzVmFsdWUgPSB0aGlzLmlucHV0TWF4Um93cygpID8/IDU7XG5cbiAgICAvLyBTYXZlIGN1cnJlbnQgdmFsdWVcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0ZXh0YXJlYS52YWx1ZTtcblxuICAgIC8vIENsZWFyIGNvbnRlbnQgdG8gbWVhc3VyZSBzaW5nbGUgcm93IGhlaWdodFxuICAgIHRleHRhcmVhLnZhbHVlID0gXCJcIjtcbiAgICB0ZXh0YXJlYS5zdHlsZS5oZWlnaHQgPSBcImF1dG9cIjtcblxuICAgIC8vIEdldCBjb21wdXRlZCBzdHlsZXMgdG8gYWNjb3VudCBmb3IgcGFkZGluZ1xuICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0YXJlYSk7XG4gICAgY29uc3QgcGFkZGluZ1RvcCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5wYWRkaW5nVG9wKTtcbiAgICBjb25zdCBwYWRkaW5nQm90dG9tID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLnBhZGRpbmdCb3R0b20pO1xuXG4gICAgLy8gQ2FsY3VsYXRlIGFjdHVhbCBjb250ZW50IGhlaWdodCAod2l0aG91dCBwYWRkaW5nKVxuICAgIGNvbnN0IGNvbnRlbnRIZWlnaHQgPSB0ZXh0YXJlYS5zY3JvbGxIZWlnaHQgLSBwYWRkaW5nVG9wIC0gcGFkZGluZ0JvdHRvbTtcblxuICAgIC8vIENhbGN1bGF0ZSBtYXggaGVpZ2h0OiBjb250ZW50IGhlaWdodCBmb3IgbWF4Um93cyArIHBhZGRpbmdcbiAgICBjb25zdCBjYWxjdWxhdGVkTWF4SGVpZ2h0ID1cbiAgICAgIGNvbnRlbnRIZWlnaHQgKiBtYXhSb3dzVmFsdWUgKyBwYWRkaW5nVG9wICsgcGFkZGluZ0JvdHRvbTtcbiAgICB0aGlzLm1heEhlaWdodC5zZXQoY2FsY3VsYXRlZE1heEhlaWdodCk7XG5cbiAgICAvLyBSZXN0b3JlIG9yaWdpbmFsIHZhbHVlXG4gICAgdGV4dGFyZWEudmFsdWUgPSBjdXJyZW50VmFsdWU7XG5cbiAgICAvLyBBZGp1c3QgaGVpZ2h0IGFmdGVyIGNhbGN1bGF0aW5nIG1heEhlaWdodFxuICAgIGlmIChjdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuYWRqdXN0SGVpZ2h0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGp1c3RIZWlnaHQoKTogdm9pZCB7XG4gICAgY29uc3QgdGV4dGFyZWEgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBtYXhIZWlnaHRWYWx1ZSA9IHRoaXMubWF4SGVpZ2h0KCk7XG5cbiAgICBpZiAobWF4SGVpZ2h0VmFsdWUgPiAwKSB7XG4gICAgICB0ZXh0YXJlYS5zdHlsZS5oZWlnaHQgPSBcImF1dG9cIjtcbiAgICAgIHRleHRhcmVhLnN0eWxlLmhlaWdodCA9IGAke01hdGgubWluKHRleHRhcmVhLnNjcm9sbEhlaWdodCwgbWF4SGVpZ2h0VmFsdWUpfXB4YDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHVibGljIG1ldGhvZCB0byBmb2N1cyB0aGUgdGV4dGFyZWFcbiAgICovXG4gIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICAvKipcbiAgICogUHVibGljIG1ldGhvZCB0byBnZXQgY3VycmVudCB2YWx1ZVxuICAgKi9cbiAgZ2V0VmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogUHVibGljIG1ldGhvZCB0byBzZXQgdmFsdWUgcHJvZ3JhbW1hdGljYWxseVxuICAgKi9cbiAgc2V0VmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcblxuICAgIHRoaXMuY2hhdFN0YXRlLmNoYW5nZUlucHV0KHZhbHVlKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5hZGp1c3RIZWlnaHQoKSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Component, ChangeDetectionStrategy, input } from "@angular/core";
|
|
2
|
+
import { CommonModule } from "@angular/common";
|
|
3
|
+
import { RenderToolCalls } from "../../render-tool-calls";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class CopilotChatToolCallsView {
|
|
6
|
+
message = input.required();
|
|
7
|
+
messages = input.required();
|
|
8
|
+
isLoading = input(false);
|
|
9
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotChatToolCallsView, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: CopilotChatToolCallsView, isStandalone: true, selector: "copilot-chat-tool-calls-view", inputs: { message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: true, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: true, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
11
|
+
<copilot-render-tool-calls
|
|
12
|
+
[message]="message()"
|
|
13
|
+
[messages]="messages()"
|
|
14
|
+
[isLoading]="isLoading()"
|
|
15
|
+
>
|
|
16
|
+
</copilot-render-tool-calls>
|
|
17
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: RenderToolCalls, selector: "copilot-render-tool-calls", inputs: ["message", "messages", "isLoading"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
18
|
+
}
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotChatToolCallsView, decorators: [{
|
|
20
|
+
type: Component,
|
|
21
|
+
args: [{
|
|
22
|
+
standalone: true,
|
|
23
|
+
selector: "copilot-chat-tool-calls-view",
|
|
24
|
+
imports: [CommonModule, RenderToolCalls],
|
|
25
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
26
|
+
template: `
|
|
27
|
+
<copilot-render-tool-calls
|
|
28
|
+
[message]="message()"
|
|
29
|
+
[messages]="messages()"
|
|
30
|
+
[isLoading]="isLoading()"
|
|
31
|
+
>
|
|
32
|
+
</copilot-render-tool-calls>
|
|
33
|
+
`,
|
|
34
|
+
}]
|
|
35
|
+
}] });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdC1jaGF0LXRvb2wtY2FsbHMtdmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9jaGF0L2NvcGlsb3QtY2hhdC10b29sLWNhbGxzLXZpZXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFnQjFELE1BQU0sT0FBTyx3QkFBd0I7SUFDMUIsT0FBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQW9CLENBQUM7SUFDN0MsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWEsQ0FBQztJQUN2QyxTQUFTLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO3dHQUhoQyx3QkFBd0I7NEZBQXhCLHdCQUF3QixxZUFUekI7Ozs7Ozs7R0FPVCwyREFUUyxZQUFZLCtCQUFFLGVBQWU7OzRGQVc1Qix3QkFBd0I7a0JBZHBDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSw4QkFBOEI7b0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUM7b0JBQ3hDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUU7Ozs7Ozs7R0FPVDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIGlucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB0eXBlIHsgQXNzaXN0YW50TWVzc2FnZSwgTWVzc2FnZSB9IGZyb20gXCJAYWctdWkvY29yZVwiO1xuaW1wb3J0IHsgUmVuZGVyVG9vbENhbGxzIH0gZnJvbSBcIi4uLy4uL3JlbmRlci10b29sLWNhbGxzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogXCJjb3BpbG90LWNoYXQtdG9vbC1jYWxscy12aWV3XCIsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlbmRlclRvb2xDYWxsc10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxjb3BpbG90LXJlbmRlci10b29sLWNhbGxzXG4gICAgICBbbWVzc2FnZV09XCJtZXNzYWdlKClcIlxuICAgICAgW21lc3NhZ2VzXT1cIm1lc3NhZ2VzKClcIlxuICAgICAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmcoKVwiXG4gICAgPlxuICAgIDwvY29waWxvdC1yZW5kZXItdG9vbC1jYWxscz5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQ29waWxvdENoYXRUb29sQ2FsbHNWaWV3IHtcbiAgcmVhZG9ubHkgbWVzc2FnZSA9IGlucHV0LnJlcXVpcmVkPEFzc2lzdGFudE1lc3NhZ2U+KCk7XG4gIHJlYWRvbmx5IG1lc3NhZ2VzID0gaW5wdXQucmVxdWlyZWQ8TWVzc2FnZVtdPigpO1xuICByZWFkb25seSBpc0xvYWRpbmcgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Component, input, computed, ChangeDetectionStrategy, ViewEncapsulation, } from "@angular/core";
|
|
2
|
+
import { CommonModule } from "@angular/common";
|
|
3
|
+
import { cn } from "../../utils";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class CopilotChatToolbar {
|
|
6
|
+
inputClass = input();
|
|
7
|
+
computedClass = computed(() => {
|
|
8
|
+
const baseClasses = "w-full h-[60px] bg-transparent flex items-center justify-between";
|
|
9
|
+
return cn(baseClasses, this.inputClass());
|
|
10
|
+
});
|
|
11
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotChatToolbar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: CopilotChatToolbar, isStandalone: true, selector: "div[copilotChatToolbar]", inputs: { inputClass: { classPropertyName: "inputClass", publicName: "inputClass", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "computedClass()" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotChatToolbar, decorators: [{
|
|
15
|
+
type: Component,
|
|
16
|
+
args: [{ selector: "div[copilotChatToolbar]", standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
17
|
+
"[class]": "computedClass()",
|
|
18
|
+
}, template: `<ng-content></ng-content>` }]
|
|
19
|
+
}] });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdC1jaGF0LXRvb2xiYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvY2hhdC9jb3BpbG90LWNoYXQtdG9vbGJhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxRQUFRLEVBQ1IsdUJBQXVCLEVBQ3ZCLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFjakMsTUFBTSxPQUFPLGtCQUFrQjtJQUNwQixVQUFVLEdBQUcsS0FBSyxFQUFzQixDQUFDO0lBRXpDLGFBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ3JDLE1BQU0sV0FBVyxHQUNmLGtFQUFrRSxDQUFDO1FBQ3JFLE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUMsQ0FBQzt3R0FQUSxrQkFBa0I7NEZBQWxCLGtCQUFrQiw0UkFIbkIsMkJBQTJCLDJEQU4zQixZQUFZOzs0RkFTWCxrQkFBa0I7a0JBWjlCLFNBQVM7K0JBQ0UseUJBQXlCLGNBQ3ZCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxtQkFDTix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLFNBQVMsRUFBRSxpQkFBaUI7cUJBQzdCLFlBQ1MsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBpbnB1dCxcbiAgY29tcHV0ZWQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IGNuIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJkaXZbY29waWxvdENoYXRUb29sYmFyXVwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBcIltjbGFzc11cIjogXCJjb21wdXRlZENsYXNzKClcIixcbiAgfSxcbiAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgc3R5bGVzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29waWxvdENoYXRUb29sYmFyIHtcbiAgcmVhZG9ubHkgaW5wdXRDbGFzcyA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4oKTtcblxuICByZWFkb25seSBjb21wdXRlZENsYXNzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGJhc2VDbGFzc2VzID1cbiAgICAgIFwidy1mdWxsIGgtWzYwcHhdIGJnLXRyYW5zcGFyZW50IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiO1xuICAgIHJldHVybiBjbihiYXNlQ2xhc3NlcywgdGhpcy5pbnB1dENsYXNzKCkpO1xuICB9KTtcbn1cbiJdfQ==
|