@copilotkitnext/angular 0.0.9-alpha.3 → 0.0.10

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 (210) hide show
  1. package/dist/esm2022/index.mjs +2 -70
  2. package/dist/esm2022/lib/agent.mjs +73 -0
  3. package/dist/esm2022/lib/chat-config.mjs +35 -0
  4. package/dist/esm2022/lib/chat-state.mjs +18 -0
  5. package/dist/esm2022/lib/components/chat/copilot-chat-assistant-message-buttons.mjs +344 -0
  6. package/dist/esm2022/lib/components/chat/copilot-chat-assistant-message-renderer.mjs +260 -0
  7. package/dist/esm2022/lib/components/chat/copilot-chat-assistant-message-toolbar.mjs +22 -0
  8. package/dist/esm2022/{components/chat/copilot-chat-assistant-message.component.mjs → lib/components/chat/copilot-chat-assistant-message.mjs} +216 -240
  9. package/dist/esm2022/lib/components/chat/copilot-chat-assistant-message.types.mjs +2 -0
  10. package/dist/esm2022/lib/components/chat/copilot-chat-audio-recorder.mjs +196 -0
  11. package/dist/esm2022/lib/components/chat/copilot-chat-buttons.mjs +299 -0
  12. package/dist/esm2022/lib/components/chat/copilot-chat-input-defaults.mjs +39 -0
  13. package/dist/esm2022/lib/components/chat/copilot-chat-input.mjs +634 -0
  14. package/dist/esm2022/lib/components/chat/copilot-chat-input.types.mjs +10 -0
  15. package/dist/esm2022/lib/components/chat/copilot-chat-message-view-cursor.mjs +27 -0
  16. package/dist/esm2022/lib/components/chat/copilot-chat-message-view.mjs +268 -0
  17. package/dist/esm2022/lib/components/chat/copilot-chat-message-view.types.mjs +2 -0
  18. package/dist/esm2022/lib/components/chat/copilot-chat-textarea.mjs +139 -0
  19. package/dist/esm2022/lib/components/chat/copilot-chat-tool-calls-view.mjs +36 -0
  20. package/dist/esm2022/lib/components/chat/copilot-chat-toolbar.mjs +20 -0
  21. package/dist/esm2022/lib/components/chat/copilot-chat-tools-menu.mjs +203 -0
  22. package/dist/esm2022/lib/components/chat/copilot-chat-user-message-branch-navigation.mjs +118 -0
  23. package/dist/esm2022/lib/components/chat/copilot-chat-user-message-buttons.mjs +182 -0
  24. package/dist/esm2022/lib/components/chat/copilot-chat-user-message-renderer.mjs +28 -0
  25. package/dist/esm2022/lib/components/chat/copilot-chat-user-message-toolbar.mjs +25 -0
  26. package/dist/esm2022/lib/components/chat/copilot-chat-user-message.mjs +306 -0
  27. package/dist/esm2022/lib/components/chat/copilot-chat-user-message.types.mjs +2 -0
  28. package/dist/esm2022/lib/components/chat/copilot-chat-view-disclaimer.mjs +48 -0
  29. package/dist/esm2022/lib/components/chat/copilot-chat-view-feather.mjs +41 -0
  30. package/dist/esm2022/lib/components/chat/copilot-chat-view-handlers.mjs +19 -0
  31. package/dist/esm2022/lib/components/chat/copilot-chat-view-input-container.mjs +96 -0
  32. package/dist/esm2022/lib/components/chat/copilot-chat-view-scroll-to-bottom-button.mjs +89 -0
  33. package/dist/esm2022/lib/components/chat/copilot-chat-view-scroll-view.mjs +456 -0
  34. package/dist/esm2022/lib/components/chat/copilot-chat-view.mjs +404 -0
  35. package/dist/esm2022/lib/components/chat/copilot-chat-view.types.mjs +2 -0
  36. package/dist/esm2022/lib/components/chat/copilot-chat.mjs +167 -0
  37. package/dist/esm2022/lib/config.mjs +9 -0
  38. package/dist/esm2022/lib/copilotkit.mjs +124 -0
  39. package/dist/esm2022/lib/directives/copilotkit-agent-context.mjs +130 -0
  40. package/dist/esm2022/lib/directives/stick-to-bottom.mjs +170 -0
  41. package/dist/esm2022/lib/directives/tooltip.mjs +217 -0
  42. package/dist/esm2022/lib/human-in-the-loop.mjs +19 -0
  43. package/dist/esm2022/lib/render-tool-calls.mjs +131 -0
  44. package/dist/esm2022/lib/resize-observer.mjs +152 -0
  45. package/dist/esm2022/lib/scroll-position.mjs +124 -0
  46. package/dist/esm2022/lib/slots/copilot-slot.mjs +156 -0
  47. package/dist/esm2022/lib/slots/index.mjs +4 -0
  48. package/dist/esm2022/lib/slots/slot.types.mjs +3 -3
  49. package/dist/esm2022/lib/slots/slot.utils.mjs +19 -15
  50. package/dist/esm2022/lib/tools.mjs +31 -0
  51. package/dist/esm2022/lib/utils.mjs +3 -3
  52. package/dist/esm2022/public-api.mjs +47 -0
  53. package/dist/fesm2022/copilotkitnext-angular.mjs +5249 -8271
  54. package/dist/fesm2022/copilotkitnext-angular.mjs.map +1 -1
  55. package/dist/index.d.ts +1 -55
  56. package/dist/lib/agent.d.ts +53 -0
  57. package/dist/{core/chat-configuration/chat-configuration.types.d.ts → lib/chat-config.d.ts} +4 -8
  58. package/dist/lib/chat-state.d.ts +10 -0
  59. package/dist/lib/components/chat/copilot-chat-assistant-message-buttons.d.ts +68 -0
  60. package/dist/lib/components/chat/copilot-chat-assistant-message-renderer.d.ts +26 -0
  61. package/dist/lib/components/chat/copilot-chat-assistant-message-toolbar.d.ts +7 -0
  62. package/dist/lib/components/chat/copilot-chat-assistant-message.d.ts +178 -0
  63. package/dist/{components → lib/components}/chat/copilot-chat-assistant-message.types.d.ts +1 -1
  64. package/dist/{components/chat/copilot-chat-audio-recorder.component.d.ts → lib/components/chat/copilot-chat-audio-recorder.d.ts} +10 -10
  65. package/dist/lib/components/chat/copilot-chat-buttons.d.ts +65 -0
  66. package/dist/lib/components/chat/copilot-chat-input-defaults.d.ts +38 -0
  67. package/dist/lib/components/chat/copilot-chat-input.d.ts +133 -0
  68. package/dist/{components → lib/components}/chat/copilot-chat-input.types.d.ts +11 -11
  69. package/dist/lib/components/chat/copilot-chat-message-view-cursor.d.ts +11 -0
  70. package/dist/{components/chat/copilot-chat-message-view.component.d.ts → lib/components/chat/copilot-chat-message-view.d.ts} +68 -36
  71. package/dist/{components → lib/components}/chat/copilot-chat-message-view.types.d.ts +2 -2
  72. package/dist/lib/components/chat/copilot-chat-textarea.d.ts +41 -0
  73. package/dist/lib/components/chat/copilot-chat-tool-calls-view.d.ts +55 -0
  74. package/dist/lib/components/chat/copilot-chat-toolbar.d.ts +7 -0
  75. package/dist/lib/components/chat/copilot-chat-tools-menu.d.ts +20 -0
  76. package/dist/lib/components/chat/copilot-chat-user-message-branch-navigation.d.ts +20 -0
  77. package/dist/lib/components/chat/copilot-chat-user-message-buttons.d.ts +35 -0
  78. package/dist/lib/components/chat/copilot-chat-user-message-renderer.d.ts +8 -0
  79. package/dist/lib/components/chat/copilot-chat-user-message-toolbar.d.ts +7 -0
  80. package/dist/lib/components/chat/copilot-chat-user-message.d.ts +55 -0
  81. package/dist/{components → lib/components}/chat/copilot-chat-user-message.types.d.ts +2 -2
  82. package/dist/lib/components/chat/copilot-chat-view-disclaimer.d.ts +15 -0
  83. package/dist/{components/chat/copilot-chat-view-feather.component.d.ts → lib/components/chat/copilot-chat-view-feather.d.ts} +6 -6
  84. package/dist/{components/chat/copilot-chat-view-handlers.service.d.ts → lib/components/chat/copilot-chat-view-handlers.d.ts} +3 -3
  85. package/dist/lib/components/chat/copilot-chat-view-input-container.d.ts +23 -0
  86. package/dist/lib/components/chat/copilot-chat-view-scroll-to-bottom-button.d.ts +16 -0
  87. package/dist/lib/components/chat/copilot-chat-view-scroll-view.d.ts +114 -0
  88. package/dist/lib/components/chat/copilot-chat-view.d.ts +239 -0
  89. package/dist/{components → lib/components}/chat/copilot-chat-view.types.d.ts +2 -2
  90. package/dist/lib/components/chat/copilot-chat.d.ts +67 -0
  91. package/dist/lib/config.d.ts +16 -0
  92. package/dist/lib/copilotkit.d.ts +29 -0
  93. package/dist/{directives/copilotkit-agent-context.directive.d.ts → lib/directives/copilotkit-agent-context.d.ts} +5 -5
  94. package/dist/lib/directives/stick-to-bottom.d.ts +62 -0
  95. package/dist/lib/directives/tooltip.d.ts +33 -0
  96. package/dist/lib/human-in-the-loop.d.ts +13 -0
  97. package/dist/lib/render-tool-calls.d.ts +75 -0
  98. package/dist/{services/resize-observer.service.d.ts → lib/resize-observer.d.ts} +2 -2
  99. package/dist/{services/scroll-position.service.d.ts → lib/scroll-position.d.ts} +6 -6
  100. package/dist/lib/slots/copilot-slot.d.ts +34 -0
  101. package/dist/lib/slots/index.d.ts +3 -0
  102. package/dist/lib/slots/slot.types.d.ts +1 -1
  103. package/dist/lib/slots/slot.utils.d.ts +6 -4
  104. package/dist/lib/tools.d.ts +63 -0
  105. package/dist/lib/utils.d.ts +1 -1
  106. package/dist/public-api.d.ts +46 -0
  107. package/dist/styles.css +0 -69
  108. package/package.json +3 -3
  109. package/dist/components/chat/copilot-chat-assistant-message-buttons.component.d.ts +0 -75
  110. package/dist/components/chat/copilot-chat-assistant-message-renderer.component.d.ts +0 -31
  111. package/dist/components/chat/copilot-chat-assistant-message-toolbar.component.d.ts +0 -8
  112. package/dist/components/chat/copilot-chat-assistant-message.component.d.ts +0 -132
  113. package/dist/components/chat/copilot-chat-buttons.component.d.ts +0 -66
  114. package/dist/components/chat/copilot-chat-input-defaults.d.ts +0 -37
  115. package/dist/components/chat/copilot-chat-input.component.d.ts +0 -133
  116. package/dist/components/chat/copilot-chat-message-view-cursor.component.d.ts +0 -15
  117. package/dist/components/chat/copilot-chat-textarea.component.d.ts +0 -45
  118. package/dist/components/chat/copilot-chat-tool-calls-view.component.d.ts +0 -35
  119. package/dist/components/chat/copilot-chat-toolbar.component.d.ts +0 -8
  120. package/dist/components/chat/copilot-chat-tools-menu.component.d.ts +0 -20
  121. package/dist/components/chat/copilot-chat-user-message-branch-navigation.component.d.ts +0 -23
  122. package/dist/components/chat/copilot-chat-user-message-buttons.component.d.ts +0 -39
  123. package/dist/components/chat/copilot-chat-user-message-renderer.component.d.ts +0 -9
  124. package/dist/components/chat/copilot-chat-user-message-toolbar.component.d.ts +0 -8
  125. package/dist/components/chat/copilot-chat-user-message.component.d.ts +0 -55
  126. package/dist/components/chat/copilot-chat-view-disclaimer.component.d.ts +0 -15
  127. package/dist/components/chat/copilot-chat-view-input-container.component.d.ts +0 -23
  128. package/dist/components/chat/copilot-chat-view-scroll-to-bottom-button.component.d.ts +0 -17
  129. package/dist/components/chat/copilot-chat-view-scroll-view.component.d.ts +0 -84
  130. package/dist/components/chat/copilot-chat-view.component.d.ts +0 -205
  131. package/dist/components/chat/copilot-chat.component.d.ts +0 -36
  132. package/dist/components/copilotkit-tool-render.component.d.ts +0 -25
  133. package/dist/core/chat-configuration/chat-configuration.providers.d.ts +0 -54
  134. package/dist/core/chat-configuration/chat-configuration.service.d.ts +0 -75
  135. package/dist/core/copilotkit.providers.d.ts +0 -13
  136. package/dist/core/copilotkit.service.d.ts +0 -119
  137. package/dist/core/copilotkit.types.d.ts +0 -81
  138. package/dist/directives/copilotkit-agent.directive.d.ts +0 -106
  139. package/dist/directives/copilotkit-chat-config.directive.d.ts +0 -84
  140. package/dist/directives/copilotkit-config.directive.d.ts +0 -44
  141. package/dist/directives/copilotkit-frontend-tool.directive.d.ts +0 -25
  142. package/dist/directives/copilotkit-human-in-the-loop.directive.d.ts +0 -124
  143. package/dist/directives/stick-to-bottom.directive.d.ts +0 -62
  144. package/dist/esm2022/components/chat/copilot-chat-assistant-message-buttons.component.mjs +0 -384
  145. package/dist/esm2022/components/chat/copilot-chat-assistant-message-renderer.component.mjs +0 -286
  146. package/dist/esm2022/components/chat/copilot-chat-assistant-message-toolbar.component.mjs +0 -27
  147. package/dist/esm2022/components/chat/copilot-chat-assistant-message.types.mjs +0 -2
  148. package/dist/esm2022/components/chat/copilot-chat-audio-recorder.component.mjs +0 -202
  149. package/dist/esm2022/components/chat/copilot-chat-buttons.component.mjs +0 -321
  150. package/dist/esm2022/components/chat/copilot-chat-input-defaults.mjs +0 -38
  151. package/dist/esm2022/components/chat/copilot-chat-input.component.mjs +0 -666
  152. package/dist/esm2022/components/chat/copilot-chat-input.types.mjs +0 -10
  153. package/dist/esm2022/components/chat/copilot-chat-message-view-cursor.component.mjs +0 -45
  154. package/dist/esm2022/components/chat/copilot-chat-message-view.component.mjs +0 -296
  155. package/dist/esm2022/components/chat/copilot-chat-message-view.types.mjs +0 -2
  156. package/dist/esm2022/components/chat/copilot-chat-textarea.component.mjs +0 -188
  157. package/dist/esm2022/components/chat/copilot-chat-tool-calls-view.component.mjs +0 -222
  158. package/dist/esm2022/components/chat/copilot-chat-toolbar.component.mjs +0 -25
  159. package/dist/esm2022/components/chat/copilot-chat-tools-menu.component.mjs +0 -199
  160. package/dist/esm2022/components/chat/copilot-chat-user-message-branch-navigation.component.mjs +0 -137
  161. package/dist/esm2022/components/chat/copilot-chat-user-message-buttons.component.mjs +0 -207
  162. package/dist/esm2022/components/chat/copilot-chat-user-message-renderer.component.mjs +0 -35
  163. package/dist/esm2022/components/chat/copilot-chat-user-message-toolbar.component.mjs +0 -34
  164. package/dist/esm2022/components/chat/copilot-chat-user-message.component.mjs +0 -341
  165. package/dist/esm2022/components/chat/copilot-chat-user-message.types.mjs +0 -2
  166. package/dist/esm2022/components/chat/copilot-chat-view-disclaimer.component.mjs +0 -52
  167. package/dist/esm2022/components/chat/copilot-chat-view-feather.component.mjs +0 -55
  168. package/dist/esm2022/components/chat/copilot-chat-view-handlers.service.mjs +0 -19
  169. package/dist/esm2022/components/chat/copilot-chat-view-input-container.component.mjs +0 -110
  170. package/dist/esm2022/components/chat/copilot-chat-view-scroll-to-bottom-button.component.mjs +0 -93
  171. package/dist/esm2022/components/chat/copilot-chat-view-scroll-view.component.mjs +0 -443
  172. package/dist/esm2022/components/chat/copilot-chat-view.component.mjs +0 -479
  173. package/dist/esm2022/components/chat/copilot-chat-view.types.mjs +0 -2
  174. package/dist/esm2022/components/chat/copilot-chat.component.mjs +0 -220
  175. package/dist/esm2022/components/copilotkit-tool-render.component.mjs +0 -150
  176. package/dist/esm2022/core/chat-configuration/chat-configuration.providers.mjs +0 -65
  177. package/dist/esm2022/core/chat-configuration/chat-configuration.service.mjs +0 -145
  178. package/dist/esm2022/core/chat-configuration/chat-configuration.types.mjs +0 -26
  179. package/dist/esm2022/core/copilotkit.providers.mjs +0 -34
  180. package/dist/esm2022/core/copilotkit.service.mjs +0 -411
  181. package/dist/esm2022/core/copilotkit.types.mjs +0 -13
  182. package/dist/esm2022/directives/copilotkit-agent-context.directive.mjs +0 -130
  183. package/dist/esm2022/directives/copilotkit-agent.directive.mjs +0 -221
  184. package/dist/esm2022/directives/copilotkit-chat-config.directive.mjs +0 -218
  185. package/dist/esm2022/directives/copilotkit-config.directive.mjs +0 -94
  186. package/dist/esm2022/directives/copilotkit-frontend-tool.directive.mjs +0 -128
  187. package/dist/esm2022/directives/copilotkit-human-in-the-loop.directive.mjs +0 -265
  188. package/dist/esm2022/directives/stick-to-bottom.directive.mjs +0 -181
  189. package/dist/esm2022/lib/directives/tooltip.directive.mjs +0 -211
  190. package/dist/esm2022/lib/slots/copilot-slot.component.mjs +0 -154
  191. package/dist/esm2022/services/resize-observer.service.mjs +0 -152
  192. package/dist/esm2022/services/scroll-position.service.mjs +0 -124
  193. package/dist/esm2022/types/frontend-tool.mjs +0 -2
  194. package/dist/esm2022/types/human-in-the-loop.mjs +0 -2
  195. package/dist/esm2022/utils/agent-context.utils.mjs +0 -114
  196. package/dist/esm2022/utils/agent.utils.mjs +0 -212
  197. package/dist/esm2022/utils/chat-config.utils.mjs +0 -186
  198. package/dist/esm2022/utils/copilotkit.utils.mjs +0 -20
  199. package/dist/esm2022/utils/frontend-tool.utils.mjs +0 -224
  200. package/dist/esm2022/utils/human-in-the-loop.utils.mjs +0 -293
  201. package/dist/lib/directives/tooltip.directive.d.ts +0 -33
  202. package/dist/lib/slots/copilot-slot.component.d.ts +0 -34
  203. package/dist/types/frontend-tool.d.ts +0 -37
  204. package/dist/types/human-in-the-loop.d.ts +0 -44
  205. package/dist/utils/agent-context.utils.d.ts +0 -75
  206. package/dist/utils/agent.utils.d.ts +0 -108
  207. package/dist/utils/chat-config.utils.d.ts +0 -166
  208. package/dist/utils/copilotkit.utils.d.ts +0 -16
  209. package/dist/utils/frontend-tool.utils.d.ts +0 -119
  210. package/dist/utils/human-in-the-loop.utils.d.ts +0 -92
@@ -1,321 +0,0 @@
1
- import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, inject, signal, computed, ViewEncapsulation } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { LucideAngularModule, ArrowUp, Mic, X, Check, Plus } from 'lucide-angular';
4
- import { CopilotChatConfigurationService } from '../../core/chat-configuration/chat-configuration.service';
5
- import { CopilotTooltipDirective } from '../../lib/directives/tooltip.directive';
6
- import { cn } from '../../lib/utils';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "lucide-angular";
9
- // Base button classes matching React's button variants
10
- const buttonBase = cn('inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium', 'transition-all disabled:pointer-events-none disabled:opacity-50', 'shrink-0 outline-none', 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]');
11
- const chatInputToolbarPrimary = cn('cursor-pointer',
12
- // Background and text
13
- 'bg-black text-white',
14
- // Dark mode
15
- 'dark:bg-white dark:text-black dark:focus-visible:outline-white',
16
- // Shape and sizing
17
- 'rounded-full h-9 w-9',
18
- // Interactions
19
- 'transition-colors',
20
- // Focus states
21
- 'focus:outline-none',
22
- // Hover states
23
- 'hover:opacity-70 disabled:hover:opacity-100',
24
- // Disabled states
25
- 'disabled:cursor-not-allowed disabled:bg-[#00000014] disabled:text-[rgb(13,13,13)]', 'dark:disabled:bg-[#454545] dark:disabled:text-white');
26
- const chatInputToolbarSecondary = cn('cursor-pointer',
27
- // Background and text
28
- 'bg-transparent text-[#444444]',
29
- // Dark mode
30
- 'dark:text-white dark:border-[#404040]',
31
- // Shape and sizing
32
- 'rounded-full h-9 w-9',
33
- // Interactions
34
- 'transition-colors',
35
- // Focus states
36
- 'focus:outline-none',
37
- // Hover states
38
- 'hover:bg-[#f8f8f8] hover:text-[#333333]', 'dark:hover:bg-[#404040] dark:hover:text-[#FFFFFF]',
39
- // Disabled states
40
- 'disabled:cursor-not-allowed disabled:opacity-50', 'disabled:hover:bg-transparent disabled:hover:text-[#444444]', 'dark:disabled:hover:bg-transparent dark:disabled:hover:text-[#CCCCCC]');
41
- export class CopilotChatSendButtonComponent {
42
- disabled = false;
43
- clicked = new EventEmitter();
44
- ArrowUpIcon = ArrowUp;
45
- buttonClass = cn(buttonBase, chatInputToolbarPrimary);
46
- onClick() {
47
- if (!this.disabled) {
48
- this.clicked.emit();
49
- }
50
- }
51
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotChatSendButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
52
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CopilotChatSendButtonComponent, isStandalone: true, selector: "copilot-chat-send-button", inputs: { disabled: "disabled" }, outputs: { clicked: "clicked" }, ngImport: i0, template: `
53
- <div class="mr-[10px]">
54
- <button
55
- type="button"
56
- [disabled]="disabled"
57
- [class]="buttonClass"
58
- (click)="onClick()"
59
- >
60
- <lucide-angular [img]="ArrowUpIcon" [size]="18"></lucide-angular>
61
- </button>
62
- </div>
63
- `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: LucideAngularModule }, { kind: "component", type: i1.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
64
- }
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotChatSendButtonComponent, decorators: [{
66
- type: Component,
67
- args: [{ selector: 'copilot-chat-send-button', standalone: true, imports: [CommonModule, LucideAngularModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `
68
- <div class="mr-[10px]">
69
- <button
70
- type="button"
71
- [disabled]="disabled"
72
- [class]="buttonClass"
73
- (click)="onClick()"
74
- >
75
- <lucide-angular [img]="ArrowUpIcon" [size]="18"></lucide-angular>
76
- </button>
77
- </div>
78
- ` }]
79
- }], propDecorators: { disabled: [{
80
- type: Input
81
- }], clicked: [{
82
- type: Output
83
- }] } });
84
- export class CopilotChatStartTranscribeButtonComponent {
85
- disabled = false;
86
- clicked = new EventEmitter();
87
- chatConfig = inject(CopilotChatConfigurationService);
88
- MicIcon = Mic;
89
- buttonClass = cn(buttonBase, chatInputToolbarSecondary, 'mr-2');
90
- get label() {
91
- return this.chatConfig.labels().chatInputToolbarStartTranscribeButtonLabel;
92
- }
93
- onClick() {
94
- if (!this.disabled) {
95
- this.clicked.emit();
96
- }
97
- }
98
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotChatStartTranscribeButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
99
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CopilotChatStartTranscribeButtonComponent, isStandalone: true, selector: "copilot-chat-start-transcribe-button", inputs: { disabled: "disabled" }, outputs: { clicked: "clicked" }, ngImport: i0, template: `
100
- <button
101
- type="button"
102
- [disabled]="disabled"
103
- [class]="buttonClass"
104
- [copilotTooltip]="label"
105
- tooltipPosition="below"
106
- (click)="onClick()"
107
- >
108
- <lucide-angular [img]="MicIcon" [size]="18"></lucide-angular>
109
- </button>
110
- `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: LucideAngularModule }, { kind: "component", type: i1.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }, { kind: "directive", type: CopilotTooltipDirective, selector: "[copilotTooltip]", inputs: ["copilotTooltip", "tooltipPosition", "tooltipDelay"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
111
- }
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotChatStartTranscribeButtonComponent, decorators: [{
113
- type: Component,
114
- args: [{ selector: 'copilot-chat-start-transcribe-button', standalone: true, imports: [CommonModule, LucideAngularModule, CopilotTooltipDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `
115
- <button
116
- type="button"
117
- [disabled]="disabled"
118
- [class]="buttonClass"
119
- [copilotTooltip]="label"
120
- tooltipPosition="below"
121
- (click)="onClick()"
122
- >
123
- <lucide-angular [img]="MicIcon" [size]="18"></lucide-angular>
124
- </button>
125
- ` }]
126
- }], propDecorators: { disabled: [{
127
- type: Input
128
- }], clicked: [{
129
- type: Output
130
- }] } });
131
- export class CopilotChatCancelTranscribeButtonComponent {
132
- disabled = false;
133
- clicked = new EventEmitter();
134
- chatConfig = inject(CopilotChatConfigurationService);
135
- XIcon = X;
136
- buttonClass = cn(buttonBase, chatInputToolbarSecondary, 'mr-2');
137
- get label() {
138
- return this.chatConfig.labels().chatInputToolbarCancelTranscribeButtonLabel;
139
- }
140
- onClick() {
141
- if (!this.disabled) {
142
- this.clicked.emit();
143
- }
144
- }
145
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotChatCancelTranscribeButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
146
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CopilotChatCancelTranscribeButtonComponent, isStandalone: true, selector: "copilot-chat-cancel-transcribe-button", inputs: { disabled: "disabled" }, outputs: { clicked: "clicked" }, ngImport: i0, template: `
147
- <button
148
- type="button"
149
- [disabled]="disabled"
150
- [class]="buttonClass"
151
- [copilotTooltip]="label"
152
- tooltipPosition="below"
153
- (click)="onClick()"
154
- >
155
- <lucide-angular [img]="XIcon" [size]="18"></lucide-angular>
156
- </button>
157
- `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: LucideAngularModule }, { kind: "component", type: i1.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }, { kind: "directive", type: CopilotTooltipDirective, selector: "[copilotTooltip]", inputs: ["copilotTooltip", "tooltipPosition", "tooltipDelay"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
158
- }
159
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotChatCancelTranscribeButtonComponent, decorators: [{
160
- type: Component,
161
- args: [{ selector: 'copilot-chat-cancel-transcribe-button', standalone: true, imports: [CommonModule, LucideAngularModule, CopilotTooltipDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `
162
- <button
163
- type="button"
164
- [disabled]="disabled"
165
- [class]="buttonClass"
166
- [copilotTooltip]="label"
167
- tooltipPosition="below"
168
- (click)="onClick()"
169
- >
170
- <lucide-angular [img]="XIcon" [size]="18"></lucide-angular>
171
- </button>
172
- ` }]
173
- }], propDecorators: { disabled: [{
174
- type: Input
175
- }], clicked: [{
176
- type: Output
177
- }] } });
178
- export class CopilotChatFinishTranscribeButtonComponent {
179
- disabled = false;
180
- clicked = new EventEmitter();
181
- chatConfig = inject(CopilotChatConfigurationService);
182
- CheckIcon = Check;
183
- buttonClass = cn(buttonBase, chatInputToolbarSecondary, 'mr-[10px]');
184
- get label() {
185
- return this.chatConfig.labels().chatInputToolbarFinishTranscribeButtonLabel;
186
- }
187
- onClick() {
188
- if (!this.disabled) {
189
- this.clicked.emit();
190
- }
191
- }
192
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotChatFinishTranscribeButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
193
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CopilotChatFinishTranscribeButtonComponent, isStandalone: true, selector: "copilot-chat-finish-transcribe-button", inputs: { disabled: "disabled" }, outputs: { clicked: "clicked" }, ngImport: i0, template: `
194
- <button
195
- type="button"
196
- [disabled]="disabled"
197
- [class]="buttonClass"
198
- [copilotTooltip]="label"
199
- tooltipPosition="below"
200
- (click)="onClick()"
201
- >
202
- <lucide-angular [img]="CheckIcon" [size]="18"></lucide-angular>
203
- </button>
204
- `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: LucideAngularModule }, { kind: "component", type: i1.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }, { kind: "directive", type: CopilotTooltipDirective, selector: "[copilotTooltip]", inputs: ["copilotTooltip", "tooltipPosition", "tooltipDelay"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
205
- }
206
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotChatFinishTranscribeButtonComponent, decorators: [{
207
- type: Component,
208
- args: [{ selector: 'copilot-chat-finish-transcribe-button', standalone: true, imports: [CommonModule, LucideAngularModule, CopilotTooltipDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `
209
- <button
210
- type="button"
211
- [disabled]="disabled"
212
- [class]="buttonClass"
213
- [copilotTooltip]="label"
214
- tooltipPosition="below"
215
- (click)="onClick()"
216
- >
217
- <lucide-angular [img]="CheckIcon" [size]="18"></lucide-angular>
218
- </button>
219
- ` }]
220
- }], propDecorators: { disabled: [{
221
- type: Input
222
- }], clicked: [{
223
- type: Output
224
- }] } });
225
- export class CopilotChatAddFileButtonComponent {
226
- disabled = false;
227
- clicked = new EventEmitter();
228
- chatConfig = inject(CopilotChatConfigurationService);
229
- PlusIcon = Plus;
230
- buttonClass = cn(buttonBase, chatInputToolbarSecondary, 'ml-2');
231
- get label() {
232
- return this.chatConfig.labels().chatInputToolbarAddButtonLabel;
233
- }
234
- onClick() {
235
- if (!this.disabled) {
236
- this.clicked.emit();
237
- }
238
- }
239
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotChatAddFileButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
240
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CopilotChatAddFileButtonComponent, isStandalone: true, selector: "copilot-chat-add-file-button", inputs: { disabled: "disabled" }, outputs: { clicked: "clicked" }, ngImport: i0, template: `
241
- <button
242
- type="button"
243
- [disabled]="disabled"
244
- [class]="buttonClass"
245
- [copilotTooltip]="label"
246
- tooltipPosition="below"
247
- (click)="onClick()"
248
- >
249
- <lucide-angular [img]="PlusIcon" [size]="20"></lucide-angular>
250
- </button>
251
- `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: LucideAngularModule }, { kind: "component", type: i1.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }, { kind: "directive", type: CopilotTooltipDirective, selector: "[copilotTooltip]", inputs: ["copilotTooltip", "tooltipPosition", "tooltipDelay"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
252
- }
253
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotChatAddFileButtonComponent, decorators: [{
254
- type: Component,
255
- args: [{ selector: 'copilot-chat-add-file-button', standalone: true, imports: [CommonModule, LucideAngularModule, CopilotTooltipDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `
256
- <button
257
- type="button"
258
- [disabled]="disabled"
259
- [class]="buttonClass"
260
- [copilotTooltip]="label"
261
- tooltipPosition="below"
262
- (click)="onClick()"
263
- >
264
- <lucide-angular [img]="PlusIcon" [size]="20"></lucide-angular>
265
- </button>
266
- ` }]
267
- }], propDecorators: { disabled: [{
268
- type: Input
269
- }], clicked: [{
270
- type: Output
271
- }] } });
272
- // Base toolbar button component that other buttons can use
273
- export class CopilotChatToolbarButtonComponent {
274
- disabled = signal(false);
275
- variant = signal('secondary');
276
- customClass = signal('');
277
- title = signal('');
278
- clicked = new EventEmitter();
279
- computedClass = computed(() => {
280
- const variantClass = this.variant() === 'primary'
281
- ? chatInputToolbarPrimary
282
- : chatInputToolbarSecondary;
283
- return cn(buttonBase, variantClass, this.customClass());
284
- });
285
- onClick() {
286
- if (!this.disabled()) {
287
- this.clicked.emit();
288
- }
289
- }
290
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotChatToolbarButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
291
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CopilotChatToolbarButtonComponent, isStandalone: true, selector: "copilot-chat-toolbar-button", outputs: { clicked: "clicked" }, ngImport: i0, template: `
292
- <button
293
- type="button"
294
- [disabled]="disabled()"
295
- [class]="computedClass()"
296
- [copilotTooltip]="title()"
297
- tooltipPosition="below"
298
- (click)="onClick()"
299
- >
300
- <ng-content></ng-content>
301
- </button>
302
- `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: CopilotTooltipDirective, selector: "[copilotTooltip]", inputs: ["copilotTooltip", "tooltipPosition", "tooltipDelay"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
303
- }
304
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CopilotChatToolbarButtonComponent, decorators: [{
305
- type: Component,
306
- args: [{ selector: 'copilot-chat-toolbar-button', standalone: true, imports: [CommonModule, CopilotTooltipDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `
307
- <button
308
- type="button"
309
- [disabled]="disabled()"
310
- [class]="computedClass()"
311
- [copilotTooltip]="title()"
312
- tooltipPosition="below"
313
- (click)="onClick()"
314
- >
315
- <ng-content></ng-content>
316
- </button>
317
- ` }]
318
- }], propDecorators: { clicked: [{
319
- type: Output
320
- }] } });
321
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdC1jaGF0LWJ1dHRvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvY2hhdC9jb3BpbG90LWNoYXQtYnV0dG9ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWix1QkFBdUIsRUFDdkIsTUFBTSxFQUNOLE1BQU0sRUFDTixRQUFRLEVBQ1IsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLE9BQU8sRUFDUCxHQUFHLEVBQ0gsQ0FBQyxFQUNELEtBQUssRUFDTCxJQUFJLEVBQ0wsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUVyQyx1REFBdUQ7QUFDdkQsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUNuQixnR0FBZ0csRUFDaEcsaUVBQWlFLEVBQ2pFLHVCQUF1QixFQUN2QiwrRUFBK0UsQ0FDaEYsQ0FBQztBQUVGLE1BQU0sdUJBQXVCLEdBQUcsRUFBRSxDQUNoQyxnQkFBZ0I7QUFDaEIsc0JBQXNCO0FBQ3RCLHFCQUFxQjtBQUNyQixZQUFZO0FBQ1osZ0VBQWdFO0FBQ2hFLG1CQUFtQjtBQUNuQixzQkFBc0I7QUFDdEIsZUFBZTtBQUNmLG1CQUFtQjtBQUNuQixlQUFlO0FBQ2Ysb0JBQW9CO0FBQ3BCLGVBQWU7QUFDZiw2Q0FBNkM7QUFDN0Msa0JBQWtCO0FBQ2xCLG1GQUFtRixFQUNuRixxREFBcUQs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QWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIGluamVjdCxcbiAgc2lnbmFsLFxuICBjb21wdXRlZCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgXG4gIEx1Y2lkZUFuZ3VsYXJNb2R1bGUsXG4gIEFycm93VXAsXG4gIE1pYyxcbiAgWCxcbiAgQ2hlY2ssXG4gIFBsdXNcbn0gZnJvbSAnbHVjaWRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgQ29waWxvdENoYXRDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvY2hhdC1jb25maWd1cmF0aW9uL2NoYXQtY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IENvcGlsb3RUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vbGliL2RpcmVjdGl2ZXMvdG9vbHRpcC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuLi8uLi9saWIvdXRpbHMnO1xuXG4vLyBCYXNlIGJ1dHRvbiBjbGFzc2VzIG1hdGNoaW5nIFJlYWN0J3MgYnV0dG9uIHZhcmlhbnRzXG5jb25zdCBidXR0b25CYXNlID0gY24oXG4gICdpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTIgd2hpdGVzcGFjZS1ub3dyYXAgcm91bmRlZC1tZCB0ZXh0LXNtIGZvbnQtbWVkaXVtJyxcbiAgJ3RyYW5zaXRpb24tYWxsIGRpc2FibGVkOnBvaW50ZXItZXZlbnRzLW5vbmUgZGlzYWJsZWQ6b3BhY2l0eS01MCcsXG4gICdzaHJpbmstMCBvdXRsaW5lLW5vbmUnLFxuICAnZm9jdXMtdmlzaWJsZTpib3JkZXItcmluZyBmb2N1cy12aXNpYmxlOnJpbmctcmluZy81MCBmb2N1cy12aXNpYmxlOnJpbmctWzNweF0nXG4pO1xuXG5jb25zdCBjaGF0SW5wdXRUb29sYmFyUHJpbWFyeSA9IGNuKFxuICAnY3Vyc29yLXBvaW50ZXInLFxuICAvLyBCYWNrZ3JvdW5kIGFuZCB0ZXh0XG4gICdiZy1ibGFjayB0ZXh0LXdoaXRlJyxcbiAgLy8gRGFyayBtb2RlXG4gICdkYXJrOmJnLXdoaXRlIGRhcms6dGV4dC1ibGFjayBkYXJrOmZvY3VzLXZpc2libGU6b3V0bGluZS13aGl0ZScsXG4gIC8vIFNoYXBlIGFuZCBzaXppbmdcbiAgJ3JvdW5kZWQtZnVsbCBoLTkgdy05JyxcbiAgLy8gSW50ZXJhY3Rpb25zXG4gICd0cmFuc2l0aW9uLWNvbG9ycycsXG4gIC8vIEZvY3VzIHN0YXRlc1xuICAnZm9jdXM6b3V0bGluZS1ub25lJyxcbiAgLy8gSG92ZXIgc3RhdGVzXG4gICdob3ZlcjpvcGFjaXR5LTcwIGRpc2FibGVkOmhvdmVyOm9wYWNpdHktMTAwJyxcbiAgLy8gRGlzYWJsZWQgc3RhdGVzXG4gICdkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgZGlzYWJsZWQ6YmctWyMwMDAwMDAxNF0gZGlzYWJsZWQ6dGV4dC1bcmdiKDEzLDEzLDEzKV0nLFxuICAnZGFyazpkaXNhYmxlZDpiZy1bIzQ1NDU0NV0gZGFyazpkaXNhYmxlZDp0ZXh0LXdoaXRlJ1xuKTtcblxuY29uc3QgY2hhdElucHV0VG9vbGJhclNlY29uZGFyeSA9IGNuKFxuICAnY3Vyc29yLXBvaW50ZXInLFxuICAvLyBCYWNrZ3JvdW5kIGFuZCB0ZXh0XG4gICdiZy10cmFuc3BhcmVudCB0ZXh0LVsjNDQ0NDQ0XScsXG4gIC8vIERhcmsgbW9kZVxuICAnZGFyazp0ZXh0LXdoaXRlIGRhcms6Ym9yZGVyLVsjNDA0MDQwXScsXG4gIC8vIFNoYXBlIGFuZCBzaXppbmdcbiAgJ3JvdW5kZWQtZnVsbCBoLTkgdy05JyxcbiAgLy8gSW50ZXJhY3Rpb25zXG4gICd0cmFuc2l0aW9uLWNvbG9ycycsXG4gIC8vIEZvY3VzIHN0YXRlc1xuICAnZm9jdXM6b3V0bGluZS1ub25lJyxcbiAgLy8gSG92ZXIgc3RhdGVzXG4gICdob3ZlcjpiZy1bI2Y4ZjhmOF0gaG92ZXI6dGV4dC1bIzMzMzMzM10nLFxuICAnZGFyazpob3ZlcjpiZy1bIzQwNDA0MF0gZGFyazpob3Zlcjp0ZXh0LVsjRkZGRkZGXScsXG4gIC8vIERpc2FibGVkIHN0YXRlc1xuICAnZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkIGRpc2FibGVkOm9wYWNpdHktNTAnLFxuICAnZGlzYWJsZWQ6aG92ZXI6YmctdHJhbnNwYXJlbnQgZGlzYWJsZWQ6aG92ZXI6dGV4dC1bIzQ0NDQ0NF0nLFxuICAnZGFyazpkaXNhYmxlZDpob3ZlcjpiZy10cmFuc3BhcmVudCBkYXJrOmRpc2FibGVkOmhvdmVyOnRleHQtWyNDQ0NDQ0NdJ1xuKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY29waWxvdC1jaGF0LXNlbmQtYnV0dG9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTHVjaWRlQW5ndWxhck1vZHVsZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJtci1bMTBweF1cIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtjbGFzc109XCJidXR0b25DbGFzc1wiXG4gICAgICAgIChjbGljayk9XCJvbkNsaWNrKClcIlxuICAgICAgPlxuICAgICAgICA8bHVjaWRlLWFuZ3VsYXIgW2ltZ109XCJBcnJvd1VwSWNvblwiIFtzaXplXT1cIjE4XCI+PC9sdWNpZGUtYW5ndWxhcj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtgYF1cbn0pXG5leHBvcnQgY2xhc3MgQ29waWxvdENoYXRTZW5kQnV0dG9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQE91dHB1dCgpIGNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIFxuICByZWFkb25seSBBcnJvd1VwSWNvbiA9IEFycm93VXA7XG4gIGJ1dHRvbkNsYXNzID0gY24oYnV0dG9uQmFzZSwgY2hhdElucHV0VG9vbGJhclByaW1hcnkpO1xuICBcbiAgb25DbGljaygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuY2xpY2tlZC5lbWl0KCk7XG4gICAgfVxuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NvcGlsb3QtY2hhdC1zdGFydC10cmFuc2NyaWJlLWJ1dHRvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEx1Y2lkZUFuZ3VsYXJNb2R1bGUsIENvcGlsb3RUb29sdGlwRGlyZWN0aXZlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW2NsYXNzXT1cImJ1dHRvbkNsYXNzXCJcbiAgICAgIFtjb3BpbG90VG9vbHRpcF09XCJsYWJlbFwiXG4gICAgICB0b29sdGlwUG9zaXRpb249XCJiZWxvd1wiXG4gICAgICAoY2xpY2spPVwib25DbGljaygpXCJcbiAgICA+XG4gICAgICA8bHVjaWRlLWFuZ3VsYXIgW2ltZ109XCJNaWNJY29uXCIgW3NpemVdPVwiMThcIj48L2x1Y2lkZS1hbmd1bGFyPlxuICAgIDwvYnV0dG9uPlxuICBgLFxuICBzdHlsZXM6IFtgYF1cbn0pXG5leHBvcnQgY2xhc3MgQ29waWxvdENoYXRTdGFydFRyYW5zY3JpYmVCdXR0b25Db21wb25lbnQge1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBAT3V0cHV0KCkgY2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgXG4gIHByaXZhdGUgY2hhdENvbmZpZyA9IGluamVjdChDb3BpbG90Q2hhdENvbmZpZ3VyYXRpb25TZXJ2aWNlKTtcbiAgXG4gIHJlYWRvbmx5IE1pY0ljb24gPSBNaWM7XG4gIGJ1dHRvbkNsYXNzID0gY24oYnV0dG9uQmFzZSwgY2hhdElucHV0VG9vbGJhclNlY29uZGFyeSwgJ21yLTInKTtcbiAgXG4gIGdldCBsYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNoYXRDb25maWcubGFiZWxzKCkuY2hhdElucHV0VG9vbGJhclN0YXJ0VHJhbnNjcmliZUJ1dHRvbkxhYmVsO1xuICB9XG4gIFxuICBvbkNsaWNrKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5jbGlja2VkLmVtaXQoKTtcbiAgICB9XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY29waWxvdC1jaGF0LWNhbmNlbC10cmFuc2NyaWJlLWJ1dHRvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEx1Y2lkZUFuZ3VsYXJNb2R1bGUsIENvcGlsb3RUb29sdGlwRGlyZWN0aXZlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW2NsYXNzXT1cImJ1dHRvbkNsYXNzXCJcbiAgICAgIFtjb3BpbG90VG9vbHRpcF09XCJsYWJlbFwiXG4gICAgICB0b29sdGlwUG9zaXRpb249XCJiZWxvd1wiXG4gICAgICAoY2xpY2spPVwib25DbGljaygpXCJcbiAgICA+XG4gICAgICA8bHVjaWRlLWFuZ3VsYXIgW2ltZ109XCJYSWNvblwiIFtzaXplXT1cIjE4XCI+PC9sdWNpZGUtYW5ndWxhcj5cbiAgICA8L2J1dHRvbj5cbiAgYCxcbiAgc3R5bGVzOiBbYGBdXG59KVxuZXhwb3J0IGNsYXNzIENvcGlsb3RDaGF0Q2FuY2VsVHJhbnNjcmliZUJ1dHRvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBjbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBcbiAgcHJpdmF0ZSBjaGF0Q29uZmlnID0gaW5qZWN0KENvcGlsb3RDaGF0Q29uZmlndXJhdGlvblNlcnZpY2UpO1xuICBcbiAgcmVhZG9ubHkgWEljb24gPSBYO1xuICBidXR0b25DbGFzcyA9IGNuKGJ1dHRvbkJhc2UsIGNoYXRJbnB1dFRvb2xiYXJTZWNvbmRhcnksICdtci0yJyk7XG4gIFxuICBnZXQgbGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jaGF0Q29uZmlnLmxhYmVscygpLmNoYXRJbnB1dFRvb2xiYXJDYW5jZWxUcmFuc2NyaWJlQnV0dG9uTGFiZWw7XG4gIH1cbiAgXG4gIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmNsaWNrZWQuZW1pdCgpO1xuICAgIH1cbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjb3BpbG90LWNoYXQtZmluaXNoLXRyYW5zY3JpYmUtYnV0dG9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTHVjaWRlQW5ndWxhck1vZHVsZSwgQ29waWxvdFRvb2x0aXBEaXJlY3RpdmVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbY2xhc3NdPVwiYnV0dG9uQ2xhc3NcIlxuICAgICAgW2NvcGlsb3RUb29sdGlwXT1cImxhYmVsXCJcbiAgICAgIHRvb2x0aXBQb3NpdGlvbj1cImJlbG93XCJcbiAgICAgIChjbGljayk9XCJvbkNsaWNrKClcIlxuICAgID5cbiAgICAgIDxsdWNpZGUtYW5ndWxhciBbaW1nXT1cIkNoZWNrSWNvblwiIFtzaXplXT1cIjE4XCI+PC9sdWNpZGUtYW5ndWxhcj5cbiAgICA8L2J1dHRvbj5cbiAgYCxcbiAgc3R5bGVzOiBbYGBdXG59KVxuZXhwb3J0IGNsYXNzIENvcGlsb3RDaGF0RmluaXNoVHJhbnNjcmliZUJ1dHRvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBjbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBcbiAgcHJpdmF0ZSBjaGF0Q29uZmlnID0gaW5qZWN0KENvcGlsb3RDaGF0Q29uZmlndXJhdGlvblNlcnZpY2UpO1xuICBcbiAgcmVhZG9ubHkgQ2hlY2tJY29uID0gQ2hlY2s7XG4gIGJ1dHRvbkNsYXNzID0gY24oYnV0dG9uQmFzZSwgY2hhdElucHV0VG9vbGJhclNlY29uZGFyeSwgJ21yLVsxMHB4XScpO1xuICBcbiAgZ2V0IGxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY2hhdENvbmZpZy5sYWJlbHMoKS5jaGF0SW5wdXRUb29sYmFyRmluaXNoVHJhbnNjcmliZUJ1dHRvbkxhYmVsO1xuICB9XG4gIFxuICBvbkNsaWNrKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5jbGlja2VkLmVtaXQoKTtcbiAgICB9XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY29waWxvdC1jaGF0LWFkZC1maWxlLWJ1dHRvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEx1Y2lkZUFuZ3VsYXJNb2R1bGUsIENvcGlsb3RUb29sdGlwRGlyZWN0aXZlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW2NsYXNzXT1cImJ1dHRvbkNsYXNzXCJcbiAgICAgIFtjb3BpbG90VG9vbHRpcF09XCJsYWJlbFwiXG4gICAgICB0b29sdGlwUG9zaXRpb249XCJiZWxvd1wiXG4gICAgICAoY2xpY2spPVwib25DbGljaygpXCJcbiAgICA+XG4gICAgICA8bHVjaWRlLWFuZ3VsYXIgW2ltZ109XCJQbHVzSWNvblwiIFtzaXplXT1cIjIwXCI+PC9sdWNpZGUtYW5ndWxhcj5cbiAgICA8L2J1dHRvbj5cbiAgYCxcbiAgc3R5bGVzOiBbYGBdXG59KVxuZXhwb3J0IGNsYXNzIENvcGlsb3RDaGF0QWRkRmlsZUJ1dHRvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBjbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBcbiAgcHJpdmF0ZSBjaGF0Q29uZmlnID0gaW5qZWN0KENvcGlsb3RDaGF0Q29uZmlndXJhdGlvblNlcnZpY2UpO1xuICBcbiAgcmVhZG9ubHkgUGx1c0ljb24gPSBQbHVzO1xuICBidXR0b25DbGFzcyA9IGNuKGJ1dHRvbkJhc2UsIGNoYXRJbnB1dFRvb2xiYXJTZWNvbmRhcnksICdtbC0yJyk7XG4gIFxuICBnZXQgbGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jaGF0Q29uZmlnLmxhYmVscygpLmNoYXRJbnB1dFRvb2xiYXJBZGRCdXR0b25MYWJlbDtcbiAgfVxuICBcbiAgb25DbGljaygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuY2xpY2tlZC5lbWl0KCk7XG4gICAgfVxuICB9XG59XG5cbi8vIEJhc2UgdG9vbGJhciBidXR0b24gY29tcG9uZW50IHRoYXQgb3RoZXIgYnV0dG9ucyBjYW4gdXNlXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjb3BpbG90LWNoYXQtdG9vbGJhci1idXR0b24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDb3BpbG90VG9vbHRpcERpcmVjdGl2ZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgW2NsYXNzXT1cImNvbXB1dGVkQ2xhc3MoKVwiXG4gICAgICBbY29waWxvdFRvb2x0aXBdPVwidGl0bGUoKVwiXG4gICAgICB0b29sdGlwUG9zaXRpb249XCJiZWxvd1wiXG4gICAgICAoY2xpY2spPVwib25DbGljaygpXCJcbiAgICA+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9idXR0b24+XG4gIGAsXG4gIHN0eWxlczogW2BgXVxufSlcbmV4cG9ydCBjbGFzcyBDb3BpbG90Q2hhdFRvb2xiYXJCdXR0b25Db21wb25lbnQge1xuICBkaXNhYmxlZCA9IHNpZ25hbChmYWxzZSk7XG4gIHZhcmlhbnQgPSBzaWduYWw8J3ByaW1hcnknIHwgJ3NlY29uZGFyeSc+KCdzZWNvbmRhcnknKTtcbiAgY3VzdG9tQ2xhc3MgPSBzaWduYWwoJycpO1xuICB0aXRsZSA9IHNpZ25hbCgnJyk7XG4gIFxuICBAT3V0cHV0KCkgY2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgXG4gIGNvbXB1dGVkQ2xhc3MgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgdmFyaWFudENsYXNzID0gdGhpcy52YXJpYW50KCkgPT09ICdwcmltYXJ5JyBcbiAgICAgID8gY2hhdElucHV0VG9vbGJhclByaW1hcnkgXG4gICAgICA6IGNoYXRJbnB1dFRvb2xiYXJTZWNvbmRhcnk7XG4gICAgcmV0dXJuIGNuKGJ1dHRvbkJhc2UsIHZhcmlhbnRDbGFzcywgdGhpcy5jdXN0b21DbGFzcygpKTtcbiAgfSk7XG4gIFxuICBvbkNsaWNrKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCgpKSB7XG4gICAgICB0aGlzLmNsaWNrZWQuZW1pdCgpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,38 +0,0 @@
1
- import { CopilotChatTextareaComponent } from "./copilot-chat-textarea.component";
2
- import { CopilotChatAudioRecorderComponent } from "./copilot-chat-audio-recorder.component";
3
- import { CopilotChatSendButtonComponent, CopilotChatStartTranscribeButtonComponent, CopilotChatCancelTranscribeButtonComponent, CopilotChatFinishTranscribeButtonComponent, CopilotChatAddFileButtonComponent, } from "./copilot-chat-buttons.component";
4
- import { CopilotChatToolbarComponent } from "./copilot-chat-toolbar.component";
5
- import { CopilotChatToolsMenuComponent } from "./copilot-chat-tools-menu.component";
6
- /**
7
- * Default components used by CopilotChatInput.
8
- * These can be imported and reused when creating custom slot implementations.
9
- *
10
- * @example
11
- * ```typescript
12
- * import { CopilotChatInputDefaults } from '@copilotkitnext/angular';
13
- *
14
- * @Component({
15
- * template: `
16
- * <copilot-chat-input [sendButtonSlot]="CustomSendButton">
17
- * </copilot-chat-input>
18
- * `
19
- * })
20
- * export class MyComponent {
21
- * CustomSendButton = class extends CopilotChatInputDefaults.SendButton {
22
- * // Custom implementation
23
- * };
24
- * }
25
- * ```
26
- */
27
- export class CopilotChatInputDefaults {
28
- static TextArea = CopilotChatTextareaComponent;
29
- static AudioRecorder = CopilotChatAudioRecorderComponent;
30
- static SendButton = CopilotChatSendButtonComponent;
31
- static StartTranscribeButton = CopilotChatStartTranscribeButtonComponent;
32
- static CancelTranscribeButton = CopilotChatCancelTranscribeButtonComponent;
33
- static FinishTranscribeButton = CopilotChatFinishTranscribeButtonComponent;
34
- static AddFileButton = CopilotChatAddFileButtonComponent;
35
- static Toolbar = CopilotChatToolbarComponent;
36
- static ToolsMenu = CopilotChatToolsMenuComponent;
37
- }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29waWxvdC1jaGF0LWlucHV0LWRlZmF1bHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvY2hhdC9jb3BpbG90LWNoYXQtaW5wdXQtZGVmYXVsdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakYsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDNUYsT0FBTyxFQUNMLDhCQUE4QixFQUM5Qix5Q0FBeUMsRUFDekMsMENBQTBDLEVBQzFDLDBDQUEwQyxFQUMxQyxpQ0FBaUMsR0FDbEMsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVwRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLE1BQU0sQ0FBVSxRQUFRLEdBQUcsNEJBQTRCLENBQUM7SUFDeEQsTUFBTSxDQUFVLGFBQWEsR0FBRyxpQ0FBaUMsQ0FBQztJQUNsRSxNQUFNLENBQVUsVUFBVSxHQUFHLDhCQUE4QixDQUFDO0lBQzVELE1BQU0sQ0FBVSxxQkFBcUIsR0FDbkMseUNBQXlDLENBQUM7SUFDNUMsTUFBTSxDQUFVLHNCQUFzQixHQUNwQywwQ0FBMEMsQ0FBQztJQUM3QyxNQUFNLENBQVUsc0JBQXNCLEdBQ3BDLDBDQUEwQyxDQUFDO0lBQzdDLE1BQU0sQ0FBVSxhQUFhLEdBQUcsaUNBQWlDLENBQUM7SUFDbEUsTUFBTSxDQUFVLE9BQU8sR0FBRywyQkFBMkIsQ0FBQztJQUN0RCxNQUFNLENBQVUsU0FBUyxHQUFHLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29waWxvdENoYXRUZXh0YXJlYUNvbXBvbmVudCB9IGZyb20gXCIuL2NvcGlsb3QtY2hhdC10ZXh0YXJlYS5jb21wb25lbnRcIjtcbmltcG9ydCB7IENvcGlsb3RDaGF0QXVkaW9SZWNvcmRlckNvbXBvbmVudCB9IGZyb20gXCIuL2NvcGlsb3QtY2hhdC1hdWRpby1yZWNvcmRlci5jb21wb25lbnRcIjtcbmltcG9ydCB7XG4gIENvcGlsb3RDaGF0U2VuZEJ1dHRvbkNvbXBvbmVudCxcbiAgQ29waWxvdENoYXRTdGFydFRyYW5zY3JpYmVCdXR0b25Db21wb25lbnQsXG4gIENvcGlsb3RDaGF0Q2FuY2VsVHJhbnNjcmliZUJ1dHRvbkNvbXBvbmVudCxcbiAgQ29waWxvdENoYXRGaW5pc2hUcmFuc2NyaWJlQnV0dG9uQ29tcG9uZW50LFxuICBDb3BpbG90Q2hhdEFkZEZpbGVCdXR0b25Db21wb25lbnQsXG59IGZyb20gXCIuL2NvcGlsb3QtY2hhdC1idXR0b25zLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQ29waWxvdENoYXRUb29sYmFyQ29tcG9uZW50IH0gZnJvbSBcIi4vY29waWxvdC1jaGF0LXRvb2xiYXIuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDb3BpbG90Q2hhdFRvb2xzTWVudUNvbXBvbmVudCB9IGZyb20gXCIuL2NvcGlsb3QtY2hhdC10b29scy1tZW51LmNvbXBvbmVudFwiO1xuXG4vKipcbiAqIERlZmF1bHQgY29tcG9uZW50cyB1c2VkIGJ5IENvcGlsb3RDaGF0SW5wdXQuXG4gKiBUaGVzZSBjYW4gYmUgaW1wb3J0ZWQgYW5kIHJldXNlZCB3aGVuIGNyZWF0aW5nIGN1c3RvbSBzbG90IGltcGxlbWVudGF0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgQ29waWxvdENoYXRJbnB1dERlZmF1bHRzIH0gZnJvbSAnQGNvcGlsb3RraXRuZXh0L2FuZ3VsYXInO1xuICpcbiAqIEBDb21wb25lbnQoe1xuICogICB0ZW1wbGF0ZTogYFxuICogICAgIDxjb3BpbG90LWNoYXQtaW5wdXQgW3NlbmRCdXR0b25TbG90XT1cIkN1c3RvbVNlbmRCdXR0b25cIj5cbiAqICAgICA8L2NvcGlsb3QtY2hhdC1pbnB1dD5cbiAqICAgYFxuICogfSlcbiAqIGV4cG9ydCBjbGFzcyBNeUNvbXBvbmVudCB7XG4gKiAgIEN1c3RvbVNlbmRCdXR0b24gPSBjbGFzcyBleHRlbmRzIENvcGlsb3RDaGF0SW5wdXREZWZhdWx0cy5TZW5kQnV0dG9uIHtcbiAqICAgICAvLyBDdXN0b20gaW1wbGVtZW50YXRpb25cbiAqICAgfTtcbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgQ29waWxvdENoYXRJbnB1dERlZmF1bHRzIHtcbiAgc3RhdGljIHJlYWRvbmx5IFRleHRBcmVhID0gQ29waWxvdENoYXRUZXh0YXJlYUNvbXBvbmVudDtcbiAgc3RhdGljIHJlYWRvbmx5IEF1ZGlvUmVjb3JkZXIgPSBDb3BpbG90Q2hhdEF1ZGlvUmVjb3JkZXJDb21wb25lbnQ7XG4gIHN0YXRpYyByZWFkb25seSBTZW5kQnV0dG9uID0gQ29waWxvdENoYXRTZW5kQnV0dG9uQ29tcG9uZW50O1xuICBzdGF0aWMgcmVhZG9ubHkgU3RhcnRUcmFuc2NyaWJlQnV0dG9uID1cbiAgICBDb3BpbG90Q2hhdFN0YXJ0VHJhbnNjcmliZUJ1dHRvbkNvbXBvbmVudDtcbiAgc3RhdGljIHJlYWRvbmx5IENhbmNlbFRyYW5zY3JpYmVCdXR0b24gPVxuICAgIENvcGlsb3RDaGF0Q2FuY2VsVHJhbnNjcmliZUJ1dHRvbkNvbXBvbmVudDtcbiAgc3RhdGljIHJlYWRvbmx5IEZpbmlzaFRyYW5zY3JpYmVCdXR0b24gPVxuICAgIENvcGlsb3RDaGF0RmluaXNoVHJhbnNjcmliZUJ1dHRvbkNvbXBvbmVudDtcbiAgc3RhdGljIHJlYWRvbmx5IEFkZEZpbGVCdXR0b24gPSBDb3BpbG90Q2hhdEFkZEZpbGVCdXR0b25Db21wb25lbnQ7XG4gIHN0YXRpYyByZWFkb25seSBUb29sYmFyID0gQ29waWxvdENoYXRUb29sYmFyQ29tcG9uZW50O1xuICBzdGF0aWMgcmVhZG9ubHkgVG9vbHNNZW51ID0gQ29waWxvdENoYXRUb29sc01lbnVDb21wb25lbnQ7XG59XG4iXX0=