@n8n/chat 0.5.0 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/App.vue +23 -0
  2. package/__stories__/App.stories.d.ts +16 -0
  3. package/__stories__/App.stories.js +38 -0
  4. package/__stories__/App.stories.mjs +32 -0
  5. package/__tests__/index.spec.d.ts +1 -0
  6. package/__tests__/index.spec.js +146 -0
  7. package/__tests__/index.spec.mjs +172 -0
  8. package/__tests__/setup.d.ts +1 -0
  9. package/__tests__/setup.js +3 -0
  10. package/__tests__/setup.mjs +1 -0
  11. package/__tests__/utils/create.d.ts +5 -0
  12. package/__tests__/utils/create.js +16 -0
  13. package/__tests__/utils/create.mjs +10 -0
  14. package/__tests__/utils/fetch.d.ts +3 -0
  15. package/__tests__/utils/fetch.js +20 -0
  16. package/__tests__/utils/fetch.mjs +9 -0
  17. package/__tests__/utils/index.d.ts +3 -0
  18. package/__tests__/utils/index.js +38 -0
  19. package/__tests__/utils/index.mjs +3 -0
  20. package/__tests__/utils/selectors.d.ts +12 -0
  21. package/__tests__/utils/selectors.js +58 -0
  22. package/__tests__/utils/selectors.mjs +41 -0
  23. package/api/generic.d.ts +6 -0
  24. package/api/generic.js +68 -0
  25. package/api/generic.mjs +54 -0
  26. package/api/index.d.ts +2 -0
  27. package/api/index.js +27 -0
  28. package/api/index.mjs +2 -0
  29. package/api/message.d.ts +3 -0
  30. package/api/message.js +33 -0
  31. package/api/message.mjs +30 -0
  32. package/components/Button.vue +34 -0
  33. package/components/Chat.vue +52 -0
  34. package/components/ChatWindow.vue +104 -0
  35. package/components/GetStarted.vue +24 -0
  36. package/components/GetStartedFooter.vue +20 -0
  37. package/components/Input.vue +88 -0
  38. package/components/Layout.vue +66 -0
  39. package/components/Message.vue +94 -0
  40. package/components/MessageTyping.vue +101 -0
  41. package/components/MessagesList.vue +37 -0
  42. package/components/PoweredBy.vue +16 -0
  43. package/components/index.d.ts +10 -0
  44. package/components/index.js +76 -0
  45. package/components/index.mjs +10 -0
  46. package/composables/index.d.ts +3 -0
  47. package/composables/index.js +38 -0
  48. package/composables/index.mjs +3 -0
  49. package/composables/useChat.d.ts +1 -0
  50. package/composables/useChat.js +11 -0
  51. package/composables/useChat.mjs +5 -0
  52. package/composables/useI18n.d.ts +4 -0
  53. package/composables/useI18n.js +23 -0
  54. package/composables/useI18n.mjs +12 -0
  55. package/composables/useOptions.d.ts +3 -0
  56. package/composables/useOptions.js +14 -0
  57. package/composables/useOptions.mjs +8 -0
  58. package/constants/defaults.d.ts +3 -0
  59. package/constants/defaults.js +32 -0
  60. package/constants/defaults.mjs +26 -0
  61. package/constants/index.d.ts +3 -0
  62. package/constants/index.js +38 -0
  63. package/constants/index.mjs +3 -0
  64. package/constants/localStorage.d.ts +2 -0
  65. package/constants/localStorage.js +8 -0
  66. package/constants/localStorage.mjs +2 -0
  67. package/constants/symbols.d.ts +3 -0
  68. package/constants/symbols.js +8 -0
  69. package/constants/symbols.mjs +2 -0
  70. package/css/index.css +31 -0
  71. package/event-buses/chatEventBus.d.ts +1 -0
  72. package/event-buses/chatEventBus.js +8 -0
  73. package/event-buses/chatEventBus.mjs +2 -0
  74. package/event-buses/index.d.ts +1 -0
  75. package/event-buses/index.js +16 -0
  76. package/event-buses/index.mjs +1 -0
  77. package/index.d.ts +3 -0
  78. package/index.js +43 -0
  79. package/index.mjs +36 -0
  80. package/main.css +151 -0
  81. package/package.json +9 -2
  82. package/plugins/chat.d.ts +3 -0
  83. package/plugins/chat.js +85 -0
  84. package/plugins/chat.mjs +83 -0
  85. package/plugins/index.d.ts +1 -0
  86. package/plugins/index.js +16 -0
  87. package/plugins/index.mjs +1 -0
  88. package/shims.d.ts +6 -0
  89. package/types/chat.d.ts +11 -0
  90. package/types/chat.js +1 -0
  91. package/types/chat.mjs +0 -0
  92. package/types/index.d.ts +4 -2
  93. package/types/index.js +49 -0
  94. package/types/index.mjs +4 -0
  95. package/types/messages.d.ts +6 -0
  96. package/types/messages.js +1 -0
  97. package/types/messages.mjs +0 -0
  98. package/types/options.d.ts +25 -0
  99. package/types/options.js +1 -0
  100. package/types/options.mjs +0 -0
  101. package/types/src/App.vue.d.ts +8 -0
  102. package/types/src/__stories__/App.stories.d.ts +17 -0
  103. package/types/src/__tests__/index.spec.d.ts +1 -0
  104. package/types/src/__tests__/setup.d.ts +0 -0
  105. package/types/src/__tests__/utils/create.d.ts +5 -0
  106. package/types/src/__tests__/utils/fetch.d.ts +4 -0
  107. package/types/src/__tests__/utils/index.d.ts +3 -0
  108. package/types/src/__tests__/utils/selectors.d.ts +12 -0
  109. package/types/src/api/generic.d.ts +6 -0
  110. package/types/src/api/index.d.ts +2 -0
  111. package/types/src/api/message.d.ts +3 -0
  112. package/types/src/components/Button.vue.d.ts +9 -0
  113. package/types/src/components/Chat.vue.d.ts +2 -0
  114. package/types/src/components/ChatWindow.vue.d.ts +2 -0
  115. package/types/src/components/GetStarted.vue.d.ts +2 -0
  116. package/types/src/components/GetStartedFooter.vue.d.ts +2 -0
  117. package/types/src/components/Input.vue.d.ts +2 -0
  118. package/types/src/components/Layout.vue.d.ts +11 -0
  119. package/types/src/components/Message.vue.d.ts +21 -0
  120. package/types/src/components/MessageTyping.vue.d.ts +15 -0
  121. package/types/src/components/MessagesList.vue.d.ts +14 -0
  122. package/types/src/components/PoweredBy.vue.d.ts +2 -0
  123. package/types/src/components/index.d.ts +10 -0
  124. package/types/src/composables/index.d.ts +3 -0
  125. package/types/src/composables/useChat.d.ts +2 -0
  126. package/types/src/composables/useI18n.d.ts +4 -0
  127. package/types/src/composables/useOptions.d.ts +4 -0
  128. package/types/src/constants/defaults.d.ts +3 -0
  129. package/types/src/constants/index.d.ts +3 -0
  130. package/types/src/constants/localStorage.d.ts +2 -0
  131. package/types/src/constants/symbols.d.ts +4 -0
  132. package/types/src/event-buses/chatEventBus.d.ts +1 -0
  133. package/types/src/event-buses/index.d.ts +1 -0
  134. package/types/src/index.d.ts +2 -0
  135. package/types/src/plugins/chat.d.ts +3 -0
  136. package/types/src/plugins/index.d.ts +1 -0
  137. package/types/src/types/chat.d.ts +11 -0
  138. package/types/src/types/index.d.ts +4 -0
  139. package/types/src/types/messages.d.ts +6 -0
  140. package/types/src/types/options.d.ts +25 -0
  141. package/types/src/types/webhook.d.ts +15 -0
  142. package/types/src/utils/event-bus.d.ts +8 -0
  143. package/types/src/utils/index.d.ts +2 -0
  144. package/types/src/utils/mount.d.ts +1 -0
  145. package/types/webhook.d.ts +15 -0
  146. package/types/webhook.js +1 -0
  147. package/types/webhook.mjs +0 -0
  148. package/utils/event-bus.d.ts +8 -0
  149. package/utils/event-bus.js +38 -0
  150. package/utils/event-bus.mjs +32 -0
  151. package/utils/index.d.ts +2 -0
  152. package/utils/index.js +27 -0
  153. package/utils/index.mjs +2 -0
  154. package/utils/mount.d.ts +1 -0
  155. package/utils/mount.js +19 -0
  156. package/utils/mount.mjs +13 -0
  157. package/chat.es.js +0 -6870
  158. package/chat.umd.js +0 -18
@@ -0,0 +1,94 @@
1
+ <script lang="ts" setup>
2
+ /* eslint-disable @typescript-eslint/naming-convention */
3
+ import type { ChatMessage } from '@n8n/chat/types';
4
+ import type { PropType } from 'vue';
5
+ import { computed, toRefs } from 'vue';
6
+ import VueMarkdown from 'vue-markdown-render';
7
+ import hljs from 'highlight.js/lib/core';
8
+
9
+ const props = defineProps({
10
+ message: {
11
+ type: Object as PropType<ChatMessage>,
12
+ required: true,
13
+ },
14
+ });
15
+
16
+ const { message } = toRefs(props);
17
+
18
+ const messageText = computed(() => {
19
+ return message.value.text || '&lt;Empty response&gt;';
20
+ });
21
+
22
+ const classes = computed(() => {
23
+ return {
24
+ 'chat-message-from-user': message.value.sender === 'user',
25
+ 'chat-message-from-bot': message.value.sender === 'bot',
26
+ };
27
+ });
28
+
29
+ const markdownOptions = {
30
+ highlight(str: string, lang: string) {
31
+ if (lang && hljs.getLanguage(lang)) {
32
+ try {
33
+ return hljs.highlight(str, { language: lang }).value;
34
+ } catch {}
35
+ }
36
+
37
+ return ''; // use external default escaping
38
+ },
39
+ };
40
+ </script>
41
+ <template>
42
+ <div class="chat-message" :class="classes">
43
+ <slot>
44
+ <vue-markdown
45
+ class="chat-message-markdown"
46
+ :source="messageText"
47
+ :options="markdownOptions"
48
+ />
49
+ </slot>
50
+ </div>
51
+ </template>
52
+
53
+ <style>
54
+ .chat-message {
55
+ display: block;
56
+ max-width: 80%;
57
+ padding: var(--chat--message--padding, var(--chat--spacing));
58
+ border-radius: var(--chat--message--border-radius, var(--chat--border-radius));
59
+ }
60
+ .chat-message + .chat-message {
61
+ margin-top: var(--chat--message--margin-bottom, calc(var(--chat--spacing) * 0.5));
62
+ }
63
+ .chat-message.chat-message-from-bot {
64
+ background-color: var(--chat--message--bot--background);
65
+ color: var(--chat--message--bot--color);
66
+ border-bottom-left-radius: 0;
67
+ }
68
+ .chat-message.chat-message-from-user {
69
+ background-color: var(--chat--message--user--background);
70
+ color: var(--chat--message--user--color);
71
+ margin-left: auto;
72
+ border-bottom-right-radius: 0;
73
+ }
74
+ .chat-message > .chat-message-markdown {
75
+ display: block;
76
+ box-sizing: border-box;
77
+ }
78
+ .chat-message > .chat-message-markdown > *:first-child {
79
+ margin-top: 0;
80
+ }
81
+ .chat-message > .chat-message-markdown > *:last-child {
82
+ margin-bottom: 0;
83
+ }
84
+ .chat-message > .chat-message-markdown pre {
85
+ font-family: inherit;
86
+ font-size: inherit;
87
+ margin: 0;
88
+ white-space: pre-wrap;
89
+ box-sizing: border-box;
90
+ padding: var(--chat--spacing);
91
+ background: var(--chat--message--pre--background);
92
+ border-radius: var(--chat--border-radius);
93
+ }
94
+ </style>
@@ -0,0 +1,101 @@
1
+ <script lang="ts" setup>
2
+ import type { ChatMessage } from '@n8n/chat/types';
3
+ import { Message } from './index';
4
+ import type { PropType } from 'vue';
5
+ import { computed } from 'vue';
6
+
7
+ const props = defineProps({
8
+ animation: {
9
+ type: String as PropType<'bouncing' | 'scaling'>,
10
+ default: 'bouncing',
11
+ },
12
+ });
13
+
14
+ const message: ChatMessage = {
15
+ id: 'typing',
16
+ text: '',
17
+ sender: 'bot',
18
+ createdAt: '',
19
+ };
20
+
21
+ const classes = computed(() => {
22
+ return {
23
+ // eslint-disable-next-line @typescript-eslint/naming-convention
24
+ 'chat-message-typing': true,
25
+ [`chat-message-typing-animation-${props.animation}`]: true,
26
+ };
27
+ });
28
+ </script>
29
+ <template>
30
+ <Message :class="classes" :message="message">
31
+ <div class="chat-message-typing-body">
32
+ <span class="chat-message-typing-circle"></span>
33
+ <span class="chat-message-typing-circle"></span>
34
+ <span class="chat-message-typing-circle"></span>
35
+ </div>
36
+ </Message>
37
+ </template>
38
+ <style>
39
+ .chat-message-typing {
40
+ max-width: 80px;
41
+ }
42
+ .chat-message-typing.chat-message-typing-animation-scaling .chat-message-typing-circle {
43
+ animation: chat-message-typing-animation-scaling 800ms ease-in-out infinite;
44
+ animation-delay: 3600ms;
45
+ }
46
+ .chat-message-typing.chat-message-typing-animation-bouncing .chat-message-typing-circle {
47
+ animation: chat-message-typing-animation-bouncing 800ms ease-in-out infinite;
48
+ animation-delay: 3600ms;
49
+ }
50
+ .chat-message-typing .chat-message-typing-body {
51
+ display: flex;
52
+ justify-content: center;
53
+ align-items: center;
54
+ }
55
+ .chat-message-typing .chat-message-typing-circle {
56
+ display: block;
57
+ height: 10px;
58
+ width: 10px;
59
+ border-radius: 50%;
60
+ background-color: var(--chat--color-typing);
61
+ margin: 3px;
62
+ }
63
+ .chat-message-typing .chat-message-typing-circle:nth-child(1) {
64
+ animation-delay: 0ms;
65
+ }
66
+ .chat-message-typing .chat-message-typing-circle:nth-child(2) {
67
+ animation-delay: 333ms;
68
+ }
69
+ .chat-message-typing .chat-message-typing-circle:nth-child(3) {
70
+ animation-delay: 666ms;
71
+ }
72
+
73
+ @keyframes chat-message-typing-animation-scaling {
74
+ 0% {
75
+ transform: scale(1);
76
+ }
77
+ 33% {
78
+ transform: scale(1);
79
+ }
80
+ 50% {
81
+ transform: scale(1.4);
82
+ }
83
+ 100% {
84
+ transform: scale(1);
85
+ }
86
+ }
87
+ @keyframes chat-message-typing-animation-bouncing {
88
+ 0% {
89
+ transform: translateY(0);
90
+ }
91
+ 33% {
92
+ transform: translateY(0);
93
+ }
94
+ 50% {
95
+ transform: translateY(-10px);
96
+ }
97
+ 100% {
98
+ transform: translateY(0);
99
+ }
100
+ }
101
+ </style>
@@ -0,0 +1,37 @@
1
+ <script lang="ts" setup>
2
+ import type { PropType } from 'vue';
3
+ import Message from '@n8n/chat/components/Message.vue';
4
+ import type { ChatMessage } from '@n8n/chat/types';
5
+ import MessageTyping from '@n8n/chat/components/MessageTyping.vue';
6
+ import { useChat } from '@n8n/chat/composables';
7
+
8
+ defineProps({
9
+ messages: {
10
+ type: Array as PropType<ChatMessage[]>,
11
+ required: true,
12
+ },
13
+ });
14
+
15
+ const chatStore = useChat();
16
+
17
+ const { initialMessages, waitingForResponse } = chatStore;
18
+ </script>
19
+ <template>
20
+ <div class="chat-messages-list">
21
+ <Message
22
+ v-for="initialMessage in initialMessages"
23
+ :key="initialMessage.id"
24
+ :message="initialMessage"
25
+ />
26
+ <Message v-for="message in messages" :key="message.id" :message="message" />
27
+ <MessageTyping v-if="waitingForResponse" />
28
+ </div>
29
+ </template>
30
+
31
+ <style>
32
+ .chat-messages-list {
33
+ margin-top: auto;
34
+ display: block;
35
+ padding: var(--chat--messages-list--padding, var(--chat--spacing));
36
+ }
37
+ </style>
@@ -0,0 +1,16 @@
1
+ <template>
2
+ <div class="chat-powered-by">
3
+ Powered by
4
+ <a href="https://n8n.io?utm_source=n8n-external&utm_medium=widget-powered-by">n8n</a>
5
+ </div>
6
+ </template>
7
+
8
+ <style>
9
+ .chat-powered-by {
10
+ text-align: center;
11
+ }
12
+ .chat-powered-by a {
13
+ color: var(--chat--color-primary);
14
+ text-decoration: none;
15
+ }
16
+ </style>
@@ -0,0 +1,10 @@
1
+ export { default as Button } from './Button.vue';
2
+ export { default as Chat } from './Chat.vue';
3
+ export { default as ChatWindow } from './ChatWindow.vue';
4
+ export { default as GetStarted } from './GetStarted.vue';
5
+ export { default as GetStartedFooter } from './GetStartedFooter.vue';
6
+ export { default as Input } from './Input.vue';
7
+ export { default as Layout } from './Layout.vue';
8
+ export { default as Message } from './Message.vue';
9
+ export { default as MessagesList } from './MessagesList.vue';
10
+ export { default as PoweredBy } from './PoweredBy.vue';
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Button", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _Button.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "Chat", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _Chat.default;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "ChatWindow", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _ChatWindow.default;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "GetStarted", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _GetStarted.default;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "GetStartedFooter", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _GetStartedFooter.default;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "Input", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _Input.default;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "Layout", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _Layout.default;
46
+ }
47
+ });
48
+ Object.defineProperty(exports, "Message", {
49
+ enumerable: true,
50
+ get: function () {
51
+ return _Message.default;
52
+ }
53
+ });
54
+ Object.defineProperty(exports, "MessagesList", {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _MessagesList.default;
58
+ }
59
+ });
60
+ Object.defineProperty(exports, "PoweredBy", {
61
+ enumerable: true,
62
+ get: function () {
63
+ return _PoweredBy.default;
64
+ }
65
+ });
66
+ var _Button = _interopRequireDefault(require("./Button.vue"));
67
+ var _Chat = _interopRequireDefault(require("./Chat.vue"));
68
+ var _ChatWindow = _interopRequireDefault(require("./ChatWindow.vue"));
69
+ var _GetStarted = _interopRequireDefault(require("./GetStarted.vue"));
70
+ var _GetStartedFooter = _interopRequireDefault(require("./GetStartedFooter.vue"));
71
+ var _Input = _interopRequireDefault(require("./Input.vue"));
72
+ var _Layout = _interopRequireDefault(require("./Layout.vue"));
73
+ var _Message = _interopRequireDefault(require("./Message.vue"));
74
+ var _MessagesList = _interopRequireDefault(require("./MessagesList.vue"));
75
+ var _PoweredBy = _interopRequireDefault(require("./PoweredBy.vue"));
76
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -0,0 +1,10 @@
1
+ export { default as Button } from "./Button.vue";
2
+ export { default as Chat } from "./Chat.vue";
3
+ export { default as ChatWindow } from "./ChatWindow.vue";
4
+ export { default as GetStarted } from "./GetStarted.vue";
5
+ export { default as GetStartedFooter } from "./GetStartedFooter.vue";
6
+ export { default as Input } from "./Input.vue";
7
+ export { default as Layout } from "./Layout.vue";
8
+ export { default as Message } from "./Message.vue";
9
+ export { default as MessagesList } from "./MessagesList.vue";
10
+ export { default as PoweredBy } from "./PoweredBy.vue";
@@ -0,0 +1,3 @@
1
+ export * from './useChat';
2
+ export * from './useI18n';
3
+ export * from './useOptions';
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _useChat = require("./useChat");
7
+ Object.keys(_useChat).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _useChat[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _useChat[key];
14
+ }
15
+ });
16
+ });
17
+ var _useI18n = require("./useI18n");
18
+ Object.keys(_useI18n).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _useI18n[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _useI18n[key];
25
+ }
26
+ });
27
+ });
28
+ var _useOptions = require("./useOptions");
29
+ Object.keys(_useOptions).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _useOptions[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _useOptions[key];
36
+ }
37
+ });
38
+ });
@@ -0,0 +1,3 @@
1
+ export * from "./useChat.mjs";
2
+ export * from "./useI18n.mjs";
3
+ export * from "./useOptions.mjs";
@@ -0,0 +1 @@
1
+ export declare function useChat(): Chat;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useChat = useChat;
7
+ var _vue = require("vue");
8
+ var _constants = require("@n8n/chat/constants");
9
+ function useChat() {
10
+ return (0, _vue.inject)(_constants.ChatSymbol);
11
+ }
@@ -0,0 +1,5 @@
1
+ import { inject } from "vue";
2
+ import { ChatSymbol } from "@n8n/chat/constants";
3
+ export function useChat() {
4
+ return inject(ChatSymbol);
5
+ }
@@ -0,0 +1,4 @@
1
+ export declare function useI18n(): {
2
+ t: (key: string) => string;
3
+ te: (key: string) => boolean;
4
+ };
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useI18n = useI18n;
7
+ var _useOptions = require("@n8n/chat/composables/useOptions");
8
+ function useI18n() {
9
+ const {
10
+ options
11
+ } = (0, _useOptions.useOptions)();
12
+ const language = options?.defaultLanguage ?? "en";
13
+ function t(key) {
14
+ return options?.i18n?.[language]?.[key] ?? key;
15
+ }
16
+ function te(key) {
17
+ return !!options?.i18n?.[language]?.[key];
18
+ }
19
+ return {
20
+ t,
21
+ te
22
+ };
23
+ }
@@ -0,0 +1,12 @@
1
+ import { useOptions } from "@n8n/chat/composables/useOptions";
2
+ export function useI18n() {
3
+ const { options } = useOptions();
4
+ const language = options?.defaultLanguage ?? "en";
5
+ function t(key) {
6
+ return options?.i18n?.[language]?.[key] ?? key;
7
+ }
8
+ function te(key) {
9
+ return !!options?.i18n?.[language]?.[key];
10
+ }
11
+ return { t, te };
12
+ }
@@ -0,0 +1,3 @@
1
+ export declare function useOptions(): {
2
+ options: ChatOptions;
3
+ };
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useOptions = useOptions;
7
+ var _vue = require("vue");
8
+ var _constants = require("@n8n/chat/constants");
9
+ function useOptions() {
10
+ const options = (0, _vue.inject)(_constants.ChatOptionsSymbol);
11
+ return {
12
+ options
13
+ };
14
+ }
@@ -0,0 +1,8 @@
1
+ import { inject } from "vue";
2
+ import { ChatOptionsSymbol } from "@n8n/chat/constants";
3
+ export function useOptions() {
4
+ const options = inject(ChatOptionsSymbol);
5
+ return {
6
+ options
7
+ };
8
+ }
@@ -0,0 +1,3 @@
1
+ import type { ChatOptions } from '@n8n/chat/types';
2
+ export declare const defaultOptions: ChatOptions;
3
+ export declare const defaultMountingTarget = "#n8n-chat";
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.defaultOptions = exports.defaultMountingTarget = void 0;
7
+ const defaultOptions = exports.defaultOptions = {
8
+ webhookUrl: "http://localhost:5678",
9
+ webhookConfig: {
10
+ method: "POST",
11
+ headers: {}
12
+ },
13
+ target: "#n8n-chat",
14
+ mode: "window",
15
+ loadPreviousSession: true,
16
+ chatInputKey: "chatInput",
17
+ chatSessionKey: "sessionId",
18
+ defaultLanguage: "en",
19
+ showWelcomeScreen: false,
20
+ initialMessages: ["Hi there! \u{1F44B}", "My name is Nathan. How can I assist you today?"],
21
+ i18n: {
22
+ en: {
23
+ title: "Hi there! \u{1F44B}",
24
+ subtitle: "Start a chat. We're here to help you 24/7.",
25
+ footer: "",
26
+ getStarted: "New Conversation",
27
+ inputPlaceholder: "Type your question.."
28
+ }
29
+ },
30
+ theme: {}
31
+ };
32
+ const defaultMountingTarget = exports.defaultMountingTarget = "#n8n-chat";
@@ -0,0 +1,26 @@
1
+ export const defaultOptions = {
2
+ webhookUrl: "http://localhost:5678",
3
+ webhookConfig: {
4
+ method: "POST",
5
+ headers: {}
6
+ },
7
+ target: "#n8n-chat",
8
+ mode: "window",
9
+ loadPreviousSession: true,
10
+ chatInputKey: "chatInput",
11
+ chatSessionKey: "sessionId",
12
+ defaultLanguage: "en",
13
+ showWelcomeScreen: false,
14
+ initialMessages: ["Hi there! \u{1F44B}", "My name is Nathan. How can I assist you today?"],
15
+ i18n: {
16
+ en: {
17
+ title: "Hi there! \u{1F44B}",
18
+ subtitle: "Start a chat. We're here to help you 24/7.",
19
+ footer: "",
20
+ getStarted: "New Conversation",
21
+ inputPlaceholder: "Type your question.."
22
+ }
23
+ },
24
+ theme: {}
25
+ };
26
+ export const defaultMountingTarget = "#n8n-chat";
@@ -0,0 +1,3 @@
1
+ export * from './defaults';
2
+ export * from './localStorage';
3
+ export * from './symbols';
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _defaults = require("./defaults");
7
+ Object.keys(_defaults).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _defaults[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _defaults[key];
14
+ }
15
+ });
16
+ });
17
+ var _localStorage = require("./localStorage");
18
+ Object.keys(_localStorage).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _localStorage[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _localStorage[key];
25
+ }
26
+ });
27
+ });
28
+ var _symbols = require("./symbols");
29
+ Object.keys(_symbols).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _symbols[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _symbols[key];
36
+ }
37
+ });
38
+ });
@@ -0,0 +1,3 @@
1
+ export * from "./defaults.mjs";
2
+ export * from "./localStorage.mjs";
3
+ export * from "./symbols.mjs";
@@ -0,0 +1,2 @@
1
+ export declare const localStorageNamespace = "n8n-chat";
2
+ export declare const localStorageSessionIdKey = "n8n-chat/sessionId";
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.localStorageSessionIdKey = exports.localStorageNamespace = void 0;
7
+ const localStorageNamespace = exports.localStorageNamespace = "n8n-chat";
8
+ const localStorageSessionIdKey = exports.localStorageSessionIdKey = `${localStorageNamespace}/sessionId`;
@@ -0,0 +1,2 @@
1
+ export const localStorageNamespace = "n8n-chat";
2
+ export const localStorageSessionIdKey = `${localStorageNamespace}/sessionId`;
@@ -0,0 +1,3 @@
1
+ import type { InjectionKey } from 'vue';
2
+ export declare const ChatSymbol: InjectionKey<Chat>;
3
+ export declare const ChatOptionsSymbol: InjectionKey<ChatOptions>;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ChatSymbol = exports.ChatOptionsSymbol = void 0;
7
+ const ChatSymbol = exports.ChatSymbol = "Chat";
8
+ const ChatOptionsSymbol = exports.ChatOptionsSymbol = "ChatOptions";
@@ -0,0 +1,2 @@
1
+ export const ChatSymbol = "Chat";
2
+ export const ChatOptionsSymbol = "ChatOptions";