@anker-in/campaign-ui 0.0.33-alpha3 → 0.0.33-alpha4

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 (36) hide show
  1. package/dist/cjs/components/chat/Response.d.ts +1 -1
  2. package/dist/cjs/components/chat/action.d.ts +3 -1
  3. package/dist/cjs/components/chat/action.js +1 -1
  4. package/dist/cjs/components/chat/action.js.map +3 -3
  5. package/dist/cjs/components/chat/index.d.ts +13 -3
  6. package/dist/cjs/components/chat/index.js +1 -1
  7. package/dist/cjs/components/chat/index.js.map +3 -3
  8. package/dist/cjs/components/chat/messages.js +1 -1
  9. package/dist/cjs/components/chat/messages.js.map +3 -3
  10. package/dist/cjs/components/chat/response.js +1 -1
  11. package/dist/cjs/components/chat/response.js.map +2 -2
  12. package/dist/cjs/stories/chat.stories.js +1 -1
  13. package/dist/cjs/stories/chat.stories.js.map +2 -2
  14. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  15. package/dist/esm/components/chat/Response.d.ts +1 -1
  16. package/dist/esm/components/chat/action.d.ts +3 -1
  17. package/dist/esm/components/chat/action.js +1 -1
  18. package/dist/esm/components/chat/action.js.map +3 -3
  19. package/dist/esm/components/chat/index.d.ts +13 -3
  20. package/dist/esm/components/chat/index.js +1 -1
  21. package/dist/esm/components/chat/index.js.map +3 -3
  22. package/dist/esm/components/chat/messages.js +1 -1
  23. package/dist/esm/components/chat/messages.js.map +3 -3
  24. package/dist/esm/components/chat/response.js +1 -1
  25. package/dist/esm/components/chat/response.js.map +2 -2
  26. package/dist/esm/stories/chat.stories.js +1 -1
  27. package/dist/esm/stories/chat.stories.js.map +2 -2
  28. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  29. package/package.json +1 -1
  30. package/src/components/chat/action.tsx +31 -8
  31. package/src/components/chat/index.tsx +17 -3
  32. package/src/components/chat/messages.tsx +43 -2
  33. package/src/components/chat/response.tsx +6 -4
  34. package/src/stories/chat.stories.tsx +2 -3
  35. package/src/styles/css/messages.css +8 -0
  36. package/src/styles/css/response.css +0 -1
@@ -1,2 +1,2 @@
1
- declare const ResponseButton: () => import("react/jsx-runtime").JSX.Element;
1
+ declare const ResponseButton: () => false | import("react/jsx-runtime").JSX.Element;
2
2
  export default ResponseButton;
@@ -9,10 +9,12 @@ interface Message {
9
9
  export interface ActionProps {
10
10
  start?: string;
11
11
  history: Message[];
12
+ gotocheckoutRender?: string | ((_props: any) => React.ReactElement);
13
+ gotocartRender?: string | ((_props: any) => React.ReactElement);
12
14
  addtocartRender?: string | ((_props: any) => React.ReactElement);
13
15
  productRender?: string | ((_props: any) => React.ReactElement);
14
16
  signupRender?: string | ((_props: any) => React.ReactElement);
15
17
  children?: React.ReactNode;
16
18
  }
17
- export declare const CopilotAction: ({ start, history, addtocartRender, productRender, signupRender, children, }: ActionProps) => import("react/jsx-runtime").JSX.Element;
19
+ export declare const CopilotAction: ({ start, history, gotocheckoutRender, gotocartRender, addtocartRender, productRender, signupRender, children, }: ActionProps) => import("react/jsx-runtime").JSX.Element;
18
20
  export {};
@@ -1,2 +1,2 @@
1
- "use strict";var m=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var R=Object.prototype.hasOwnProperty;var h=(t,e)=>{for(var i in e)m(t,i,{get:e[i],enumerable:!0})},A=(t,e,i,d)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of y(e))!R.call(t,a)&&a!==i&&m(t,a,{get:()=>e[a],enumerable:!(d=l(e,a))||d.enumerable});return t};var w=t=>A(m({},"__esModule",{value:!0}),t);var E={};h(E,{CopilotAction:()=>C});module.exports=w(E);var c=require("react/jsx-runtime"),N=require("react"),g=require("react"),s=require("@copilotkit/react-core"),o=require("@copilotkit/runtime-client-gql");const C=({start:t,history:e,addtocartRender:i,productRender:d,signupRender:a,children:u})=>{const{setMessages:f}=(0,s.useCopilotChat)();return(0,g.useEffect)(()=>{const r=e?.filter(p=>p?.content||p?.arguments);if(r?.length>0){const p=r?.map(n=>n?.name&&n?.arguments?(console.log("value?.name && value?.arguments",n?.name,n?.arguments),new o.ActionExecutionMessage({name:n?.name,arguments:n?.arguments,scope:n?.scope})):new o.TextMessage({...n,role:n?.role==="user"?o.Role.User:o.Role.Assistant}));f(p)}},[e]),(0,s.useCopilotAction)({name:"add_cart",description:"add tocart",parameters:[{sku:"",handle:""}],render:i||(r=>(0,c.jsx)("div",{children:JSON.stringify(r)})),handler:function(){}}),(0,s.useCopilotAction)({name:"buynow",description:"buy now",parameters:[{sku:"",handle:""}],render:d||(r=>(0,c.jsx)("div",{children:JSON.stringify(r)})),handler:function(){}}),(0,s.useCopilotAction)({name:"signup",description:"signup",parameters:[{name:"signup"}],render:a||(r=>(0,c.jsx)("div",{children:JSON.stringify(r)})),handler:function(){}}),(0,s.useCopilotReadable)({description:"Today's date",value:new Date().toLocaleDateString()}),(0,c.jsx)("div",{children:u})};
1
+ "use strict";var m=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var _=Object.prototype.hasOwnProperty;var N=(r,e)=>{for(var c in e)m(r,c,{get:e[c],enumerable:!0})},E=(r,e,c,d)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of y(e))!_.call(r,a)&&a!==c&&m(r,a,{get:()=>e[a],enumerable:!(d=R(e,a))||d.enumerable});return r};var k=r=>E(m({},"__esModule",{value:!0}),r);var A={};N(A,{CopilotAction:()=>v});module.exports=k(A);var o=require("react/jsx-runtime"),C=require("react"),g=require("react"),n=require("@copilotkit/react-core"),i=require("@copilotkit/runtime-client-gql");const v=({start:r,history:e,gotocheckoutRender:c,gotocartRender:d,addtocartRender:a,productRender:l,signupRender:u,children:f})=>{const{setMessages:h}=(0,n.useCopilotChat)();return(0,g.useEffect)(()=>{const t=e?.filter(p=>p?.content||p?.arguments);if(t?.length>0){const p=t?.map(s=>s?.name&&s?.arguments?new i.ActionExecutionMessage({name:s?.name,arguments:s?.arguments,scope:s?.scope}):new i.TextMessage({...s,role:s?.role==="user"?i.Role.User:i.Role.Assistant}));h(p)}},[e]),(0,n.useCopilotAction)({name:"go_to_checkout",description:"go to cart",parameters:[{sku:"",handle:""}],render:c||(t=>(0,o.jsx)("div",{className:"hidden",children:JSON.stringify(t)})),handler:function(){}}),(0,n.useCopilotAction)({name:"go_to_cart",description:"go to cart",parameters:[{sku:"",handle:""}],render:d||(t=>(0,o.jsx)("div",{className:"hidden",children:JSON.stringify(t)})),handler:function(){}}),(0,n.useCopilotAction)({name:"add_to_cart",description:"add to cart",parameters:[{sku:"",handle:""}],render:a||(t=>(0,o.jsx)("div",{className:"hidden",children:JSON.stringify(t)})),handler:function(){}}),(0,n.useCopilotAction)({name:"show_product_card",description:"product card",parameters:[{sku:"",handle:""}],render:l||(t=>(0,o.jsx)("div",{className:"hidden",children:JSON.stringify(t)})),handler:function(){}}),(0,n.useCopilotAction)({name:"signup",description:"signup",parameters:[{name:"signup"}],render:u||(t=>(0,o.jsx)("div",{className:"hidden",children:JSON.stringify(t)})),handler:function(){}}),(0,n.useCopilotReadable)({description:"Today's date",value:new Date().toLocaleDateString()}),(0,o.jsx)("div",{children:f})};
2
2
  //# sourceMappingURL=action.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/chat/action.tsx"],
4
- "sourcesContent": ["import React from 'react'\nimport { useEffect } from 'react'\nimport { useCopilotChat, useCopilotAction, useCopilotReadable } from '@copilotkit/react-core'\nimport { Role, ActionExecutionMessage, TextMessage } from '@copilotkit/runtime-client-gql'\n\ninterface Message {\n content: string\n role: string\n name?: string\n scope?: any\n arguments?: any\n}\n\nexport interface ActionProps {\n start?: string\n history: Message[]\n addtocartRender?: string | ((_props: any) => React.ReactElement)\n productRender?: string | ((_props: any) => React.ReactElement)\n signupRender?: string | ((_props: any) => React.ReactElement)\n children?: React.ReactNode\n}\n\nexport const CopilotAction = ({\n start,\n history,\n addtocartRender,\n productRender,\n signupRender,\n children,\n}: ActionProps) => {\n const { setMessages } = useCopilotChat()\n\n useEffect(() => {\n const originhistory = history?.filter(value => value?.content || value?.arguments)\n if (originhistory?.length > 0) {\n const content = originhistory?.map(value => {\n if (value?.name && value?.arguments) {\n console.log('value?.name && value?.arguments', value?.name, value?.arguments)\n return new ActionExecutionMessage({\n name: value?.name,\n arguments: value?.arguments,\n scope: value?.scope,\n })\n }\n return new TextMessage({\n ...value,\n role: value?.role === 'user' ? Role.User : Role.Assistant,\n })\n })\n setMessages(content)\n }\n }, [history])\n\n useCopilotAction({\n name: 'add_cart',\n description: 'add tocart',\n parameters: [{ sku: '', handle: '' }] as any,\n render: addtocartRender || (props => <div>{JSON.stringify(props)}</div>),\n handler: function () {\n // console.log('buynow-props', props)\n },\n })\n\n useCopilotAction({\n name: 'buynow',\n description: 'buy now',\n parameters: [{ sku: '', handle: '' }] as any,\n render: productRender || (props => <div>{JSON.stringify(props)}</div>),\n handler: function () {\n // console.log('buynow-props', props)\n },\n })\n\n useCopilotAction({\n name: 'signup',\n description: 'signup',\n parameters: [\n {\n name: 'signup',\n },\n ] as any,\n render: signupRender || (props => <div>{JSON.stringify(props)}</div>),\n handler: function () {\n // console.log('signup-props', props)\n },\n })\n\n useCopilotReadable({\n description: \"Today's date\",\n value: new Date().toLocaleDateString(),\n })\n\n return <div>{children}</div>\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,IAAA,eAAAC,EAAAH,GAyDyC,IAAAI,EAAA,6BAzDzCC,EAAkB,iBAClBA,EAA0B,iBAC1BC,EAAqE,kCACrEC,EAA0D,0CAmBnD,MAAML,EAAgB,CAAC,CAC5B,MAAAM,EACA,QAAAC,EACA,gBAAAC,EACA,cAAAC,EACA,aAAAC,EACA,SAAAC,CACF,IAAmB,CACjB,KAAM,CAAE,YAAAC,CAAY,KAAI,kBAAe,EAEvC,sBAAU,IAAM,CACd,MAAMC,EAAgBN,GAAS,OAAOO,GAASA,GAAO,SAAWA,GAAO,SAAS,EACjF,GAAID,GAAe,OAAS,EAAG,CAC7B,MAAME,EAAUF,GAAe,IAAIC,GAC7BA,GAAO,MAAQA,GAAO,WACxB,QAAQ,IAAI,kCAAmCA,GAAO,KAAMA,GAAO,SAAS,EACrE,IAAI,yBAAuB,CAChC,KAAMA,GAAO,KACb,UAAWA,GAAO,UAClB,MAAOA,GAAO,KAChB,CAAC,GAEI,IAAI,cAAY,CACrB,GAAGA,EACH,KAAMA,GAAO,OAAS,OAAS,OAAK,KAAO,OAAK,SAClD,CAAC,CACF,EACDF,EAAYG,CAAO,CACrB,CACF,EAAG,CAACR,CAAO,CAAC,KAEZ,oBAAiB,CACf,KAAM,WACN,YAAa,aACb,WAAY,CAAC,CAAE,IAAK,GAAI,OAAQ,EAAG,CAAC,EACpC,OAAQC,IAAoBQ,MAAS,OAAC,OAAK,cAAK,UAAUA,CAAK,EAAE,GACjE,QAAS,UAAY,CAErB,CACF,CAAC,KAED,oBAAiB,CACf,KAAM,SACN,YAAa,UACb,WAAY,CAAC,CAAE,IAAK,GAAI,OAAQ,EAAG,CAAC,EACpC,OAAQP,IAAkBO,MAAS,OAAC,OAAK,cAAK,UAAUA,CAAK,EAAE,GAC/D,QAAS,UAAY,CAErB,CACF,CAAC,KAED,oBAAiB,CACf,KAAM,SACN,YAAa,SACb,WAAY,CACV,CACE,KAAM,QACR,CACF,EACA,OAAQN,IAAiBM,MAAS,OAAC,OAAK,cAAK,UAAUA,CAAK,EAAE,GAC9D,QAAS,UAAY,CAErB,CACF,CAAC,KAED,sBAAmB,CACjB,YAAa,eACb,MAAO,IAAI,KAAK,EAAE,mBAAmB,CACvC,CAAC,KAEM,OAAC,OAAK,SAAAL,EAAS,CACxB",
6
- "names": ["action_exports", "__export", "CopilotAction", "__toCommonJS", "import_jsx_runtime", "import_react", "import_react_core", "import_runtime_client_gql", "start", "history", "addtocartRender", "productRender", "signupRender", "children", "setMessages", "originhistory", "value", "content", "props"]
4
+ "sourcesContent": ["import React from 'react'\nimport { useEffect } from 'react'\nimport { useCopilotChat, useCopilotAction, useCopilotReadable } from '@copilotkit/react-core'\nimport { Role, ActionExecutionMessage, TextMessage } from '@copilotkit/runtime-client-gql'\n\ninterface Message {\n content: string\n role: string\n name?: string\n scope?: any\n arguments?: any\n}\n\nexport interface ActionProps {\n start?: string\n history: Message[]\n gotocheckoutRender?: string | ((_props: any) => React.ReactElement)\n gotocartRender?: string | ((_props: any) => React.ReactElement)\n addtocartRender?: string | ((_props: any) => React.ReactElement)\n productRender?: string | ((_props: any) => React.ReactElement)\n signupRender?: string | ((_props: any) => React.ReactElement)\n children?: React.ReactNode\n}\n\nexport const CopilotAction = ({\n start,\n history,\n gotocheckoutRender,\n gotocartRender,\n addtocartRender,\n productRender,\n signupRender,\n children,\n}: ActionProps) => {\n const { setMessages } = useCopilotChat()\n\n useEffect(() => {\n const originhistory = history?.filter(value => value?.content || value?.arguments)\n if (originhistory?.length > 0) {\n const content = originhistory?.map(value => {\n if (value?.name && value?.arguments) {\n return new ActionExecutionMessage({\n name: value?.name,\n arguments: value?.arguments,\n scope: value?.scope,\n })\n }\n return new TextMessage({\n ...value,\n role: value?.role === 'user' ? Role.User : Role.Assistant,\n })\n })\n setMessages(content)\n }\n }, [history])\n\n useCopilotAction({\n name: 'go_to_checkout',\n description: 'go to cart',\n parameters: [{ sku: '', handle: '' }] as any,\n render: gotocheckoutRender || (props => <div className=\"hidden\">{JSON.stringify(props)}</div>),\n handler: function () {\n // console.log('buynow-props', props)\n },\n })\n\n useCopilotAction({\n name: 'go_to_cart',\n description: 'go to cart',\n parameters: [{ sku: '', handle: '' }] as any,\n render: gotocartRender || (props => <div className=\"hidden\">{JSON.stringify(props)}</div>),\n handler: function () {\n // console.log('buynow-props', props)\n },\n })\n\n useCopilotAction({\n name: 'add_to_cart',\n description: 'add to cart',\n parameters: [{ sku: '', handle: '' }] as any,\n render: addtocartRender || (props => <div className=\"hidden\">{JSON.stringify(props)}</div>),\n handler: function () {\n // console.log('buynow-props', props)\n },\n })\n\n useCopilotAction({\n name: 'show_product_card',\n description: 'product card',\n parameters: [{ sku: '', handle: '' }] as any,\n render: productRender || (props => <div className=\"hidden\">{JSON.stringify(props)}</div>),\n handler: function () {\n // console.log('buynow-props', props)\n },\n })\n\n useCopilotAction({\n name: 'signup',\n description: 'signup',\n parameters: [\n {\n name: 'signup',\n },\n ] as any,\n render: signupRender || (props => <div className=\"hidden\">{JSON.stringify(props)}</div>),\n handler: function () {\n // console.log('signup-props', props)\n },\n })\n\n useCopilotReadable({\n description: \"Today's date\",\n value: new Date().toLocaleDateString(),\n })\n\n return <div>{children}</div>\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,IAAA,eAAAC,EAAAH,GA4D4C,IAAAI,EAAA,6BA5D5CC,EAAkB,iBAClBA,EAA0B,iBAC1BC,EAAqE,kCACrEC,EAA0D,0CAqBnD,MAAML,EAAgB,CAAC,CAC5B,MAAAM,EACA,QAAAC,EACA,mBAAAC,EACA,eAAAC,EACA,gBAAAC,EACA,cAAAC,EACA,aAAAC,EACA,SAAAC,CACF,IAAmB,CACjB,KAAM,CAAE,YAAAC,CAAY,KAAI,kBAAe,EAEvC,sBAAU,IAAM,CACd,MAAMC,EAAgBR,GAAS,OAAOS,GAASA,GAAO,SAAWA,GAAO,SAAS,EACjF,GAAID,GAAe,OAAS,EAAG,CAC7B,MAAME,EAAUF,GAAe,IAAIC,GAC7BA,GAAO,MAAQA,GAAO,UACjB,IAAI,yBAAuB,CAChC,KAAMA,GAAO,KACb,UAAWA,GAAO,UAClB,MAAOA,GAAO,KAChB,CAAC,EAEI,IAAI,cAAY,CACrB,GAAGA,EACH,KAAMA,GAAO,OAAS,OAAS,OAAK,KAAO,OAAK,SAClD,CAAC,CACF,EACDF,EAAYG,CAAO,CACrB,CACF,EAAG,CAACV,CAAO,CAAC,KAEZ,oBAAiB,CACf,KAAM,iBACN,YAAa,aACb,WAAY,CAAC,CAAE,IAAK,GAAI,OAAQ,EAAG,CAAC,EACpC,OAAQC,IAAuBU,MAAS,OAAC,OAAI,UAAU,SAAU,cAAK,UAAUA,CAAK,EAAE,GACvF,QAAS,UAAY,CAErB,CACF,CAAC,KAED,oBAAiB,CACf,KAAM,aACN,YAAa,aACb,WAAY,CAAC,CAAE,IAAK,GAAI,OAAQ,EAAG,CAAC,EACpC,OAAQT,IAAmBS,MAAS,OAAC,OAAI,UAAU,SAAU,cAAK,UAAUA,CAAK,EAAE,GACnF,QAAS,UAAY,CAErB,CACF,CAAC,KAED,oBAAiB,CACf,KAAM,cACN,YAAa,cACb,WAAY,CAAC,CAAE,IAAK,GAAI,OAAQ,EAAG,CAAC,EACpC,OAAQR,IAAoBQ,MAAS,OAAC,OAAI,UAAU,SAAU,cAAK,UAAUA,CAAK,EAAE,GACpF,QAAS,UAAY,CAErB,CACF,CAAC,KAED,oBAAiB,CACf,KAAM,oBACN,YAAa,eACb,WAAY,CAAC,CAAE,IAAK,GAAI,OAAQ,EAAG,CAAC,EACpC,OAAQP,IAAkBO,MAAS,OAAC,OAAI,UAAU,SAAU,cAAK,UAAUA,CAAK,EAAE,GAClF,QAAS,UAAY,CAErB,CACF,CAAC,KAED,oBAAiB,CACf,KAAM,SACN,YAAa,SACb,WAAY,CACV,CACE,KAAM,QACR,CACF,EACA,OAAQN,IAAiBM,MAAS,OAAC,OAAI,UAAU,SAAU,cAAK,UAAUA,CAAK,EAAE,GACjF,QAAS,UAAY,CAErB,CACF,CAAC,KAED,sBAAmB,CACjB,YAAa,eACb,MAAO,IAAI,KAAK,EAAE,mBAAmB,CACvC,CAAC,KAEM,OAAC,OAAK,SAAAL,EAAS,CACxB",
6
+ "names": ["action_exports", "__export", "CopilotAction", "__toCommonJS", "import_jsx_runtime", "import_react", "import_react_core", "import_runtime_client_gql", "start", "history", "gotocheckoutRender", "gotocartRender", "addtocartRender", "productRender", "signupRender", "children", "setMessages", "originhistory", "value", "content", "props"]
7
7
  }
@@ -16,17 +16,27 @@ export interface ChatProps {
16
16
  */
17
17
  query?: string;
18
18
  /** 'follow' or 'unfollow' | true or false
19
+ * follow: ResponseButton 会跟随在 messages 的后边
20
+ * unfollow: ResponseButton 在聊天框底部
19
21
  */
20
22
  showResponseButton?: string | boolean;
21
- /** 加购卡片,接受参数: {"status":"complete","args":[{"sku":"A3936031","handle":"space-a40-a3936031"}],"result":""}
23
+ /** 跳转 checkout action 卡片,接受参数: {"status":"complete","args":[{"sku":["A3936031"],"handle":"space-a40-a3936031"}],"result":""}
24
+ * 后端接口文档:https://anker-in.feishu.cn/wiki/DOYJwE9oxipWmYk072ncnJNznBb
25
+ */
26
+ gotocheckoutRender?: string | ((_props: any) => React.ReactElement);
27
+ /** 打开购物车 action 卡片,接受参数: {"status":"complete","args":[{"sku":["A3936031"],"handle":"space-a40-a3936031"}],"result":""}
28
+ * 后端接口文档:https://anker-in.feishu.cn/wiki/DOYJwE9oxipWmYk072ncnJNznBb
29
+ */
30
+ gotocartRender?: string | ((_props: any) => React.ReactElement);
31
+ /** 加购卡片,接受参数: {"status":"complete","args":[{"sku":["A3936031"],"handle":"space-a40-a3936031"}],"result":""}
22
32
  * 后端接口文档:https://anker-in.feishu.cn/wiki/DOYJwE9oxipWmYk072ncnJNznBb
23
33
  */
24
34
  addtocartRender?: string | ((_props: any) => React.ReactElement);
25
- /** 产品卡片,接受参数: {"status":"complete","args":[{"sku":"A3936031","handle":"space-a40-a3936031"}],"result":""}
35
+ /** 产品卡片,接受参数: {"status":"complete","args":[{"sku":["A3936031"],"handle":"space-a40-a3936031"}],"result":""}
26
36
  * 后端接口文档:https://anker-in.feishu.cn/wiki/DOYJwE9oxipWmYk072ncnJNznBb
27
37
  */
28
38
  productRender?: string | ((_props: any) => React.ReactElement);
29
- /** 订阅卡片,接受参数:
39
+ /** 订阅卡片,接受参数: {"status":"complete","args":[{"sku":["A3936031"],"handle":"space-a40-a3936031"}],"result":""}
30
40
  * 后端接口文档:https://anker-in.feishu.cn/wiki/DOYJwE9oxipWmYk072ncnJNznBb
31
41
  */
32
42
  signupRender?: string | ((_props: any) => React.ReactElement);
@@ -1,2 +1,2 @@
1
- "use strict";var Q=Object.create;var f=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var W=Object.getOwnPropertyNames;var X=Object.getPrototypeOf,Y=Object.prototype.hasOwnProperty;var Z=(t,o)=>{for(var n in o)f(t,n,{get:o[n],enumerable:!0})},B=(t,o,n,u)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of W(o))!Y.call(t,r)&&r!==n&&f(t,r,{get:()=>o[r],enumerable:!(u=V(o,r))||u.enumerable});return t};var g=(t,o,n)=>(n=t!=null?Q(X(t)):{},B(o||!t||!t.__esModule?f(n,"default",{value:t,enumerable:!0}):n,t)),j=t=>B(f({},"__esModule",{value:!0}),t);var st={};Z(st,{default:()=>et});module.exports=j(st);var s=require("react/jsx-runtime"),nt=require("react"),i=require("react"),w=require("@copilotkit/react-core"),S=require("@copilotkit/react-ui"),b=g(require("./button.js")),v=g(require("./messages.js")),E=g(require("./response.js")),O=g(require("./suggestions.js")),$=require("./action.js"),C=g(require("../../helpers/fetcher.js"));const tt=t=>{const{title:o,runtimeUrl:n,popup:u,shopify_domain:r,user_id:a="",account:l="",locale:c="",query:h="",showResponseButton:_,addtocartRender:k,productRender:q,signupRender:K,style:N,className:D="",lang:R}=t,[M,U]=R?.popupTipTimeout||[3e3,6e3],[P,m]=(0,i.useState)(!1),[y,G]=(0,i.useState)(!1),[d,x]=(0,i.useState)(""),[A,T]=(0,i.useState)([]),[F,I]=(0,i.useState)([]),L=(0,i.useCallback)(async()=>{const e=await(0,C.default)({url:`${n}/copilotkit/start${h}`,method:"GET",headers:{user_id:a||"",shopify_domain:r,account:l,locale:c}});T(e?.suggested_questions?.map(p=>({message:p,title:p}))||[]),x(e?.opening_statement||""),I(e?.history||[])},[a,r,l,c]),z=(0,i.useCallback)(async()=>{const e=await(0,C.default)({url:`${n}/copilotkit/suggested_questions${h}`,method:"GET",headers:{user_id:a||"",shopify_domain:r,account:l,locale:c}});T(e?.suggested_questions?.data?.map(p=>({message:p,title:p}))||[])},[a,r,l,c]),H=()=>{P||m(!0),setTimeout(()=>{m(!1)},U)};return(0,i.useEffect)(()=>{const e=setTimeout(()=>{H()},M);return()=>{clearTimeout(e)}},[]),(0,i.useEffect)(()=>{d||L()},[]),(0,s.jsx)("div",{className:D,style:N||{},children:a&&n&&(0,s.jsx)(w.CopilotKit,{runtimeUrl:`${n}/copilotkit/chat${h}`,showDevConsole:!1,headers:{user_id:a||"",shopify_domain:r,account:l,locale:c},children:(0,s.jsx)(S.CopilotPopup,{...u,showResponseButton:_!=="follow",labels:{title:o||"DTC Live Chat",initial:d||""},instructions:d||"",onInProgress:e=>{y&&e&&T([]),y&&!e&&z()},Messages:({messages:e,inProgress:p})=>(0,s.jsx)(v.default,{messages:e,inProgress:p,ResponseButton:_==="follow"?(0,s.jsx)(E.default,{}):void 0,children:(0,s.jsx)(O.default,{currentSuggestions:A})}),Button:({open:e,setOpen:p})=>{const J=u?.Button||b.default;return(0,i.useEffect)(()=>{G(e)},[e]),(0,s.jsxs)(s.Fragment,{children:[R?.popupTip&&P&&!y&&(0,s.jsx)("div",{className:"copilotKitPopup copilotKitPopupTip",children:(0,s.jsx)("button",{onClick:()=>{p(!0),m(!1)},"aria-label":"Open Chat",className:"copilotKitPopupTipContent",children:R?.popupTip})}),(0,s.jsx)(J,{open:e,setOpen:p,setOpenTip:m})]})},children:(0,s.jsx)($.CopilotAction,{start:d,history:F,addtocartRender:k,productRender:q,signupRender:K})})})})};var et=tt;
1
+ "use strict";var W=Object.create;var f=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var Y=Object.getOwnPropertyNames;var Z=Object.getPrototypeOf,j=Object.prototype.hasOwnProperty;var tt=(t,s)=>{for(var n in s)f(t,n,{get:s[n],enumerable:!0})},B=(t,s,n,u)=>{if(s&&typeof s=="object"||typeof s=="function")for(let i of Y(s))!j.call(t,i)&&i!==n&&f(t,i,{get:()=>s[i],enumerable:!(u=X(s,i))||u.enumerable});return t};var g=(t,s,n)=>(n=t!=null?W(Z(t)):{},B(s||!t||!t.__esModule?f(n,"default",{value:t,enumerable:!0}):n,t)),et=t=>B(f({},"__esModule",{value:!0}),t);var nt={};tt(nt,{default:()=>st});module.exports=et(nt);var o=require("react/jsx-runtime"),it=require("react"),r=require("react"),k=require("@copilotkit/react-core"),w=require("@copilotkit/react-ui"),E=g(require("./button.js")),S=g(require("./messages.js")),b=g(require("./response.js")),v=g(require("./suggestions.js")),O=require("./action.js"),C=g(require("../../helpers/fetcher.js"));const ot=t=>{const{title:s,runtimeUrl:n,popup:u,shopify_domain:i,user_id:a="",account:c="",locale:l="",query:R="",showResponseButton:_,gotocheckoutRender:$,gotocartRender:q,addtocartRender:K,productRender:N,signupRender:D,style:M,className:U="",lang:h}=t,[G,x]=h?.popupTipTimeout||[3e3,6e3],[P,d]=(0,r.useState)(!1),[y,A]=(0,r.useState)(!1),[m,F]=(0,r.useState)(""),[I,T]=(0,r.useState)([]),[L,z]=(0,r.useState)([]),H=(0,r.useCallback)(async()=>{const e=await(0,C.default)({url:`${n}/copilotkit/start${R}`,method:"GET",headers:{user_id:a||"",shopify_domain:i,account:c,locale:l}});T(e?.suggested_questions?.map(p=>({message:p,title:p}))||[]),F(e?.opening_statement||""),z(e?.history||[])},[a,i,c,l]),J=(0,r.useCallback)(async()=>{const e=await(0,C.default)({url:`${n}/copilotkit/suggested_questions${R}`,method:"GET",headers:{user_id:a||"",shopify_domain:i,account:c,locale:l}});T(e?.suggested_questions?.data?.map(p=>({message:p,title:p}))||[])},[a,i,c,l]),Q=()=>{P||d(!0),setTimeout(()=>{d(!1)},x)};return(0,r.useEffect)(()=>{const e=setTimeout(()=>{Q()},G);return()=>{clearTimeout(e)}},[]),(0,r.useEffect)(()=>{m||H()},[]),(0,o.jsx)("div",{className:U,style:M||{},children:a&&n&&(0,o.jsx)(k.CopilotKit,{runtimeUrl:`${n}/copilotkit/chat${R}`,showDevConsole:!1,headers:{user_id:a||"",shopify_domain:i,account:c,locale:l},children:(0,o.jsx)(w.CopilotPopup,{...u,showResponseButton:_!=="follow",labels:{title:s||"DTC Live Chat",initial:m||""},instructions:m||"",onInProgress:e=>{y&&e&&T([]),y&&!e&&J()},Messages:({messages:e,inProgress:p})=>(0,o.jsx)(S.default,{messages:e,inProgress:p,ResponseButton:_==="follow"?(0,o.jsx)(b.default,{}):void 0,children:(0,o.jsx)(v.default,{currentSuggestions:I})}),Button:({open:e,setOpen:p})=>{const V=u?.Button||E.default;return(0,r.useEffect)(()=>{A(e)},[e]),(0,o.jsxs)(o.Fragment,{children:[h?.popupTip&&P&&!y&&(0,o.jsx)("div",{className:"copilotKitPopup copilotKitPopupTip",children:(0,o.jsx)("button",{onClick:()=>{p(!0),d(!1)},"aria-label":"Open Chat",className:"copilotKitPopupTipContent",children:h?.popupTip})}),(0,o.jsx)(V,{open:e,setOpen:p,setOpenTip:d})]})},children:(0,o.jsx)(O.CopilotAction,{start:m,history:L,gotocartRender:q,gotocheckoutRender:$,addtocartRender:K,productRender:N,signupRender:D})})})})};var st=ot;
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/chat/index.tsx"],
4
- "sourcesContent": ["/* eslint-disable react-hooks/exhaustive-deps */\nimport React from 'react'\nimport { useCallback, useState, useEffect } from 'react'\nimport { CopilotKit } from '@copilotkit/react-core'\nimport { CopilotPopup } from '@copilotkit/react-ui'\nimport DefaultButton from './button.js'\nimport Messages from './messages.js'\nimport ResponseButton from './response.js'\nimport Suggestions from './suggestions.js'\nimport { CopilotAction } from './action.js'\nimport fetcher from '../../helpers/fetcher.js'\n\nexport interface ChatProps {\n title: string\n runtimeUrl: string\n shopify_domain: string\n /** GA \u7684 client id\n */\n user_id: string\n /** \u662F\u5426\u767B\u9646\u7528\u6237 0 or 1\n */\n account?: string\n /** \u7528\u6237\u6D4F\u89C8\u5668\u8BED\u8A00\n */\n locale?: string\n /** ?a=1&b=2\n */\n query?: string\n /** 'follow' or 'unfollow' | true or false\n */\n showResponseButton?: string | boolean\n /** \u52A0\u8D2D\u5361\u7247\uFF0C\u63A5\u53D7\u53C2\u6570\uFF1A {\"status\":\"complete\",\"args\":[{\"sku\":\"A3936031\",\"handle\":\"space-a40-a3936031\"}],\"result\":\"\"}\n * \u540E\u7AEF\u63A5\u53E3\u6587\u6863\uFF1Ahttps://anker-in.feishu.cn/wiki/DOYJwE9oxipWmYk072ncnJNznBb\n */\n addtocartRender?: string | ((_props: any) => React.ReactElement)\n /** \u4EA7\u54C1\u5361\u7247\uFF0C\u63A5\u53D7\u53C2\u6570\uFF1A {\"status\":\"complete\",\"args\":[{\"sku\":\"A3936031\",\"handle\":\"space-a40-a3936031\"}],\"result\":\"\"}\n * \u540E\u7AEF\u63A5\u53E3\u6587\u6863\uFF1Ahttps://anker-in.feishu.cn/wiki/DOYJwE9oxipWmYk072ncnJNznBb\n */\n productRender?: string | ((_props: any) => React.ReactElement)\n /** \u8BA2\u9605\u5361\u7247\uFF0C\u63A5\u53D7\u53C2\u6570\uFF1A\n * \u540E\u7AEF\u63A5\u53E3\u6587\u6863\uFF1Ahttps://anker-in.feishu.cn/wiki/DOYJwE9oxipWmYk072ncnJNznBb\n */\n signupRender?: string | ((_props: any) => React.ReactElement)\n /** CopilotPopup \u81EA\u5B9A\u4E49\u53C2\u6570\uFF0C\u53C2\u8003\uFF1Ahttps://docs.copilotkit.ai/reference/components/CopilotPopup */\n popup?: any\n /** \u6587\u6848\uFF0C{\"popupTip\": \"Hi ! Welcome to soundcore Innovations live chat\uFF01\", \"popupTipTimeout\": [3000, 6000]} */\n lang?: any\n /** \u53C2\u8003\u6B64\u6587\u6863\uFF1Ahttps://docs.copilotkit.ai/concepts/customize-look-and-feel */\n style?: any\n className?: string\n}\n\nconst Chat = (props: ChatProps) => {\n const {\n title,\n runtimeUrl,\n popup,\n shopify_domain,\n user_id = '',\n account = '',\n locale = '',\n query = '',\n showResponseButton,\n addtocartRender,\n productRender,\n signupRender,\n style,\n className = '',\n lang,\n } = props\n const [autoTipOpen, autoTipClose] = lang?.popupTipTimeout || [3000, 6000]\n\n const [openTip, setOpenTip] = useState(false)\n const [openPopup, setOpenPopup] = useState(false)\n const [start, setstart] = useState('')\n const [currentSuggestions, setCurrentSuggestions] = useState([])\n const [history, sethistory] = useState<[{ content: string; role: string }] | []>([])\n\n const getStart = useCallback(async () => {\n const result = await fetcher({\n url: `${runtimeUrl}/copilotkit/start${query}`,\n method: 'GET',\n headers: { user_id: user_id || '', shopify_domain, account, locale },\n })\n\n setCurrentSuggestions(result?.suggested_questions?.map((item: string) => ({ message: item, title: item })) || [])\n setstart(result?.opening_statement || '')\n sethistory(result?.history || [])\n }, [user_id, shopify_domain, account, locale])\n\n const getSuggestions = useCallback(async () => {\n const result = await fetcher({\n url: `${runtimeUrl}/copilotkit/suggested_questions${query}`,\n method: 'GET',\n headers: { user_id: user_id || '', shopify_domain, account, locale },\n })\n\n setCurrentSuggestions(\n result?.suggested_questions?.data?.map((item: string) => ({ message: item, title: item })) || []\n )\n }, [user_id, shopify_domain, account, locale])\n\n const setOpenTipFn = () => {\n if (!openTip) setOpenTip(true)\n setTimeout(() => {\n setOpenTip(false)\n }, autoTipClose)\n }\n\n useEffect(() => {\n const timer = setTimeout(() => {\n setOpenTipFn()\n }, autoTipOpen)\n\n return () => {\n clearTimeout(timer)\n }\n }, [])\n\n useEffect(() => {\n if (!start) {\n getStart()\n }\n }, [])\n\n return (\n <div className={className} style={style || {}}>\n {user_id && runtimeUrl && (\n <CopilotKit\n runtimeUrl={`${runtimeUrl}/copilotkit/chat${query}`}\n showDevConsole={false}\n headers={{ user_id: user_id || '', shopify_domain: shopify_domain, account, locale }}\n >\n <CopilotPopup\n {...popup}\n showResponseButton={showResponseButton !== 'follow'}\n labels={{\n title: title || 'DTC Live Chat',\n initial: start || '',\n }}\n instructions={start || ''}\n onInProgress={load => {\n if (openPopup && load) setCurrentSuggestions([])\n if (openPopup && !load) getSuggestions()\n }}\n Messages={({ messages, inProgress }) => (\n <Messages\n messages={messages}\n inProgress={inProgress}\n ResponseButton={showResponseButton === 'follow' ? <ResponseButton /> : undefined}\n >\n <Suggestions currentSuggestions={currentSuggestions} />\n </Messages>\n )}\n Button={({ open, setOpen }) => {\n const Button = popup?.Button || DefaultButton\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n setOpenPopup(open)\n }, [open])\n return (\n <>\n {lang?.popupTip && openTip && !openPopup && (\n <div className=\"copilotKitPopup copilotKitPopupTip\">\n <button\n onClick={() => {\n setOpen(true)\n setOpenTip(false)\n }}\n aria-label=\"Open Chat\"\n className=\"copilotKitPopupTipContent\"\n >\n {lang?.popupTip}\n </button>\n </div>\n )}\n <Button open={open} setOpen={setOpen} setOpenTip={setOpenTip} />\n </>\n )\n }}\n >\n <CopilotAction\n start={start}\n history={history}\n addtocartRender={addtocartRender}\n productRender={productRender}\n signupRender={signupRender}\n />\n </CopilotPopup>\n </CopilotKit>\n )}\n </div>\n )\n}\n\nexport default Chat\n"],
5
- "mappings": "0jBAAA,IAAAA,GAAA,GAAAC,EAAAD,GAAA,aAAAE,KAAA,eAAAC,EAAAH,IAqJkE,IAAAI,EAAA,6BApJlEC,GAAkB,iBAClBA,EAAiD,iBACjDC,EAA2B,kCAC3BC,EAA6B,gCAC7BC,EAA0B,0BAC1BC,EAAqB,4BACrBC,EAA2B,4BAC3BC,EAAwB,+BACxBC,EAA8B,uBAC9BC,EAAoB,uCA0CpB,MAAMC,GAAQC,GAAqB,CACjC,KAAM,CACJ,MAAAC,EACA,WAAAC,EACA,MAAAC,EACA,eAAAC,EACA,QAAAC,EAAU,GACV,QAAAC,EAAU,GACV,OAAAC,EAAS,GACT,MAAAC,EAAQ,GACR,mBAAAC,EACA,gBAAAC,EACA,cAAAC,EACA,aAAAC,EACA,MAAAC,EACA,UAAAC,EAAY,GACZ,KAAAC,CACF,EAAIf,EACE,CAACgB,EAAaC,CAAY,EAAIF,GAAM,iBAAmB,CAAC,IAAM,GAAI,EAElE,CAACG,EAASC,CAAU,KAAI,YAAS,EAAK,EACtC,CAACC,EAAWC,CAAY,KAAI,YAAS,EAAK,EAC1C,CAACC,EAAOC,CAAQ,KAAI,YAAS,EAAE,EAC/B,CAACC,EAAoBC,CAAqB,KAAI,YAAS,CAAC,CAAC,EACzD,CAACC,EAASC,CAAU,KAAI,YAAmD,CAAC,CAAC,EAE7EC,KAAW,eAAY,SAAY,CACvC,MAAMC,EAAS,QAAM,EAAAC,SAAQ,CAC3B,IAAK,GAAG5B,CAAU,oBAAoBM,CAAK,GAC3C,OAAQ,MACR,QAAS,CAAE,QAASH,GAAW,GAAI,eAAAD,EAAgB,QAAAE,EAAS,OAAAC,CAAO,CACrE,CAAC,EAEDkB,EAAsBI,GAAQ,qBAAqB,IAAKE,IAAkB,CAAE,QAASA,EAAM,MAAOA,CAAK,EAAE,GAAK,CAAC,CAAC,EAChHR,EAASM,GAAQ,mBAAqB,EAAE,EACxCF,EAAWE,GAAQ,SAAW,CAAC,CAAC,CAClC,EAAG,CAACxB,EAASD,EAAgBE,EAASC,CAAM,CAAC,EAEvCyB,KAAiB,eAAY,SAAY,CAC7C,MAAMH,EAAS,QAAM,EAAAC,SAAQ,CAC3B,IAAK,GAAG5B,CAAU,kCAAkCM,CAAK,GACzD,OAAQ,MACR,QAAS,CAAE,QAASH,GAAW,GAAI,eAAAD,EAAgB,QAAAE,EAAS,OAAAC,CAAO,CACrE,CAAC,EAEDkB,EACEI,GAAQ,qBAAqB,MAAM,IAAKE,IAAkB,CAAE,QAASA,EAAM,MAAOA,CAAK,EAAE,GAAK,CAAC,CACjG,CACF,EAAG,CAAC1B,EAASD,EAAgBE,EAASC,CAAM,CAAC,EAEvC0B,EAAe,IAAM,CACpBf,GAASC,EAAW,EAAI,EAC7B,WAAW,IAAM,CACfA,EAAW,EAAK,CAClB,EAAGF,CAAY,CACjB,EAEA,sBAAU,IAAM,CACd,MAAMiB,EAAQ,WAAW,IAAM,CAC7BD,EAAa,CACf,EAAGjB,CAAW,EAEd,MAAO,IAAM,CACX,aAAakB,CAAK,CACpB,CACF,EAAG,CAAC,CAAC,KAEL,aAAU,IAAM,CACTZ,GACHM,EAAS,CAEb,EAAG,CAAC,CAAC,KAGH,OAAC,OAAI,UAAWd,EAAW,MAAOD,GAAS,CAAC,EACzC,SAAAR,GAAWH,MACV,OAAC,cACC,WAAY,GAAGA,CAAU,mBAAmBM,CAAK,GACjD,eAAgB,GAChB,QAAS,CAAE,QAASH,GAAW,GAAI,eAAgBD,EAAgB,QAAAE,EAAS,OAAAC,CAAO,EAEnF,mBAAC,gBACE,GAAGJ,EACJ,mBAAoBM,IAAuB,SAC3C,OAAQ,CACN,MAAOR,GAAS,gBAChB,QAASqB,GAAS,EACpB,EACA,aAAcA,GAAS,GACvB,aAAca,GAAQ,CAChBf,GAAae,GAAMV,EAAsB,CAAC,CAAC,EAC3CL,GAAa,CAACe,GAAMH,EAAe,CACzC,EACA,SAAU,CAAC,CAAE,SAAAI,EAAU,WAAAC,CAAW,OAChC,OAAC,EAAAC,QAAA,CACC,SAAUF,EACV,WAAYC,EACZ,eAAgB5B,IAAuB,YAAW,OAAC,EAAA8B,QAAA,EAAe,EAAK,OAEvE,mBAAC,EAAAC,QAAA,CAAY,mBAAoBhB,EAAoB,EACvD,EAEF,OAAQ,CAAC,CAAE,KAAAiB,EAAM,QAAAC,CAAQ,IAAM,CAC7B,MAAMC,EAASxC,GAAO,QAAU,EAAAyC,QAEhC,sBAAU,IAAM,CACdvB,EAAaoB,CAAI,CACnB,EAAG,CAACA,CAAI,CAAC,KAEP,oBACG,UAAA1B,GAAM,UAAYG,GAAW,CAACE,MAC7B,OAAC,OAAI,UAAU,qCACb,mBAAC,UACC,QAAS,IAAM,CACbsB,EAAQ,EAAI,EACZvB,EAAW,EAAK,CAClB,EACA,aAAW,YACX,UAAU,4BAET,SAAAJ,GAAM,SACT,EACF,KAEF,OAAC4B,EAAA,CAAO,KAAMF,EAAM,QAASC,EAAS,WAAYvB,EAAY,GAChE,CAEJ,EAEA,mBAAC,iBACC,MAAOG,EACP,QAASI,EACT,gBAAiBhB,EACjB,cAAeC,EACf,aAAcC,EAChB,EACF,EACF,EAEJ,CAEJ,EAEA,IAAOzB,GAAQY",
6
- "names": ["chat_exports", "__export", "chat_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_react_core", "import_react_ui", "import_button", "import_messages", "import_response", "import_suggestions", "import_action", "import_fetcher", "Chat", "props", "title", "runtimeUrl", "popup", "shopify_domain", "user_id", "account", "locale", "query", "showResponseButton", "addtocartRender", "productRender", "signupRender", "style", "className", "lang", "autoTipOpen", "autoTipClose", "openTip", "setOpenTip", "openPopup", "setOpenPopup", "start", "setstart", "currentSuggestions", "setCurrentSuggestions", "history", "sethistory", "getStart", "result", "fetcher", "item", "getSuggestions", "setOpenTipFn", "timer", "load", "messages", "inProgress", "Messages", "ResponseButton", "Suggestions", "open", "setOpen", "Button", "DefaultButton"]
4
+ "sourcesContent": ["/* eslint-disable react-hooks/exhaustive-deps */\nimport React from 'react'\nimport { useCallback, useState, useEffect } from 'react'\nimport { CopilotKit } from '@copilotkit/react-core'\nimport { CopilotPopup } from '@copilotkit/react-ui'\nimport DefaultButton from './button.js'\nimport Messages from './messages.js'\nimport ResponseButton from './response.js'\nimport Suggestions from './suggestions.js'\nimport { CopilotAction } from './action.js'\nimport fetcher from '../../helpers/fetcher.js'\n\nexport interface ChatProps {\n title: string\n runtimeUrl: string\n shopify_domain: string\n /** GA \u7684 client id\n */\n user_id: string\n /** \u662F\u5426\u767B\u9646\u7528\u6237 0 or 1\n */\n account?: string\n /** \u7528\u6237\u6D4F\u89C8\u5668\u8BED\u8A00\n */\n locale?: string\n /** ?a=1&b=2\n */\n query?: string\n /** 'follow' or 'unfollow' | true or false\n * follow: ResponseButton \u4F1A\u8DDF\u968F\u5728 messages \u7684\u540E\u8FB9\n * unfollow: ResponseButton \u5728\u804A\u5929\u6846\u5E95\u90E8\n */\n showResponseButton?: string | boolean\n /** \u8DF3\u8F6C checkout action \u5361\u7247\uFF0C\u63A5\u53D7\u53C2\u6570\uFF1A {\"status\":\"complete\",\"args\":[{\"sku\":[\"A3936031\"],\"handle\":\"space-a40-a3936031\"}],\"result\":\"\"}\n * \u540E\u7AEF\u63A5\u53E3\u6587\u6863\uFF1Ahttps://anker-in.feishu.cn/wiki/DOYJwE9oxipWmYk072ncnJNznBb\n */\n gotocheckoutRender?: string | ((_props: any) => React.ReactElement)\n /** \u6253\u5F00\u8D2D\u7269\u8F66 action \u5361\u7247\uFF0C\u63A5\u53D7\u53C2\u6570\uFF1A {\"status\":\"complete\",\"args\":[{\"sku\":[\"A3936031\"],\"handle\":\"space-a40-a3936031\"}],\"result\":\"\"}\n * \u540E\u7AEF\u63A5\u53E3\u6587\u6863\uFF1Ahttps://anker-in.feishu.cn/wiki/DOYJwE9oxipWmYk072ncnJNznBb\n */\n gotocartRender?: string | ((_props: any) => React.ReactElement)\n /** \u52A0\u8D2D\u5361\u7247\uFF0C\u63A5\u53D7\u53C2\u6570\uFF1A {\"status\":\"complete\",\"args\":[{\"sku\":[\"A3936031\"],\"handle\":\"space-a40-a3936031\"}],\"result\":\"\"}\n * \u540E\u7AEF\u63A5\u53E3\u6587\u6863\uFF1Ahttps://anker-in.feishu.cn/wiki/DOYJwE9oxipWmYk072ncnJNznBb\n */\n addtocartRender?: string | ((_props: any) => React.ReactElement)\n /** \u4EA7\u54C1\u5361\u7247\uFF0C\u63A5\u53D7\u53C2\u6570\uFF1A {\"status\":\"complete\",\"args\":[{\"sku\":[\"A3936031\"],\"handle\":\"space-a40-a3936031\"}],\"result\":\"\"}\n * \u540E\u7AEF\u63A5\u53E3\u6587\u6863\uFF1Ahttps://anker-in.feishu.cn/wiki/DOYJwE9oxipWmYk072ncnJNznBb\n */\n productRender?: string | ((_props: any) => React.ReactElement)\n /** \u8BA2\u9605\u5361\u7247\uFF0C\u63A5\u53D7\u53C2\u6570\uFF1A {\"status\":\"complete\",\"args\":[{\"sku\":[\"A3936031\"],\"handle\":\"space-a40-a3936031\"}],\"result\":\"\"}\n * \u540E\u7AEF\u63A5\u53E3\u6587\u6863\uFF1Ahttps://anker-in.feishu.cn/wiki/DOYJwE9oxipWmYk072ncnJNznBb\n */\n signupRender?: string | ((_props: any) => React.ReactElement)\n /** CopilotPopup \u81EA\u5B9A\u4E49\u53C2\u6570\uFF0C\u53C2\u8003\uFF1Ahttps://docs.copilotkit.ai/reference/components/CopilotPopup */\n popup?: any\n /** \u6587\u6848\uFF0C{\"popupTip\": \"Hi ! Welcome to soundcore Innovations live chat\uFF01\", \"popupTipTimeout\": [3000, 6000]} */\n lang?: any\n /** \u53C2\u8003\u6B64\u6587\u6863\uFF1Ahttps://docs.copilotkit.ai/concepts/customize-look-and-feel */\n style?: any\n className?: string\n}\n\nconst Chat = (props: ChatProps) => {\n const {\n title,\n runtimeUrl,\n popup,\n shopify_domain,\n user_id = '',\n account = '',\n locale = '',\n query = '',\n showResponseButton,\n gotocheckoutRender,\n gotocartRender,\n addtocartRender,\n productRender,\n signupRender,\n style,\n className = '',\n lang,\n } = props\n const [autoTipOpen, autoTipClose] = lang?.popupTipTimeout || [3000, 6000]\n\n const [openTip, setOpenTip] = useState(false)\n const [openPopup, setOpenPopup] = useState(false)\n const [start, setstart] = useState('')\n const [currentSuggestions, setCurrentSuggestions] = useState([])\n const [history, sethistory] = useState<[{ content: string; role: string }] | []>([])\n\n const getStart = useCallback(async () => {\n const result = await fetcher({\n url: `${runtimeUrl}/copilotkit/start${query}`,\n method: 'GET',\n headers: { user_id: user_id || '', shopify_domain, account, locale },\n })\n\n setCurrentSuggestions(result?.suggested_questions?.map((item: string) => ({ message: item, title: item })) || [])\n setstart(result?.opening_statement || '')\n sethistory(result?.history || [])\n }, [user_id, shopify_domain, account, locale])\n\n const getSuggestions = useCallback(async () => {\n const result = await fetcher({\n url: `${runtimeUrl}/copilotkit/suggested_questions${query}`,\n method: 'GET',\n headers: { user_id: user_id || '', shopify_domain, account, locale },\n })\n\n setCurrentSuggestions(\n result?.suggested_questions?.data?.map((item: string) => ({ message: item, title: item })) || []\n )\n }, [user_id, shopify_domain, account, locale])\n\n const setOpenTipFn = () => {\n if (!openTip) setOpenTip(true)\n setTimeout(() => {\n setOpenTip(false)\n }, autoTipClose)\n }\n\n useEffect(() => {\n const timer = setTimeout(() => {\n setOpenTipFn()\n }, autoTipOpen)\n\n return () => {\n clearTimeout(timer)\n }\n }, [])\n\n useEffect(() => {\n if (!start) {\n getStart()\n }\n }, [])\n\n return (\n <div className={className} style={style || {}}>\n {user_id && runtimeUrl && (\n <CopilotKit\n runtimeUrl={`${runtimeUrl}/copilotkit/chat${query}`}\n showDevConsole={false}\n headers={{ user_id: user_id || '', shopify_domain: shopify_domain, account, locale }}\n >\n <CopilotPopup\n {...popup}\n showResponseButton={showResponseButton !== 'follow'}\n labels={{\n title: title || 'DTC Live Chat',\n initial: start || '',\n }}\n instructions={start || ''}\n onInProgress={load => {\n if (openPopup && load) setCurrentSuggestions([])\n if (openPopup && !load) getSuggestions()\n }}\n Messages={({ messages, inProgress }) => (\n <Messages\n messages={messages}\n inProgress={inProgress}\n ResponseButton={showResponseButton === 'follow' ? <ResponseButton /> : undefined}\n >\n <Suggestions currentSuggestions={currentSuggestions} />\n </Messages>\n )}\n Button={({ open, setOpen }) => {\n const Button = popup?.Button || DefaultButton\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n setOpenPopup(open)\n }, [open])\n return (\n <>\n {lang?.popupTip && openTip && !openPopup && (\n <div className=\"copilotKitPopup copilotKitPopupTip\">\n <button\n onClick={() => {\n setOpen(true)\n setOpenTip(false)\n }}\n aria-label=\"Open Chat\"\n className=\"copilotKitPopupTipContent\"\n >\n {lang?.popupTip}\n </button>\n </div>\n )}\n <Button open={open} setOpen={setOpen} setOpenTip={setOpenTip} />\n </>\n )\n }}\n >\n <CopilotAction\n start={start}\n history={history}\n gotocartRender={gotocartRender}\n gotocheckoutRender={gotocheckoutRender}\n addtocartRender={addtocartRender}\n productRender={productRender}\n signupRender={signupRender}\n />\n </CopilotPopup>\n </CopilotKit>\n )}\n </div>\n )\n}\n\nexport default Chat\n"],
5
+ "mappings": "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",
6
+ "names": ["chat_exports", "__export", "chat_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_react_core", "import_react_ui", "import_button", "import_messages", "import_response", "import_suggestions", "import_action", "import_fetcher", "Chat", "props", "title", "runtimeUrl", "popup", "shopify_domain", "user_id", "account", "locale", "query", "showResponseButton", "gotocheckoutRender", "gotocartRender", "addtocartRender", "productRender", "signupRender", "style", "className", "lang", "autoTipOpen", "autoTipClose", "openTip", "setOpenTip", "openPopup", "setOpenPopup", "start", "setstart", "currentSuggestions", "setCurrentSuggestions", "history", "sethistory", "getStart", "result", "fetcher", "item", "getSuggestions", "setOpenTipFn", "timer", "load", "messages", "inProgress", "Messages", "ResponseButton", "Suggestions", "open", "setOpen", "Button", "DefaultButton"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var h=Object.create;var g=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,b=Object.prototype.hasOwnProperty;var w=(t,e)=>{for(var i in e)g(t,i,{get:e[i],enumerable:!0})},R=(t,e,i,p)=>{if(e&&typeof e=="object"||typeof e=="function")for(let c of I(e))!b.call(t,c)&&c!==i&&g(t,c,{get:()=>e[c],enumerable:!(p=k(e,c))||p.enumerable});return t};var B=(t,e,i)=>(i=t!=null?h(E(t)):{},R(e||!t||!t.__esModule?g(i,"default",{value:t,enumerable:!0}):i,t)),S=t=>R(g({},"__esModule",{value:!0}),t);var L={};w(L,{default:()=>F});module.exports=S(L);var o=require("react/jsx-runtime"),f=B(require("react")),m=require("@copilotkit/react-ui"),K=require("./markdown.js"),A=require("@copilotkit/react-core"),n=require("@copilotkit/runtime-client-gql");const T=({messages:t,inProgress:e,ResponseButton:i,children:p})=>{const{chatComponentsCache:c}=(0,A.useCopilotContext)(),a=(0,m.useChatContext)();t=[...(0,f.useMemo)(()=>x(a.labels.initial),[a.labels.initial]),...t];const v={};for(let s=0;s<t.length;s++)if(t[s]instanceof n.ActionExecutionMessage){const r=t[s].id,l=t.find(u=>u instanceof n.ResultMessage&&u.actionExecutionId===r);l&&(v[r]=n.ResultMessage.decodeResult(l.result||""))}const y=f.default.useRef(null),C=()=>{y.current&&y.current.scrollIntoView({behavior:"auto"})};return(0,f.useEffect)(()=>{C()},[t]),(0,o.jsxs)("div",{className:"copilotKitMessages",children:[t.map((s,r)=>{const l=r===t.length-1;if(s instanceof n.TextMessage&&s.role==="user")return(0,o.jsx)("div",{className:"copilotKitMessage copilotKitUserMessage",children:s.content},r);if(s instanceof n.TextMessage&&s.role=="assistant")return(0,o.jsx)("div",{className:"copilotKitMessage copilotKitAssistantMessage",children:l&&e&&!s.content?a.icons.spinnerIcon:(0,o.jsx)(K.Markdown,{content:s.content})},r);if(s instanceof n.ActionExecutionMessage)if(c.current!==null&&c.current[s.name]){const u=c.current[s.name];if(typeof u=="string")return l&&e?(0,o.jsxs)("div",{className:"copilotKitMessage copilotKitAssistantMessage",children:[a.icons.spinnerIcon," ",(0,o.jsx)("span",{className:"inProgressLabel",children:u})]},r):null;{const N=s.arguments;let d="inProgress";v[s.id]!==void 0?d="complete":s.status.code!==n.MessageStatusCode.Pending&&(d="executing");const M=u({status:d,args:N,result:v[s.id]});return!M&&d==="complete"?null:typeof M=="string"?(0,o.jsxs)("div",{className:"copilotKitMessage copilotKitAssistantMessage",children:[l&&e&&a.icons.spinnerIcon," ",M]},r):(0,o.jsx)("div",{className:"copilotKitCustomAssistantMessage",children:M},r)}}else return!e||!l?null:(0,o.jsx)("div",{className:"copilotKitMessage copilotKitAssistantMessage",children:a.icons.spinnerIcon},r)}),(0,o.jsx)("div",{className:"responseButtonBox",children:i}),(0,o.jsx)("footer",{ref:y,children:p})]})};function x(t){let e=[];return t&&(Array.isArray(t)?e.push(...t):e.push(t)),e.map(i=>new n.TextMessage({role:n.Role.Assistant,content:i}))}var F=T;
1
+ "use strict";var k=Object.create;var g=Object.defineProperty;var I=Object.getOwnPropertyDescriptor;var L=Object.getOwnPropertyNames;var T=Object.getPrototypeOf,b=Object.prototype.hasOwnProperty;var w=(t,s)=>{for(var o in s)g(t,o,{get:s[o],enumerable:!0})},h=(t,s,o,d)=>{if(s&&typeof s=="object"||typeof s=="function")for(let a of L(s))!b.call(t,a)&&a!==o&&g(t,a,{get:()=>s[a],enumerable:!(d=I(s,a))||d.enumerable});return t};var H=(t,s,o)=>(o=t!=null?k(T(t)):{},h(s||!t||!t.__esModule?g(o,"default",{value:t,enumerable:!0}):o,t)),S=t=>h(g({},"__esModule",{value:!0}),t);var P={};w(P,{default:()=>D});module.exports=S(P);var n=require("react/jsx-runtime"),r=H(require("react")),A=require("@copilotkit/react-ui"),x=require("./markdown.js"),C=require("@copilotkit/react-core"),i=require("@copilotkit/runtime-client-gql");const B=({messages:t,inProgress:s,ResponseButton:o,children:d})=>{const[a,p]=(0,r.useState)(!0),{chatComponentsCache:m}=(0,C.useCopilotContext)(),u=(0,A.useChatContext)();t=[...(0,r.useMemo)(()=>F(u.labels.initial),[u.labels.initial]),...t];const y={};for(let e=0;e<t.length;e++)if(t[e]instanceof i.ActionExecutionMessage){const l=t[e].id,c=t.find(f=>f instanceof i.ResultMessage&&f.actionExecutionId===l);c&&(y[l]=i.ResultMessage.decodeResult(c.result||""))}const R=r.default.useRef(null),K=r.default.useRef(null),E=()=>{R.current&&R.current.scrollIntoView({behavior:"auto"})};return(0,r.useEffect)(()=>{E()},[t]),(0,r.useEffect)(()=>{const e=document.querySelector(".copilotKitInput textarea");e&&e.addEventListener("click",function(){e.value&&document.activeElement===e?p(!1):(p(!0),E())}),e&&e.addEventListener("input",function(){e.value&&document.activeElement===e?p(!1):(p(!0),E())})},[]),(0,r.useEffect)(()=>{const e=K.current;a&&e?(e.style.maxHeight="500px",e.style.overflow="visible"):!a&&e&&(e.style.maxHeight="0",e.style.overflow="hidden")},[a]),(0,n.jsxs)("div",{className:"copilotKitMessages",children:[t.map((e,l)=>{const c=l===t.length-1;if(e instanceof i.TextMessage&&e.role==="user")return(0,n.jsx)("div",{className:"copilotKitMessage copilotKitUserMessage",children:e.content},l);if(e instanceof i.TextMessage&&e.role=="assistant")return(0,n.jsx)("div",{className:"copilotKitMessage copilotKitAssistantMessage",children:c&&s&&!e.content?u.icons.spinnerIcon:(0,n.jsx)(x.Markdown,{content:e.content})},l);if(e instanceof i.ActionExecutionMessage)if(m.current!==null&&m.current[e.name]){const f=m.current[e.name];if(typeof f=="string")return c&&s?(0,n.jsxs)("div",{className:"copilotKitMessage copilotKitAssistantMessage",children:[u.icons.spinnerIcon," ",(0,n.jsx)("span",{className:"inProgressLabel",children:f})]},l):null;{const N=e.arguments;let M="inProgress";y[e.id]!==void 0?M="complete":e.status.code!==i.MessageStatusCode.Pending&&(M="executing");const v=f({status:M,args:N,result:y[e.id]});return!v&&M==="complete"?null:typeof v=="string"?(0,n.jsxs)("div",{className:"copilotKitMessage copilotKitAssistantMessage",children:[c&&s&&u.icons.spinnerIcon," ",v]},l):(0,n.jsx)("div",{className:"copilotKitCustomAssistantMessage",children:v},l)}}else return!s||!c?null:(0,n.jsx)("div",{className:"copilotKitMessage copilotKitAssistantMessage",children:u.icons.spinnerIcon},l)}),(0,n.jsx)("div",{className:"responseButtonBox",children:o}),(0,n.jsx)("footer",{ref:R,children:(0,n.jsx)("div",{className:"copilotKitMessagesFooter",ref:K,children:d})})]})};function F(t){let s=[];return t&&(Array.isArray(t)?s.push(...t):s.push(t)),s.map(o=>new i.TextMessage({role:i.Role.Assistant,content:o}))}var D=B;
2
2
  //# sourceMappingURL=messages.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/chat/messages.tsx"],
4
- "sourcesContent": ["import React, { useEffect, useMemo } from 'react'\nimport type { MessagesProps } from './props.js'\nimport { useChatContext } from '@copilotkit/react-ui'\nimport { Markdown } from './markdown.js'\nimport { type RenderFunctionStatus, useCopilotContext } from '@copilotkit/react-core'\nimport {\n MessageStatusCode,\n ActionExecutionMessage,\n Message,\n ResultMessage,\n TextMessage,\n Role,\n} from '@copilotkit/runtime-client-gql'\n\nconst Messages = ({ messages, inProgress, ResponseButton, children }: MessagesProps) => {\n const { chatComponentsCache } = useCopilotContext()\n\n const context = useChatContext()\n const initialMessages = useMemo(() => makeInitialMessages(context.labels.initial), [context.labels.initial])\n messages = [...initialMessages, ...messages]\n\n const functionResults: Record<string, string> = {}\n\n for (let i = 0; i < messages.length; i++) {\n if (messages[i] instanceof ActionExecutionMessage) {\n const id = messages[i].id\n const resultMessage: ResultMessage | undefined = messages.find(\n message => message instanceof ResultMessage && message.actionExecutionId === id\n ) as ResultMessage | undefined\n\n if (resultMessage) {\n functionResults[id] = ResultMessage.decodeResult(resultMessage.result || '')\n }\n }\n }\n\n const messagesEndRef = React.useRef<HTMLDivElement>(null)\n\n const scrollToBottom = () => {\n if (messagesEndRef.current) {\n messagesEndRef.current.scrollIntoView({\n behavior: 'auto',\n })\n }\n }\n\n useEffect(() => {\n scrollToBottom()\n }, [messages])\n\n return (\n <div className=\"copilotKitMessages\">\n {messages.map((message, index) => {\n const isCurrentMessage = index === messages.length - 1\n\n if (message instanceof TextMessage && message.role === 'user') {\n return (\n <div key={index} className=\"copilotKitMessage copilotKitUserMessage\">\n {message.content}\n </div>\n )\n } else if (message instanceof TextMessage && message.role == 'assistant') {\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {isCurrentMessage && inProgress && !message.content ? (\n context.icons.spinnerIcon\n ) : (\n <Markdown content={message.content} />\n )}\n </div>\n )\n } else if (message instanceof ActionExecutionMessage) {\n if (chatComponentsCache.current !== null && chatComponentsCache.current[message.name]) {\n const render = chatComponentsCache.current[message.name]\n // render a static string\n if (typeof render === 'string') {\n // when render is static, we show it only when in progress\n if (isCurrentMessage && inProgress) {\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {context.icons.spinnerIcon} <span className=\"inProgressLabel\">{render}</span>\n </div>\n )\n }\n // Done - silent by default to avoid a series of \"done\" messages\n else {\n return null\n }\n }\n // render is a function\n else {\n const args = message.arguments\n\n let status: RenderFunctionStatus = 'inProgress'\n\n if (functionResults[message.id] !== undefined) {\n status = 'complete'\n } else if (message.status.code !== MessageStatusCode.Pending) {\n status = 'executing'\n }\n\n const toRender = render({\n status: status as any,\n args,\n result: functionResults[message.id],\n })\n\n // No result and complete: stay silent\n if (!toRender && status === 'complete') {\n return null\n }\n\n if (typeof toRender === 'string') {\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {isCurrentMessage && inProgress && context.icons.spinnerIcon} {toRender}\n </div>\n )\n } else {\n return (\n <div key={index} className=\"copilotKitCustomAssistantMessage\">\n {toRender}\n </div>\n )\n }\n }\n }\n // No render function found- show the default message\n else if (!inProgress || !isCurrentMessage) {\n // Done - silent by default to avoid a series of \"done\" messages\n return null\n } else {\n // In progress\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {context.icons.spinnerIcon}\n </div>\n )\n }\n }\n })}\n <div className=\"responseButtonBox\">{ResponseButton}</div>\n <footer ref={messagesEndRef}>{children}</footer>\n </div>\n )\n}\n\nfunction makeInitialMessages(initial?: string | string[]): Message[] {\n let initialArray: string[] = []\n if (initial) {\n if (Array.isArray(initial)) {\n initialArray.push(...initial)\n } else {\n initialArray.push(initial)\n }\n }\n\n return initialArray.map(\n message =>\n new TextMessage({\n role: Role.Assistant,\n content: message,\n })\n )\n}\n\nexport default Messages\n"],
5
- "mappings": "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",
6
- "names": ["messages_exports", "__export", "messages_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_react_ui", "import_markdown", "import_react_core", "import_runtime_client_gql", "Messages", "messages", "inProgress", "ResponseButton", "children", "chatComponentsCache", "context", "makeInitialMessages", "functionResults", "i", "id", "resultMessage", "message", "messagesEndRef", "React", "scrollToBottom", "index", "isCurrentMessage", "render", "args", "status", "toRender", "initial", "initialArray"]
4
+ "sourcesContent": ["import React, { useEffect, useMemo, useState } from 'react'\nimport type { MessagesProps } from './props.js'\nimport { useChatContext } from '@copilotkit/react-ui'\nimport { Markdown } from './markdown.js'\nimport { type RenderFunctionStatus, useCopilotContext } from '@copilotkit/react-core'\nimport {\n MessageStatusCode,\n ActionExecutionMessage,\n Message,\n ResultMessage,\n TextMessage,\n Role,\n} from '@copilotkit/runtime-client-gql'\n\nconst Messages = ({ messages, inProgress, ResponseButton, children }: MessagesProps) => {\n const [isExpanded, setIsExpanded] = useState(true)\n\n const { chatComponentsCache } = useCopilotContext()\n\n const context = useChatContext()\n const initialMessages = useMemo(() => makeInitialMessages(context.labels.initial), [context.labels.initial])\n messages = [...initialMessages, ...messages]\n\n const functionResults: Record<string, string> = {}\n\n for (let i = 0; i < messages.length; i++) {\n if (messages[i] instanceof ActionExecutionMessage) {\n const id = messages[i].id\n const resultMessage: ResultMessage | undefined = messages.find(\n message => message instanceof ResultMessage && message.actionExecutionId === id\n ) as ResultMessage | undefined\n\n if (resultMessage) {\n functionResults[id] = ResultMessage.decodeResult(resultMessage.result || '')\n }\n }\n }\n\n const messagesEndRef = React.useRef<HTMLDivElement>(null)\n const messagesEndChildRef = React.useRef<HTMLDivElement>(null)\n\n const scrollToBottom = () => {\n if (messagesEndRef.current) {\n messagesEndRef.current.scrollIntoView({\n behavior: 'auto',\n })\n }\n }\n\n useEffect(() => {\n scrollToBottom()\n }, [messages])\n\n useEffect(() => {\n const textarea = document.querySelector('.copilotKitInput textarea') as HTMLTextAreaElement\n\n textarea &&\n textarea.addEventListener('click', function () {\n if (textarea.value && document.activeElement === textarea) {\n setIsExpanded(false)\n } else {\n setIsExpanded(true)\n scrollToBottom()\n }\n })\n textarea &&\n textarea.addEventListener('input', function () {\n if (textarea.value && document.activeElement === textarea) {\n setIsExpanded(false)\n } else {\n setIsExpanded(true)\n scrollToBottom()\n }\n })\n }, [])\n\n useEffect(() => {\n const content = messagesEndChildRef.current\n if (isExpanded && content) {\n content.style.maxHeight = '500px'\n content.style.overflow = 'visible'\n } else if (!isExpanded && content) {\n content.style.maxHeight = '0'\n content.style.overflow = 'hidden'\n }\n }, [isExpanded])\n\n return (\n <div className=\"copilotKitMessages\">\n {messages.map((message, index) => {\n const isCurrentMessage = index === messages.length - 1\n\n if (message instanceof TextMessage && message.role === 'user') {\n return (\n <div key={index} className=\"copilotKitMessage copilotKitUserMessage\">\n {message.content}\n </div>\n )\n } else if (message instanceof TextMessage && message.role == 'assistant') {\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {isCurrentMessage && inProgress && !message.content ? (\n context.icons.spinnerIcon\n ) : (\n <Markdown content={message.content} />\n )}\n </div>\n )\n } else if (message instanceof ActionExecutionMessage) {\n if (chatComponentsCache.current !== null && chatComponentsCache.current[message.name]) {\n const render = chatComponentsCache.current[message.name]\n // render a static string\n if (typeof render === 'string') {\n // when render is static, we show it only when in progress\n if (isCurrentMessage && inProgress) {\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {context.icons.spinnerIcon} <span className=\"inProgressLabel\">{render}</span>\n </div>\n )\n }\n // Done - silent by default to avoid a series of \"done\" messages\n else {\n return null\n }\n }\n // render is a function\n else {\n const args = message.arguments\n\n let status: RenderFunctionStatus = 'inProgress'\n\n if (functionResults[message.id] !== undefined) {\n status = 'complete'\n } else if (message.status.code !== MessageStatusCode.Pending) {\n status = 'executing'\n }\n\n const toRender = render({\n status: status as any,\n args,\n result: functionResults[message.id],\n })\n\n // No result and complete: stay silent\n if (!toRender && status === 'complete') {\n return null\n }\n\n if (typeof toRender === 'string') {\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {isCurrentMessage && inProgress && context.icons.spinnerIcon} {toRender}\n </div>\n )\n } else {\n return (\n <div key={index} className=\"copilotKitCustomAssistantMessage\">\n {toRender}\n </div>\n )\n }\n }\n }\n // No render function found- show the default message\n else if (!inProgress || !isCurrentMessage) {\n // Done - silent by default to avoid a series of \"done\" messages\n return null\n } else {\n // In progress\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {context.icons.spinnerIcon}\n </div>\n )\n }\n }\n })}\n <div className=\"responseButtonBox\">{ResponseButton}</div>\n <footer ref={messagesEndRef}>\n <div className=\"copilotKitMessagesFooter\" ref={messagesEndChildRef}>\n {children}\n </div>\n </footer>\n </div>\n )\n}\n\nfunction makeInitialMessages(initial?: string | string[]): Message[] {\n let initialArray: string[] = []\n if (initial) {\n if (Array.isArray(initial)) {\n initialArray.push(...initial)\n } else {\n initialArray.push(initial)\n }\n }\n\n return initialArray.map(\n message =>\n new TextMessage({\n role: Role.Assistant,\n content: message,\n })\n )\n}\n\nexport default Messages\n"],
5
+ "mappings": "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",
6
+ "names": ["messages_exports", "__export", "messages_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_react_ui", "import_markdown", "import_react_core", "import_runtime_client_gql", "Messages", "messages", "inProgress", "ResponseButton", "children", "isExpanded", "setIsExpanded", "chatComponentsCache", "context", "makeInitialMessages", "functionResults", "i", "id", "resultMessage", "message", "messagesEndRef", "React", "messagesEndChildRef", "scrollToBottom", "textarea", "content", "index", "isCurrentMessage", "render", "args", "status", "toRender", "initial", "initialArray"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var p=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var g=(t,o)=>{for(var e in o)p(t,e,{get:o[e],enumerable:!0})},C=(t,o,e,s)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of l(o))!u.call(t,n)&&n!==e&&p(t,n,{get:()=>o[n],enumerable:!(s=c(o,n))||s.enumerable});return t};var b=t=>C(p({},"__esModule",{value:!0}),t);var f={};g(f,{default:()=>d});module.exports=b(f);var a=require("react/jsx-runtime"),r=require("@copilotkit/react-ui"),i=require("@copilotkit/react-core");const m=()=>{const t=(0,r.useChatContext)(),{isLoading:o,reloadMessages:e,stopGeneration:s}=(0,i.useCopilotChat)();return(0,a.jsxs)("button",{onClick:o?s:e,className:"copilotKitResponseButton",children:[o?t.labels.stopGenerating:t.labels.regenerateResponse,(0,a.jsx)("span",{children:o?t.icons.stopIcon:t.icons.regenerateIcon})]})};var d=m;
1
+ "use strict";var p=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var g=(t,o)=>{for(var e in o)p(t,e,{get:o[e],enumerable:!0})},C=(t,o,e,s)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of l(o))!u.call(t,n)&&n!==e&&p(t,n,{get:()=>o[n],enumerable:!(s=c(o,n))||s.enumerable});return t};var b=t=>C(p({},"__esModule",{value:!0}),t);var f={};g(f,{default:()=>d});module.exports=b(f);var a=require("react/jsx-runtime"),r=require("@copilotkit/react-ui"),i=require("@copilotkit/react-core");const m=()=>{const t=(0,r.useChatContext)(),{isLoading:o,reloadMessages:e,stopGeneration:s}=(0,i.useCopilotChat)();return!o&&(0,a.jsxs)("button",{onClick:o?s:e,className:"copilotKitResponseButton",children:[o?t.labels.stopGenerating:t.labels.regenerateResponse,(0,a.jsx)("span",{children:o?t.icons.stopIcon:t.icons.regenerateIcon})]})};var d=m;
2
2
  //# sourceMappingURL=response.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/chat/response.tsx"],
4
- "sourcesContent": ["import { useChatContext } from '@copilotkit/react-ui'\nimport { useCopilotChat } from '@copilotkit/react-core'\n\nconst ResponseButton = () => {\n const context = useChatContext()\n\n const { isLoading, reloadMessages, stopGeneration } = useCopilotChat()\n\n return (\n <button onClick={isLoading ? stopGeneration : reloadMessages} className=\"copilotKitResponseButton\">\n {isLoading ? context.labels.stopGenerating : context.labels.regenerateResponse}\n <span>{isLoading ? context.icons.stopIcon : context.icons.regenerateIcon}</span>\n </button>\n )\n}\n\nexport default ResponseButton\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GASI,IAAAI,EAAA,6BATJC,EAA+B,gCAC/BC,EAA+B,kCAE/B,MAAMC,EAAiB,IAAM,CAC3B,MAAMC,KAAU,kBAAe,EAEzB,CAAE,UAAAC,EAAW,eAAAC,EAAgB,eAAAC,CAAe,KAAI,kBAAe,EAErE,SACE,QAAC,UAAO,QAASF,EAAYE,EAAiBD,EAAgB,UAAU,2BACrE,UAAAD,EAAYD,EAAQ,OAAO,eAAiBA,EAAQ,OAAO,sBAC5D,OAAC,QAAM,SAAAC,EAAYD,EAAQ,MAAM,SAAWA,EAAQ,MAAM,eAAe,GAC3E,CAEJ,EAEA,IAAON,EAAQK",
4
+ "sourcesContent": ["import { useChatContext } from '@copilotkit/react-ui'\nimport { useCopilotChat } from '@copilotkit/react-core'\n\nconst ResponseButton = () => {\n const context = useChatContext()\n\n const { isLoading, reloadMessages, stopGeneration } = useCopilotChat()\n\n return (\n !isLoading && (\n <button onClick={isLoading ? stopGeneration : reloadMessages} className=\"copilotKitResponseButton\">\n {isLoading ? context.labels.stopGenerating : context.labels.regenerateResponse}\n <span>{isLoading ? context.icons.stopIcon : context.icons.regenerateIcon}</span>\n </button>\n )\n )\n}\n\nexport default ResponseButton\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAUM,IAAAI,EAAA,6BAVNC,EAA+B,gCAC/BC,EAA+B,kCAE/B,MAAMC,EAAiB,IAAM,CAC3B,MAAMC,KAAU,kBAAe,EAEzB,CAAE,UAAAC,EAAW,eAAAC,EAAgB,eAAAC,CAAe,KAAI,kBAAe,EAErE,MACE,CAACF,MACC,QAAC,UAAO,QAASA,EAAYE,EAAiBD,EAAgB,UAAU,2BACrE,UAAAD,EAAYD,EAAQ,OAAO,eAAiBA,EAAQ,OAAO,sBAC5D,OAAC,QAAM,SAAAC,EAAYD,EAAQ,MAAM,SAAWA,EAAQ,MAAM,eAAe,GAC3E,CAGN,EAEA,IAAON,EAAQK",
6
6
  "names": ["response_exports", "__export", "response_default", "__toCommonJS", "import_jsx_runtime", "import_react_ui", "import_react_core", "ResponseButton", "context", "isLoading", "reloadMessages", "stopGeneration"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var i=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var y=(t,o)=>{for(var a in o)i(t,a,{get:o[a],enumerable:!0})},f=(t,o,a,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of n(o))!c.call(t,e)&&e!==a&&i(t,e,{get:()=>o[e],enumerable:!(r=m(o,e))||r.enumerable});return t};var h=t=>f(i({},"__esModule",{value:!0}),t);var C={};y(C,{Default:()=>l,default:()=>d});module.exports=h(C);var p=require("react/jsx-runtime"),v=require("react"),s=require("../components/index.js"),b=require("../styles/chat.css");const u={title:"Campaign/Chat",component:s.Chat,args:{title:"DTC Live Chat",runtimeUrl:"https://beta-dtcapi.anker.com",shopify_domain:"soundcoreusa.myshopify.com"},tags:["autodocs"],decorators:[t=>(0,p.jsx)("div",{style:{marginTop:"40em"},children:(0,p.jsx)(t,{})})]};var d=u;const l={args:{title:"DTC Live Chat",runtimeUrl:"https://beta-dtcapi.anker.com",shopify_domain:"soundcoreusa.myshopify.com",user_id:"arno5",showResponseButton:"follow",lang:{popupTip:"Hi ! Welcome to soundcore Innovations live chat\uFF01",popupTipTimeout:[3e3,6e3]}}};
1
+ "use strict";var i=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var y=(t,o)=>{for(var a in o)i(t,a,{get:o[a],enumerable:!0})},h=(t,o,a,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of n(o))!c.call(t,e)&&e!==a&&i(t,e,{get:()=>o[e],enumerable:!(r=m(o,e))||r.enumerable});return t};var f=t=>h(i({},"__esModule",{value:!0}),t);var C={};y(C,{Default:()=>l,default:()=>d});module.exports=f(C);var p=require("react/jsx-runtime"),v=require("react"),s=require("../components/index.js"),T=require("../styles/chat.css");const u={title:"Campaign/Chat",component:s.Chat,args:{title:"DTC Live Chat",runtimeUrl:"https://beta-dtcapi.anker.com",shopify_domain:"soundcoreusa.myshopify.com"},tags:["autodocs"],decorators:[t=>(0,p.jsx)("div",{style:{height:"700px"},children:(0,p.jsx)(t,{})})]};var d=u;const l={args:{title:"DTC Live Chat",runtimeUrl:"https://beta-dtcapi.anker.com",shopify_domain:"soundcoreusa.myshopify.com",user_id:"arno6",showResponseButton:"follow",lang:{popupTip:"Hi ! Welcome to soundcore Innovations live chat\uFF01",popupTipTimeout:[3e3,6e3]}}};
2
2
  //# sourceMappingURL=chat.stories.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/stories/chat.stories.tsx"],
4
- "sourcesContent": ["import React from 'react'\nimport type { Meta, StoryObj } from '@storybook/react'\nimport { Chat } from '../components/index.js'\nimport '../styles/chat.css'\n\ntype Story = StoryObj<typeof meta>\n\n// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export\nconst meta: Meta<typeof Chat> = {\n // \u540C\u65F6\u5B9A\u4E49\u4E86\u9875\u9762\u5DE6\u4FA7\u83DC\u5355\n title: 'Campaign/Chat',\n component: Chat,\n args: {\n title: 'DTC Live Chat',\n runtimeUrl: 'https://beta-dtcapi.anker.com',\n shopify_domain: 'soundcoreusa.myshopify.com',\n },\n // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs\n tags: ['autodocs'],\n // More on argTypes: https://storybook.js.org/docs/api/argtypes\n decorators: [\n Story => (\n <div style={{ marginTop: '40em' }}>\n {/* \uD83D\uDC47 Decorators in Storybook also accept a function. Replace <Story/> with Story() to enable it */}\n <Story />\n </div>\n ),\n ],\n} satisfies Meta<typeof Chat>\n\nexport default meta\n\nexport const Default: Story = {\n args: {\n title: 'DTC Live Chat',\n runtimeUrl: 'https://beta-dtcapi.anker.com',\n shopify_domain: 'soundcoreusa.myshopify.com',\n user_id: 'arno5',\n showResponseButton: 'follow',\n lang: { popupTip: 'Hi ! Welcome to soundcore Innovations live chat\uFF01', popupTipTimeout: [3000, 6000] },\n },\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAwBQ,IAAAK,EAAA,6BAxBRC,EAAkB,iBAElBC,EAAqB,kCACrBC,EAAO,8BAKP,MAAMC,EAA0B,CAE9B,MAAO,gBACP,UAAW,OACX,KAAM,CACJ,MAAO,gBACP,WAAY,gCACZ,eAAgB,4BAClB,EAEA,KAAM,CAAC,UAAU,EAEjB,WAAY,CACVC,MACE,OAAC,OAAI,MAAO,CAAE,UAAW,MAAO,EAE9B,mBAACA,EAAA,EAAM,EACT,CAEJ,CACF,EAEA,IAAOP,EAAQM,EAER,MAAMP,EAAiB,CAC5B,KAAM,CACJ,MAAO,gBACP,WAAY,gCACZ,eAAgB,6BAChB,QAAS,QACT,mBAAoB,SACpB,KAAM,CAAE,SAAU,wDAAoD,gBAAiB,CAAC,IAAM,GAAI,CAAE,CACtG,CACF",
4
+ "sourcesContent": ["import React from 'react'\nimport type { Meta, StoryObj } from '@storybook/react'\nimport { Chat } from '../components/index.js'\nimport '../styles/chat.css'\n\ntype Story = StoryObj<typeof meta>\n\n// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export\nconst meta: Meta<typeof Chat> = {\n // \u540C\u65F6\u5B9A\u4E49\u4E86\u9875\u9762\u5DE6\u4FA7\u83DC\u5355\n title: 'Campaign/Chat',\n component: Chat,\n args: {\n title: 'DTC Live Chat',\n runtimeUrl: 'https://beta-dtcapi.anker.com',\n shopify_domain: 'soundcoreusa.myshopify.com',\n },\n // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs\n tags: ['autodocs'],\n // More on argTypes: https://storybook.js.org/docs/api/argtypes\n decorators: [\n Story => (\n <div style={{ height: '700px' }}>\n <Story />\n </div>\n ),\n ],\n} satisfies Meta<typeof Chat>\n\nexport default meta\n\nexport const Default: Story = {\n args: {\n title: 'DTC Live Chat',\n runtimeUrl: 'https://beta-dtcapi.anker.com',\n shopify_domain: 'soundcoreusa.myshopify.com',\n user_id: 'arno6',\n showResponseButton: 'follow',\n lang: { popupTip: 'Hi ! Welcome to soundcore Innovations live chat\uFF01', popupTipTimeout: [3000, 6000] },\n },\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAuBQ,IAAAK,EAAA,6BAvBRC,EAAkB,iBAElBC,EAAqB,kCACrBC,EAAO,8BAKP,MAAMC,EAA0B,CAE9B,MAAO,gBACP,UAAW,OACX,KAAM,CACJ,MAAO,gBACP,WAAY,gCACZ,eAAgB,4BAClB,EAEA,KAAM,CAAC,UAAU,EAEjB,WAAY,CACVC,MACE,OAAC,OAAI,MAAO,CAAE,OAAQ,OAAQ,EAC5B,mBAACA,EAAA,EAAM,EACT,CAEJ,CACF,EAEA,IAAOP,EAAQM,EAER,MAAMP,EAAiB,CAC5B,KAAM,CACJ,MAAO,gBACP,WAAY,gCACZ,eAAgB,6BAChB,QAAS,QACT,mBAAoB,SACpB,KAAM,CAAE,SAAU,wDAAoD,gBAAiB,CAAC,IAAM,GAAI,CAAE,CACtG,CACF",
6
6
  "names": ["chat_stories_exports", "__export", "Default", "chat_stories_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_components", "import_chat", "meta", "Story"]
7
7
  }