@buni.ai/chatbot-vue 1.0.18 → 1.0.20
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.
|
@@ -23,5 +23,8 @@ export declare function useBuniChat(options?: BuniChatOptions): {
|
|
|
23
23
|
getSessionVariables: () => SessionVariables | null | undefined;
|
|
24
24
|
sendMessage: (message: string) => void | undefined;
|
|
25
25
|
clearChat: () => void | undefined;
|
|
26
|
+
setTheme: (theme: "light" | "dark" | "system") => void | undefined;
|
|
27
|
+
open: () => void | undefined;
|
|
28
|
+
close: () => void | undefined;
|
|
26
29
|
};
|
|
27
30
|
//# sourceMappingURL=useBuniChat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBuniChat.d.ts","sourceRoot":"","sources":["../../src/composables/useBuniChat.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EAEf,YAAY,EACZ,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAI/B,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,eAAe;;;;;;;;;;;8BAQZ,eAAe;;;;;;;4BAyD5B,YAAY;;qCAEH,gBAAgB;;2BAI1B,MAAM;;
|
|
1
|
+
{"version":3,"file":"useBuniChat.d.ts","sourceRoot":"","sources":["../../src/composables/useBuniChat.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EAEf,YAAY,EACZ,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAI/B,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,eAAe;;;;;;;;;;;8BAQZ,eAAe;;;;;;;4BAyD5B,YAAY;;qCAEH,gBAAgB;;2BAI1B,MAAM;;sBAIX,OAAO,GAAG,MAAM,GAAG,QAAQ;;;EAIhD"}
|
package/dist/index.esm.js
CHANGED
|
@@ -64,6 +64,10 @@ function useBuniChat(options) {
|
|
|
64
64
|
// Chat actions
|
|
65
65
|
sendMessage: (message) => widgetInstance?.sendMessage(message),
|
|
66
66
|
clearChat: () => widgetInstance?.clearChat(),
|
|
67
|
+
// Theme management
|
|
68
|
+
setTheme: (theme) => widgetInstance?.setTheme(theme),
|
|
69
|
+
open: () => widgetInstance?.open(),
|
|
70
|
+
close: () => widgetInstance?.close(),
|
|
67
71
|
};
|
|
68
72
|
}
|
|
69
73
|
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/composables/useBuniChat.ts","../src/components/BuniChatWidget.vue","../src/index.ts"],"sourcesContent":["import { ref, reactive } from 'vue';\nimport { BuniChatWidget } from '@buni.ai/chatbot-core';\nimport type { \n BuniChatOptions, \n BuniChatState, \n CustomerData, \n SessionVariables \n} from '@buni.ai/chatbot-core';\n\nlet widgetInstance: BuniChatWidget | null = null;\n\nexport function useBuniChat(options?: BuniChatOptions) {\n const state = reactive<BuniChatState>({\n isOpen: false,\n isLoaded: false,\n isMinimized: false,\n unreadCount: 0,\n });\n\n const initialize = async (initOptions: BuniChatOptions) => {\n if (!widgetInstance) {\n widgetInstance = new BuniChatWidget();\n \n // Set up event listeners to update reactive state\n widgetInstance.on('visibility_changed', (data: any) => {\n state.isOpen = data.visibility === 'visible';\n });\n \n widgetInstance.on('ready', () => {\n state.isLoaded = true;\n });\n \n widgetInstance.on('minimized', () => {\n state.isMinimized = true;\n });\n \n widgetInstance.on('maximized', () => {\n state.isMinimized = false;\n });\n \n widgetInstance.on('new_message', (data: any) => {\n if (data.isFromBot) {\n state.unreadCount++;\n }\n });\n }\n \n await widgetInstance.initialize(initOptions);\n };\n\n // Auto-initialize if options provided\n if (options) {\n initialize(options);\n }\n\n return {\n // Reactive state\n state,\n isOpen: ref(state.isOpen),\n isLoaded: ref(state.isLoaded),\n isMinimized: ref(state.isMinimized),\n unreadCount: ref(state.unreadCount),\n \n // Methods\n initialize,\n show: () => widgetInstance?.show(),\n hide: () => widgetInstance?.hide(),\n toggle: () => widgetInstance?.toggle(),\n minimize: () => widgetInstance?.minimize(),\n maximize: () => widgetInstance?.maximize(),\n destroy: () => {\n widgetInstance?.destroy();\n widgetInstance = null;\n },\n \n // Data management\n setCustomerData: (data: CustomerData) => widgetInstance?.setCustomerData(data),\n getCustomerData: () => widgetInstance?.getCustomerData(),\n setSessionVariables: (variables: SessionVariables) => widgetInstance?.setSessionVariables(variables),\n getSessionVariables: () => widgetInstance?.getSessionVariables(),\n \n // Chat actions\n sendMessage: (message: string) => widgetInstance?.sendMessage(message),\n clearChat: () => widgetInstance?.clearChat(),\n };\n}","<template>\n <div style=\"display: none\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, onUnmounted } from \"vue\";\nimport { useBuniChat } from \"../composables/useBuniChat\";\nimport type { BuniChatOptions } from \"@buni.ai/chatbot-core\";\n\ninterface Props {\n token?: string;\n config?: BuniChatOptions[\"config\"];\n onReady?: BuniChatOptions[\"onReady\"];\n onNewMessage?: BuniChatOptions[\"onNewMessage\"];\n onVisibilityChanged?: BuniChatOptions[\"onVisibilityChanged\"];\n onError?: BuniChatOptions[\"onError\"];\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n token: \"\",\n config: () => ({}),\n});\n\nconst { initialize, destroy } = useBuniChat();\n\nonMounted(async () => {\n if (props.token) {\n await initialize({\n token: props.token,\n config: props.config,\n onReady: props.onReady,\n onNewMessage: props.onNewMessage,\n onVisibilityChanged: props.onVisibilityChanged,\n onError: props.onError,\n });\n }\n});\n\nonUnmounted(() => {\n destroy();\n});\n</script>\n","// Main exports for @buni.ai/chatbot-vue\n\nexport { useBuniChat } from './composables/useBuniChat';\n\n// Export Vue component\nimport BuniChatWidgetComponent from './components/BuniChatWidget.vue';\nexport const BuniChatWidget = BuniChatWidgetComponent;\n\n// Create a Vue plugin for easy installation\nimport type { App } from 'vue';\n\nexport const BuniChatPlugin = {\n install(app: App) {\n app.component('BuniChatWidget', BuniChatWidgetComponent);\n }\n};\n\n// Re-export core types for convenience\nexport type {\n BuniChatConfig,\n BuniChatOptions,\n BuniChatState,\n CustomerData,\n SessionVariables,\n BuniChatAPI,\n BuniChatEvents\n} from '@buni.ai/chatbot-core';\n\n// Export core widget class for manual use\nexport { BuniChatWidget as BuniChatWidgetCore, createBuniChatWidget } from '@buni.ai/chatbot-core';\n"],"names":["BuniChatWidget","_openBlock","_createElementBlock","BuniChatWidgetComponent"],"mappings":";;;;AASA,IAAI,cAAc,GAA0B,IAAI,CAAC;AAE3C,SAAU,WAAW,CAAC,OAAyB,EAAA;IACnD,MAAM,KAAK,GAAG,QAAQ,CAAgB;AACpC,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,WAAW,EAAE,KAAK;AAClB,QAAA,WAAW,EAAE,CAAC;AACf,KAAA,CAAC,CAAC;AAEH,IAAA,MAAM,UAAU,GAAG,OAAO,WAA4B,KAAI;QACxD,IAAI,CAAC,cAAc,EAAE;AACnB,YAAA,cAAc,GAAG,IAAIA,gBAAc,EAAE,CAAC;;YAGtC,cAAc,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,IAAS,KAAI;gBACpD,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC;AAC/C,aAAC,CAAC,CAAC;AAEH,YAAA,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;AAC9B,gBAAA,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;AACxB,aAAC,CAAC,CAAC;AAEH,YAAA,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,MAAK;AAClC,gBAAA,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;AAC3B,aAAC,CAAC,CAAC;AAEH,YAAA,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,MAAK;AAClC,gBAAA,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;AAC5B,aAAC,CAAC,CAAC;YAEH,cAAc,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,IAAS,KAAI;AAC7C,gBAAA,IAAI,IAAI,CAAC,SAAS,EAAE;oBAClB,KAAK,CAAC,WAAW,EAAE,CAAC;iBACrB;AACH,aAAC,CAAC,CAAC;SACJ;AAED,QAAA,MAAM,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAC/C,KAAC,CAAC;;IAGF,IAAI,OAAO,EAAE;QACX,UAAU,CAAC,OAAO,CAAC,CAAC;KACrB;IAED,OAAO;;QAEL,KAAK;AACL,QAAA,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;AACzB,QAAA,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC7B,QAAA,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;AACnC,QAAA,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;;QAGnC,UAAU;AACV,QAAA,IAAI,EAAE,MAAM,cAAc,EAAE,IAAI,EAAE;AAClC,QAAA,IAAI,EAAE,MAAM,cAAc,EAAE,IAAI,EAAE;AAClC,QAAA,MAAM,EAAE,MAAM,cAAc,EAAE,MAAM,EAAE;AACtC,QAAA,QAAQ,EAAE,MAAM,cAAc,EAAE,QAAQ,EAAE;AAC1C,QAAA,QAAQ,EAAE,MAAM,cAAc,EAAE,QAAQ,EAAE;QAC1C,OAAO,EAAE,MAAK;YACZ,cAAc,EAAE,OAAO,EAAE,CAAC;YAC1B,cAAc,GAAG,IAAI,CAAC;SACvB;;QAGD,eAAe,EAAE,CAAC,IAAkB,KAAK,cAAc,EAAE,eAAe,CAAC,IAAI,CAAC;AAC9E,QAAA,eAAe,EAAE,MAAM,cAAc,EAAE,eAAe,EAAE;QACxD,mBAAmB,EAAE,CAAC,SAA2B,KAAK,cAAc,EAAE,mBAAmB,CAAC,SAAS,CAAC;AACpG,QAAA,mBAAmB,EAAE,MAAM,cAAc,EAAE,mBAAmB,EAAE;;QAGhE,WAAW,EAAE,CAAC,OAAe,KAAK,cAAc,EAAE,WAAW,CAAC,OAAO,CAAC;AACtE,QAAA,SAAS,EAAE,MAAM,cAAc,EAAE,SAAS,EAAE;
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/composables/useBuniChat.ts","../src/components/BuniChatWidget.vue","../src/index.ts"],"sourcesContent":["import { ref, reactive } from 'vue';\nimport { BuniChatWidget } from '@buni.ai/chatbot-core';\nimport type { \n BuniChatOptions, \n BuniChatState, \n CustomerData, \n SessionVariables \n} from '@buni.ai/chatbot-core';\n\nlet widgetInstance: BuniChatWidget | null = null;\n\nexport function useBuniChat(options?: BuniChatOptions) {\n const state = reactive<BuniChatState>({\n isOpen: false,\n isLoaded: false,\n isMinimized: false,\n unreadCount: 0,\n });\n\n const initialize = async (initOptions: BuniChatOptions) => {\n if (!widgetInstance) {\n widgetInstance = new BuniChatWidget();\n \n // Set up event listeners to update reactive state\n widgetInstance.on('visibility_changed', (data: any) => {\n state.isOpen = data.visibility === 'visible';\n });\n \n widgetInstance.on('ready', () => {\n state.isLoaded = true;\n });\n \n widgetInstance.on('minimized', () => {\n state.isMinimized = true;\n });\n \n widgetInstance.on('maximized', () => {\n state.isMinimized = false;\n });\n \n widgetInstance.on('new_message', (data: any) => {\n if (data.isFromBot) {\n state.unreadCount++;\n }\n });\n }\n \n await widgetInstance.initialize(initOptions);\n };\n\n // Auto-initialize if options provided\n if (options) {\n initialize(options);\n }\n\n return {\n // Reactive state\n state,\n isOpen: ref(state.isOpen),\n isLoaded: ref(state.isLoaded),\n isMinimized: ref(state.isMinimized),\n unreadCount: ref(state.unreadCount),\n \n // Methods\n initialize,\n show: () => widgetInstance?.show(),\n hide: () => widgetInstance?.hide(),\n toggle: () => widgetInstance?.toggle(),\n minimize: () => widgetInstance?.minimize(),\n maximize: () => widgetInstance?.maximize(),\n destroy: () => {\n widgetInstance?.destroy();\n widgetInstance = null;\n },\n \n // Data management\n setCustomerData: (data: CustomerData) => widgetInstance?.setCustomerData(data),\n getCustomerData: () => widgetInstance?.getCustomerData(),\n setSessionVariables: (variables: SessionVariables) => widgetInstance?.setSessionVariables(variables),\n getSessionVariables: () => widgetInstance?.getSessionVariables(),\n \n // Chat actions\n sendMessage: (message: string) => widgetInstance?.sendMessage(message),\n clearChat: () => widgetInstance?.clearChat(),\n \n // Theme management\n setTheme: (theme: \"light\" | \"dark\" | \"system\") => widgetInstance?.setTheme(theme),\n open: () => widgetInstance?.open(),\n close: () => widgetInstance?.close(),\n };\n}","<template>\n <div style=\"display: none\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, onUnmounted } from \"vue\";\nimport { useBuniChat } from \"../composables/useBuniChat\";\nimport type { BuniChatOptions } from \"@buni.ai/chatbot-core\";\n\ninterface Props {\n token?: string;\n config?: BuniChatOptions[\"config\"];\n onReady?: BuniChatOptions[\"onReady\"];\n onNewMessage?: BuniChatOptions[\"onNewMessage\"];\n onVisibilityChanged?: BuniChatOptions[\"onVisibilityChanged\"];\n onError?: BuniChatOptions[\"onError\"];\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n token: \"\",\n config: () => ({}),\n});\n\nconst { initialize, destroy } = useBuniChat();\n\nonMounted(async () => {\n if (props.token) {\n await initialize({\n token: props.token,\n config: props.config,\n onReady: props.onReady,\n onNewMessage: props.onNewMessage,\n onVisibilityChanged: props.onVisibilityChanged,\n onError: props.onError,\n });\n }\n});\n\nonUnmounted(() => {\n destroy();\n});\n</script>\n","// Main exports for @buni.ai/chatbot-vue\n\nexport { useBuniChat } from './composables/useBuniChat';\n\n// Export Vue component\nimport BuniChatWidgetComponent from './components/BuniChatWidget.vue';\nexport const BuniChatWidget = BuniChatWidgetComponent;\n\n// Create a Vue plugin for easy installation\nimport type { App } from 'vue';\n\nexport const BuniChatPlugin = {\n install(app: App) {\n app.component('BuniChatWidget', BuniChatWidgetComponent);\n }\n};\n\n// Re-export core types for convenience\nexport type {\n BuniChatConfig,\n BuniChatOptions,\n BuniChatState,\n CustomerData,\n SessionVariables,\n BuniChatAPI,\n BuniChatEvents\n} from '@buni.ai/chatbot-core';\n\n// Export core widget class for manual use\nexport { BuniChatWidget as BuniChatWidgetCore, createBuniChatWidget } from '@buni.ai/chatbot-core';\n"],"names":["BuniChatWidget","_openBlock","_createElementBlock","BuniChatWidgetComponent"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -65,6 +65,10 @@ function useBuniChat(options) {
|
|
|
65
65
|
// Chat actions
|
|
66
66
|
sendMessage: (message) => widgetInstance?.sendMessage(message),
|
|
67
67
|
clearChat: () => widgetInstance?.clearChat(),
|
|
68
|
+
// Theme management
|
|
69
|
+
setTheme: (theme) => widgetInstance?.setTheme(theme),
|
|
70
|
+
open: () => widgetInstance?.open(),
|
|
71
|
+
close: () => widgetInstance?.close(),
|
|
68
72
|
};
|
|
69
73
|
}
|
|
70
74
|
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/composables/useBuniChat.ts","../src/components/BuniChatWidget.vue","../src/index.ts"],"sourcesContent":["import { ref, reactive } from 'vue';\nimport { BuniChatWidget } from '@buni.ai/chatbot-core';\nimport type { \n BuniChatOptions, \n BuniChatState, \n CustomerData, \n SessionVariables \n} from '@buni.ai/chatbot-core';\n\nlet widgetInstance: BuniChatWidget | null = null;\n\nexport function useBuniChat(options?: BuniChatOptions) {\n const state = reactive<BuniChatState>({\n isOpen: false,\n isLoaded: false,\n isMinimized: false,\n unreadCount: 0,\n });\n\n const initialize = async (initOptions: BuniChatOptions) => {\n if (!widgetInstance) {\n widgetInstance = new BuniChatWidget();\n \n // Set up event listeners to update reactive state\n widgetInstance.on('visibility_changed', (data: any) => {\n state.isOpen = data.visibility === 'visible';\n });\n \n widgetInstance.on('ready', () => {\n state.isLoaded = true;\n });\n \n widgetInstance.on('minimized', () => {\n state.isMinimized = true;\n });\n \n widgetInstance.on('maximized', () => {\n state.isMinimized = false;\n });\n \n widgetInstance.on('new_message', (data: any) => {\n if (data.isFromBot) {\n state.unreadCount++;\n }\n });\n }\n \n await widgetInstance.initialize(initOptions);\n };\n\n // Auto-initialize if options provided\n if (options) {\n initialize(options);\n }\n\n return {\n // Reactive state\n state,\n isOpen: ref(state.isOpen),\n isLoaded: ref(state.isLoaded),\n isMinimized: ref(state.isMinimized),\n unreadCount: ref(state.unreadCount),\n \n // Methods\n initialize,\n show: () => widgetInstance?.show(),\n hide: () => widgetInstance?.hide(),\n toggle: () => widgetInstance?.toggle(),\n minimize: () => widgetInstance?.minimize(),\n maximize: () => widgetInstance?.maximize(),\n destroy: () => {\n widgetInstance?.destroy();\n widgetInstance = null;\n },\n \n // Data management\n setCustomerData: (data: CustomerData) => widgetInstance?.setCustomerData(data),\n getCustomerData: () => widgetInstance?.getCustomerData(),\n setSessionVariables: (variables: SessionVariables) => widgetInstance?.setSessionVariables(variables),\n getSessionVariables: () => widgetInstance?.getSessionVariables(),\n \n // Chat actions\n sendMessage: (message: string) => widgetInstance?.sendMessage(message),\n clearChat: () => widgetInstance?.clearChat(),\n };\n}","<template>\n <div style=\"display: none\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, onUnmounted } from \"vue\";\nimport { useBuniChat } from \"../composables/useBuniChat\";\nimport type { BuniChatOptions } from \"@buni.ai/chatbot-core\";\n\ninterface Props {\n token?: string;\n config?: BuniChatOptions[\"config\"];\n onReady?: BuniChatOptions[\"onReady\"];\n onNewMessage?: BuniChatOptions[\"onNewMessage\"];\n onVisibilityChanged?: BuniChatOptions[\"onVisibilityChanged\"];\n onError?: BuniChatOptions[\"onError\"];\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n token: \"\",\n config: () => ({}),\n});\n\nconst { initialize, destroy } = useBuniChat();\n\nonMounted(async () => {\n if (props.token) {\n await initialize({\n token: props.token,\n config: props.config,\n onReady: props.onReady,\n onNewMessage: props.onNewMessage,\n onVisibilityChanged: props.onVisibilityChanged,\n onError: props.onError,\n });\n }\n});\n\nonUnmounted(() => {\n destroy();\n});\n</script>\n","// Main exports for @buni.ai/chatbot-vue\n\nexport { useBuniChat } from './composables/useBuniChat';\n\n// Export Vue component\nimport BuniChatWidgetComponent from './components/BuniChatWidget.vue';\nexport const BuniChatWidget = BuniChatWidgetComponent;\n\n// Create a Vue plugin for easy installation\nimport type { App } from 'vue';\n\nexport const BuniChatPlugin = {\n install(app: App) {\n app.component('BuniChatWidget', BuniChatWidgetComponent);\n }\n};\n\n// Re-export core types for convenience\nexport type {\n BuniChatConfig,\n BuniChatOptions,\n BuniChatState,\n CustomerData,\n SessionVariables,\n BuniChatAPI,\n BuniChatEvents\n} from '@buni.ai/chatbot-core';\n\n// Export core widget class for manual use\nexport { BuniChatWidget as BuniChatWidgetCore, createBuniChatWidget } from '@buni.ai/chatbot-core';\n"],"names":["reactive","BuniChatWidget","ref","onMounted","onUnmounted","_openBlock","_createElementBlock","BuniChatWidgetComponent"],"mappings":";;;;;AASA,IAAI,cAAc,GAA0B,IAAI,CAAC;AAE3C,SAAU,WAAW,CAAC,OAAyB,EAAA;IACnD,MAAM,KAAK,GAAGA,YAAQ,CAAgB;AACpC,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,WAAW,EAAE,KAAK;AAClB,QAAA,WAAW,EAAE,CAAC;AACf,KAAA,CAAC,CAAC;AAEH,IAAA,MAAM,UAAU,GAAG,OAAO,WAA4B,KAAI;QACxD,IAAI,CAAC,cAAc,EAAE;AACnB,YAAA,cAAc,GAAG,IAAIC,0BAAc,EAAE,CAAC;;YAGtC,cAAc,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,IAAS,KAAI;gBACpD,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC;AAC/C,aAAC,CAAC,CAAC;AAEH,YAAA,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;AAC9B,gBAAA,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;AACxB,aAAC,CAAC,CAAC;AAEH,YAAA,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,MAAK;AAClC,gBAAA,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;AAC3B,aAAC,CAAC,CAAC;AAEH,YAAA,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,MAAK;AAClC,gBAAA,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;AAC5B,aAAC,CAAC,CAAC;YAEH,cAAc,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,IAAS,KAAI;AAC7C,gBAAA,IAAI,IAAI,CAAC,SAAS,EAAE;oBAClB,KAAK,CAAC,WAAW,EAAE,CAAC;iBACrB;AACH,aAAC,CAAC,CAAC;SACJ;AAED,QAAA,MAAM,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAC/C,KAAC,CAAC;;IAGF,IAAI,OAAO,EAAE;QACX,UAAU,CAAC,OAAO,CAAC,CAAC;KACrB;IAED,OAAO;;QAEL,KAAK;AACL,QAAA,MAAM,EAAEC,OAAG,CAAC,KAAK,CAAC,MAAM,CAAC;AACzB,QAAA,QAAQ,EAAEA,OAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC7B,QAAA,WAAW,EAAEA,OAAG,CAAC,KAAK,CAAC,WAAW,CAAC;AACnC,QAAA,WAAW,EAAEA,OAAG,CAAC,KAAK,CAAC,WAAW,CAAC;;QAGnC,UAAU;AACV,QAAA,IAAI,EAAE,MAAM,cAAc,EAAE,IAAI,EAAE;AAClC,QAAA,IAAI,EAAE,MAAM,cAAc,EAAE,IAAI,EAAE;AAClC,QAAA,MAAM,EAAE,MAAM,cAAc,EAAE,MAAM,EAAE;AACtC,QAAA,QAAQ,EAAE,MAAM,cAAc,EAAE,QAAQ,EAAE;AAC1C,QAAA,QAAQ,EAAE,MAAM,cAAc,EAAE,QAAQ,EAAE;QAC1C,OAAO,EAAE,MAAK;YACZ,cAAc,EAAE,OAAO,EAAE,CAAC;YAC1B,cAAc,GAAG,IAAI,CAAC;SACvB;;QAGD,eAAe,EAAE,CAAC,IAAkB,KAAK,cAAc,EAAE,eAAe,CAAC,IAAI,CAAC;AAC9E,QAAA,eAAe,EAAE,MAAM,cAAc,EAAE,eAAe,EAAE;QACxD,mBAAmB,EAAE,CAAC,SAA2B,KAAK,cAAc,EAAE,mBAAmB,CAAC,SAAS,CAAC;AACpG,QAAA,mBAAmB,EAAE,MAAM,cAAc,EAAE,mBAAmB,EAAE;;QAGhE,WAAW,EAAE,CAAC,OAAe,KAAK,cAAc,EAAE,WAAW,CAAC,OAAO,CAAC;AACtE,QAAA,SAAS,EAAE,MAAM,cAAc,EAAE,SAAS,EAAE;
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/composables/useBuniChat.ts","../src/components/BuniChatWidget.vue","../src/index.ts"],"sourcesContent":["import { ref, reactive } from 'vue';\nimport { BuniChatWidget } from '@buni.ai/chatbot-core';\nimport type { \n BuniChatOptions, \n BuniChatState, \n CustomerData, \n SessionVariables \n} from '@buni.ai/chatbot-core';\n\nlet widgetInstance: BuniChatWidget | null = null;\n\nexport function useBuniChat(options?: BuniChatOptions) {\n const state = reactive<BuniChatState>({\n isOpen: false,\n isLoaded: false,\n isMinimized: false,\n unreadCount: 0,\n });\n\n const initialize = async (initOptions: BuniChatOptions) => {\n if (!widgetInstance) {\n widgetInstance = new BuniChatWidget();\n \n // Set up event listeners to update reactive state\n widgetInstance.on('visibility_changed', (data: any) => {\n state.isOpen = data.visibility === 'visible';\n });\n \n widgetInstance.on('ready', () => {\n state.isLoaded = true;\n });\n \n widgetInstance.on('minimized', () => {\n state.isMinimized = true;\n });\n \n widgetInstance.on('maximized', () => {\n state.isMinimized = false;\n });\n \n widgetInstance.on('new_message', (data: any) => {\n if (data.isFromBot) {\n state.unreadCount++;\n }\n });\n }\n \n await widgetInstance.initialize(initOptions);\n };\n\n // Auto-initialize if options provided\n if (options) {\n initialize(options);\n }\n\n return {\n // Reactive state\n state,\n isOpen: ref(state.isOpen),\n isLoaded: ref(state.isLoaded),\n isMinimized: ref(state.isMinimized),\n unreadCount: ref(state.unreadCount),\n \n // Methods\n initialize,\n show: () => widgetInstance?.show(),\n hide: () => widgetInstance?.hide(),\n toggle: () => widgetInstance?.toggle(),\n minimize: () => widgetInstance?.minimize(),\n maximize: () => widgetInstance?.maximize(),\n destroy: () => {\n widgetInstance?.destroy();\n widgetInstance = null;\n },\n \n // Data management\n setCustomerData: (data: CustomerData) => widgetInstance?.setCustomerData(data),\n getCustomerData: () => widgetInstance?.getCustomerData(),\n setSessionVariables: (variables: SessionVariables) => widgetInstance?.setSessionVariables(variables),\n getSessionVariables: () => widgetInstance?.getSessionVariables(),\n \n // Chat actions\n sendMessage: (message: string) => widgetInstance?.sendMessage(message),\n clearChat: () => widgetInstance?.clearChat(),\n \n // Theme management\n setTheme: (theme: \"light\" | \"dark\" | \"system\") => widgetInstance?.setTheme(theme),\n open: () => widgetInstance?.open(),\n close: () => widgetInstance?.close(),\n };\n}","<template>\n <div style=\"display: none\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, onUnmounted } from \"vue\";\nimport { useBuniChat } from \"../composables/useBuniChat\";\nimport type { BuniChatOptions } from \"@buni.ai/chatbot-core\";\n\ninterface Props {\n token?: string;\n config?: BuniChatOptions[\"config\"];\n onReady?: BuniChatOptions[\"onReady\"];\n onNewMessage?: BuniChatOptions[\"onNewMessage\"];\n onVisibilityChanged?: BuniChatOptions[\"onVisibilityChanged\"];\n onError?: BuniChatOptions[\"onError\"];\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n token: \"\",\n config: () => ({}),\n});\n\nconst { initialize, destroy } = useBuniChat();\n\nonMounted(async () => {\n if (props.token) {\n await initialize({\n token: props.token,\n config: props.config,\n onReady: props.onReady,\n onNewMessage: props.onNewMessage,\n onVisibilityChanged: props.onVisibilityChanged,\n onError: props.onError,\n });\n }\n});\n\nonUnmounted(() => {\n destroy();\n});\n</script>\n","// Main exports for @buni.ai/chatbot-vue\n\nexport { useBuniChat } from './composables/useBuniChat';\n\n// Export Vue component\nimport BuniChatWidgetComponent from './components/BuniChatWidget.vue';\nexport const BuniChatWidget = BuniChatWidgetComponent;\n\n// Create a Vue plugin for easy installation\nimport type { App } from 'vue';\n\nexport const BuniChatPlugin = {\n install(app: App) {\n app.component('BuniChatWidget', BuniChatWidgetComponent);\n }\n};\n\n// Re-export core types for convenience\nexport type {\n BuniChatConfig,\n BuniChatOptions,\n BuniChatState,\n CustomerData,\n SessionVariables,\n BuniChatAPI,\n BuniChatEvents\n} from '@buni.ai/chatbot-core';\n\n// Export core widget class for manual use\nexport { BuniChatWidget as BuniChatWidgetCore, createBuniChatWidget } from '@buni.ai/chatbot-core';\n"],"names":["reactive","BuniChatWidget","ref","onMounted","onUnmounted","_openBlock","_createElementBlock","BuniChatWidgetComponent"],"mappings":";;;;;AASA,IAAI,cAAc,GAA0B,IAAI,CAAC;AAE3C,SAAU,WAAW,CAAC,OAAyB,EAAA;IACnD,MAAM,KAAK,GAAGA,YAAQ,CAAgB;AACpC,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,WAAW,EAAE,KAAK;AAClB,QAAA,WAAW,EAAE,CAAC;AACf,KAAA,CAAC,CAAC;AAEH,IAAA,MAAM,UAAU,GAAG,OAAO,WAA4B,KAAI;QACxD,IAAI,CAAC,cAAc,EAAE;AACnB,YAAA,cAAc,GAAG,IAAIC,0BAAc,EAAE,CAAC;;YAGtC,cAAc,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,IAAS,KAAI;gBACpD,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC;AAC/C,aAAC,CAAC,CAAC;AAEH,YAAA,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;AAC9B,gBAAA,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;AACxB,aAAC,CAAC,CAAC;AAEH,YAAA,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,MAAK;AAClC,gBAAA,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;AAC3B,aAAC,CAAC,CAAC;AAEH,YAAA,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,MAAK;AAClC,gBAAA,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;AAC5B,aAAC,CAAC,CAAC;YAEH,cAAc,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,IAAS,KAAI;AAC7C,gBAAA,IAAI,IAAI,CAAC,SAAS,EAAE;oBAClB,KAAK,CAAC,WAAW,EAAE,CAAC;iBACrB;AACH,aAAC,CAAC,CAAC;SACJ;AAED,QAAA,MAAM,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAC/C,KAAC,CAAC;;IAGF,IAAI,OAAO,EAAE;QACX,UAAU,CAAC,OAAO,CAAC,CAAC;KACrB;IAED,OAAO;;QAEL,KAAK;AACL,QAAA,MAAM,EAAEC,OAAG,CAAC,KAAK,CAAC,MAAM,CAAC;AACzB,QAAA,QAAQ,EAAEA,OAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC7B,QAAA,WAAW,EAAEA,OAAG,CAAC,KAAK,CAAC,WAAW,CAAC;AACnC,QAAA,WAAW,EAAEA,OAAG,CAAC,KAAK,CAAC,WAAW,CAAC;;QAGnC,UAAU;AACV,QAAA,IAAI,EAAE,MAAM,cAAc,EAAE,IAAI,EAAE;AAClC,QAAA,IAAI,EAAE,MAAM,cAAc,EAAE,IAAI,EAAE;AAClC,QAAA,MAAM,EAAE,MAAM,cAAc,EAAE,MAAM,EAAE;AACtC,QAAA,QAAQ,EAAE,MAAM,cAAc,EAAE,QAAQ,EAAE;AAC1C,QAAA,QAAQ,EAAE,MAAM,cAAc,EAAE,QAAQ,EAAE;QAC1C,OAAO,EAAE,MAAK;YACZ,cAAc,EAAE,OAAO,EAAE,CAAC;YAC1B,cAAc,GAAG,IAAI,CAAC;SACvB;;QAGD,eAAe,EAAE,CAAC,IAAkB,KAAK,cAAc,EAAE,eAAe,CAAC,IAAI,CAAC;AAC9E,QAAA,eAAe,EAAE,MAAM,cAAc,EAAE,eAAe,EAAE;QACxD,mBAAmB,EAAE,CAAC,SAA2B,KAAK,cAAc,EAAE,mBAAmB,CAAC,SAAS,CAAC;AACpG,QAAA,mBAAmB,EAAE,MAAM,cAAc,EAAE,mBAAmB,EAAE;;QAGhE,WAAW,EAAE,CAAC,OAAe,KAAK,cAAc,EAAE,WAAW,CAAC,OAAO,CAAC;AACtE,QAAA,SAAS,EAAE,MAAM,cAAc,EAAE,SAAS,EAAE;;QAG5C,QAAQ,EAAE,CAAC,KAAkC,KAAK,cAAc,EAAE,QAAQ,CAAC,KAAK,CAAC;AACjF,QAAA,IAAI,EAAE,MAAM,cAAc,EAAE,IAAI,EAAE;AAClC,QAAA,KAAK,EAAE,MAAM,cAAc,EAAE,KAAK,EAAE;KACrC,CAAC;AACJ;;;;;;;;;;;;;;QCxEA,MAAM,KAAK,GAAG,OAGZ,CAAC;QAEH,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,WAAW,EAAE,CAAC;QAE9CC,aAAS,CAAC,YAAW;AACnB,YAAA,IAAI,KAAK,CAAC,KAAK,EAAE;AACf,gBAAA,MAAM,UAAU,CAAC;oBACf,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;oBAC9C,OAAO,EAAE,KAAK,CAAC,OAAO;AACvB,iBAAA,CAAC,CAAC;aACJ;AACH,SAAC,CAAC,CAAC;QAEHC,eAAW,CAAC,MAAK;AACf,YAAA,OAAO,EAAE,CAAC;AACZ,SAAC,CAAC,CAAC;;YAvCD,QAAAC,aAAA,EAAA,EAAAC,sBAAA,CAA6B,OAA7B,UAA6B,CAAA,EAAA;;;;;;;ACD/B;AAMO,MAAM,cAAc,GAAGC,OAAwB;AAKzC,MAAA,cAAc,GAAG;AAC5B,IAAA,OAAO,CAAC,GAAQ,EAAA;AACd,QAAA,GAAG,CAAC,SAAS,CAAC,gBAAgB,EAAEA,MAAuB,CAAC,CAAC;KAC1D;;;;;;;;;;;;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buni.ai/chatbot-vue",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.20",
|
|
4
4
|
"description": "Vue 3 composables for BuniAI chat widget",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"vue": ">=3.0.0"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@buni.ai/chatbot-core": "^1.0.
|
|
44
|
+
"@buni.ai/chatbot-core": "^1.0.18"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@rollup/plugin-commonjs": "^24.0.0",
|