turbodesk-livechat-react-native 0.1.0-alpha.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 (171) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +91 -0
  3. package/dist/api/conversation-api.d.ts +16 -0
  4. package/dist/api/conversation-api.d.ts.map +1 -0
  5. package/dist/api/conversation-api.js +44 -0
  6. package/dist/api/conversation-api.js.map +1 -0
  7. package/dist/api/file-api.d.ts +5 -0
  8. package/dist/api/file-api.d.ts.map +1 -0
  9. package/dist/api/file-api.js +15 -0
  10. package/dist/api/file-api.js.map +1 -0
  11. package/dist/api/widget-api.d.ts +4 -0
  12. package/dist/api/widget-api.d.ts.map +1 -0
  13. package/dist/api/widget-api.js +15 -0
  14. package/dist/api/widget-api.js.map +1 -0
  15. package/dist/axios/axios.d.ts +32 -0
  16. package/dist/axios/axios.d.ts.map +1 -0
  17. package/dist/axios/axios.js +120 -0
  18. package/dist/axios/axios.js.map +1 -0
  19. package/dist/core/config.d.ts +17 -0
  20. package/dist/core/config.d.ts.map +1 -0
  21. package/dist/core/config.js +42 -0
  22. package/dist/core/config.js.map +1 -0
  23. package/dist/core/http-client.d.ts +33 -0
  24. package/dist/core/http-client.d.ts.map +1 -0
  25. package/dist/core/http-client.js +104 -0
  26. package/dist/core/http-client.js.map +1 -0
  27. package/dist/core/identity.d.ts +7 -0
  28. package/dist/core/identity.d.ts.map +1 -0
  29. package/dist/core/identity.js +62 -0
  30. package/dist/core/identity.js.map +1 -0
  31. package/dist/core/visitor-params.d.ts +15 -0
  32. package/dist/core/visitor-params.d.ts.map +1 -0
  33. package/dist/core/visitor-params.js +45 -0
  34. package/dist/core/visitor-params.js.map +1 -0
  35. package/dist/hooks/use-conversations.d.ts +12 -0
  36. package/dist/hooks/use-conversations.d.ts.map +1 -0
  37. package/dist/hooks/use-conversations.js +177 -0
  38. package/dist/hooks/use-conversations.js.map +1 -0
  39. package/dist/hooks/use-live-chat.d.ts +30 -0
  40. package/dist/hooks/use-live-chat.d.ts.map +1 -0
  41. package/dist/hooks/use-live-chat.js +52 -0
  42. package/dist/hooks/use-live-chat.js.map +1 -0
  43. package/dist/hooks/use-messages.d.ts +11 -0
  44. package/dist/hooks/use-messages.d.ts.map +1 -0
  45. package/dist/hooks/use-messages.js +185 -0
  46. package/dist/hooks/use-messages.js.map +1 -0
  47. package/dist/hooks/use-send-message.d.ts +22 -0
  48. package/dist/hooks/use-send-message.d.ts.map +1 -0
  49. package/dist/hooks/use-send-message.js +125 -0
  50. package/dist/hooks/use-send-message.js.map +1 -0
  51. package/dist/index.d.ts +49 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +97 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/navigation/LiveChatPanel.d.ts +5 -0
  56. package/dist/navigation/LiveChatPanel.d.ts.map +1 -0
  57. package/dist/navigation/LiveChatPanel.js +81 -0
  58. package/dist/navigation/LiveChatPanel.js.map +1 -0
  59. package/dist/navigation/panel-router-context.d.ts +22 -0
  60. package/dist/navigation/panel-router-context.d.ts.map +1 -0
  61. package/dist/navigation/panel-router-context.js +42 -0
  62. package/dist/navigation/panel-router-context.js.map +1 -0
  63. package/dist/navigation/router-types.d.ts +2 -0
  64. package/dist/navigation/router-types.d.ts.map +1 -0
  65. package/dist/navigation/router-types.js +3 -0
  66. package/dist/navigation/router-types.js.map +1 -0
  67. package/dist/provider/LiveChatContext.d.ts +4 -0
  68. package/dist/provider/LiveChatContext.d.ts.map +1 -0
  69. package/dist/provider/LiveChatContext.js +35 -0
  70. package/dist/provider/LiveChatContext.js.map +1 -0
  71. package/dist/provider/LiveChatProvider.d.ts +3 -0
  72. package/dist/provider/LiveChatProvider.d.ts.map +1 -0
  73. package/dist/provider/LiveChatProvider.js +308 -0
  74. package/dist/provider/LiveChatProvider.js.map +1 -0
  75. package/dist/provider/types.d.ts +42 -0
  76. package/dist/provider/types.d.ts.map +1 -0
  77. package/dist/provider/types.js +3 -0
  78. package/dist/provider/types.js.map +1 -0
  79. package/dist/realtime/ws-client.d.ts +51 -0
  80. package/dist/realtime/ws-client.d.ts.map +1 -0
  81. package/dist/realtime/ws-client.js +322 -0
  82. package/dist/realtime/ws-client.js.map +1 -0
  83. package/dist/ui/components/AssigneeAvatar.d.ts +12 -0
  84. package/dist/ui/components/AssigneeAvatar.d.ts.map +1 -0
  85. package/dist/ui/components/AssigneeAvatar.js +58 -0
  86. package/dist/ui/components/AssigneeAvatar.js.map +1 -0
  87. package/dist/ui/components/Avatar.d.ts +10 -0
  88. package/dist/ui/components/Avatar.d.ts.map +1 -0
  89. package/dist/ui/components/Avatar.js +76 -0
  90. package/dist/ui/components/Avatar.js.map +1 -0
  91. package/dist/ui/components/ConversationHeader.d.ts +10 -0
  92. package/dist/ui/components/ConversationHeader.d.ts.map +1 -0
  93. package/dist/ui/components/ConversationHeader.js +90 -0
  94. package/dist/ui/components/ConversationHeader.js.map +1 -0
  95. package/dist/ui/components/ConversationListScreen.d.ts +9 -0
  96. package/dist/ui/components/ConversationListScreen.d.ts.map +1 -0
  97. package/dist/ui/components/ConversationListScreen.js +350 -0
  98. package/dist/ui/components/ConversationListScreen.js.map +1 -0
  99. package/dist/ui/components/ConversationScreen.d.ts +8 -0
  100. package/dist/ui/components/ConversationScreen.d.ts.map +1 -0
  101. package/dist/ui/components/ConversationScreen.js +235 -0
  102. package/dist/ui/components/ConversationScreen.js.map +1 -0
  103. package/dist/ui/components/HomeScreen.d.ts +6 -0
  104. package/dist/ui/components/HomeScreen.d.ts.map +1 -0
  105. package/dist/ui/components/HomeScreen.js +133 -0
  106. package/dist/ui/components/HomeScreen.js.map +1 -0
  107. package/dist/ui/components/LivechatMessageRenderer.d.ts +17 -0
  108. package/dist/ui/components/LivechatMessageRenderer.d.ts.map +1 -0
  109. package/dist/ui/components/LivechatMessageRenderer.js +122 -0
  110. package/dist/ui/components/LivechatMessageRenderer.js.map +1 -0
  111. package/dist/ui/components/LogMessage.d.ts +5 -0
  112. package/dist/ui/components/LogMessage.d.ts.map +1 -0
  113. package/dist/ui/components/LogMessage.js +83 -0
  114. package/dist/ui/components/LogMessage.js.map +1 -0
  115. package/dist/ui/components/MessageBubble.d.ts +15 -0
  116. package/dist/ui/components/MessageBubble.d.ts.map +1 -0
  117. package/dist/ui/components/MessageBubble.js +84 -0
  118. package/dist/ui/components/MessageBubble.js.map +1 -0
  119. package/dist/ui/components/MessageComposer.d.ts +31 -0
  120. package/dist/ui/components/MessageComposer.d.ts.map +1 -0
  121. package/dist/ui/components/MessageComposer.js +295 -0
  122. package/dist/ui/components/MessageComposer.js.map +1 -0
  123. package/dist/ui/components/WsStatusStrip.d.ts +2 -0
  124. package/dist/ui/components/WsStatusStrip.d.ts.map +1 -0
  125. package/dist/ui/components/WsStatusStrip.js +103 -0
  126. package/dist/ui/components/WsStatusStrip.js.map +1 -0
  127. package/dist/ui/icons.d.ts +22 -0
  128. package/dist/ui/icons.d.ts.map +1 -0
  129. package/dist/ui/icons.js +71 -0
  130. package/dist/ui/icons.js.map +1 -0
  131. package/dist/ui/theme.d.ts +72 -0
  132. package/dist/ui/theme.d.ts.map +1 -0
  133. package/dist/ui/theme.js +170 -0
  134. package/dist/ui/theme.js.map +1 -0
  135. package/docs/backend-contract.md +392 -0
  136. package/docs/migration-notes.md +32 -0
  137. package/package.json +60 -0
  138. package/src/api/conversation-api.ts +71 -0
  139. package/src/api/file-api.ts +14 -0
  140. package/src/api/widget-api.ts +12 -0
  141. package/src/axios/axios.ts +159 -0
  142. package/src/core/config.ts +54 -0
  143. package/src/core/http-client.ts +136 -0
  144. package/src/core/identity.ts +68 -0
  145. package/src/core/visitor-params.ts +48 -0
  146. package/src/hooks/use-conversations.ts +181 -0
  147. package/src/hooks/use-live-chat.ts +84 -0
  148. package/src/hooks/use-messages.ts +188 -0
  149. package/src/hooks/use-send-message.ts +159 -0
  150. package/src/index.ts +114 -0
  151. package/src/navigation/LiveChatPanel.tsx +118 -0
  152. package/src/navigation/panel-router-context.tsx +89 -0
  153. package/src/navigation/router-types.ts +1 -0
  154. package/src/provider/LiveChatContext.ts +33 -0
  155. package/src/provider/LiveChatProvider.tsx +380 -0
  156. package/src/provider/types.ts +57 -0
  157. package/src/realtime/ws-client.ts +369 -0
  158. package/src/types/react-native-svg.d.ts +10 -0
  159. package/src/ui/components/AssigneeAvatar.tsx +102 -0
  160. package/src/ui/components/Avatar.tsx +110 -0
  161. package/src/ui/components/ConversationHeader.tsx +202 -0
  162. package/src/ui/components/ConversationListScreen.tsx +454 -0
  163. package/src/ui/components/ConversationScreen.tsx +362 -0
  164. package/src/ui/components/HomeScreen.tsx +278 -0
  165. package/src/ui/components/LivechatMessageRenderer.tsx +268 -0
  166. package/src/ui/components/LogMessage.tsx +88 -0
  167. package/src/ui/components/MessageBubble.tsx +148 -0
  168. package/src/ui/components/MessageComposer.tsx +461 -0
  169. package/src/ui/components/WsStatusStrip.tsx +123 -0
  170. package/src/ui/icons.tsx +111 -0
  171. package/src/ui/theme.ts +237 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiveChatPanel.js","sourceRoot":"","sources":["../../src/navigation/LiveChatPanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { type ReactNode } from "react";
2
+ import type { WidgetPanelView } from "./router-types";
3
+ export type { WidgetPanelView } from "./router-types";
4
+ export type PanelRouterContextValue = {
5
+ view: WidgetPanelView;
6
+ conversationId: string | null;
7
+ goHome: (opts?: {
8
+ replace?: boolean;
9
+ }) => void;
10
+ goConversation: (conversationId?: string | null, opts?: {
11
+ replace?: boolean;
12
+ }) => void;
13
+ goPreviousChats: (opts?: {
14
+ replace?: boolean;
15
+ }) => void;
16
+ goBack: () => void;
17
+ };
18
+ export declare function PanelRouterProvider({ children }: {
19
+ children: ReactNode;
20
+ }): import("react/jsx-runtime").JSX.Element;
21
+ export declare function usePanelRouter(): PanelRouterContextValue;
22
+ //# sourceMappingURL=panel-router-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panel-router-context.d.ts","sourceRoot":"","sources":["../../src/navigation/panel-router-context.tsx"],"names":[],"mappings":"AAAA,OAAc,EAOZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,eAAe,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAC/C,cAAc,EAAE,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACvF,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACxD,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC;AASF,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAqDxE;AAED,wBAAgB,cAAc,IAAI,uBAAuB,CAIxD"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PanelRouterProvider = PanelRouterProvider;
4
+ exports.usePanelRouter = usePanelRouter;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const react_1 = require("react");
7
+ const PanelRouterContext = (0, react_1.createContext)(null);
8
+ function PanelRouterProvider({ children }) {
9
+ const [view, setView] = (0, react_1.useState)("home");
10
+ const [conversationId, setConversationId] = (0, react_1.useState)(null);
11
+ const stack = (0, react_1.useRef)([{ view: "home", conversationId: null }]);
12
+ const navigate = (0, react_1.useCallback)((entry, replace) => {
13
+ if (replace) {
14
+ stack.current[stack.current.length - 1] = entry;
15
+ }
16
+ else {
17
+ stack.current.push(entry);
18
+ }
19
+ setView(entry.view);
20
+ setConversationId(entry.conversationId);
21
+ }, []);
22
+ const goHome = (0, react_1.useCallback)((opts) => { var _a; return navigate({ view: "home", conversationId: null }, (_a = opts === null || opts === void 0 ? void 0 : opts.replace) !== null && _a !== void 0 ? _a : false); }, [navigate]);
23
+ const goConversation = (0, react_1.useCallback)((id, opts) => { var _a; return navigate({ view: "conversation", conversationId: id !== null && id !== void 0 ? id : "new" }, (_a = opts === null || opts === void 0 ? void 0 : opts.replace) !== null && _a !== void 0 ? _a : false); }, [navigate]);
24
+ const goPreviousChats = (0, react_1.useCallback)((opts) => { var _a; return navigate({ view: "previousChats", conversationId: null }, (_a = opts === null || opts === void 0 ? void 0 : opts.replace) !== null && _a !== void 0 ? _a : false); }, [navigate]);
25
+ const goBack = (0, react_1.useCallback)(() => {
26
+ if (stack.current.length > 1) {
27
+ stack.current.pop();
28
+ const prev = stack.current[stack.current.length - 1];
29
+ setView(prev.view);
30
+ setConversationId(prev.conversationId);
31
+ }
32
+ }, []);
33
+ const value = (0, react_1.useMemo)(() => ({ view, conversationId, goHome, goConversation, goPreviousChats, goBack }), [view, conversationId, goHome, goConversation, goPreviousChats, goBack]);
34
+ return ((0, jsx_runtime_1.jsx)(PanelRouterContext.Provider, { value: value, children: children }));
35
+ }
36
+ function usePanelRouter() {
37
+ const ctx = (0, react_1.useContext)(PanelRouterContext);
38
+ if (!ctx)
39
+ throw new Error("usePanelRouter must be used within PanelRouterProvider");
40
+ return ctx;
41
+ }
42
+ //# sourceMappingURL=panel-router-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panel-router-context.js","sourceRoot":"","sources":["../../src/navigation/panel-router-context.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export type WidgetPanelView = "home" | "conversation" | "previousChats";
2
+ //# sourceMappingURL=router-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router-types.d.ts","sourceRoot":"","sources":["../../src/navigation/router-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,cAAc,GAAG,eAAe,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=router-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router-types.js","sourceRoot":"","sources":["../../src/navigation/router-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { LiveChatContextValue } from "./types";
2
+ export declare const LiveChatContext: import("react").Context<LiveChatContextValue>;
3
+ export declare function useLiveChatContext(): LiveChatContextValue;
4
+ //# sourceMappingURL=LiveChatContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiveChatContext.d.ts","sourceRoot":"","sources":["../../src/provider/LiveChatContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAGpD,eAAO,MAAM,eAAe,+CAwB1B,CAAC;AAEH,wBAAgB,kBAAkB,IAAI,oBAAoB,CAEzD"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LiveChatContext = void 0;
4
+ exports.useLiveChatContext = useLiveChatContext;
5
+ const react_1 = require("react");
6
+ const theme_1 = require("../ui/theme");
7
+ exports.LiveChatContext = (0, react_1.createContext)({
8
+ widgetId: "",
9
+ userId: "",
10
+ userToken: undefined,
11
+ setToken: () => undefined,
12
+ logout: () => undefined,
13
+ visitorProfile: undefined,
14
+ visitorQueryParams: null,
15
+ widgetConfig: null,
16
+ widgetName: "Chat with us",
17
+ widgetGreeting: "Hi! How can we help you today?",
18
+ embedLoadState: "loading",
19
+ embedLoadError: null,
20
+ totalUnread: 0,
21
+ setTotalUnread: () => undefined,
22
+ isOpen: false,
23
+ open: () => undefined,
24
+ close: () => undefined,
25
+ isVisible: true,
26
+ show: () => undefined,
27
+ hide: () => undefined,
28
+ wsClient: null,
29
+ connectionState: { isConnected: false, isConnecting: false, isAwaitingRetry: false, lastError: null },
30
+ theme: theme_1.defaultTheme,
31
+ });
32
+ function useLiveChatContext() {
33
+ return (0, react_1.useContext)(exports.LiveChatContext);
34
+ }
35
+ //# sourceMappingURL=LiveChatContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiveChatContext.js","sourceRoot":"","sources":["../../src/provider/LiveChatContext.ts"],"names":[],"mappings":";;;AA8BA,gDAEC;AAhCD,iCAAkD;AAElD,uCAA2C;AAE9B,QAAA,eAAe,GAAG,IAAA,qBAAa,EAAuB;IACjE,QAAQ,EAAE,EAAE;IACZ,MAAM,EAAE,EAAE;IACV,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS;IACzB,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS;IACvB,cAAc,EAAE,SAAS;IACzB,kBAAkB,EAAE,IAAI;IACxB,YAAY,EAAE,IAAI;IAClB,UAAU,EAAE,cAAc;IAC1B,cAAc,EAAE,gCAAgC;IAChD,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,IAAI;IACpB,WAAW,EAAE,CAAC;IACd,cAAc,EAAE,GAAG,EAAE,CAAC,SAAS;IAC/B,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS;IACrB,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS;IACtB,SAAS,EAAE,IAAI;IACf,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS;IACrB,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS;IACrB,QAAQ,EAAE,IAAI;IACd,eAAe,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;IACrG,KAAK,EAAE,oBAAY;CACpB,CAAC,CAAC;AAEH,SAAgB,kBAAkB;IAChC,OAAO,IAAA,kBAAU,EAAC,uBAAe,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { LiveChatProviderProps } from "./types";
2
+ export declare function LiveChatProvider({ widgetId: widgetIdProp, apiBaseUrl: apiBaseUrlProp, userId: userIdProp, userToken: userTokenProp, authCallback, visitorProfile, appearance: appearanceProp, useBrandThemingForChat: useBrandThemingProp, theme: themeProp, children, }: LiveChatProviderProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=LiveChatProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiveChatProvider.d.ts","sourceRoot":"","sources":["../../src/provider/LiveChatProvider.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAwB,qBAAqB,EAAE,MAAM,SAAS,CAAC;AA6C3E,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,aAAa,EACxB,YAAY,EACZ,cAAc,EACd,UAAU,EAAE,cAAc,EAC1B,sBAAsB,EAAE,mBAA2B,EACnD,KAAK,EAAE,SAAS,EAChB,QAAQ,GACT,EAAE,qBAAqB,2CA0TvB"}
@@ -0,0 +1,308 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LiveChatProvider = LiveChatProvider;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const react_native_1 = require("react-native");
7
+ const LiveChatContext_1 = require("./LiveChatContext");
8
+ const axios_1 = require("../axios/axios");
9
+ const identity_1 = require("../core/identity");
10
+ const visitor_params_1 = require("../core/visitor-params");
11
+ const widget_api_1 = require("../api/widget-api");
12
+ const conversation_api_1 = require("../api/conversation-api");
13
+ const ws_client_1 = require("../realtime/ws-client");
14
+ const theme_1 = require("../ui/theme");
15
+ function getWidgetName(config) {
16
+ var _a;
17
+ return ((_a = config === null || config === void 0 ? void 0 : config.widgetName) === null || _a === void 0 ? void 0 : _a.trim()) || "Chat with us";
18
+ }
19
+ function getWidgetGreeting(config) {
20
+ var _a, _b;
21
+ const s = config === null || config === void 0 ? void 0 : config.widgetSettings;
22
+ const g = ((_b = (_a = s === null || s === void 0 ? void 0 : s.greetings) !== null && _a !== void 0 ? _a : s === null || s === void 0 ? void 0 : s.greeting) !== null && _b !== void 0 ? _b : "").toString().trim();
23
+ return g || "Hi! How can we help you today?";
24
+ }
25
+ function getWidgetBrandColor(config) {
26
+ var _a, _b;
27
+ const color = (_b = (_a = config === null || config === void 0 ? void 0 : config.widgetSettings) === null || _a === void 0 ? void 0 : _a.brandColor) === null || _b === void 0 ? void 0 : _b.trim();
28
+ return color || null;
29
+ }
30
+ function pickUnread(raw) {
31
+ var _a, _b, _c;
32
+ const body = (_a = raw === null || raw === void 0 ? void 0 : raw.data) !== null && _a !== void 0 ? _a : raw;
33
+ const inner = (_b = body === null || body === void 0 ? void 0 : body.data) !== null && _b !== void 0 ? _b : body;
34
+ const v = (_c = inner === null || inner === void 0 ? void 0 : inner.totalUnread) !== null && _c !== void 0 ? _c : inner === null || inner === void 0 ? void 0 : inner.unread;
35
+ const n = typeof v === "string" ? parseInt(v, 10) : Number(v);
36
+ return Number.isFinite(n) ? n : null;
37
+ }
38
+ function LiveChatProvider({ widgetId: widgetIdProp, apiBaseUrl: apiBaseUrlProp, userId: userIdProp, userToken: userTokenProp, authCallback, visitorProfile, appearance: appearanceProp, useBrandThemingForChat: useBrandThemingProp = false, theme: themeProp, children, }) {
39
+ const systemColorScheme = (0, react_native_1.useColorScheme)();
40
+ const cfg = (0, react_1.useMemo)(() => {
41
+ var _a, _b;
42
+ return ({
43
+ widgetId: (_a = widgetIdProp === null || widgetIdProp === void 0 ? void 0 : widgetIdProp.trim()) !== null && _a !== void 0 ? _a : "",
44
+ apiBaseUrl: (_b = apiBaseUrlProp === null || apiBaseUrlProp === void 0 ? void 0 : apiBaseUrlProp.replace(/\/+$/, "")) !== null && _b !== void 0 ? _b : "",
45
+ });
46
+ }, [widgetIdProp, apiBaseUrlProp]);
47
+ const [userId, setUserId] = (0, react_1.useState)(userIdProp !== null && userIdProp !== void 0 ? userIdProp : "");
48
+ const [userIdReady, setUserIdReady] = (0, react_1.useState)(!!((userIdProp === null || userIdProp === void 0 ? void 0 : userIdProp.trim()) || (userTokenProp === null || userTokenProp === void 0 ? void 0 : userTokenProp.trim())));
49
+ const [userToken, setUserTokenState] = (0, react_1.useState)(userTokenProp);
50
+ const [widgetConfig, setWidgetConfig] = (0, react_1.useState)(null);
51
+ const [embedLoadState, setEmbedLoadState] = (0, react_1.useState)("loading");
52
+ const [embedLoadError, setEmbedLoadError] = (0, react_1.useState)(null);
53
+ const [totalUnread, setTotalUnread] = (0, react_1.useState)(0);
54
+ const [isOpen, setIsOpen] = (0, react_1.useState)(false);
55
+ const [isVisible, setIsVisible] = (0, react_1.useState)(true);
56
+ const [connectionState, setConnectionState] = (0, react_1.useState)({
57
+ isConnected: false,
58
+ isConnecting: false,
59
+ isAwaitingRetry: false,
60
+ lastError: null,
61
+ });
62
+ const wsClientRef = (0, react_1.useRef)(null);
63
+ const userTokenRef = (0, react_1.useRef)(userToken);
64
+ userTokenRef.current = userToken;
65
+ // ── HTTP client bootstrap ──────────────────────────────────────────────
66
+ (0, react_1.useEffect)(() => {
67
+ (0, axios_1.setApiBaseUrl)(cfg.apiBaseUrl);
68
+ (0, axios_1.setTokenGetter)(() => { var _a; return (_a = userTokenRef.current) !== null && _a !== void 0 ? _a : null; });
69
+ }, [cfg.apiBaseUrl]);
70
+ // ── auth refresh registration ──────────────────────────────────────────
71
+ (0, react_1.useEffect)(() => {
72
+ if (!authCallback)
73
+ return;
74
+ (0, axios_1.registerAuthRefresh)(authCallback, (newToken) => {
75
+ setToken(typeof newToken === "string" ? newToken : null);
76
+ });
77
+ return () => (0, axios_1.unregisterAuthRefresh)();
78
+ // eslint-disable-next-line react-hooks/exhaustive-deps
79
+ }, [authCallback]);
80
+ // ── resolve userId ─────────────────────────────────────────────────────
81
+ (0, react_1.useEffect)(() => {
82
+ if (userTokenProp) {
83
+ setUserId(userIdProp !== null && userIdProp !== void 0 ? userIdProp : "");
84
+ setUserTokenState(userTokenProp.trim());
85
+ setUserIdReady(true);
86
+ return;
87
+ }
88
+ const uid = userIdProp === null || userIdProp === void 0 ? void 0 : userIdProp.trim();
89
+ if (uid) {
90
+ setUserId(uid);
91
+ setUserIdReady(true);
92
+ return;
93
+ }
94
+ let cancelled = false;
95
+ (0, identity_1.getOrCreateDeviceUserId)(cfg.widgetId).then((id) => {
96
+ if (!cancelled) {
97
+ setUserId(id);
98
+ setUserIdReady(true);
99
+ }
100
+ });
101
+ return () => {
102
+ cancelled = true;
103
+ };
104
+ }, [cfg.widgetId, userIdProp, userTokenProp]);
105
+ // ── propagate token changes from parent ───────────────────────────────
106
+ (0, react_1.useEffect)(() => {
107
+ setUserTokenState((userTokenProp === null || userTokenProp === void 0 ? void 0 : userTokenProp.trim()) || undefined);
108
+ }, [userTokenProp]);
109
+ // ── widget config fetch ────────────────────────────────────────────────
110
+ (0, react_1.useEffect)(() => {
111
+ if (!cfg.widgetId)
112
+ return;
113
+ setEmbedLoadState("loading");
114
+ setEmbedLoadError(null);
115
+ let cancelled = false;
116
+ (async () => {
117
+ var _a;
118
+ try {
119
+ const raw = await widget_api_1.widgetApi.getWidget(cfg.widgetId);
120
+ if (cancelled)
121
+ return;
122
+ const config = (_a = raw === null || raw === void 0 ? void 0 : raw.data) !== null && _a !== void 0 ? _a : raw;
123
+ (0, react_native_1.unstable_batchedUpdates)(() => {
124
+ setWidgetConfig(config);
125
+ setEmbedLoadError(null);
126
+ setEmbedLoadState("ready");
127
+ });
128
+ }
129
+ catch (e) {
130
+ if (cancelled)
131
+ return;
132
+ (0, react_native_1.unstable_batchedUpdates)(() => {
133
+ setEmbedLoadError(e instanceof Error ? e.message : "Failed to load widget config");
134
+ setEmbedLoadState("error");
135
+ });
136
+ }
137
+ })();
138
+ return () => {
139
+ cancelled = true;
140
+ };
141
+ }, [cfg.widgetId]);
142
+ // ── load initial unread count ──────────────────────────────────────────
143
+ const visitorQueryParams = (0, react_1.useMemo)(() => (0, visitor_params_1.buildVisitorQueryParams)({
144
+ widgetId: cfg.widgetId,
145
+ userId,
146
+ userToken,
147
+ visitorProfile,
148
+ }), [cfg.widgetId, userId, userToken, visitorProfile]);
149
+ (0, react_1.useEffect)(() => {
150
+ if (!visitorQueryParams)
151
+ return;
152
+ let cancelled = false;
153
+ (async () => {
154
+ try {
155
+ const raw = await conversation_api_1.conversationApi.getTotalUnread({
156
+ params: visitorQueryParams,
157
+ });
158
+ if (cancelled)
159
+ return;
160
+ const n = pickUnread(raw);
161
+ if (n !== null)
162
+ setTotalUnread(Math.max(0, n));
163
+ }
164
+ catch {
165
+ /* best-effort */
166
+ }
167
+ })();
168
+ return () => {
169
+ cancelled = true;
170
+ };
171
+ }, [visitorQueryParams]);
172
+ // ── WsClient lifecycle ─────────────────────────────────────────────────
173
+ (0, react_1.useEffect)(() => {
174
+ if (!cfg.widgetId || !userId || !userIdReady)
175
+ return;
176
+ const client = new ws_client_1.WsClient({
177
+ widgetId: cfg.widgetId,
178
+ userId,
179
+ userToken,
180
+ });
181
+ const unsub = client.onStateChange((s) => setConnectionState({ ...s }));
182
+ const unsubMsg = client.subscribe("new_livechat_message", (payload) => {
183
+ var _a;
184
+ const data = (_a = payload === null || payload === void 0 ? void 0 : payload.data) !== null && _a !== void 0 ? _a : payload;
185
+ const msg = data === null || data === void 0 ? void 0 : data.message;
186
+ if ((msg === null || msg === void 0 ? void 0 : msg.senderType) === "contact")
187
+ return;
188
+ setTotalUnread((n) => n + 1);
189
+ });
190
+ const unsubRead = client.subscribe("visitor_conversation_messages_marked_as_read", (payload) => {
191
+ var _a;
192
+ const data = (_a = payload === null || payload === void 0 ? void 0 : payload.data) !== null && _a !== void 0 ? _a : payload;
193
+ const raw = data === null || data === void 0 ? void 0 : data.visitorUnreadCount;
194
+ const parsed = typeof raw === "string" ? parseInt(raw, 10) : Number(raw);
195
+ if (Number.isFinite(parsed)) {
196
+ setTotalUnread(Math.max(0, parsed));
197
+ return;
198
+ }
199
+ const deltaRaw = data === null || data === void 0 ? void 0 : data.messageCount;
200
+ const delta = typeof deltaRaw === "string"
201
+ ? parseInt(deltaRaw, 10)
202
+ : Number(deltaRaw);
203
+ if (Number.isFinite(delta) && delta > 0)
204
+ setTotalUnread((n) => Math.max(0, n - delta));
205
+ });
206
+ client.start();
207
+ wsClientRef.current = client;
208
+ return () => {
209
+ unsub();
210
+ unsubMsg();
211
+ unsubRead();
212
+ client.destroy();
213
+ wsClientRef.current = null;
214
+ };
215
+ // eslint-disable-next-line react-hooks/exhaustive-deps
216
+ }, [cfg.widgetId, cfg.apiBaseUrl, userId, userIdReady]);
217
+ (0, react_1.useEffect)(() => {
218
+ var _a;
219
+ (_a = wsClientRef.current) === null || _a === void 0 ? void 0 : _a.updateIdentity({ userId, userToken });
220
+ }, [userId, userToken]);
221
+ // ── public actions ─────────────────────────────────────────────────────
222
+ const setToken = (0, react_1.useCallback)((token) => {
223
+ const trimmed = typeof token === "string" ? token.trim() : "";
224
+ if (trimmed) {
225
+ setUserTokenState(trimmed);
226
+ setUserId("");
227
+ setUserIdReady(true);
228
+ return;
229
+ }
230
+ setUserTokenState(undefined);
231
+ (0, identity_1.getOrCreateDeviceUserId)(cfg.widgetId).then((id) => {
232
+ setUserId(id);
233
+ setUserIdReady(true);
234
+ });
235
+ }, [cfg.widgetId]);
236
+ const logout = (0, react_1.useCallback)(() => {
237
+ setUserTokenState(undefined);
238
+ (0, identity_1.clearStoredDeviceUserId)(cfg.widgetId).then(() => (0, identity_1.getOrCreateDeviceUserId)(cfg.widgetId).then((id) => {
239
+ setUserId(id);
240
+ setUserIdReady(true);
241
+ }));
242
+ }, [cfg.widgetId]);
243
+ const open = (0, react_1.useCallback)(() => setIsOpen(true), []);
244
+ const close = (0, react_1.useCallback)(() => setIsOpen(false), []);
245
+ const show = (0, react_1.useCallback)(() => setIsVisible(true), []);
246
+ const hide = (0, react_1.useCallback)(() => {
247
+ setIsOpen(false);
248
+ setIsVisible(false);
249
+ }, []);
250
+ // ── theme resolution ───────────────────────────────────────────────────
251
+ const theme = (0, react_1.useMemo)(() => {
252
+ var _a;
253
+ const brandColor = (_a = getWidgetBrandColor(widgetConfig)) !== null && _a !== void 0 ? _a : theme_1.defaultTheme.colors.brand;
254
+ const resolvedAppearance = appearanceProp === "system"
255
+ ? systemColorScheme === "dark"
256
+ ? "dark"
257
+ : "light"
258
+ : appearanceProp !== null && appearanceProp !== void 0 ? appearanceProp : "light";
259
+ return (0, theme_1.buildThemeFromBrand)(brandColor, resolvedAppearance, useBrandThemingProp, themeProp);
260
+ }, [widgetConfig, appearanceProp, systemColorScheme, useBrandThemingProp, themeProp]);
261
+ const contextValue = (0, react_1.useMemo)(() => ({
262
+ widgetId: cfg.widgetId,
263
+ userId,
264
+ userToken,
265
+ setToken,
266
+ logout,
267
+ visitorProfile,
268
+ visitorQueryParams,
269
+ widgetConfig,
270
+ widgetName: getWidgetName(widgetConfig),
271
+ widgetGreeting: getWidgetGreeting(widgetConfig),
272
+ embedLoadState,
273
+ embedLoadError,
274
+ totalUnread,
275
+ setTotalUnread,
276
+ isOpen,
277
+ open,
278
+ close,
279
+ isVisible,
280
+ show,
281
+ hide,
282
+ wsClient: wsClientRef.current,
283
+ connectionState,
284
+ theme,
285
+ }), [
286
+ cfg.widgetId,
287
+ userId,
288
+ userToken,
289
+ setToken,
290
+ logout,
291
+ visitorProfile,
292
+ visitorQueryParams,
293
+ widgetConfig,
294
+ embedLoadState,
295
+ embedLoadError,
296
+ totalUnread,
297
+ isOpen,
298
+ open,
299
+ close,
300
+ isVisible,
301
+ show,
302
+ hide,
303
+ connectionState,
304
+ theme,
305
+ ]);
306
+ return ((0, jsx_runtime_1.jsx)(LiveChatContext_1.LiveChatContext.Provider, { value: contextValue, children: children }));
307
+ }
308
+ //# sourceMappingURL=LiveChatProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiveChatProvider.js","sourceRoot":"","sources":["../../src/provider/LiveChatProvider.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { VisitorProfile } from "../core/visitor-params";
2
+ import type { WsConnectionState } from "../realtime/ws-client";
3
+ import type { AppearanceMode, ThemeConfig } from "../ui/theme";
4
+ export type EmbedConfigLoadState = "loading" | "ready" | "error";
5
+ export type LiveChatProviderProps = {
6
+ widgetId: string;
7
+ apiBaseUrl: string;
8
+ userId?: string;
9
+ userToken?: string;
10
+ authCallback?: () => Promise<string | null | undefined>;
11
+ visitorProfile?: VisitorProfile;
12
+ appearance?: AppearanceMode;
13
+ useBrandThemingForChat?: boolean;
14
+ theme?: Partial<ThemeConfig>;
15
+ children: React.ReactNode;
16
+ };
17
+ export type LiveChatContextValue = {
18
+ widgetId: string;
19
+ userId: string;
20
+ userToken: string | undefined;
21
+ setToken: (token: string | null | undefined) => void;
22
+ logout: () => void;
23
+ visitorProfile: VisitorProfile | undefined;
24
+ visitorQueryParams: Record<string, string> | null;
25
+ widgetConfig: any;
26
+ widgetName: string;
27
+ widgetGreeting: string;
28
+ embedLoadState: EmbedConfigLoadState;
29
+ embedLoadError: string | null;
30
+ totalUnread: number;
31
+ setTotalUnread: React.Dispatch<React.SetStateAction<number>>;
32
+ isOpen: boolean;
33
+ open: () => void;
34
+ close: () => void;
35
+ isVisible: boolean;
36
+ show: () => void;
37
+ hide: () => void;
38
+ wsClient: import("../realtime/ws-client").WsClient | null;
39
+ connectionState: WsConnectionState;
40
+ theme: ThemeConfig;
41
+ };
42
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/provider/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/D,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAEjE,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACxD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAEjC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC;IACrD,MAAM,EAAE,MAAM,IAAI,CAAC;IAGnB,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;IAC3C,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAGlD,YAAY,EAAE,GAAG,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,oBAAoB,CAAC;IACrC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAG9B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAG7D,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;IAGjB,QAAQ,EAAE,OAAO,uBAAuB,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1D,eAAe,EAAE,iBAAiB,CAAC;IAGnC,KAAK,EAAE,WAAW,CAAC;CACpB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/provider/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,51 @@
1
+ type WsEventCallback = (data: unknown) => void;
2
+ export type WsConnectionState = {
3
+ isConnected: boolean;
4
+ isConnecting: boolean;
5
+ isAwaitingRetry: boolean;
6
+ lastError: Error | null;
7
+ };
8
+ type StateChangeListener = (state: WsConnectionState) => void;
9
+ export declare class WsClient {
10
+ private widgetId;
11
+ private userId;
12
+ private userToken;
13
+ private socket;
14
+ private retryCount;
15
+ private retryTimeout;
16
+ private statusInterval;
17
+ private isConnectingFlag;
18
+ private connectionStartedAt;
19
+ private lastMessageTime;
20
+ private lastReconnectAt;
21
+ private appStateSubscription;
22
+ private netInfoUnsubscribe;
23
+ private state;
24
+ private stateListeners;
25
+ private eventListeners;
26
+ constructor(opts: {
27
+ widgetId: string;
28
+ userId?: string;
29
+ userToken?: string;
30
+ });
31
+ updateIdentity(opts: {
32
+ userId?: string;
33
+ userToken?: string;
34
+ }): void;
35
+ start(): void;
36
+ destroy(): void;
37
+ reconnect(reason?: string, force?: boolean): void;
38
+ subscribe(eventType: string, cb: WsEventCallback): () => void;
39
+ onStateChange(listener: StateChangeListener): () => void;
40
+ getState(): WsConnectionState;
41
+ private setState;
42
+ private connect;
43
+ private clearRetry;
44
+ private startStatusPoller;
45
+ private stopStatusPoller;
46
+ private recover;
47
+ private bindAppState;
48
+ private bindNetInfo;
49
+ }
50
+ export {};
51
+ //# sourceMappingURL=ws-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws-client.d.ts","sourceRoot":"","sources":["../../src/realtime/ws-client.ts"],"names":[],"mappings":"AAmBA,KAAK,eAAe,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;AAE/C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,KAAK,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,KAAK,mBAAmB,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;AA4B9D,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,SAAS,CAAqB;IAEtC,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,YAAY,CAA8C;IAClE,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,eAAe,CAAc;IACrC,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,oBAAoB,CAAmC;IAC/D,OAAO,CAAC,kBAAkB,CAA6B;IAEvD,OAAO,CAAC,KAAK,CAKX;IACF,OAAO,CAAC,cAAc,CAAuC;IAC7D,OAAO,CAAC,cAAc,CAA6C;gBAEvD,IAAI,EAAE;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;IAOD,cAAc,CAAC,IAAI,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAWnE,KAAK,IAAI,IAAI;IAOb,OAAO,IAAI,IAAI;IAoBf,SAAS,CAAC,MAAM,SAAW,EAAE,KAAK,UAAQ,GAAG,IAAI;IAyBjD,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,eAAe,GAAG,MAAM,IAAI;IAc7D,aAAa,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,IAAI;IASxD,QAAQ,IAAI,iBAAiB;IAK7B,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,OAAO;IAgGf,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,iBAAiB;IAqCzB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,WAAW;CAWpB"}