@servicetitan/titan-chat-ui-common 7.1.2 → 8.0.0

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 (42) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/hooks/use-customization-chat.js +2 -1
  3. package/dist/hooks/use-customization-chat.js.map +1 -1
  4. package/dist/index.js +1 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/models/__mocks__/support-chat.mock.js +13 -12
  7. package/dist/models/__mocks__/support-chat.mock.js.map +1 -1
  8. package/dist/models/chat-customizations.js +2 -1
  9. package/dist/models/chat-customizations.js.map +1 -1
  10. package/dist/models/file-descriptor.js +2 -1
  11. package/dist/models/file-descriptor.js.map +1 -1
  12. package/dist/models/index.d.ts +2 -2
  13. package/dist/models/index.d.ts.map +1 -1
  14. package/dist/models/index.js +1 -2
  15. package/dist/models/index.js.map +1 -1
  16. package/dist/models/support-chat.js +37 -41
  17. package/dist/models/support-chat.js.map +1 -1
  18. package/dist/stores/__tests__/chat-ui.store.test.js +117 -106
  19. package/dist/stores/__tests__/chat-ui.store.test.js.map +1 -1
  20. package/dist/stores/chat-ui-backend-echo.store.js +86 -87
  21. package/dist/stores/chat-ui-backend-echo.store.js.map +1 -1
  22. package/dist/stores/chat-ui-backend.store.js +1 -0
  23. package/dist/stores/chat-ui-backend.store.js.map +1 -1
  24. package/dist/stores/chat-ui.store.d.ts +2 -2
  25. package/dist/stores/chat-ui.store.d.ts.map +1 -1
  26. package/dist/stores/chat-ui.store.js +307 -329
  27. package/dist/stores/chat-ui.store.js.map +1 -1
  28. package/dist/stores/index.d.ts +4 -2
  29. package/dist/stores/index.d.ts.map +1 -1
  30. package/dist/stores/index.js +2 -1
  31. package/dist/stores/index.js.map +1 -1
  32. package/dist/utils/__tests__/text-utils.test.js +33 -14
  33. package/dist/utils/__tests__/text-utils.test.js.map +1 -1
  34. package/dist/utils/test-utils.js +5 -5
  35. package/dist/utils/test-utils.js.map +1 -1
  36. package/dist/utils/text-utils.js +12 -12
  37. package/dist/utils/text-utils.js.map +1 -1
  38. package/package.json +2 -2
  39. package/src/models/index.ts +2 -2
  40. package/src/stores/chat-ui.store.ts +1 -3
  41. package/src/stores/index.ts +3 -3
  42. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"chat-ui.store.js","sourceRoot":"","sources":["../../src/stores/chat-ui.store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/stores/chat-ui.store.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { injectable, symbolToken } from '@servicetitan/react-ioc';\nimport { action, computed, makeObservable, observable, runInAction } from 'mobx';\nimport { nanoid } from 'nanoid';\nimport {\n ChatConfiguration,\n ChatCustomizations,\n ChatEndReason,\n ChatError,\n ChatErrorOptions,\n ChatMessageModelBase,\n ChatMessageModelFile,\n ChatMessageModelText,\n ChatMessageModelTimeout,\n ChatMessageModelWelcome,\n ChatMessageState,\n ChatParticipantIcon,\n ChatParticipantModel,\n ChatRunState,\n ChatTimer,\n} from '../models';\nimport { FileDescriptor } from '../models/file-descriptor';\n\nexport const symbolAgent = Symbol('SupportChatAgent');\nexport const symbolUser = Symbol('SupportChatUser');\n\nexport enum ChatUiEvent {\n eventRun = 'eventRun',\n eventDestroy = 'eventDestroy',\n eventRestart = 'eventRestart',\n eventCancel = 'eventCancel',\n eventEndChat = 'eventEndChat',\n eventRecover = 'eventRecover',\n eventChasitorTyping = 'eventChasitorTyping',\n eventTimerRestart = 'eventTimerRestart',\n eventMessageSend = 'eventMessageSend',\n eventMessageSendRetry = 'eventMessageSendRetry',\n eventMessageSendFile = 'eventMessageSendFile',\n eventMessageSendFileRetry = 'eventMessageSendFileRetry',\n}\n\nexport type ChatUiEventListener<T = void> = (\n resolve: (value: T | PromiseLike<T>) => void,\n reject: (reason?: any) => void,\n ...args: unknown[]\n) => void;\n\nexport interface IChatUiStore<T extends ChatCustomizations = ChatCustomizations> {\n scrollCounter: number;\n\n status: ChatRunState;\n get isStarting(): boolean;\n get isStarted(): boolean;\n get isError(): boolean;\n get isEnded(): boolean;\n get customizations(): T;\n timer?: ChatTimer;\n endReason?: ChatEndReason;\n\n participants: { [key: symbol]: ChatParticipantModel };\n messages: ChatMessageModelBase[];\n isAgentTyping: boolean;\n isFilePickerEnabled: boolean;\n file?: FileDescriptor;\n error?: ChatError;\n\n get agent(): ChatParticipantModel;\n get user(): ChatParticipantModel;\n\n on<T>(event: string, listener: ChatUiEventListener<T>): void;\n off<T>(event: string, listener: ChatUiEventListener<T>): void;\n\n setCustomizationContext(customizationContext?: T): void;\n setIncomingSound(soundUrl: string): void;\n setTimer(timer?: ChatTimer): void;\n setFile(file: FileDescriptor | undefined): void;\n setFilePickerEnabled(isEnabled: boolean): void;\n setAgentTyping(typing: boolean): void;\n setMessageState(message: ChatMessageModelBase, state: ChatMessageState, data?: any): void;\n setMessages(messages: ChatMessageModelBase[]): void;\n setAgentName(name: string): void;\n setAgentIcon(icon: ChatParticipantIcon): void;\n setChatError(chatError: ChatError): void;\n setError<T = any>(message: string, options?: ChatErrorOptions<T>): void;\n setStatus(status: ChatRunState): void;\n resetError(runState: ChatRunState): void;\n reset(resetStatus?: boolean): void;\n resetFile(): void;\n\n triggerScroll(): void;\n configure(configuration?: ChatConfiguration): void;\n run(configuration?: ChatConfiguration, data?: unknown): Promise<void>;\n recover(): Promise<void>;\n destroy(): Promise<void>;\n chasitorTyping(isTyping: boolean): Promise<void>;\n restartTimers(): Promise<void>;\n restart(): Promise<void>;\n cancelChat(): Promise<void>;\n endChat(endReason?: ChatEndReason): Promise<void>;\n sendMessageText<O extends {}>(messageText: string, options?: O): Promise<void>;\n sendMessageRetry(message: ChatMessageModelBase): Promise<void>;\n addMessage(isAgent: boolean, message: string, data?: any): void;\n addMessageWelcome(message: string): void;\n}\nexport const CHAT_UI_STORE_TOKEN = symbolToken<IChatUiStore>('CHAT_UI_STORE_TOKEN');\n\n@injectable()\nexport class ChatUiStore<T extends ChatCustomizations> implements IChatUiStore<T> {\n @observable isAgentTyping = false;\n\n @observable status = ChatRunState.Offline;\n\n @observable isFilePickerEnabled = false;\n\n @observable file?: FileDescriptor;\n\n @observable.ref error?: ChatError;\n\n @observable endReason?: ChatEndReason;\n\n @observable messages: ChatMessageModelBase[] = [];\n\n @observable currentFileMessage?: ChatMessageModelFile;\n\n @observable scrollCounter = 1;\n\n @observable timer?: ChatTimer;\n\n @observable participants: { [key: symbol]: ChatParticipantModel } = {\n [symbolAgent]: {\n isAgent: true,\n name: 'Agent',\n icon: ChatParticipantIcon.Initials,\n },\n [symbolUser]: {\n isAgent: false,\n name: 'User',\n icon: ChatParticipantIcon.Initials,\n },\n };\n\n @computed\n get agent() {\n return this.participants[symbolAgent];\n }\n\n @computed\n get user() {\n return this.participants[symbolUser];\n }\n\n @computed\n get isStarted() {\n return this.status === ChatRunState.Started;\n }\n\n @computed\n get isError() {\n return this.status === ChatRunState.Error;\n }\n\n @computed\n get isEnded() {\n return this.status === ChatRunState.Ended;\n }\n\n @computed\n get isStarting() {\n return this.status === ChatRunState.Initializing;\n }\n\n @computed\n get customizations() {\n return this.customizationContext;\n }\n\n @observable\n protected customizationContext: T = {} as T;\n private eventEmitter = new EventEmitter();\n private incomingMessageSound?: HTMLAudioElement;\n private incomingMessageSoundPromise?: Promise<void>;\n\n constructor() {\n makeObservable(this);\n }\n\n on = <T>(event: string, listener: ChatUiEventListener<T>) => {\n this.eventEmitter.on(event, listener);\n };\n\n off = <T>(event: string, listener: ChatUiEventListener<T>) => {\n this.eventEmitter.off(event, listener);\n };\n\n @action\n setCustomizationContext(customizationContext?: T) {\n this.customizationContext = customizationContext ?? ({} as T);\n this.triggerScroll();\n }\n\n setIncomingSound(soundUrl: string) {\n if (this.incomingMessageSound) {\n return;\n }\n this.incomingMessageSound = new Audio(soundUrl);\n }\n\n @action\n setFile(file?: FileDescriptor) {\n this.file = file;\n }\n\n @action\n setFilePickerEnabled(isEnabled: boolean) {\n this.isFilePickerEnabled = isEnabled;\n this.setFile();\n this.triggerScroll();\n }\n\n @action\n setTimer(timer?: ChatTimer) {\n this.timer = timer;\n }\n\n @action\n resetError(runState: ChatRunState) {\n this.error = undefined;\n this.setStatus(runState);\n this.triggerScroll();\n }\n\n @action\n setChatError(chatError: ChatError) {\n this.error = chatError;\n this.setStatus(ChatRunState.Error);\n this.triggerScroll();\n }\n\n @action\n setError<T = any>(message: string, options?: ChatErrorOptions<T>) {\n this.setChatError(new ChatError(message, options));\n }\n\n @action\n setStatus(status: ChatRunState) {\n this.status = status;\n }\n\n @action\n setMessages(messages: ChatMessageModelBase[]) {\n this.messages = messages;\n this.triggerScroll();\n }\n\n @action\n setAgentName(name: string) {\n this.agent.name = name;\n }\n\n @action\n setAgentIcon(icon: ChatParticipantIcon) {\n this.agent.icon = icon;\n }\n\n @action\n setAgentTyping(isAgentTyping: boolean) {\n this.isAgentTyping = isAgentTyping;\n this.triggerScroll();\n }\n\n @action\n setEndReason(reason?: ChatEndReason) {\n this.endReason = reason;\n this.triggerScroll();\n }\n\n @action\n setEndedChatState(endReason: ChatEndReason) {\n this.setEndReason(endReason);\n this.setStatus(ChatRunState.Ended);\n this.setAgentTyping(false);\n this.resetFile();\n this.triggerScroll();\n }\n\n @action\n configure(configuration?: ChatConfiguration) {\n if (!configuration) {\n return;\n }\n if (configuration.agentName) {\n this.setAgentName(configuration.agentName);\n }\n if (configuration.agentIcon) {\n this.setAgentIcon(configuration.agentIcon);\n }\n }\n\n async run(configuration?: ChatConfiguration, data?: unknown) {\n this.configure(configuration);\n if (!this.eventEmitter.listeners(ChatUiEvent.eventRun).length) {\n throw new Error(\"No listeners for ChatUiEvent.eventRun ('eventRun')\");\n }\n await this.emitAsync(ChatUiEvent.eventRun, data);\n }\n\n async recover() {\n await this.emitAsync(ChatUiEvent.eventRecover, this.error);\n }\n\n async destroy() {\n this.reset();\n await this.emitAsync(ChatUiEvent.eventDestroy);\n }\n\n async restart() {\n this.reset();\n await this.emitAsync(ChatUiEvent.eventRestart);\n }\n\n async cancelChat() {\n await this.emitAsync(ChatUiEvent.eventCancel);\n }\n\n async endChat(endReason?: ChatEndReason) {\n await this.emitAsync(ChatUiEvent.eventEndChat, endReason);\n }\n\n async chasitorTyping(isTyping: boolean) {\n await this.emitAsync(ChatUiEvent.eventChasitorTyping, isTyping);\n }\n\n @action\n async sendMessageText(message: string) {\n if (this.isFilePickerEnabled && this.file) {\n // Send text message with file\n runInAction(() => {\n this.isFilePickerEnabled = false;\n this.currentFileMessage = this.addMessageFile(this.file!);\n });\n let messageModel: ChatMessageModelText | undefined;\n if (message.trim() !== '') {\n messageModel = this.addMessage(false, message);\n }\n await this.emitAsync(\n ChatUiEvent.eventMessageSendFile,\n this.currentFileMessage,\n this.file,\n messageModel\n );\n this.setFilePickerEnabled(false);\n this.setFile(undefined);\n } else {\n // Send plain text message\n await this.sendMessageTextInternal(message);\n }\n }\n\n @action\n async sendMessageRetry(messageModel: ChatMessageModelBase) {\n this.resetError(ChatRunState.Started);\n this.setMessageState(messageModel, ChatMessageState.Delivering);\n await this.emitAsync(ChatUiEvent.eventMessageSendRetry, messageModel);\n await this.restartTimers();\n }\n\n @action\n async sendMessageFileRetry(messageModel: ChatMessageModelFile) {\n this.resetError(ChatRunState.Started);\n this.setMessageState(messageModel, ChatMessageState.Delivering);\n await this.emitAsync(ChatUiEvent.eventMessageSendFileRetry, messageModel);\n }\n\n getParticipant(participantKey: symbol): ChatParticipantModel {\n const participant = this.participants[participantKey];\n return { ...participant };\n }\n\n @action\n addMessage(isAgent: boolean, message: string, data?: any) {\n return this.addMessageInternal<ChatMessageModelText>({\n type: 'message',\n state: ChatMessageState.Delivering,\n participant: this.getParticipant(isAgent ? symbolAgent : symbolUser),\n data,\n message,\n });\n }\n\n @action\n addMessageTimeout() {\n const isNewChat =\n this.messages.length === 0 || this.messages.every(m => m.type === 'welcome');\n if (isNewChat) {\n return;\n }\n return this.addMessageInternal<ChatMessageModelTimeout>({\n type: 'timeout',\n participant: this.agent,\n state: ChatMessageState.Delivered,\n });\n }\n\n @action\n addMessageWelcome(message: string) {\n return this.addMessageInternal<ChatMessageModelWelcome>({\n type: 'welcome',\n state: ChatMessageState.Delivered,\n participant: this.getParticipant(symbolAgent),\n message,\n });\n }\n\n @action\n addMessageFile(file: FileDescriptor) {\n return this.addMessageInternal<ChatMessageModelFile>({\n fileName: file.displayName ?? 'attachment',\n type: 'file',\n state: ChatMessageState.Delivering,\n participant: this.user,\n });\n }\n\n @action\n async restartTimers() {\n this.removeMessageByType('timeout');\n await this.emitAsync(ChatUiEvent.eventTimerRestart);\n }\n\n @action\n setMessageState(message: ChatMessageModelBase, state: ChatMessageState, data?: any) {\n const foundMessage = this.messages.find(m => m.id === message.id);\n if (foundMessage) {\n foundMessage.state = state;\n if (data) {\n foundMessage.data = data;\n }\n }\n }\n\n @action\n resetFile() {\n this.currentFileMessage = undefined;\n this.file = undefined;\n this.isFilePickerEnabled = false;\n this.triggerScroll();\n }\n\n @action\n reset(resetStatus = true) {\n this.setMessages([]);\n if (resetStatus) {\n this.status = ChatRunState.Offline;\n }\n this.error = undefined;\n this.isAgentTyping = false;\n this.endReason = undefined;\n this.resetFile();\n }\n\n getLastFailedMessages() {\n const result: ChatMessageModelText[] = [];\n for (let i = this.messages.length - 1; i >= 0; i--) {\n const message = this.messages[i];\n if (message.type === 'message' && !message.participant.isAgent) {\n if (message.state !== ChatMessageState.Failed) {\n break;\n }\n result.push(message as ChatMessageModelText);\n }\n }\n return result;\n }\n\n triggerScroll() {\n setTimeout(() => {\n runInAction(() => {\n this.scrollCounter++;\n });\n }, 0);\n }\n\n protected async emitAsync<T>(event: string, ...args: unknown[]) {\n if (!this.eventEmitter.listenerCount(event)) {\n return Promise.resolve(undefined);\n }\n return new Promise<T>((resolve, reject) => {\n this.eventEmitter.emit(event, resolve, reject, ...args);\n });\n }\n\n protected addMessageInternal<T extends ChatMessageModelBase>(\n message: Omit<T, 'id' | 'timestamp'>\n ): T {\n if (message.type === 'timeout') {\n this.removeMessageByType('timeout'); // Remove previous timeout messages\n } else {\n this.restartTimers().then(() => {});\n }\n this.setMessages([...this.messages, this.createMessage<T>(message)]);\n if (message.participant.isAgent) {\n this.beepIncoming().catch(() => {});\n }\n return this.messages.at(-1) as T;\n }\n\n protected removeMessageByType(type: string) {\n if (this.messages.some(m => m.type === type)) {\n this.setMessages(this.messages.filter(m => m.type !== type));\n }\n }\n\n private async sendMessageTextInternal(message: string) {\n if (message.trim() === '') {\n return;\n }\n const messageModel = this.addMessage(false, message);\n await this.emitAsync(ChatUiEvent.eventMessageSend, messageModel);\n }\n\n private createMessage<T extends ChatMessageModelBase>(rest: Omit<T, 'id' | 'timestamp'>) {\n return {\n id: nanoid(),\n timestamp: new Date(),\n ...rest,\n } as T;\n }\n\n private async beepIncoming() {\n if (!this.incomingMessageSound) {\n return;\n }\n try {\n this.incomingMessageSoundPromise ??= this.incomingMessageSound.play();\n await this.incomingMessageSoundPromise;\n } finally {\n this.incomingMessageSoundPromise = undefined;\n }\n }\n}\n"],"names":["EventEmitter","injectable","symbolToken","action","computed","makeObservable","observable","runInAction","nanoid","ChatConfiguration","ChatEndReason","ChatError","ChatErrorOptions","ChatMessageModelBase","ChatMessageModelFile","ChatMessageState","ChatParticipantIcon","ChatRunState","ChatTimer","FileDescriptor","symbolAgent","Symbol","symbolUser","ChatUiEvent","CHAT_UI_STORE_TOKEN","ChatUiStore","agent","participants","user","isStarted","status","Started","isError","Error","isEnded","Ended","isStarting","Initializing","customizations","customizationContext","setCustomizationContext","triggerScroll","setIncomingSound","soundUrl","incomingMessageSound","Audio","setFile","file","setFilePickerEnabled","isEnabled","isFilePickerEnabled","setTimer","timer","resetError","runState","error","undefined","setStatus","setChatError","chatError","setError","message","options","setMessages","messages","setAgentName","name","setAgentIcon","icon","setAgentTyping","isAgentTyping","setEndReason","reason","endReason","setEndedChatState","resetFile","configure","configuration","agentName","agentIcon","run","data","eventEmitter","listeners","length","emitAsync","recover","destroy","reset","restart","cancelChat","endChat","chasitorTyping","isTyping","sendMessageText","currentFileMessage","addMessageFile","messageModel","trim","addMessage","sendMessageTextInternal","sendMessageRetry","setMessageState","Delivering","restartTimers","sendMessageFileRetry","getParticipant","participantKey","participant","isAgent","addMessageInternal","type","state","addMessageTimeout","isNewChat","every","m","Delivered","addMessageWelcome","fileName","displayName","removeMessageByType","foundMessage","find","id","resetStatus","Offline","getLastFailedMessages","result","i","Failed","push","setTimeout","scrollCounter","event","args","listenerCount","Promise","resolve","reject","emit","then","createMessage","beepIncoming","catch","at","some","filter","rest","timestamp","Date","incomingMessageSoundPromise","play","Initials","on","listener","off","ref"],"mappings":"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"}
@@ -1,4 +1,6 @@
1
- export { CHAT_UI_STORE_TOKEN, IChatUiStore, ChatUiStore, ChatUiEvent, symbolUser, symbolAgent, ChatUiEventListener, } from './chat-ui.store';
1
+ export type { IChatUiStore, ChatUiEventListener } from './chat-ui.store';
2
+ export { CHAT_UI_STORE_TOKEN, ChatUiStore, ChatUiEvent, symbolUser, symbolAgent, } from './chat-ui.store';
2
3
  export { ChatUiBackendEchoStore } from './chat-ui-backend-echo.store';
3
- export { CHAT_UI_BACKEND_STORE_TOKEN, IChatUiBackendStore } from './chat-ui-backend.store';
4
+ export type { IChatUiBackendStore } from './chat-ui-backend.store';
5
+ export { CHAT_UI_BACKEND_STORE_TOKEN } from './chat-ui-backend.store';
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stores/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,WAAW,EACX,mBAAmB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stores/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EACH,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,UAAU,EACV,WAAW,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1,4 +1,5 @@
1
- export { CHAT_UI_STORE_TOKEN, ChatUiStore, ChatUiEvent, symbolUser, symbolAgent, } from './chat-ui.store';
1
+ export { CHAT_UI_STORE_TOKEN, ChatUiStore, ChatUiEvent, symbolUser, symbolAgent } from './chat-ui.store';
2
2
  export { ChatUiBackendEchoStore } from './chat-ui-backend-echo.store';
3
3
  export { CHAT_UI_BACKEND_STORE_TOKEN } from './chat-ui-backend.store';
4
+
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stores/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EAEnB,WAAW,EACX,WAAW,EACX,UAAU,EACV,WAAW,GAEd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,2BAA2B,EAAuB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"sources":["../../src/stores/index.ts"],"sourcesContent":["export type { IChatUiStore, ChatUiEventListener } from './chat-ui.store';\nexport {\n CHAT_UI_STORE_TOKEN,\n ChatUiStore,\n ChatUiEvent,\n symbolUser,\n symbolAgent,\n} from './chat-ui.store';\nexport { ChatUiBackendEchoStore } from './chat-ui-backend-echo.store';\nexport type { IChatUiBackendStore } from './chat-ui-backend.store';\nexport { CHAT_UI_BACKEND_STORE_TOKEN } from './chat-ui-backend.store';\n"],"names":["CHAT_UI_STORE_TOKEN","ChatUiStore","ChatUiEvent","symbolUser","symbolAgent","ChatUiBackendEchoStore","CHAT_UI_BACKEND_STORE_TOKEN"],"mappings":"AACA,SACIA,mBAAmB,EACnBC,WAAW,EACXC,WAAW,EACXC,UAAU,EACVC,WAAW,QACR,kBAAkB;AACzB,SAASC,sBAAsB,QAAQ,+BAA+B;AAEtE,SAASC,2BAA2B,QAAQ,0BAA0B"}
@@ -1,7 +1,7 @@
1
1
  import { expect } from '@jest/globals';
2
- import { extractFilenameAndExt, formatChatMessageDate, getFirstName, getNameInitials, getNameInitialsFirst, } from '../text-utils';
3
- describe('text-utils', () => {
4
- test('should get initials from name', () => {
2
+ import { extractFilenameAndExt, formatChatMessageDate, getFirstName, getNameInitials, getNameInitialsFirst } from '../text-utils';
3
+ describe('text-utils', ()=>{
4
+ test('should get initials from name', ()=>{
5
5
  expect(getNameInitials('')).toEqual('');
6
6
  expect(getNameInitials('A')).toEqual('A');
7
7
  expect(getNameInitials('AB')).toEqual('A');
@@ -11,15 +11,33 @@ describe('text-utils', () => {
11
11
  expect(getNameInitials('abcd ef')).toEqual('AE');
12
12
  expect(getNameInitials('a b c d')).toEqual('AB');
13
13
  });
14
- test('should extract filename and ext', () => {
15
- expect(extractFilenameAndExt('')).toEqual(['', '']);
16
- expect(extractFilenameAndExt('a')).toEqual(['a', '']);
17
- expect(extractFilenameAndExt('a.')).toEqual(['a.', '']);
18
- expect(extractFilenameAndExt('a.b')).toEqual(['a.', 'b']);
19
- expect(extractFilenameAndExt('a.b.c')).toEqual(['a.b.', 'c']);
20
- expect(extractFilenameAndExt('aaaa.bbbb.cccc')).toEqual(['aaaa.bbbb.', 'cccc']);
14
+ test('should extract filename and ext', ()=>{
15
+ expect(extractFilenameAndExt('')).toEqual([
16
+ '',
17
+ ''
18
+ ]);
19
+ expect(extractFilenameAndExt('a')).toEqual([
20
+ 'a',
21
+ ''
22
+ ]);
23
+ expect(extractFilenameAndExt('a.')).toEqual([
24
+ 'a.',
25
+ ''
26
+ ]);
27
+ expect(extractFilenameAndExt('a.b')).toEqual([
28
+ 'a.',
29
+ 'b'
30
+ ]);
31
+ expect(extractFilenameAndExt('a.b.c')).toEqual([
32
+ 'a.b.',
33
+ 'c'
34
+ ]);
35
+ expect(extractFilenameAndExt('aaaa.bbbb.cccc')).toEqual([
36
+ 'aaaa.bbbb.',
37
+ 'cccc'
38
+ ]);
21
39
  });
22
- test('should getFirstName', () => {
40
+ test('should getFirstName', ()=>{
23
41
  expect(getFirstName('')).toEqual('');
24
42
  expect(getFirstName('A')).toEqual('A');
25
43
  expect(getFirstName('AB')).toEqual('AB');
@@ -29,7 +47,7 @@ describe('text-utils', () => {
29
47
  expect(getFirstName('abcd ef')).toEqual('abcd');
30
48
  expect(getFirstName('a b c d')).toEqual('a');
31
49
  });
32
- test('should getNameInitialsFirst', () => {
50
+ test('should getNameInitialsFirst', ()=>{
33
51
  expect(getNameInitials('')).toEqual('');
34
52
  expect(getNameInitials('A')).toEqual('A');
35
53
  expect(getNameInitials('AB')).toEqual('A');
@@ -39,13 +57,13 @@ describe('text-utils', () => {
39
57
  expect(getNameInitials('abcd ef')).toEqual('AE');
40
58
  expect(getNameInitials('a b c d')).toEqual('AB');
41
59
  });
42
- test('should formatChatMessageDate', () => {
60
+ test('should formatChatMessageDate', ()=>{
43
61
  const date = new Date('2023-10-01T12:00:00Z');
44
62
  expect(formatChatMessageDate(date)).toEqual('12:00 PM');
45
63
  expect(formatChatMessageDate(new Date('2023-10-01T00:00:00Z'))).toEqual('12:00 AM');
46
64
  expect(formatChatMessageDate(new Date('2023-10-01T23:59:59Z'))).toEqual('11:59 PM');
47
65
  });
48
- test('should getNameInitialsFirst', () => {
66
+ test('should getNameInitialsFirst', ()=>{
49
67
  expect(getNameInitialsFirst('')).toEqual('');
50
68
  expect(getNameInitialsFirst('A')).toEqual('A');
51
69
  expect(getNameInitialsFirst('AB')).toEqual('A');
@@ -56,4 +74,5 @@ describe('text-utils', () => {
56
74
  expect(getNameInitialsFirst('a b c d')).toEqual('A');
57
75
  });
58
76
  });
77
+
59
78
  //# sourceMappingURL=text-utils.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text-utils.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/text-utils.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/utils/__tests__/text-utils.test.ts"],"sourcesContent":["import { expect } from '@jest/globals';\nimport {\n extractFilenameAndExt,\n formatChatMessageDate,\n getFirstName,\n getNameInitials,\n getNameInitialsFirst,\n} from '../text-utils';\n\ndescribe('text-utils', () => {\n test('should get initials from name', () => {\n expect(getNameInitials('')).toEqual('');\n expect(getNameInitials('A')).toEqual('A');\n expect(getNameInitials('AB')).toEqual('A');\n expect(getNameInitials('abcd')).toEqual('A');\n expect(getNameInitials(' abcd ')).toEqual('A');\n expect(getNameInitials(' a b c ')).toEqual('AB');\n expect(getNameInitials('abcd ef')).toEqual('AE');\n expect(getNameInitials('a b c d')).toEqual('AB');\n });\n\n test('should extract filename and ext', () => {\n expect(extractFilenameAndExt('')).toEqual(['', '']);\n expect(extractFilenameAndExt('a')).toEqual(['a', '']);\n expect(extractFilenameAndExt('a.')).toEqual(['a.', '']);\n expect(extractFilenameAndExt('a.b')).toEqual(['a.', 'b']);\n expect(extractFilenameAndExt('a.b.c')).toEqual(['a.b.', 'c']);\n expect(extractFilenameAndExt('aaaa.bbbb.cccc')).toEqual(['aaaa.bbbb.', 'cccc']);\n });\n\n test('should getFirstName', () => {\n expect(getFirstName('')).toEqual('');\n expect(getFirstName('A')).toEqual('A');\n expect(getFirstName('AB')).toEqual('AB');\n expect(getFirstName('abcd')).toEqual('abcd');\n expect(getFirstName(' abcd ')).toEqual('abcd');\n expect(getFirstName(' a b c ')).toEqual('a');\n expect(getFirstName('abcd ef')).toEqual('abcd');\n expect(getFirstName('a b c d')).toEqual('a');\n });\n\n test('should getNameInitialsFirst', () => {\n expect(getNameInitials('')).toEqual('');\n expect(getNameInitials('A')).toEqual('A');\n expect(getNameInitials('AB')).toEqual('A');\n expect(getNameInitials('abcd')).toEqual('A');\n expect(getNameInitials(' abcd ')).toEqual('A');\n expect(getNameInitials(' a b c ')).toEqual('AB');\n expect(getNameInitials('abcd ef')).toEqual('AE');\n expect(getNameInitials('a b c d')).toEqual('AB');\n });\n\n test('should formatChatMessageDate', () => {\n const date = new Date('2023-10-01T12:00:00Z');\n expect(formatChatMessageDate(date)).toEqual('12:00 PM');\n expect(formatChatMessageDate(new Date('2023-10-01T00:00:00Z'))).toEqual('12:00 AM');\n expect(formatChatMessageDate(new Date('2023-10-01T23:59:59Z'))).toEqual('11:59 PM');\n });\n\n test('should getNameInitialsFirst', () => {\n expect(getNameInitialsFirst('')).toEqual('');\n expect(getNameInitialsFirst('A')).toEqual('A');\n expect(getNameInitialsFirst('AB')).toEqual('A');\n expect(getNameInitialsFirst('abcd')).toEqual('A');\n expect(getNameInitialsFirst(' abcd ')).toEqual('A');\n expect(getNameInitialsFirst(' a b c ')).toEqual('A');\n expect(getNameInitialsFirst('abcd ef')).toEqual('A');\n expect(getNameInitialsFirst('a b c d')).toEqual('A');\n });\n});\n"],"names":["expect","extractFilenameAndExt","formatChatMessageDate","getFirstName","getNameInitials","getNameInitialsFirst","describe","test","toEqual","date","Date"],"mappings":"AAAA,SAASA,MAAM,QAAQ,gBAAgB;AACvC,SACIC,qBAAqB,EACrBC,qBAAqB,EACrBC,YAAY,EACZC,eAAe,EACfC,oBAAoB,QACjB,gBAAgB;AAEvBC,SAAS,cAAc;IACnBC,KAAK,iCAAiC;QAClCP,OAAOI,gBAAgB,KAAKI,OAAO,CAAC;QACpCR,OAAOI,gBAAgB,MAAMI,OAAO,CAAC;QACrCR,OAAOI,gBAAgB,OAAOI,OAAO,CAAC;QACtCR,OAAOI,gBAAgB,SAASI,OAAO,CAAC;QACxCR,OAAOI,gBAAgB,cAAcI,OAAO,CAAC;QAC7CR,OAAOI,gBAAgB,gBAAgBI,OAAO,CAAC;QAC/CR,OAAOI,gBAAgB,YAAYI,OAAO,CAAC;QAC3CR,OAAOI,gBAAgB,YAAYI,OAAO,CAAC;IAC/C;IAEAD,KAAK,mCAAmC;QACpCP,OAAOC,sBAAsB,KAAKO,OAAO,CAAC;YAAC;YAAI;SAAG;QAClDR,OAAOC,sBAAsB,MAAMO,OAAO,CAAC;YAAC;YAAK;SAAG;QACpDR,OAAOC,sBAAsB,OAAOO,OAAO,CAAC;YAAC;YAAM;SAAG;QACtDR,OAAOC,sBAAsB,QAAQO,OAAO,CAAC;YAAC;YAAM;SAAI;QACxDR,OAAOC,sBAAsB,UAAUO,OAAO,CAAC;YAAC;YAAQ;SAAI;QAC5DR,OAAOC,sBAAsB,mBAAmBO,OAAO,CAAC;YAAC;YAAc;SAAO;IAClF;IAEAD,KAAK,uBAAuB;QACxBP,OAAOG,aAAa,KAAKK,OAAO,CAAC;QACjCR,OAAOG,aAAa,MAAMK,OAAO,CAAC;QAClCR,OAAOG,aAAa,OAAOK,OAAO,CAAC;QACnCR,OAAOG,aAAa,SAASK,OAAO,CAAC;QACrCR,OAAOG,aAAa,cAAcK,OAAO,CAAC;QAC1CR,OAAOG,aAAa,gBAAgBK,OAAO,CAAC;QAC5CR,OAAOG,aAAa,YAAYK,OAAO,CAAC;QACxCR,OAAOG,aAAa,YAAYK,OAAO,CAAC;IAC5C;IAEAD,KAAK,+BAA+B;QAChCP,OAAOI,gBAAgB,KAAKI,OAAO,CAAC;QACpCR,OAAOI,gBAAgB,MAAMI,OAAO,CAAC;QACrCR,OAAOI,gBAAgB,OAAOI,OAAO,CAAC;QACtCR,OAAOI,gBAAgB,SAASI,OAAO,CAAC;QACxCR,OAAOI,gBAAgB,cAAcI,OAAO,CAAC;QAC7CR,OAAOI,gBAAgB,gBAAgBI,OAAO,CAAC;QAC/CR,OAAOI,gBAAgB,YAAYI,OAAO,CAAC;QAC3CR,OAAOI,gBAAgB,YAAYI,OAAO,CAAC;IAC/C;IAEAD,KAAK,gCAAgC;QACjC,MAAME,OAAO,IAAIC,KAAK;QACtBV,OAAOE,sBAAsBO,OAAOD,OAAO,CAAC;QAC5CR,OAAOE,sBAAsB,IAAIQ,KAAK,0BAA0BF,OAAO,CAAC;QACxER,OAAOE,sBAAsB,IAAIQ,KAAK,0BAA0BF,OAAO,CAAC;IAC5E;IAEAD,KAAK,+BAA+B;QAChCP,OAAOK,qBAAqB,KAAKG,OAAO,CAAC;QACzCR,OAAOK,qBAAqB,MAAMG,OAAO,CAAC;QAC1CR,OAAOK,qBAAqB,OAAOG,OAAO,CAAC;QAC3CR,OAAOK,qBAAqB,SAASG,OAAO,CAAC;QAC7CR,OAAOK,qBAAqB,cAAcG,OAAO,CAAC;QAClDR,OAAOK,qBAAqB,gBAAgBG,OAAO,CAAC;QACpDR,OAAOK,qBAAqB,YAAYG,OAAO,CAAC;QAChDR,OAAOK,qBAAqB,YAAYG,OAAO,CAAC;IACpD;AACJ"}
@@ -1,17 +1,17 @@
1
1
  import { Container } from '@servicetitan/react-ioc';
2
- export const initTestContainer = (serviceIdentifier, initDependenciesFn) => {
2
+ export const initTestContainer = (serviceIdentifier, initDependenciesFn)=>{
3
3
  const rootContainer = new Container();
4
4
  if (Array.isArray(serviceIdentifier)) {
5
- serviceIdentifier.forEach(identifier => rootContainer.bind(identifier).toSelf());
6
- }
7
- else {
5
+ serviceIdentifier.forEach((identifier)=>rootContainer.bind(identifier).toSelf());
6
+ } else {
8
7
  rootContainer.bind(serviceIdentifier).toSelf();
9
8
  }
10
- return () => {
9
+ return ()=>{
11
10
  const container = new Container();
12
11
  container.parent = rootContainer;
13
12
  initDependenciesFn(container);
14
13
  return container;
15
14
  };
16
15
  };
16
+
17
17
  //# sourceMappingURL=test-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../../src/utils/test-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAIpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC7B,iBAAwD,EACxD,kBAAkD,EACpD,EAAE;IACA,MAAM,aAAa,GAAG,IAAI,SAAS,EAAE,CAAC;IACtC,IAAI,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACnC,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACrF,CAAC;SAAM,CAAC;QACJ,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC;IACnD,CAAC;IAED,OAAO,GAAG,EAAE;QACR,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;QAClC,SAAS,CAAC,MAAM,GAAG,aAAa,CAAC;QACjC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC9B,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"sources":["../../src/utils/test-utils.ts"],"sourcesContent":["import { Container } from '@servicetitan/react-ioc';\n\ntype Newable<T> = new (...args: never[]) => T;\n\nexport const initTestContainer = (\n serviceIdentifier: Newable<unknown> | Newable<unknown>[],\n initDependenciesFn: (container: Container) => void\n) => {\n const rootContainer = new Container();\n if (Array.isArray(serviceIdentifier)) {\n serviceIdentifier.forEach(identifier => rootContainer.bind(identifier).toSelf());\n } else {\n rootContainer.bind(serviceIdentifier).toSelf();\n }\n\n return () => {\n const container = new Container();\n container.parent = rootContainer;\n initDependenciesFn(container);\n return container;\n };\n};\n"],"names":["Container","initTestContainer","serviceIdentifier","initDependenciesFn","rootContainer","Array","isArray","forEach","identifier","bind","toSelf","container","parent"],"mappings":"AAAA,SAASA,SAAS,QAAQ,0BAA0B;AAIpD,OAAO,MAAMC,oBAAoB,CAC7BC,mBACAC;IAEA,MAAMC,gBAAgB,IAAIJ;IAC1B,IAAIK,MAAMC,OAAO,CAACJ,oBAAoB;QAClCA,kBAAkBK,OAAO,CAACC,CAAAA,aAAcJ,cAAcK,IAAI,CAACD,YAAYE,MAAM;IACjF,OAAO;QACHN,cAAcK,IAAI,CAACP,mBAAmBQ,MAAM;IAChD;IAEA,OAAO;QACH,MAAMC,YAAY,IAAIX;QACtBW,UAAUC,MAAM,GAAGR;QACnBD,mBAAmBQ;QACnB,OAAOA;IACX;AACJ,EAAE"}
@@ -1,33 +1,33 @@
1
1
  export function formatChatMessageDate(date) {
2
2
  return date.toLocaleTimeString('en-US', {
3
3
  hour: '2-digit',
4
- minute: '2-digit',
4
+ minute: '2-digit'
5
5
  });
6
6
  }
7
- export const getFirstName = (name) => {
7
+ export const getFirstName = (name)=>{
8
8
  const parts = name.trim().split(' ');
9
9
  return parts[0];
10
10
  };
11
- export const getNameInitials = (name) => {
11
+ export const getNameInitials = (name)=>{
12
12
  const parts = name.trim().split(' ');
13
- return parts
14
- .filter(Boolean)
15
- .splice(0, 2)
16
- .map(p => p[0].toUpperCase())
17
- .join('');
13
+ return parts.filter(Boolean).splice(0, 2).map((p)=>p[0].toUpperCase()).join('');
18
14
  };
19
- export const getNameInitialsFirst = (name) => {
15
+ export const getNameInitialsFirst = (name)=>{
20
16
  const initials = getNameInitials(name);
21
17
  return initials.length > 0 ? initials[0] : '';
22
18
  };
23
- export const extractFilenameAndExt = (fileName) => {
19
+ export const extractFilenameAndExt = (fileName)=>{
24
20
  const lastIndex = fileName.lastIndexOf('.');
25
21
  if (lastIndex === -1) {
26
- return [fileName, ''];
22
+ return [
23
+ fileName,
24
+ ''
25
+ ];
27
26
  }
28
27
  return [
29
28
  fileName.substring(0, lastIndex) + '.',
30
- fileName.substring(lastIndex + 1, fileName.length),
29
+ fileName.substring(lastIndex + 1, fileName.length)
31
30
  ];
32
31
  };
32
+
33
33
  //# sourceMappingURL=text-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text-utils.js","sourceRoot":"","sources":["../../src/utils/text-utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,qBAAqB,CAAC,IAAU;IAC5C,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;QACpC,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;KACpB,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAU,EAAE;IACjD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAU,EAAE;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,OAAO,KAAK;SACP,MAAM,CAAC,OAAO,CAAC;SACf,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;SACZ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,CAAC;SAC7B,IAAI,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAU,EAAE;IACzD,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAAgB,EAAoB,EAAE;IACxE,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO;QACH,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,GAAG;QACtC,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC;KACrD,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"sources":["../../src/utils/text-utils.ts"],"sourcesContent":["export function formatChatMessageDate(date: Date) {\n return date.toLocaleTimeString('en-US', {\n hour: '2-digit',\n minute: '2-digit',\n });\n}\n\nexport const getFirstName = (name: string): string => {\n const parts = name.trim().split(' ');\n return parts[0];\n};\n\nexport const getNameInitials = (name: string): string => {\n const parts = name.trim().split(' ');\n return parts\n .filter(Boolean)\n .splice(0, 2)\n .map(p => p[0]!.toUpperCase())\n .join('');\n};\n\nexport const getNameInitialsFirst = (name: string): string => {\n const initials = getNameInitials(name);\n return initials.length > 0 ? initials[0] : '';\n};\n\nexport const extractFilenameAndExt = (fileName: string): [string, string] => {\n const lastIndex = fileName.lastIndexOf('.');\n if (lastIndex === -1) {\n return [fileName, ''];\n }\n return [\n fileName.substring(0, lastIndex) + '.',\n fileName.substring(lastIndex + 1, fileName.length),\n ];\n};\n"],"names":["formatChatMessageDate","date","toLocaleTimeString","hour","minute","getFirstName","name","parts","trim","split","getNameInitials","filter","Boolean","splice","map","p","toUpperCase","join","getNameInitialsFirst","initials","length","extractFilenameAndExt","fileName","lastIndex","lastIndexOf","substring"],"mappings":"AAAA,OAAO,SAASA,sBAAsBC,IAAU;IAC5C,OAAOA,KAAKC,kBAAkB,CAAC,SAAS;QACpCC,MAAM;QACNC,QAAQ;IACZ;AACJ;AAEA,OAAO,MAAMC,eAAe,CAACC;IACzB,MAAMC,QAAQD,KAAKE,IAAI,GAAGC,KAAK,CAAC;IAChC,OAAOF,KAAK,CAAC,EAAE;AACnB,EAAE;AAEF,OAAO,MAAMG,kBAAkB,CAACJ;IAC5B,MAAMC,QAAQD,KAAKE,IAAI,GAAGC,KAAK,CAAC;IAChC,OAAOF,MACFI,MAAM,CAACC,SACPC,MAAM,CAAC,GAAG,GACVC,GAAG,CAACC,CAAAA,IAAKA,CAAC,CAAC,EAAE,CAAEC,WAAW,IAC1BC,IAAI,CAAC;AACd,EAAE;AAEF,OAAO,MAAMC,uBAAuB,CAACZ;IACjC,MAAMa,WAAWT,gBAAgBJ;IACjC,OAAOa,SAASC,MAAM,GAAG,IAAID,QAAQ,CAAC,EAAE,GAAG;AAC/C,EAAE;AAEF,OAAO,MAAME,wBAAwB,CAACC;IAClC,MAAMC,YAAYD,SAASE,WAAW,CAAC;IACvC,IAAID,cAAc,CAAC,GAAG;QAClB,OAAO;YAACD;YAAU;SAAG;IACzB;IACA,OAAO;QACHA,SAASG,SAAS,CAAC,GAAGF,aAAa;QACnCD,SAASG,SAAS,CAACF,YAAY,GAAGD,SAASF,MAAM;KACpD;AACL,EAAE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/titan-chat-ui-common",
3
- "version": "7.1.2",
3
+ "version": "8.0.0",
4
4
  "description": "Chat experience UI package common files",
5
5
  "main": "./dist/index.js",
6
6
  "typings": "./dist/index.d.ts",
@@ -32,5 +32,5 @@
32
32
  "cli": {
33
33
  "webpack": false
34
34
  },
35
- "gitHead": "ddacea8f1d7e9ffce602d24554aeb306e61a40e2"
35
+ "gitHead": "3af2e2dd99b7d735dbb763075de074986f866ce3"
36
36
  }
@@ -1,4 +1,4 @@
1
1
  export * from './support-chat';
2
2
  export * from './__mocks__/support-chat.mock';
3
- export * from './chat-customizations';
4
- export * from './file-descriptor';
3
+ export type * from './chat-customizations';
4
+ export type * from './file-descriptor';
@@ -531,9 +531,7 @@ export class ChatUiStore<T extends ChatCustomizations> implements IChatUiStore<T
531
531
  return;
532
532
  }
533
533
  try {
534
- if (!this.incomingMessageSoundPromise) {
535
- this.incomingMessageSoundPromise = this.incomingMessageSound.play();
536
- }
534
+ this.incomingMessageSoundPromise ??= this.incomingMessageSound.play();
537
535
  await this.incomingMessageSoundPromise;
538
536
  } finally {
539
537
  this.incomingMessageSoundPromise = undefined;
@@ -1,11 +1,11 @@
1
+ export type { IChatUiStore, ChatUiEventListener } from './chat-ui.store';
1
2
  export {
2
3
  CHAT_UI_STORE_TOKEN,
3
- IChatUiStore,
4
4
  ChatUiStore,
5
5
  ChatUiEvent,
6
6
  symbolUser,
7
7
  symbolAgent,
8
- ChatUiEventListener,
9
8
  } from './chat-ui.store';
10
9
  export { ChatUiBackendEchoStore } from './chat-ui-backend-echo.store';
11
- export { CHAT_UI_BACKEND_STORE_TOKEN, IChatUiBackendStore } from './chat-ui-backend.store';
10
+ export type { IChatUiBackendStore } from './chat-ui-backend.store';
11
+ export { CHAT_UI_BACKEND_STORE_TOKEN } from './chat-ui-backend.store';