@telia-ace/widget-conversation 1.0.27 → 1.0.29-next.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 (56) hide show
  1. package/LICENSE.txt +5 -5
  2. package/README.md +396 -256
  3. package/dist/agent.d.ts +17 -17
  4. package/dist/{ui → components}/conversation/conversation.d.ts +6 -6
  5. package/dist/{ui/conversation/conversation-component.d.ts → components/conversation/plugin.d.ts} +43 -32
  6. package/dist/components/conversation/ui/content.d.ts +2 -0
  7. package/dist/{ui/conversation/conversation-input.d.ts → components/conversation/ui/input.d.ts} +6 -6
  8. package/dist/components/conversation/ui/loader.d.ts +9 -0
  9. package/dist/components/conversation/ui/message-list-items/button-list.d.ts +8 -0
  10. package/dist/components/conversation/ui/message-list-items/custom.d.ts +9 -0
  11. package/dist/components/conversation/ui/message-list-items/html.d.ts +5 -0
  12. package/dist/components/conversation/ui/message-list-items/link-list.d.ts +8 -0
  13. package/dist/components/conversation/ui/message-list-items/separator.d.ts +2 -0
  14. package/dist/components/conversation/ui/message-list-items/text.d.ts +6 -0
  15. package/dist/components/conversation/ui/message-list-items/video-request.d.ts +8 -0
  16. package/dist/{ui/conversation → components/conversation/ui}/message-types/agent.d.ts +11 -11
  17. package/dist/{ui/conversation → components/conversation/ui}/message-types/index.d.ts +4 -5
  18. package/dist/components/conversation/ui/message-types/message-list.d.ts +9 -0
  19. package/dist/{ui/conversation → components/conversation/ui}/message-types/system.d.ts +12 -12
  20. package/dist/{ui/conversation → components/conversation/ui}/message-types/timestamp.d.ts +8 -8
  21. package/dist/{ui/conversation → components/conversation/ui}/message-types/user.d.ts +8 -8
  22. package/dist/components/conversation/ui/message.d.ts +5 -0
  23. package/dist/components/conversation/ui/overlay-outlets.d.ts +13 -0
  24. package/dist/components/conversation/ui/styles.d.ts +31 -0
  25. package/dist/{ui/return-button/return-button-component.d.ts → components/return-button/plugin.d.ts} +18 -19
  26. package/dist/{ui → components}/return-button/return-button.d.ts +6 -6
  27. package/dist/conversation-controller.d.ts +88 -88
  28. package/dist/conversation-form-adapter.d.ts +7 -7
  29. package/dist/conversation-platform.d.ts +49 -49
  30. package/dist/conversation-provider.d.ts +22 -22
  31. package/dist/conversation.d7aad569.js +1153 -0
  32. package/dist/conversation.d7aad569.js.map +1 -0
  33. package/dist/index.d.ts +10 -9
  34. package/dist/index.js +453 -341
  35. package/dist/index.js.map +1 -1
  36. package/dist/resolve-entity-value.d.ts +10 -10
  37. package/dist/{return-button.8773c0de.js → return-button.9c517bbe.js} +11 -14
  38. package/dist/return-button.9c517bbe.js.map +1 -0
  39. package/dist/types.d.ts +103 -110
  40. package/dist/user.d.ts +7 -7
  41. package/dist/utils/custom-message.d.ts +3 -3
  42. package/dist/utils/index.d.ts +1 -1
  43. package/dist/utils/map-actions.d.ts +1 -0
  44. package/dist/utils/open-chat-widget.d.ts +4 -4
  45. package/package.json +12 -14
  46. package/dist/conversation.70c6987f.js +0 -1101
  47. package/dist/conversation.70c6987f.js.map +0 -1
  48. package/dist/return-button.8773c0de.js.map +0 -1
  49. package/dist/ui/conversation/conversation-content.d.ts +0 -11
  50. package/dist/ui/conversation/conversation-loader.d.ts +0 -8
  51. package/dist/ui/conversation/conversation-message.d.ts +0 -7
  52. package/dist/ui/conversation/conversation-styles.d.ts +0 -11
  53. package/dist/ui/conversation/index.d.ts +0 -2
  54. package/dist/ui/conversation/message-types/custom.d.ts +0 -9
  55. package/dist/ui/index.d.ts +0 -2
  56. package/dist/ui/return-button/index.d.ts +0 -2
package/dist/agent.d.ts CHANGED
@@ -1,17 +1,17 @@
1
- import { Symbol } from '@telia-ace/widget-ui';
2
- import { ConversationEntry } from './conversation-controller';
3
- import { ConversationProvider } from './conversation-provider';
4
- import { ConversationMessageSettings, ConverstationMessageItem } from './types';
5
- export declare type AgentSettings = {
6
- name?: string;
7
- avatar?: string | Symbol;
8
- };
9
- export declare class Agent {
10
- private provider;
11
- name?: string;
12
- avatar?: string | Symbol;
13
- constructor(provider: ConversationProvider, settings: AgentSettings);
14
- print: (settings: string | ConversationMessageSettings | ConverstationMessageItem<any> | ConverstationMessageItem<any>[]) => ConversationEntry | undefined;
15
- typing: () => (() => void) | undefined;
16
- update(settings: AgentSettings): void;
17
- }
1
+ import { Symbol } from '@telia-ace/widget-ui';
2
+ import { ConversationEntry } from './conversation-controller';
3
+ import { ConversationProvider } from './conversation-provider';
4
+ import { ConversationMessageSettings, ConverstationMessageItem } from './types';
5
+ export declare type AgentSettings = {
6
+ name?: string;
7
+ avatar?: string | Symbol;
8
+ };
9
+ export declare class Agent {
10
+ private provider;
11
+ name?: string;
12
+ avatar?: string | Symbol;
13
+ constructor(provider: ConversationProvider, settings: AgentSettings);
14
+ print: (settings: string | ConversationMessageSettings | ConverstationMessageItem<any> | ConverstationMessageItem<any>[]) => ConversationEntry | undefined;
15
+ typing: () => (() => void) | undefined;
16
+ update(settings: AgentSettings): void;
17
+ }
@@ -1,6 +1,6 @@
1
- import React from 'react';
2
- declare type Props = {
3
- className: string;
4
- };
5
- declare const Conversation: React.FC<Props>;
6
- export default Conversation;
1
+ import React from 'react';
2
+ declare type Props = {
3
+ className: string;
4
+ };
5
+ declare const Conversation: React.FC<Props>;
6
+ export default Conversation;
@@ -1,32 +1,43 @@
1
- import { Container } from '@webprovisions/platform';
2
- import { ConversationMessage, ConversationMessageType } from '../../conversation-controller';
3
- import { ConversationMessageContent, ConversationMessageSender } from '../../types';
4
- export declare type BundledConversationMessage = {
5
- timestamp: number;
6
- content: [BundledMessageContent];
7
- sender: ConversationMessageSender;
8
- type: ConversationMessageType;
9
- };
10
- declare type BundledMessageContent = {
11
- key: string;
12
- } & ConversationMessageContent;
13
- export declare type ConversationContent = {
14
- loading: boolean;
15
- typingActors: ConversationMessageSender[];
16
- messages: ConversationMessage[];
17
- };
18
- export declare type ConversationComponentProperties = {
19
- providers: string[];
20
- messages: BundledConversationMessage[];
21
- loading: boolean;
22
- inputPlaceholder: string;
23
- inputDisabled: boolean;
24
- inputHidden: boolean;
25
- inputMultiline: boolean;
26
- userLabel: string;
27
- avatarSize: string;
28
- typingActors: any[];
29
- sendButtonLabel: string;
30
- };
31
- declare const ConversationComponent: (container: Container) => Promise<void>;
32
- export default ConversationComponent;
1
+ import { Container } from '@webprovisions/platform';
2
+ import { ConversationMessage, ConversationMessageType } from '../../conversation-controller';
3
+ import { ConversationMessageContent, ConversationMessageSender } from '../../types';
4
+ export declare type BundledConversationMessage = {
5
+ timestamp: number;
6
+ content: [BundledMessageContent];
7
+ sender: ConversationMessageSender;
8
+ type: ConversationMessageType;
9
+ };
10
+ declare type BundledMessageContent = {
11
+ key: string;
12
+ } & ConversationMessageContent;
13
+ export declare type ConversationContent = {
14
+ loading: boolean;
15
+ typingActors: ConversationMessageSender[];
16
+ messages: ConversationMessage[];
17
+ };
18
+ export declare type ConversationComponentProperties = {
19
+ providers: string[];
20
+ messages: BundledConversationMessage[];
21
+ overlay?: {
22
+ conversation: boolean;
23
+ secondary: boolean;
24
+ };
25
+ overlayConversationHeader?: string;
26
+ overlayConversationCloseLabel?: string;
27
+ loading: boolean;
28
+ inputPlaceholder: string;
29
+ inputDisabled: boolean;
30
+ inputHidden: boolean;
31
+ inputMultiline: boolean;
32
+ userLabel: string;
33
+ avatarSize: string;
34
+ typingActors: any[];
35
+ sendButtonLabel: string;
36
+ secondaryAction?: {
37
+ icon?: string;
38
+ action: string;
39
+ label: string;
40
+ };
41
+ };
42
+ export declare const ConversationComponent: (container: Container) => Promise<void>;
43
+ export {};
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const ConversationContent: React.FC;
@@ -1,6 +1,6 @@
1
- import React from 'react';
2
- declare type Props = {
3
- className?: string;
4
- };
5
- declare const ConversationInput: React.FC<Props>;
6
- export default ConversationInput;
1
+ import React from 'react';
2
+ declare type Props = {
3
+ className?: string;
4
+ };
5
+ declare const ConversationInput: React.FC<Props>;
6
+ export default ConversationInput;
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { ConversationMessageSender } from '../../../types';
3
+ declare type Props = {
4
+ className?: string;
5
+ agentData?: ConversationMessageSender;
6
+ boxed?: boolean;
7
+ };
8
+ declare const ConversationLoader: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>>;
9
+ export default ConversationLoader;
@@ -0,0 +1,8 @@
1
+ import { DispatchAction } from '@telia-ace/widget-ui';
2
+ import { FC } from 'react';
3
+ import { ButtonListProperties } from '../../../../types';
4
+ declare type Props = {
5
+ dispatch: DispatchAction;
6
+ } & ButtonListProperties;
7
+ export declare const ButtonList: FC<Props>;
8
+ export {};
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ declare type Props = {
3
+ type: string;
4
+ content?: {
5
+ [key: string]: any;
6
+ };
7
+ };
8
+ export declare const Custom: React.FC<Props>;
9
+ export {};
@@ -0,0 +1,5 @@
1
+ import { FC } from 'react';
2
+ import { HtmlProperties } from '../../../../types';
3
+ declare type Props = HtmlProperties;
4
+ export declare const Html: FC<Props>;
5
+ export {};
@@ -0,0 +1,8 @@
1
+ import { DispatchAction } from '@telia-ace/widget-ui';
2
+ import { FC } from 'react';
3
+ import { LinkListProperties } from '../../../../types';
4
+ declare type Props = {
5
+ dispatch: DispatchAction;
6
+ } & LinkListProperties;
7
+ export declare const LinkList: FC<Props>;
8
+ export {};
@@ -0,0 +1,2 @@
1
+ import { FC } from 'react';
2
+ export declare const Separator: FC;
@@ -0,0 +1,6 @@
1
+ import { FC } from 'react';
2
+ declare type Props = {
3
+ text: string;
4
+ };
5
+ export declare const Text: FC<Props>;
6
+ export {};
@@ -0,0 +1,8 @@
1
+ import { DispatchAction } from '@telia-ace/widget-ui';
2
+ import { FC } from 'react';
3
+ import { VideoRequestProperties } from '../../../../types';
4
+ declare type Props = {
5
+ dispatch: DispatchAction;
6
+ } & VideoRequestProperties;
7
+ export declare const VideoRequest: FC<Props>;
8
+ export {};
@@ -1,11 +1,11 @@
1
- import React from 'react';
2
- import { ConversationMessageSender } from '../../../types';
3
- declare type Props = {
4
- className?: string;
5
- children: any;
6
- sender: ConversationMessageSender;
7
- timestamp: number | null;
8
- };
9
- declare const AgentMessage: React.FC<Props>;
10
- export declare const StyledAgentMessage: import("styled-components").StyledComponent<"div", any, any, never>;
11
- export default AgentMessage;
1
+ import React from 'react';
2
+ import { ConversationMessageSender } from '../../../../types';
3
+ declare type Props = {
4
+ className?: string;
5
+ children: any;
6
+ sender: ConversationMessageSender;
7
+ timestamp: number | null;
8
+ };
9
+ declare const AgentMessage: React.FC<Props>;
10
+ export declare const StyledAgentMessage: import("styled-components").StyledComponent<"div", any, any, never>;
11
+ export default AgentMessage;
@@ -1,5 +1,4 @@
1
- export { default as AgentMessage } from './agent';
2
- export { default as CustomMessage } from './custom';
3
- export { default as SystemMessage } from './system';
4
- export { default as Timestamp } from './timestamp';
5
- export { default as UserMessage } from './user';
1
+ export { default as AgentMessage } from './agent';
2
+ export { default as SystemMessage } from './system';
3
+ export { default as Timestamp } from './timestamp';
4
+ export { default as UserMessage } from './user';
@@ -0,0 +1,9 @@
1
+ import { FC } from 'react';
2
+ import { DispatchAction } from '@telia-ace/widget-ui';
3
+ import { ConverstationMessageItem } from '../../../../types';
4
+ declare type Props = {
5
+ items: ConverstationMessageItem<any>[];
6
+ dispatch: DispatchAction;
7
+ };
8
+ export declare const MessageList: FC<Props>;
9
+ export {};
@@ -1,12 +1,12 @@
1
- import React from 'react';
2
- export declare type Props = {
3
- className?: string;
4
- timestamp: number;
5
- discrete?: boolean;
6
- fullWidth?: boolean;
7
- children: any;
8
- };
9
- declare const SystemMessage: React.FC<Props>;
10
- export declare const StyledSystemMessage: import("styled-components").StyledComponent<"div", any, any, never>;
11
- export declare const Discrete: import("styled-components").StyledComponent<"div", any, {}, never>;
12
- export default SystemMessage;
1
+ import React from 'react';
2
+ export declare type Props = {
3
+ className?: string;
4
+ timestamp: number;
5
+ discrete?: boolean;
6
+ fullWidth?: boolean;
7
+ children: any;
8
+ };
9
+ declare const SystemMessage: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>>;
10
+ export declare const StyledSystemMessage: import("styled-components").StyledComponent<"div", any, any, never>;
11
+ export declare const Discrete: import("styled-components").StyledComponent<"div", any, {}, never>;
12
+ export default SystemMessage;
@@ -1,8 +1,8 @@
1
- import React from 'react';
2
- declare type Props = {
3
- className?: string;
4
- name?: string;
5
- timestamp?: number | null;
6
- };
7
- declare const Timestamp: React.FC<Props>;
8
- export default Timestamp;
1
+ import React from 'react';
2
+ declare type Props = {
3
+ className?: string;
4
+ name?: string;
5
+ timestamp?: number | null;
6
+ };
7
+ declare const Timestamp: React.FC<Props>;
8
+ export default Timestamp;
@@ -1,8 +1,8 @@
1
- import React from 'react';
2
- export declare type Props = {
3
- className?: string;
4
- timestamp: number;
5
- children: any;
6
- };
7
- declare const UserMessage: React.FC<Props>;
8
- export default UserMessage;
1
+ import React from 'react';
2
+ export declare type Props = {
3
+ className?: string;
4
+ timestamp: number;
5
+ children: any;
6
+ };
7
+ declare const UserMessage: React.FC<Props>;
8
+ export default UserMessage;
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { BundledConversationMessage } from '../plugin';
3
+ export declare const ConversationMessage: React.ForwardRefExoticComponent<{
4
+ className?: string | undefined;
5
+ } & BundledConversationMessage & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,13 @@
1
+ import { DispatchAction } from '@telia-ace/widget-ui';
2
+ import { FC } from 'react';
3
+ declare type OverlayOutletProps = {
4
+ dispatch: DispatchAction;
5
+ };
6
+ export declare const OverlayOutlet: FC<OverlayOutletProps>;
7
+ declare type ConversationOverlayProps = {
8
+ dispatch: DispatchAction;
9
+ header?: string;
10
+ buttonLabel?: string;
11
+ };
12
+ export declare const ConversationOverlayOutlet: FC<ConversationOverlayProps>;
13
+ export {};
@@ -0,0 +1,31 @@
1
+ /// <reference types="react" />
2
+ export declare const Avatar: import("styled-components").StyledComponent<"div", any, any, never>;
3
+ export declare const LoaderAnimation: import("styled-components").Keyframes;
4
+ export declare const Loader: import("styled-components").StyledComponent<"div", any, {}, never>;
5
+ export declare const ContentBundle: import("styled-components").StyledComponent<"div", any, {}, never>;
6
+ export declare const MessageTitle: import("styled-components").StyledComponent<import("react").FC<import("@telia-ace/widget-ui").TypographyProps>, any, {}, never>;
7
+ export declare const MessageContainer: import("styled-components").StyledComponent<"div", any, {
8
+ left?: boolean | undefined;
9
+ center?: boolean | undefined;
10
+ right?: boolean | undefined;
11
+ }, never>;
12
+ export declare type Stacked = 'first' | 'last' | 'middle';
13
+ export declare const MessageContent: import("styled-components").StyledComponent<"div", any, {
14
+ user?: boolean | undefined;
15
+ fullWidth?: boolean | undefined;
16
+ stacked?: Stacked | undefined;
17
+ padded?: boolean | undefined;
18
+ }, never>;
19
+ export declare const MessageContentPart: import("styled-components").StyledComponent<"div", any, {}, never>;
20
+ export declare const messageContentPadding: import("styled-components").FlattenInterpolation<import("styled-components").ThemeProps<any>>;
21
+ export declare const StyledForm: import("styled-components").StyledComponent<import("react").FC<{
22
+ data?: import("@telia-ace/widget-forms").FormData | null | undefined;
23
+ className?: string | undefined;
24
+ onChange?: Function | undefined;
25
+ autoFocus?: boolean | undefined;
26
+ schema: import("@telia-ace/widget-forms/dist/form").FormSchema;
27
+ layout: import("@telia-ace/widget-forms/dist/form").FormLayout;
28
+ }>, any, {}, never>;
29
+ export declare const StyledHtml: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<Pick<import("@telia-ace/widget-ui").HtmlProps, "key" | "html" | keyof import("react").HTMLAttributes<HTMLDivElement> | "htmlParseInstruction"> & import("react").RefAttributes<HTMLDivElement>>, any, any, never>;
30
+ export declare const StyledActionList: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<Pick<import("@telia-ace/widget-ui").ListProps, "key" | "items" | keyof import("react").HTMLAttributes<HTMLUListElement> | "renderItem" | "renderLi"> & import("react").RefAttributes<HTMLUListElement>>, any, {}, never>;
31
+ export declare const StyledActionButton: import("styled-components").StyledComponent<"button", any, {}, never>;
@@ -1,19 +1,18 @@
1
- import { Symbol } from '@telia-ace/widget-ui';
2
- import { Container } from '@webprovisions/platform';
3
- export declare enum ButtonMode {
4
- flat = "flat",
5
- flashing = "flashing",
6
- flashingGradient = "flashingGradient"
7
- }
8
- export declare type ReturnButtonProps = {
9
- label: string;
10
- active: boolean;
11
- mode: ButtonMode;
12
- alert?: {
13
- symbol?: Symbol;
14
- show?: boolean;
15
- label?: string;
16
- };
17
- };
18
- declare const ConversationReturnButtonComponent: (container: Container) => Promise<void>;
19
- export default ConversationReturnButtonComponent;
1
+ import { Symbol } from '@telia-ace/widget-ui';
2
+ import { Container } from '@webprovisions/platform';
3
+ export declare enum ButtonMode {
4
+ flat = "flat",
5
+ flashing = "flashing",
6
+ flashingGradient = "flashingGradient"
7
+ }
8
+ export declare type ReturnButtonProps = {
9
+ label: string;
10
+ active: boolean;
11
+ mode: ButtonMode;
12
+ alert?: {
13
+ symbol?: Symbol;
14
+ show?: boolean;
15
+ label?: string;
16
+ };
17
+ };
18
+ export declare const ConversationReturnButtonComponent: (container: Container) => Promise<void>;
@@ -1,6 +1,6 @@
1
- import React from 'react';
2
- declare type Props = {
3
- className: string;
4
- };
5
- declare const ReturnButton: React.SFC<Props>;
6
- export default ReturnButton;
1
+ import React from 'react';
2
+ declare type Props = {
3
+ className: string;
4
+ };
5
+ declare const ReturnButton: React.FC<Props>;
6
+ export default ReturnButton;
@@ -1,88 +1,88 @@
1
- import { Container, EventListener, EventManager } from '@webprovisions/platform';
2
- import { ConversationProvider } from './conversation-provider';
3
- import { ConversationMessageContent, ConversationMessageSender, ConversationMessageSettings, ConversationMessageUpdateSettings, ConverstationMessageItem, NormalizedMessageSettings } from './types';
4
- import { User } from './user';
5
- export declare type ValidateHandler = (formValues: {
6
- [key: string]: any;
7
- }) => Promise<any>;
8
- export declare type SubmitHandler = (formValues: {
9
- [key: string]: any;
10
- }) => Promise<any>;
11
- export declare type Print = (content: string | ConversationMessageContent) => ConversationEntry;
12
- export declare type FormHandlers = {
13
- [key: string]: FormHandler;
14
- };
15
- export declare type FormHandler = {
16
- validate?: ValidateHandler;
17
- submit: SubmitHandler;
18
- };
19
- export declare type CancelLoaderDelegate = () => void;
20
- export declare class ConversationEntry {
21
- private writer;
22
- constructor(writer: EntryWriter);
23
- update(content: string | ConversationMessageUpdateSettings | ConverstationMessageItem<any> | ConverstationMessageItem<any>[]): void;
24
- remove(): void;
25
- private getNormalizedSettings;
26
- }
27
- export declare enum ConversationMessageType {
28
- User = "user",
29
- Agent = "agent",
30
- System = "system"
31
- }
32
- export declare type ConversationMessage = {
33
- key: string;
34
- timestamp: number | null;
35
- content: ConversationMessageContent | null;
36
- sender: ConversationMessageSender | null;
37
- type: ConversationMessageType;
38
- };
39
- export declare type EntryWriter = (content: ConversationMessageUpdateSettings | null) => void;
40
- export declare const getNormalizedMessageSettings: (settings: string | ConversationMessageSettings | ConverstationMessageItem<any> | ConverstationMessageItem<any>[]) => NormalizedMessageSettings;
41
- /**
42
- * Manages the stream of messages inside a `ConversationComponent` and provides external read-write
43
- * access to it as well as exposing emitted actions.
44
- */
45
- export declare class ConversationController {
46
- container: Container;
47
- id: string;
48
- formHandlers: FormHandlers;
49
- /**
50
- * Represents the current end user.
51
- */
52
- user: User;
53
- events: EventManager;
54
- providers: string[];
55
- active: boolean;
56
- private registeredProviders;
57
- private loaders;
58
- private componentMounted;
59
- messages: ConversationMessage[];
60
- private typingActors;
61
- constructor(container: Container, id: string);
62
- setProviders(providers: string[]): void;
63
- createProvider(name: string): ConversationProvider;
64
- providerIndex(name: string): number;
65
- dispose(): void;
66
- onDispose(fn: EventListener): import("@webprovisions/platform").EventSubscriptionCancellation;
67
- onStarted(fn: EventListener): import("@webprovisions/platform").EventSubscriptionCancellation;
68
- disposeProvider(target: ConversationProvider): void;
69
- onProvidersChange(fn: EventListener): import("@webprovisions/platform").EventSubscriptionCancellation;
70
- setComponentMountedState(mounted: boolean): void;
71
- getComponentMountedState(): boolean;
72
- onUnreadMessage(fn: EventListener): import("@webprovisions/platform").EventSubscriptionCancellation;
73
- createEntry(key: string, content: ConversationMessageContent, type: ConversationMessageType, sender?: ConversationMessageSender, timestamp?: number | null): ConversationEntry;
74
- print: (settings: string | ConversationMessageSettings) => ConversationEntry;
75
- update(): void;
76
- getMessageStream(): {
77
- messages: ConversationMessage[];
78
- loading: boolean;
79
- typingActors: ConversationMessageSender[];
80
- };
81
- setTypingState(sender: ConversationMessageSender, type?: ConversationMessageType): () => void;
82
- /**
83
- * Displays a loader in the conversation.
84
- */
85
- loader(): CancelLoaderDelegate;
86
- submitForm(key: string, handler: SubmitHandler): void;
87
- validateForm(key: string, handler: ValidateHandler): void;
88
- }
1
+ import { Container, EventListener, EventManager } from '@webprovisions/platform';
2
+ import { ConversationProvider } from './conversation-provider';
3
+ import { ConversationMessageContent, ConversationMessageSender, ConversationMessageSettings, ConversationMessageUpdateSettings, ConverstationMessageItem, NormalizedMessageSettings } from './types';
4
+ import { User } from './user';
5
+ export declare type ValidateHandler = (formValues: {
6
+ [key: string]: any;
7
+ }) => Promise<any>;
8
+ export declare type SubmitHandler = (formValues: {
9
+ [key: string]: any;
10
+ }) => Promise<any>;
11
+ export declare type Print = (content: string | ConversationMessageContent) => ConversationEntry;
12
+ export declare type FormHandlers = {
13
+ [key: string]: FormHandler;
14
+ };
15
+ export declare type FormHandler = {
16
+ validate?: ValidateHandler;
17
+ submit: SubmitHandler;
18
+ };
19
+ export declare type CancelLoaderDelegate = () => void;
20
+ export declare class ConversationEntry {
21
+ private writer;
22
+ constructor(writer: EntryWriter);
23
+ update(content: string | ConversationMessageUpdateSettings | ConverstationMessageItem<any> | ConverstationMessageItem<any>[]): void;
24
+ remove(): void;
25
+ private getNormalizedSettings;
26
+ }
27
+ export declare enum ConversationMessageType {
28
+ User = "user",
29
+ Agent = "agent",
30
+ System = "system"
31
+ }
32
+ export declare type ConversationMessage = {
33
+ key: string;
34
+ timestamp: number | null;
35
+ content: ConversationMessageContent | null;
36
+ sender: ConversationMessageSender | null;
37
+ type: ConversationMessageType;
38
+ };
39
+ export declare type EntryWriter = (content: ConversationMessageUpdateSettings | null) => void;
40
+ export declare const getNormalizedMessageSettings: (settings: string | ConversationMessageSettings | ConverstationMessageItem<any> | ConverstationMessageItem<any>[]) => NormalizedMessageSettings;
41
+ /**
42
+ * Manages the stream of messages inside a `ConversationComponent` and provides external read-write
43
+ * access to it as well as exposing emitted actions.
44
+ */
45
+ export declare class ConversationController {
46
+ container: Container;
47
+ id: string;
48
+ formHandlers: FormHandlers;
49
+ /**
50
+ * Represents the current end user.
51
+ */
52
+ user: User;
53
+ events: EventManager;
54
+ providers: string[];
55
+ active: boolean;
56
+ private registeredProviders;
57
+ private loaders;
58
+ private componentMounted;
59
+ messages: ConversationMessage[];
60
+ private typingActors;
61
+ constructor(container: Container, id: string);
62
+ setProviders(providers: string[]): void;
63
+ createProvider(name: string): ConversationProvider;
64
+ providerIndex(name: string): number;
65
+ dispose(): void;
66
+ onDispose(fn: EventListener): import("@webprovisions/platform").EventSubscriptionCancellation;
67
+ onStarted(fn: EventListener): import("@webprovisions/platform").EventSubscriptionCancellation;
68
+ disposeProvider(target: ConversationProvider): void;
69
+ onProvidersChange(fn: EventListener): import("@webprovisions/platform").EventSubscriptionCancellation;
70
+ setComponentMountedState(mounted: boolean): void;
71
+ getComponentMountedState(): boolean;
72
+ onUnreadMessage(fn: EventListener): import("@webprovisions/platform").EventSubscriptionCancellation;
73
+ createEntry(key: string, content: ConversationMessageContent, type: ConversationMessageType, sender?: ConversationMessageSender, timestamp?: number | null): ConversationEntry;
74
+ print: (settings: string | ConversationMessageSettings) => ConversationEntry;
75
+ update(): void;
76
+ getMessageStream(): {
77
+ messages: ConversationMessage[];
78
+ loading: boolean;
79
+ typingActors: ConversationMessageSender[];
80
+ };
81
+ setTypingState(sender: ConversationMessageSender, type?: ConversationMessageType): () => void;
82
+ /**
83
+ * Displays a loader in the conversation.
84
+ */
85
+ loader(): CancelLoaderDelegate;
86
+ submitForm(key: string, handler: SubmitHandler): void;
87
+ validateForm(key: string, handler: ValidateHandler): void;
88
+ }
@@ -1,7 +1,7 @@
1
- import { ConversationPlatform } from '.';
2
- export declare class ConversationFormAdapter {
3
- private platform;
4
- constructor(platform: ConversationPlatform);
5
- submit: (invoke: any, cancel: any) => (contactMethod: any) => Promise<any>;
6
- updateContactMethod: (contactMethod: any, errors?: any) => void;
7
- }
1
+ import { ConversationPlatform } from '.';
2
+ export declare class ConversationFormAdapter {
3
+ private platform;
4
+ constructor(platform: ConversationPlatform);
5
+ submit: (invoke: any, cancel: any) => (contactMethod: any) => Promise<any>;
6
+ updateContactMethod: (contactMethod: any, errors?: any) => void;
7
+ }